AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekte dynamisch mit Form skalieren

Ein Thema von dopeline · begonnen am 9. Jan 2004 · letzter Beitrag vom 9. Jan 2004
 
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Objekte dynamisch mit Form skalieren

  Alt 9. Jan 2004, 15:19
Gnah Anchors hätte mir heut echt etwas arbeit erspart, da ich heut vormittag resizing programmiert habe *fg*

Zu den Columns :
Ich habs so gelöst : Mir zur Designzeit die Werte für die Breiten des Grids und der einzelnen Spalten aufgeschrieben und daraus einen Breitenfaktor errechnet. Das sieht dann bei mir so aus :

Delphi-Quellcode:
//columns im grid
  iGridSize := DBGrid1.Width - 27; // 27 ist breite der vertikalen scrollbar
  dblFaktor := 68/722;
  DBGrid1.Columns.Items[0].Width := round(dblFaktor*iGridSize);
  dblFaktor := 102/722;
  DBGrid1.Columns.Items[1].Width := round(dblFaktor*iGridSize);
  dblFaktor := 91/722;
  DBGrid1.Columns.Items[2].Width := round(dblFaktor*iGridSize);
  dblFaktor := 107/722;
  DBGrid1.Columns.Items[3].Width := round(dblFaktor*iGridSize);
  dblFaktor := 105/722;
  DBGrid1.Columns.Items[4].Width := round(dblFaktor*iGridSize);
  dblFaktor := 81/722;
  DBGrid1.Columns.Items[5].Width := round(dblFaktor*iGridSize);
  dblFaktor := 100/722;
  DBGrid1.Columns.Items[6].Width := round(dblFaktor*iGridSize);
  dblFaktor := 68/722;
  DBGrid1.Columns.Items[7].Width := round(dblFaktor*iGridSize);

  //rundungsfehler korrigieren
  iTemp := 0;
  for i:= 0 to DBGrid1.Columns.Count -1 do begin
    iTemp := iTemp + DBGrid1.Columns.Items[i].Width;
  end;
  //gesamtbreite aller columns nach resize (iTemp) sollte gleichgross sein wie Gridbreite - Scrollbarbreite
  iTemp := iGridSize - iTemp;
  if not (itemp = 0) then
    //abweichungen werden durch resizen der Column Zone ausgeglichen
    DBGrid1.Columns.Items[1].Width := DBGrid1.Columns.Items[1].Width + iTemp;
Das mit den Rundungsfehlern kannste vermutlich weglassen, bei mir musste es nur sehr genau sein.

Das Resizen der Columns kannst auch vereinfachen indem du die Faktoren in ein Array packst oder so und dann (wie beim addieren unten) in einer Schleife die Columns einstellst.
Nur ich musste das schnell hinter mich bringen und hatte keine lust mir da was zu überlegen und habs dann so hingeschmiert 8)
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
 


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 00:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz