Español
Incluye

Buttons.inc - Sehr simplemente y problemlos con Buttons arbeit

 

Peter
Mallow
Arbeiten con Buttons war para mich siempre stressig. Wenn Yo una Button con Crear(Button... erstellt habe, haben el Buttons no así comportamiento, Yo lo quería o. auch no como en Windows üblich es. El Alternative con Control(Button... es no schlecht, sólo wusste Yo irgendwann no mehr, welches MenuItem ahora a welchen Button gehört.

Um el alles extremo a vereinfachen y a Información general herzustellen, Yo esta INC-File geschrieben. Yo weiß el Solución es no el eleganteste, sin embargo el einfachste y besonders para ältere Profanversion 8- una tal vez wertvolle Erweiterung, como lo sólo de Profano 9 el Befehl Clicked() gab.
Aber auch dieser Befehl ha para mich Nachteile. z.B. funktioniert dieser sólo, si vorher una WaitIput erfolgte.
KompilierenMarcaSeparación
################################################################
#                 BUTTONS.INC   Version 1.2                    #
#==============================================================#
#     Erleichtert extrem die Buttonverwaltung im Programm      #
#                                                              #
#  C o p y r i g h t  2 0 0 5   b y   P e t e r   M a l l o w  #
################################################################
Def @LoadImage(6) !"USER32","LoadImageA"
Def @ALoadImage(6) ! "USER32","LoadImageA"
Def @ExtractIcon(3) ! "SHELL32","ExtractIconA"
Declare ButtonID%,MerkeButton%[100]   MerkeButton%[100] Merkt sich das Buttonhandle, Max 100 Buttons (standart)

Proc Button

    Parameters Handle%,ButtonText$,X1%,Y1%,X2%,Y2%
    Button wird erstellt. Diese Procedure hat die gleichen
    Parameter wie CreateButton.
    Inc ButtonID%
    MerkeButton%[ButtonID%] = @Control("Button",ButtonText$,$40000000+$10000000,X1%,Y1%,X2%,Y2%,Handle%,ButtonID%+4000,%HINSTANCE)
    Return ButtonID%

EndProc

Proc CheckButton

    Parameters Button%
    Diese Funktion gibt True zurück, wenn der Button% geklickt
    wurde. PRAKTISCH ist, dass nach der Ausführung dieser Procedure
    der MenuItem-Status wieder auf 0 gesetzt wird.

    If Button%=0

        Return 0

    ElseIf @Abs(%MenuItem)=Button%+4000

        SetMenuItem 0
        Return 1

    Else

        Return 0

    EndIf

EndProc

Proc GetButtonHandle

    Parameters Button%
    Diese Funktion liefert den echten Handle vom Button zurück.
    Damit kann dann jede beliebige Funktion wie "DestroyWindow"
    normal angesteuert werden:
    Bsp. -> DestroyWindow(GetButtonHandle(Button%))
    Return MerkeButton%[Button%]

EndProc

Proc DestroyButton

    Parameters Button%
    Die Buttons, die mit der Procedure "Button" erstellt werden,
    die können nur mit dieser Funktion zerstrört werden oder Sie
    verwenden:  -> DestroyButton(MerkeButton%[ButtonHandel%]) <-
    DestroyWindow(MerkeButton%[Button%])

EndProc

Proc EnableButton

    Parameters Button%, Type%
    Die Buttons, die mit der Procedure "Button" erstellt werden,
    die können nur mit dieser Funktion zerstrört werden oder Sie
    verwenden:  -> EnableWindow MerkeButton%[ButtonHandel%],0 <-
    EnableWindow MerkeButton%[Button%],Type%

EndProc

Proc SetButtonText

    Parameters Button%, String$
    Die Buttons, die mit der Procedure "Button" erstellt werden,
    die können nur mit dieser Funktion zerstrört werden oder Sie
    verwenden:  -> EnableWindow MerkeButton%[ButtonHandel%],0 <-
    SetText MerkeButton%[Button%]ng$

ENDPROC


Diese Incluir puede ser natürlich en BmpButton(), AniButton oder IconButton(), ... cualquier erweitern.

Falls Yo mich irren debería, y uno dies auch viel einfacher realisieren kann, entonces Por favor, antworten
Auch encima Propuestas, Erweiterungen, Kritik y Verbesserungen freue Yo mich

MfG
Peter Mallow
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
06.09.2005  
 



Nun - una Schönheitsfehler sehe I Anhieb - Usted benutzt Integer en lugar de Longs. Lo se zwar zumeinst trotzdem trabajo - sin embargo son el Función Control  nunmal una Largo en lugar de una Integer zurück.

Salve, IF.
 
06.09.2005  
 




Peter
Mallow
Ok voluntad Yo hacer.

Sry! Diesen Hilo hay sí ya :/ Yo Trottel habe vergessen, dass lo ihn ya gab. Also Por favor, uno el beiden Hilos löschen!!!

Sorry, quería no spammen
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
07.09.2005  
 




Peter
Mallow
Hier el Versión 2.0 de el Buttons.inc
KompilierenMarcaSeparación
################################################################
#                BUTTONS.INC   Version 2.0                     #
#==============================================================#
#     Erleichtert extrem die Buttonverwaltung im Programm      #
#                                                              #
#  C o p y r i g h t  2 0 0 5   b y   P e t e r   M a l l o w  #
################################################################
Def @LoadImage(6) !"USER32","LoadImageA"
Def @ALoadImage(6) !"USER32","LoadImageA"
Def @ExtractIcon(3) !"SHELL32","ExtractIconA"
Def @GetDlgCtrlID(1) !"USER32","GetDlgCtrlID" Par: Handle;  Return %MenuItem
Declare ButtonID%,bmp#
ButtonID% = 4000 Startwert

Proc CheckButton

    Parameters b&
    Diese Funktion gibt True zurück, wenn der Button% geklickt
    wurde. PRAKTISCH ist, dass nach der Ausführung dieser Procedure
    der MenuItem-Status wieder auf 0 gesetzt wird.

    If (@Abs(%MenuItem) = @GetDlgCtrlID(b&)) And (b& > 0)

        SetMenuItem 0
        Return 1

    Else

        Return 0

    EndIf

EndProc

Proc CButton ein Button als Checkbox

    Parameters Wnd&,t$,X%,Y%,SizeX%,SizeY%
    Inc ButtonID%
    Return @Control("Button",t$,$50001000+3,X%,Y%,SizeX%,SizeY%,Wnd&,ButtonID%,%Hinstance)

EndProc

----------------------------------------------------------------------
- Folgende Funktionen und Prozeduren sind nur noch zu Kompatibilität -
- zur alten Version von der Button.inc vorhanden. --------------------
----------------------------------------------------------------------

Proc Button

    Parameters Wnd&,t$,X1%,Y1%,X2%,Y2%
    Inc ButtonID%
    Return @Control("Button",t$,$50000000,X1%,Y1%,X2%,Y2%,Wnd&,ButtonID%,%HInstance)

EndProc

Proc GetButtonHandle

    Parameters Button&
    Return Button&

EndProc

Proc DestroyButton

    Parameters Button&
    @DestroyWindow(Button&)

EndProc

Proc EnableButton

    Parameters Button&,t%
    EnableWindow @Button&,t%

EndProc

Proc SetButtonText

    Parameters Button&,t$
    SetText Button
ENDPROC

Yo habe antes kurzen el API GetDlgCtrlID entdeckt. Como viel me igual Verbesserungen para el Button.inc una. Der große Vorteil dieser Versión es, dass Button() ahora el echte Handle zurückliefert. Dadurch voluntad el Funtionen GetButtonHandle(), DestroyButton(), EnableButton() y SetButtonText() no mehr benötigt, habe ellos aber todavía wegen Kompatibilität en el Button.inc aufgenommen. Außerdem puede con el Función CheckButton() auch con CreateButton() erstellte Buttons abgefragt voluntad.
In dieser Versión Yo auch el Ratschlag de IF berücksichtigt. Neu es auch el Función CButton(), con el uno Buttons redactar kann, que como una CheckBox einrasten dejar - Entonces, ¿cómo una Schalter.

Aunque muss Yo dazu sagen, dass uno con el aktuellen Versión geringe Geschwindigkeitsverluste en Kauf nehmen muss. Das liegt daran, dass el Abfragen el API Getdlgctrlid() algo länger dauert. Aber wer en seinem Program sowieso una WaitInput verwendet, el kann lo egal ser.
Mit el Función Clicked() kann allerdings no el beiden Versionen mithalten, sin embargo es meines Wissens después de sinnlos Clicked() en uno Bucle sin WaitInput oder WaitMouse utilizarse.

Also fällt dieser Nachteil schonmal fuera

Wer kein Profano 9 ha kann se incluso el Función Clicked() redactar:
KompilierenMarcaSeparación
 
WinXP Pro SP2, XProfan 9 + XPSE
AMD Athlon 64 X2 3800
06.10.2005  
 



Huch - el sistema API GetDlgCtrlID  es sí incluso ya en el OnlineDoku gelistet.
 
06.10.2005  
 



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

8.741 Views

Untitledvor 0 min.
Uwe Lang26.07.2024
Detlef Jagolski23.07.2023
Normann Strübli06.02.2023
Joachim Fourmont12.01.2022
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

Peter Mallow (3x)
iF (2x)


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