Autor Beitrag
ensacom
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 01.01.05 21:48 
Hallo, ich habe eine unit in der ich folgende Procedure habe.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
 procedure KomponenteMouseDown (Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TWinControl(Sender).Perform(WM_LBUTTONUP, 00);
  TWinControl(Sender).Perform(WM_SysCommand, SC_MOVE+22);
end;


Außerdem habe ich eine Procedure mit der ich einige images zur Laufzeit erzeuge.
Nun wollte ich mit

onMouseDown := KomponenteMouseDown die zuvor genannte Procedure zuweisen.
Ich erhalte jedoch immer nur folgende Fehlermeldung

Zitat:
[Fehler] commands.pas(72): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'


Was stimmt denn da nicht?

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
Moderiert von user profile iconTino: Quote-Tags hinzugefügt.
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 01.01.05 22:58 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.KomponenteMouseDown (Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TWinControl(Sender).Perform(WM_LBUTTONUP, 00);
  TWinControl(Sender).Perform(WM_SysCommand, SC_MOVE+22);
end;


Ich würde darauf tippen, dass du vielleicht auch KomponenteMouseDown als Methode von TForm1 deklarieren musst. Probiers mal aus und vergess nicht, die Deklaration auch oben zu ändern!

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
ensacom
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 01.01.05 23:52 
Danke, aber das hilft mir leider nicht weiter.

Form1 ist ein Splashscreen.
dann habe ich noch 5 andere Forms auf denen Buttons liegen die zur Laufzeit erzeugt werden.

Aus diesem Grund wollte ich eine unit haben in der alle Proceduren stehen, die von jeder form benutzt werden.

Kann man dass denn wirklich nicht ohne form machen?

Danke
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: So 02.01.05 00:36 
Hallo!

Du musst die Procedure auf jeden Fall in eine Klasse packen (dadurch wird sie zu einer Methode) da alle On...-Events eine Methode erwarten. Ob das jetze eine Form-Klasse ist oder sonst eine ist egal. Hauptsache die Procedure befindet sich in einer Klasse!

Gruß
Tino