Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: piu form in delphi

  1. #1

    piu form in delphi

    Ciao a tutti

    avrei un problema con il delphi.

    Vorrei far comparire all'esecuzione di un programma una form. Su questa form c'è un pulsante che fa scomparire questa form e apre la seconda.

    Teoricamente avrei risolto con Hide e Show ma non è una soluzione valida perché se nascondo la prima form e poi vado sulla seconda, quando chiudo il programma con la X in realtà chiudo solo la seconda form e la prima rimane nascosta. Alla fine praticamente sembra che il programma sia chiuso ma non lo è, è solo invisibile perché è rimasta la form in modalità hide

    come posso risolvere?

    grazie

    Ciao

    Eraser

  2. #2
    nell'evento formclose della 2° form scrivi

    application.terminate

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296

    Re: piu form in delphi

    Originariamente inviato da eraser
    Vorrei far comparire all'esecuzione di un programma una form. Su questa form c'è un pulsante che fa scomparire questa form e apre la seconda.
    Spero vivamente che la prima form non sia quella principale del programma (MainForm).

    Originariamente inviato da eraser
    Teoricamente avrei risolto con Hide e Show ma non è una soluzione valida perché se nascondo la prima form e poi vado sulla seconda, quando chiudo il programma con la X in realtà chiudo solo la seconda form e la prima rimane nascosta. Alla fine praticamente sembra che il programma sia chiuso ma non lo è, è solo invisibile perché è rimasta la form in modalità hide
    come posso risolvere?
    Un'applicazione Delphi rimane in esecuzione fino a quando la finestra principale di programma rimane aperta, sebbene non visibile (perchè nascosta con Hide).

    La soluzione più spartana è quella di chiamare il metodo Application.Terminate, anche se io ti suggerirei di chiamare il metodo Close della MainForm, magari in questo modo
    codice:
    Application.MainForm.Close;
    sull'evento OnClose della form secondaria.

    Un altro suggerimento: la tua soluzione mi sembra molto particolare e raramente adottata nelle applicazioni...sei sicuro che non si possa risolvere il problema in altro modo?

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    io ho messo

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Application.mainform.Close;
    end;

    ma continua a non chiudersi il programma

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    La Form1 è la form principale (MainForm)?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da eraser
    yes
    Allora è inutile chiudere la form principale una seconda volta.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    allora spe che mi spiego meglio (Sono un pò confusionario )

    Form2 compare all'inizio

    con un pulsante la form2 diventa invisibile e si passa alla form1

    Cliccando sulla X della finestra della form1 si deve chiudere tutto il programma e non solo la form1

    come posso fare?


  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da eraser
    come posso fare?
    Vista la condizione particolare del tuo programma, segui il suggerimento di mnkt e richiama Application.Terminate quando vuoi che la tua applicazione venga chiusa.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    l'ho fatto

    ho fatto così

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Application.Terminate;
    end;

    ma non funziona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.