![]() |
Stringgrid auf Form positionieren ?
Hi,
ich habe hier ein Stringgrid und das muß auf die Form passen, ohne Scrollbalken. Bzw. wenn es überhaupt drauf paßt. Es geht also darum, eventuell die Form zu vergrößern, so weit wie möglich, um das Stringgrid noch unterzubringen. Eventuell kann die Form ja auch nach links verschoben werden um Platz zu schaffen und dann eben vergrößern. Jetzt ist das ganze allerdings etwas verwirrend, denn die Spalten des Grids werden ert im Programm ermittelt (also die Anzahl und Breite). Und wie sieht es da mit den vertikalen Linien aus ? Zählen die bei ColWidth mit oder nicht ? Habe mal im Nebel rumgestochert :
Delphi-Quellcode:
Wie siehts aus mit dem Left von der Form und dem Grid ? Hoffe mal, daß das einer schon gemacht hat, weil die OH nicht viel hergibt.
var i,
GridWidth : integer; begin GridWidth := 0; for i := 0 to sg.ColCount - 1 do GridWidth := GridWidth + sg.ColWidths [i]; showmessage ('sg '+IntToStr (sg.Width)+' gridwith '+IntToStr (GridWidth)); // + ' Left '+ IntToStr (sgArtNr.Left)); sg.Width := GridWidth; if GridWidth + sg.Left > Width then Width := Left + GridWidth + 10; end; |
Re: Stringgrid auf Form positionieren ?
Probiers doch aus.
Delphi-Quellcode:
StringGrid.Width := CalcWidth (StringGrid);
|
Re: Stringgrid auf Form positionieren ?
Hallo Hansa,
also ich hatte mal ein ähnliches Problem mit einem DBGrid und irgendwie hat das Smart dann auch bekommen und damit gibt es einen Download dazu in der Delphipraxis: ![]() Grüße aus dem verregneten Hannover // Martin |
Re: Stringgrid auf Form positionieren ?
Liste der Anhänge anzeigen (Anzahl: 1)
Thx Martin,
ich muß allerdings erst noch folgendes klären :
Delphi-Quellcode:
Wieso wird in dem Grid nur 1234567 angezeigt ? :shock: Siehe Anhang.
procedure TForm1.FormShow(Sender: TObject);
var i : integer; begin StringGrid1.ColWidths [0] := StringGrid1.Canvas.TextWidth(StringGrid1.Cells[0,0]); end; procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Cells [0,0] := '1234567890'; end; |
Re: Stringgrid auf Form positionieren ?
Hansa, habe Deine keine wirklich gute Idee. Würde den Textwidth-Wert jetzt einfach mit 1.2 multiplizieren und dasErgebnis
dann in ein Round setzen um auf den Integerwert zu kommen. Irgendwie arbeitet die Textwidth Funktion da nicht sauber. Grüße // Martin |
Re: Stringgrid auf Form positionieren ?
Hallo Hansa,
warum nicht so:
Delphi-Quellcode:
obwohl ich sagen muss, das ich die datei nicht runtergeladen habe.
Stringgrid1.Colwidths[0]:= Length(Stringgrid.cells[0,0] * font.size;
raik |
Re: Stringgrid auf Form positionieren ?
Halber Treffer, aber eben nur halb. :mrgreen:
Delphi-Quellcode:
Abschneiden kann ich damit jetzt nichts mehr.
Stringgrid1.Colwidths[0]:= Length(Stringgrid1.cells[0,0]) * (StringGrid1.font.size-1)+4;
|
Schau mal auf den Link hier...
![]() Thema "die Spaltenbreite eines TDBGrid automatisch anpassen" Passt jedoch nicht die Spalte nach Textweite an, sondern insgesamt. Vielleicht findest Du ja dort trotzdem brauchbare Infos. Gruß Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 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