Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Record mit Defaultwerten? (https://www.delphipraxis.net/15248-record-mit-defaultwerten.html)

FriFra 25. Jan 2004 00:48


Record mit Defaultwerten?
 
Kann man in der Deklaration eines Record auch gleich Defaultwerte mit angeben?

Beispiel:
Delphi-Quellcode:
type
  TRouterMn_PluginDef = record
    Inactive: Boolean;
    OnTrigger: Boolean;
    OnTrigger_OnlineOnly: Boolean;
    OnTrigger_OfflineOnly: Boolean;
    OnIPChange: Boolean;
    OnIPChange_OnlineOnly: Boolean;
    OnIPChange_OfflineOnly: Boolean;
    OnCount: Boolean;
    OnCount_N: integer;
    OnCount_OnlineOnly: Boolean;
    OnCount_OfflineOnly: Boolean;
  end;

MrKnogge 25. Jan 2004 00:53

Re: Record mit Defaultwerten?
 
Du könntest einen Konstanten-Record bilden, und dann durch := initalisieren.

Hansa 25. Jan 2004 01:16

Re: Record mit Defaultwerten?
 
Warum überlegt ihr nur so lange über Sachen, die in 1 Min. fertig sind? :mrgreen:

Delphi-Quellcode:

var TRouterMn_var : TRouterMn_PluginDef;

procedure TRouterMnInit;

begin
  with TRouterMn_var do begin
    Inactive:= true;
    OnTrigger := true;
    OnTrigger_OnlineOnly := false;
    OnTrigger_OfflineOnly := true;
    ...
    OnCount_OfflineOnly := false;
  end;

FriFra 25. Jan 2004 01:27

Re: Record mit Defaultwerten?
 
Zitat:

Zitat von Hansa
Warum überlegt ihr nur so lange über Sachen, die in 1 Min. fertig sind? :mrgreen:

Darum geht es mir aber nicht... Deine Lösung habe ich auch schon längst implementiert...
Ich wollte eben nur wissen, ob man den Record direkt initialisieren kann.

Da ich so etwas aber noch nie gesehen habe hab ich eben mal gefragt...
Ich habe gehofft, das es so etwas in der Art möglich sein könnte:
Delphi-Quellcode:
type
  TRouterMn_PluginDef = record
    Inactive: Boolean; default True;
    OnTrigger: Boolean; default True;
    OnTrigger_OnlineOnly: Boolean; default True;
    OnTrigger_OfflineOnly: Boolean; default True;
    OnIPChange: Boolean; default True;
    OnIPChange_OnlineOnly: Boolean; default True;
    OnIPChange_OfflineOnly: Boolean; default True;
    OnCount: Boolean; default True;
    OnCount_N: integer; default 2;
    OnCount_OnlineOnly: Boolean; default True;
    OnCount_OfflineOnly: Boolean; default True;
  end;

Phantom1 25. Jan 2004 08:47

Re: Record mit Defaultwerten?
 
Meines wissens nach ist das in der form leider nicht möglich, es gibt aber noch eine andere möglichkeit, die ist zwar auch nicht unbedingt besser, aber dennoch in manchen situationen nützlich und recht übersichtlich.

Delphi-Quellcode:
Type
  TRouterMn_PluginDef = record
    Inactive: Boolean;
    OnTrigger: Boolean;
    OnTrigger_OnlineOnly: Boolean;
    OnTrigger_OfflineOnly: Boolean;
    OnIPChange: Boolean;
    OnIPChange_OnlineOnly: Boolean;
    OnIPChange_OfflineOnly: Boolean;
    OnCount: Boolean;
    OnCount_N: integer;
    OnCount_OnlineOnly: Boolean;
    OnCount_OfflineOnly: Boolean;
  end;

Const
  DefaultRec: TRouterMn_PluginDef =
   (Inactive: True;
    OnTrigger: True;
    OnTrigger_OnlineOnly: True;
    OnTrigger_OfflineOnly: True;
    OnIPChange: True;
    OnIPChange_OnlineOnly: True;
    OnIPChange_OfflineOnly: True;
    OnCount: True;
    OnCount_N: 2;
    OnCount_OnlineOnly: True;
    OnCount_OfflineOnly: True);

procedure TForm1.FormCreate(Sender: TObject);
Var TestRec: TRouterMn_PluginDef;
begin
  TestRec:=DefaultRec;
  //...
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 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