TListView
-
- Beiträge: 8
- Registriert: So 18. Feb 2007, 13:49
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Berlin
- Kontaktdaten:
TListView
Hallo,
ich habe ein kleines Delphi-Projekt nach Lazarus übersetzt und mein Programm ist jetzt auch am laufen, aber mir ist aufgefallen, dass im ListView gar kein 'Itemindex' existiert ?
In welcher Variablen steht denn, welche Zeile gerade selektiert ist ?
Grüße jesus
ich habe ein kleines Delphi-Projekt nach Lazarus übersetzt und mein Programm ist jetzt auch am laufen, aber mir ist aufgefallen, dass im ListView gar kein 'Itemindex' existiert ?
In welcher Variablen steht denn, welche Zeile gerade selektiert ist ?
Grüße jesus
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Herzlich willkommen im Forum.
also bei mir in der 9.21 gibt es sehr wohl ein ItemIndex
steht zwar nicht im OI, aber über den Quelltext jederzeit verfügbar; definiert in der StdCtrls:
Property ItemIndex
also bei mir in der 9.21 gibt es sehr wohl ein ItemIndex

steht zwar nicht im OI, aber über den Quelltext jederzeit verfügbar; definiert in der StdCtrls:
Property ItemIndex
-
- Beiträge: 8
- Registriert: So 18. Feb 2007, 13:49
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Berlin
- Kontaktdaten:
Also ich krieg's nicht gebacken ... ich dachte zwar ich könnte mit selected.index, das selektrierte Item auslesen, aber jedenmal wenn ich versuche diese Variable zu lesen, krieg ich ne Exception ...
Außerdem kann ich mit listView.Clear die liste nciht löschen ? Warum nicht ? Was macht den Clear, eigentlich ?
Kann es sein, das das TListView in Lazarus 0.9.20 noch nicht richtig funktionert ?
Grüße jesus
Außerdem kann ich mit listView.Clear die liste nciht löschen ? Warum nicht ? Was macht den Clear, eigentlich ?
Kann es sein, das das TListView in Lazarus 0.9.20 noch nicht richtig funktionert ?
Grüße jesus

-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Ich kann mir nicht wirklich vorstellen, das es ItemIndex bei der 20er nicht geben soll.
aber geh einfach alle durch:
Wenn du dagegen nur den Text des Items brauchst, kannst du auch gleich ListBox.GetSelectetdText verwenden.
aber geh einfach alle durch:
Code: Alles auswählen
i := -1
for i := 0 to Listbox.Items.Count do
if Listbox.Selected[i] = true then
break;
//i enthält Index ds selektierten Item, wenn nichts selektiert wurde ist i = -1
Pluto, was soll das denn? Danach ist leer und auch nchts mehr selectiert.versuch mal
ListView1.items.Clear
-
- Beiträge: 8
- Registriert: So 18. Feb 2007, 13:49
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Berlin
- Kontaktdaten:
Keine der drei folgenden Methoden funktioniert :
... ich schau mich mal um, wo die .21 für win zu kriegen ist ...
Grüße jesus
Code: Alles auswählen
ListView1.items.clear
for i:= 0 to Phonebooklist.ListView1.Count-1 do
ListView1.Items.Delete(i);
ListView1.Clear;
Grüße jesus
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
es gibt da noch eine möglichkeit:
die ist änlich wie die von monta
der bezeichnet selecetet ist leider falschgeschrieben, sollte aber so änlich heißen !
Das muss gehen.
die ist änlich wie die von monta
Code: Alles auswählen
function GetListviewIndex(lv:TListView);
var
i,z:Integer;
begin
z:=-1;
for i:=0 to lv.items.count-1 do begin
if lv.items[i].selecetet = true then begin
z:=i;
break;
end;
end;
result:=z;
end;
Das muss gehen.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Also habe gerade alle 3 Methoden mit der .21 probiert klappt hervorragend.
wobei ich doe for schleife abgeändert habe.
while ListView1.Items.Count > 0 do
ListView1.Items.Delete(0);
In deiner Variante wird es bei der hälfte der Eintrgäe + einem eine Av gaben und ab da bei jedem weiteren Löschversuch eine
na we weiss warum hrhr 
wobei ich doe for schleife abgeändert habe.
while ListView1.Items.Count > 0 do
ListView1.Items.Delete(0);
In deiner Variante wird es bei der hälfte der Eintrgäe + einem eine Av gaben und ab da bei jedem weiteren Löschversuch eine


W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/