Entwickler-Ecke
Datenbanken - Doppelter Eintrag
gd0123456 - So 08.04.12 13:57
Titel: Doppelter Eintrag
Hi, hab folgendes Problem.
Hab ein Listview mit checkboxen. Im Ereignis ListView1MouseUp frage ich ab ob die checkbox angeklickt wurde.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm3.ListView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Item: TListItem; HitTest: THitTests; begin Item := ListView1.GetItemAt(x, y); HitTest := ListView1.GetHitTestInfoAt(x, y); if (Item <> nil) and (HitTest = [htOnStateIcon]) then begin if (item.Checked = true) then begin adocommand1.CommandText := 'insert into rechnung (kundenid,bezeichnung,netto,datum,recid) values ('+edit1.Text+',"'+item.SubItems[0]+'","'+item.SubItems[1]+'","2009-20-22",'+edit2.Text+')'; adocommand1.Execute; end; end; end; |
Funktioniert auch soweit, jedoch habe ich das Problem dass es mir zweimal den Datensatz in die Datenbank schreibt. Setze ich nachdem execute ein showmessage dann schreibt er nur einmal. also genau so wie ich es brauche.
Hat jemand eine Idee bzw. kann mir helfen warum das passiert?
Danke
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
Delete - So 08.04.12 16:37
=> OnItemChecked
gd0123456 - Mo 09.04.12 13:50
Danke für die Antwort, hab ich auch schon ausprobiert, jedoch hat die funktion den Nachteil, dass ich die Spalten nicht auslesen kann. Also kann zwar überprüfen ob die Checkbox aktiviert wurde jedoch muss die ganze Spalte markiert sein, dass ich die Werte bekomme.
Xion - Di 10.04.12 18:08
Gucke mal, wer denn der "Sender" beim OnMouseUp ist. Wenn das zweimal aufgerufen wird, dann vielleicht mit verschiedenen Sendern. Dann würde ja if Sender=??? then zu Beginn ausreichen, um die Funktion nur einmal auszuführen
gd0123456 - Mi 11.04.12 03:52
Ok so hab die Lösung gefunden, naja man muss halt ein wenig das Hirn einschalten wenn man programmiert. Man sollte es auch in der richtigen Funktion schreiben OnListviewMouseDown und nicht onListviewMouseUp. OnListviewMouseUp wird zweimal aufgerufen einmal beim Draufklicken und einmal beim Loslassen. Die Lösung kann so nah und doch so fern sein.
Trotzdem danke für die Unterstützung.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!