| |
|
|
Peter Mallow | works with Buttons was for me always stressful. If I one Button with Create(Button... prepares have, having the Buttons not so behaviour, How I it wished or. neither as in windows normally is. The alternative with Control(Button... isn't badly, only known I sometime not any more, which MenuItem now To whom Button heard.
around the everything extreme To vereinfachen and around the Overview produce, have I these INC-File written. i know The Solution isn't The eleganteste, however The simplest and particularly for ältere Profanversion 8- a Perhaps valuable expansion, there it first ex Profan 9 whom commands Clicked() given. but too this commands has for me detriments. z.B. functions this only, if before one WaitIput erfolgte. CompileMarkSeparation################################################################
# 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
These Include can naturally circa BmpButton(), AniButton or IconButton(), ... discretionary strain.
if I brill ought to, and one this too plenty plainer release can, then Please Answer too over Proposals, extensions, review and Improvements freue I
MfG Peter Mallow |
|
|
| WinXP Pro SP2, XProfan 9 + XPSE AMD Athlon 64 X2 3800 | 09/06/05 ▲ |
|
|
|
|
| now - a blemish see I on attempt - You using Integer instead of Longs. it'll of course zumeinst nevertheless functions - however gives The function Control nunmal a Long instead of a Integer back.
salvo, iF. |
|
|
| |
|
|
|
Peter Mallow | OK I will make.
Sry! Diesen Thread there already :/ I dope have forget, that it it already given. means Please one the both Threads delete!!!
Sorry, wished not spammen |
|
|
| WinXP Pro SP2, XProfan 9 + XPSE AMD Athlon 64 X2 3800 | 09/07/05 ▲ |
|
|
|
|
Peter Mallow | here The Version 2.0 from the Buttons.inc CompileMarkSeparation################################################################
# 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
I have a short while ago The API GetDlgCtrlID discover. there plenty me same Improvements for Button.inc one. The large benefit this Version is, that Button() now the real lever returns. therefore go The Funtionen GetButtonHandle(), DestroyButton(), EnableButton() and SetButtonText() not any more needed, have tappt im dunkeln but yet because of compatibility in the Button.inc adopted. Also can with the function CheckButton() too with CreateButton() erstellte Buttons quizzed go. in this Version have so did i whom piece of advice of IF berücksichtigt. New is too The function CButton(), with the one Buttons create can, which as an CheckBox einrasten let - So how one switch.
though must I moreover say, that one with the actually Version little Geschwindigkeitsverluste in buy take must. the lying on it, that the inquire the API Getdlgctrlid() something longer lasts. but who in its Program anyhow one WaitInput uses, the can it alike his. with the function Clicked() can though no the both versions mithalten, however is it of my Wissens to futile Clicked() in a Loop without WaitInput or WaitMouse To use.
means falls this disadvantage Schonmal out
who no Profan 9 has can itself self The function Clicked() create: CompileMarkSeparation |
|
|
| WinXP Pro SP2, XProfan 9 + XPSE AMD Athlon 64 X2 3800 | 10/06/05 ▲ |
|
|
|
|
| Huch - The Api GetDlgCtrlID is Yes even already in the OnlineDoku gelistet. |
|
|
| |
|
|