Forum | | | | E.T. | mon folgendes Beispiel reagiert dans qui .exe anders comme im Interpreter: Interpreter : je peux avec qui Tab-bouton de einem Éditer zum anderen hüpfen, sans cela irgendwas passiert. viens je dans Éditer 1 à, wird qui le calendrier aktiv, verlasse je cet, wird qui le calendrier wieder deaktiviert. je peux alors im Éditer 1 den le calendrier Vous pouvez, et cela date (welches angeklickt wurde), wird übernommen (alors ins SubClassProc gerannt, Menu 15000 gesetzt, cela ensuite ausgewertet). Freu, so veux je es avons !!
dans qui Exe chaque la fois, si qui le calendrier aktiviert wird (alors Concentrer dans Éditer 1) wird ins SubclassProc gerannt et Menu 15000 gesetzt (alors aussi juste am Start, weil oui qui Concentrer dans Éditer 1 ist). Beim désactiver des Kalenders (Concentrer ausserhalb Éditer 1) wird nochmal ins SubClassProc gerannt et cela Event ausgelöst. Stoffwechselendprodukt !!
suis pour chacun concept reconnaissant !! KompilierenMarqueSéparationDeclare Element&[], Kalender&, Ende%
SubClassProc
If SubClassMessage(Kalender& , 15)Tag angeklickt
messagebox(Im SubClassProc,Info,64)...zur Information
SetMenuItem 15000
Set(WinProc, 1)
EndIf
EndProc
Proc Check_Element
If @GetFocus(Element&[1])
EnableWindow Kalender&,1
Else
EnableWindow Kalender&,0
EndIF
EndProc
Proc Kal_GetDate
Declare Datum#
dim Datum#,20
SendMessage(Kalender&,4097,0,Datum#)
Var Zurück$ = format$(00,word(Datum#,6))+.+format$(00,word(Datum#,2))+.+format$(0000,word(Datum#,0))
Dispose Datum#
Return Zurück$
ENDPROC
Window 800,600
Kalender&=Control(SysMonthCal32,Kalender,$50000000,600,0,180,height(%HWnd),%HWnd,5000,%hinstance,0)
EnableWindow Kalender&,0
Element&[0] = @Control(Dialog,,$54000000 | $00800000,0,0,400,height(%HWnd),%HWnd,5001,%HInstance,$10000)
Element&[1] = @Create(Edit,Element&[0],,10,10,200,20)
Element&[2] = @Create(Edit,Element&[0],,10,50,200,20)
Element&[3] = @Create(Edit,Element&[0],,10,100,200,20)
Element&[4] = @Create(Edit,Element&[0],,10,150,200,20)
SetFocus(Element&[1])
SubClass Kalender&,1
WhileNot Ende%
Check_Element
Waitinput
If %Key = 2
Ende% = 1
ElseIf @MenuItem(15000)
SetText Element&[1],Kal_GetDate()
EndIf
EndWhile
SubClass Kalender&,0 ass=s4 href='./../../funktionsreferenzen/XProfan/end/'>end
Nachtrag: Wieso volonté überhaupt im Subclassproc qui Messages verdreht, qui le calendrier löst %Message=32 aus, seulement pas im Subclassproc ??? |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 28.12.2008 ▲ |
| |
| | Andreas Miethe
| IDEE ! KompilierenMarqueSéparationDeclare Element&[], Kalender&, Ende%
SubClassProc
If SubClassMessage(Kalender& , 15) & GetFocus(Element&[1])Tag angeklickt
SetMenuItem 15000
Set(WinProc,1)
EndIf
EndProc
Proc Kal_GetDate
Declare Datum#
dim Datum#,20
SendMessage(Kalender&,4097,0,Datum#)
Var Zurück$ = format$(00,word(Datum#,6))+.+format$(00,word(Datum#,2))+.+format$(0000,word(Datum#,0))
Dispose Datum#
Return Zurück$
ENDPROC
Window 800,600
Kalender&=Control(SysMonthCal32,Kalender,$50000000,600,0,180,height(%HWnd),%HWnd,5000,%hinstance,0)
Element&[0] = @Control(Dialog,,$54000000 | $00800000,0,0,400,height(%HWnd),%HWnd,5001,%HInstance,$10000)
Element&[1] = @Create(Edit,Element&[0],,10,10,200,20)
Element&[2] = @Create(Edit,Element&[0],,10,50,200,20)
Element&[3] = @Create(Edit,Element&[0],,10,100,200,20)
Element&[4] = @Create(Edit,Element&[0],,10,150,200,20)
SetFocus(Element&[1])
SubClass Kalender&,1
WhileNot Ende%
Waitinput
If %Key = 2
Ende% = 1
ElseIf @MenuItem(15000)
SetText Element&[1],Kal_GetDate()
SetFocus(Element&[1])
EndIf
EndWhile
SubClass Kalender&,0
./../funktionsreferenzen/XProfan/end/'>end
|
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 28.12.2008 ▲ |
| |
| | E.T. | @Andreas: merci. maintenant wird mais qui le calendrier pas plus deaktiviert chez mir im richtigen Proc ist cela important, là volonté aussi encore div. Buttons et menu-Eintrage disabled. |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 28.12.2008 ▲ |
| |
| | Sascha Oliver Haak | dans Deinem Code habe Je l' Concentrer de Element&[1] pris.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> changement Proc Check_Element Si @GetFocus(Element&[1]) EnableWindow Kalender&,1 D'autre EnableWindow Kalender&,0 @SetFocus(Element&[2]) Concentrer de Element&[1] weg prendre EndIF ENDPROC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Ende ändern Habe aussi IDEE gehabt.!
Wenns passt voilà!
Salut Sascha |
| | | | |
| | E.T. | @Sascha: , seulement sagt mir mon Logik, cela alles, quoi derrière dem D'autre steht, sowieso fonctionnement wird, si qui Concentrer pas sur [1] ist . Votre Boucle bewirkt seulement le moi toujours dans [2] ankomme, si je pas dans [1] suis. alors viens je ensuite gar pas plus dans [3] et [4]... |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 28.12.2008 ▲ |
| |
| | Sascha Oliver Haak | OK la hâte oui droite. (Schnellschuß juste Kurzschluß!?!?!)
Solltest comme erstes dans Deiner Hauptroutine seulement waitinput et ensuite Check_Element durchführen. Weil sonst qui Routine Check_Element den Concentrer tout de suite ermittelt.
Pour Übernahme des Datums hat cela Éditer champ keinen Concentrer plus et erhält cette chez erneutem betreten.
Besser, chez mir klappt es eh bien!
Salut Sascha |
| | | | |
| | E.T. | | | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 28.12.2008 ▲ |
| |
| | E.T. | WORKARROUND je hab maintenant dans mon Prog simple la fois derrière cela Aktivieren / désactiver des Kalenders un sleep 10 gesetzt, et siehe là, maintenant funzt es aussi dans qui .exe. dans meinem obigen Bsp. hab je cela ganze jusqu'à sleep 2000 getrieben, sans Wirkung (ggf. doch la fois 10.000 testen). je vermute la fois, im Interpreter fonctionne là einiges gewaltig langsamer ab, comme dans qui .Exe >>> Moment (dämmer...), irgendwo hab là doch la fois quoi gelesen, cela im Interpr. irgendwas alle 30 Zeilen gecheckt wird et dans qui .Exe chacun la ligne...nachschau (mais seulement heut Mittag).
[offtopic]So, maintenant vite encore nen seau café, ensuite veux un TraPo voller poste-Taschen im Holzäppelgebirge à qui Zusteller verteilt volonté (um cet Zeit meist avec douane-Kontrollen verbunden (bedingt par qui Nähe zur CZ, quelquefois fahr je direct sur qui frontière long) >> mais on gewöhnt sich à alles, et qui Jungens (et quelquefois aussi hübsche Mädels) faire oui aussi seulement Ihren Job). ensuite fix encore ne Runde dormir...et déjà peux qui journée am Mittag wieder commencer [/offtopic] |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 29.12.2008 ▲ |
| |
| | Frank Abbing | Alle 20 Zeilen. Hm, un Sleep 10 comme Workaround halte je toujours pour untauglich... |
| | | | |
| | RGH | E.T.
Moment (dämmer...), irgendwo hab là doch la fois quoi gelesen, cela im Interpr. irgendwas alle 30 Zeilen gecheckt wird et dans qui .Exe chacun la ligne...nachschau (mais seulement heut Mittag).
renversé wird un Schuh draus: Im Interpreter wird (sauf im presque-Mode) pour chacun Zeil qui Messageloop aufgerufen, dans qui Runtime pour chacun 20. la ligne. Votre Prozeduren nutzen Messages, alors muss aussi cette Gelegenheit gegeben volonté anzukommen. dans diesem le cas ist cela Sleep(10) alors une korrekte Solution. (dans XProfan 11 pourrait stattdessen aussi cela undokumentierte WaitInput 1 verwandt volonté.)
Salut Roland
Nachtrag: qui einfachste Solution habe je dabei naturellement übersehen: un Repaint pouvoir ici aussi cela, quoi qui nom vermuten peut, là aussi cette Befehl außerhalb des Fastmode une Messageloop auslöst. |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 29.12.2008 ▲ |
| |
| | Frank Abbing |
Votre Prozeduren nutzen Messages, alors muss aussi cette Gelegenheit gegeben volonté anzukommen. dans diesem le cas ist cela Sleep(10) alors une korrekte Solution.
SendMessage wartet, jusqu'à qui Message aussi arrivé ist. Sleep reagiert bisweilen unerwartet im Zusammenhang avec Messages, tout autor verwende je dans solchen Fällen: KompilierenMarqueSéparation |
| | | | |
| | RGH | Frank Abbing
Frank AbbingVotre Prozeduren nutzen Messages, alors muss aussi cette Gelegenheit gegeben volonté anzukommen. dans diesem le cas ist cela Sleep(10) alors une korrekte Solution. SendMessage wartet, jusqu'à qui Message aussi arrivé ist. Sleep reagiert bisweilen unerwartet im Zusammenhang avec Messages, tout autor verwende je dans solchen Fällen: KompilierenMarqueSéparation
... quoi dem erwähnten Waitinput 1 entspricht.
oui, SendMessage wartet, im opposition trop Poster un message, jusqu'à qui Message arrivé ist. mais manche Message löst pour Quittierung weitere Messages aus, qui etwa zum Neuzeichnen de Controls appel. et qui attendre ensuite sur den prochain Messageloop.
Salut Roland |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 29.12.2008 ▲ |
| |
|
répondreOptions du sujet | 1.838 Views |
Themeninformationencet Thema hat 5 participant: |