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 DBGrid - Datensatzzeigerposition (https://www.delphipraxis.net/151115-dbgrid-datensatzzeigerposition.html)

stifflersmom 6. Mai 2010 10:02


DBGrid - Datensatzzeigerposition
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin moin,

ich habe hier mehrere DBgrids auf einem Formular,
die vom Layout her (schriftgrößen, Zeilenhöhen, Top...) gleich sind.
Nun möchte ich im ersten Grid links einen Datensatz auswählen,
und die anderen Grids die rechts zu sehen sind mit dem Datensatzzeiger
synchronisieren.
Das klappt auch so weit ganz gut, ABER dummerweise
ist, in den Grids die rechts sind, in der Regel der datensatz in der vertikalen
Mitte des Grids, wohingegen der Zeiger im linken Grid da ist, wo ich ihn angeklickt habe.
Das ist optisch nicht sehr schön und das möchte ich irgendwie behen,
genauer gesagt möchte ich gern, dass alle auf der gleichen Höhe erscheinen.

Ich füge ein Bild zur besseren Vertändigung meines Problemes bei
und vielleicht kann mir jemand einen schlauen Tipp geben.

Moin

rapante 6. Mai 2010 11:07

Re: DBGrid - Datensatzzeigerposition
 
Hy,

ich hatte immer das Problem, dass nach dem refreshen der Query die selektierte Zeile im Grid
nicht mehr an der selben Position war.

Die Lösung dafür sollte eigentlich auch auf dein Problem übertragbar sein

Delphi-Quellcode:
var
   rowDelta: integer;
   row: integer;
   recNo: integer;
begin    
  rowDelta := -1 + MyDBGrid.Row;
  row := MyDBGrid.DataSource.DataSet.RecNo;

  MySFDBGrid.DataSource.DataSet.DisableControls;
  try
    MyZQuery.Refresh;
   
    with MyDBGrid.DataSource.DataSet do
    begin    
      RecNo := row;
      MoveBy(-rowDelta) ;
      MoveBy(rowDelta) ;
    end;
  finally
    MyDBGrid.DataSource.DataSet.EnableControls;
  end;
end;

stifflersmom 6. Mai 2010 11:23

Re: DBGrid - Datensatzzeigerposition
 
Wunderbar,

ich danke Dir für diesen Tipp.

Moin


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