[delphi] Window-verstoppertje?

Pagina: 1
Acties:

  • AdLentis
  • Registratie: Mei 2000
  • Laatst online: 27-10-2025

AdLentis

Gadget Inspector

Topicstarter
Ik zit met het volgende probleem. Ik heb in Delphi een ActiveX library gemaakt die een van een dialog form een showmodal aanroept. Dit gaat goed, alleen verschijnt in de taskbar een knop voor dat form, en dat wil ik niet.

Ik kan gewoon switchen tussen de applicatie en mijn form. De applicatie is echter zoals het hoort niet toegankelijk (disabled) en in de tasklist is slechts degene zichtbaar die actief is. In de taskbar zijn beide windows te zien. Als ik een toolwindow van het form maak, is er geen taskbarbutton niet zichtbaar. Als de applicatie dan eenmaal focus heeft kom ik niet meer terug bij mijn form, want die verschijnt niet in de tasklist. De enige manier om er dan nog uit te komen is een "end process."

Dit is echter nog niet alles. Als er vanaf het form bijvoorbeeld een opendialog aangeroepen wordt, en deze sluit weer, komt er ineens een ander programma tussen het form en de applicatie.

Het lijkt erop dat Delphi (of Windows?) niet goed weet dat mijn form onderdeel is van de applicatie. Hoe los ik dit op?

Ik ben tenminste niet altijd hypocriet!


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Je zou als param bij de aanroep het aanroepende form kunnen meegeven en deze in je ActiveX gedeelte kunnen gebruiken als parent voor jouw dialog form.
Wat betreft de 'knop' in de taakbalk: daar is een oplossing voor, ik ga hem even zoeken...

My personal website


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Keej, heb hem:
code:
1
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
zou de truuk moeten doen. Zoek anders ff op google of MSDN naar de setwindowlong functie, dan kom je er vanzelf uit...

My personal website


  • AdLentis
  • Registratie: Mei 2000
  • Laatst online: 27-10-2025

AdLentis

Gadget Inspector

Topicstarter
Bedankt, het werkt nu, het is alleen nog de vraag hoe de application handle bepaald kan worden in AutoCAD. Dat gebeurt nu met een FindWindow, maar als er om de 1 of andere reden 2 sessies geopend zijn met dezelfde windowtext, gaat het mis...

Ik ben tenminste niet altijd hypocriet!