Thread View: pl.comp.lang.delphi
5 messages
5 total messages
Started by ExM
Mon, 22 Jan 2018 07:11
Wybieranie pozycji z XDBGrid
Author: ExM
Date: Mon, 22 Jan 2018 07:11
Date: Mon, 22 Jan 2018 07:11
20 lines
700 bytes
700 bytes
Hej, szukam optymalnego rozwiązania do wybrania zaznaczonych wpisów na XDBGrid Mam grida i powiedzmy 2 kolumny W XDBGRid.Columns[0] - mam CheckBox'a do wyboru wierszy (bez powiązania z DB) W XDBGRid.Columns[1] - mam ID rekordu w bazie danych który chce np. usunąć Jak wykonać przejście po XDBGridzie aby uzyskać ID rekordów do usunięcia? Zwykle leciałem po samym DataSet'cie ale odnosiłem się tylko do wartości które w nim występowały a tutaj muszę jakoś się dowiedzieć czy jest zaznaczony chceckbox w gridzie... Możecie podpowiedzieć jak to ruszyć? ExM
Re: Wybieranie pozycji z XDBGrid
Author: "Krzysztof Szysz
Date: Mon, 22 Jan 2018 17:39
Date: Mon, 22 Jan 2018 17:39
37 lines
1200 bytes
1200 bytes
> Hej, > szukam optymalnego rozwiązania do wybrania zaznaczonych wpisów na XDBGrid > > Mam grida i powiedzmy 2 kolumny > W XDBGRid.Columns[0] - mam CheckBox'a do wyboru wierszy (bez powiązania z DB) > W XDBGRid.Columns[1] - mam ID rekordu w bazie danych który chce np. usunąć > > Jak wykonać przejście po XDBGridzie aby uzyskać ID rekordów do usunięcia? > > Zwykle leciałem po samym DataSet'cie ale odnosiłem się tylko do wartości które w nim występowały a > tutaj muszę jakoś się dowiedzieć czy jest zaznaczony chceckbox w gridzie... > > Możecie podpowiedzieć jak to ruszyć? Możesz wykonać analogiczną iterację po XDBGrid.SelectedRows, albo skorzystać z metody XDBGrid.ForEachDataRow z parametrem reSelectedRows: function TMainForm.GetSelectedID(DBGrid: TXDBGrid; ID: TField): string; var ID_List: string; begin ID_List := ''; DBGrid.ForEachDataRow(reSelectedRows, procedure begin if ID_List = '' then ID_List := ID.Text else ID_List := ID_List + ', ' + ID.Text; end); Result := ID_List; end; -- pozdrowienia Krzysztof Szyszka, X-Files Software Developer of X-DBGrid Component Embarcadero Technology Partner http://www.x-files.pl/
Re: Wybieranie pozycji z XDBGrid
Author: ExM
Date: Tue, 23 Jan 2018 12:30
Date: Tue, 23 Jan 2018 12:30
29 lines
1087 bytes
1087 bytes
W dniu poniedziałek, 22 stycznia 2018 17:39:46 UTC+1 użytkownik Krzysztof Szyszka napisał: > Możesz wykonać analogiczną iterację po XDBGrid.SelectedRows, albo skorzystać z metody > XDBGrid.ForEachDataRow z parametrem reSelectedRows: > > function TMainForm.GetSelectedID(DBGrid: TXDBGrid; ID: TField): string; > var > ID_List: string; > begin > ID_List := ''; > DBGrid.ForEachDataRow(reSelectedRows, > procedure > begin > if ID_List = '' then ID_List := ID.Text > else ID_List := ID_List + ', ' + ID.Text; > end); > Result := ID_List; > end; Niestety ForEachDataRow dopiero od D2009 - a ja rzeźbię na D5 :D Ale SelectedRows idealnie do tego się nadaje. Zrobiłem to tak jak niżej - działa :) if Lista.SelectedRows.Count > 0 then for i : =0 to Lista.SelectedRows.Count - 1 do Begin TabelaDanych.GotoBookmark(Pointer(Lista.SelectedRows.Items[i])); >> tutaj procedura która ma być wykonana na danych rekordu z TabelaDanych end;
Re: Wybieranie pozycji z XDBGrid
Author: "Krzysztof Szysz
Date: Wed, 24 Jan 2018 16:20
Date: Wed, 24 Jan 2018 16:20
45 lines
1363 bytes
1363 bytes
> > Możesz wykonać analogiczną iterację po XDBGrid.SelectedRows, albo skorzystać z metody > > XDBGrid.ForEachDataRow z parametrem reSelectedRows: > > > > function TMainForm.GetSelectedID(DBGrid: TXDBGrid; ID: TField): string; > > var > > ID_List: string; > > begin > > ID_List := ''; > > DBGrid.ForEachDataRow(reSelectedRows, > > procedure > > begin > > if ID_List = '' then ID_List := ID.Text > > else ID_List := ID_List + ', ' + ID.Text; > > end); > > Result := ID_List; > > end; > > Niestety ForEachDataRow dopiero od D2009 - a ja rzeźbię na D5 :D > Ale SelectedRows idealnie do tego się nadaje. > Zrobiłem to tak jak niżej - działa :) > > if Lista.SelectedRows.Count > 0 then > for i : =0 to Lista.SelectedRows.Count - 1 do Begin > TabelaDanych.GotoBookmark(Pointer(Lista.SelectedRows.Items[i])); > >> tutaj procedura która ma być wykonana na danych rekordu z TabelaDanych > end; I prawidłowo. A jak całość umieścisz jeszcze w takim bloku jak poniżej, to w XDBGridzie nie będzie widać, że skaczesz po zaznaczonych rekordach i wrócisz w to samo miejsce. Lista.DisablePosition; try // tu Twój kod finally Lista.EnablePosition; end; -- pozdrowienia Krzysztof Szyszka, X-Files Software Developer of X-DBGrid Component Embarcadero Technology Partner http://www.x-files.pl/
Re: Wybieranie pozycji z XDBGrid
Author: ExM
Date: Thu, 25 Jan 2018 00:16
Date: Thu, 25 Jan 2018 00:16
10 lines
244 bytes
244 bytes
W dniu środa, 24 stycznia 2018 16:20:25 UTC+1 użytkownik Krzysztof Szyszka napisał: > Lista.DisablePosition; > try > // tu Twój kod > finally > Lista.EnablePosition; > end; o... super - dodaje do mojej bazy wiedzy :P
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads