Einzelnen Beitrag anzeigen

joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
107 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Spalten automatisch an Tabellenbreite anpassen

  Alt 17. Feb 2016, 10:00
Nur so das es auch komplett und fertig ist habe ich das mal überarbeitet und eine finale Version eingestellt. Es Passt zwar die Spalten nicht optimal in die Tabellenbreite aber es überarbeitet die Breite je nach Breite der Tabelle. Man könnte ggf noch die Spaltenbreiten optimal auf die Tabellenbreite anpassen. Aber das so hat mir gereicht.
Grüße Joe
Delphi-Quellcode:

Procedure ResizeGrid (aGrid : Tstringgrid);
Var
  Sgn,S, I, SumW, D, D0, Dx : Integer;

Begin
// Summe aller Spaltenbreiten ermitteln
  SumW := 0;
  For i:=0 To aGrid.ColCount - 1 do
    SumW := SumW + aGrid.ColWidths[i];

// D pixel sind zu verteilen
  D := aGrid.Width - SumW;
  If D >= 0 Then S:= 1 Else S:= -1;
  D0 := D;
  For i:=0 To aGrid.Colcount - 1 do Begin
    Dx := D0 * aGrid.ColWidths[i] div SumW;
// Dx ist der Anzeil für Spalte #i, aber mindestens ein Pixel
    If Dx = 0 Then Dx := S;
// und höchstens die noch verbleibenden Pixel.
    If Abs(Dx) > Abs(D) Then Dx := D;
//Breite der Spalte #i anpassen
    aGrid.ColWidths[i] := aGrid.ColWidths[i] + Dx;
// und verbleibende Pixel berechnen
    D := D - Dx;
  End;
End;
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  Mit Zitat antworten Zitat