Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Laufzeit: Erzeugung von Komponenten (https://www.delphipraxis.net/190906-laufzeit-erzeugung-von-komponenten.html)

Gerkey 18. Nov 2016 09:45

Delphi-Version: XE

Laufzeit: Erzeugung von Komponenten
 
Habe aus dem Handbuch Borland Delphi 7 (Doberenz und Gewinnus) nachstehenden Beispiel-Code von Seite 314 übernommen (nur geringfügig modifiziert) :

Delphi-Quellcode:
var
  M: TM;
  edField : Tedit;

implementation     {$R *.dfm}

procedure TM.Button1Click(Sender: TObject);
begin
  if TEdit(FindComponent('eSpNr')) = nil then
    begin
      edField := TEdit.Create(self);
      edField.Parent := Self;
      edField.Name := 'eSpNr';
      edField.SetBounds(50,100,50,25);
      edField.OnClick := EditClick;
    end;
end;
Bei der Ausführung erscheint die Fehlermeldung: undeklarierter Bezeichner “EditClick”.
Ohne das Statement EdField.OnClick klappt’s.

Was mache ich falsch ?

Gerkey

Ritsch 18. Nov 2016 09:47

AW: Laufzeit: Erzeugung von Komponenten
 
Gibt es die procedure EditClick überhaupt?

Geda 18. Nov 2016 11:08

AW: Laufzeit: Erzeugung von Komponenten
 
"EditClick" ist eine Zuweisung - die Ereignis-Prozedure musst Du selber schreiben (TNotifyEvent).

z.B.:

Delphi-Quellcode:
  private
    { Private-Deklarationen }
    procedure EditClick(Sender: TObject);
  end;


procedure TForm.EditClick(Sender: TObject);
begin
  ShowMessage('Hallo Delphi');
end;

procedure TForm.FormCreate(Sender: TObject);
begin
  Edit1.OnClick := EditClick;
end;

Gerkey 18. Nov 2016 11:27

AW: Laufzeit: Erzeugung von Komponenten
 
Danke ! Das hat geholfen !
Hatte angenommen, dass der Beispiel-Code im Handbuch vollständig war !

Gerkey


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