Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mit Multiselect ALLE Datensätze markieren (https://www.delphipraxis.net/117591-mit-multiselect-alle-datensaetze-markieren.html)

egon.kaschuba 21. Jul 2008 17:05


Mit Multiselect ALLE Datensätze markieren
 
:oops:

Hallo,

da habe ich nochmal eine Frage ?

Ich möchte aus dem DBGrid mit Multiselect alle
Datensätze auf einmal markieren.

Mit dem untere Code muss man jeden einzelnen Satz anklicken,
das ist lästig.

Wer kann mir einen Tip geben?

Gruß
- Egon



if (TagesGrid.SelectedRows.Count > 0) then
begin
with TagesGrid.DataSource.DataSet do
for l := 0 to TagesGrid.SelectedRows.Count - 1 do
begin
GotoBookmark(Pointer(TagesGrid.SelectedRows.Items[l]));
Table10.Edit;
VBeleg:=Table10.FieldbyName('BELEG').AsString ;
Table10['BELEG']:='Wurde schon Gebucht';
Table10.Post;table10.Refresh;
end;
TagesGrid.SelectedRows.Clear;
end ;

alzaimar 21. Jul 2008 17:14

Re: Mit Multiselect ALLE Datensätze markieren
 
Das Standardverhalten wäre:
Erste Reihe anklicken, Shift+Letze Reihe anklicken. Keine Ahnung, ob das DBGrid das kann...

egon.kaschuba 21. Jul 2008 18:30

Re: Mit Multiselect ALLE Datensätze markieren
 
Hi,

Alzaimar,nee habe ich auch schon dran Gedacht.
Geht aber nicht.

Der.Kaktus 21. Jul 2008 18:36

Re: Mit Multiselect ALLE Datensätze markieren
 
Hallo ,

schau mal hier--->invertrow..musste nur umdrehen...Vielleicht hilfts ja.

ConstantGardener 21. Jul 2008 19:24

Re: Mit Multiselect ALLE Datensätze markieren
 
Hallo egon.kaschuba,

folgender Code selektiert alle Zeilen des Grids

Delphi-Quellcode:
 with Query_Namen do
  begin
   DisableControls;
   First;
   While not EOF do
    begin
     DBGrid_Namen.SelectedRows.CurrentRowSelected:=true;
     next;
    end;
   First;
   EnableControls;
  end;
mfg

ConstantGardener

egon.kaschuba 21. Jul 2008 21:26

Re: Mit Multiselect ALLE Datensätze markieren
 
:dancer2:

Hallo ConstantGardener

Hab mal bei SwissDelphiCenter.ch
gegoogelt und habe das gefunden.

Klappt prima.

Trotzdem Danke.

Gruß
-Egon


function GridSelectAll(Grid: TDBGrid): Longint;
begin
Result := 0;
Grid.SelectedRows.Clear;
with Grid.DataSource.DataSet do
begin
First;
DisableControls;
try
while not EOF do
begin
Grid.SelectedRows.CurrentRowSelected := True;
Inc(Result);
Next;
end;
finally
EnableControls;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
GridSelectAll(DBGrid1);
end;

alzaimar 22. Jul 2008 08:18

Re: Mit Multiselect ALLE Datensätze markieren
 
Entspricht so ziemlich genau dem Code von ConstantGardener.

Verwende doch die Delphi-Tags in Zukunft. Dazu einfach den Code markieren, und auf den 'Delphi-Code' Button drücken.

ConstantGardener 22. Jul 2008 12:49

Re: Mit Multiselect ALLE Datensätze markieren
 
@Egon : da nich für...

@alzaimar : 8) :thumb:

Grüsse ConstantGardener


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