AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi OnMouseDown Methode hinzufügen->Label wird per Code erstellt
Thema durchsuchen
Ansicht
Themen-Optionen

OnMouseDown Methode hinzufügen->Label wird per Code erstellt

Ein Thema von Danyel · begonnen am 27. Mär 2010 · letzter Beitrag vom 28. Apr 2010
 
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#13

Re: OnMouseDown Methode hinzufügen->Label wird per Code e

  Alt 9. Apr 2010, 17:20
Zitat von Danyel:
Ich erhalte folgende Fehlermeldung und finde keine Lösung:

[Fehler] Unit2.pas(244): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
Vielleicht wird das elles verständlicher, wenn du dir mal die Deklaration von OnMouseDown anschaust:
Delphi-Quellcode:
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;
Sodale, was sehen wir hier?
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
MyButton.OnMouseOver := MeineMouseOverProcedure; 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:
Delphi-Quellcode:
if Assigned(fOnMouseOver) then // Wenn der Zeiger keinen Mist erzählt
  fOnMouseOver(Self, mbLeft, BlaBliBlub); // Deine Procedure aufrufen
Das ist das ganze Geheimnis der Events
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 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