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
Antwort Antwort
Seite 2 von 2     12   
Danyel

Registriert seit: 7. Okt 2009
Ort: Lübeck
15 Beiträge
 
Delphi 5 Standard
 
#11

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

  Alt 9. Apr 2010, 14:30
Ich stehe gerade echt auf dem Schlauch.
Beim Erstellen der Lables habe ich angegeben:
mylabel.onmousedown:=aktivieren;
Über der Procedure welche die Labels erstellt habe ich folgende Procedure:

Delphi-Quellcode:
procedure aktivieren(Sender:TObject);
begin
      move:=true;
end;
Ich erhalte folgende Fehlermeldung und finde keine Lösung:

[Fehler] Unit2.pas(244): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'




[edit=mkinzler]Delphi-Tags eingefühgt Mfg, mkinzler[/edit]
Auch wenn am Ende dein Programm nicht läuft,
so bist mit dem Weg gewachsen und nichts war
umsonst!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#12

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

  Alt 9. Apr 2010, 14:34
Delphi-Quellcode:
type
  TForm1= class(TForm)
  private
    procedure aktivieren(Sender: TObject);
    ...

implementation

procedure TForm1.aktivieren(Sender: TObject);
begin
  //Code
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
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
Danyel

Registriert seit: 7. Okt 2009
Ort: Lübeck
15 Beiträge
 
Delphi 5 Standard
 
#14

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

  Alt 11. Apr 2010, 14:04
ahhhhh vielen dank!
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
Auch wenn am Ende dein Programm nicht läuft,
so bist mit dem Weg gewachsen und nichts war
umsonst!
  Mit Zitat antworten Zitat
Danyel

Registriert seit: 7. Okt 2009
Ort: Lübeck
15 Beiträge
 
Delphi 5 Standard
 
#15

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

  Alt 28. Apr 2010, 12:40
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.
Auch wenn am Ende dein Programm nicht läuft,
so bist mit dem Weg gewachsen und nichts war
umsonst!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz