Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - vuott

Pagine: 1 ... 748 749 [750] 751 752 ... 755
11236
Programmazione (Gambas 2) / Re: Creare array di componenti
« il: 13 Luglio 2011, 13:25:54 »
... il contenitore degli oggetti lo devi fornire tu stesso (ad es. un Variant[] o un Object[]).


Oh... e dunque la parte forndamentale, appunto, come la scriveresti ?

11237
Programmazione (Gambas 2) / Re: Creare array di componenti
« il: 12 Luglio 2011, 20:42:03 »
...bensì uno solo ogni qual volta io premo un tasto; ma sempre mediante l'uso di un array che mi consenta di distinguerli per numero ai fini di una successiva gestione.

Allora, siccome sul forum vige la norma "Sperimenta. Trova la soluzione; e solo poi domanda come si trova la soluzione già trovata"  :evil: .....nell'attesa di una risposta, ho dovuto cercare di rispondermi da me  :rolleyes: .

Ho dunque ottenuto l'effetto che desideravo, ma senza array. Ho fatto così:

Codice: gambas [Seleziona]
' Gambas class file

s As Integer
i As Integer

Public Sub Button1_Click()   ' Crea UNA SOLA Label ogni qualvolta viene premuto Button1

  Dim lab As Label
  
  i = i + 1

' crea la Label e aggiunge al suo nome anche il numero contenuto nella variabile “ i “.
 lab = New Label(Me) As "lab" & i

  With lab
   .X = 20
   .Y = s
    .Width = 50
    .Height = 20
       .tooltip = "Sono la Label " & i

    ' imposta il testo all'interno della Label.
      .Text = "Label" & i

  End With

 s = s + 30

     Object.Attach(lab, Me, "Evento")       ' associa l'oggetto Label alla definizione "Evento"

End


Public Sub Evento_MouseDown()          ' cliccando su una Label, fra quelle create, essa viene eliminata.

  Dim Obj As Object = Last
  Dim a As String
  
    a = Obj.name

    Obj.delete                    ' elimina la Label riportata da Last

' Scrive quale Label è stata eliminata fra quelle precedentemente create.
  ' La variabile " a " indica il nome riportato da Obj.name.
    Print "Eliminata " & a
                                              
End

11238
Programmazione (Gambas 2) / Re: Creare array di componenti
« il: 12 Luglio 2011, 00:08:11 »
...allora vorrei riprendere quest'argomento per domandare come impostare la cosa se io non volessi creare componenti mediante un ciclo FOR, con il quale sono creati tutti (...diciamo) di colpo, bensì uno solo ogni qual volta io premo un tasto; ma sempre mediante l'uso di un array che mi consenta di distinguerli per numero ai fini di una successiva gestione.


11239
Programmazione / Re: Creazione componenti Gambas
« il: 10 Luglio 2011, 12:29:12 »
Grazie all'imposizione delle mani...

...pure tu di Pietrelcina !!!  :o

11240
Programmazione / Re: Creazione componenti Gambas
« il: 08 Luglio 2011, 16:19:07 »
Certamente Milio avrà una copia di quanto aveva scritto... potrebbe pazientemente ricostituire la pagina.

L'accesso al Wiki non dovrebbe essere consentito proprio proprio a chiunque; immaginate se ad un certo punto uno facesse saltare più pagine del Wiki !

L'accesso in scrittura dovrebbe essere concesso solo dagli Ammnistratori del Wiki, su richiesta esplicita e motivata dell'interessato....

;D

Codice: gambas [Seleziona]
dim permesso as boolean
dim scrivi as... puoi scrivere

If permesso = TRUE then
  scrivi = OPEN "/Wiki" for WRITE
  else
    print "Vatti a fa' un giretto altrove !"
endif

                        
                           :P

11241
Vi farò sapere eventualmente quello che succede con l'uso di Embed.

...allora: la prova con Embedder1.Embed l'ho fatta ; ma mi ha creato alcuni dubbi e perplessità.
Preciso e premetto che la prova è stata fatta con Gambas 3, e che la finestra inglobata è stata quella Gedit.

Riporto - anche ad utilità degli altri - di seguito il codice base, suggeritomi da fsurfing e mio adattamento al caso, per Embed:
Codice: gambas [Seleziona]
Public Sub Button1_Click()  
    
Dim id As New Integer[]  
      
  id = Desktop.FindWindow(FMain.Title)  ' .FindWindow : SOLO per Gambas3; mentre per Gambas2 è .Find !!!
    
  If id.Count > 0 Then  
      label1.text = id[0]            ' se si vuole vedere il PID
  Endif

    Embedder1.Embed(id[0])     ' inserisco la variabile contenente il PID della finestra (opportunamente già minimizzata) di Gedit.
      
End  


La finestra di Gedit è stata appunto inglobata, ma...
  • primo, la finestra di Gedit (o di qualsiasi altro programma prescelto) viene inglobata solo se è stata preventivamente minimizzata  :hard: ! (cfr. al riguardo: http://www.gambas-it.org/smf/index.php?topic=1822.0). Lì ho domandato perché e soprattutto se anche altri riscontrano comportamenti analoghi, ma nessuno mi ha risposto. Ahimé !
  • secondo, nella finestra inglobata di Gedit non è poi possibile scriverci (il cursore del mouse non compare), come se fosse inattivo  ??? . Fatta, però, la prova di inglobamento invece con la calcolatrice, questa funziona regolarmente.



Aggiornamento:

Rendo noto che ho fatto delle verifiche (oggi 14.11.2011) sul funzionamento di Embed con Gambas 3 aggiornato, e rinvio a queste discussioni dove ho descritto i risultati finalmente positivi:

http://www.gambas-it.org/smf/index.php?topic=1923.msg21337#msg21337
http://www.gambas-it.org/smf/index.php?topic=1822.0

Si veda anche la Wiki: http://www.gambas-it.org/wiki/index.php/Embedder

11242
desktop.open(percorso_file) dovrebbe fare al caso tuo

Perfetto, fsurfing ! Perfetto !  :ok:


Mi permetto, ma solo per completezza per aiutare chi è inespertissimo come me, di precisare che ovviamente quanto contenuto nelle due parentesi - ossia il percorso del file da aprire ed il nome del file medesimo - va inserito fra le virgolette (esempio con un file .txt da aprire):

Codice: gambas [Seleziona]
Public Sub Button1_Click()

  desktop.open("/percorso_file/nome_file.txt")

End

11244
Per quello che so, se voglio aprire un file, posso utilizzare il comando SHELL indicando oltre al nome del file da aprire anche il programma con il quale aprire il file.
Così, per esempio, se voglio aprire un file di testo posso specificare all’interno della linea di SHELL appunto il programma “gedit”.

Mi domandavo se c'è un modo per far aprire il file senza dover necessariamente indicare il programma, con il quale aprirlo. Insomma, un po’ come quando si clicca due volte con il mouse direttamente sul file da aprire oppure, dopo averlo evidenziato, si dà “invio” con il relativo tasto della tastiera, anziché lanciare prima un programma specifico e da questo aprire il file.

Come potrebbe realizzarsi un cosa analoga in Gambas ?

11245
Comunque, la cosa è anche più semplice del previsto: basta sperimentare.

Ho eliminato una routine, quella col Timer (quindi il tutto s'è abbreviato), ed ho aggiunto come caso-prova nuovamente un ciclo, ma ora con Do While....Loop:

Codice: gambas [Seleziona]
A as integer

Public Sub Button1_MouseDown()

Do While A > -1
  
A = A + 1
Print A
Wait 0.001            ' WAIT mi serve, altrimenti non riesco a bloccare il ciclo cliccando.

Loop

A = 0              ' ponendo A = 0 mi consentirà una volta bloccato il loop di riavviarlo, e di scrivere A in console da 1.

End


Public Sub Button1_MouseUp()

A = -1                   ' mi consente di bloccare il loop

End


Diciamo che in questo modo non ho bloccato il loop attraverso una verifica dell'evento _MouseUp, bensì mooolto più semplicemente assegnando un valore -1 alla variabile "A": valore in quel caso non "gradito" alla verifica del Do While.

11246
Observer....

E' la seconda volta che sento da te questo termine. Un po' mistico, un po' cosmico... ;D

Potresti brevemente descriverlo e fare - magari - un altrettanto breve esempio di codice... per la gioia di tutti gli utenti del forum.  :P

Aggiungo, comunque, che primi aiuti giungono indirettamente da Milio qui:

http://www.gambas-it.org/smf/index.php?topic=1529.0

http://www.gambas-it.org/smf/index.php?topic=1495.0

« L'Observer e' una Classe che osserva gli eventi dell'oggetto a lui legato. In questo caso andrebbe ad intercettare gli eventi della Classe... »

11247
Fedora e derivate / Re: spartiti musicali
« il: 05 Luglio 2011, 11:13:37 »
Con QSynth puoi facilmente caricare i soundfont bank in formato .F2; e la loro gestione ho notato essere superiore e fluida.

11248
Non so come hai fatto a capire che i pulsanti (Button) scatenino eventi solamente dopo che il tasto venga rilasciato.

La mia affermazione, ovviamente, si basa su una prova empirica, da me svolta, identica a quella che hai proposto tu per il key....; ho notato che il print - o qualsiasi altra cosa - avveniva solo al momento del rilascio del tasto del mouse, e quindi virtualmente del button.

Non ho approfondito abbastanza, ma mi sto ponendo questo problema più generale ed astratto: stando ancora all'interno di una routine appartenente all'oggetto A, come intercettare un evento operato su un oggetto B ? Restando al caso della simulazione di un pulsante attivo, se per esempio io determino l'evento del MouseDown su un button, ed avvio nella relativa routine conseguentemente - mettiamo il caso - un evento ciclico infinito, posso interromperlo mediante un IF posto nel mezzo del ciclo che verifichi il sopraggiunto accadimento di un altro evento, esterno (mentre ancora è in pieno svolgimento la routine del MouseDown), per esempio un MouseUp ?  Ad una primissima considerazione a me sembrerebbe di no, ma.......

11249
desktop.findwindow non ti piace?  ;D

Molto interessante. Stavo indagando su di lui stamane, ma non avevo capito come funzionava. Bene !

Mi stavo piegando su una soluzione molto... extreme  :death: di questo genere:

Codice: [Seleziona]
Shell "wmctrl -p -l"

e quindi, dopo aver individuato l' ID esadecimale (nella prima colonna dei dati), inserivo manualmente  :'( l' ID, con conversione da esadecimale in decimale, nel comando finale di:

Codice: [Seleziona]
Embedder1.embed(numero_PID_decimale)

Comunque, ho provato il tuo codice senza modificare alcunché, e vorrei porre due questioni:
  • al posto della dicitura "FMain.title" è possibile ottenere risultato utile inserendo proprio il titolo della finestra ? (A me è parso di no);
  • PROBLEMONE: ho notato una cosa strana che avevo constatato sostanzialmente anche con le mie prove mortali mediante il bash wmctrl: sperimentando appunto wmctrl ed inserendo il numero del ID della finestra - preventivamente aperta - del programma "Gedit", ho casualmente scoperto che l'embed funzionava, sì, ma solo se minimizzavo in basso (senza chiuderla ovviamente) preventivamente la finestra di Gedit. Se invece tentavo di inglobare Gedit tenendo aperta ed evidente la sua finestra sul desktop, l'embedding non avveniva !  ???
    Facendo le prove con il tuo codice - lasciando inalterata la dicitura: ...(FMain.title) - e verificando con il comando bash "wmctrl" i valori in Label1 restituiti, ho notato, coerentemente con quanto già notato nelle mie precedenti prove col bash, che mi viene restituito il PID decimale dell'ultima finestra minimizzata !!!  ???
    Insomma, pare che solo l' ID delle finestre minimizzate (più precisamente l'ultima in ordine temporale se ve ne sono più di una) venga intercettato da embed; e quindi solo una finestra minimizzata potrà essere inglobata nel form mediante il comando embed.

Sarebbe interessante sapere se questo medesimo comportamento è riscontrabile anche in altri utenti; però è chiaro che per inglobare una finestra in un form - stando così le cose - io devo procedere alla sua preventiva minimizzazione in basso.  :hatecomputer: ...e dovrò così trovare la strategia, la soluzione (ma mi pare che wmctrl non offra questa possibilità) pure per fare questo.  :rolleyes:

......ma non è strana 'sta cosa ?

Possono anche gli altri verificare questo fatto ? E' un problema mio, o più generale ?


11250
Da quel che sembra, Gambas 3 non supporta più  :hatecomputer: "Desktop.Find", con il quale - come mostrato in qualche discussione nella parte relativa alla programmazione in Gambas 2 - era possibile trovare appunto l' ID di una finestra aperta sul desktop da utilizzare con ''embed'' per inglobare quella finestra in un form.

Qualcuno ha trovato una valida alternativa ?

Pagine: 1 ... 748 749 [750] 751 752 ... 755