"Event-Übertragung"

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
u-boot
Beiträge: 306
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

"Event-Übertragung"

Beitrag von u-boot »

Mein Problem mit dem ich nich so weiterkomme:

Habe mir untenstehende visuelle Komponente definiert. Der Shape und/oder das Label sollen die gesamte Fläche davon einnehmen.
ich möchte nun dass sämtliche events von TMycreativeidea.FShape und TMycreativeidea.FLabel die events von TMycreativeidea auslösen.

Bsp.: TMycreativeidea.FShape.OnClick soll TMycreativeidea.OnClick auslösen. Die Zuweisung von TMycreativeidea.OnClick soll dann später erfolgen.

Geht das ohne die ganzen Properties neu zu schreiben ?

Code: Alles auswählen

TMycreativeidea = class(TCustomcontrol)
  private
    { Private declarations }
    property width;
    property height;
  protected
    { Protected declarations }
    FLabel:TLabel;
    FShape:Tshape;
    FSize:Integer;
    procedure SetCaption(const value: String);
    procedure SetSize(const value: Integer);
    function GetCaption: String;
    function GetSize: Integer;
    //}
  public
    { Public declarations }
    constructor Create(AOwner:TComponent); override;
  published
    { Published declarations }
    property Size: Integer read Getsize write Setsize;
    property Caption: String read GetCaption Write SetCaption;
  end;


P.S. ... wenns vielleicht eher zu Komponenten passt als zum Einsteigerforum, dann bitte verschieben.....
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: "Event-Übertragung"

Beitrag von Targion »

Du erstellst eine private Methode für FShape.OnClick und verbindest diese mit FShape. Innerhalb dieser neuen Methode wird dann das Event TMyCreativeIde.OnClick aufgerufen. (Natürlich musst du die Events erst noch definieren)

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: "Event-Übertragung"

Beitrag von pluto »

@U-boot: Genau das habe ich dir doch auch schon gesagt. Du musst erst ein Methode erstellen die du dann zuweist. In etwa so:

Code: Alles auswählen

procedure TKlasse.DoClick(Sender:TObject);
begin
  if Assigned(onClick) then onClick(Sender);
end;

Dann musst du sie natürlich auch nutzen von außen. Schau dir mal dazu das hier an:
http://www.delphi-treff.de/sprachen/obj ... denzeiger/
vielleicht hilft das.
MFG
Michael Springwald

Antworten