![]() |
Re: CheckListBox und Memo verwenden
oder anders ausgedrückt
Delphi-Quellcode:
das war mein ansatz :-(
( Blume) Memo1.Text := "ich bin eine Tulpe";
( Wasser) Memo2.Text := "brauche wenig wasser"; (Licht) Memo3.Text :=" aber viel licht; ChecklistBox1.Items.Add('Blume'); ChecklistBox1.Items.Add('Wasser'); ChecklistBox1.Items.Add('Luft'); ChecklistBox1.Items.Add('Licht'); |
Re: CheckListBox und Memo verwenden
Da kommen wir der Sache doch schon näher:
Delphi-Quellcode:
Vorraussetzung ist, dass die Reihenfolge identisch ist. Man könnte jetzt die Zusatzinfos als Objekt an die Listbox-Eintäge hängen, aber ich glaube, das übersteigt deinen Kenntnisstand noch etwas. Vorteile aber wäre, dass man die Einträge sortieren könnte, ohne Rücksicht auf das Array mit den Daten nehmen zu müssen.
var
Info: array[0..3] of String = ('Zusatzinfos zu Blumen', 'Zusatzinfos zu Wasser', 'Zusatzinfos zu Luft', 'Zusatzinfos zu Licht'); procedure TForm3.CheckListBox1Click(Sender: TObject); begin if CheckListBox1.ItemIndex > -1 then begin Memo1.Clear; Memo1.Text := Info[CheckListBox1.ItemIndex]; end; end; Du brauchst nicht für jeden Eintrag ein Memo. |
Re: CheckListBox und Memo verwenden
das ist ja auch wieder eine verbesserung wenn ich nur ein Memo brauch
klasse. schuldigung noch mal für meine komplizierte ausdrucksweise :-) |
Re: CheckListBox und Memo verwenden
Zitat:
|
Re: CheckListBox und Memo verwenden
:Kunoishi
Eigentlich ist das was du willst nicht schwer, aber ich weiß nicht ob du den Code verstehst;
Delphi-Quellcode:
Zuerst wird eine einfache Klasse mit einem String erstellt. Eigentlich ist es ein Record, aber wir brauchen ein Object.
type
TData = class Zusatztext: String; end; procedure TForm1.FormCreate(Sender: TObject); procedure Hinzu(Text, Zusatztext: String); var Data: TData; begin Data := TData.Create; Data.Zusatztext := Zusatztext; ListBox1.Items.AddObject(Text, Data); end; begin Hinzu('Blume', 'Blumen blühen'); Hinzu('Wasser', 'Wasser ist feucht'); Hinzu('Erde', 'In der Erde wachsen Erdäpfel'); Hinzu('Sand', 'Sand ist voller Sand'); Hinzu('Dünger', 'Dünger düngt die Erde'); Hinzu('Licht', 'Licht spendet Wärme'); Hinzu('Schatten', 'Im Schatten ist es kühler'); end; procedure TForm1.ListBox1Click(Sender: TObject); var Data: TData; begin if ListBox1.ItemIndex < 0 then Exit; Data := TData(ListBox1.Items.Objects[ListBox1.ItemIndex]); Memo1.Lines.Text := Data.Zusatztext; end; In der Unterprozedur Hinzu wird das Objekt erstellt, der Zusatztext zugewiesen, und zuletzt der ListBox Text mit dem Objekt der ListBox hinzugefügt. In der Hauptprozedur werden alle Werte hinzugefügt. Zuletzt wird bei ListBox1Click der Zusatztext aus dem Objekt ermittelt und in Memo geschrieben. //EDIT: Da du an einer anderen Stelle mit Adressen und Postleitzahlen hantierst, gehe ich davon aus, daß es dir hier nicht um Blumen und Erde geht, sondern du eine Art Adressbuch schrieben willst. Es wäre also viel einfacher wenn du direkt sagen würdest was du willst, dann könnte man dir besser helfen. Das mit Blumen und dem Text über Blumen verwirt doch nur. Edit2: Tippfehler korrigiert. |
Re: CheckListBox und Memo verwenden
Übriges, vielleicht wäre ListView eher was für dein Problem.
Für das Beispiel brauchst du ein ListView auf dem Formular:
Delphi-Quellcode:
Edit:
procedure TForm1.FormCreate(Sender: TObject);
procedure Hinzu(Text, Zusatztext: String); var ListItem: TListItem; begin with ListView1 do begin ListItem := Items.Add; ListItem.Caption := Text; ListItem.SubItems.Add(Zusatztext); end; end; var NewCol: TListColumn; begin with ListView1 do //das kann auch manuell im Objektinspektor erstellt werden begin ViewStyle := vsReport; NewCol := Columns.Add; NewCol.Caption := 'Text'; NewCol.Width := 150; NewCol := Columns.Add; NewCol.Caption := 'Zusatztext'; NewCol.Width := 400; end; Hinzu('Blume', 'Blumen blühen'); Hinzu('Wasser', 'Wasser ist feucht'); Hinzu('Erde', 'In der Erde wachsen Erdäpfel'); Hinzu('Sand', 'Sand ist voller Sand'); Hinzu('Dünger', 'Dünger düngt die Erde'); Hinzu('Licht', 'Licht spendet Wärme'); Hinzu('Schatten', 'Im Schatten ist es kühler'); end; Tippfehler korrigiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 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