Autor: Karl-Jürgen Hilger (---.dyn.telefonica.de)
Datum: 27.07.16 22:23
Hi,
ich bin mir eigentlich ziemlich sicher, ein Objekt innerhalb eines dynamischen Arrays erstellt zu haben, so wie Roland es in der Hilfe vorgemacht hat.
Das Beispiel unten erstellt einen Button, der wie ein Schalter nach einem Klick entweder rot oder grün ist.
Der Konstruktor funktioniert, Objekt wird erzeugt, aber die Methode "switch@" wird nicht erkannt, was zur Fehlermeldung führt.
Dagegen funktioniert ein Einzel- Objekt (ohne Array) sehr wohl mit der Methode.
In der While- Schleife ganz unten ist die "switch@"- Methode gerade auskommentiert, damit die alternative Proc "Umschalten" die einwandfreie Funktion des Codes demonstrieren kann.
Um die Fehlermeldung zu erhalten, bitte einfach "Umschalten" auskommentieren und "toggle[0].switch()" aktivieren.
Über einen Tip würde ich mich freuen - vielleicht hab' ich ja auch nur grade ein Brett vorm Kopf ...
Danke und Gruß
KJ
$H messages.ph
$H windows.ph
//-------------------------------------------XProfan X3.1 (Win7/64)
Declare memory toggle[]
Declare ende%, handle ende
Class SWITCHBUTTON = apic%%,\
bpic%%,\
button%%,\
red%,\
switchbutton@,\
switch@
Proc SWITCHBUTTON.switchbutton
Parameters handle parent, long a,b,c
.apic%% = Create("hNewPic", c-10, c-10, Rgb(192,0,0))
.bpic%% = Create("hNewPic", c-10, c-10, Rgb(0,192,0))
.button%% = Create("PicButton", parent, .apic%% , a, b, c, c)
EndProc
Proc switchbutton.switch
If .red%
.red% = 0
SendMessage(.button%%, ~BM_SETIMAGE, ~IMAGE_BITMAP, .apic%%)
Else
.red% = 1
SendMessage(.button%%, ~BM_SETIMAGE, ~IMAGE_BITMAP, .bpic%%)
EndIf
EndProc
Proc Umschalten
With toggle[0]
If .red%
.red% = 0
SendMessage(.button%%, ~BM_SETIMAGE, ~IMAGE_BITMAP, .apic%%)
Else
.red% = 1
SendMessage(.button%%, ~BM_SETIMAGE, ~IMAGE_BITMAP, .bpic%%)
EndIf
EndWith
EndProc
cls
toggle[0] = New(SWITCHBUTTON, &hwnd, 200,100,48)
ende = Create("Button", &hwnd, "STOP" , 0, 0, 50, 30)
whilenot ende%
waitinput
If Clicked(ende)
ende% = 1
DeleteObject toggle[0].apic%%, toggle[0].bpic%%
Dispose toggle[]
ElseIf Clicked(toggle[0].button%%)
Umschalten //---- funktioniert
//toggle[0].switch() //---- funktioniert nicht
EndIf
EndWhile
End
Nachricht bearbeitet (27.07.16 22:30)
|
|