Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Eigene Kompo von TButton ableiten? Wie OnClick realisieren? (https://www.delphipraxis.net/115457-eigene-kompo-von-tbutton-ableiten-wie-onclick-realisieren.html)

winx 12. Jun 2008 12:43


Eigene Kompo von TButton ableiten? Wie OnClick realisieren?
 
Hallo,

wenn ich mir selbst ne Komponente schreibe und diese von TButton ableiten möchte, klappt bisher fast alles.

Nun möchte ich jedoch, bei einem Klick auf den Button meine abgeleitet Kompo aufrufen.

Wie muß ich dazu das OnClick Ereignis des Buttons ableiten?

Delphi-Quellcode:
//...
type
  TMyButton = class(TButton)
  private
    fActionGroup : TActionGroup;

  protected

  public
    property Actiongroup: TActionGroup read factiongroup write fActionGroup;
    procedure Click();override;  //Geht Nicht
  published
    { Published declarations }
  end;

procedure Register;
//...

implementation
Danke,
winx

Muetze1 12. Jun 2008 13:10

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
 
OnClick ableiten? OnClick ist doch nur eine Property für ein closure... - hä?

Und was heisst "geht nicht?"?

winx 12. Jun 2008 13:30

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
 
nein, was ich möchte ist, dass ich, wenn ich auf den Button klicke, in meine eigene Funktion springe, die ich in der MyButton Klasse deklariert habe.

Muetze1 12. Jun 2008 13:59

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
 
Verstanden, aber...

Zitat:

Zitat von Muetze1
Und was heisst "geht nicht?"?


Alter Mann 12. Jun 2008 14:02

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
 
Hi

sollte es nich so heißen?
Delphi-Quellcode:
//...
type
  TMyButton = class(TButton)
  private
    fActionGroup : TActionGroup;

  protected
    procedure Click();override;  
  public
    property Actiongroup: TActionGroup read factiongroup write fActionGroup;
  published
    { Published declarations } 
  end;
...
TButton stammt von TButtonControl ab und das wiederum von TWinControl und damit ist Click -> protected.

Gruß

mkinzler 12. Jun 2008 14:05

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
 
Ausserdem macht die Methode etwas anderes, nämlich den Klick auslösen

Muetze1 12. Jun 2008 14:07

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
 
Zitat:

Zitat von Alter Mann
TButton stammt von TButtonControl ab und das wiederum von TWinControl und damit ist Click -> protected.

Nein, laut meiner Hilfe ist Click Public und ich weiss auch, dass ich die Methode schon öfter mal von aussen aufgerufen habe, um einen Click des Buttons zu erreichen. Und selbst wenn, würde höchstens eine Sichtbarkeitswarnung vom Compiler erscheinen.

Grundlegend ist an dem Code nichts falsch, von daher möchste ich endlich mal geklärt wissen, was "geht nicht" heisst!

/EDIT: richtig, und wenn wir endlich mal die schon vermutete Fehlerbeschreibung haben, dann können wir auf Delphi-Referenz durchsuchenDoClick Delphi-Referenz durchsuchenCN_COMMAND mit Delphi-Referenz durchsuchenBN_CLICKED verweisen. Aber so lange die Leute keine ordentliche Fehlerbeschreibung abgeben und nur schreiben "geht nicht", bin ich nicht bereit mein Wissen zu offerieren. Wer ordentlich mitarbeitet und gute Fehlerbeschreibungen bzw. Fragen liefert, bekommt auch ebenbürtige Antworten/Lösungen.

xxl1 12. Jun 2008 14:09

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
 
du musst dem Button.onclick ne methode zuweisen wenn du den button creates, geht aber später glaub ich auch noch....

Delphi-Quellcode:
...
Button.OnClick:=deine_procedure;
...
end;

procedure deine_procedure(Sender: TObject);
begin
// Das hier wird ausgeführt...
end;
//edit: wenn du kleinlich mit hobbyprogrammierern sein willst muetze...bitte

mkinzler 12. Jun 2008 14:10

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
 
Zitat:

Zitat von Delphi Hilfe
Simuliert einen Mausklick durch den Benutzer auf eine Schaltfläche.


Muetze1 12. Jun 2008 14:10

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
 
Zitat:

Zitat von xxl1
du musst dem Button.onclick ne procedure zuweisen wenn du den button creates, geht aber später glaub ich auch noch....

Delphi-Quellcode:
...
Button.OnClick:=deine_procedure;
...
end;

procedure deine_procedure(Sender: TObject);
begin
// Das hier wird ausgeführt...
end;

1. Kannst du nur Methoden zuweisen und keine Proceduren
2. Schön wenn im Objektinspektor das OnClick Ereignis nicht mehr nutzbar ist, da die Komponente sich selbst belegt. Die ist doch dann recht schlecht nutzbar, oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 Uhr.
Seite 1 von 2  1 2      

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