Français
Forum

Iconbutton avec le texte - Icon seulement im Interpreter

 

E.T.
allô XProfaner-Gemeinde,
je nutze gern qui Icon-Buttons avec le texte,



comment im Code unten dargestellt. Bisher J'ai eu avec cela aucun Probleme, là je qui Icon's aus einer Dll geladen hab. chez einem kleinem Mini-projet, welches sans Dll auskommen sollte, c'est moi maintenant folgendes aufgefallen:
Im Interpreter funktioniert cela entier wunderbar, starte je mais qui fertige Exe, ist cela Icon sur dem Button seulement sporadisch, meist seulement beim ersten Programmstart, trop voyons.

quelqu'un 'ne concept ???
Passiert incidemment im Beispiel ici: [...]  aussi. Getestet avec XProfan 11/12/X2
KompilierenMarqueSéparation
SubProc Create.BigPicButton

    Parameters Ziel&, Text$, PosX%, PosY%, Breite%, Hoehe%, Icon&
    var BigPicButton& = @control("Button",Text$,$50012200+$2000000,PosX%,PosY%,Breite%,Hoehe%,Ziel&,1000,%Hinstance)
    Button_Refresh BigPicButton&, Icon&
    Return BigPicButton&

EndProc

Proc Button_Refresh

    Parameters Button&, Icon&
    var Refresh_Button&=@control("Static","",$50000003,12,12,32,32,Button&,0,%Hinstance)
    @Sendmessage(Refresh_Button&,$170,Icon& ,0)

EndProc

Declare BtnIcon&, Button&
BtnIcon& = @Create("hIcon","Baum")
CLS
Button& = @Create("BigPicButton",%HWnd,"Test- \nButton ",20,20,150,60,BtnIcon&)
waitinput
DeleteObject BtnIcon&
end

7 kB
Hochgeladen:08.05.2011
Downloadcounter182
Download
 
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...
08.05.2011  
 




Dieter
Zornow
exposition dir la fois den Code à qui allez, ist aussi kommentiert pourquoi. chez dir fehlt quoi.
KompilierenMarqueSéparation
'Autor Dieter Zornow
DEF LoadImage(6) !"USER32","LoadImageA"
Def DestroyIcon(1) ! "User32","DestroyIcon"
Declare icon&[]
Var himh& = 0

proc destroyobject

    whileloop 0,sizeof(icon&[])-1

        DestroyIcon(icon&[&loop])

    endwhile

endproc

proc showbutton'damit das Icon auch immer wieder angezeigt wird, ohne diese Proc wird es in der Exe nicht mehr angezeigt

    parameters hdl&' handle des Static controls
    showwindow(hdl&,0)
    showwindow(hdl&,1)

endproc

'Parameter: Fenster, oder Dialoghandle, Buttontext, handle der iconresource, Iconname, x%,y%,w%,h%, ButtonID, Text Links, rechts oder Zentiert

subproc Create.ITextbutton

    Parameters hwnd&,text$,source&,image$,x%,y%,w%,h%,id&,dct$
    declare button&,st&,hpos&,hwid&
    Icon&[himh&] = LoadImage(source&,addr(Image$),$1,20,20,$0)'Icongröße = 20 x 20

    if dct$ = upper$("R")

        button& = Control("BUTTON",text$,$54010200,x%,y%,w%,h%,hwnd&,id&,%hinstance,$0100)

    elseif dct$ = upper$("L")

        button& = Control("BUTTON",text$,$54010100,x%,y%,w%,h%,hwnd&,id&,%hinstance,$0100)

    elseif dct$ = upper$("C")

        button& = Control("BUTTON",text$,$54010000,x%,y%,w%,h%,hwnd&,id&,%hinstance,$0100)

    endif

    hpos& = height(button&) - 20
    hpos& = int(hpos&/2)
    hwid& = width(button&) -23' 3 pixel vom Rand weg + Icongröße

    if (dct$ = upper$("R")) or (dct$ = upper$("C"))

        st& = control("Static","",$50000003,3,hpos&,20,20,button&,0,%Hinstance)

    else

        st& = control("Static","",$50000003,hwid&,hpos&,25,20,button&,0,%Hinstance)

    endif

    Sendmessage(st&,$170,Icon&[himh&],0)
    inc himh&
    showbutton(st&)
    return str$(button&) + "|" + str$(st&)

endproc

'Beispiel
cls
declare ende%,but$,but1&,static1&, but2&,static2&,but3&,static3&
ende% = 0
but$ =  create("ITextbutton",%hwnd,"Test  ",%hinstance,"A", 10,25,70,25,10,"R")
but1& = val(substr$(but$,1,"|"))
static1& = val(substr$(but$,2,"|"))
but$ =  create("ITextbutton",%hwnd," Test",%hinstance,"Sand", 10,60,60,25,11,"L")
but2& = val(substr$(but$,1,"|"))
static2& = val(substr$(but$,2,"|"))
but$ =  create("ITextbutton",%hwnd,"Test",%hinstance,"Wasser", 10,90,80,25,12,"C")'zentriert müssen die Buttons größer werden
but3& = val(substr$(but$,1,"|"))
static3& = val(substr$(but$,2,"|"))
usermessages 16

whilenot ende%

    waitinput
    case %UMessage = 16:ende% = 1

    if clicked(but1&)

        Messagebox("Hier1","",0)
        showbutton(static1&)'nach jeder Aktion aufrufen sonst verschwindet das Icon

    elseif clicked(but2&)

        Messagebox("Hier2","",0)
        showbutton(static2&)

    elseif clicked(but3&)

        Messagebox("Hier3","",0)
        showbutton(static3&)

    endif

endwhile

destroyobject2>()
end
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
08.05.2011  
 




Jörg
Sellmeyer
Na - là serait je mais dire, c'est bien sûr un Bug et sollte pas solcher Workarounds bedürfen...
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
08.05.2011  
 




Andreas
Miethe


Jörg Sellmeyer (08.05.11)

Na - là serait je mais dire, c'est bien sûr un Bug et sollte pas solcher Workarounds bedürfen...


cela halte je pas pour une Bug.
qui un Contrôle dans einem Contrôle erzeugt, cela pas pour vorgesehen ist,
qui muss sich eigentlich pas wundern, si un WM_PAINT là pas ankommt.
égal, si cela Icon aus einer Dll ou bien aus qui Exe venez, cela wird manquer.

Abhilfe schafft, Autopaint au cours de qui Erzeugung sur NULL, et après wieder sur
Standard trop mettons, ou bien den Button so trop versorgen comment il es erwartet, avec einem
Bitmap,Icon ou bien Text.
 
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 :  [...] 
14.05.2011  
 



vois je genauso. cela Programme ist pour cela Neuzeichnen seiner Controls zuständig. Windows sagt seulement Bescheid, quand oui c'est ca cela stattfinden sollte. cela wird im Code mais weder abgefragt, encore puis reagiert.
 
14.05.2011  
 



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.962 Views

Untitledvor 0 min.
Detlef Jagolski23.07.2023
Normann Strübli06.02.2023
Sven Bader17.08.2021
Georg14.01.2021
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