AGB  ·  Datenschutz  ·  Impressum  







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

Dynamische StrigGrid breite will nicht.

Ein Thema von xSkaschY · begonnen am 4. Jul 2008 · letzter Beitrag vom 4. Jul 2008
 
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#1

Dynamische StrigGrid breite will nicht.

  Alt 4. Jul 2008, 13:51
Hallo zusammen,

ich probiere gerade meinem TStringGrid beizubringen, wenn das Formular resized wird, sich automatisch der neuen Größe anzupassen.

Das Problem ist, das bei bestimmten Größen die Breite nicht angepasst wird sondern nur ab einer bestimmten Breite. (siehe Dateianhang).


Ich habe hierfür die Breiten in Prozent angegeben.

Delphi-Quellcode:
type
        TDynamicWidth = record
                iWidth: Integer;
        end;

var
        aDynamicWidth: Array of TDynamicWidth;

Die eigentliche Prozedure sieht wie folgt aus:

Delphi-Quellcode:
type
        TStringGridHack = class(TStringGrid)
                public
                        procedure setDynamicWidth(fTarget: TStringGrid; aWidth: Array of TDynamicWidth);

        end;

var
        oStringGridHack: TStringGridHack;

procedure TStringGridHack.setDynamicWidth(fTarget: TStringGrid; aWidth: Array of TDynamicWidth);
var
        i: Integer;
        iGridWidth: Integer;
begin
        if Length(aWidth) > 0 then begin
                iGridWidth := fTarget.Width;
                for i := 0 to Length(aWidth) - 1 do begin
                        fTarget.ColWidths[i] := iGridWidth div 100 * aWidth[i].iWidth;
                end;

        end;
end;
aufgerufen wird das ganze so..:

Delphi-Quellcode:
procedure TPreferences.FormResize(Sender: TObject);
var
        aWidth: Array of TDynamicWidth;
begin
        // 3 Spalten im TStringGrid
        SetLength(aWidth, 3);

        // Werte in Prozent
        aWidth[0].iWidth := 40;
        aWidth[1].iWidth := 20;
        aWidth[2].iWidth := 40;
        

        oStringGridHack.setDynamicWidth(sgBindings, aWidth);
        SetLength(aWidth, 0);
end;


Weiß jemand warum die breite der einzelnen Spalten nicht präzise berechnet werden?


LG Toby
Angehängte Grafiken
Dateityp: jpg falschebreite_535.jpg (69,8 KB, 8x aufgerufen)
  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 20:20 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