![]() |
Listbox Eintäge in TLabel anzeigen.
Hallo, ich möchte gerne die werte einer listbox in einem Label anzeigen lassen.
Z.B. Listboxeiträge Affe Hund Katze Dann
Delphi-Quellcode:
Ich möchte aber gerne, dass die alle untereinander stehen.
Label.Caption := Listbox.Items[i] (for-Schleife).
Also irdendwie so:
Delphi-Quellcode:
Wie kann ich das machen?
Label.Caption := Listbox.Items[0] +#13#10 + Listbox.Items[1] +#13#10 + Listbox.Items[2]+ etc.
Geht es, dass man dann für die einzelnen Werte nochwas hinzufügt, z.B "87". Dann würde das im Label so aussehen. Affe 87 Hund 87 Katze 87 Danke im voraus :-D |
Re: Listbox Eintäge in TLabel anzeigen.
Delphi-Quellcode:
So hast du die Einträge der ListBox untereinander im Label. Wenn du dahinter etwas einfügen möchtest, könntest du per for-Schleife an die einzelnen Items der ListBox den gewünschten String anhängen.
Label1.Caption := ListBox1.Items.Text;
|
Re: Listbox Eintäge in TLabel anzeigen.
Wenn Du im Label AutoSize auf false und Wordbreak auf true stellst, hast Du die Lösung ja (fast) schon selbst gepostet.
[edit] Habe gerade festgestellt, dass die genannten Einstellungen noch nicht einmal nötig sind. [/edit] |
Re: Listbox Eintäge in TLabel anzeigen.
Zitat:
Delphi-Quellcode:
for i := listbox.items.count -1 to 0 do
begin listbox.items.text[i] + '87'; end; |
Re: Listbox Eintäge in TLabel anzeigen.
Zitat:
|
Re: Listbox Eintäge in TLabel anzeigen.
Zitat:
Delphi-Quellcode:
Du kannst das '87' aber auch erst bei der Ausgabe anhängen:
Listbox1.Items[i] := Listbox.Items[i] + '87';
Delphi-Quellcode:
var
i: Integer; begin Label1.Caption := '';//Label leeren for i := 0 to Pred(Listbox1.Items.Count) do//alle Einträge durchgehen Label1.Caption := Label1.Caption + Listbox1.Items[i] + ' 87' + sLineBreak; //aktuellen Eintrag, die '87' und einen Zeilenumbruch anhängen end; |
Re: Listbox Eintäge in TLabel anzeigen.
Quatsch, was ich da geschrieben habe.
Delphi-Quellcode:
klappt schon mal, nur halt nicht der der selber reihe, sonder immer eine drunter. :gruebel:
listbox.items.text + '87'
|
Re: Listbox Eintäge in TLabel anzeigen.
Zitat:
|
Re: Listbox Eintäge in TLabel anzeigen.
Zieh das Label mal höher, vielleicht ist es nur zu klein.
|
Re: Listbox Eintäge in TLabel anzeigen.
Ne daran liegt es nicht.
Hier mein Code, vielleicht ist da ein Fehler?
Delphi-Quellcode:
procedure TForm1.add_btnClick(Sender: TObject);
var anzahl : integer; begin for anzahl := 0 to Pred(lehrer_list.Items.Count) do if lehrer_cb.ItemIndex = -1 then begin Application.MessageBox('Wählen Sie bitte eine betroffene Lehrkraft aus!', 'Fehler', MB_ICONINFORMATION or MB_OK); end; if (lehrer_cb.ItemIndex >= 0)then begin lehrer_list.AddItem(lehrer_cb.Text,lehrer_list); lehrer.Caption := lehrer_list.Items[anzahl] + ' : _______________' + sLineBreak; end; end; |
Re: Listbox Eintäge in TLabel anzeigen.
Hallo,
ich habe mir das nicht alles durchgelesen, aber eines ist mir aufgefallen: Du greifst außerhalb der Schleife auf die Laufvariable "anzahl" zu. Das würde ich nicht unbedingt machen, falls es beabsichtigt ist. Grüße |
Re: Listbox Eintäge in TLabel anzeigen.
Da fehlt ganz einfach ein begin..end. Denn jetzt wird nur der Befehl, der unmittelbar nach dem do steht, in der Schlaife ausgeführt. Der Teil, wo die Items ans Label angehängt werden, wird erst nach der Schleife ausgeführt, und dann hat die Zählvariable den Wert des höchsten Index, weshalb nur das letzte Item angehängt wird. Also: Nach dem do ein begin, und am ende ein end;
|
Re: Listbox Eintäge in TLabel anzeigen.
habs jetzt so und es klappt nicht :gruebel:
Delphi-Quellcode:
Wofür ist denn das eigentlich?
procedure TForm1.add_btnClick(Sender: TObject);
var anzahl : integer; begin if lehrer_cb.ItemIndex = -1 then begin Application.MessageBox('Wählen Sie bitte eine betroffene Lehrkraft aus!', 'Fehler', MB_ICONINFORMATION or MB_OK); end; if (lehrer_cb.ItemIndex >= 0)then begin lehrer_list.AddItem(lehrer_cb.Text,lehrer_list); for anzahl := 0 to Pred(lehrer_list.Items.Count) do begin lehrer.Caption := lehrer_list.Items[anzahl] + ' : _______________' + #13#10; end; end; end;
Delphi-Quellcode:
Pred(lehrer_list.Items.Count)
|
Re: Listbox Eintäge in TLabel anzeigen.
hoi,
Zitat:
Du ersetzt damit 'lehrer_list.Items.Count-1' . zum code: lehrer_list ist eine listbox ?
Delphi-Quellcode:
so müsste es gehen ;)
begin
if (lehrer_cb.ItemIndex < 0) then begin Application.MessageBox('Wählen Sie bitte eine betroffene Lehrkraft aus!', 'Fehler', MB_ICONINFORMATION or MB_OK); end else // ItemIndex ist damit >= 0 begin lehrer_list.Items.Add(lehrer_cb.Text); lehrer.Caption := EmptyStr ; for anzahl := 0 to Pred(lehrer_list.Items.Count) do begin lehrer.Caption := lehrer.Caption + lehrer_list.Items.Strings[anzahl] + ' : _______________' + #13#10; end; end; end; cya |
Re: Listbox Eintäge in TLabel anzeigen.
Jawohl, super :thumb: :thumb:
Vielen Dank. Wo wir grad beim Thema sind: Ich möchte dann dieses Label ausdrucken. Das Problem ist, das Canvas '#13#10' ignoriert, das heißt die Werte werden intereinander bis über das Blatt hinaus ausgedruckt. Weiß jemand wie man das lösen könnte? Danke |
Re: Listbox Eintäge in TLabel anzeigen.
Neue Frage, neuer Thread bitte.
|
Re: Listbox Eintäge in TLabel anzeigen.
Okay! :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 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