Einzelnen Beitrag anzeigen

Delbor

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

TStringgrid - Width und ColWidth

  Alt 1. Apr 2021, 15:25
Hi zusammen

In einem Containerframe habe ich 4 Frameinstanzen( im Endeffekt sollen es 12 sein):
4monate.jpg
Im Container gibts dies:
Delphi-Quellcode:
   for i := Low(Monate) to High (Monate) do
   begin
      case i of //ContentDayNumberFrameUnit; DayNrFrameApril
         1: begin
               Self.DayNrFrameJanuary.InitDayNumberFrame;
               LMonth := I;
               Self.DayNrFrameJanuary.FirstMonthDay := StartOfAMonth(LYear, LMonth);
               Self.DayNrFrameJanuary.LastMonthDay := EndOfAMonth(LYear, LMonth);
               Self.DayNrFrameJanuary.LblCaption.Caption := Monate[i];
               Self.DayNrFrameJanuary.HorzDayNumbersMonths;
            end;
         2: begin
               Self.DayNrFrameFebruary.InitDayNumberFrame;
               LMonth := I;
               {Die Einstellungen hier sind Wiederholungen auf eine andere Instanz}
            end;
         3: ...

         4: ...

         5: ....

         12:...

            end;
      end;
Im Basisframe gibts die Public deklarierte Prozedur InitDayNumberFrame, die, da sie Public deklariert ist, an Frameinstanzen wie DayNrFrameFebruary oder DayNrFrameApril vererbt werden sollte:
Delphi-Quellcode:
procedure TDayNumberFrame.InitDayNumberFrame;
begin
  Self.StrGCalendarMonthFrame.ColWidths[0] := 40;
  Self.StrGCalendarMonthFrame.ColWidths[1] := 30;
  Self.StrGCalendarMonthFrame.ColWidths[2] := 30;
  Self.StrGCalendarMonthFrame.ColWidths[3] := 30;
  Self.StrGCalendarMonthFrame.ColWidths[4] := 30;
  Self.StrGCalendarMonthFrame.ColWidths[5] := 30;
  Self.StrGCalendarMonthFrame.ColWidths[6] := 30;
  Self.StrGCalendarMonthFrame.ColWidths[7] := 30;
  Self.StrGCalendarMonthFrame.Width := 8*30;
end;
Das Strinnggrid sollte zur Laufzeit also nicht breiter als die Summe seiner Spaltenbreiten sein. Ist aber nicht. Das grid und seine Breitenverhältnisse werden genauso dargestellt, wie im jpeg widergegeben.
Was ist da falsch?

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