![]() |
Labels sollen gleich Aussehen und gleiches Verhalten haben
Hallo,
ich habe folgendes Prob, (naja mal gucken, ob es überhaupt ein Problem ist) Ich besitzte ungefähr 10 Labels, die jeweils eine Einheit anzeigen Beispiel (sind natürlich nicht die richtigen Namen)
Delphi-Quellcode:
Mein Problem ist jetzt ich schalte die Einheit um, dass heißt ich ändere dann auch alle Einheitlabels.
Label1.Caption:='[°C];
Label2.Caption:='[°C]; Label3.Caption:='[°C]; Label4.Caption:='[°C]; Label5.Caption:='[°C]; // .. Klar ich könnte mir so eine Prozedur schreiben
Delphi-Quellcode:
oder die Labels in ein Array packen (bzw die Referenzen auf die Labels.
procedure (aLabel:TLabel,Einheit:String)
begin aLabel.Caption:='Einheit'; end; Aber ich würde gerne das die Labels sich genau gleich verhalten. Also Label1 Änderung hat auch Auswirkung auf Label(n).. Vielleicht ist dass ja , wenn ich genau drüber nachdenke gar nicht so toll, aber so würde ich das gerne haben. Vielleicht könnt ihr mir ja helfen.. Gruß DelphiManiac |
Re: Labels sollen gleich Aussehen und gleiches Verhalten hab
Willst du es mit allen Labels auf der Form/WinControl, oder nur mit bestimmten machen?
|
Re: Labels sollen gleich Aussehen und gleiches Verhalten hab
Zitat:
|
Re: Labels sollen gleich Aussehen und gleiches Verhalten hab
Hi,
ich will das nur mit bestimmten machen (sont könnte ich ja mit FindComponent arbeiten)... |
Re: Labels sollen gleich Aussehen und gleiches Verhalten hab
Hi, ja ich denke ne Methode für die Form,
die mir dann alle Labels (die in der Methode sind) ändert ist wohl am einfachsten... |
Re: Labels sollen gleich Aussehen und gleiches Verhalten hab
Hi!
pack doch deine Labels auf ein Panel und arbeite dies durch: etwa so:
Delphi-Quellcode:
var
i: integer; begin for i:= 0 to Panel1.ControlCount-1 do If Panel1.Controls[i] is TLabel then with Panel1.Controls[i] as TLabel do begin Caption:= 'Hier die geänderte Caption'; end; Hier kannst du ganz gezielt nur die Labels verändern, die du auf dem Panel platziert hast. Wenn du es nur mit bestimmten machen willst, könntst du den .Tag bei den Labels beschreiben und dann noch eine If-Abfrage einfügen, etwa so:
Delphi-Quellcode:
var
i: integer; begin for i:= 0 to Panel1.ControlCount-1 do If Panel1.Controls[i] is TLabel then with Panel1.Controls[i] as TLabel do begin If Tag = 1 then Caption:= 'Hier die geänderte Caption'; end; Gruß Pfoto |
Re: Labels sollen gleich Aussehen und gleiches Verhalten hab
Hi Pfoto,
ja das wäre ne Idee, nur leider sind meine Labels quer in der ganzen Anwendung verteilt, deswegen kann ich sie nicht auf ein Panel packen. |
Re: Labels sollen gleich Aussehen und gleiches Verhalten hab
Und warum definierst du nicht eine Funktion, die
einfach aktuell prüft, welche Einstellungen du vorgenomme hast und die dann die entsprechende Einheit zurückliefert?
Delphi-Quellcode:
Die Funktion "GetCurrentUnit" müsste dann global vorliegen.
label1.caption:= GetCurrentUnit;
Gruß Pfoto |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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 by Thomas Breitkreuz