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 Probleme mit TAdvToolPanel (https://www.delphipraxis.net/190904-probleme-mit-tadvtoolpanel.html)

haentschman 18. Nov 2016 06:43

Probleme mit TAdvToolPanel
 
Liste der Anhänge anzeigen (Anzahl: 3)
Moin... :P

Jetzt weiß ich nicht mehr weiter...:?

Gegeben:
1. AdvPageControl mit dynamischen Tabs mit Frame als Inhalt (incl. TAdvToolPanel).
2. Die Tabs werden über den Frame geschlossen.
3. Die Freigabe des Tabinhaltes (Frame) erfolgt über die Freigabe des Tabs.
4. "Entkopplung" des Schließens des Tabs über eine Message.

Fehler:
1. Sporadische Zugriffsverletzungen beim Schließen (Abräumen der Controls)
2. Gefühlt tritt der Fehler auf wenn die Tabs schnell nacheinander geschlossen werden.
3. Der Fehler tritt bei beliebigen Tabs auf.
3. Der Fehler tritt nicht immer auf. Manchmal kann ich gefühlt 10-20 Tabs schließen. :evil:

Meine Meinung:
Ich tippe auf ein Messageproblem in der Komponente. :gruebel: Oder? :wink:

Alternativen:
Ich bräuchte ein TabControl wie die Projektverwaltung. Welche könnt ihr empfehlen?

Danke...

stahli 18. Nov 2016 12:28

AW: Probleme mit TAdvToolPanel
 
Schau mal, ob das Problem etwas mit dem fokussierten Control zu tun haben kann.

Ich hatte früher mal bei eigenen Controls das Problem, dass Windows noch ein Control ohne Focus neu zeichnen wollte, das ich aber zwischenzeitlich dynamisch gelöscht hatte.
Evtl. reicht es, wenn Du den Focus vor dem Löschen auf das Formular oder ein anderes Control setzt, welches nicht mit freigegeben wird.

haentschman 18. Nov 2016 13:26

AW: Probleme mit TAdvToolPanel
 
Danke...:P
Leider nicht. Das Fehlerbild bleibt das gleiche. :?

Ich werde mal probieren das der Inhaltsframe nicht den Tab als Owner hat, sondern vor dem Entfernen des Tabs der Frame klassisch freigeben wird...

tsteinmaurer 18. Nov 2016 17:36

AW: Probleme mit TAdvToolPanel
 
Hallo,

hatte in der Vergangenheit mit dieser Komponente einiges an Zeit verbracht, da ich selbst mit ähnlichen Problemen zu kämpfen hatte. Wollte diese Komponente ebenfalls in Kombination mit einem TFrame verwenden, das ich zur Laufzeit lud. Suchte hier den Fehler eigentlich immer bei mir selbst, bis ich dann, nach ein paar Anfragen, folgendes von TMS zurückbekommen habe.

Zitat:

TAdvToolPanel / TAdvToolPanelTab was designed to be directly used on the
TForm.
It needs to hook into its parent form to make it work properly and when you
insert an intermediate level
like a TFrame that causes a parent switch during the creation of the form,
this breaks the hooking TAdvToolPanelTab
needs to do. Please use TAdvToolPanelTab directly on a TForm like it was
designed for.
Bin dann auf das LMD DockingPack (http://www.lmdinnovative.com/products/vcl/lmddockpack/) umgestiegen und alle Probleme waren weg. Funktioniert auch auf einem TFrame einwandfrei.

Thomas

haentschman 18. Nov 2016 18:51

AW: Probleme mit TAdvToolPanel
 
Hallöle... :P

Du hast meinen Tag gerettet... :thumb: Ich habe fast an meiner Intelligenz gezweifelt. :P
Dann werde ich das dann mal umbauen...

Danke...8-)

haentschman 19. Nov 2016 11:17

AW: Probleme mit TAdvToolPanel
 
Moin...:P

Update: Nach dem Entfernen des Toolpanels in den Tabs, ist Ruhe... :thumb:

mensch72 19. Nov 2016 15:49

AW: Probleme mit TAdvToolPanel
 
"SubClass" mit Proc umbiegen... ne dann lieber das was (anders)gemacht werden muss im TMS Quelltext ändern/einfügen oder dort passend einen Call(Back) implementieren.

Wir verwenden auch (fast nur) TMS Zeug, meine Lösung für solche Sache wäre ein zunächst privater Patch im TMS Source, wo ich im TMS-Source bei Close/Destroy per Abfrage Has/Is MyFrameClass.. then call MyFrame.XXX selbst ohne MessageVerwendung sauber synchron "TMS" gesteuert für alles was ich zu tun hätte nutzen würde.

Mit einem gutem CompareTool hält sich auch der Aufwand sowas über zig TMS Versionen jeweils nachzutragen in überschaubaren Grenzen und wenn man es als "CallBack" realisiert und den "CallSource" an TMS gibt, bauen die das teils zukünftig auch selbst so ein. Ein paar meiner Sachen für unsere CustomFields im TMS Grid, haben die nun schon seit 1,5Jahren selbst drin und alles is gut:)


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