![]() |
LabelPanel dringend gesucht!
Mahlzeit liebe Gemeinde ;o)
Ich habe da eine Frage (was auch sonst *gg*)... Ich benötige ein Panel, auf dem mehrere Panels "angebracht" werden... Die Labels sollen über die Property Items zugewiesen werden können... Weiss jemand wie so was geht, oder hat gar jemand eine fertige komponente davon??? Bitte melden, dringend!!! Danke im Voraus! |
Re: LabelPanel dringend gesucht!
Zitat:
|
Re: LabelPanel dringend gesucht!
sorry...
stress :wall: nein ich möchte EIN Panel auf dem beliebig viele Labels sind... |
Re: LabelPanel dringend gesucht!
Gut dann schreibe 'ne Ableitung von TPanel mit der property Items. Wenn diese gesetzt wird, dann erzeugst du soviele Labels wie du Zeilen bei Items hast. Verwalten kannst du das ganze intern mit der ObjectList.
|
Re: LabelPanel dringend gesucht!
hmmm...
gibt es da nicht schon was fertiges? eventuell?!?! bin ein wenig unter zeitdruck... bei torry und co. war ich schon... :? ... negativ! |
Re: LabelPanel dringend gesucht!
Ist doch maximal ne halbe Stunde Arbeit!
Ob es somwas fertig gibt -> keine Ahnung. |
Re: LabelPanel dringend gesucht!
Zitat:
als azubi also 30 tage ;o) |
Re: LabelPanel dringend gesucht!
ähm,...
... wieso nimmst du nicht einfach ein Panel und platzierts darauf einfach so viele Labels wie du magst? Oder verstehe ich dich falsch? Bräuchtest nämlich nix zu schreiben. |
Re: LabelPanel dringend gesucht!
Willst du was lernen oder nicht?!
Mit Klassen hast du schon gearbeitet? |
Re: LabelPanel dringend gesucht!
ääähm bisher noch ned...
objekte in ner liste und dann werte daraus in n stringgrid schreiben... das war das einzige bisher |
Re: LabelPanel dringend gesucht!
Hier mal ein grober Anfang der Klasse.
Delphi-Quellcode:
TLabelPanel = class(TCustomPanel)
private FLabels: TObjectList; FItems: TStrings; procedure SetItems(Value: TStrings); public constructor Create(aOwner : TComponent); override; destructor Destroy; override; property Items: TStrings read FItems write SetItems; end; |
Re: LabelPanel dringend gesucht!
und die .create methode eta so, richtig?
dann bin ich auf dem richtigen dampfer...
Delphi-Quellcode:
procedure TLabelPanel.CreateLabels(aValues:TStringList);
var count:integer; DaLabel:TLabel; begin for count:=0 to aValues.Count do begin DaLabel:=TLabel.create(nil); DaLabel.Caption:=aValues.Strings[count]; // etc... end; end; |
Re: LabelPanel dringend gesucht!
Ich würde mich mal nur in dem SetItems um die Labels kümmern:
Delphi-Quellcode:
So steuerst du das ganze:
constructor TMultiLinePanel.Create(aOwner: TComponent);
begin inherited Create(aOwner); FLabels := TObjectList.Create(true); FItems := TStringList.Create; end; destructor TMultiLinePanel.Destroy; begin if Assigned(FLabels) then begin FLabels.Free; end; if Assigned(FItems) then begin FItems.Free; end; inherited Destroy; end; procedure TMultiLinePanel.SetItems(Value: TStrings); var aLabel : TLabel; i : integer; begin FLabels.Clear; for i := 0 to Value.Count - 1 do begin; aLabel := TLabel.Create(nil); aLabel.Parent := self; aLabel.AutoSize := true; aLabel.Top := self.Height div (Value.Count + 1) * (i + 1); aLabel.Left := 8; aLabel.Caption := Value.Strings[i]; FLabels.Add(aLabel); end; FItems.Text := Value.Text; end;
Delphi-Quellcode:
MyPanel := TMultiLinePanel.Create(self);
MyPanel.Parent := self; ts := TStringList.Create; try ts.Add('bla'); ts.Add('blubb'); MyPanel.Items := ts; finally ts.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 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