Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi prozedur aufruf (https://www.delphipraxis.net/9793-prozedur-aufruf.html)

LoL 4. Okt 2003 13:01


prozedur aufruf
 
hi

ich möchte ein prozedur über einen button ufrufen der zur laufzeit erstellt worden ist:

Delphi-Quellcode:
...
procedure button;
proceudre test(Sender : TObject);
...
var meinbuton : TButton;
...
procedure button;
begin
  meinbutton := TButton.create(form1);
  meinbutton.parent := form1;
  meinbutton.onclick := test; <---------------------
end;

procedure test(Sender : TObject);
begin
  machwas;
end;
Warum gehtdas nicht?

Chewie 4. Okt 2003 13:02

Re: prozedur aufruf
 
Es heipt OnClick und nicht OnKlick.

LoL 4. Okt 2003 13:04

Re: prozedur aufruf
 
schrib fehler sry

Dagon 4. Okt 2003 13:05

Re: prozedur aufruf
 
Es muss heissen:

Delphi-Quellcode:
procedure TForm1.test(Sender : TObject);

Luckie 4. Okt 2003 13:05

Re: prozedur aufruf
 
Suche benutzen, das hatten wir schon zu genüge.

LoL 4. Okt 2003 13:22

Re: prozedur aufruf
 
die prozedur steht in ner anderen unit!
keinem typ zugeornet

Luckie 4. Okt 2003 13:23

Re: prozedur aufruf
 
Delphi-Quellcode:
@button.onclick := @Unit2.MyProc;
Die prozedur muß natürlcih im Sichtbarkeitsbereich liegen.

LoL 4. Okt 2003 13:24

Re: prozedur aufruf
 
es kommt immer nur die fehlermeldung:
Zitat:

Incompatible types: 'method pointer and regular procedure'

Dagon 4. Okt 2003 13:58

Re: prozedur aufruf
 
Wenn du die Prozedur Test im Public-abschnitt von TForm1 deklariesrt, dann gehts!

LoL 4. Okt 2003 14:10

Re: prozedur aufruf
 
Delphi-Quellcode:
unit 2
...
procedure irgendwas;
...
type TMainPanel = class(TPanel)
  procedure Createwas(Sender : TObject);
end;
...
procedure TMainPanel.Createwas(Sender : TObject);
begin
  machwas
end;

procedure irgendwas;
var meinbutton : TButton;
begin
  meinbutton := TButton.create(form1);
  meinbutton.parent := form1;
  meinbutton.onclick := Createwas;
end;
geht aber nicht

Christian Seehase 4. Okt 2003 15:00

Re: prozedur aufruf
 
Moin Christoph,

schau Dir das mal an:

Delphi-Quellcode:
procedure irgendwas;

type TMainPanel = class(TPanel)
  class procedure Createwas(Sender : TObject);
end;

implementation

class procedure TMainPanel.Createwas(Sender : TObject);
begin
  ShowMessage('HALLO');
end;

procedure irgendwas;
var meinbutton : TButton;

begin
  meinbutton := TButton.create(form1);
  meinbutton.parent := form1;
  meinbutton.onclick := TMainPanel.Createwas;
end;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  irgendwas;
end;

LoL 4. Okt 2003 15:06

Re: prozedur aufruf
 
ich will keine klassen prozedur!

Christian Seehase 4. Okt 2003 15:10

Re: prozedur aufruf
 
Moin Christoph,

dann mach's so:

Delphi-Quellcode:
procedure CreateWas(Sender: TObject);
begin
  ShowMessage('HALLO HALLO');
end;

procedure irgendwas;
var meinbutton : TButton;

begin
  meinbutton := TButton.create(form1);
  meinbutton.parent := form1;
  @meinbutton.onclick := @Createwas;
end;
Funktioniert auch.

LoL 4. Okt 2003 15:19

Re: prozedur aufruf
 
was bedeutet das @?

Illuminator-23-5 4. Okt 2003 15:26

Re: prozedur aufruf
 
@ liefert die Adresse der Variable..., die dahintersteht

Dagon 4. Okt 2003 15:26

Re: prozedur aufruf
 
Mit dem @ bildet (referenziert) man die Adresse einer Variablen.


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