AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi unterschiedliche Spaltenbreite eines StringGrid
Thema durchsuchen
Ansicht
Themen-Optionen

unterschiedliche Spaltenbreite eines StringGrid

Ein Thema von [TP]Hawk274 · begonnen am 17. Dez 2003
Antwort Antwort
[TP]Hawk274
(Gast)

n/a Beiträge
 
#1

unterschiedliche Spaltenbreite eines StringGrid

  Alt 17. Dez 2003, 12:23
Ich möchte die Breite aller Spalten eines StringGrids anpassen, wodurch kein bzw. nur ein kleiner Streifen auf der rechten Seite des StringGrids zu sehen ist.
Ich habe mir jetzt folgende procedure geschrieben die beschriebenes tut. Allerdings habe ich nun einen horizentale Scrollbar. Das wollte ich nun wieder auch nicht. Irgendwie steckt noch der Wurm in der procedure. Wahrscheinlich muss ich auch noch den Rahmen der Zellen und die Breite der Linien, die die Zellen des Gitters trennen. Hatte aber bereits verssucht GridLineWidth abzuziehen. Allerdings hatte ich dann wieder ein kleinen weißen Rand von ca. 10 bis 15px.

Code:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
...
iMinColWidth := 50;
...
end.

...

procedure TfrmMain.SetGridColumnWidths(Grid: TStringGrid);
var
  iCol, iRow: integer;
  iMaxLen, iSize: integer;
  iColLen: integer;
begin
  with Grid do begin
    iColLen := 0;
    for iCol := 0 to Pred(ColCount) do begin
      iMaxLen := iMinColWidth;
      for iRow := 0 to Pred(RowCount) do begin
        if Canvas.TextWidth(Cells[ iCol, iRow ]) > iMaxLen then
          iMaxLen := Canvas.TextWidth(Cells[ iCol, iRow ]);
      end;

      ColWidths[ iCol ] := iMaxLen;
      iColLen := iColLen + ColWidths[ iCol ]
    end;

    if (Grid.Width - iColLen) > 0 then begin
      iSize := ((Grid.Width - iColLen) div ColCount);
//      iSize := ((Grid.Width - iColLen) div ColCount) - (GridLineWidth*ColCount);    
      for iCol := 0 to Pred(ColCount) do begin
        ColWidths[ iCol ] := (ColWidths[ iCol ] + iSize);
      end;
    end;
  end;
end; { SetGridColumnWidths }
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz