Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Eingaben in Listbox edieren


Serafin - Sa 16.05.09 17:28
Titel: Eingaben in Listbox edieren
Hallo, ich bin im Moment dabei, in der Listbox einzustellen, dass man sachen edieren kann.
das klappt auch schon, mit den befehlen


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
if listbox1.itemindex >-1 then
begin
listbox1.items.insert(listbox1.itemindex,edit_artikelbezeichnung.text+', '+edit_einkaufspreis.text+', '+edit_kalkulationsfaktor.Text);
Listbox1.Items.delete(listbox1.itemindex);
end
else showmessage ('es wurde kein Eintrag zum Ändern markiert');
end;


Nun aber zu meinem Problem, ich versuche, dass die Einträge, die in der Listbox sind, auch wieder in meinen Eingabefeldern, seines Zeichens Edit Felder, angezeigt werden.

wie bekomm ich das denn hin? Danke!


JayEff - Sa 16.05.09 17:34

Nun, über Edit1.Text := Listbox1.Items[Listbox1.ItemIndex]; schreibst du den gerade gewählten Eintrag in das Editfeld. Die zeile packst du am besten ins onClick der Listbox, aber unbedingt vorher eine Abfrage, ob überhaupt ein Eintrag gewählt ist!
Zum Editieren solltest du nicht Insert und Delete nutzen, sondern einfach Listbox1.Items[Listbox1.ItemIndex] := 'Meine Änderung';
Um den gewählten Eintrag zu lösche, kannst du übrigens auch einfach Listbox1.DeleteSelected; nutzen. (Gibt's auf jeden Fall ab Delphi7, vielleicht auch früher :nixweiss: )

Und übrigens: :welcome: im Forum! :party:


Serafin - Sa 16.05.09 17:40

hehe, danke, wunderbar es klappt.

vielen dank dir. :)


ffgorcky - Sa 16.05.09 17:42

Wenn kein Eintrag gewählt ist, dann müsste die Eigenschaft -1 sein, oder?
Also erst mal so eine Frage (Also ob etwas ausgewählt wurde):

Delphi-Quelltext
1:
if Listbox1.Selected>-1 then                    


Serafin - Sa 16.05.09 17:46

hab ich ja oben stehen.

Zitat:

if listbox1.itemindex >-1 then
begin
...



Raid - Sa 16.05.09 18:01

Wenn ich das richtig in erinnerung hab müsste es so funktionieren: if ListBox1.Selected <> -1 then oder if ListBox1.Selected > -1 then

Gruß