AGB  ·  Datenschutz  ·  Impressum  







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

Konstruktoren in Delphi

Ein Thema von Int3g3r · begonnen am 18. Sep 2019 · letzter Beitrag vom 22. Sep 2020
 
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#1

Konstruktoren in Delphi

  Alt 18. Sep 2019, 08:51
Guten Tag,

Kann mir jemand erklären wie die ganze Konstruktoren Geschichte in Delphi funktioniert ?
Ich blicke da einfach nicht durch.

Ich habe ein neues VCL-Form erstellt und möchte nun einen eigenen Konstruktor erstellen:

Delphi-Quellcode:
public
   { Public-Deklarationen }
   Constructor Create(_pnlColor:TColor;_pnlTitle:String;_memoContent:TStringList);

//....

constructor TFehler.Create(_pnlColor: TColor; _pnlTitle: String;
   _memoContent: TStringList);
begin
   Inherited Create(self); //1
   setPanelTitle(_pnlTitle);
   setPanelTitleColor(_pnlColor);
   fillMemo(_memoContent);
end;
1. Warum muss hier Create(self) angegeben werden ? Warum reicht Inherited; nicht aus ?

Ich verstehe das so: Inherited muss benutzt werden damit der Standard-Konstruktor aufgerufen wird. Wenn ich Inherited nicht verwenden würde, dann würde mein VLC-Formular nicht erstellt werden.

2. Wann werden folgende Schlüsselwörter benötigt.
  • override
  • overload
  • reintroduce
  • virtual

3. Wie erstelle ich einen eigenen Konstruktor ohne Parameter ?
Ich möchte noch bestimmte Werte setzten, wenn das Objekt erstellt wird.

Im Beispiel hier wird ein overload; angegeben.
Dies begreife ich nicht. Ein override; würde für mich mehr Sinn ergeben. Ich möchte ja einen eigenen Standard-Constructor erstellen sonst würden ja zwei gleiche exisieren:

Delphi-Quellcode:
type
  // Define a parent class, base on TObject by default
  TFruit = class
  public
    name : string;
    Constructor Create; overload; // This constructor uses defaults
    Constructor Create(name : string); overload;
  end;

constructor TFruit.Create;
begin
   Inherited;
        //Setze Initial-Werte...
end;
Somit existiert hier ja:
Delphi-Quellcode:
Create; //Standard-Konstruktor
Create; //Überladener-Konstruktor
Create(name:String); overload; //Überladener-Konstruktor was ok ist weil durch die parameter kann der Konstruktor vom anderen unterschieden werden
Wie weis Delphi nun welchen Create; Konstruktor genommen werden soll ?

Danke für die Hilfe.
Gruss Int3g3r
  Mit Zitat antworten Zitat
 


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 20:09 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