AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TreeView-Bug beim onEdited-Event? Daten sind durcheinander!
Thema durchsuchen
Ansicht
Themen-Optionen

TreeView-Bug beim onEdited-Event? Daten sind durcheinander!

Ein Thema von TheMiller · begonnen am 21. Jan 2010 · letzter Beitrag vom 23. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

TreeView-Bug beim onEdited-Event? Daten sind durcheinander!

  Alt 21. Jan 2010, 19:07
Hallo,

wieder einmal ein blöder Titel, aber ich hoffe ihr versteht später warum ich das nicht in einen "schönen" Titel fassen kann. Hier das Problem.

Ich lasse die TreeView auf das onEdited-Event reagieren, einen Datensatz in der DB neu schreiben (zu Testzwecken jetzt deaktiviert), danach die TreeView-Items löschen und die neuen Daten aus der DB anzeigen. Also, anzeigen, ändern, visuelle Ansicht löschen und neu aufbauen.

Es läuft auch alles so durch, wie eben beschrieben. Daten werden momentan keine verändert, da dies deaktiviert ist (wegen diesem Problem).

Nach dem leeren der Items (TreeView2.Items.Clear) und dem Neuladen der Daten aus der DB (es sind ja immernoch die gleichen), wird auf einmal einem Item (meistens dem zuletzt erstelltem) nicht mehr der Titel aus der DB gegeben, sondern der Wert, den "s" aus der Prozedur onEditet hatte.

Allerdings läd er erst alle Daten aus der DB richtig und zeigt sie auch richtig in der TreeView an, ändert aber nach dem ganzen Laden den Titel eines Items in den vorherigen "s-Wert".

[EDIT:] Quelltext entfernt, da es sich höchstwahrscheinlich um einen Bug handelt, oder ich erstelle die Items falsch Ein Beispielsprojekt mit Quelltext liegt im Anhang des nächsten Beitrages bei [/EDIT]

Danke im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#2

Re: TreeView onEdited-Variable "s" verändert ungew

  Alt 21. Jan 2010, 20:19
Ha....

es ist ein Delphi-Bug. Ich habe ein komplett neues "Programm" geschrieben, welches genauso arbeitet, wie mein richtiges - und der gleiche Fehler tritt auf.

Probiert es selbst aus!

Ändert einfach irgendein Item, indem ihr auf eins klickt und wartet, bis der Cursor erscheint. Tragt einen anderen Namen ein, bestätigt mit <Enter> und schaut euch dann das letzte Item an (unter Knoten: Item10).

Oder ist es doch mein Fehler? Wie auch immer, schaut es euch an!
Angehängte Dateien
Dateityp: zip beispiel_239.zip (236,3 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

Re: TreeView-Bug beim onEdited-Event? Daten sind durcheinand

  Alt 22. Jan 2010, 14:50
Hallo,

ich pushe hier mal vorsichtig. Ich weis, dass noch keine 24h vergangen sind, aber heute ist Freitag und ich würde dieses Problem gerne abschließen können. Ich glaube nicht, dass andere noch Lust haben, nach 20 Uhr heute so viel zu "arbeiten".

Bitte reißt mir nicht gleich den Kopf ab.

Hier noch eine Info: Das Verhalten tritt auch in Windows XP auf. Mache ich doch etwas falsch?

Danke
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: TreeView-Bug beim onEdited-Event? Daten sind durcheinand

  Alt 22. Jan 2010, 15:10
[Edit] Klappt doch net so ganz...

Wobei ich mich frage ob das OnEdited-Event so das richtige ist

Zitat:
In der OnEdited-Ereignisbehandlungsroutine können Sie die Beschriftung noch ändern, bevor die Eingabe des Benutzers eingetragen wird.
Da er scheinbar nicht rechtzeitig die Änderungen übernehmen kann am Treeview.

Gibts da kein alternatives Event was wirklich nach den Änderungen gefeuert wird?

[Edit] Scheinbar gibt es soetwas nicht, da musst du dir wohl eine andere Strategie ausdenken.

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

Re: TreeView-Bug beim onEdited-Event? Daten sind durcheinand

  Alt 22. Jan 2010, 15:17
Hi,

du hast das Problem anscheind falsch erkannt. Von einer AV spreche ich nicht. Aber mein beschriebener Fehler tritt auch bei deinem Code auf. Mach mal folgendes:

Öffne das Programm (mit deinem oder meinem Code - das ist egal)
Öffne mal einen Knoten und ändere den Namen von einem Child (Bsp. "Child3/2" -> "asdasdasda").
Der Baum läd sich neu
Und jetzt öffne mal ALLE Knoten und schau was passiert.

Ich hänge hier mal ein Bild an, wie mein Baum aussieht, nachdem ich "Child3/2" geändert hab.

[Roter Kasten]Hab roten Kasten gesehen, aber das Bild trotzdem angehängt. Tja, ich dachte es sei das richtige Event. So vom Wortlaut her...[/Roter Kasten]
Miniaturansicht angehängter Grafiken
unbenannt_924.jpg  
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: TreeView-Bug beim onEdited-Event? Daten sind durcheinand

  Alt 22. Jan 2010, 15:21
Ne scheinbar funktioniert es einfach nicht...also musst du dir nen alternativen Lösungsweg ausdenken.

Tut mir wirklich Leid...aber beschäftige mich allgemein dann doch eher weniger mit den visuellen Komponenten
und wenn laufe ich meist selbst oft vor eine Wand

Falls du einen Lösungsweg findest, poste ihn bitte :>

Habe nämlich noch eine Treeview-Komponente in einer Combobox, die irgendwann einmal weiter ausgebaut werden soll *g*

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7

Re: TreeView-Bug beim onEdited-Event? Daten sind durcheinand

  Alt 22. Jan 2010, 15:51
Klar gerne. Freut mich aber erstmal, dass es doch kein Fehler von mir ist. Stell dir mal ein größeres Projekt vor und die Arbeit diesen Fehler zu suchen und alles zu debuggen. Da gingen schon so 4 Stunden drauf...
  Mit Zitat antworten Zitat
busybyte

Registriert seit: 15. Sep 2006
165 Beiträge
 
#8

Re: TreeView-Bug beim onEdited-Event? Daten sind durcheinand

  Alt 22. Jan 2010, 17:51
Doch ist ein Fehler in der Denkweise, da der Text im Treeview erst nach Austritt aus OnEditet mit dem Parameter/"Var"! S verändert wird, Du aber noch innerhalb der Procedure schon wieder neu lädst.

Delphi-Quellcode:
procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
  var S: string);
begin
LoadData;
S:=Node.Text; //<-
end;
I love DiscCat
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#9

Re: TreeView-Bug beim onEdited-Event? Daten sind durcheinand

  Alt 22. Jan 2010, 18:00
Also gibt es keine Möglichkeit, so ein Verhalten zu erreichen, wie ich es gerne gehabt hätte. Ich könnte eine Message senden und darin den Baum neu laden lassen, oder?
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#10

Re: TreeView-Bug beim onEdited-Event? Daten sind durcheinand

  Alt 22. Jan 2010, 18:04
Nachdem OnEdited-Event wird noch das OnChange-Event ausgeführt sofern deklariert. Setze mal Deine Load-Funktion in das OnChange-Event, dann sollte es funktionieren. Das On Edited-Event soll ja zum Beispiel dazu dienen, dass Du die Eingabe nochmals verarbeiten kannst oder zum Beispiel die Eingabe entsprechend formatieren kannst.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:42 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