Forum | | | | | Der unten stehende Code soll eine Combobox mit Icons unter Profan 6.6 erzeugen. Frage: Auf welchem XP System läuft dieser Code (unter Profan² 6.6) und wo läuft der nicht (ServicePack und Prozessorgeschwindigkeit)? Es geht nicht um die Fehler, die ich hier gemacht habe... KompilierenMarkierenSeparierenDeclaring new functions for Profan² 6.6 through windows API
Def @InitCommonControlsEx(1) !COMCTL32,InitCommonControlsEx
DEF @ImageList_Create(5) !COMCTL32,ImageList_Create
DEF @ImageList_AddIcon(2) !COMCTL32,ImageList_AddIcon
DEF @ImageList_Destroy(1) !COMCTL32,ImageList_Destroy
DEF @GetModuleHandle(1) !KERNEL32,GetModuleHandleA
DEF @LoadIcon(2) ! USER32,LoadIconA
DEF @GetProcAddress(2) !KERNEL32,GetProcAddress
Declare INITC#,ComoBoxEx&,Imagelist&,Iconname#
Declare ExecuteHandle&,Hicon&,M_Present&
Declare Proc_Name#,MHandle&,M_NAME#
Declare CBTEXT#,CBINSERT#
This peace of code is for looking, if icons can be placed in ComboBox.
If InitCommonControlsEx doesnt exist in the system-dll COMCTL32.DLL, there is displayed
a normal combobox without icons
DIM PROC_NAME#,256
DIM M_NAME#,256
String PROC_NAME#,0=InitCommonControlsEx
String M_NAME#,0=$SYSPATH+COMCTL32.DLL
LET MHANDLE&=@GetModuleHandle(M_NAME#)
LET M_Present&=@GetProcAddress(MHANDLE&,PROC_NAME#)
Dispose PROC_NAME#
Dispose M_NAME#
Proc ComBoBoxInsertEx
You can place other icons for selected items, but in the code it is not done (that why there are 3 icons)
Parameters Inserttext$,CBHandle&,Icon1&,Icon2&,Icon3&
DIM CBINSERT#,36
DIM CBTEXT#,256
Clear CBINSERT#
String CBTEXT#,0=Inserttext$
Long CBINSERT#,0=$1+$2+$4+$8
Long CBINSERT#,4=-1
Long CBINSERT#,8=CBTEXT#
Long CBINSERT#,12=Icon1&
Long CBINSERT#,16=Icon2&
Long CBINSERT#,20=Icon3&
IF M_Present&=0
@ADDCHOICE(CBHandle&,Inserttext$)
else
@SendMessage(CBHandle&,$401,0,CBINSERT#)
endif
Dispose CBINSERT#
Dispose CBTEXT#
EndProc
DIM INITC#,8
long INITC#,0=8
long INITC#,4=$200
Windowstyle 31+512
Windowtitle ComboboxEx
Window 0,0-640,440
If M_Present&=0
Print NO
LET ComoBoxEx&=@Control(ComboBox,,$40000000+$10000000+$200000+$100000+2+$40,0,100,150,180,%HWND,2615,%HINSTANCE)
else
@InitCommonControlsEx(INITC#)
DIM Iconname#,256
Let Imagelist&=@ImageList_Create(16,16,$0001,3,3) create imagelist
Let ExecuteHandle&=@GetModuleHandle(0) Handle of the Profan-exe
String ICONNAME#,0=Weg
Let Hicon&=@loadicon(Executehandle&,Iconname#) Get the handle of the icon weg
@ImageList_AddIcon(Imagelist&,HIcon&) put the icon into the imagelist
String ICONNAME#,0=Windows
Let Hicon&=@loadicon(Executehandle&,Iconname#) Get the handle of the icon windows
@ImageList_AddIcon(Imagelist&,HIcon&) put the icon into the imagelist
String ICONNAME#,0=Editor
Let Hicon&=@loadicon(Executehandle&,Iconname#) Get the handle of the icon editor
@ImageList_AddIcon(Imagelist&,HIcon&) put the icon into the imagelist
LET ComoBoxEx&=@Control(ComboBoxEx32,,$40000000+$10000000+$200000+$100000+2+$40,0,100,150,180,%HWND,2115,%HINSTANCE)
@Sendmessage(ComoBoxEx&,$402,0,Imagelist&)
dispose Iconname#
endif
ComBoBoxInsertEx Claudia,ComoBoxEx&,0,0,0 put the item Claudia with the icon weg into the combobox
ComBoBoxInsertEx Andreas,ComoBoxEx&,1,1,1 put the item Andreas with the icon windows into the combobox
ComBoBoxInsertEx Dennis,ComoBoxEx&,2,2,2 put the item Dennis with the icon editor into the combobox
While %Key<>2
Waitinput
Drawtext 0,0,@Gettext$(ComoBoxEx&)+@Space$(255)
Wend
@ImageList_Destroy(Imagelist&)
Dispose INITC#
|
| | | | |
| | Dieter Zornow | Bei mir werden keine Icons in der Box gezeigt, alles andere funktioniert
Windows XP home SP2, XProfan 10
gruß
Dieter |
| | | Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 18.02.2007 ▲ |
| |
| | | XProfan ist klar, da kann das nicht laufen wegen des Manifests! Es geht um 6.6. |
| | | | |
| | Dieter Zornow | Habe deinen Code mal abgeändert, dann läuft er auch unter Xprofan 10, habe nun gerade eben mit 6.6 getestet, damit funktioniert er auch im Original . Ich denke die COMCTL32.DLL hat jeder standardmäßig auf dem PC, sonst würde ja vieles in Windows nicht funktionieren, das muss nicht abgeprüft werden. Vielleicht wäre nur die Version interessant KompilierenMarkierenSeparierenDeclaring new functions for Profan² 6.6 through windows API
Def @InitCommonControlsEx(1) !COMCTL32,InitCommonControlsEx
DEF @ImageList_Create(5) !COMCTL32,ImageList_Create
DEF @ImageList_AddIcon(2) !COMCTL32,ImageList_AddIcon
DEF @ImageList_Destroy(1) !COMCTL32,ImageList_Destroy
DEF @GetModuleHandle(1) !KERNEL32,GetModuleHandleA
DEF @LoadIcon(2) ! USER32,LoadIconA
DEF @GetProcAddress(2) !KERNEL32,GetProcAddress
Declare INITC#,ComoBoxEx&,Imagelist&,Iconname#
Declare ExecuteHandle&,Hicon&,M_Present&
Declare Proc_Name#,MHandle&,M_NAME#
Declare CBTEXT#,CBINSERT#
This peace of code is for looking, if icons can be placed in ComboBox.
If InitCommonControlsEx doesnt exist in the system-dll COMCTL32.DLL, there is displayed
a normal combobox without icons
Proc ComBoBoxInsertEx
You can place other icons for selected items, but in the code it is not done (that why there are 3 icons)
Parameters Inserttext$,CBHandle&,Icon1&,Icon2&,Icon3&
DIM CBINSERT#,36
DIM CBTEXT#,256
Clear CBINSERT#
String CBTEXT#,0=Inserttext$
Long CBINSERT#,0=$1+$2+$4+$8
Long CBINSERT#,4=-1
Long CBINSERT#,8=CBTEXT#
Long CBINSERT#,12=Icon1&
Long CBINSERT#,16=Icon2&
Long CBINSERT#,20=Icon3&
@SendMessage(CBHandle&,$401,0,CBINSERT#)
Dispose CBINSERT#
Dispose CBTEXT#
EndProc
DIM INITC#,8
long INITC#,0=8
long INITC#,4=$4000
Windowstyle 31+512
Windowtitle ComboboxEx
Window 0,0-640,440
@InitCommonControlsEx(INITC#)
DIM Iconname#,256
Let Imagelist&=@ImageList_Create(16,16,$0001,3,3)create imagelist
Let ExecuteHandle&=@GetModuleHandle(0)Handle of the Profan-exe
String ICONNAME#,0=Weg
Let Hicon&=@loadicon(Executehandle&,Iconname#)Get the handle of the icon weg
@ImageList_AddIcon(Imagelist&,HIcon&)put the icon into the imagelist
String ICONNAME#,0=Windows
Let Hicon&=@loadicon(Executehandle&,Iconname#)Get the handle of the icon windows
@ImageList_AddIcon(Imagelist&,HIcon&)put the icon into the imagelist
String ICONNAME#,0=Editor
Let Hicon&=@loadicon(Executehandle&,Iconname#)Get the handle of the icon editor
@ImageList_AddIcon(Imagelist&,HIcon&)put the icon into the imagelist
LET ComoBoxEx&=@Control(ComboBoxEx32,,$40000000+$10000000+$200000+$100000+2+$40,0,100,150,180,%HWND,2115,%HINSTANCE)
@Sendmessage(ComoBoxEx&,$402,0,Imagelist&)
dispose Iconname#
ComBoBoxInsertEx Claudia,ComoBoxEx&,0,0,0put the item Claudia with the icon weg into the combobox
ComBoBoxInsertEx Andreas,ComoBoxEx&,1,1,1put the item Andreas with the icon windows into the combobox
ComBoBoxInsertEx Dennis,ComoBoxEx&,2,2,2put the item Dennis with the icon editor into the combobox
While %Key<>2
Waitinput
Drawtext 0,0,@Gettext$(ComoBoxEx&)+@Space$(255)
Wend
@ImageList_Destroy(Imagelist&)
Dispose INITC#
|
| | | Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 18.02.2007 ▲ |
| |
| | | Lies doch mal ganz oben - darum geht es nicht!
Warum der bei dir unter XProfan10 nicht läuft, dürfte wohl jedem klar sein - das liegt am Manifest (schau mal mit TNT nach). Es geht mir darum, ob der so wie der von mir gepostet wurde unter 6.6 nicht läuft. |
| | | | |
| | Dieter Zornow | Ich hatte das oben schon gepostet, wurde aber abgeschnitten. Unter 6.6 läuft er bei mir |
| | | Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 18.02.2007 ▲ |
| |
| | | Danke, das stellt mein Weltbild wieder her . |
| | | | |
| | Jörg Sellmeyer | Hallo Andreas, XP Pro, SP2, Profan 6.6: Es läuft und in der Combobox sind 3 Icons mit Namen zu sehen. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 18.02.2007 ▲ |
| |
| | | Danke, wunderbar. Test hat sich damit erledigt. |
| | | | |
|
AntwortenThemenoptionen | 596 Betrachtungen |
ThemeninformationenDieses Thema hat 3 Teilnehmer: |