Delphi-PRAXiS
Seite 1 von 2  1 2   

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/)
-   -   DBGrid Position merken (https://www.delphipraxis.net/154965-dbgrid-position-merken.html)

-187- 3. Okt 2010 19:25

DBGrid Position merken
 
Hallo, ich suche nach einer Möglichkeit wie man sich die Selected Row merken kann sodass man nach einem Refresh diese Row wieder selektieren kann. Habe mir mal .GetBookmark angeschaut aber damit hat es nicht geklappt. Jemand einen Idee?

dataspider 3. Okt 2010 19:43

AW: DBGrid Position merken
 
Zitat:

Zitat von -187- (Beitrag 1053505)
Habe mir mal .GetBookmark angeschaut aber damit hat es nicht geklappt.

Damit sollte es aber gehen. Zeig doch mal deinen Code...

Frank

haentschman 3. Okt 2010 19:55

AW: DBGrid Position merken
 
Hallo...
Willst du den gleichen Datensatz wieder markieren auch bei geänderter Datenmenge ? Dann vorher die ID des Datensatzes merken und danach mit Locate wieder drauf setzen. Ich glaube die Bookmarks sind nach einem Refresh wieder zurückgesetzt.

dataspider 3. Okt 2010 20:26

AW: DBGrid Position merken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von haentschman (Beitrag 1053514)
Ich glaube die Bookmarks sind nach einem Refresh wieder zurückgesetzt.

Normalerweise nicht. Man kann auch die Datenmenge schliessen und wieder öffnen.
Im Anhang ein Beispiel mit Delphi Bordmitteln.

Frank

-187- 3. Okt 2010 20:53

AW: DBGrid Position merken
 
Hm also ich hatte es so versucht:

Code:
var
  Bookmark: Pointer;
begin
  Bookmark:=DBGrid1.DataSource.DataSet.GetBookmark;

  ...Mach irgendwas mit der DB...

  DBGrid1.DataSource.DataSet.GotoBookmark(Bookmark);
end;
Wie merk ich mir die ID ? Ich bin ein blutiger Anfänger was Datenbanken angeht :)

haentschman 3. Okt 2010 21:53

AW: DBGrid Position merken
 
Ich hab mir die Demo jetzt nicht angeschaut...
Vieleicht ist das http://delphi.about.com/b/2010/09/16...w-position.htm
das gleiche.

-187- 3. Okt 2010 22:23

AW: DBGrid Position merken
 
Hm das funktioniert nicht, Es wird keine Row selektiert.

-187- 3. Okt 2010 22:52

AW: DBGrid Position merken
 
Ok ich hab das Problem jetzt anders gelöst. Ich merke mir den String Wert der UNIQUE ist und suche den dann mit Locate wieder. Soweit so gut, jedoch wird die Row dann ganz unten im sichtbaren Bereich des DBGrids angezeigt und die Row ist nicht selektiert. Wie selektiere ich die Row und wie krieg ichs hin das Sie oben steht.

Code:
  Cell:=DBGrid1.SelectedField.AsString;
...
...
  DBGrid1.DataSource.DataSet.Locate('NUMBER',Cell,[loPartialKey,loCaseInsensitive]);
E: Ok, das die Row danach wieder selektiert ist habe ich auch hingekriegt, bleibt noch das Problem das die Row ganz oben erscheinen soll. Im StringGrid gibt es TopRow oder so, gibt's da was vergleichbares fürs DBGrid bzw DataSource ?

-187- 4. Okt 2010 14:34

AW: DBGrid Position merken
 
Push

shmia 4. Okt 2010 14:51

AW: DBGrid Position merken
 
Die Reihenfolge der Datensätze wird ausschlieslich vom darunterliegenen Dataset bestimmt.
Entweder sind die Daten nach dem Primärschlüsselfeld sortiert oder es gibt eine ORDER By Klausel in der SQL-Abfrage. **)

Möchte man an einer bestimmter Stelle einen Datensatz einfügen, dann darf man das Dataset nicht schliesen.
Nach einem Refresh bzw. Schliesen/Öffnen springt dieser Datensatz an die Stelle, die durch **) definiert wird.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:19 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf