![]() |
Re: OnMouseDown Methode hinzufügen->Label wird per Code e
Ich stehe gerade echt auf dem Schlauch.
Beim Erstellen der Lables habe ich angegeben:
Delphi-Quellcode:
mylabel.onmousedown:=aktivieren;
Über der Procedure welche die Labels erstellt habe ich folgende Procedure:
Delphi-Quellcode:
Ich erhalte folgende Fehlermeldung und finde keine Lösung:
procedure aktivieren(Sender:TObject);
begin move:=true; end; [Fehler] Unit2.pas(244): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur' :wall: :wiejetzt: [edit=mkinzler]Delphi-Tags eingefühgt Mfg, mkinzler[/edit] |
Re: OnMouseDown Methode hinzufügen->Label wird per Code e
Delphi-Quellcode:
type
TForm1= class(TForm) private procedure aktivieren(Sender: TObject); ... implementation procedure TForm1.aktivieren(Sender: TObject); begin //Code end; |
Re: OnMouseDown Methode hinzufügen->Label wird per Code e
Zitat:
Delphi-Quellcode:
Sodale, was sehen wir hier?
type
TMouseEvent = procedure(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) of object; TControl = class(TComponent) private // ... FOnMouseDown: TMouseEvent; // ... property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown; // ... end; 1) Deine Procedure braucht folgende Parameter: Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer 2) Das ist eine Procedure of Object, das heißt, diese Procedure muss ein Teil eines Objektes sein, in deinem Fall deiner Form. Ein paar erklärende Worte: FOnMouseDown ist eine Variable, die einen Zeiger auf deine selbst erstellte Procedure enthält. Dies geht aber nur bei Objekten (warum wüsste ich auch gerne -.-). Mit
Delphi-Quellcode:
setzt du diesen Zeiger auf deine Procedure. Später, wenn die Maus über den Button gefahren wird, bekommt der Button dies mit und muss nur noch folgendes aufrufen:
MyButton.OnMouseOver := MeineMouseOverProcedure;
Delphi-Quellcode:
Das ist das ganze Geheimnis der Events :zwinker:
if Assigned(fOnMouseOver) then // Wenn der Zeiger keinen Mist erzählt
fOnMouseOver(Self, mbLeft, BlaBliBlub); // Deine Procedure aufrufen |
Re: OnMouseDown Methode hinzufügen->Label wird per Code e
ahhhhh vielen dank! :wall:
haha ich hatte meine procedure schonmal mit den Variablen erstellt (die Originale kopiert und name geändert) aber vergessen diese oben über der Implementation einzutragen. Auf jeden Fall habe ich es nun besser verstanden denn je und werde bald möglichst hoffentlich von weiteren Erfolgen berichten können. Bis dahin noch einen schönen Sonntag. EDIT DANKE! Nun klappt es, werde heute die Bewegung der Labels in Angriff nehmen, gefolgt von der Verknüpfung mit dem Starten der gewählten EXE Dateien. Sollte eigentlich kein Problem mehr darstellen. Ich meld' mich |
Re: OnMouseDown Methode hinzufügen->Label wird per Code e
Ich mache einen 2ten Doppelpost, damit man erkennt, dass hier was geändert wurde.
Das Thema kann geschlossen werden, alles hat geklappt. Ist der funktioniernde Code erwünscht? Kann den nachreichen, sobald ich zu Hause bin. MfG Danyel S. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 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