Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - [DELPHI] Chiudere Form primario senza chiudere l'applicazione
Forum - Delphi - [DELPHI] Chiudere Form primario senza chiudere l'applicazione - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 15:21
Domenica, 08/05/2011
beh se nascondi il form primario con hide al restore non dovrebbe comparire nuovamente il form primario

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 18:22
Domenica, 08/05/2011
Testo quotato

Postato originariamente da givex8:

Testo quotato

Postato originariamente da smanettone83:

Testo quotato

Postato originariamente da givex8:

Salve a tutti, mi chiedevo se è possibile CHIUDERE il form primario senza chiudere l'applicazione (e senza usare Hide)
Grazie a tutti



i miei sospetti sono sempre piu confermati... sento puzza di trojan.....




Devo fare una chat con Form di login + Form della chat (dove si scrive)
Il Form di login è il primario.
A login effettuato il Form di login (il primario) deve chiudersi e aprire il Form della chat...
Non posso fare Hide sul form primario perchè se provo a minimizzare il Form della chat e poi ripristinarlo, magicamente mi spunta fuori il form primario anche se l'avevo messo in Hide precedentemente...

PS: Ne ho le p***e piene dei trojan... non ne farei mai uno...



Domanda ... perchè il form di login deve essere il primario ?, come ha detto smanettone, fai un form di login, lo chiami prima del principale e poi lo chiudi, non vedo problemi, l'ho fatto per un programmino http://www.pierotofy.it/pages/sorgenti/dettagli/18867-Tabe ... guarda se riesci a riutilizzare la parte di login
G


Ibis redibis non morieris in bello
PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 19:10
Domenica, 08/05/2011
Testo quotato

Postato originariamente da Dario DF:

Non credo... perchè dovrebbe allora fare una domanda così?
E' una cosa che uso spesso:
Es: Creare un file virtuale in memoria all'avvio e poi CHIUSO il programma lo cancello.
Lo uso per non aprire due volte lo stesso prog...


mmm ci sono metodi più "puliti" per controllare se un applicativo è già in esecuzione.
Usare i Mutex, oppure gli atom.
G.


Ibis redibis non morieris in bello
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:25
Domenica, 08/05/2011
Distruggi mettendo caFree in Action dentro al comando OnClose
Codice sorgente - presumibilmente Delphi

  1. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  2. begin
  3.   Action := caFree;
  4.   Form1 := nil;
  5. end;


Così quando chiudi il form non esiste più e non può più minimizzarsi!
Metti comunque il form2 come primario.
Se ti servisse ricreare il form1:
Codice sorgente - presumibilmente Plain Text

  1. if(Unit1.Form1 = nil)then
  2.     Unit1.Form1 := TForm1.Create(Self);
  3.   Unit1.Form1.ShowModal(); //O solo Show.


PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 20:01
Domenica, 08/05/2011
Testo quotato

Postato originariamente da Dario DF:

Distruggi mettendo caFree in Action dentro al comando OnClose
Codice sorgente - presumibilmente Delphi

  1. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  2. begin
  3.   Action := caFree;
  4.   Form1 := nil;
  5. end;


Così quando chiudi il form non esiste più e non può più minimizzarsi!
Metti comunque il form2 come primario.
Se ti servisse ricreare il form1:
Codice sorgente - presumibilmente Plain Text

  1. if(Unit1.Form1 = nil)then
  2.     Unit1.Form1 := TForm1.Create(Self);
  3.   Unit1.Form1.ShowModal(); //O solo Show.




BRRRR rabbrividisco :noway: ... scusa tanto ... ma mettendo Form1 := nil; nell'evento close ... non puoi più scrivere codice che va oltre l'evento OnClose tipo OnDestroy infatti se nel tuo codice scrivi anche un byte nel ondestroy che fa riferimento al form1 .. ci sarà un bel AV in quanto hai impostato a nil la form .
Altro problemino... se ricrei il form principale richiami delle procedure (almeno io) di inizializzazione che devono essere chiamate 1 sola ed unica volta... per me non è la strada giusta ... (opinione personale) :)
G.


Ibis redibis non morieris in bello
PM Quote
Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 20:08
Domenica, 08/05/2011
ragazzi troppe complicazioni... basta semplicemente invertire la creazione dei form. tutto qui!

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 21:13
Domenica, 08/05/2011
smanettone83, nessuna complicazione, come sempre le strade percorribili sono molteplici, confrontarsi nelle varie opzioni mi sembra cosa buona e giusta, basta che alla fine ci sia coerenza e niente cavolate :asd::k:


Ibis redibis non morieris in bello
PM Quote
Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 2:03
Lunedì, 09/05/2011
si certamente sono daccordo, volevo solo intendere che si potrebbe risolvere il problema facilmente senza girarci troppo intorno. ;) saluti

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo