Gambas-it
Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Picavbg - 29 Ottobre 2010, 23:34:09
-
Non saprei dove avviare la presente discussione, però avrei bisogno per la mia documentazione di catturare una schermata col mio programma in esecuzione dove sia visibile la finestra "popup" relativa alla ComboBox attiva.
Ho provato in più modi, ma quando clicco sul pulsante "Cattura schermata" la finestra.popup si chiude ancor prima che venga fotografata tutta l'immagine, per cui nel risultato ottenuto, la ComboBox attiva, compare senza la sua brava finestra di popup.
Posso in qualche modo tenerla fissa per permetterne la visibilità dentro il "Cattura Schermata"?
:(
-
Un modo: quando premi 'Cattura Schermata' apri tramite codice
la combobox al punto in cui era, metti un WAIT di sicurezza e poi effettivamente fai la 'foto'.
Come salvarti la posizione pregressa del combo devi studiarlo tu.
Ancora meglio, secondo me, sarebbe chiamare il CatturaSchermata con una combinazione di tasti quando il popup è aperto. Certo l'utente deve essere avvisato che c'è questa opportunità, però la combinazione di tasti non dovrebbe togliere il focus al combo.
Salutiamo
-
io solitamente per catturare la schermata premo "Stamp" sulla tastiera comunque se ci sono menu attivi o combobox aperte non funziona , io hai tempi ho notato però che avviando il programma in una macchina virtuale riesci a catturare le schermate anche con menu e combo aperte
-
Testato sotto gb.qt. funziona. Il combo resta aperto e premendo Ctrl + s fai la cattura.
PUBLIC SUB ComboBox1_KeyPress()
DIM picSchermata AS NEW Picture
IF key.Code = Key["s"] AND IF Key.Control THEN picSchermata = Desktop.Grab()
END
-
Testato sotto gb.qt. funziona. Il combo resta aperto e premendo Ctrl + s fai la cattura.
PUBLIC SUB ComboBox1_KeyPress()
DIM picSchermata AS NEW Picture
IF key.Code = Key["s"] AND IF Key.Control THEN picSchermata = Desktop.Grab()
END
Ho fatto entrambe le prove che mi hai suggerito e:
1) quella citata sopra non ha funzionato; propabilmente non ha funzionato la chiamata Desktop.Grab(), che fra l'altro non conosco;
2) ho poi provato il popup da codice col WAIT dopo, ma anche così dopo avere cliccato sul pulsante lanciatore il popup é scomparso;
3) ho risolto settando un ritardo di alcuni secondi nella funzione "Cattura schermata". Così facendo, dopo aver cliccato sul pulsante "Cattura schermata", ho di nuovo cliccato sulla ComboBox da fotografare ed il popup é ricomparso in tempo per essere compreso nell'immagine catturata.
:)
Così ti saresti liberato di me, ma prima potresti aggiungere come potrei conoscere la funzione Desktop.Grab e come potrei capire il mancato funzionamento.
;)
Ciao. ;D
-
Nell'help vai su gb.gtk o gb.qt --> Desktop --> Grab
Tieni conto che ci sono differenze tra gb.gtk e gb.qt e non è detto che ti funzioni.
Ciao