Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

Re: Optische Anordnung ListBox

  Alt 14. Okt 2009, 19:01
Wenn Du die Items mit Clear aus der ListView löschst, kannst Du natürlich anschließend nicht mehr darauf zugreifen, sondern musst sie neu erzeugen.
Delphi-Quellcode:
procedure TForm1.AdressdarstellungEdit ( index: integer; AAdresse: TAdresse );
var Item: TListItem;
    Column : TListColumn;
begin
  Item := LVAdressen.Items.Add; //Item neu anlegen
  //Item.SubItems.Clear; //unnötig, da noch keine SubItems vorhanden

  if CBAnordnung.ItemIndex = 0
[und so weiter]
[edit] Ich hab das Ganze jetzt mal unter Lazarus geschrieben. FAdressen ist ein array of record. Die folgende Routine wird aufgerufen, wenn das Array befüllt ist oder sich die ComboBoxReihenfolge ändert.
Delphi-Quellcode:
procedure TForm1.ListAdresses;
var i: integer;
    Item: TListItem;
begin
  LVAdressen.Items.BeginUpdate;
  try
    LVAdressen.Items.Clear;
    case ComboBoxReihenfolge.ItemIndex of
      0: begin
           LVAdressen.Columns[0].Caption := 'Name';
           LVAdressen.Columns[1].Caption := 'Vorname';
         end;
      1: begin
           LVAdressen.Columns[1].Caption := 'Name';
           LVAdressen.Columns[0].Caption := 'Vorname';
         end;
    end;
    for i := Low(FAdressen) to High(FAdressen) do
      begin
        Item := LVAdressen.Items.Add;
        case ComboBoxReihenfolge.ItemIndex of
          0: begin
               Item.Caption := FAdressen[i].Name;
               Item.SubItems.Add(FAdressen[i].Vorname);
             end;
          1: begin
               Item.Caption := FAdressen[i].Vorname;
               Item.SubItems.Add(FAdressen[i].Name);
             end;
        end;
      end;
  finally
    LVAdressen.Items.EndUpdate;
  end;
end;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat