AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eigene Kompo von TButton ableiten? Wie OnClick realisieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Kompo von TButton ableiten? Wie OnClick realisieren?

Ein Thema von winx · begonnen am 12. Jun 2008 · letzter Beitrag vom 13. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#1

Eigene Kompo von TButton ableiten? Wie OnClick realisieren?

  Alt 12. Jun 2008, 13:43
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
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier

  Alt 12. Jun 2008, 14:10
OnClick ableiten? OnClick ist doch nur eine Property für ein closure... - hä?

Und was heisst "geht nicht?"?
  Mit Zitat antworten Zitat
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#3

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier

  Alt 12. Jun 2008, 14:30
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.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier

  Alt 12. Jun 2008, 14:59
Verstanden, aber...

Zitat von Muetze1:
Und was heisst "geht nicht?"?
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier

  Alt 12. Jun 2008, 15:02
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ß
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier

  Alt 12. Jun 2008, 15:05
Ausserdem macht die Methode etwas anderes, nämlich den Klick auslösen
Markus Kinzler
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier

  Alt 12. Jun 2008, 15:07
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.
  Mit Zitat antworten Zitat
xxl1

Registriert seit: 21. Apr 2006
88 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier

  Alt 12. Jun 2008, 15:09
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier

  Alt 12. Jun 2008, 15:10
Zitat von Delphi Hilfe:
Simuliert einen Mausklick durch den Benutzer auf eine Schaltfläche.
Markus Kinzler
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier

  Alt 12. Jun 2008, 15:10
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:05 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