AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi dbgrid multiselect, selektierte ids erhalten ?

dbgrid multiselect, selektierte ids erhalten ?

Ein Thema von agm65 · begonnen am 23. Okt 2007 · letzter Beitrag vom 14. Aug 2009
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#1

dbgrid multiselect, selektierte ids erhalten ?

  Alt 23. Okt 2007, 09:40
Delphi-Quellcode:
var
i:integer;
begin
for i := 0 to DBGridMain.SelectedRows.Count-1 do
begin
   showmessage(DBGridMain.DataSource.DataSet.GotoBookmark(pointer(DBGridMain.SelectedRows.Items[i])) );
end;

end;
wo gebe ich jetzt das fieldvalue an also id, das ich in meiner showmessage alle ids bekomme, die ich selektiert habe ?
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: dbgrid multiselect, selektierte ids erhalten ?

  Alt 23. Okt 2007, 10:00
sollte so gehen
Delphi-Quellcode:
var
i:integer;
IdListe : String;
begin
  IdListe := '';
  for i := 0 to pred(DBGridMain.SelectedRows.Count) do
  begin
    if DBGridMain.DataSource.DataSet.GotoBookmark(pointer(DBGridMain.SelectedRows.Items[i]))
    then IdListe := IdListe+{TrennZeichen?+}DBGridMain.DataSource.DataSet.FieldByName('IdFeldName').AsString;
  end;
  showmessage('Gewählte ID''s: '+IdListe);
end;
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: dbgrid multiselect, selektierte ids erhalten ?

  Alt 23. Okt 2007, 10:00
Noch eine Variante:

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
var
  i: Integer;
  ds: TDataSet;
  bm: TBookmark;
  s: TStrings;
begin
  s := TStringList.Create;
  ds := DBGrid.DataSource.DataSet;
  ds.DisableControls;
  bm := ds.GetBookmark;
  with DBGrid.SelectedRows do
    for i := 0 to Pred(Count) do
    begin
      ds.GotoBookmark(Pointer(Items[i]));
      s.Add(ds.FieldByName('NAME').AsString);
    end;
  ds.GotoBookmark(bm);
  ds.FreeBookmark(bm);
  ds.EnableControls;
  ShowMessage(s.Text);
  s.Free;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#4

Re: dbgrid multiselect, selektierte ids erhalten ?

  Alt 23. Okt 2007, 10:05
marabu, danke dir..so geht es und nur so .. ! zumindest geht der source drüber nicht ! ! danke nochmal
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: dbgrid multiselect, selektierte ids erhalten ?

  Alt 14. Aug 2009, 11:47
@marabu...

ich hab hier gerade im forum nach einer möglichkeit gesucht wie ich an die in einem dbgrid selektierten datensätze herankomme...
dabei bin ich über deinen source hier gestolpert...

ich hab den source mal in mein programm kopiert und es funzt auch soweit...

bloß leider versteh ich manche sachen nicht ganz...
könntest du mir viell. kurz deine prozedur ein bißchen erklären?

vor allem was es mit den controls, bookmarks und "pred(count)" auf sich hat?

vielen dank
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: dbgrid multiselect, selektierte ids erhalten ?

  Alt 14. Aug 2009, 11:56
Da marabu sich mittlerweile hier rar macht, versuche ich es einmal:
DisableControls verhindert das Neuzeichnen der angeschlossenen datengebundenen Komponenten beim Wechsel des aktuellen Datensatzes. Das spart Zeit und verhindert "Mäusekino". Bookmark ist ein "Lesezeichen", d.h. ein gemerkter Datensatz kann direkt angesprungen werden, ohne mit First etc. durchiterieren zu müssen. Und Pred() ermittelt den Vorgänger eines Wertes eines ordinalen Datentyps (entspricht also Wert - 1). Das Gegenteil davon wäre Succ(), was Wert + 1 entspricht.
Ich hoffe, das war halbwegs verständlich.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: dbgrid multiselect, selektierte ids erhalten ?

  Alt 14. Aug 2009, 12:07
@deddyh...

vielen dank erst mal für die schnelle antwort...

ok das mit den cotrols und pred is mir jetzt klar...

das mit dem bookmarks verstehe ich aber nur zum teil

hierdurch
      ds.GotoBookmark(Pointer(dbgrid1.selectedrows.Items[i])); denke ich mal werden die selektierten sätze im dataset angesteuert je nach selektion im dbgrid nehme ich an...


aber warum hat er in der funktion eine variable TBookmark definiert???
ich habe bei mir alles auskommentiert was mit dieser variable zu tun hat und es funktioniert trotzdem noch alles wie davor....
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: dbgrid multiselect, selektierte ids erhalten ?

  Alt 14. Aug 2009, 12:10
Er merkt sich vorher den aktuellen Datensatz, geht dann die selektierten durch und springt anschließend wieder zum gemerkten zurück.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

Re: dbgrid multiselect, selektierte ids erhalten ?

  Alt 14. Aug 2009, 12:12
macht er bei mir auch ohne diese variable...

kann es vielleicht daran liegen das ich bei mir im dbgrid das dbrowselect auf true gesetzt habe?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: dbgrid multiselect, selektierte ids erhalten ?

  Alt 14. Aug 2009, 12:14
Ist vielleicht bei Dir der aktuelle Datensatz der unterste selektierte? Wenn ja, mach einmal einen anderen zum aktuellen und schau dann noch einmal.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 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