Español
Foro

Buttonclick abfragen

 

Thorsten
Friedrichs
¡Hola,

como fragt uno al sichersten de si una Button [create(button...)] angeklickt wurde?

Saludo
Thorsten
 
------------------------------------------------------------------------------------------
XProfan 9/Win98&undWinXP/PRFellow/ TCP.DLL
Profaner seit 4.5 /einige Jahre (mit Programmierpausen)
04.10.2004  
 




Rolf
Koch
Hi Thorsten,

en el normalfall natürlich por
KompilierenMarcaSeparación
Rolf
 
04.10.2004  
 



¡Hola Rolf...

Yo denke veces, genau el quería él no haben. @GETFOCUS liefert sólo zurück, si una Button una Foco ha, no si él gedrückt wurde.
Yo nehme dazu:
KompilierenMarcaSeparación
If @gt(@sendmessage(Button_1%,$00F2,0,0),40)

    ...

ElseIf @gt(@sendmessage(Button_2%,$00F2,0,0),40)

    ...

/a>

Noch mejor wäre lo, el Button encima @CONTROL incluso a erzeugen y uno ID a versehen. Diese ID puede ser entonces encima %MENUITEM abfragen y SETMENUITEM 0 otra vez zurücksetzen (Beispielcode hier en el Foro bajo Quellcodes).
 
04.10.2004  
 




Andreas
Miethe


[quote:3cde066f52=AH]
Noch mejor wäre lo, el Button encima @CONTROL incluso a erzeugen y uno ID a versehen. Diese ID puede ser entonces encima %MENUITEM abfragen y SETMENUITEM 0
otra vez zurücksetzen (Beispielcode hier en el Foro bajo Quellcodes).[/quote:3cde066f52]
Es auch con Crear(Button...), una ID bekommt el Button auch. Angefangen en 1000 voluntad cada Controls el con Crear(..) erstellt voluntad con uno aufsteigenden ID versehen.

Ejemplo :
KompilierenMarcaSeparación
 $H windows.ph
Declare Ende&,Button&
cls
Button& = Create("BUTTON",%hwnd,"OK",10,10,80,24)

Whilenot ende&

    Waitinput

    If ~GetDlgItem(%hwnd,%MenuItem*-1) = Button&

        Print "Hoppla"

    Endif

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 :  [...] 
04.10.2004  
 



¡Hola Andreas...

Vollkommen correcto! Bloß kommt entonces algo Rechnerei dazu - besonders si uno muy viele Buttons en seinem Programa erstellt ha y zusätzlich todavía con @CREATETEXT arbeitet se todos muy unübersichtlich. Mit @CONTROL läßt se cada Control una spezielle ID zuweisen, con @CREATEBUTTON se dies automáticamente de Profano getan (aufsteigende IDs de 2000 voluntad vergeben, si yo mich bastante erinnere).
Hier una vez más qué a Demonstration de meiner Kramkiste:
KompilierenMarcaSeparación
WINDOWSTYLE 31
WINDOWTITLE "Hauptprogramm"
WINDOW 0,0-640,440
Declare DIALOG&,Button&,message&,Window&,Dialogtext$,ENDE&,Zeit$,Zähler&
Declare Listbox&

PROC Messagefenster

    PARAMETERS Überschrift$,Text$ Überschrift$ identifiziert das geschlossene Fenster, Text$ ist ein Meldungstext
    WINDOWSTYLE 16 Fenster ohne Menü
    Am Aussehen läßt sich bestimmt noch eine Menge verbessern..
    Let Dialogtext$="Hinweis von Hauptprogramm " Wichtig, um zu erkennen, ob ein Dialogfensterbutton gedrückt wurde
    LET DIALOG&=@Create("Window",%Desktop,@add$(Dialogtext$,Überschrift$),0,0,300,110) Erstellung des Dialoges auf dem Desktop
    @Create("Button",Dialog&,"OK",100,50,80,25) Button zum Wegklicken
    @create("Text",,Dialog&,TEXT$,0,0,300,40) Meldungstext
    SetWindowPos Dialog&=@rnd(@sub(%MAXX,300)),@rnd(@sub(%MAXY,110))-300,110;-1 Dialgfenster immer im Vordergrund

endproc

Jetzt kommt das Hauptprogramm
LET LISTBOX&=@Create("Listbox",%HWND,"",10,160,600,100) Für die Rückmeldung
LET ENDE&=@Create("Button",%HWND,"Ende",230,350,100,25) Button schadet nichts

WHILENOT @GETFOCUS(ENDE&) Solange nicht Ende gedrückt wurde

    If @gt(@Height(%HWND),20) Nur, wenn das Hauptfenster ncht minimiert ist...

        Drawtext 0,100,@add$(@str$(&GETTICKCOUNT),"        ") Nur, damit man sieht, daß das Programm weiterläuft.
        Drawtext 0,0,@add$(@str$(%MENUITEM),"        ") Nur für mich, ist unwichtig!

    endif

    IF @neq$(Zeit$,Time$(0)) Jede Minute wird ein Popup erzeugt!

        LET ZÄHLER&=ZÄHLER&+1 Das ist für den Dialog-Fenstertitel
        LET ZEIT$=TIME$(0) Damit das Programm merkt, das eine Minute vergangen ist.
        Messagefenster @str$(Zähler&), @add$("Aktuelle Zeit: ",Zeit$) Prozedur zum Erzeugen des Dialoges wird aufgerufen.

    endif

    IF @lt(%MENUITEM,-999) Wenn irgendwo ein Button gedrückt wurde..

        LET WINDOW&=@getactivewindow() Holt sich das Handle des Fensters mit dem gedrückten Button.

        IF @gt(@len(@GetText$(WINDOW&)),@sub(@len(Dialogtext$),1)) Damits bei der nächsten Abfrage keinen Fehler gibt!

            IF @equ$(@mid$(@GetText$(WINDOW&),1,@len(Dialogtext$)),Dialogtext$) Wenn das dann ein Dialogfenster deines Programmes ist..

                @addstring(Listbox&,@GetText$(WINDOW&)+" um "+@time$(0)+" Uhr weggeklickt!") Schreibt in die Listbox das weggeklickte Fenster.
                @destroywindow(Window&) Löscht das Dialogfenster
                setmenuitem 0 Zurücksetzen des Buttonklicks

            endif

        endif

    endif

'./../../funktionsreferenzen/XProfan/wend/'>wend

 
04.10.2004  
 



UPS...

Posesiones Andreass API bastante übersehen! Über el Handle gehts natürlich auch sin Rechnerei!
 
04.10.2004  
 




Uwe
''Pascal''
Niemeier
¡Hola Personas!

Auf el Gefahr hin, mich a blamieren...
En me funktioniert en el Normalfall (Eingabeschleife con WaitInput, aber sin Temporizador o.ä.) dies:

def GetFocusEx(1) getfocus(&(1))*(%key=255)

Damit puede ser auch por <Tab> el Focus weitergeben y <Enter> quittieren.

SeeYou
Pascal
 
04.10.2004  
 




Rolf
Koch
Hi AH,
nagut hast mich überredet
Rolf
 
04.10.2004  
 




Thorsten
Friedrichs
[quote:5c933acd40=AH]¡Hola Rolf...

Yo denke veces, genau el quería él no haben. @GETFOCUS liefert sólo zurück, si una Button una Foco ha, no si él gedrückt wurde.
Yo nehme dazu:
KompilierenMarcaSeparación
If @gt(@sendmessage(Button_1%,$00F2,0,0),40)

    ...

ElseIf @gt(@sendmessage(Button_2%,$00F2,0,0),40)

    ...

/a>

$H windows.ph
Declarar Ende&,Button&
cls
Button& = Crear(BUTTON,%hwnd,OK,10,10,80,24)
Sinestar encargado ende&
Waitinput
If ~GetDlgItem(%hwnd,%MenuItem*-1) = Button&
Imprimir Hoppla
Endif
wend
[/quote:5c933acd40]
Hi, genau dass. Lo debería no con Getfocus trabajo y si posible sin Waitinput.
Also danke para esta beiden Propuestas. Yo ya largo nichts mehr con Profano gemacht, wußte aber todavía, el getfocus no correcto klappt.

Gracias para el Ayuda.
Thorsten
Apéndice de IF: Yo tener el Doppelposting veces beseitigt...
 
------------------------------------------------------------------------------------------
XProfan 9/Win98&undWinXP/PRFellow/ TCP.DLL
Profaner seit 4.5 /einige Jahre (mit Programmierpausen)
04.10.2004  
 



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

5.008 Views

Untitledvor 0 min.
H.Brill10.01.2019
Ernst12.03.2014
boh128.03.2013
Michaeal18.10.2012
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