Español
Foro

SubClassing: Unterschiede en Interpreter y Exe

 

E.T.
Mein folgendes Ejemplo reagiert en el .exe anders como en el Interpreter:
Interpreter : 
Puedo con el Tab-Taste de una Editar para otro hüpfen, sin el algo passiert. Komme Yo en Editar 1 a, se el Kalender aktiv, verlasse Yo dieses, se el Kalender otra vez deaktiviert. Puedo also en el Editar 1 el Kalender anklicken, y el Datum (welches angeklickt wurde), se übernommen (also en el SubClassProc gerannt, Menu 15000 gesetzt, el entonces ausgewertet).
Freu, así voluntad Yo haben !!

In el Exe 
Jedes veces, si la Kalender aktiviert se (also Foco en Editar 1) se en el SubclassProc gerannt y Menu 15000 gesetzt (also auch igual al Start, porque De hecho, el Foco en Editar 1 es).
Beim Deaktivieren des Kalenders (Foco ausserhalb Editar 1) se otra vez en el SubClassProc gerannt y el Event ausgelöst.
Stoffwechselendprodukt !!

Bin para jede Concepto dankbar !! 
KompilierenMarcaSeparación
Declare 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

Apéndice: Wieso voluntad überhaupt en el Subclassproc el Messages verdreht, el Kalender löst %Message=32 de, sólo no en el 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 !
KompilierenMarcaSeparación
Declare 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: Gracias. Jetzt se pero la Kalender no mehr deaktiviert
En me en el richtigen Proc es el wichtig, hay voluntad auch todavía div. Buttons y Menü-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
In Deinem Code Yo el Focus de Element&[1] genommen.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ändern
Proc Check_Element
If @GetFocus(Element&[1])
EnableWindow Kalender&,1
Más
EnableWindow Kalender&,0
@SetFocus(Element&[2]) Foco de Element&[1] weg nehmen
EndIF
ENDPROC
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Ende ändern
Posesiones auch IDEE gehabt.!

Wenns passt Por favor, schön!

Saludo
Sascha
 
28.12.2008  
 




E.T.
@Sascha: , Nur sagt me mi Logik, el alles, qué hinter el Más  es, sowieso ausgeführt se, si la Foco no en [1] es .
Su Bucle bewirkt sólo el Yo siempre en [2] ankomme, si yo no en [1] bin. Also komme Yo entonces nada mehr en [3] y [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 hast sí bastante. (Schnellschuß igual Kurzschluß!?!?!)

Solltest como erstes en Deiner Hauptroutine sólo waitinput y luego Check_Element durchführen.
Weil sonst el Rutina Check_Element el Focus inmediatamente ermittelt.

Nach Übernahme des Datums ha Edit Feld no Foco mehr y erhält esta en erneutem
betreten.

Besser, en me klappt lo nun!

Saludo
Sascha
 
28.12.2008  
 




E.T.

Schnellschuß igual Kurzschluß!?!?!



Das löst aber alles el problema de mi Start-Posting no:
Im Interpreter funktioniert alles, Yo lo voluntad, sólo en el Exe no.
 
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
Yo ahora en mi Prog simplemente veces hinter el Aktivieren / Deaktivieren des Kalenders una sleep 10 gesetzt, y siehe como, ahora funzt lo auch en el .exe.
In mi obigen Bsp. tener Yo todos a sleep 2000 getrieben, sin Wirkung (ggf. doch veces 10.000 testen). Yo vermute veces, en el Interpreter se ejecuta como einiges gewaltig langsamer de, como en el .Exe >>> Moment (dämmer...), irgendwo tener como doch algo gelesen, el en el Interpr. algo todos 30 Zeilen gecheckt se y el .Exe jede Línea...nachschau (aber sólo heut Mittag).

[offtopic]So, ahora rápidamente todavía nen Eimer Café, entonces voluntad una TraPo voller Post-Taschen en el Holzäppelgebirge a el Zusteller verteilt voluntad (en esta Tiempo meist con Zoll-Kontrollen verbunden (bedingt por el Nähe a CZ, manchmal fahr Yo direkt en el Grenze lang) >> aber uno gewöhnt se a alles, y el Jungens (y manchmal auch hübsche Mädels) hacer en efecto sólo Ihren Job). Dann fix o ne- Runde schlafen...y ya kann el Tag al Mittag otra vez beginnen [/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, una Sleep 10 como Workaround halte Yo siempre para untauglich...
 
29.12.2008  
 




RGH
E.T.
Moment (dämmer...), irgendwo tener como doch algo gelesen, el en el Interpr. algo todos 30 Zeilen gecheckt se y el .Exe jede Línea...nachschau (aber sólo heut Mittag).


Umgekehrt se una Schuh draus: Im Interpreter se (außer en el Fast-Mode) después de cada Zeil el Messageloop aufgerufen, en el Runtime después de cada 20. Línea. Su Prozeduren nutzen Messages, also muss auch esta Gelegenheit gegeben voluntad anzukommen. In diesem Fall es el Sleep(10) also una korrekte Solución. (In XProfan 11 podría stattdessen auch el undokumentierte WaitInput 1 verwandt voluntad.)

Saludo
Roland

Apéndice: El einfachste Solución Yo esta natürlich übersehen: Ein Repaint macht hier auch el, qué el Name vermuten lässt, como auch dieser Befehl außerhalb des Fastmode una 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

Su Prozeduren nutzen Messages, also muss auch esta Gelegenheit gegeben voluntad anzukommen. In diesem Fall es el Sleep(10) also una korrekte Solución.


SendMessage wartet, a el Message auch angekommen es. Sleep reagiert bisweilen unerwartet en el Zusammenhang con Messages, por lo tanto verwende Yo en solchen Fällen:
KompilierenMarcaSeparación
 
29.12.2008  
 




RGH
Frank Abbing

Frank Abbing
Su Prozeduren nutzen Messages, also muss auch esta Gelegenheit gegeben voluntad anzukommen. In diesem Fall es el Sleep(10) also una korrekte Solución.


SendMessage wartet, a el Message auch angekommen es. Sleep reagiert bisweilen unerwartet en el Zusammenhang con Messages, por lo tanto verwende Yo en solchen Fällen:
KompilierenMarcaSeparación


... qué el erwähnten Waitinput 1 entspricht.

Sí, SendMessage wartet, en el Gegensatz a PostMessage, a el Message angekommen es. Aber manche Message löst después de Quittierung weitere Messages de, el etwa para Neuzeichnen de Controls aufrufen. Und el warten entonces en el nächsten Messageloop.

Saludo
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  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.930 Views

Untitledvor 0 min.
Andre Rohland13.06.2019
Jens-Arne Reumschüssel30.12.2018
Jörg Sellmeyer15.05.2018
rquindt24.01.2018
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie