Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TStringgrid - Width und ColWidth

  Alt 1. Apr 2021, 16:36
Hi zusammen

Was ist denn das Alignment von dem StrGCalendarMonthFrame? Wenn das alClient ist, bringt ja Width := 8*30 nichts
Das war der wichtige Hinweis - ich habe das alClient durch
alignal := Custom ersetzt und die Anchors stehen lassen. Ich hab zwar nie wirklich verstanden, was das "alCustom" bewirkt oder bewirken soll. Klar ist nur: das Grid klebt jetzt an der linken Seite.

Die Breitenzuweisung, auch für TDayNumberFrame, ist nun so:
Delphi-Quellcode:
  Self.StrGCalendarMonthFrame.Width := (7*30) + 40 + 10;
  Self.Width := StrGCalendarMonthFrame.Width;
GridLineWidth ist hier das (Standard-) 1 - da hab ich mich erstmal verzählt und nur den Wert 7 statt 9 eingesetzt. Schliesslich habe ich stattdessen sogar auf 10 erhöht. Korrekt wäre wohl eher Borderwith*2...

Im Moment sieht das so aus:
4monate-ii.jpg

Abgesehn von einem eventuellen Align, stimmt da eh etwas nicht.

* deine Rechnung ist Falsch
40+7*30, denn siehe ColWidths[0] := 40;
und muüßte man nicht noch die Linie zwischen den Columns hinzurechnen?
also 41+7*31
Ja, die Rechnung war falsch - und sorry, sie ist es leider auch so noch. Zwischen den 8 Spalten sind 7 Trennlinien plus eine vor der ersten und eine nach der letzten Spalte. Es reicht also nicht, jeder Spalte eine Trennlinie dazuzurechnen. Aber zugegeben: das ist meine Theorie und kein Blick in die .pas.

und vielleicht auch noch eine eventuelle Scrollbar, falls malc mehr Rows/Zeilen
Die Scrollbars kommen weg. Das Grid soll die Tage eines Monats anzeigen, nicht mehr und nicht weniger. Wenn letztlich noch gescrollt werden muss, so der Container. der diese Frameinstanzen enthält.

* und wie man genau sieht, sind alle Spalten gleich breit, was auch nicht stimmen kann, denn siehe ColWidths[0] := 40;
"sollte" ist kein "ist wirklich so", was man aber mit dem Debugger bestimmt leicht prüfen könnte
[/QUOTE]
Das verstehe ich jetzt nicht wirklich. Die erste Spalte ist momentan breiter als die anderen, weil sie nebst dem 'W' auch noch die Wochennummer aufnehmen soll.
Eine Alternative wäre, das W in die 1. Zeile vor die Tagesname zu schreiben und ansonsten in der ersten Spalte nur noch die Wochennummern hinzuschreiben.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat