Delphi-PRAXiS

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 fixed Cols im Stringgrid (https://www.delphipraxis.net/28239-fixed-cols-im-stringgrid.html)

Hansa 21. Aug 2004 19:39


fixed Cols im Stringgrid
 
Hi,

ich habe hier ein Stringgrid mit 2 fixed Rows, da soll die Überschrift hin. Das Ding hat 10 Spalten. Über jeweils 5 dieser Spalten soll in der ersten fixed Row die eine Überschrift. In der zweiten fixed Row sollen für jede der Spalten eigene Überschriften stehen.

Das Problem sind die senkrechten Striche. In der einen fixed Row brauche ich außer rechts und links nur einen.

Vorab, so gehts schon mal nicht :

Delphi-Quellcode:
  if sgNr.row = 1 then begin
    sgNr.Options := sgNr.Options - [goFixedVertLine]
  end
  else
    sgNr.Options := sgNr.Options + [goFixedVertLine];

Niko 21. Aug 2004 20:24

Re: fixed Cols im Stringgrid
 
Hi,

das einfachste dürfte es sein, du deaktivierst goFixedVertLine und zeichnest dir die Linien in der zweiten Zeile selbst:

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if ARow = 1 then
  with (Sender as TStringGrid).Canvas do
  begin
    Pen.Color := clBtnHighlight;
    MoveTo(Rect.Left, Rect.Top);
    LineTo(Rect.Left, Rect.Bottom);
    Pen.Color := clBtnShadow;
    MoveTo(Rect.Right - 1, Rect.Top + 1);
    LineTo(Rect.Right - 1, Rect.Bottom);
    Pen.Color := cl3DDkShadow;
    MoveTo(Rect.Right, Rect.Top);
    LineTo(Rect.Right, Rect.Bottom);
  end;
end;
Einen kleinen Schönheitsfehler hat das ganze, denn die Linien werden am oberen Rand der Zellen von den horizontalen weißen überzeichnet. Wenn das wirklich stören sollte, müsstest du die horizontalen Linien auch noch selbst zeichnen.

Hansa 21. Aug 2004 21:23

Re: fixed Cols im Stringgrid
 
Das hört sich nicht sehr gut an. :twisted: Bei meinem Code wäre es dann wohl besser eine nicht-fixierte Row als fixierte darzustellen. Ist es möglich diese vertikalen Striche in einer einzigen normalen Row wegzumachen ? Gelungen ist es mir bisher allerdings auch nicht. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 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