Newsgroup: it.comp.lang.delphi
Titolo: Chiusura di un form

Salve ragazzi, ho bisogno del vostro aiuto, dal mio form tramite
l'evento OnKeyDown e tramite l'istruzione Form2.show apro un'altro
form, che vorrei che venisse chiuso ovviamente quando lascio il tasto.
A tal fine ho usato l'evento OnKeyUp e la procedura Form2.close. Ma
indovinate un po?! Quando premo il tasto il form si apre correttamente
quando lo lascio rimane ancora li!
Qualcuno mi puo aiutare? Mi può spiegare il motivo e darmi qualche
soluzione per eliminare tale problema?
Grazie
Francesco


Marco ha ragione aprendo la form2 le dai anche il focus.
Nell'evento OnShow della form2 prova a metterci:
SetForegroundWindow(Form1.Handle);
cosi' ridai il fuoco alla form1.
Giorgio Padoan 

soluzione per eliminare tale problema?
Come apri la form show o showmodal , č autocreante o la crei tu ?
Per una cosa del genere , non č meglio usare un panel e renderlo 
visibile/invisibile all'occorrenza ?
Giulio

Basta impostare l'evento onKeyUp della seconda form...........
procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key = VK_F4) then form2.close;
//qui potresi decidere a quale control della form1 riportare il focus
//form1.edit1.setFocus
end;
Ciao
Stefano

Ciao Marco il fatto e come ti stavo dicendo l'altra volta  e che sono
poco esperto di Delphi e il 70% delle cose che mi state dicendo prima
che le capisco devo fare 100 ricerche, ma questo nn mi spaventa.
Ora ti spiego quale è lo scopo del mio progetto: mi hanno
commissionato per stage di realizzare un applicazione in delphi di
videoconferenza tramite webcam. Ora la webcam deve essere in grado di
catturare immagini quando viene premuto il tasto shift e deve terminare
la cattura quando tale tasto viene lasciato.
Io essendo novizio di questo linguaggio di programmazione ho pensato di
fare addirittura 3 form, 1 come finestra base dove ce un menu, da qui
premendo l'opzione Start to Send mi apre il form2 dove dovrei
realizzare la cattura del video e con l'opzione Stop to Send chiudere
tale form (questo me lo consente di fare tramite il comando form2.show
e form2.close). Ora però il form mi si dovrevbbe aprire anche premendo
il tasto shif e mi si dovrebbe chiudere rilasciandolo, ma ciò non
accade.
Forse sbaglio io a creare nuovi form, forse ce un'altra soluzione..
Io sono apertissimo a suggerimenti e idee.
Aspetto qualche consiglio.
Grazie

Il form lo apro con show, cioè faccio
if Key = VK_SHIFT then
Form2.show;
e
Form2.close
per chiuderlo
Il form è autocreante.
Se vedi la risposta precedente è spiegato il perchè di questa
decisione.

Grazie del consiglio, ci ho provato ma nn funziona!
Aiuto!!

Come faccio con un solo form a chiamare altre finestre che nn siano
altri form?
Nn so se hai letto quello che devo realizzare!!
E circa un mese che sto imparando il delphi e tra 2 settimane devo
terminare almeno la parte relativa alla web!!
Mi dai una mano? Nel senso consigliami un attimo, per esempio io nn so
come posso aprire altre finestre dallo stesso form!!
Te ne sarei grado! Cmq se hai un indirizzo msn adesso mi trovi online!!

 Te ne sarei grado! Cmq se hai un indirizzo msn adesso mi trovi online!!
Comprendo le tue necessità, ma non ho purtroppo la possibilità pratica e 
il tempo necessario per aiutare in privato chiunque me lo chieda. :-/
Ciao,
   Marco.


grazie sei stato gentilissimo

Ciao Marco,
ho seguito il tuo consiglio,leggendo il documento e vedendo gli esempi,
ma credo che le frame non facciano a mio caso! Anche perchè a me
servirebbe una finestra stile form, cioè con caption etc etc e con la
frame questa non l'ottengo, a meno che non c'è qualche componete che
ignoro per creare delle finestre?!
Un'altra cosa ti volevo chiedere, secondo usando 3 form, che poi in
realta sono 2 perche uno di deve simulare l'ambiente iniziale, la cosa
puo essere fattibile?
Se hai qualche suggerimento io come sempre sono pronto ad accettarlo.
Grazie
Ciao
Francesco

 Se hai qualche suggerimento io come sempre sono pronto ad accettarlo.
Nel tuo caso, non sarebbe sufficiente avere solo 2 Form, uno principale 
(MainForm) ed uno secondario che si occupa della cattura.
Dal form principale, richiami quello secondario con un pulsante che 
indichi la volontà di effettuare il campionamento; nel form secondario 
(modale, quindi visualizzato col metodo /ShowModal/) inserisci elementi 
visuali per il controllo della registrazione, come pulsanti di start e 
stop, nonchè la possibilità di fare le stesse operazioni tenendo 
sott'occhio il tasto SHIFT attraverso gli eventi /OnKeyDown/ e /OnKeyUp/.
Mi sembra che non manchi nulla, no? :-)


Manca il terzo form per le impostazioni delle opzioni delle webcam!
Loro vogliono che dal form principale tenendo premuto il tasto shift si
attivi in automarico la cattura delle immagini dalla webcam e che
smetta quando il tasto viene rilasciato. Nel menu principale (che
secondo le mie idee dovrebbe coincidere con il Form1 ho la voce per
l'opzioni della webcam, cioe quale tipo di filtri usare sia video e
audio). Per questo io intedevo fare 3 form, poi su quella dove ce la
cattura nn deve esistere nessun tipo di bottone o cose varie, in quanto
come ti ho gia detto prima la cattura deve iniziare e finire con la
pressione del tasto shift!
Ma guarda te in quale casino mi sono andato a mettere :(!
Ciao
Cekko

 pressione del tasto shift!
In sostanza, disponi di tre form: uno principale che richiama, in 
qualche modo (pulsanti o menu) gli altri due (o l'uno o l'altro, modali, 
con il metodo /ShowModal/) per modificare le impostazioni oppure 
iniziare la cattura.
Tenendo conto che non sono disposto a scrivere il codice dell'intera 
applicazione, cosa ti manca per iniziare?? :-)
