Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VirtualTreeView: Nodes sollen position behalten? (https://www.delphipraxis.net/53182-virtualtreeview-nodes-sollen-position-behalten.html)

DSeven 11. Sep 2005 21:29


VirtualTreeView: Nodes sollen position behalten?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

Ich arbeite an einem CodeBrowser für PHP. Der CodeBrowser verwendet VirtualTreeView.
Mein Editor ist eine MDI Anwendung. Und in das OnActivate Erreignis des Editor Childs habe ich eine Update Funktion für den CodeBrowser eingebaut. also immer wenn ein neues MDI aktiviert wird wird der CodeBrowser neu erstellt.

Das Problem, der CodeBrowser befindet sich in einem Dock von JVCL. Und immer wenn der User in dieses Dock vom CodeBrowser klickt und dann wieder in den Editor wird der Browser neu erstellt so das die position der Nodes sich verändert.
Ich will aber das der CodeBrowser nur neu erstellt wird wenn sich das ActiveChild ändert und nicht wen ich auf ein dock klicke. Wie kann ich das anstellen?

Hoffe ist verständlich.

mfg,
Ganry

AndreasP 11. Sep 2005 23:14

Re: VirtualTreeView: Nodes sollen position behalten?
 
mahlzeit,

ich hoffe ich hab dich richtig verstanden. Spontanerweise würde ich eine globale Variable vom Typ TForm erstellen und im OnActivate diese Variable vergleichen.

Delphi-Quellcode:
{...}
LastEdit: TForm;
{...}

procedure OnActivate(Sender: TObject);
begin
  if LastEdit <> Sender then
  begin
    LastEdit := Sender;
    UpdateCodeBrowser;
  end;
end;
Da du mit sicherheit für alle MDI-Childs die gleiche funktion hast bekommst du über Sender immer den aktuellen Child und nur wenn sich der Child ändert wid dein CodeBrowser Aktualisiert Ich hoffe du erkennst was ich meine.

DSeven 12. Sep 2005 17:13

Re: VirtualTreeView: Nodes sollen position behalten?
 
Hallo,

Danke genau das meinte ich. Hast mir viel arbeit erspart habe schon dadran gedacht alles komplett neu zu programmieren :)

mfg,
Ganry


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 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