![]() |
eigene Klasse Button
Hi,
ich möchte unter anderem einen eigenen Button erstellen, der aus einem Image und einem Label besteht. Wie ich eine Klasse von TImage ableite, steht in meinem schlauen Buch, aber wie kann ich ein Label mit einbinden und das in einer externen Unit? Also kurz gesagt: Wie kann man zwei Komponenten in einer Komponente vereinen? Ich habe überall gesucht, finden tue ich nichts. lG Phiennes |
Re: eigene Klasse Button
Ich weis nicht, welche Delphi Version Du hast. Bei Delphi 5 ist ein SpinEdit im Samples-Ordner, der das schön zeigt.
Zusammengefasst wird im Constructor (Create) der Haupkomponente (hier wohl der Button) dynamisch die weiteren Controls erzeugt. |
Re: eigene Klasse Button
Danke ich probier' das mal aus (hab Delphi 7 prof.), wenn ich auf Probleme stoße, melde ich mich nochmal =).
|
Re: eigene Klasse Button
Hmm irgendwie komme ich doch nicht weiter^^.
Das Label wird einfach nicht angezeigt.
Delphi-Quellcode:
habs rausgefunden es fehlte:
unit bkButton;
interface uses SysUtils, Classes, Controls, Graphics, StdCtrls; type TbkButton = class(TCustomControl) private { Private-Deklarationen } Pressed: byte; BLabel: TLabel; protected { Protected-Deklarationen } procedure Paint; override; public { Public-Deklarationen } constructor Create(AOwner: TComponent); Override; published { Published-Deklarationen } end; procedure Register; implementation procedure Register; begin RegisterComponents('bkModule', [TbkButton]); end; constructor TbkButton.Create(AOwner: TComponent); VAR xw,yw:Integer; begin xw:=200; yw:=22; inherited Create (AOwner); Pressed:=0; SetBounds(0,0,xw,yw); BLabel:= TLabel.Create(self); BLabel.Caption:='bkButtonX'; end; procedure TbkButton.Paint; begin canvas.brush.color:=clred; canvas.Rectangle(0,0,width,height); BLabel.Left:=2; BLabel.Width:=width-4; BLabel.Top:=round(height/2)-6; BLabel.Height:=13; BLabel.Alignment:=taCenter; BLabel.Transparent:=false; BLabel.Visible:=true; BLabel.Color:=clGreen; BLabel.Enabled:=true; end; end.
Delphi-Quellcode:
BLabel.parent:= self;
|
Re: eigene Klasse Button
Setz mal den Parent des Labels.
Versuch es mal so:
Delphi-Quellcode:
BLabel := TLabel.Create(nil);
BLabel.Parent := Self; MfG BAMatze |
Re: eigene Klasse Button
Und vielleicht noch ein
Delphi-Quellcode:
BLabel.Visible := true;
|
Re: eigene Klasse Button
Zitat:
|
Re: eigene Klasse Button
danke^^
|
AW: eigene Klasse Button
Hey Leute,
bin auch gerade an einer Button-Komponente dran.(Nach diesem Beispiel), wie krieg ich es hin dass wenn ich mit der Maus das Label treffe, trotzdem der Button ausgeführt wird? Edit: Gelöst
Delphi-Quellcode:
Canvas.TextOut(round(width/2-Canvas.TextWidth(Caption)/2), round(height/2)-6, Caption);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz