moin,
für mein projekt erzeuge ich TShapes dynamisch und möchtre ihnen zur laufzeit eine OnMouseDown-prozedur an hängen, der compiler meckert aber
[Fehler] UKlavier.pas(102): E2010 Inkompatible Typen: 'TShape' und 'Class reference'
die erzeugung funktioniert einwandfrei.
das ist der Teil wo zugewiesen wird:
Delphi-Quellcode:
procedure TFKlavier.FormCreate(Sender: TObject);
var i, Count: integer;
begin
Count:= 1;
...
for i:= 55 to 84 do
begin
Klaviatur[i].Taste.Tag:= i;
Klaviatur[i].Taste.OnMouseDown:= TFKlavier.TasteDruecken(TShape);
end;
end;
und das ist die prozedur die zugewiesen werden soll:
Delphi-Quellcode:
procedure TFKlavier.TasteDruecken(Sender: TShape);
begin
if Sender is TShape then
FMain.MidiOutput.PutShort($90, Sender.Tag, 65);
end;
danke.