Des bulles dans le bureau

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Des bulles dans le bureau

Message par Ollivier »

Je remets à jour cet exemple d'utilisation de la fonction API UpdateLayeredWindow_().

Code : Tout sélectionner

;____________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Alphablending sous XP
; Auteur : Ollivier
; Version PB : 4.30
;____________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

;{ En-tête }

    ;{ Déclarations nécessaires }
   
Declare.L CreateAlphaImage(W.L, H.L)   
   
    ;}   
    ;{ Macros }

Macro Argb(A, R, G, B)

    ((((A << 24) + (R << 16) ) + (G << 8) ) + B)
   
EndMacro

Macro DrawLocate(x, y, p)

    p + (8 + (((y * PeekL(p) ) + x) * 4) )

EndMacro

    ;}   
    ;{ Structures }

Structure APIX ; Cf Procédures >> Alphablending

    Alpha.B
    Red.B
    Green.B
    Blue.B

EndStructure

Structure LW ; Cf Procédures >> Alphablending >> Layered Window

    WindowID.L                  ; Handle du DC de la fenêtre translucide (WindowID)
    *ptWnd                      ;#Pointe vers une structure POINT (Position de la fenêtre, 0 = inchangée)
    *szWnd                      ;#Pointe vers une structure SIZE (Taille de la fenêtre, 0 = inchangée)
    hdcAIm.L                    ; Handle du DC source (Image Alpha)
    *ptAIm                      ;#Pointe vers une structure POINT
    crKey.L                     ; Couleur clé (transparence)
    *Blend                      ;#Pointe vers la structure BLENDFUNCTION (fBlend plus bas)
    *AImArea                    ;#Pointe vers 1 struc RECT spécifiant la zone à copier depuis le DC source
    X.L                         ; Coordonnées X de la fenêtre
    Y.L                         ; Coordonnées Y de la fenêtre
    W.L                         ; Largeur de la fenêtre
    H.L                         ; Hauteur de la fenêtre
    XA.L                        ; Coordonnées X dans l'image
    YA.L                        ; Coordonnées Y dans l'image
    fBlend.L                    ; Fonction Blend (toujours $1FF0000)
    X1.L                        ; Vista
    Y1.L                        ; Vista
    X2.L                        ; Vista
    Y2.L                        ; Vista
    Window.L                    ; n° de fenêtre
    ImageID.L                   ; ID de l'image
   
    VX.F
    VY.F
    AA.F
    V.F
    Flip.L
   
EndStructure

Structure StringAreaStruc ; Cf Procédures >> Gestion des structures
    AreaStringQty.L
    AreaOffset.L
EndStructure

    ;}
    ;{ Procédures }

        ;{ Maths }
       
Procedure.L ValHex(H.S)

    Protected V.L
    H = UCase(H)
    a = Asc( Left(H, 1) ) - 48: If a > 16: a - 7: EndIf
    b = Asc(Right(H, 1) ) - 48: If b > 16: b - 7: EndIf
    V = 16 * a + b
    ProcedureReturn V
   
EndProcedure       

        ;}
        ;{ Alphablending }
                       
            ;{ Image Alpha }
       
Procedure.L AlphaTest()
   Protected Ch.S
    *x = AllocateMemory(7820)
    *Adr = *x
    Restore Bulle
    Repeat
        Read.S Ch   
        For i = 1 To Len(Ch) Step 2
            PokeB(*Adr, ValHex(Mid(Ch, i, 2) ) )
            *Adr + 1
        Next
    Until Len(Ch) < 92
    *y = AllocateMemory(13000)
    UnpackMemory(*x, *y)
    CatchImage(0, *y)

    W = ImageWidth(0)
    H = ImageHeight(0)
    *Alpha = CreateAlphaImage(W, H)
    *Adr = DrawLocate(0, 0, *Alpha)
    StartDrawing(ImageOutput(0) )
        For y = 0 To H - 1
            For x = 0 To W - 1
                *Adr = DrawLocate(x, y, *Alpha)
                c = Point(x, y)
                If c = 0
                    PokeL(*Adr, Argb(0, 1, 1, 1) )
                Else
                    r.L = (c & $FF)
                    g.L = (c & $FF00) >> 8
                    b.L = (c & $FF0000) >> 16
                    dx.F = x - (W / 2)
                    dy.F = y - (H / 2)
                    Dist.F = Sqr(dx*dx + dy*dy)
                    Alpha.F = 2 * Dist / W
                    If Dist > ((W / 2) - 2)
                      Alpha / (Pow(2, (Dist - (W/2) ) + 2) )
                      Alpha = 0
                      r = 0
                      g = 0
                      b = 0
                    EndIf
                    A.L = Alpha * 255
                    If r > A: R = A: EndIf
                    If g > A: g = A: EndIf
                    If b > A: b = A: EndIf
                    PokeL(*Adr, Argb(A, r, g, b) )
                EndIf               
            Next
        Next       
    StopDrawing()
    ProcedureReturn *Alpha
EndProcedure

Procedure.L CatchAlphaImage(*lpvBits)
;____________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Crée une image Alpha de 32 bits de profondeur à partir d'une zone mémoire
; ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Entrée Adresse pointant sur l'image
; ¯¯¯¯¯¯
; Sortie Retourne le handle de l'image (= ImageID)
; ¯¯¯¯¯¯
; Remarque La zone mémoire doit posséder une en-tête dont la structure est
; ¯¯¯¯¯¯¯¯ comme suit:
;          ___________________________
;          | $0 | Largeur de l'image |
;          | $4 | Hauteur de l'image |
;          ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
;____________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    Protected nWidth.L = PeekL(*lpvBits)
    Protected nHeight.L = PeekL(*lpvBits + 4)
    Protected AlphaImage.L = CreateBitmap_(nWidth, nHeight, 1, 32, *lpvBits + 8)   
    ProcedureReturn AlphaImage
EndProcedure

Procedure.L CreateAlphaImage(W.L, H.L)
;____________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Crée une zone mémoire pour l'édition d'une image Alpha
; ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
; Entrées W (LONG) Largeur de l'image
; ¯¯¯¯¯¯¯ H (LONG) Hauteur de l'image
;
; Sortie Retourne l'adresse pointant sur l'image
; ¯¯¯¯¯¯
; Remarque L'image possède une en-tête dont la structure est comme suit:
; ¯¯¯¯¯¯¯¯ ___________________________
;          | $0 | Largeur de l'image |
;          | $4 | Hauteur de l'image |
;          ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
;____________________________________________________________________________
;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    *Alpha = AllocateMemory(((W * H) << 2) + 8)
    PokeL(*Alpha, W)
    PokeL(*Alpha + 4, H)
   
    ProcedureReturn *Alpha
EndProcedure

            ;}       
            ;{ LayeredWindow }
       
Procedure CloseLW(*LW.LW)

    With *LW
   
        CloseWindow(\Window)
       
    EndWith
   
EndProcedure

Procedure HideLW(*LW.LW, Stat.L)

    With *LW
   
 ;       \Flip = 1 - Stat
        HideWindow(\Window, Stat)
       
    EndWith
   
EndProcedure

Procedure LayeredWindow(Window.L, Stat.L)

    Protected NewFlag.L = GetWindowLong_(WindowID(Window), #GWL_EXSTYLE) | (#WS_EX_LAYERED * Stat)
   
    SetWindowLong_(WindowID(Window), #GWL_EXSTYLE, NewFlag) 

EndProcedure

Procedure MoveLW(Window.L, *Coord.POINT)

    Static OldCoord.POINT     
       
    With *Coord
   
        ResizeWindow(Window, \X, \Y, #PB_Ignore, #PB_Ignore)
       
    EndWith
   
EndProcedure

Procedure OpenLW(*LW.LW, X, Y, ImageID)

    Protected Bmp.BITMAP
    Protected PosiSrc.POINT
 
    With *LW
        \ImageID = ImageID
        GetObject_(\ImageID, SizeOf(BITMAP), @Bmp)
        \W = Bmp\BmWidth
        \H = Bmp\BmHeight
        \Window = OpenWindow(-1, X, Y, W, H, "", $90000000)
        \WindowID = WindowID(\Window) 
        If \Window
            StickyWindow(\Window, 1)
            LayeredWindow(\Window, 1)
            \hdcAIm = CreateCompatibleDC_(StartDrawing(WindowOutput(\Window) ) )
                SelectObject_(\hdcAIm, \ImageID)     
                Blend.L = $1FF0000
                Result.L = UpdateLayeredWindow_(\WindowID, 0, 0, @\W, \HdcAIm, PosiSrc, 0, @Blend, 2)
            StopDrawing()
            DeleteDC_(\hdcAIm)
            HideWindow(\Window, 0)
        EndIf     
        If Result = 0: CloseWindow(\Window): EndIf
    EndWith
       
    ProcedureReturn Result

EndProcedure

            ;}

        ;}

    ;}

;}

    QM = 8
    Q = QM * 2
    *AlphaTest = AlphaTest()
        ExamineDesktops()
        AlphaTest.L = CatchAlphaImage(*AlphaTest)
            Dim TestLW.LW(Q - 1)
            Dim Flip(Q - 1)
            For i = 0 To Q - 1
                With TestLW(i)         
                    \ImageID = AlphaTest
                    \VX = DesktopWidth(0) / 2  + Random(100)
                    \VY = DesktopHeight(0) / 2 + Random(100)
                    OpenLW(TestLW(i), \VX, \VY, AlphaTest)
                    SetTimer_(WindowID(\Window), 0, 1, 0)
                    HideLW(TestLW(i), 1)
                EndWith
            Next
            For i = 0 To QM - 1
                With TestLW(i)         
                    HideLW(TestLW(i), 0)
                EndWith
            Next
            Repeat
                WEvent = WaitWindowEvent()
                Select WEvent
                        Case #WM_CLOSE, #WM_KEYDOWN
                            Break
                        Case #WM_RBUTTONDOWN
                            Quit = 1
                        Case #WM_RBUTTONUP
                            If Quit = 1
                                Quit = 2
                            EndIf
                EndSelect
                EWindow = EventWindow()
                For i = 0 To QM - 1
                    With TestLW(i)
                        If \Window = EWindow
                            Select WEvent
                                Case #WM_LBUTTONDOWN
                                    SendMessage_(\WindowID, #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
                                    \VX = WindowX(\Window)
                                    \VY = WindowY(\Window)
                                    \V / 2
                                Case #WM_TIMER
                                    \AA = \AA + (Random(100) - Random(50) ) / 10000.0
                                    \V + (Random(100) - 50) / 10000.0
                                    \VX + Cos(\AA) * \V
                                    \VY + Sin(\AA) * \V
                                    ResizeWindow(\Window, \VX, \VY, #PB_Ignore, #PB_Ignore)
                            EndSelect
                            Break
                        EndIf
                    EndWith
                Next
            Until Quit = 2
             
            For i = 0 To Q - 1
                KillTimer_(WindowID(TestLW(i)\Window), 0)                               
                CloseLW(TestLW(i) )           
            Next
               
        DeleteObject_(AlphaTest)
       
    FreeMemory(*AlphaTest)
   
    End
DataSection
Bulle:
Data.S "4A43F6240000948C147FBFA9D0206914216912CA08B04840279C808F01C6AB0013C4287F0AF67967D4C53B23ED2A"
Data.S "6FEBAB6BAB5877A503A614C7F0C08B91A5AD5730B4A8DFD26A3533593C7B02AE04E5C9B673AED55391DEE5986CE1"
Data.S "D329D7D57C3B76C8B499EF5EDA789F535C3B36F4F0B2E3963EBEEB8153D01D3E71EAA2BB576E9724D75039C5839B"
Data.S "CD95DBAFEB96B5E95A9D42F644E6C9B976B35D533FE73E5A3472E87B8B8EBE1C97D2D495F68BEAEADE0EDD357373"
Data.S "CFD426BC29D929D47D4B38F6E9C58EFCFA656E598EA947F72E79DD29DFB3E02F1FEDECED19E0BEBCBCB9BA6C5FA7"
Data.S "B2D3E7E2EBD7FA28B34D43959A39EEC6A72CEF2DE3A59B177A267574CDDDE2DAB8BB57A7D06FC369A6F96CEC653A"
Data.S "05F645B507396C92B301AB972BA75C666F2E30CFF8963F773EA901B877A81BAFEE9DF5DDD2C3BAF2B9F8031F868B"
Data.S "12B5A437B46B62FE098FAE5D37E8E1BCEF46ED3C74E2A9A196BE7C75DCDBA9B7735BFB743BB79D3D18E6B2AB1ABA"
Data.S "F2D7CD19E0D2148DEBE8432101D6385FFD5C357224C0CF2E7EFC70DCC287978C6E099DB8F1E5BCFA8502B1AEBD93"
Data.S "7470F87E3ECDF877257BC37A12B59927B1655DAED72E06BC37E6DCA8C99E5DBDF1A342A0F08E53C40A78ED9FCEFB"
Data.S "BA7406D04D998EDB3AF563B92DA952C15E1B62BB92FDD045737DD12818EF7EFB4271EA1342D87F53C78778F0E3C5"
Data.S "0EBC929C577237370EAA69A23857AF919386C1DAE7B1AD9F63DA53F09997FE529E1DB3FC9B7AE8BF604B072DAFED"
Data.S "1A28F2CC695B951E3B71E97C419E327DB7765BBFDEBB71EFDF83372EBE3CA714A7983BE48187DCDB29BB4ACDFAF7"
Data.S "E914022C1D9DBB6A9386FE29D74D5FB0B36A9DE9C0B5775ACD41A22C8A7872E9FFBD1B39EEB96F5F0C79DB133573"
Data.S "F698D73DAD1ED8A1855FA27E971A2CFA32CDC0C597467A75F2CA83E7B68EF7D731E4AEBEBB7403DF5E811051D599"
Data.S "78F2C2377CFCF94C93974FBFD8A028EAB95B7E77D6D73FB6737ABAF76F27ED3CF2EC9E99D8F8E732595CFCE3A137"
Data.S "3E4EE694C7CAEBD29A642EFD74733FE79272D4977F8A585BF0E19F49F8DB9EB5EBF2D37FB67D31F0C0B0523BEBF4"
Data.S "3C4A97EACCB5FFE6CD7BFB62B1652F0FBEF96FEC676F99AEE3DDA35712288BF41F9EB876EED13B27F4F6F037577E"
Data.S "7E7D27BDBD8F5476D8D7B3B9B9383945F227F776FE388229CF0B652F6FE8596E57F773238F4B6700E170E2727103"
Data.S "F772BD9413776ED8A629CC2B45F7F1E7BF1100399DF6EEECC3A3FE7C8CF8D3A9F0EB4BE742755C1CE5AED4E8C034"
Data.S "81C27FF7316ADC0B0B17F2ECBE299F7E7E792FD4D13F39A234DB8E78F0C1DF3D3E7C94E75E79358A3C150E11F59D"
Data.S "D04F4BC7BC39E6E4832F5F4CEF6FE6816ED73765D5F30297126D7529DADED3E3279BBBF9DD5F6B1B8DBBEBEBB16D"
Data.S "6F6DDC1A70B3F1BF15E31E9ED837E0C835F7162639EC1941380349EAF3B6CE99F475ED2FC3DEF83860D5AA954D4A"
Data.S "87D6EB17F2F57C11EE6D1DEFE0CEBFA71F7DBBFAE393737F4F32C82D0451E2B12E490F03CDBF87BFE852DD2774E9"
Data.S "AC2539F3FC347F6CDCB3464EA929DAC2EDF21BDB77DA7775CD1171ADAF87948BD50B7435F0A99DA6DEFDD997D3B5"
Data.S "B5694A692B2583559385ED5A6FBCBA73EE9D98F731A032EF0DF1E3AC0C76E2A84D3A3DED993B9B0FDE32EBF077CB"
Data.S "3D5DDAD59E8664B75695077F57B0E2D0F5369D3D7C69D5BB9FAFA4F777F4079F9CFAA68FF748A77CD44FD177BFBC"
Data.S "DB15EEC729AD33147975D6D96C7CA2F999858812FF468AA59C33314951F26D90312AE62DDC1A29BAB1ED8D14938B"
Data.S "7920B74BC71AEBA60939913B392555CD9AA4061BBA76D76C4BC34D5BAF6AB87B2B9667C4A8CC37CEBB787D57DF2C"
Data.S "0783EEAEF1994593A35DB26AB69DED365D6A5C37A08A65EBC1B021B19E5839F6A7774D9179F7C3C36EED134A9EB9"
Data.S "47FCD57BB76E7A7AF2D893BCD29D6FF7FD1D0D05B4AF5B1EAE71F2C2B79D36FEF6B539BEB192968C293EED71F06E"
Data.S "B223E29DF6B5C5B6D2AEBEC88D68555FD41F2F146DA7E4DAC275CDD2D0BEB161695A987659677D7C73EBB2959B96"
Data.S "3DB7E4D7B909C73CDB77957F5C03E70EE2B5F2AB755B2DFE336AB3C77366D58974C7BD512D73CAE7DD81FEB8B979"
Data.S "DD471B8F5E3D6DECC1AF0F3E3775F1AF298F7E1E9BD78EA8B5EFDCA5D97B6328F4CC6DEB461E1E36376CE1A0E474"
Data.S "473F3C5CECE57E813F654C4EEF9E3EA97637D91CBDD2EA7A64D651538BAC14A7A529AA6453D235BD9278AAA95F4A"
Data.S "E975354D40CFB2BE9DA6712F618A56BEA5FC3AED31A06DE7F8E3D2BA2BE7BC5AB4974B64DF29C52DAA7CEAD9C69D"
Data.S "1E2BC3A2D99345B4327397AE5DAAB52746DBE214BBBFC06D3A649F1A7D7BDF55732735462DE9A8E1CD89EFEC188E"
Data.S "BA0D9DFAE7E0E69DE5E5735BB3C57BEBF72D9DBDF1B6969D09DE35B1DFF2769A2759DD41D3C46A5BE9944B5B157D"
Data.S "1269A09F4D16E97333C90178662E4941B9935234B3EC4AA2A15D9EB974F4D341AD962EC5E9580266DD355FC7B2DF"
Data.S "467C19B78747DEF4F6F1D0B09E7B39678FBF04B7EDF4AB6D36FD3E35B3B2C35F6B876A9E905927BF5CF0EEE8FF2E"
Data.S "99B2F3ED5B5F3CDD7BE6AA956FA7E46137EE1B3B6FE16F9D41AEF1A9874BCE3EF672C4D3DF8E975F236CBC2E66E7"
Data.S "779F552C6EEDAC7D8A6DCD34CFABAB85B6B9D47427B7B4708BE4913FE44EC8944CB9D9382AA6D45C332922694566"
Data.S "E291B9A426F33DAFCCC969E89A4272254DF4D9B5A7A9B6CBD7752E830FD33DB2E1A135EBDB937EBC421C7D41814A"
Data.S "AB7D9B7F7E346DF8D1172EDE54DCA890D8B5544DFEEDFD6ED0B993636F7979751E9EB239D1BF2BCEE8E617C46F5D"
Data.S "FCFAE6BB615BE03BB96A3BE7DB68970F9DBBB06EA5798F496FD727EE62E29723F6EFD3AEB64A9F5B3F4C9C13AAE7"
Data.S "906716CD33B14A9C792206D9283A2F1F3C4CE95C6B16EEDCC04CC21E3B2E1F3B32C99891626E69B352CE3A81CDFA"
Data.S "39A9B76A4F6BBDD7AE6BAA054736E63564CEBBA25B349BC73E9E3977D7CA1767DF1A9929F5619A2E6BFC09FBA876"
Data.S "7AE5CFA986CADC7BD8C59B6661EEE137C9FBDCBABB03666E37F4C7C8733E9E5A16CCBC71E9E79CD6091D3D3147EC"
Data.S "F942E5832F33EF6FBE1FCEBDBDB6542DAFC11AE958D537EBB40A6865994BDA64CC52C69983455E18A0B04BC11863"
Data.S "A54438E364C078C0BC18A6C0922F1377F2A626645AFED93356CF508F357BBA2CC07E57D71D19F2EBB2417F6E13E0"
Data.S "96D2D42935E12A3C6BE3FEDD1E2B247BEEA7CC1A9D74A21BABD45E7DB2D04C92F756969B7FBF04F575F1744A62CF"
Data.S "358E9D2DBCB9A3CFAD3AB6F2AF654FF6B7F3EFC4F04A2EFE3F761953B06EB987EAC5DD1691B55CD4AEB3326415B5"
Data.S "D3B09F7E0EBA6551CC3231A7F0239DB48C33F9B49686949A8B2B103700C6EC28EE508E2C196F6F47665F25BDF6F2"
Data.S "7939ECB138692E4E79A94FC8437F6D7AADEBB85C0C7EFD979B2DABFEBBF4E7D566F566ED2FC1A583F09EDCD93AFD"
Data.S "DA9DC26E4F3AD95494C3D2901F5BCE99B872E16D0B9FF8F114EC957EFD30AD16EF68DADBDFD5D829C2947D18F56B"
Data.S "BDF15A96E0E26E2DDDFBBBADB17671A31256EEEDC8E6CA96655757A5D1CC69A7EE2935B4C7328F6AA99824CEBAA4"
Data.S "748C45937E3727FF36409380268BA4E06A82C306B0A9FB18F3306C9C9267A29577E61B15B4D47DCDAA26DA715DD7"
Data.S "5B7B56FCD317D49BBEBA76ECD74DF31671F49FE04E4E7EB6C1AED9C36ACCBA16E35F4B0DD4A699E1C53C7A6AE33E"
Data.S "CE11F8D7D9C39FEED73BE1CDA73E18CA7954074E1D9C66D4945745AC3A6FB27A6DAF3EAD2E6F1B9B2B5C7E606B6D"
Data.S "54CD52B01AEAD9D63F1FED6A29E69E53FA8C4C33536A8853618B2A07E45B1125927D2792AB3500C5C0AC6B96B1A3"
Data.S "5ACA26FE08134EC627671D5A1967C54E403FB5DDAFA5AB3EEC164C5199073AF4EAD17B979EDD8A74D0BB0D1C3CE6"
Data.S "0FAA7D4FD417E376C9ECD0C308EA6761B31EEE9B76DCD1A70FDFFBB9EFDD4F6FA9C6B95C330D7E3CECB4B4875833"
Data.S "ED54CE100E6D395DEB96AC6DAB6A8A754DF54E29A79FDA35032823DD4A59649F513D5C1C93E81CA14EE645F215D2"
Data.S "62C8BE110018A017248EDCDB6800CBD5F124E012838592920F63644966628E30DE545C92D2A1936BDEDA94B3D370"
Data.S "B18A9B5A30DA90555BE616CFAC3912DD16D999B7F3CEDFCC3E55F7AD93732CFEB2F096107BF5D65FB112AE9AFA72"
Data.S "DD914F7F76EFC12FE57EBDF3A1D095A3B7528EF08B4E0B5BDEC47F27E94AB7335F4F3D9BEB6CA75F6255AD74472F"
Data.S "A48D0529D7D1ED4CF42AA191773A49D3F04B1A59021620F57A68D023DE875C18E0D221F342D48424BA6A28C2454D"
Data.S "CB80558481319AFC816BC16C8CAA27AA9265E26474F351A1AA91C6DA039F450D8E21BDAABAB36BD1758FBEBDF772"
Data.S "CFBD6CFBFAC7A88F678FFA4EF1F5094357B673172E604EE9FE5CDBA35F6F253BF0EAE52EBD7289568C8BB653E2BE"
Data.S "5F66FB3ADBBE801DADAA5ACB753553A4A5B6366A67D4D34334E513FAA79D1900D95332CE2F6F206EE9C588F28A9C"
Data.S "06A478D761471EF736E4948F97878C6ABC6A14C036606451948BD8E24AC3176F849967E3913516AD2C5355A89E8D"
Data.S "96ABD5F46A84CFA619532E83C966D7A572CFBCA5E0D4A777169E9D31D0C4C9972398F7FABC6499F7B81F23B61C38"
Data.S "79E8B55307EFEC13DED52B65B9E37D54BAC7A8A312BF620F5BD6567B1730CB50C7362A1A29564A4F037D3369E89D"
Data.S "A634F58CC934976E330B65D052030C9223051CCAF8342CEDDF0C10D551131164828B86F27B2786A423F934915F1B"
Data.S "B08A4DB045CA45656150CB1833317A3EE6D7A34A33638DB5AAE80243793D782F85D169C514CC769D5935DBB843C7"
Data.S "7285B8E733DECDDC76D1BFB15B7DE98D032F47ECF360A13833E70D1A5338C9C7E706D5ACF1C4D7A306F7560A1DDE"
Data.S "FA28B6A83F4B0B98F061610BABA5D4AAE3A77932D55CF34DA3A1BA9966A6432FCB44B16663952D9604DC9AC4907C"
Data.S "03886A72682FA35AABD4143532A6518DCEC71A652628654F92F514345377E54A2DEABC64EB2D9DB869C5A337C435"
Data.S "E68BAE7D3BB4D750847FEA8B7D273E7D74EF0CAAA92E12E5506769CF81ABFF4E3CF7760F03241D3A1356CD002F6C"
Data.S "8F526065B3D4DFA70F6E5B1ADAB97F0362A0A84AF432F5548E7EF6C9969901D52BC7BC70E5E2933FE50E65F1228A"
Data.S "A239E6AAF135BDAE1AA80D51AB8224D9974BA15A035824050A6CCE6844B1CB247542A9A399B71AD635D37ED3B2FE"
Data.S "DA71DCD54783EE7BB3E9D48B936E0D5BF0D0B2731BB986B67D475FDC5418E7A38CDD31F1D8C02E85C251C3663EB9"
Data.S "73F01316A4660E8C1D395A33A5DC85D78A7EBA9F318B2DDDC19E82351CF7D2AA8CA9F6B954333DDFB48015AA9947"
Data.S "A7DC19995E8C2705BC4BF1638E762576A247D229A45E066C58921A0A1753F6D517CA49BE72AF45937C1AB146A22E"
Data.S "64580DF276F83BB124858333AEFCEBF0C696E419991831B236B3F6D2ADA67BBBC2567863F7953A30E9C67E6DE93C"
Data.S "D5B8377FB4EDDF9B6BE67D3C5F3CA292EBE2D539FF8C1CFCB14E2733DDBA72E9834F016774E8E585BD786E89B3D7"
Data.S "2E7CA8F3D55187E53DFA5FBAA22B7D3BF7F0AC630DD7B6D42AE34E0828A8AA79B43354D3D22C752D06687C51245F"
Data.S "8135AA14ED6FC694809B2857A174C0901D5B824F35195B6A53E8E5928346FD3CD0D4B0AA38AFEEB127FFA52DB3E9"
Data.S "C3A78B962DF969D6BB3D9B510D787B4F6FFCB6F1EA9EF965031E875D3A79EBD38B49BB73BEF79B3F37AF3B70DED3"
Data.S "4A81DD182FE594CE64B0BE3DF63BF77416D60B3156C561D16D5A396A9C483B0FAFCBD0E6A15A8636AF5A09783C45"
Data.S "32306A4D148921B03C9A5114891F2349BF346F3409388B3D2F0953F2499B695966A9D5429DA25B1B6AD77E85876D"
Data.S "98F0EFB83723B6CD74EBC7AB93C69D39A831BD47C92F98E170E59B31063E3D72656FAE8BE39E37DFCDF5A8E4B63B"
Data.S "FB057B39FADDFF404F5FEBBC87536BBD75E64F9F872E186C70CDFFC675DD2B92B992B1D9B58146BEBA15D1CC469B"
Data.S "2C8A99E7EC8865D9948555EA2EA35A468A82B8B15FA6350BC40EB256DE4B472F12F86240E561450DCA5C3C924B9D"
Data.S "8C51BE39F4B2D13C9172DABA28546E6D4FF5D7AF6FB2073F5E3E37E6C8C4B8264D799D45D7B66FD314DE26BEFAF5"
Data.S "E1CA4FF72CBCF9E79BDE4CB7F7D9CEAF64CE668FC54C3528DBBA17B35FFBF979D489475FE9EA9BE539EE65F52D5B"
Data.S "75FE36E3B0C66E0E4C775FC378EF25ECB66DA13E9678D551CA4C7AB9899FCBBAD01C1E5726C68C6A2E53FB141F51"
Data.S "F26BA959044941896042A04C3AC5F164056C3349F926445443FB4C8AEBE9A3528475FD1467DFDEAE9CAE5FDE9F0F"
Data.S "766C3472C99C4DF92D1ABD9B22794F80931EEBD8C155FCE2FBB83CBAA7D2914BDF5CB48B6AACC6B827779A18694E"
Data.S "AD6FC7B5DEF6F4EDB708978E1A047253B3F98DBE9157F60A2EEEC663EB055D9898BE8B01B62CE1BBAB5A7D8C3251"
Data.S "A59442C13954F6AC4CD348988E5F539429D44559EF941255026CD84880A23021FCD58912D552452DBBCCF4A9E79E"
Data.S "A5721D6DD915B2AC7B7BECDA06FE5DA1E1C7C4F3A7CC5979E9A55447D71DD8AFBE9AB66EC759972E6D4A6CD326BE"
Data.S "5C76D3CAA1BFFEB9F8F46E5D7389F3D6C0765E0DED08FA8315A86947571E4135EAE2B874DDDA2F7EEE3AE5B2CD41"
Data.S "DB3125794927B6BBC098C37DAD45305F7AAD3CB74C5197C3A9A7D1C972CC9F1A1A3E4993E659215943512C6A19A0"
Data.S "184560CCC9BE544CD2E5A4955FEA9A35F44FAD15517BBAD5CA8D4CDDDCBD2B8B8D0339E4CBCB4BD73CDA6EECA65D"
Data.S "E96D5DF6363E615ED6CE71EBB0FAF9ED9B532C187974D8C51472506D3A4D14533D519DBCD526D37D4665B615FD77"
Data.S "66D4B7CE8115DEDFA50FFEFA3874CB43476E36B9E5B3B6EB796C29804B33B1E0C290CC97AE6552CE92CD29C951A9"
Data.S "048AD9F6555A2ECB7049988A84EB8852524F4BE359AD0630A349EC3993844958E5983C192DFD73E9B7B4A776B717"
Data.S "78D99CBC020C949D177665CED22B0F8DDA7AECAA655F0E7E36EF13BFFC56F3E1D185B61E1CB862537CCBDDBAA57F"
Data.S "E4A21AF4AA3940E9C78CA20EC3684913623496ABE6BCAC2587AF5AF8C94F7467F8F5E2C98B5EED7B19C77D9BDC4E"
Data.S "63B52E8C5A31C4823B2371E00BE68C772E8791C38A85B472D3A87B62FE49E6CECB3887CBF2D81A531276925EBAC1"
Data.S "7024AB567548A1FBC0104DCA33AF8B94C3FC2999EAA14F379D9D752CC1BBD7D6ECB8785E91332B3FF54A68E8D4B2"
Data.S "E3857344714779DFC5C59D62BCF99477470EB74B9E4FDDD33BBDB864797200C6FAC6A34344A13673E5A58B3ECE3D"
Data.S "16CFD6A1CA2A50C48717A5E54EF7EAE3CCCFA32E930178D970E4DB95860E7B77F1722E43F1DEE68F4D513CDB7866"
Data.S "4C516624179EDAC881F3756B65C98D32B56C4ACFA199D1EBA64F9FB43C0694903017E7B0C79764399823356A0063"
Data.S "72479981A866800D4E0D5DB355B1AC87677B37B7E47D0D071C5D7164A49D5BEE6AD8D72BAFBDFB3BF2BC858B3AFA"
Data.S "CA715C57AF1CD3B1AFAF7396F4EFC5B8A53A775EDCFA9E1FB744E8CB717775F38F6A7A77510DF0F08F46C9326FC5"
Data.S "5A83E6D30E3EB4E55B5392679EA8EAEE8EFC7978CD99BE898F197F1FEFC6842F39F6A5F0AEEC713C0DB04A2D59B2"
Data.S "F73235A365BBA69EA95BE7504D51C7043A99B5953B25C99A905D9853948B92013A9A56F9B353D43995721B1BE955"
Data.S "7573633517B171B4195766EEED1C51D28D9D34EBC8CBDFDEC7FA7BE23EBB07FE5DFD87C2F9BEBED2A4229E5225BB"
Data.S "F98CC13E7D3C4552A96EFB023D795937478E77CE00C725D6571B2CEAE7AA85E7D7970E69712BDD95E9A60E9DFEE9"
Data.S "D1C1870FF5E594E7E3FEDA38767C9D4E2B82933FD417CDB8060AF2E631E8CC05FE0DDD7863DB5EF239AAD6CF2B17"
Data.S "75DAE8E49B479CA23C534216A5014961C9F312B54CF14EA69B653E7A9574DC55CBC230F00ADD53667E5766D1D313"
Data.S "2FED3A3BF2B2738F1F3FBA74F0FB8317443E7FF704C09EBE253DFAF3431E3C11570BFF3D8AD2BE9D02A979F736A5"
Data.S "76DBC576AE1CD155B345B97666E6AA391D2A62C4AF163F157A5873EE9661D25E1E379B83479F7B6FECD6AC19CDDB"
Data.S "87A75FFE7833F0C896AC69FD497742ABB566CCA6A75E1C79DBD27701050B5A6C585437571DD0A80426E50C12E1A4"
Data.S "74747CF37944DA68D6D26D532DBBF06FB2733B2E2E17E4CFCF0327DD1AFBF5B2757F8F1E7872C0C72F01FDFDFF97"
Data.S "607FC200CEFBF604BC853DFA1FBEB2FE8C179F49D7B79BB7F7E8D43BDBA2DC786B3F47AEEAB437CD0581D892927D"
Data.S "17E7F4BF5D92D733C68E5727478D3DF0E9E070539E7D3BEFBE1C68D7DB6BA7CCB8FAD991350F0DBBB267B4568D29"
Data.S "73DE88C6E2C9B32FBE4BD835D26CF5A62B3A6BDA5B414B0DF4EA67A6295A55637CBCB2AA2A56B55261E1C686DCAD"
Data.S "5FDD93F35D2CB574C598D7C6CE19EEE1E257E1A7ABBDF9F633E600A15A7C8A00F243E7BD042AB8DA7ACBA0BCFAF1"
Data.S "DB09B0D07C7A7AEA578E1CE399A2825FD91CE9BA776AEB94618D7A99A25C41D6EEF83656F35D0F3F9D7C70E427C8"
Data.S "9AEEEFF09E14E59D355FB5FBF2669CAE4D166362BFC6E7D1B94DB62C9AB76833EEE00D5F0A5B2D5FD9748B95EB7A"
Data.S "97AD6D5B5A0AD6B455F3FAAABFCAA5AD8B536AB97373BE8D958EAE58A767234FBEB6EFEEE00F574E3CD5D46DDF1E"
Data.S "535FFFEDEBEF130B7EFED53C92FBBC27C022BFDE3C016F273F11840DBFE07CC2BDF9A427D7BEA96F7C53BFB437AD"
Data.S "89B22EE2532E542B7C9624E2CF2C3B35F1B673BFF0DA31B577F28A74AB5ECD9D70CD9BAD2D370574DAF36C514297"
Data.S "F66DE09D537B35EFCC14CC696E1910B61887BFF32AEEE0CBDCC1F6EFC52DFC2298D28DCB353C33F4BE8EA8DECE98"
Data.S "A86B7FAFFA8A70F2BD7D6539C5DF776EFC7AF7DAB38F5F7FD4E46FF66CF4CFE7003460B96F3F818FF0EAD3B3BFBD"
Data.S "FC7B9EA96EA1D2BB3FBF180B77E76728C02954C6C84F83E56BAA48639EF5FBB65DC58F9B5FDDB975EFBF45D10E5E"
Data.S "5D5D822CA0A3AB2E1935F1CEC6E8CE9D57638ADFE59A27C7FDBCF16CB09D2FDE9935F3CEBC739A529F1326DDB4F3"
Data.S "C0A2029A02380BFEBCFCF6C5ACAF164F99F68F97F7F83774F4AE8FC1AE5EF3A787777BCDF6F35F1FAA3D7DFC0440"
Data.S "4F1AA0BEEDE577E6F5947BF5A79E9E3F59D8C9EB506C50B8EF97E57054F74CF56B3B388318E5EED5BBC9BA864F06"
Data.S "8BD4EBDBCC299E78A5BDC54D7F9E45387170B64EBBF6DBC651C37527F7E91D1BE37A63DE2C1774C9BB9BBD29174F"
Data.S "63CD74CA5FACDB7AB227A660C714A0FDEE8F291DFEDD736FCBC7931E5BBAF9D71E1F8B92DB3F078F7028EDE70F9F"
Data.S "BE78F2E7DF7FFF0CFEFDFD144B541EFE243EDEFCA4B2FB8447EFF70C0765B1AE7D3BA994174F0799FA7EFD0CBC51"
Data.S "751A3B8AC54BD594CC93ED4ADFBB7677E7852BCF3CBD74EE3CF8056373DB064FDF92D8CE566DD897739C356F8D79"
Data.S "6EBA9B935B2777CAF2ECFF9E99790650303787F3C53B33C0674A4F0AE045E56D4717073DF0EB28903EB9A2B46328"
Data.S "7DF8E3413FFFFF0C9CFB0E209FFDFCFDEA9B7F8FF5F4C75B29F792F8764B77EAFDBC467B6F9FF92E59639784A64E"
Data.S "BFABF91AE5AE73E1B27DEF463FDAF3E7F66BA70E9D3DA758A7B4DEE4A5238EBB7AF2BA6F170FB127BE2DD76D5738"
Data.S "9C3B6AE4A18F57BDB574F4ABC3A6AEDEF9DAD6D3F60E4ED47CBBE677937F6F4F7EF4F2F05FDFA39E1F9FB271B3C7"
Data.S "9C32D4E057F4AFA1A84707E6F34F6321EF9EA38FFF3DE0D55FBCE6C5E36AC3F75C24E051D0CF4BC6533654CCBF85"
Data.S "DBA4AF6962B388E9F73E7AF36AF7790BF8DCA78BE4B09B7343BCBC767E9C77A50CFF4D59482F3ED1CAB3BF9E3B14"
Data.S "79D8DF7D9D3DFAC0B9C77FFF3878E8F33B2FEB6F80EA7CFFD8D79FFFDF3BCED7A78C18C0AB513EECA1F5F1A1B45B"
Data.S "EFED29DD874F2101D267BEABC153DC5FF2E135EFFD463C7AFCE6327E0B4F9EBD3EA9592112E67ADD67D079BF4F5E"
Data.S "1CBCF8D8A39BBAFC0CF573793F7E776FDE9EF5E7C2C9720A66F83D93DB79AA5BDF1D2FDABF5FF6BE2BE6FF7E38F9"
Data.S "ABE7883AD511A79AFFFA7AFBF56B678F4BFEEEEDA7C100F7977F410FD3934D99A25C26D7CA5BC787BF4CA0B041D4"
Data.S "CE73608F3F357FBF7D621FDF3E23C5B47F4FF10FAAD6AF7CA9DFCD19B3DDB18803FFF6F9DFB9DE129FFC4169A7CF"
Data.S "F5E29B93B7794F7104BFCEDDDA8D4FA75B3ACC3FF5E1DDA59E43FCBB585138100F08245301C63F2F86A842FEE031"
Data.S "207C76F417E7ADBA790B17EF14CCF8F59AED9CF4D45B2A052CF986CE1D20A27F5DEB2F52954EED51A1FCBB66ACD8"
Data.S "F3ECC17FB90E3E3ADD734F3FFC94EAF56D7FFD73DDA690B7DD73834B843BF0F2B7EEFDB8E8D4BF3B1AA03A7837CB"
Data.S "CD4BF217E5E532DE7A72DEFCA29DDF9F9BE7A3E782F36B2AD6A329EAE4B3CC2706C6F1F5A7F7E4DB7DF3867A7BF8"
Data.S "F6ACF9FC8E2B9D2EBFDAB6AA9CB72E5DAF95C37EFD38FEE787C0FAAFF4A3B7F0E5FDDD73FDF04B7B9BCF2D5FE429"
Data.S "B7D3253C7ADE86C2FD3C5DB31B7BBE2F0C707EB8F6F4D714FFBEBB93BF787978F3C6523BCFDE9F9E229FF8E96FAF"
Data.S "245893EE7CF7B053DA3629D6A99AF56B55438B71B07D1972145EAA13C22357961F7C6BE8FAA7470EECF801A1FDF5"
Data.S "CBF94F91FEBFF3452DDF73FAEE9901A0C387C36FAF9DD22BEBAD032895F4407FEF3EC8A7C09F2FA1AF91D8FBDB1F"
Data.S "5FFCFDF97F425EF27B23278EEF5ABB9635762553C264CB7D60BA7E6D06FE3A72DBE8AFA71FDC7EF9F38BFF9794F8"
Data.S "C6295F6780E6F7B953EA21FBD929600003F48FC700ED4CD053FA49C03F032DDF2BF9BCFAECFACBBEDDDBD7AF650F"
Data.S "34BB3164C4AE164E8D64B9DA4AB5AC4983EF06FE5BF6E9D17B636F7E7DEEF6E42F5F83DFF7A7D0E6B3FD675435DF"
Data.S "FF33FEFCC6111C258AF9788317AFDAAA9157CBF7B1EC357582A5772144A92C52A918E995EA033CC3AA3CF52A5C9F"
Data.S "EBC615BCB061C08EB062C984BD7D19A08B5AB6966A77EA552BCDF2141163569108263C0BC277804500000020"
EndDataSection
Dernière modification par Ollivier le ven. 01/mai/2009 0:15, modifié 3 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

c'est ce qu'on appel "coincer la bulle" , ou "Buller" :lol:
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

c'est très mimi :)

Dommage que ça ouvre plusieurs progs dans la barre des taches
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

@dobro

Oui je n'ai pas rajouté la correction évitant au process de s'interrompre pendant le clic pour déplacer une petite bulle.

Ce que j'ai voulu montrer, c'est qu'on peut contrôler indépendamment chaque élément.

C'est très con comme exemple, pourtant il y a une foule d'application possibles derrière. Mais, ce qui m'intéresse c'est d'aller plus loin dans les possibilités d'affichage Windows. (J'ignore ce que ça donne sous Linux et Mac : peuvent-ils exécuter user32.DLL? )

Ce que je voulais, c'est utiliser le moins possible de DLL.

@Ar-S

Je préfère éviter de mettre cette partie sur le forum au cas un malsain l'utilise à mauvais escient.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Splendide, j'adore.
Ollivier, t'es vraiment une perle pour ce forum :wink:
Continue à me faire rever 8O
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Ollivier a écrit :@dobro

Oui je n'ai pas rajouté la correction évitant au process de s'interrompre pendant le clic pour déplacer une petite bulle.

Ce que j'ai voulu montrer, c'est qu'on peut contrôler indépendamment chaque élément.

heu ! j'ai rien dit moi :lol:
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

J'insiste sur le fait que sans le post de l'«engrenage de fou» j'aurai eu beaucoup plus de mal à réaliser cette petite horreur :D
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

et moi je te tiens à dire que sans le soldat inconnu je n'aurais jamais fais l'engrenage fou :)

sinon pour enlever les fenêtres de la barre de titre :

Code : Tout sélectionner


; à coller dans la section macros

Macro ToolWindow(window)
  
  SetWindowLong_(WindowID(window), #GWL_EXSTYLE, GetWindowLong_(WindowID(window), #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW) 
  
EndMacro

; à coller juste après l'OpenWindow() - ligne 261

ToolWindow(\window)


ollivier,

sinon,
oui "user32.dll" est une lib de l'API Win32 et donc uniquement pour windows.

sinon il y a aussi AlphaBlend_() dans "Msimg32.dll"
http://www.purebasic.fr/french/viewtopi ... ansparence

si tu veux aller plus loin dans l'exploitation des capacités graphiques de windows, va voir du coté de la lib (Win32 toujours) "GDIPLUS.DLL".

il y a un post assez long à ce sujet sur le forum :
http://www.purebasic.fr/french/viewtopi ... ht=gdiplus

c'est rx14 qui maitrise bien tout çà, et denis qui a travaillé sur une lib gdi pour pb.

un bon example d'appli gdi, merci rx14 :
http://www.rx14.info/archives/Horloge.zip

ou de netmaestro :
http://www.networkmaestro.com/TransparentClock.exe
http://www.networkmaestro.com/TransparentClock.scr
http://www.networkmaestro.com/TransparentClock.zip
Image
Brossden69
Messages : 14
Inscription : mar. 18/sept./2007 8:17

Message par Brossden69 »

Moi je tiens à dire que sans vous heuuuu ....

Ben je ne serais pas aussi souvent sur ce forum !
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Moi je tiens à dire que sans vous heuuuu ....
Ben je ne serais pas aussi souvent sur ce forum !


Pareil !!!! :D

J'suis toujours en éveil, tel le bon "Ouaf", la langue pendante......, la patte en l'air, ........... la q...., non non quand meme pas :lol:

Mais je suis toute "guette" quand un nouveau POST apparait et quand je peux parler avec mes copains :D

C'est long quand il se passe pas grand chose sur le forum, comme un peu en ce moment :cry:

Mais ça fait rien, mieux vaut la qualité que la quantité :wink:
Dernière modification par Kwai chang caine le sam. 22/sept./2007 19:25, modifié 1 fois.
Brossden69
Messages : 14
Inscription : mar. 18/sept./2007 8:17

Message par Brossden69 »

Kcc tu as toujours le mot juste, la phrase qui tombe à pic !

Merci de tes mots !
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Je remercie beaucoup vos réponses. En ce moment, le moral n'est pas au beau fixe alors ça me fait plaisir.

@Flype

Pour alphablend, j'avais vu un exemple récent de Netmaestro, flower
C'est vrai qu'il y a, pour beaucoup la barrière de la langue mais les codes sont là.

Sinon, j'ai beaucoup de mal à utiliser une bibliothèque: je préfère souvent trouver moi-même l'algo et créer la fonction, quite à y insérer une ou plusieurs routines Asm. J'aimerais une critique sur cette méthode pour savoir, s'il n'est pas préférable que j'investisse mon temps sur la recherche des diverses fonctions de l'API ou s'il est judicieux de créer mes propres «bibliothèques» de fonctions.

A priori, je trouve l'avantage de pouvoir duppliquer et modfier une fonction. Maintenant, quels inconvénients cela entraine?
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

tout dépends, moi dans mon travail ( informatique de gestion ) si je devais refaire la roue tous les jours je n'avancerais à rien. j'aurais sans doute la fierté de me faire mes propres routines mais mon patron lui s'en fout complet. il faut du fonctionnel et VITE.

mais si tu as le temps et en plus que ca te passionne l'interet est tout de meme la 'maitrise du sujet' (comprehension + maintenabilité).

ceci dit, dans les OS modernes, lesquels donnent toutes les briques nécesssaires au dev d'applications/jeux pourquoi se priver d'autant que si on veut s'assurer une compatibilité future il vaut souvent mieux se borner à ce que propose l'OS (ou d'autres libs tierces). et puis la 'fierté' dont je parlais tout à l'heure on la trouve dans la réalisation d'un code 'global', 'propre'. Réaliser une appli de 30.000 lignes comme c'est souvent le cas dans ma boite n'a rien d'inné. La beauté du code se juge dans sa globalité, sa lisibilité, sa maintenabilité et surtout son efficacité. Voilà, donc moi je 'me' préconise l'utilisation des fonctions de l'API qui m'aide d'ailleurs à me sentir moins cons tout les jours et d'etre capable d'aller à plusieurs portes professionnelles le jour où je voudrais changer de boite. Maitriser windows est perreine.

par contre dans le cadre de dev multi plateforme, l'interet de se faire sa propre routine devient interesssante car il est ainsi plus facile de transposer le code sans se soucier des fonctions de l'API qu'on aurait utiliser et qui serait bloquante.
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

enfin tout çà, çà n'engage que moi. :wink:
Image
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

ça n'engage peut-être que toi mais le conseil est très constructif. Comme tu le dis, il faut du rapide au risque de voir le concurrent mettre une appli au taquet.

Pour résumer: je me retrouve avec des capacités colossales mais qui mettraient 10 ans à être développées. Mon éventuelle copine a le temps de se marrier avec autrui et d'avoir 3 gosses.
Répondre