Entwickler-Ecke

Datenbanken - Feldgröße auslesen?


D. Annies - Mo 03.10.11 10:26
Titel: Feldgröße auslesen?
Hi, Delpher,

(wie) kann ich die Feldgröße so auslesen, dass ein Stringgrid dann die geeignete Feldbreite hat?


Delphi-Quelltext
1:
stringgrid1.colwidths[n] := Tx.fields[n].fieldsize;                    


So geht es leider nicht!

Danke, Detlef


BenBE - Mo 03.10.11 12:47

Du kannst mit TCanvas.GetTextWidth die Breite der Schrift auslesen und diese als Grundlage nehmen.

Aber wie ich am Thread-Status sehe, hast Du ja bereits eine Lösung, die Du uns nicht verraten willst ;-)


D. Annies - Mo 03.10.11 12:56

Klar doch:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
with stringgrid1 do
  begin
    colcount := Qx.fieldcount;
    for n := 0 to Qx.fieldcount-1 do
    begin
      cells[n,0] := Qx.fields[n].FieldName;  //   showmessage(inttostr(Qx.Fields[n].datasize));
      if canvas.TextWidth(Qx.fields[n].asstring) < colwidths[n] then
        colwidths[n] := 6 * Qx.fields[n].datasize;
      if uppercase(Qx.fields[n].FieldName) = 'GEBDAT' then colwidths[n] := DefaultColWidth;
      cells[n,1] := Qx.Fields[n].asstring;
    end;
  end;


:) Detlef

P.S. wäre schön, wenn es noch eine Antwort zu meinem Excel2Dbf-Thread gäbe :)(: