Page 2 sur 2

Publié : mer. 18/mars/2009 10:43
par Kwai chang caine
Bon alors tout est bien qui fini bien, et on va tous se retrouver autour d'une table a chanter et manger le sanglier :lol:

Pour la fiabilité, c'est vrai que avec certaines fonctions qui se compliquent et les versions de PB qui se suivent, c'est un peu moins fiable qu'avant.
Surtout pour ce qui est graphique car les cartes videos font un peu ce qu'elle veulent :?

Et voila pourquoi j'aime pas les jeux :lol:

Par contre c'est bizarre que ça marche chez toi, parce que ces deux instructions qui se suivent devrait faire sortir de la boucle ???

Code : Tout sélectionner

 Event=#PB_Event_CloseWindow 
Until Event=#PB_Event_CloseWindow 
Le reste marche, evidemment, mais je vais le peaufiner, c'est deja un bon debut et merci 8)

Publié : mer. 18/mars/2009 10:50
par Kwai chang caine
Et la reponse a la question du debut est :

- 1

Y m'ennerve ce GNOZAL :lol:

Tiens c'est bizarre que DIEU n'est pas prévu une constante = - 1 :roll:
J'ai regardé dans les couleur et niet
C'est vrai y'a deja #Null et False = 0 (D'ailleur j'ai pas compris la difference puis ce que c'est le meme chiffre) :roll:
Pourquoi pas avoir créé une constante du style #Error ou #Bad ou justement #Default = -1 :D
Bon c'est pas grave.....le principal est de le savoir
Et c'est justement la que le bas blesse....car moi j'sais jamais rien :?

Voila donc un des soucis de KCC anéanti grace à tous ces amis 8)

Encore mille merci pour vos outils, codes et participation 8)
Je vous souhaite a tous une excelente journée

Publié : mer. 18/mars/2009 10:54
par Backup
Kwai chang caine a écrit : Par contre c'est bizarre que ça marche chez toi, parce que ces deux instructions qui se suivent devrait faire sortir de la boucle ???

Code : Tout sélectionner

 Event=#PB_Event_CloseWindow 
Until Event=#PB_Event_CloseWindow 
Le reste marche, evidemment, mais je vais le peaufiner, c'est deja un bon debut et merci 8)
non !! :)

parceque le code c'est :


Code : Tout sélectionner


        MessageRequester("toto","un petit message requester pour voir la couleur du fond", #PB_MessageRequester_Ok )
        Event=#PB_Event_CloseWindow
    Until Event=#PB_Event_CloseWindow 


en fait lorsque le message requester est appelé , cela bloque le parcours du prg !!

et c'est seulement lorsque tu répond a requester que les lignes

Code : Tout sélectionner

        Event=#PB_Event_CloseWindow
    Until Event=#PB_Event_CloseWindow 
sont executés !!

chez moi ça marche comme ça!!


c'est pas normal que le prg quitte si tu ne répond pas au requester !!!

il quitte SEULEMENT si , tu repond au requester en appuyant sur le bouton

:)


je te rappel que j'ai laissé un requester pour que tu puisse lire sa couleur de fond !! (c'est meme ecris dedans !!)

pas pour faire joli :)

Publié : mer. 18/mars/2009 10:57
par Kwai chang caine
c'est pas normal que le prg quitte si tu ne répond pas au requester !!!
il quitte SEULEMENT si , tu repond au requester en appuyant sur le bouton
Oui oui ....je repond au requester, mais le bleme c'est que je demarre le programme et j'ai tout de suite le requester, donc je peux pas tester une couleur sous la souris, puisque il faut que je clique sur le ok :D

Publié : mer. 18/mars/2009 10:58
par Backup
Kwai chang caine a écrit :
c'est pas normal que le prg quitte si tu ne répond pas au requester !!!
il quitte SEULEMENT si , tu repond au requester en appuyant sur le bouton
Oui oui ....je repond au requester, mais le bleme c'est que je demarre le programme et j'ai tout de suite le requester, donc je peux pas tester une couleur sous la souris, puisque il faut que je clique sur le ok :D

ben si !! même, et surtout si tu réponds pas, tu peux lire les couleurs de ce que tu veux !!

puisque j'utilise un timer !! 8O

je te le repete, le requester n'est la que pour avoir un requester a lire,
apres tout , il s'agissait de ça au debut !!
mais mon prg utilise un timer, tu peux donc lire ce que tu veux

il ne faut surtout pas répondre au requester !!!

sinon cela veux dire que tu quitte le prg !! :)

pour résumer !

ce programme lit n'importe quel pixel a l'ecran !

j'ai ouvert un requester, puisque tu voulais connaitre la couleur de fond d'un requester

et du coup le requester me sert a quitter le prg !! c'est voulu ! :D

mais tant que tu ne ferme pas le requester, tu peut lire n'importe quel pixel a ton ecran !!

Publié : mer. 18/mars/2009 11:07
par Backup
le meme prg sans le requester :)

Code : Tout sélectionner


Declare TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Declare GetColorUnderMouse() ; recupere la couleur sous la souris !!

Enumeration
    #Window
    #timer_1
    #Gadget
EndEnumeration


If OpenWindow(#Window, 100, 100,250,200,"lecteur de couleur pour KCC by Dobro", #PB_Window_SystemMenu)
    StickyWindow(#Window,1)
    Resultat = StringGadget(#Gadget, 40, 40, 100, 30, "") 
    Handle = WindowID(#Window) 
    SetTimer_(Handle, #timer_1, 10, @TimerProc()) ; envoie un evenement toutes les 10 millisecondes 
    ; *********** boucle principale ******************************************
    Repeat 
        Event=WindowEvent()  
        Delay(2)  
    Until Event=#PB_Event_CloseWindow
    ; **********************************************************************
EndIf 



; cette procedure contient les actions a effectuer par le timer
Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
    Select uMsg
        Case #WM_TIMER
            Select idEvent
                Case  #timer_1 ; on va se servir du timer comme gachette de tir !!
                    Color.l = GetColorUnderMouse()  
                    SetGadgetText(#Gadget,Hex(Color.l))
                    SetClipboardText("$"+Hex(Color.l)) 
            EndSelect
    EndSelect
EndProcedure



Procedure GetColorUnderMouse()
    GetCursorPos_(@CursorPos.POINT )
    hdc = GetDC_(0)
    If hdc <> 0
        Color = GetPixel_(hdc,CursorPos\x,CursorPos\y)
        ReleaseDC_(0, hdc)
        ProcedureReturn Color
    EndIf
EndProcedure








Publié : mer. 18/mars/2009 11:10
par Kwai chang caine
Nadine loukoum !!!
On voit que je progresse en prog, j'avais pas vu :oops:
J'suis vraiment une brouette :oops:

Quand j'te dis que j'exagere que si peu sur le forum US :?

Comme un lobotomisé, je cliquais tout de suite sur le requester :?

Merci, cette fois c'est bon.
Cool cette histoire de timer, ça me donne plein d'idées pour utiliser une fonction pendant que l'on attend une reponse de l'utilisateur.
J'avais vu ce genre d'instruction, mais j'avais réoublié :roll:

Grace à ton code, j'ai remis dans la tronche, en esperant que ce sera pas poussé par autre chose dans quelques temps.

Encore merci pour tout DOBRO 8)

Publié : mer. 18/mars/2009 11:11
par Backup
:lol: :lol:

timer = programmation en parallèle !!

du multitache quoi :)

Publié : mer. 18/mars/2009 11:51
par gnozal
Kwai chang caine a écrit :Pourquoi pas avoir créé une constante du style #Default = -1 ?
#PB_Default = -1 :lol:

(#PB_Any aussi ...)