Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Hinzufügen von neuen Ereignissen zu Komponenten (https://www.delphipraxis.net/10754-hinzufuegen-von-neuen-ereignissen-zu-komponenten.html)

DelphiUser7 25. Okt 2003 09:01

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
Hab die Sache (wieder) selbst gelöst; :mrgreen: :mrgreen: :mrgreen: :bouncing4: :bouncing4:

DelphiUser7

iaby 28. Okt 2003 08:17

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
wie kann ich denn jetzt ein neues ereignis z.B onClick zu einer komponente hinzufügen?
ich hab da eine opensource komponente, die das nicht unterstützt und will da jetzt ein onClick event!
wie geht das?
gruss,
iaby

DelphiUser7 28. Okt 2003 09:06

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
Also,
du gehst auf irgendeine Komponente die das OnClick-Ereignis besitzt, und erstellst dieses; da siehst du dann schon mal den Aufbau des Ereignisses;
Dann kopierst du ihn in die Zwischenablage (Strg+C), und fügst ihn nachher so ein (Strg+V):
(für Delphi 7:) Datei -> Neu -> Weitere -> Komponente; bei anderen Delphi-Versionen könnte es etwas anders sein... :-D ;
Bei Vorfahrentyp gibst du die Komponente ein, der du die Eigenschaft hinzufügen möchtest;
KlassenName: //gib den Namen der neuen Klasse bzw. Komponente ein;
Palettenseite: //gib die Palette ein, auf der du deine Neue Komponente wiederfinden willst;
Name der Unit & Suchpfad: //erledigt Delphi für dich;
Auf 'Ok' (nicht 'Installieren'!) klicken;
Hier mal als Beispiel: Meine TrackBar, die mit Mouse-Ereignissen ausgestattet wurde:

Delphi-Quellcode:
unit MouseTrackBar;

interface

uses
  SysUtils, Classes, Controls, ComCtrls;

type
  TMouseTrackBar = class(TTrackBar)
  private
    { Private-Deklarationen }
  protected
    procedure MouseUp(Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer); override;
    procedure MouseDown (Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer); override;
    procedure MouseMove (Shift: TShiftState; X, Y: Integer); override;
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    property OnMouseUp;
    property OnMouseDown;
    property OnMouseMove;
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TMouseTrackBar]);
end;

procedure TMouseTrackBar.MouseUp(Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  inherited;
end;

procedure TMouseTrackBar.MouseDown(Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  inherited;
end;

procedure TMouseTrackBar.MouseMove(Shift: TShiftState; X, Y: Integer);
begin
  inherited;
end;

end.
Habs logischerweise schon längst getestet: funzt;

Gruss
DelphiUser7

iaby 29. Okt 2003 12:11

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
also ich hab das jetzt mal so probiert, wie du es gepostet hast, aber onMouseDown ist im ObjectInspector
immer noch nicht sichtbar!
hier mal der code:
Delphi-Quellcode:
unit DigitLed;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls;

...

type
  TDigitLed = class(TPaintBox)
  private
  ...
  protected
    { Protected declarations }
    ...
    procedure MouseDown(Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer); override;

  public
    { Public declarations }
    ...

  published
    { Published declarations }
    ...
    property OnMouseDown;
  end;

procedure Register;

implementation
{$R DIGITLED.DCR}

procedure Register;
begin
  RegisterComponents('MoonRed', [TDigitLed]);
end;

...

procedure TDigitLed.MouseDown(Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
inherited;
end;

...

end.
die komponente ist nicht von mir, ich benutze sie aber und will nun eine onMouseDown Event(oder OnClick)
ich hab die alte komponente runter geschmissen, die modifizierte feherfrei installiert und es geht
immer noch nicht! woran kann das liegen? Jemand eine Idee?

gruss,
iaby

iaby 29. Okt 2003 15:26

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
ok ich habs hinbekommen, war mein fehler!

wenn ich jetzt aber auf die komponente clicke(hab vorher ein showmessage in die onclick prozedur geschrieben) dann kommt gar nichts!!!
woran liegt das schon wieder? ich verzweifle noch :wall:

gruss,
iaby

iaby 30. Okt 2003 07:14

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
weiß niemand wieso da einfach nichts passiert?
ich habe sonst eigentlich alles richtig gemacht.
jemand einen vorschlag?

gruss,
iaby

DelphiUser7 30. Okt 2003 10:56

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
Oh, da weiss ich nicht, ob ich das lösen kann, weil ich mit dem OnClick-Ereignis schon mal selbst immense Probleme hatte; und wie schon gesagt: Der Code stammt nicht von mir, sondern von Gandalfus; also kann ich dir darüber folglich wenig Auskunft geben; ausserdem hab ich ja die Komponente nicht, weiß also nicht, wie diese Komponente, zumal sie ja bei Delphi normalerweise gar nicht mitgeliefert ist, auf irgendwelche neu hinzugefügten Ereignisse reagiert!; :evil: :evil:

Gruss
DelphiUser7

P.S.: Die Smileys gelten nicht dir, sondern der Komponente :mrgreen: ;

MrKnogge 30. Okt 2003 11:07

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
:wiejetzt:

weden die Ereignisse genauso deklariert wie die Eigenschaften ?
und woher weis Delphi obs n Ereigniss is oder ne Eigenschaft ?
Und woher weis Delphi, auf was dieses Ereigniss reagieren soll ?

Ich bin jetzt sehr verwirrt :gruebel:

DelphiUser7 30. Okt 2003 11:37

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
Die Ereignisse werden so deklariert, wie ich sie in meinem Beispiel angegeben habe; und da funzen alle drei (OnMouseUp, OnMouseDown, OnMouseMove);

Gruss
DelphiUser7

iaby 1. Nov 2003 17:55

Re: Hinzufügen von neuen Ereignissen zu Komponenten
 
also mit onMouseDown hab ichs auch probiert, das ging aber auch nicht!
echt komisch, kein fehler beim kompilieren, alles einwandfrei!

aber reagiert wird darauf eben nicht

gruss,
iaby


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 Uhr.
Seite 2 von 4     12 34      

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