Autor Beitrag
Taladan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88


Delphi 2005 Personal
BeitragVerfasst: Do 24.07.03 15:15 
Da ich neu in der Delphiwelt bin, weiß ich net, ob ich damit hier richtig bin. Ich hoffe, ihr könnt mir helfen.

Mein Problem:
Ich hab zwei DBGrid-Elemente. Sie greifen auf unterschiedliche Datenbanken zu. Bei der einen Datenbank werden Gebiete abgespeichert, bei der anderen, die Mitarbeiter. Nun möcht ich eine einfache Drag&Drop-Option kreiren, wo ich einfach den Mitarbeiter anklicke und ihn dann auf das entsprechende element im zweiten DBGrid ziehe. Es sollte eigendlich reichen, nur die Zeile anzuklicken und zu ziehen. Das Problem, welches ich habe, ich weiß nicht, wie ich die Abfrage der Source mache.
Bei einer listbox hab ich das immer über die ItemIndex-Eigenschaft gemacht.

Also
i:= (source as tlistbox).itemindex;
edit1.text := (source as tlistbox).items[i];

Nun meine fragen...:
1. Wie kann ich Abfragen, welche Zeile von DBGrid1 gezogen wird (bzw. deren einzelne Zellen abfragen).
2. Wie kann ich feststellen, welche Zelle/Zeile im DBGrid2 abgelegt wird
3. Wie kann ich Daten in dieser Zelle hinterlegen, ohne umweg über ein editfeld

Danke für die mühe

Taladan

Edit: Falls relevant. Ich habe nur die Delphi 4 Version Standart
biohazard
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89



BeitragVerfasst: Fr 25.07.03 08:58 
Hallo,

Kann dir jetzt nicht sagen ob das geht, da ich noch nie mit Drag&Drop zwischen DBGrids zu tun hatte.

Du kannst auf den Datensatz der gerade im Grid aktiv ist über
DBGrid1.DataSource.DataSet.RecNo zugreifen.

Auf die einzelnen Zellen greifst du mit fieldbyname(). Entweder direkt von deiner Tabelle oder so wie oben über das Grid zu.

Das mit dem Ablegen versteh ich nicht ganz, was genau da gespeichert oder abgelegt wird (den ganzen Datensatz oder einzelne Felder).
Du kannst ja sagen, dass bei der Drag&Drop Aktion einem Feld von der QuellDB einem Feld von der ZielDB zugewiesen werden soll(Table1.fieldbyname:=Table2.fieldbyname), oder schau mal in der Hilfe nach AppendRecord.
Nico
Hält's aus hier
Beiträge: 9

Win ME, Win 98
D5 Prof
BeitragVerfasst: Fr 25.07.03 10:05 
Hi,
Drag & Drop aus einer DBGrid ist (zumindest bei mir, D5 Prof) mit dem Problem verbunden, dass der Code in der OnMouseDown-Methode nicht ausgeführt wird, wenn der Mauszeiger über einem Datensatz steht. Da müsstest du dann die OnMouseMove benutzen und Shift auf ssLeft überprüfen. Ansonsten, so wie es biohazard beschrieben hat.