Hallo, bin am verzweifeln.
Ich erzeuge einen Button zur Laufzeit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure ZielPunktErstellen; begin GetCursorPos(mouseposition); mouseposition := Form1.ScreenToClient(mouseposition); If (Mouseposition.x > 630) OR (Mouseposition.y < 64) then exit; BZiel := TFlatButton.Create(Form1); BZiel.Parent := Form1; BZiel.Left := mouseposition.x-12; BZiel.Top := mouseposition.y-12; BZiel.Color := clred; BZiel.ColorBorder := $FFFFFFFF; BZiel.ColorDown := clred; BZiel.ColorFocused := clred; BZiel.ColorHighLight := $FFFFFFFF; BZiel.ColorShadow := $FFFFFFFF; BZiel.OnClick := ZielPunktClick; end; |
Die aufgerufene Prozedur ZielPunktClick :
Delphi-Quelltext
1: 2: 3: 4:
| procedure ZielPunktClick(Sender: TObject); begin Form2.Show; end. |
Die Zeile die das OnClick zuweist erzeugt den Fehler "Inkompatible Typen: Methodenzeiger und reguläre Prozedur".
Was ist da falsch, alle Beispiele die ich dazu gefunden habe funktionieren doch so simple, oder überseh ich das dauernd was?
Danke, Gruß, Stephan
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt