Einzelnen Beitrag anzeigen

Buddelflink

Registriert seit: 19. Mai 2003
7 Beiträge
 
Delphi 2006 Professional
 
#1

[StringGrid] berechnen d. Zellenbreite nach resize

  Alt 6. Feb 2007, 20:52
Hallo.
Bin sonst nur als aktiver Leser hier im Forum und konnte bisher alle meine Fragen mit der Suchfunktion lösen! Diesmal stellt sich mir aber ein Problem das scheinbar noch niemanden interessiert hat . Auch Google hat nix zu dem Thema.
Also, ich habe ein StringGrid und möchte bei resize die Spaltenbreite/höhe entsprechend berechnen.
Delphi-Quellcode:
procedure TForm_Jahrestest.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
var iZelle, iHeader: Integer;
begin
  Resize:= true;
  JahresGrid.DoubleBuffered:= true;

  // Höhe d. StringGridZellen
  iHeader:= 15; // mindesthöhe
  iZelle:= (JahresGrid.Height -iHeader) div 12;
  iHeader:= (JahresGrid.Height - (iZelle * 12));
  JahresGrid.DefaultRowHeight:= iZelle; // iZelle -3 dann gehts
  JahresGrid.RowHeights[0]:= iHeader;

  // Breite d. Zellen
  iHeader:= 55; // mindestbreite
  iZelle:= ((JahresGrid.Width -iHeader) div 37);
  iHeader:= (JahresGrid.Width -(iZelle * 37));
  JahresGrid.DefaultColWidth:= iZelle;
  JahresGrid.ColWidths[0]:= iHeader;
end;
Leider wird ein Teil der letzten Zelle(n) verdeckt.
Was zum Geier mache ich falsch? -> siehe Bild

Ich hoffe jemand weiss wie man das logisch berechnet?
PS: Hab jetzt nur den relevanten Code rauskopiert aber bei Bedarf kann ich das ganze Projekt auch posten.

Danke, Cornel
Miniaturansicht angehängter Grafiken
stringgrid_159.png  
  Mit Zitat antworten Zitat