![]() |
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? |
Re: Grid im Grid positionieren
Guten Morgen!
Mir war ein kleiner Fehler unterlaufen. Ich habe die Lösung nun gefunden:
Delphi-Quellcode:
Das Grid für die Detaildaten(hier:Detail) wird an der Stelle des aktuellen Masterdatensatzes neu gezeichnet.
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; 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 14:09 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-2025 by Thomas Breitkreuz