Autor Beitrag
Sepharas
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 18.07.10 14:24 
hi leute,
hab ein kleines problem in meinem programm... das ist schon ziemlich groß, deßhalb schreibe ich mal hier die (meiner einschätzung nach) notwendigen zeilen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
  tTWButton = class
    pic : tImage;
    procedure TWBenddrag (Sender: TObject; Button: TMouseButton;
                          Shift: TShiftState; X, Y: Integer);
    procedure TWBmousedown (Sender, Target: TObject; X, Y: Integer);
  end;

procedure tTWButton.TWBenddrag;
begin
  //irgendein Quelltext
end;




krieg dann in ner prozedure bei dieser zeile:

ausblenden Delphi-Quelltext
1:
TWButton[zähler].pic.OnEndDrag := TWButton[zähler].TWBenddrag;					


fehlermeldung incompatible types TObject and TMousebutton
(TWButton ist als array of tTWButton definiert)



das hier geht zb:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
tTurm=class
       feld : tImage;
       procedure Klick (Sender: TObject);
end;

procedure tTurm.Klick;
begin
  showmessage('HALLO!!!');
end;


in igendeiner procedure:

ausblenden Delphi-Quelltext
1:
feld.onClick := Klick;					




Vielen Dank schonmal im Vorraus für eure bemühungen.

Libe Grüße

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: So 18.07.10 14:47 
Also eigentlich müssen die Signaturen der Methoden immer passen.

Also wenn das ein TNotifyEvent ist, dann muss die Methodensignatur passen damit die Zuweisung okay ist. Ob das bei dir der Fall ist, kann ich jetzt leider nicht erkennen...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 18.07.10 17:29 
user profile iconSepharas hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
    procedure TWBenddrag (Sender: TObject; Button: TMouseButton;
                          Shift: TShiftState; X, Y: Integer);

procedure tTWButton.TWBenddrag;
begin
  //irgendein Quelltext
end;
fehlermeldung incompatible types TObject and TMousebutton
Der Fehler rührt daher, dass soweit ich mich erinnere OnEndDrag Sender und Target sowie die Koordinaten bekommt. Wie du da auf TMouseButton und TShiftState kommst, weiß ich nicht, das sieht eher nach einem Mouseevent aus.

Schau einfach nach wie OnEndDrag richtig aussieht.

Dann noch etwas zu den Namen: Es ist Konvention Typbezeichner mit einem großen T zu beginnen. Also TImage usw., es ist keine gute Idee deine Methoden (TWBenddrag, ...) so zu nennen. Das irritiert enorm...

Außerdem solltest du die Parameter auch bei der Methodenimplementierung dazuschreiben. Das ist übersichtlicher, auch wenn es theoretisch (leider) auch so geht wie du es geschrieben hast.
Sepharas Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 18.07.10 18:33 
omfg bin ich doof...

hatte in dem objekt ein enddrag event und ein mousedown event... und hatte dann die parameter ganau vertauscht :D

hatte das schon seit 2 tagen und hab alles mögliche ausprobiert...

DANKE an euch alle

hättet ihr mich net darauf aufmerksam gemacht dass das wohl en mouseevent ist, hätt ich das wahrscheinlich nicht hinbekommen

DANKE DANKE DANKE