Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Mit Multiselect im DBGrid markierte Zeilen löschen (https://www.delphipraxis.net/117214-mit-multiselect-im-dbgrid-markierte-zeilen-loeschen.html)

egon.kaschuba 14. Jul 2008 11:50


Mit Multiselect im DBGrid markierte Zeilen löschen
 
:wall:

Hallo !

Also ,da möchte ich aus einem DBGrid mit Multiselect verschiedene Zeilen
mit dem " Multiselect-Punkt " versehen und dann anschließend löschen.

In der Option ist Multiselect auf True gesetzt.
Funktioniert aber nicht.

Probiert habe ich das mal so ...

var i : Integer;

procedure TForm1.ButtonClick(Sender: TObject);
var mehrDaten : Boolean;

begin

if i < Form1.DBGrid1.SelectedRows.Count) then
Form1.Table1.Boockmark := Form1.DBGrid1.SelectedRows[i];
inc(i);
MehrDaten := (i <= Form1.DBGrid1.SelectedRows.Count);
end;

Wo mache ich den Fehler?
Und wer kann mie helfen ??

Gruß
-Egon

Larsi 14. Jul 2008 12:27

Re: Mit Multiselect im DBGrid markierte Zeilen löschen
 
Wann wird denn in deinem Code die Datei überhaupt gelöscht :gruebel: :-D

Reinhardtinho 14. Jul 2008 12:40

Re: Mit Multiselect im DBGrid markierte Zeilen löschen
 
Hi,

mit folgendem Code kannst du alle selektierten Datenzeilen in einem Grid durchgehen und bearbeiten:

Delphi-Quellcode:
 
if (DBGrid1.SelectedRows.Count > 0) then
begin
  with DBGrid1.DataSource.DataSet do
  for i := 0 to DBGrid1.SelectedRows.Count - 1 do
  begin
    GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
    //Tue irgendwas mit aktuellen Datensatz
  end; (* of for *)

  DBGrid1.SelectedRows.Clear;
end (* of if *)
Bei //Tue irgendwas mit aktuellem Datensatz käme bei dir das Löschen des aktiven Datensatzes rein.


MFG
Lorenz

ConstantGardener 14. Jul 2008 12:47

Re: Mit Multiselect im DBGrid markierte Zeilen löschen
 
Hallo,

der Code von Reinhardtiho funktioniert prinzipiell schon. Beim löschen würde ich die Schleife allerdings rückwärts laufen lassen, da man sonst Probleme mit der Bookmarkzuordnung bekommt. Ich lösche die markierten Datensätze meist über eine TQuery per SQL (Schlüssel hole ich aus der TTable) und aktualisiere dann die TTable.

Reinhardtinho 14. Jul 2008 13:17

Re: Mit Multiselect im DBGrid markierte Zeilen löschen
 
Ja stimmt, habe ich nicht bedacht mit den Bookmarks, hab das in meinem Programm nur, um Informationen aus der DB zu lesen.

egon.kaschuba 14. Jul 2008 14:16

Re: Mit Multiselect im DBGrid markierte Zeilen löschen
 
:roll:

Hi,
klar was Reinhardtinho da geschrieben hat.

Aber da ist bei mir der Wurm.

Wenn ich zum Beispiel den ersten Datensatz mit Multiselect markiere ist alles OK ,
dann habe ich den " Punkt " . Nehme ich dann den dritten oder achten u.s.w.
bekomme ich nicht mehr den " Punkt " um die so ausgewählten Datensätze zu löschen.

Hier so ne kleine Demo wie ich das meine.


Datensatz 1 . markieren und löschen
Bananen
Datensatz 3 . markieren und löschen
Äpfel
Pflaumen
Kirschen
Zitronen
Datensatz 9 . markieren und löschen

Gruß
- Egon

Reinhardtinho 14. Jul 2008 15:12

Re: Mit Multiselect im DBGrid markierte Zeilen löschen
 
Das verstehe ich jetzt nicht ganz.

Du willst schon die 3 Datensätze gleichzeitig löschen?

Und welcher "Punkt" geht dir verloren, wenn du eine Zeile löscht, die nicht die erste ist?

egon.kaschuba 14. Jul 2008 15:29

Re: Mit Multiselect im DBGrid markierte Zeilen löschen
 
:x

Hi,

Ja, Reinhardtinho das ist ja der Hacken beider Sache.
Klick ich zum Beispiel den ersten an ,bekomme ich das zeichen .>>
Klick ich dann den achten an bekomme ich wieder das zeichen .>>

Aber dann ist der obere Datensatz mit dem Punkt versehen. .

Mache ich dann so weiter bekomme ich wieder NUR das zeichen .>>

Es soll so sein das wenn ich den ersten und den dritten u.s.w. Anklicke
der Punkt stehen bleibt. Sodas ich die markierten Felder löschen kann.

In einem Buch von Doberenz das Kochbuch wird soetws gezeigt,aber datt geit nich.
Denn Lesen kann ich.

Gruß
-Egon

Reinhardtinho 14. Jul 2008 15:37

Re: Mit Multiselect im DBGrid markierte Zeilen löschen
 
Ich weiß ehrlich gesagt immer noch nicht, was du meinst. Mach doch bitte mal ein Screenshot, ich vermute mal, dass es sich um was visuelles handelt (Punkt, Zeichen, etc.).

egon.kaschuba 14. Jul 2008 15:47

Re: Mit Multiselect im DBGrid markierte Zeilen löschen
 
Hi,
Reinhardtinho

Ich melde mich wieder muss mal eben mit Rudi (Mein Hund) Gassi gehen.

Gruß
- Egon

PS: Schade das du kein Mailadresse hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.
Seite 1 von 2  1 2      

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