Michele Zarri ha scritto: > a) seleziona l'elemento su cui si e' fatto doppio clic > b) chiudi la finestra di dialogo come se fosse stato premuto il pulsante OK > > Devo creare un listener o posso cavarmela con qualcosa di piu' adeguato > alle mie capacita' di programmatore?
Credo di aver letto da qualche parte che StarBasic non supporta l' evento doppio click, c' è anche un evento ClickCount, per contare i click del mouse, ma, non mi ricordo per quale ragione, veniva consigliato di simulare il doppio click con del codice Ho preparato un paio di piccole sub che potrebbero andare bene per te naturalmente è un esempio perciò devi adattare il codice al tuo Comunque se vuoi provarle sono funzionanti Devi procedere così: 1) Crea una dialog 2) Metterci dentro una ListBox( i nomi ho lasciato quelli che imposta il basic) 3) Nelle proprietà vai a "Voci dell' elenco" e scrivici tre o quattro righe, per farlo scrivi una linea e premi Invio, si chiude, riapri il cursore è passato alla linea di sotto 4) Sempre nelle proprietà apri il tab Eventi e assegna alla pressione o al rilascio del tasto del mouse la sub Seleziona_Elemento() 5) Metti un pulsante dove ti pare e collegalo alla sub Crea_Dialog() Credo non ci sia altro Se clicchi una volta su una voce della ListBox, questa si evidenzia se entro un secondo clicchi un' altra volta quello che c' è scritto va a finire nella cella A1 della Tabella1 e la dialog si chiude Se invece aspetti più di un secondo non succede nulla e devi cliccare ancora due volte per farlo Quì sotto ti riporto il codice REM ***** BASIC ***** REM Per provare questo codice si deve creare un dialogo REM Metterci dentro una casella di riepilogo(ListBox) REM Scriverci dentro tre o quattro voci dalla finestra REM proprietà della ListBox, per andare a capo usare " REM Sempre dalle proprietà selezionare il tab Eventi REM associare alla pressione del tasto del mouse REM la sub Seleziona_Elemento() Dim b As Integer Dim ListBox As Object Dim oDialog As Object Sub Crea_Dialog() BasicLibraries.LoadLibrary("Tools") oDialog = LoadDialog("Standard","Dialog1",DialogLibraries) Set ListBox = oDialog.getControl("ListBox1") b = 0 ' Setta a 0 la variabile b che serve per il conto ' click oDialog.Execute() End Sub Sub Seleziona_Elemento() Dim SelList as String oFoglio = ThisComponent.getSheets.GetByName("Tabella1") b = b + b ' La prima volta è 0 la seconda 2 If b = 2 Then SelList = ListBox.getSelectedItem() oFoglio.getCellByPosition(0 ,0).string = SelList oDialog.EndExecute End If b = 1 ' Le due linee sotto servono per creare un' interruzione ' nell' esecuzione del codice( un secondo), trascorso il ' quale la variabile b viene impostata a 0 ' Se in questo intervallo di tempo si preme un' altra ' volta il tasto sinistro del mouse la sub viene rieseguita ' dall' inizio prima che b venga impostata a 0 ' b diventa 2(b = b + b) e viene eseguito il codice dopo If Wait 1000 b = 0 End Sub Spero ti funzioni, fammi sapere Ciao Lido --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]