Español
Foro

Iconbutton con texto - Icon sólo en el Interpreter

 

E.T.
¡Hola XProfan-Gemeinde,
Yo nutze gern el Icon-Buttons con texto,



como en el Code unten dargestellt. Bisher Tuve así no Problemas, como Yo el Icon's de uno Dll geladen tener. En una kleinem Mini-Projekt, welches sin Dll auskommen debería, me está ahora folgendes aufgefallen:
Im Interpreter funktioniert el bastante wunderbar, starte Yo aber el fertige Exe, es el Icon en el Button sólo sporadisch, meist sólo beim ersten Programmstart, a sehen.

Alguien 'ne Concepto ???
Passiert de paso en el Ejemplo hier: [...]  auch. Getestet con XProfan 11/12/X2
KompilierenMarcaSeparación
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
Ladeanzahl182
Descargar
 
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
Schau dir veces el Code a el va, es auch kommentiert por qué. En dir fehlt qué.
KompilierenMarcaSeparación
'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 - como sería Yo aber sagen, el es klar una Bug y debería no 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 - como sería Yo aber sagen, el es klar una Bug y debería no solcher Workarounds bedürfen...


Das halte Yo no para una Bug.
Wer una Control en un Control producido, el no dafür vorgesehen es,
el muss se eigentlich no wundern, si una WM_PAINT hay no ankommt.
Egal, si el Icon de uno Dll oder de el Exe kommt, el se fehlschlagen.

Abhilfe schafft, Autopaint während el Erzeugung en NULL, y danach otra vez en
Standard a conjunto, oder el Button así a versorgen como lo esperado, con un
Mapa de bits,Icon oder Texto.
 
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  
 



Sehe Yo genauso. Das Programa es para el Neuzeichnen su Controls zuständig. Windows sagt sólo Bescheid, wann genau el stattfinden debería. Das se en el Code aber weder abgefragt, todavía darauf reagiert.
 
14.05.2011  
 



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

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