Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Delphi3 - DBGrid - Multiselect , sprawdzanie ktore rekordy sa zaznaczone ?

104 views
Skip to first unread message

[ cyberdane.com ]

unread,
May 24, 2002, 4:01:41 PM5/24/02
to
Witam

Mam taki problem

Uzywam kontrolki TDBGrid w trybie Multiselect i Rowselect.

Tak wiec klient moze zaznaczyc kilka rekordow jednoczesnie.
Albo uzyje shifta i kursorow i zaznaczy kilka rekordow w ciągłym bloku.
Albo uzywajac ctrl i myszki selektywnie wybierze rekordy rozsiane po calej
liscie.

Moje pytanie jest takie. Jak sprawdzic ktore rekordy zostały zaznaczone.

Wiem ze jezeli chce odczytac ilosc zaznaczonych rekordow to uzywam :
DBGrid1.SelectedRows.Count

W dokumentacj pisza tez o takiej tablicy
DBGrid1.SelectedRows.Items[i]
ktora to ma zawierac wartosci zaznaczonych rekordow. Ale z moich testow
wynika ze tablica ta jest pusta. Moze musze kazac mu wprowadzac do niej
wartosci z jakies kolumny.

Prosze o pomoc.

...
http://cyberdane.com

Sławomir Adamski

unread,
May 24, 2002, 4:29:29 PM5/24/02
to
Witam
Użytkownik "[ cyberdane.com ]" <cybe...@qs.pl> napisał w wiadomości
news:acm67l$li1$1...@news.tpi.pl

> Mam taki problem
>
> Uzywam kontrolki TDBGrid w trybie Multiselect i Rowselect.
>
> Tak wiec klient moze zaznaczyc kilka rekordow jednoczesnie.
> Albo uzyje shifta i kursorow i zaznaczy kilka rekordow w ciągłym
> bloku. Albo uzywajac ctrl i myszki selektywnie wybierze rekordy
> rozsiane po calej liscie.
>
> Moje pytanie jest takie. Jak sprawdzic ktore rekordy zostały
> zaznaczone.
>
> Wiem ze jezeli chce odczytac ilosc zaznaczonych rekordow to uzywam :
> DBGrid1.SelectedRows.Count
>
> W dokumentacj pisza tez o takiej tablicy
> DBGrid1.SelectedRows.Items[i]
> ktora to ma zawierac wartosci zaznaczonych rekordow. Ale z moich
> testow wynika ze tablica ta jest pusta.

W helpie do SelectedRows ma Pan przecież przykład.
--
Sławek

[ cyberdane.com ]

unread,
May 24, 2002, 4:37:56 PM5/24/02
to
> W helpie do SelectedRows ma Pan przecież przykład.

Niestety w d3 nie ma tam przykladu :(

Czy mógłbym prosić o jego przesłanie ?

Aleksander Sztwiertnia

unread,
May 24, 2002, 4:37:39 PM5/24/02
to

> wynika ze tablica ta jest pusta. Moze musze kazac mu wprowadzac do niej
> wartosci z jakies kolumny.


Troche toporne, ale dziala:

with tbl do
begin
DisableControls;
First;
while not EOF do
begin
if grid.SelectedRows.CurrentRowSelected then
bleble;
Next;
end;
EnableControls;
end;

pozostaje jeszcze ustawienie się na rekordzie z przed tej procki

pozdrawiam
Aleksander Sztwiertnia

Sławomir Adamski

unread,
May 25, 2002, 1:02:50 PM5/25/02
to
Witam
Użytkownik "[ cyberdane.com ]" <cybe...@qs.pl> napisał w wiadomości
news:acm8bi$532$1...@news.tpi.pl...

> > W helpie do SelectedRows ma Pan przecież przykład.
>
> Niestety w d3 nie ma tam przykladu :(
>
> Czy mógłbym prosić o jego przesłanie ?
>
Proszę bardzo:
<example>
The following example copies the selected rows in a db grid to a list box.
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin

if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= '';
end;
end;
</example>
--
Sławek

0 new messages