Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid: Selektieren mehrerer Einträge per Code (https://www.delphipraxis.net/117402-dbgrid-selektieren-mehrerer-eintraege-per-code.html)

Alfonso 17. Jul 2008 16:08

Datenbank: Access • Version: 2000 • Zugriff über: ADO

DBGrid: Selektieren mehrerer Einträge per Code
 
Ich möchte in einem DBGrid verschiedene Datensätze per code selektieren, so als hätte der Anwender dieses mit der Maus selektiert.
Das Auslesen der Selektion erreiche ich ja über:
Delphi-Quellcode:
for i:=0 to DBGridRechnungen.SelectedRows.Count-1 do
          begin
            GotoBookmark(pointer(DBGridRechnungen.SelectedRows.Items[i]));
            //DO Something
          end;
Welche Möglichkeit gibt es, die Selektion per Code zu setzen?

Gruß
Alfonso

haentschman 17. Jul 2008 16:12

Re: DBGrid: Selektieren mehrerer Einträge per Code
 
Hallo...

welches Grid benutzt du ?

Alfonso 17. Jul 2008 16:14

Re: DBGrid: Selektieren mehrerer Einträge per Code
 
Ich verwende TJVDBGrid (aus JEDI), welches abgeleitet ist von TDBGrid. Was mit TDBGrid geht sollte hier auch gehen.

Gruß
Alfonso

shmia 17. Jul 2008 16:15

Re: DBGrid: Selektieren mehrerer Einträge per Code
 
Ja:
Delphi-Quellcode:
DBGrid.SelectedRows.CurrentRowSelected := True;
DBGrid.DataSource.DataSet.DisableControls und EnableControls nicht vergessen, wenn du in einer Schleife über das Dataset gehst.

Privateer3000 17. Jul 2008 17:11

Re: DBGrid: Selektieren mehrerer Einträge per Code
 
Nur zum verständnis.
Der steht der Datenzeiger nicht immer nur auf einem Satz?
Wenn multi-select geschieht das im Datasource?!

shmia 17. Jul 2008 17:18

Re: DBGrid: Selektieren mehrerer Einträge per Code
 
Zitat:

Zitat von Privateer3000
Der steht der Datenzeiger nicht immer nur auf einem Satz?
Wenn multi-select geschieht das im Datasource?!

Das kann man so nicht sagen.
Man kann nur die Datensätze selektieren, die man per Code angefahren hat.
Hier ein Beispiel:
Delphi-Quellcode:
// DBGrid1 ist mit Query1 verbunden
begin
   Query1.DisableControls;
   try
     Query1.First;
     // über alle Datensätze gehen
     while not Query1.Eof do
     begin
       // alle Artikel, die 500 Steine oder mehr kosten, selektieren
       if Query1.FieldByName('Preis').AsCurrency >= 500.0 then
          DBGrid1.SelectedRows.CurrentRowSelected := True
       else
          DBGrid1.SelectedRows.CurrentRowSelected := False; // die billigen abwählen
       Query1.Next;
      end;
   finally
     Query1.EnableControls;
   end;
end;

Privateer3000 17. Jul 2008 17:21

Re: DBGrid: Selektieren mehrerer Einträge per Code
 
Und die stehen dann im Source.
Oder anders gesagt zum ansprechen diese Sätze
müßte man nur bis zum eof durchlaufen...


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