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 Grid im Grid positionieren (https://www.delphipraxis.net/34446-grid-im-grid-positionieren.html)

barnti 23. Nov 2004 13:28


Grid im Grid positionieren
 
Hallo Gemeinde,

ich bin dabei mir ein TDBGrid an meine Bedürfnisse anzupassen. Dazu habe ich in einem TDBGrid ein weiteres Grid erzeugt, um Detaildaten zu einem Datensatz anzuzeigen. Um das Grid für die Detaildaten zu positionieren brauche ich die Position des aktuell selektierten Masterdatensatz.
Das Neuzeichnen möchte ich in der Prozedur 'OnDrawColumnCell' erledigen.

Wie kann ich in der Prozedur die Position für mein DetailGrid ermitteln?

barnti 24. Nov 2004 08:30

Re: Grid im Grid positionieren
 
Guten Morgen!

Mir war ein kleiner Fehler unterlaufen. Ich habe die Lösung nun gefunden:
Delphi-Quellcode:
procedure TmyDBGrid.OnCellDraw(Sender: TObject; const Rect: TRect; DataCol:
        Integer;Column: TColumn; State: TGridDrawState);
begin
   // wird das aktuelle Feld neu gezeichnet...
   if (gdFocused in State) and
      // und ist dies das akt. selektierte
      (Column.Field= SelectedField) and
     // und ist das Detailgrid sichtbar,
     Detail.Visible then
     // dann zeichne es an die neue Position
     Detail.SetBounds(11,Rect.Top+16,self.Width-31,(self.Height-52)-Rect.Top);
end;
Das Grid für die Detaildaten(hier:Detail) wird an der Stelle des aktuellen Masterdatensatzes neu gezeichnet.
Einziges Problem: Wenn man bei angezeigten Detaildaten horizontal scrollt, wird das Grid nicht richtig dargestellt. Sollte man aber in den Griff bekommen.


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