Fuente/ Codesnippets | | | | Frank Abbing | Das profane SpinEdit-Control - Yo sags veces en aller Ehrlichkeit - sieht hässlich de con su Unterbrechung zwischen Editar y Pfeilen. Meiner Meinung después de es el incluso una Bug... Lo son aber una automatisierte y simplemente a programmierende Alternative - el UpDown-Control. Wahlweise como Dezimal- oder Hexadezimal-Editar (desafortunadamente sólo C-Style). Hier una Testcode: KompilierenMarcaSeparaciónDeclare xdec&, xhex&, font&
Def GetSysColor(1) !USER32,GetSysColor
Cls GetSysColor(15)
font& = Create(Font,MS Sans Serif,10,0,0,0,0)
SetDialogFont font&
Dezimal-Edit
Create(EDIT,%HWnd,,8,8,64,20)
xdec&=Control(MSCTLS_UPDOWN32, ,$54000192,72,8,16,20, %hwnd, 2019, %hInstance, $00000000)
SendMessage(xdec&,$467,0,60) 60 = Ausgangszahl
SendMessage(xdec&,$46f,40,1440) 40 bis 1440 = Mini-und Maximalwert
Hexadezimal-Edit
Create(EDIT,%HWnd,,8,32,64,20)
xhex&=Control(MSCTLS_UPDOWN32, ,$54000192,72,32,16,20, %hwnd, 2019, %hInstance, $00000000)
SendMessage(xhex&,$46d,16,0) 10 = Dezimal / 16 = Hexadezimal
SendMessage(xhex&,$467,0,60) 60 = Ausgangszahl
SendMessage(xhex&,$46f,40,1440) 40 bis 1440 = Mini-und Maximalwert
While 1
WaitInput
Case %key=2:Break
EndWhile
End
Gibt todavía algunos Messages mehr. Z.B. kann determinado voluntad, el se Edit el Position y Grösse des UpDown-Controls automáticamente anpasst (links y rechsbündig). Auch es posible, el el Werte de vorne beginnen a zählen, sobald una Überlauf stattgefunden ha. Auch Tausender-Markierungen son ligeramente einzustellen. Natürlich kann el Control auch cada x-beliebige Editar zugewiesen voluntad. Voreingestellt es (como en mi Ejemplo) el davor zuletzt generierte Editar-Control.
Viel Spass beim experimentieren! |
| | | | |
| | GDL | Hi,
voluntad Yo igual veces testen.
Servus Georg |
| | | | |
| | Jörg Sellmeyer | Algo como puede ser auch todavía hacer: KompilierenMarcaSeparación $H windows.ph
$H messages.ph
Declare xdec&, xhex&, font&
Cls ~GetSysColor(15)
SetDialogFont ~GetStockObject($11)
Dezimal-Edit
Create(EDIT,%HWnd,,8,8,64,20)
xdec&=Control(MSCTLS_UPDOWN32, ,$54000192,72,8,16,20, %hwnd, 2019, %hInstance, $00000000)
SendMessage(xdec&,$467,0,60)60 = Ausgangszahl
SendMessage(xdec&,$46f,40,1440)40 bis 1440 = Mini-und Maximalwert
Hexadezimal-Edit
Create(EDIT,%HWnd,,8,32,64,20)
xhex&=Control(MSCTLS_UPDOWN32, ,$54000192,72,32,16,20, %hwnd, 2019, %hInstance, $00000000)
SendMessage(xhex&,$46d,16,0)10 = Dezimal / 16 = Hexadezimal
SendMessage(xhex&,$467,0,60)60 = Ausgangszahl
SendMessage(xhex&,$46f,40,1440)40 bis 1440 = Mini-und Maximalwert
Var l& = Create(Listbox,%hwnd,,8,56,80,19)
SetStyle l&,1,GetStyle(l&,1) | ~ws_ex_right
WhileLoop -9,9
AddString(l&,Wert: + Str$(&Loop))
Wend
While 1
WaitInput
Case %key=2:Break
EndWhile
End
|
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 04.11.2007 ▲ |
| |
| | Uwe ''Pascal'' Niemeier | ¡Hola Personas!
Hoch ne Variante: KompilierenMarcaSeparaciónwindow 100,100-300,300
$H Messages.ph
$H commctrl.ph
create(text,%hwnd,,50,50,50,20)
var UD&=~CreateUpDownControl($54000192,0,0,0,0,%hwnd,1,0,0,10000,-10000,50)
setwindowpos UD&=50,100-50,50
declare a#
dim a#,24
long a#,0=0---zu Beginn 1er zählen
long a#,4=1
long a#,8=2---nach 2 Sekunden 10er zählen
long a#,12=10
long a#,16=4--nach 4 Sekunden 100er zählen
long a#,20=100
sendmessage(UD&,~UDM_SETACCEL,3,a#)
while 1
waitinput
endwhile
Es el Nachteil el ständigen Vereinfachungen en Profano: Solche Feinheiten geraten rápidamente en Vergessenheit, y luego después de más Vereifachungen geschrien...
SeeYou Pascal |
| | | | |
| | Jörg Sellmeyer | Naja, zumindest así ähnlich puede ser esta Effekt auch el Profancontrol anwenden: KompilierenMarcaSeparaciónwindow 100,100-300,300
Def UDM_GetBuddy(1) SendMessage(&(1),$046A,0,0)
$H Messages.ph
$H commctrl.ph
create(text,%hwnd,,50,50,50,20)
Var UD& = Create(SpinEdit,%hwnd,0;-10000;10000,10,80,100,20)
VAR UDBud& = UDM_GetBuddy(UD&)
declare a#
dim a#,24
long a#,0=0---zu Beginn 1er zählen
long a#,4=1
long a#,8=2---nach 2 Sekunden 10er zählen
long a#,12=10
long a#,16=4--nach 4 Sekunden 100er zählen
long a#,20=100
sendmessage(UDBud&,~UDM_SETACCEL,3,a#)
while 1
waitinput
endwhile
|
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.11.2007 ▲ |
| |
| | Frank Abbing | @Pascal: El Message lässt se natürlich auch en mein obiges UpDown-Control anwenden. Im Übrigen benutzt Rolands Spinedit eben esta API. |
| | | | |
| | RGH | Auch si dieser Hilo ya 7,5 Jahre (!) alt es: Yo habe en X3 el inzwischen de Microsoft como "veraltet" gekennzeichnete API "createUpDownControl" por el aktuelle Variante con "createwindow(MSCTLS_UPDOWN32" ersetzt. Das sieht no sólo algo mejor de, pero erlaubt auch Werte, el encima el 16-Bit-Zona hinausgehen: KompilierenMarcaSeparaciónDeclare xdec&, xhex&, font&, hspin&
Def GetSysColor(1) !"USER32.DLL","GetSysColor"
Cls GetSysColor(15)
font& = Create("Font","MS Sans Serif",10,0,0,0,0)
SetDialogFont font&
' Dezimal-Edit
Create("EDIT",%HWnd,"",8,8,64,20)
xdec&=Control("MSCTLS_UPDOWN32", "",$54000192,72,8,16,20, %hwnd, 2019, %hInstance, $00000000)
SendMessage(xdec&,$467,0,60)' 60 = Ausgangszahl
SendMessage(xdec&,$46f,40,1440)' 40 bis 1440 = Mini-und Maximalwert
' Hexadezimal-Edit
Create("EDIT",%HWnd,"",8,32,64,20)
xhex&=Control("MSCTLS_UPDOWN32", "",$54000192,72,32,16,20, %hwnd, 2019, %hInstance, $00000000)
SendMessage(xhex&,$46d,16,0)' 10 = Dezimal / 16 = Hexadezimal
SendMessage(xhex&,$467,0,60)' 60 = Ausgangszahl
SendMessage(xhex&,$46f,40,1440)' 40 bis 1440 = Mini-und Maximalwert
' Profan
hSpin& = Create("SpinEdit", %hWnd, "60; -100; 100", 8, 56, 80, 20)
While 1
WaitInput
Case %key=2:Break
EndWhile
End
|
| | | XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 28.06.2015 ▲ |
| |
| | Michael W. | Klasse.
Was me beim Testen auffiel: Im Interpreter funktioniert el (c)-Menü, aber kompiliert funktioniert no. |
| | | XProfan X3System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 29.06.2015 ▲ |
| |
| | RGH | Das war ya siempre así: Im Interpreter se el Info-Box para Interpreter adecuado y luego %menuitem en 254 gesetzt. Im fertigen Programa (EXE oder Runtime) se sólo %menuitem en 254 gesetzt. Wenn el Programmierer en el Programa darauf no reagiert, passiert eben nichts.
Das war ursprünglich dafür pensamiento, dass hier el Programmierer seinen eigenen Copyright-Referencia setzt. Und en el fertigen Programa muss sí no necesariamente el Copyright-Referencia de XProfan drin posición.
Das es auch así irgendwo en el Ayuda.
Saludo Roland |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 29.06.2015 ▲ |
| |
|
Zum QuelltextTema opciones | 16.592 Views |
ThemeninformationenDieses Thema ha 6 subscriber: |