Control op alle Windows van je applicatie zetten of aanpassen.

 



In deze blog:
1: Icoontje op elk Window aanpassen.
2: Een Button van het Main Window clonen naar alle windows.

Oplossing zijn van Jan de Bruin.

1. Icoontje op elk window aanpassen.

Onderstaande drie regels staan in de Project initialisatie.
Je moet wel aan het begin van je project zetten:
EXTERN winconst.wl
EXTERN keyconst.wl

Windows events

Event(Schermsettings,"*.",WM_SHOWWINDOW)
Event(Schermsettings,"*.",WM_MDIMAXIMIZE)
Event(Schermsettings,"*.",WM_SETFOCUS)

Bovenstaande betekent dat als een Window getoond wordt "WM_SHOWWINDOW" dan wordt de procedure "Schermsettings" aangeroepen.

Voorbeeld:
Links bovenaan je scherm staat je logo, het logo vd maker vh programma. Dit staat op elk Window.
Klant (gebruiker) wil daar echter een eigen logo. 

GLOWindowIcoon is een globale variabele waar het plaatje (Icoontje) instaat.

Procedure Schermsettings:

PROCEDURE Schermsettings(nWindowsMessage is int, nWParam is int, nIParam is int)

WindowNaam is string
WindowNaam = MySelf..Name
IF {WindowNaam,indControl}..Type = typWin THEN
     GLOActiveWindow = {WindowNaam,indWindow}..Name
  {WindowNaam,indWindow}..Icon = GLOWindowIcoon

END

2: Een Button van het Main Window clonen naar alle Windows.

Als je niet een template hebt waar alle windows op gebaseerd zijn, en je wil bijvoorbeeld een button op  alle Windows zetten die hetzelfde doet, dan kan dat via onderstaande methode.

Op main window een button buiten beeld zetten.
De button met snetoets kunnen activeren: bijv Alt-F4
Onder de button roepen we een procedure aan bijv :  

Button (control) op alle schermen van je applicatie zetten.

Er staat een button op je Main Window bijvoorbeeld Button die iets uitvoert als je op F2 drukt, bijv de naam vh Window.

Stel op je Win_Hoofdmenu button met de naam: BTN_F2
In de Procedure SchermSettings van Optie 1 zou je dan de op onderstaande manier kunnen aanpassen:

ControleToClone is string =  "WIN_Hoofdmenu.BTN_F2"
Btn_F2 is string
GeclondControl is Control
Btn_F2 = "[%GLOActiveWindow%].BTN_F2"
IF NOT ControlExist(Btn_F2) THEN
IF ControlExist(ControleToClone) THEN
GeclondControl <- ControlClone(ControleToClone,Btn_F2)
END
END









Reacties

Populaire posts van deze blog

WDG CHAAM 7 juni 2024

Strato problemen