was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews
 sonstiges ¦  tutorials ¦  Add&Win Gewinnspiel

Tips (1541)

Dateien (137)
Datenbanken (90)
Drucken (35)
Grafik (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Mathematik (76)
Multimedia (45)
Oberfläche (107)
Objekte/
ActiveX (51)

OpenTools API (3)
Sonstiges (126)
Strings (83)
System (266)
VCL (242)

Tips sortiert nach
Komponente


Tip suchen

Tip hinzufügen

Add&Win Gewinnspiel

Werbung

16 Visitors Online


 
...die Spalten-Grösse in einem TStringGrid / TDrawGrid der Textbreite anpassen?
Autor: Thomas Mueller
Homepage: http://www.s2h.cx
[ Tip ausdrucken ]  

Tip Bewertung (4):  
     


{   This will resize the columns of a TStringGrid / TDrawGrid (text
    only!) so the text is completely visble. To save some time,
    it uses the first 10 rows only, but that should be easy to fix,
    if you need more. }

// we need this to access protected methods
type
  
TGridHack = class(TCustomGrid);

procedure ResizeStringGrid(_Grid: TCustomGrid);
var
  
Col, Row: integer;
  Grid: TGridHack;
  MaxWidth: integer;
  ColWidth: integer;
  ColText: string;
  MaxRow: integer;
  ColWidths: array of integer;
begin
  
Grid := TGridHack(_Grid);
  SetLength(ColWidths, Grid.ColCount);
  MaxRow := 10;
  if MaxRow > Grid.RowCount then
    
MaxRow := Grid.RowCount;
  for Col := 0 to Grid.ColCount - 1 do
  begin
    
MaxWidth := 0;
    for Row := 0 to MaxRow - 1 do
    begin
      
ColText  := Grid.GetEditText(Col, Row);
      ColWidth := Grid.Canvas.TextWidth(ColText);
      if ColWidth > MaxWidth then
        
MaxWidth := ColWidth;
    end;
    if goVertLine in Grid.Options then
      
Inc(MaxWidth, Grid.GridLineWidth);
    ColWidths[Col]      := MaxWidth + 4;
    Grid.ColWidths[Col] := ColWidths[Col];
  end;
end;


 

Bewerten Sie diesen Tipp:

dürftig
ausgezeichnet


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners