Seite 1 von 1

EnableExplicit

Verfasst: 16.02.2023 14:32
von BueNo
Wenn ich innerhalb einer Routine API-Aufrufe mache, wie z.B.

SendMessage_(GadgetID(W03_Listicon_0), #LVM_SETCOLUMN,1,@Center)
SendMessage_(GadgetID(W03_Listicon_0), #LVM_SETCOLUMN,2,@Center)
SendMessage_(GadgetID(W03_Listicon_0), #LVM_SETCOLUMN,3,@Center)
SendMessage_(GadgetID(W03_Listicon_0), #LVM_SETCOLUMN,4,@Center)

um die Spalten eines Listicons zentriert anzuzeigen, kann ich die Varialbe @Center nicht deklarieren, da es sich offensichtlich um eine BS-Variable handelt.

Wenn ich dann aber wie gewohnt EnableExplicit nutze, um Übersicht über meine Variablen zu behalten, werden die o.g. Vars als nicht deklariert bemängelt. Es wäre schön, wenn ich die Pflicht zur Variablendeklaration auch in Prozeduren verwenden kann, die API-Aufrufe enthalten.

Gruß

BüNo

Re: EnableExplicit

Verfasst: 16.02.2023 15:31
von Axolotl
Moin,
wo ist genau das Problem?
Außerhalb von Proceduren kann man folgendes schreiben:

Code: Alles auswählen

  Define Center.LVCOLUMN  ; or Global Center.LVCOLUMN 
    Center\mask = #LVCF_FMT 
    Center\fmt = #LVCFMT_CENTER 
In einer Procedure macht man es so:

Code: Alles auswählen

Procedure SetGadgetColumnsCentered(Gadget) 
  Protected Center.LVCOLUMN 

  Center\mask = #LVCF_FMT 
  Center\fmt = #LVCFMT_CENTER 
  SendMessage_(GadgetID(Gadget), #LVM_SETCOLUMN, 0, @Center)
  SendMessage_(GadgetID(Gadget), #LVM_SETCOLUMN, 1, @Center)
  SendMessage_(GadgetID(Gadget), #LVM_SETCOLUMN, 2, @Center)
EndProcedure 
Geht bei mir mit oder ohne EnableExplicit. Wobei EnableExplicit (eigentlich) immer verwendet werden sollte....

Re: EnableExplicit

Verfasst: 16.02.2023 17:04
von BueNo
Sobald ich in einem MOudl enableexplicit angegeben habe, wird die Vairable @Center als nicht deklariert beanstandet. Wenn ich sie aber deklariere, funktioniert der API-Aufruf nicht mehr.

Gruß

Re: EnableExplicit

Verfasst: 16.02.2023 17:28
von Axolotl
Dann zeig mal einen lauffähigen (abgespeckten) Code, dann kann ich/man ggf. weiterhelfen...
Ansonsten stocher ich hier nur rum... .

Re: EnableExplicit

Verfasst: 16.02.2023 17:59
von NicTheQuick
Benutzt du in dem Modul Variablen, die außerhalb des Moduls deklariert und definiert werden?
Woher kommt denn dieses "Center"? Irgendwo vorher schreibst du da doch irgendwas rein.