Wert-Übergabe an Codeblöcke?!
Verfasst: Mo, 26. Jun 2006 14:48
Hi,
ich versuche gerade den Schleifenzähler an einen Codeblock zu übergeben. Nun wird bei dem Codeblock offenbar die Referenz auf die Zählervariable abgelegt und bei der Ausführung des Codeblocks der zu diesem Zeitpunkt gültige Wert der Zählervariablen verwendet.
Wie kann ich erreichen, dass im Codeblock der "richtige" Zählerwert zur Verfügung steht?
Einfaches Beispiel mit Pushbuttons:
Die Beschriftung der Buttons ist richtig (1, 2, ..., 5). Beim Drücken eines der Buttons zeigt die Messagebox immer "6" an (der dann in der Variablen i gespeicherte Wert). Ich bräuchte hier aber die Werte zum Zeitpunkt des Schleifendurchlauf (1, 2, ..., 5).
Stehe ich jetzt ganz auf dem Schlauch? (Habe mich schon einen halben Meter zur Seite gesetzt... )
Kann jemand helfen?
ich versuche gerade den Schleifenzähler an einen Codeblock zu übergeben. Nun wird bei dem Codeblock offenbar die Referenz auf die Zählervariable abgelegt und bei der Ausführung des Codeblocks der zu diesem Zeitpunkt gültige Wert der Zählervariablen verwendet.
Wie kann ich erreichen, dass im Codeblock der "richtige" Zählerwert zur Verfügung steht?
Einfaches Beispiel mit Pushbuttons:
Code: Alles auswählen
#include "appevent.ch"
procedure main()
LOCAL nEvent, mp1, mp2, oXbp
local i, xPos := 100
SetColor("N/W")
CLS
for i := 1 to 5
oXbp := XbpPushButton():new()
oXbp:caption := alltrim(str(i))
oXbp:create( , , {xPos,20}, {40,20} )
oXbp:activate:= {|| msgBox(str(i)) }
xPos += 50
next
// Event loop = Programmsteuerung
nEvent := 0
DO WHILE nEvent <> xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:HandleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
Stehe ich jetzt ganz auf dem Schlauch? (Habe mich schon einen halben Meter zur Seite gesetzt... )
Kann jemand helfen?