Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - listbox items verschieben,kopieren,...


hibbert - Di 24.12.02 13:59
Titel: listbox items verschieben,kopieren,...
hallo,
wie ich listbox items kopiere weiß ich schon 8) , ich mach es immer so:

Quelltext
1:
listbox2.items:=listbox1.items.gettext;                    

doch nun zu meinem problem:
ich habe 3 von diesen dingern (listbox1,2 und 3).
nun soll in listbox3.items[0] folgendes eingetragen werden:
listbox3.items[0]:=listbox1.items[0]+'  '+listbox2.items[0];so, dass klappt ja noch, aber wie funzt dass, wenn ich eine undefinierte menge an listbox items habe? kann mir jemand folgen? ich hoffe es,denn dann könnte mein problem gelöst werden.
mfg hibbert


Christian S. - Di 24.12.02 14:24

Wahrscheinlich kann ich Dir nicht folgen, aber tu jetzt mal so, als könnte ich es:

Du möchtest, dass Dein Code für beliebig viele Items gilt, oder?

Dann mach es so:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
VAR i : INTEGER;
       max_listbox : TListBox;
       min_listbox : TListBox;
begin
  ListBox3.Items.Clear;
  if ListBox1.Items.Count > ListBox2.Items.Count then
  begin
    max_listbox:=ListBox1;
    min_listbox:=ListBox2;
  end else
  begin
    max_listbox:=ListBox2;
    min_listbox:=ListBox1;
  end;
  i:=0;
  while i<min_listbox.Items.Count do
  begin
    ListBox3.Items.Append(ListBox1.Items[i]+'   '+ListBox2.Items[i]);
    inc(i);
  end;
  while i<max_listbox.Items.Count do
  begin
    ListBox3.Items.Append(max_listbox.Items[i]);
    inc(i);
  end;
end;

Der Code berücksichtigt auch, dass in ListBox1 und ListBox2 nicht genau gleich viele Items stehen müssen.

Hoffe, ich habe Dich richtig verstanden.

MfG,
Peter


hibbert - Di 24.12.02 17:09

hey peter du echt 8) , denn du hast mich richtig verstanden, und es fuktioniert, DANKE !!
aber ich hab noch ne frage:
bei einer listbox werden buchstaben, zahlen usw. immer von liks nach rechts geschrieben, wo kann ich diese eigenschaft ändern, damit die buchstaben, zahlen usw. von rechts nach links geschrieben werden ?
mfg hibbert


Christian S. - Mi 25.12.02 13:09

Hmm, dazu habe ich jetzt so auf die Schnelle nichts gefunden. Das einzige, was mir einfallen würde, wäre, die Items im OnDrawItem-Ereignis selbst so zu zeichnen, wie man sie haben will. Ich werde mal noch ein Bisschen suchen und vielleicht auch mal überlegen, wie man das am Besten mit dem OnDrawItem macht.

MfG,
Peter