Autor Beitrag
bl3nder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58



BeitragVerfasst: Mo 13.08.07 13:26 
Hi
Ich moechte erreichen, dass mein StrinGrid sich automatisch vergroeßert oder verkleinert, jenachdem wie groß die ueberliegende Form ist. Wenn ich nun das Grid auf albottom lege, und im OnResize Ereignis der Form schreibe
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.FormResize(Sender: TObject);
begin
Grid.Top := Top;
end;

,wobei Top ein vorher hartkodierter Integer ist,

dann flackert bei Veraenderung der Fenstergroeße das Stringgrid hin und her, als ob es sich nicht entscheiden koennte. Wieso funktioniert das nicht so und wie sollte ich das sonst loesen ?
Nochmal zur Veranschaulichung ein Screen
Einloggen, um Attachments anzusehen!
little-wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47

WinXP
Delphi 5 Enterprise, Delphi 2006 Enterprise
BeitragVerfasst: Mo 13.08.07 13:53 
hallo bl3nder

wesshalb nimmst du nicht ein panel, wirfst alles oberhalp des string-grid drauf und setzt das align-property des panels auf alTop, dann sagst du dem sich unterhalb befindlichen string-grid align-property "alclient" und schon ist dein problem gelöst...

gruss

little-wolf


//sorry... habs grade gesehen, du hast was anderes gemeint...


hier nun was, womit du eher was anfangen kannst:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormResize(Sender: TObject);
begin
  StringGrid1.ColCount := StringGrid1.Width div StringGrid1.DefaultColWidth;
  StringGrid1.RowCount := StringGrid1.Height div StringGrid1.DefaultRowHeight;
end;



gruss

little-wolf
bl3nder Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58



BeitragVerfasst: Mo 13.08.07 14:45 
hi

Danke aber dein erstes Posting hat mir schon gereicht. Einfach ein Panel mit ALTop und das Grid ALCLient


Um die Spalten aber dynamisch auch mitzuziehen habe ich einfach folgendes gemacht
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.FormResize(Sender: TObject);
begin
    Grid.ColWidths[0] := Trunc(Grid.Width * 0.04);
    Grid.ColWidths[1] := Trunc(Grid.Width * 0.1);
    Grid.ColWidths[2] := Trunc(Grid.Width * 0.2);
    Grid.ColWidths[3] := Trunc(Grid.Width * 0.15);
    Grid.ColWidths[4] := Trunc(Grid.Width * 0.2);
    Grid.ColWidths[5] := Trunc(Grid.Width * 0.15);
    Grid.ColWidths[6] := Trunc(Grid.Width * 0.15);
end;

Danke !
Cya