AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ShowModal verschachteln?

Ein Thema von Marco Steinebach · begonnen am 8. Nov 2006 · letzter Beitrag vom 9. Nov 2006
Antwort Antwort
Seite 2 von 2     12   
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: ShowModal verschachteln?

  Alt 9. Nov 2006, 12:07
Muß mal kurz nachhaken. Habe sowas :

Delphi-Quellcode:
    frm1 := Tfrm1.Create(Self);
    ModalResult := frm1.ShowModal;
    case ModalResult of
      mrOk : begin
                   frm2 := Tfrm2.Create(Self);
                   case frm2.ShowModal of
                     mrOk : CanClose := true;
                     mrAbort,
                     mrCancel : CanClose := false;
                   end;
                 end;
      mrAbort : CanClose := false;
      mrCancel : CanClose := true;
    end;
Also erstmal eine Form. Je nach Anforderung wird noch eine angezeigt. Und dann bei bestimmten Aktionen noch eine. Im geposteten Code sehe ich jetzt viel finally, free und solche Sachen. Ich habe in allen FormClose allerdings Action := caFree; drin stehen. Ist es dann überhaupt notwendig Free usw. explizit zu benutzen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: ShowModal verschachteln?

  Alt 9. Nov 2006, 13:36
Hallo Hansa,

Zitat von Hansa:
... Im geposteten Code sehe ich jetzt viel finally, free und solche Sachen. ...
Flocke will das so, also mache dich nicht unbeliebt.

Es gibt aber noch ein paar Gründe. Ich arbeite im pull mode, d.h. im modalen Fenster erzeugte Ergebnisse hole ich im aufrufenden Block direkt nach dem ShowModal() - bei OnClose(Action = caFree) würde ich ins Leere greifen. Außerdem erhöht es die Wartbarkeit deines Codes, wenn du Create und Free im selben Kontext und möglichst nahe beieinander stehen hast.

Grüße vom marabu
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#13

Re: ShowModal verschachteln?

  Alt 9. Nov 2006, 14:06
Hi Marco,

das StayOnTop dient ja nur dazu, dass bei einem Klick in das "Hauptfenster" das aktuelle nicht im Hintergrund verschwindet. Du kannst natürlich dein Fenster / Anwendung in die TNA poppen. Hierzu kann man für die Zeit der Bearbeitung das aufpoppen auch blocken.

Nun gut, ich will nicht mit Macht das StayOnTop verteidigen. Das mit der versteckten Application im TNA war so nicht zu erkennen. Für einige Fälle, bei denen der "Hauptbildschirm" am leben bleiben soll während man z.B. ein Eingabefenster bearbeitet war das bei mir immer eine gute Lösung. Es verhindert an der stelle auch sehr gut kleinere vergessene Eingabefenster die dann gerne mal im Hintergrund der Anwendung ihr Leben fristen.

Gruß oki
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#14

Re: ShowModal verschachteln?

  Alt 9. Nov 2006, 16:47
Zitat von marabu:
...Außerdem erhöht es die Wartbarkeit deines Codes, wenn du Create und Free im selben Kontext und möglichst nahe beieinander stehen hast...
Das ist schon richtig. Aber nur, wenn es denn überhaupt nötig ist. Nur das wollte ich wissen. Falls das NICHT nötig ist, dann baut man womöglich unnötige potentielle Fehlerquellen ein.

Zitat von marabu:
Flocke will das so...
Von dem ist hier nichts zu sehen. Aber die Zwischenfrage hat sich sowieso erledigt. caFree reicht tatsächlich aus. Delphi macht alles selber.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz