Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Globale Form Variable entfernen (https://www.delphipraxis.net/62983-globale-form-variable-entfernen.html)

Lemmy1 12. Feb 2006 11:53


Globale Form Variable entfernen
 
Was mich bei Delphi immer etwas gestört hat, ist sein Default Verhalten fürs Anlegen von Formularen. Daher sind bei mir die ersten Schritte nach Anlegen eines Forms immer erstmal:
  • Projektoptionen, Formular auf manuelle Erzeugung umschalten
  • Anlegen einer Funktion wie:
    Delphi-Quellcode:
    public class function ShowDlg : Boolean;
    var
      Form : TMyForm;
    begin
      Form := TMyForm.Create(nil);
      try
        Result := Form.ShowModal = idOk;
      finally
        Form.Release;
      end;
    end;
  • Entfernen der globalen Form-Variable (z.B. var MyForm: TMyForm)

Dadurch kann man dann immer leicht das Formular verwenden durch z.B.
Delphi-Quellcode:
if TMyForm.ShowDlg() then ....
Ich denke, viele hier machen das ähnlich. Aber besonders bei dem Schritt 3 (entfernen der globalen Variable) hab ich immer ein mulmiges Gefühl. Hatte da schonmal jemand Probleme mit irgendwelchen Teilen der Delphi-Codegeneratoren? Klar...man könnte die Variable auch einfach stehen lassen aber irgendwie will man doch Ordnung....

mirage228 12. Feb 2006 11:56

Re: Globale Form Variable entfernen
 
Hi,

also ich mache das bei meinen Forms auch so, wie du hier geschildert hast (außer dem Hauptform, das noch automatisch erstellt wird und ich benutze das noch im Zusammenhang mit Singletons) - ich habe die globale Variable jetzt einfach immer stehen lassen, aber eigentlich wäre es schon besser die zu löschen, das sollte dann aber auch keine Probleme machen :)

mfG
mirage228

Waldteufel 12. Feb 2006 11:59

Re: Globale Form Variable entfernen
 
Hi Lemmy. :hi:

Zitat:

Zitat von Lemmy1
Ich denke, viele hier machen das ähnlich.

Ich zumindest mache es auch so.

Zitat:

Zitat von Lemmy1
Aber besonders bei dem Schritt 3 (entfernen der globalen Variable) hab ich immer ein mulmiges Gefühl. Hatte da schonmal jemand Probleme mit irgendwelchen Teilen der Delphi-Codegeneratoren? Klar...man könnte die Variable auch einfach stehen lassen aber irgendwie will man doch Ordnung....

Ich hatte bisher beim entfernen der globalen Variable keine Probleme.
Nur beim Hauptformular muss man aufpassen. Da muss man dann nämlich in der DPR-Datei was ändern.
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

var              // <- Diese Zeile einfügen
  Form1 : TForm1; // <- Diese Zeile einfügen
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Lemmy1 12. Feb 2006 15:42

Re: Globale Form Variable entfernen
 
Hi und danke für die Antworten :thumb:

Ich selbst hatte noch kein Problem dabei, aber mach das auch noch nicht lange so....gut zu wissen dass es wohl auch echt keine gibt. Wäre schön, wenn man der Delphi IDE beibringen könnte, dass per Default so zu machen...

Hat schon mal jemand ein LiveTemplate dazu geschrieben?

Lemmy1 12. Feb 2006 16:27

Re: Globale Form Variable entfernen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Gesagt getan, angehängt zwei Live-Templates

Zum Installieren einfach in den Template Ordner werfen (bei mir ist das
C:\Documents and Settings\Daniel\Local Settings\Application Data\Borland\BDS\4.0\code_templates

funktionieren tun die nun so:
  • In der Klassendeklaration wo die class function hin soll Cursor platzieren und "showd" gefolgt von Tab drücken.
  • Bei Bedarf Signatur ändern
  • Via Ctrl+Alt+C Class Completion aufrufen
  • Tab drücken (zwecks Einrückung), showd2 und wieder Tab
  • Felder ausfüllen, fertig


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz