Français
Forum

Buttonclick abfragen

 

Thorsten
Friedrichs
Salut,

comment fragt on am sichersten ab si un Button [create(button...)] angeklickt wurde?

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




Rolf
Koch
Hi Thorsten,

im normalfall naturellement per
KompilierenMarqueSéparation
Rolf
 
04.10.2004  
 



allô Rolf...

je denke la fois, oui c'est ca cela voulais il pas avons. @GETFOCUS liefert seulement zurück, si un Button une Concentrer hat, pas si il gedrückt wurde.
je prends en supplément:
KompilierenMarqueSéparation
If @gt(@sendmessage(Button_1%,$00F2,0,0),40)

    ...

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

    ...

/a>

encore besser wäre es, den Button sur @CONTROL selbst trop erzeugen et einer ID trop versehen. cet ID peux on ensuite sur %MENUITEM abfragen et SETMENUITEM 0 wieder zurücksetzen (Beispielcode ici im Forum sous Quellcodes).
 
04.10.2004  
 




Andreas
Miethe


[quote-part:3cde066f52=AH]
encore besser wäre es, den Button sur @CONTROL selbst trop erzeugen et einer ID trop versehen. cet ID peux on ensuite sur %MENUITEM abfragen et SETMENUITEM 0
wieder zurücksetzen (Beispielcode ici im Forum sous Quellcodes).[/quote-part:3cde066f52]
cela allez aussi avec Créer(Button...), une ID bekommt qui Button aussi. Angefangen chez 1000 volonté chaque Controls qui avec Créer(..) erstellt volonté avec einer aufsteigenden ID versehen.

Beispiel :
KompilierenMarqueSéparation
 $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  
 



allô Andreas...

Vollkommen richtig! Bloß venez ensuite quelque chose Rechnerei en supplément - besonders si on très viele Buttons dans seinem Programme erstellt hat et zusätzlich encore avec @CREATETEXT arbeitet wird cela ganze très unübersichtlich. avec @CONTROL läßt sich chaque Contrôle une spezielle ID zuweisen, avec @CREATEBUTTON wird ca automatisch de Profan getan (aufsteigende IDs ab 2000 volonté vergeben, si je mich droite erinnere).
ici encore la fois quoi zur manifestation aus meiner Kramkiste:
KompilierenMarqueSéparation
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...

Habe Andreass API entier übersehen! Über cela Handle gehts naturellement aussi sans Rechnerei!
 
04.10.2004  
 




Uwe
''Pascal''
Niemeier
allô gens!

sur qui péril hin, mich trop blamieren...
chez mir funktioniert im Normalfall (Eingabeschleife avec WaitInput, mais sans Minuteur o.ä.) ca:

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

avec cela peux on aussi per <Tab> den Concentrer weitergeben et <Enter> quittieren.

SeeYou
Pascal
 
04.10.2004  
 




Rolf
Koch
Hi AH,
nagut la hâte mich überredet
Rolf
 
04.10.2004  
 




Thorsten
Friedrichs
[quote-part:5c933acd40=AH]allô Rolf...

je denke la fois, oui c'est ca cela voulais il pas avons. @GETFOCUS liefert seulement zurück, si un Button une Concentrer hat, pas si il gedrückt wurde.
je prends en supplément:
KompilierenMarqueSéparation
If @gt(@sendmessage(Button_1%,$00F2,0,0),40)

    ...

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

    ...

/a>

$H windows.ph
Déclarer Ende&,Button&
cls
Button& = Créer(BUTTON,%hwnd,OK,10,10,80,24)
Whilenot ende&
Waitinput
Si ~GetDlgItem(%hwnd,%MenuItem*-1) = Button&
Imprimer Hoppla
Endif
Wend
[/quote-part:5c933acd40]
Hi, oui c'est ca dass. Es sollte pas avec Getfocus travailler et si possible sans Waitinput.
alors merci pour cet beiden Propositions. je hab déjà longtemps rien plus avec Profan gemacht, wußte mais encore, cela getfocus pas richtig klappt.

merci pour qui Aider.
Thorsten
Nachtrag de iF: nie gemacht Doppelposting la fois beseitigt...
 
------------------------------------------------------------------------------------------
XProfan 9/Win98&undWinXP/PRFellow/ TCP.DLL
Profaner seit 4.5 /einige Jahre (mit Programmierpausen)
04.10.2004  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

5.017 Views

Untitledvor 0 min.
H.Brill10.01.2019
Ernst12.03.2014
boh128.03.2013
Michaeal18.10.2012
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie