Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Stringgrid / Form - Geometrie (https://www.delphipraxis.net/118860-stringgrid-form-geometrie.html)

Hansa 16. Aug 2008 16:41


Stringgrid / Form - Geometrie
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

folgendes : Form, auf der liegen 3 Panele Oben, Mitte, Unten. auf dem mittleren Panel ist ein Stringgrid und auf dem unteren sollen in ein paar Labels Summen stehen. Und zwar rechts unter der rechtesten Spalte des Stringgrids. Bündig mit dieser Spalte. Es ist jetzt kein großes Problem da solange rumzufummeln bis es passt. Aber ich brauche das des öfteren und die Größenverhältnisse werden erst zur Laufzeit festgelegt. D.h. über das Stringgrid wird die Größe der Form gesteuert etc. Auch die Spaltenanzahl und -breite wird erst anhand der anzuzeigenden Daten angepasst. Try and Error ist mir deshalb dann doch zu langwierig. :mrgreen: Am besten mal Bild im Anhang ansehen. Unten die Labels, die sollen rechts da enden, wo die Zahlen der rechtesten Spalte auch enden.

P.S.: Geschmiere auf dem Bild war nur ein gescheiterter Versuch. Kriegs nicht so richtig hin. :mrgreen:

taaktaak 16. Aug 2008 16:51

Re: Stringgrid / Form - Geometrie
 
Moin Hansa.
Denkansatz: Die Label mit TextAlign=right und Autosize=false auf ein (unsichtbares) Panel und dort korrekt placieren. Das Panel dann zur Laufzeit in Bezug auf Gridgröße (Left+Width-Scrollbarbreite) positionieren.

grenzgaenger 16. Aug 2008 17:07

Re: Stringgrid / Form - Geometrie
 
autosize auch auf true, und align auf right

dann klebt das ganze am rechten rand deines pannels ... :-)

ggf. kannst noch ein, zwei pixel einrücken ... ;-)

taaktaak 16. Aug 2008 17:10

Re: Stringgrid / Form - Geometrie
 
Hihi, da hab ich doch Align und Alignment durcheinandergebracht/vergessen :oops:

grenzgaenger 16. Aug 2008 17:14

Re: Stringgrid / Form - Geometrie
 
denke textalign auf right ist schon in ordnung, sonst darf hansa den text bei autosize false mit der hand ausrichten ... :-)

ist zwar kein problem für ihn, aber so sollt es doch 'n bischen bequemer sein ;-)

Hansa 16. Aug 2008 20:30

Re: Stringgrid / Form - Geometrie
 
Beziehen sich die Antworten hierauf ?

Zitat:

Zitat von taaktaak
...auf ein (unsichtbares) Panel und dort korrekt placieren..

Problematisch sind doch eigentlich nur die Rahmen. Panel hat einen und das Stringgrid hat sogar noch Scrollbars. Warum muss das unsichtbar sein ? Gibts irgendwo Liste mit Pixelbreiten von Rahmen, Scrollbars etc. ? :shock:

omata 16. Aug 2008 20:36

Re: Stringgrid / Form - Geometrie
 
Alignment = taRightJustify und einmal da hinschieben, fertig.

Tipp: Label etwas größer ziehen, dann kann man das besser sehen.

Edit: Hier noch ein Hinweis...
Delphi-Quellcode:
  if (GetWindowlong(Stringgrid.Handle, GWL_STYLE) and WS_VSCROLL) <> 0 then
    ShowMessage('Vertikale Scrollbar ist sichtbar');

ConstantGardener 16. Aug 2008 20:41

Re: Stringgrid / Form - Geometrie
 
Hallo Hansa,

schau mal in der Hilfe bei GetSystemMetrics. Dort finden sich einige Maße von Scrollbars usw.

Ich verwende für sowas keine TLabel sondern ein THeaderControl mit entsprechend eingestellten THeaderSections. Das kann man per Hand aber auch dynamisch nach Form-Größe machen.

mfg ConstantGardener

Hansa 17. Aug 2008 01:33

Re: Stringgrid / Form - Geometrie
 
Zitat:

Zitat von omata
Alignment = taRightJustify und einmal da hinschieben, fertig...

So einfach geht das wohl nicht. Was soll wohin geschoben werden und was ist mit taRightJustify ? Die Formatierung der Labels ist noch überhaupt nicht gemacht. Wem soll ich denn jetzt sagen, er soll die Labels an einem erst zur Laufzeit zusammengebauten Stringgrid ausrichten, wobei sich die Form noch an diesem anpasst ? :shock: Werde mir wohl oder übel tatsächlich diese Metrics angucken müssen. Beteiligte Parteien sind schließlich : Form, Panele, Stringgrid, Labels. Mit Rahmen, Scrollbars usw. Am besten mal das selber testen und die beste Lösung hier posten. Schulferien sind schließlich fast rum. :mrgreen:

Medium 17. Aug 2008 02:27

Re: Stringgrid / Form - Geometrie
 
Die Idee ist doch wasserdicht. Labels mit rechtsbündigem Text zur Designtime am rechten Rand des Grids ausrichten, Anker rechts setzen, und wann immer was im Grid geändert wird über die angegebene Methode prüfen ob eine Scrollbar angezeigt wird, und wenn ja die Labels um die über GetSystemMetrics ermittelte Größe für Scrollbars nach links rücken, bzw. nach rechts wenn die Scrollbar wieder ausgeblendet wird. Find ich simpel und elegant, zudem sehr generisch da es mit nicht-standard Scrollbars auch klappen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz