Soltac Geschrieben 27. Juni 2003 Geschrieben 27. Juni 2003 Hallo, also ich muss in meinem DBGrid mehrere Zeilen auswählen können, jetzt weiß ich aber nicht wo ich die Zeilen auslesen kann, oder wie? mfg soltac Zitieren
geloescht_JesterDay Geschrieben 27. Juni 2003 Geschrieben 27. Juni 2003 Ist in einem DBGrid nicht möglich AFAIk, da die ausgewählte Zeile im DBGrid immer auch der aktuelle Datensatz im Dataset ist. Es kann aber nur ein Datensatz in Dataset gewählt sein. Eine Datensensitive Komponente die sowas kann wirst du glaub ich nicht finden. Lösung: Füge deinem Dataset ein Boolean-Feld hinzu und nimm im Grid dafür eine Checkbox (geht das mit nem standard DBGrid überhaupt:confused: ). Wenn du die dann bestimmen willst gehst du folgendermassen vor: Query1.First; While not Query1.EOF do begin if Query1.FieldByName('Checked').asBoolean then begin {irgendwas damit machen} end; Query1.next; end; davor solltest du vielleicht ein Datasource.Disablecontrols machen (bin jetzt nicht sicher ob es bei der Datasource ist), um die Änderungen der Datensätze nicht immer auch im Grid zu sehen (also der gewählte Datensatz im Grids springt immer) Zitieren
Soltac Geschrieben 27. Juni 2003 Autor Geschrieben 27. Juni 2003 Danke, sehr gute Einfall! Es das mit dem Boolean-Feld funktioniert zwar nicht im normalen DB-Grid, aber ich hole mir jetzt erstmal ein Integerfeld indem ich mit 1 und 0 die Auswahl treffen kann! Vielen dank nochmal! mfg soltac Zitieren
geloescht_JesterDay Geschrieben 27. Juni 2003 Geschrieben 27. Juni 2003 Original geschrieben von Soltac aber ich hole mir jetzt erstmal ein Integerfeld indem ich mit 1 und 0 die Auswahl treffen kann! Noch ein "Tip" dazu... Boolean ist nichts anderes als 0 bzw 1 Du kannst also entweder scheiben IF Query1.FieldByName('Check').asInteger = 0 then else IF Query1.FieldByName('Check').asInteger = 1 then oder aber If Boolean(Query1.FieldByName('Check').asInteger) then 0 Ist False und 1 ist True Ord(False) = 0 Ord(True) = 1 Zitieren
maxim_42 Geschrieben 30. Juni 2003 Geschrieben 30. Juni 2003 Nur der Vollständigkeit halber: In VB hat der Bool true (wahr) den Wert -1. Zitieren
Pointerman Geschrieben 7. Juli 2003 Geschrieben 7. Juli 2003 Moin! Als erstes must Du unter Options "dgMultiselect" auf True setzten (DBGrid.Options.dgMultiselect := True;). Jetzt kannst Du mehrere Zeilen Markieren, die in DBGrid.SelectedRows als Bookmarks gespeichert werden. Wenn Du jetzt die Zeilen bearbeiten willst, dann musst Du die markierten Zeilen mit GotoBookmark durchgehen. Hoffe geholfen zu haben! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.