AGB  ·  Datenschutz  ·  Impressum  







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

Stringgrid / Form - Geometrie

Ein Thema von Hansa · begonnen am 16. Aug 2008 · letzter Beitrag vom 17. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Stringgrid / Form - Geometrie

  Alt 16. Aug 2008, 17:41
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. 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.
Miniaturansicht angehängter Grafiken
stringgrid_109.jpg  
Gruß
Hansa
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: Stringgrid / Form - Geometrie

  Alt 16. Aug 2008, 17:51
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.
Ralph
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#3

Re: Stringgrid / Form - Geometrie

  Alt 16. Aug 2008, 18:07
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 ...
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#4

Re: Stringgrid / Form - Geometrie

  Alt 16. Aug 2008, 18:10
Hihi, da hab ich doch Align und Alignment durcheinandergebracht/vergessen
Ralph
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#5

Re: Stringgrid / Form - Geometrie

  Alt 16. Aug 2008, 18:14
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
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Stringgrid / Form - Geometrie

  Alt 16. Aug 2008, 21:30
Beziehen sich die Antworten hierauf ?

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. ?
Gruß
Hansa
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Stringgrid / Form - Geometrie

  Alt 16. Aug 2008, 21:36
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');
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Stringgrid / Form - Geometrie

  Alt 16. Aug 2008, 21:41
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
Andreas Schachtner
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

Re: Stringgrid / Form - Geometrie

  Alt 17. Aug 2008, 02:33
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 ? 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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Stringgrid / Form - Geometrie

  Alt 17. Aug 2008, 03:27
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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:22 Uhr.
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