Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
Delphi 10.4 Sydney
|
Re: StringGrid Spalten Zentrieren, Linksbündig,Rechtsbündig
4. Aug 2009, 19:51
Hallo,
Delphi-Quellcode:
{
Name:
GetMaxColWidth
Zweck:
maximale Breite der Spalte ermitteln
Parameter:
theGrid - das Grid
theCol - spalte, deren maximale Breite ermittelt werden soll
Return-Parameter:
Return:
die maximale Breite der Spalte
Hinweis:
}
function GetMaxColWidth(theGrid: TStringGrid; theCol: Longint): Longint;
var
MaxLen: Integer;
CurLen: Integer;
CurRow: Longint;
begin
MaxLen:=0;
if theGrid.Owner<> NIL then
begin
for CurRow:=0 to theGrid.RowCount-1 do
begin
CurLen:= theGrid.Canvas.TextWidth(theGrid.Cells[theCol,CurRow]);
if CurLen>MaxLen then MaxLen:= CurLen;
end;
Inc(MaxLen,5);
end;
Result:= MaxLen;
end; { GetMaxColWidth }
procedure Grid_SetColWidth(theGrid: TStringGrid; theCol: Longint);
var
MaxLen: Integer;
begin
if theCol=-1 then Exit;
if (theCol<theGrid.ColCount) then
begin
{ ohne diese Zeile funktioniert der Aufruf nicht in
FormCreate oder FormActivate }
{$IFDEF WIN32}
Application.ProcessMessages;
{$ENDIF}
MaxLen:= GetMaxColWidth(theGrid, theCol);
{ Spaltenbreite nur ändern, wenn die neue Breite
breiter ist }
{ if (theGrid.ColWidths[theCol]<MaxLen)
then }theGrid.ColWidths[theCol]:= MaxLen;
end;
end; { Grid_SetColWidth }
Heiko
Heiko
|
|
Zitat
|