![]() |
TStringGrid fixieren
Liste der Anhänge anzeigen (Anzahl: 2)
Sers zusammen,
ich habe da mal so eine Frage: Ist es möglich eine TStringGrid in sich selbst zu fixieren? Wenn ja, wie? Ich meine das so: Wenn man die Tabelle normal darstellt, sieht das ganze so aus: ![]() Klickt man nun auf die äußerste Spalte, verschiebt sich das ganze ineinander: ![]() Das sieht natürlich scheiße aus. Kennt jemand ne Möglichkeit das zu beheben? Danke im Voraus! MfG Suppenswarls |
AW: TStringGrid fixieren
Herzlich Willkommen in der Delphi-PRAXIS :)
Die Bilder kannst du hier auch direkt hochladen (was du bitte auch noch machen solltest). Beim ![]() ![]() ![]() Hilft das? |
AW: TStringGrid fixieren
Danke für deine Antwort!
FixedRows & FixedCols sind lediglich dazu da, eine Fixierte Zeile bzw Spalte zu erzeugen, die dann auch farbig gekennzeichnet wird (also eine Zeile wie "Name ; Kategorie ; ..."). Das fixiert die Tabelle aber nicht und hilft mir somit nicht wirklich :S |
AW: TStringGrid fixieren
Dann erklär doch bitte mal, wie du dir dieses "fixierte" vorstellst
|
AW: TStringGrid fixieren
Die Tabelle soll sich nicht hin und her verschieben, wenn man mit der Maus auf eine außen gelegene Spalte klickt. Bilder sagen mehr als Worte, wirf ein Blick drauf und du wirst mich verstehen.
|
AW: TStringGrid fixieren
Kann es sein, dass du die horizontale Scrollbar ausgeschaltet hast? Er verschiebt die Spalten ja nicht ineinander sonder schiebt die linke Spalte aus dem Grid raus. Ich gehe mal davon aus, dass die letzte Spalte wenige Pixel zu breit ist und deshalb alles nach links "rutscht", damit die Spalte komplett sichtbar ist. Schau dir mal die Eigenschaft ScrollBars des StringGrids an.
|
AW: TStringGrid fixieren
Zitat:
|
AW: TStringGrid fixieren
Liste der Anhänge anzeigen (Anzahl: 1)
Also eine pixelgenaue Berechnung der Breiten habe ich bereits gemacht, wobei ich aber die vertikale Scrollbar nicht beachtet habe:
Code:
Die width-Größe steht auf 590, somit müsste es genau hinkommen. Ich weiß nicht, was Delphi da abzieht, aber sogar ohne jegliche Scrollbars und bei absolut genauer Größe hüpft das Teil zur Seite (siehe Bild). Stelle ich die Breite etwas größer, so verschiebt es sich nicht, jedoch hat man dann einen hässlichen Rand.
gridProdukte.ColCount := 5;
gridProdukte.RowCount := 2; gridProdukte.DefaultColWidth := 100; gridProdukte.ColWidths[0] := 180; gridProdukte.ColWidths[1] := 150; gridProdukte.ColWidths[3] := 60; Wäre es nicht irgendwie möglich die Breite der letzten Spalte (gridProdukte.ColWidths[4]) automatisch auf die Größe des Rahmens anzupassen, also auch die vertikale Scrollbar zu berücksichtigen? Edit: Die horizontale Scrollbar ändert nichts an der Tatsache, dass die Spalten so verschoben werden und es sieht auch nicht allzu schön aus, finde ich ^^ |
AW: TStringGrid fixieren
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: TStringGrid fixieren
Zitat:
|
AW: TStringGrid fixieren
Mach es doch so wie Du es im Titel angesprochen hast, benutze fixierte Zeilen und Spalten.
Gruß K-H |
AW: TStringGrid fixieren
kleine Ergänzung:
Zitat:
|
AW: TStringGrid fixieren
Danke auf jeden Fall schonmal für die Antworten!
@Perlsau: Man müsste halt immer schauen, ob die Tabelle eine Anzahl von Zeilen überschreitet, sodass eine vertikale Scrollbar erscheint und dann die Breite entsprechend dieser Tatsache vergrößern oder verkleinern. Da gibts aber 2 Probleme: 1. Wenn die StringGrid.width bzw die StringGrid.ClientWidth (der Unterschied ist mir nicht ganz klar) beide genau die gleiche Größe haben, wie alle Spalten zusammen, dann verschiebt sich die Geschichte dennoch. Es muss also 1 Pixel kleiner sein. Wenn man pingelig ist, sieht man den und er stört :-D 2. Die Scrollbar hat bei verschiedenen Auflösungen und Zoom-Einstellungen nicht auf jedem PC die selbe Größe. Somit könnte man es zwar für einen PC machen, aber nicht für alle...jedenfalls nicht so. Gibt es da nicht soetwas wie eine automatische Ausrichtung an die Ränder? Eine Art Fullscreen im Tabellenrahmen? @p80286: Ganz so einfach ist es nicht. Wenn man alle Zeilen fixiert, kann man garnicht mehr scrollen. @taaktaak: Bei mir sind nicht alle Spalten gleich breit. Darum muss ich alle Spalten getrennt addieren. Aber im Prinzip ist es nichts anderes. @Sir Rufo: Verzeih mir, wenn ich mich unverständlich ausgedrückt hab. Beim nächsten Mal mach ichs mit mehr Hingabe. |
AW: TStringGrid fixieren
Zitat:
![]() Das Thema gab's auch schon häufig, z.B.: ![]() ![]() Übrigens: Der Clientbereich ist das Rechteck, in dem der Client tätig wird. Bei einem StringGrid z.B. gehören der Rahmen und die Scrollbar nicht dazu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 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 by Thomas Breitkreuz