Einzelnen Beitrag anzeigen

CarstenB

Registriert seit: 15. Jun 2007
24 Beiträge
 
Delphi XE5 Professional
 
#1

Formulare/Komponenten stören sich gegenseitig

  Alt 8. Apr 2011, 10:15
Hallo,

ich beisse mir aktuell an einem etwas merkwürdigen Problem die Zähne aus und hoffe nun hier Anregungen/Tipps zu bekommen, die mich der Lösung etwas näher bringen.

Folgende Situation:

2x MDI-Formulare
1) enthält im Wesentlichen ein TStringGrid und ein TListView.
Das Ganze funktioniert als Debugger für eine SPS, im Stringgrid wird der Code angezeigt und in der rechten Spalte Informationen zum aktuellen Zustand/Werten von Symbolen, etc.
Im Listview können Symbole zur Beobachtung definiert werden.

Die Daten werden durch einen Hintergrundthread aktualisiert, der dem Formular signalisiert wenn neue Daten vorliegen, so dass die Ansicht aufgefrischt wird.
2) enthält ein Editfenster, in dem der AWL-Code bearbeitet wird.
Als Editorkomponente kommt ein TSynEdit (aus dem UniSynEdit) zum Einsatz.
Nun das Problem:
Habe ich beide Fenster sichtbar und klicke im Stringgrid eine Zeile an, dann springt der Cursor in der SynEdit-Komponente auf dem anderen Formular ins Nirvana (vor die Zeilenangabe).
Klicke ich zurück in das Editorfenster wird der Cursor wieder entsprechend umgesetzt und bleibt dort.
Verschärft wird das Ganze noch, wenn ich mit dem Debugger Online bin, sprich laufend Daten aktualisiert werden. Dann spring der Cursor im Edit-Bereich wieder in die Wüste und lässt sich auch durch erneutes Klicken ins Fenster nicht dazu bewegen wieder normal zu funktionieren.
Das Ganze hängt offenbar zusammen mit der Verwendung von BeginUpdate/EndUpdate für die Datenspalte des StringGrids (.Cols[2].BeginUpdate/EndUpdate) bzw. das ListView.
Ich habe die entsprechenden Anweisungen jetzt mal auskommentiert und rechne auch nicht mit Performance-Problemen, aber das Problem mit dem Anklicken des StringGrids und dem vagabundierenden Cursor bleibt bestehen.

Hat jemand eine Idee, oder einen Ansatz woran das liegen könnte?

Wäre für jeden Vorschlag dankbar.

Crosspost DF

Geändert von CarstenB ( 8. Apr 2011 um 10:18 Uhr)
  Mit Zitat antworten Zitat