Einzelnen Beitrag anzeigen

Benutzerbild von Sven Janssen
Sven Janssen

Registriert seit: 22. Jun 2004
Ort: Mayen
187 Beiträge
 
Delphi 4 Professional
 
#8

Re: ListView Spaltenbreite an Text automatisch anpassen

  Alt 22. Jun 2004, 16:37
Delphi-Quellcode:
var spalte,col:integer;
    colw : array [0..10] of integer;
begin
    lv2.canvas.font:=lv2.font;
    for i:=low(colw) to high(colw) do colw[i]:=100;
    lv2.Columns.clear;
    q.first;
    while not q.eof do begin
    .
    . // Hier wird durch eine Tabelle gelaufen für n Elemente
    .
        nitem.subitems.add(q.fieldbyname(telArray[was]).asstring); telefoncol:=0;
        col:=lv2.canvas.textwidth(q.fieldbyname(telArray[was]).asstring);
        inc(spalte);
        if col > colw[spalte] then colw[spalte]:=col;

        nitem.subitems.add(q.fieldbyname(faxArray[was]).asstring); faxcol:=1;
        col:=lv2.canvas.textwidth(q.fieldbyname(faxArray[was]).asstring);
        inc(spalte);
        if col > colw[spalte] then colw[spalte]:=col;

        nitem.subitems.add(q.fieldbyname(emailArray[was]).asstring); emailcol:=2;
        col:=lv2.canvas.textwidth(q.fieldbyname(emailArray[was]).asstring);
        inc(spalte);
        if col > colw[spalte] then colw[spalte]:=col;
        q.next;
    end;
    .
    . // usw usw. _spalte_ deshalb da die Einträge variable sind.
    .

    for i:=0 to lv2.Columns.count -1 do lv2.Columns[i].width:=colw[i]+20;

end;
Wirklich viel zum optimieren sehe ich dort nicht.
Oben ein Löschen, pro Eintrag 3 Zeilen für die Abfrage und unten eine Schleife für das setzen der Breite.

Sven - nun Feierabend macht ... bis morgen
  Mit Zitat antworten Zitat