Includes | | | | - Page 1 - |
| | there XProfan yet none Splitter has, Have I times the Docksplitter.dll of David SZAFRANSKI for XProfan gewrapped. The DLL is licensed under GPL.
so one Splitter can 2 before erstellte Controls zuordnen, where itself ListBoxen, Edits and ähnliches particularly suit. with the mouse can itself now The larger this both Controls change, or. by Mausclick too one integrally Hide. with the Umsetzung in the Hinterkopt Have I naturally a Implementation in XProfEdit
Snapschuß:
the pkg exists a very small DLL, of/ one Include-File, of/ one Header-File, as well as the supra abgebildeten example.
$I DockSplitter.inc
Declare DLLhWnd&
DllhWnd& = Splitter_Init()
Ifnot DllhWnd& : End : EndIf
Window Style 26
Window 100, 100 - 600, 400
Declare hList&, hEdit&, hSplitter&
hList& = Create(ListBox, %hWnd, , 0, 0, 0, 0)
WhileLoop 1, 10, 1
AddStrings(hList&, Test + @Str $(&Loop))
EndWhile
hEdit& = Create(MultiEdit, %hWnd, , 0, 0, 0, 0)
SetText hEdit&, this is one small first Test the DockSplitters!
hSplitter& = Create(Splitter, 0, 0, 600, 400)
Splitter_SetPanel(hSplitter&, hList&, hEdit&)
Splitter_SetPosition hSplitter&, 150
Declare end%
WhileNot end%
WaitInput
EndWhile
Splitter_Exit DllhWnd&
plenty Fun so |
| | | | |
| | | | | - Page 2 - |
| Frank Abbing | here another Splitter-Control, variable verschiebbar. Íst straight with of my derzeitigen Programming abgefallen and can slight on Own Gegebenheiten adjusted go:
{$cleq}
@Set(ErrorLevel,0)
Declare x&,y&,z&,Text$,xpiadll&
Declare listbox1&,listbox2&,splitter&
Def GetSysColor(1) !USER32,GetSysColor
xpiadll&=UseDll(xpia$)
Window Style 543
Window 0,0-640,480
Cls GetSysColor(15)
UseFont MS Sans Serif,13,0,0,0,0
SetDialogFont 1
splitter&=Create(Button,%hwnd,:,200,0,7,400)
listbox1&=Create(ListBox,%hwnd,0,0,0,200,400)
listbox2&=Create(ListBox,%hwnd,0,207,0,200,400)
ClearList
AddWindows
MoveListToList(listbox1&)
ClearList
AddFonts
MoveListToList(listbox2&)
If 0
AsmStart GeneriereDatas()
.data
point dd 0,0
split dd 0
profane dd 0
listbox1 dd 0
listbox2 dd 0
hWnd dd 0
uMsg dd 0
wParam dd 0
lParam dd 0
oldproc dd 0
.code
nop
AsmEnd
ASMSTART subclass noexport (x&,x&,x&,x&)
push eax
push ebx
push ecx
push edx
push edi
push esi
push ebp
push esp
m2m hWnd,para1
m2m uMsg,para2
m2m wParam,para3
m2m lParam,para4
.if uMsg == WM_LBUTTONDOWN
mov split,TRUE
invoke LoadCursor,0,IDC_SIZEWE
invoke SetCursor,eax
return 0
.elseif uMsg == WM_LBUTTONUP
mov split,FALSE
return 0
.endif
.if uMsg == WM_MOUSEMOVE
invoke LoadCursor,0,IDC_SIZEWE
invoke SetCursor,eax
.if split == TRUE
invoke GetCursorPos,addr point
invoke ScreenToClient,profane,addr point
lea esi,point
mov edi,[esi]
.if SDWORD PTR edi<0
mov edi,0
.endif
.if edi>400
mov edi,400
.endif
mov [esi],edi
lea esi,point
mov edi,[esi]
invoke MoveWindow,listbox1,0,0,edi,400,TRUE
lea esi,point
mov edi,[esi]
add edi,7
mov ebx,400
sub ebx,edi
add ebx,7
invoke MoveWindow,listbox2,edi,0,ebx,400,TRUE
lea esi,point
mov edi,[esi]
invoke MoveWindow,hWnd,edi,0,7,400,TRUE
.endif
return 0
.endif
pop esp
pop ebp
pop esi
pop edi
pop edx
pop ecx
pop ebx
pop eax
invoke CallWindowProc,oldproc,hWnd,uMsg,wParam,lParam
out:
ASMEND
EndIf
ASMSTART StartSubclassing(splitter&,%hwnd,listbox1&,listbox2&)
m2m profane,para2
m2m listbox1,para3
m2m listbox2,para4
invoke SetWindowLong,para1,GWL_WNDPROC,addr subclass
mov oldproc,eax
ASMEND
While 1
waitinput
Case %key=2:Break
EndWhile
DestroyWindow(%hwnd)
FreeDll xpiadll&
End
The same code here for User, The XPIA and XPSE not installs having (Why too always )
DECLARE XPIA_#,XPIA$,EXPIA&,X&,Y&,Z&,TEXT$,XPIADLL&,LISTBOX1&,LISTBOX2&,SPLITTER&
DIM XPIA_#,2560
CLEAR XPIA_#
LONG XPIA_#,0=9460301,3,4,65535,184
LONG XPIA_#,24=64
LONG XPIA_#,60=184,247078670,-855002112,1275181089,1750344141,1881174889,1919381362,1663069537,1869508193,1700929652,1853190688,544106784,542330692,1701080941,168627502,36
LONG XPIA_#,128=-1826774061,-1066155369,-1066155369,-1066155369,-1067326869,-1066155370,-1067393767,-1066155379,1751345490,-1066155369
LONG XPIA_#,184=17744,131404,1161521813
LONG XPIA_#,204=554565856,201654539,1536,512
LONG XPIA_#,224=4236,4096,8192,268435456,4096,512,4
LONG XPIA_#,256=4
LONG XPIA_#,264=12288,512
LONG XPIA_#,276=2,1048576,4096,1048576,4096
LONG XPIA_#,300=16,5200,118,4940,40
LONG XPIA_#,344=8192,132
LONG XPIA_#,400=4096,36
LONG XPIA_#,432=1297301837,12851,1222,4096,1536,512
LONG XPIA_#,468=-536870880,1818587694,25455,148,8192,512,2048
LONG XPIA_#,508=1107296320,5124,5106,5092,5078,5064,5048,5030,5136
LONG XPIA_#,652=-1192457387,1,836297,-2014834838,-16777214,93259893,268439588,-1895008769,1058821,276168464,271320463,1979650048,805670676,-15728624,93263989,268439604,-1893960193,1062917,544603920,272369039,1979650048,1074106148
LONG XPIA_#,740=-15728624,93268085,268439620,-1892911617,1067013,813039376,273417615,1979650048,1342541620,-15728624,93272181,268439636,-1891863041,1071109,1081474832,274466191,1438846976,-997987189,-62535684
LONG XPIA_#,820=-40984,-1010200321,-2081649835,1170734276,1276,-11868160,1397817343,1448563281,905925717,268439588,276301199,905908224,268439592,276563343,905908224,268439596,276825487,905908224,268439600,277087631,1031868416
LONG XPIA_#,904=268439676,513,96935541,268439656,1,8356968,-402626048,388,26273872,384499712,276577665,33689600,175439872,275252679,4096,1031864320,268439676,512,12813583,-2073559040,1778385023,21686272,-397410304,342,275266947
LONG XPIA_#,1004=251727872,42117,274753536,568856576,1744830465,268439648,275527167,703074304,-1929379839,1073205,-2093053168,92078335,191,-1862303488,1979711489,26263301,1049165824,274740621,1049300992,-1872232086,1459617793
LONG XPIA_#,1088=6946922,275789311,-471330816,-1929379840,1073205,-2093053168,-1866790969,721420289,130253791,-1872232086,1392508929,-11075478,1078325,12118032,898433024,268439648,23740043,102504,1778870784,905926400,268439672
LONG XPIA_#,1172=39400,1583176704,1532582495,-2076836008,-15728624,1081397,2083913488,-15728624,1079349,-2009727216,-401604592,86,1098441,-2081649835,1170734276,1276,-37820416,905969663,268439592,275514767,905908224,268439596
LONG XPIA_#,1260=275776911,905908224,268439600,276039055,1013452800,1779433489,607518716,-401604592,52,1083555,281200912,637520896,268439576,269755903,637472768,268439568,269231615,637472768,268439560,268707327,637472768,268439552
LONG XPIA_#,1348=270280191,-859041792,4980
LONG XPIA_#,1368=5154,4096
LONG XPIA_#,1396=5124,5106,5092,5078,5064,5048,5030,5136
LONG XPIA_#,1432=1852990827,842230885,1819042862,1245184,1819042115,1684957527,1917876079,4285295,1699152108,1920287604,1349676915,29551,1699152177,1937331060,1869377347,25165938,1684107084,1936880963,4289135,1867317672,1767335286
LONG XPIA_#,1516=2003788910,30998528,1701995347,1867804261,1701407811,29806,1699938803,1920287604,7499635,1699938845,1852397428,1282895716,1097297519,1937047552,842232421,1819042862,1684471808,775041897,7105636,1885434736,1818504809
LONG XPIA_#,1600=108
LONG XPIA_#,1620=1161521813
LONG XPIA_#,1628=5260,1,2,2,5240,5248,5256,4391,4808,5286,5301,65536,1819300703,1702130793,1866673522,1869771886,1852137324,1818504808,1699151980,1769104750,1147499109,1935766625,1635013376,1968403570,1634493282,1852404595,103
LONG XPIA_#,2048=4096,132,816656548,817836214,819015880,820195546,821375212,822554878,823734544,827863330,828649822,829436266,830222710,831009154,833761684,835203518,838218218,839266816,842150417,844182086,847000177,849556112
LONG XPIA_#,2136=850342569,851129013,853684956,854471400,855257844,856109823,857486097,858272546,859058990,859845434,13126
XPIA$=$TEMPDIR+/_Splitter-Control_enh.dll
FILEMODE 1
ASSIGN #1,XPIA$
OPENRW #1
BLOCKWRITE #1,XPIA_#,0,2560
CLOSERW #1
DISPOSE XPIA_#
@SET(ErrorLevel,0)
DEF GETSYSCOLOR(1) !USER32,GetSysColor
XPIADLL&=USEDLL(XPIA$)
WINDOWSTYLE 543
WINDOW 0,0-640,480
CLS GETSYSCOLOR(15)
USEFONT MS Sans Serif,13,0,0,0,0
SETDIALOGFONT 1
SPLITTER&=CREATE(Button,%HWND,:,200,0,7,400)
LISTBOX1&=CREATE(ListBox,%HWND,0,0,0,200,400)
LISTBOX2&=CREATE(ListBox,%HWND,0,207,0,200,400)
CLEARLIST
ADDWINDOWS
MOVELISTTOLIST(LISTBOX1&)
CLEARLIST
ADDFONTS
MOVELISTTOLIST(LISTBOX2&)
IF 0
EXTERNAL(XPIA$,GeneriereDatas)
ENDIF
EXTERNAL(XPIA$,StartSubclassing,SPLITTER&,%HWND,LISTBOX1&,LISTBOX2&)
WHILE 1
WAITINPUT
IF %KEY=2
BREAK
ENDIF
ENDWHILE
DESTROYWINDOW(%HWND)
FREEDLL XPIADLL&
END
as Splitter-Control serves one gesubclasster Button. |
| | | | |
| | Uwe ''Pascal'' Niemeier | Hello people!
we're already time thereby are...
window 50,50-700,500
declare ReBar&,ReBar#,Lb1&,Lb2&,Lb3&,a#
dim a#,16
Lb1&=create(listbox,%hwnd,,0,0,0,0)
Lb2&=create(listbox,%hwnd,,0,0,0,0)
Lb3&=create(listbox,%hwnd,,0,0,0,0)
clearlist
addwindows
movelisttolist(Lb1&)
clearlist
addfonts
movelisttolist(Lb2&)
clearlist
addfiles *.*
movelisttolist(Lb3&)
clear a#
long a#,0=8
long a#,4=$FFFF---everything initialisieren
external(comctl32.dll,InitCommonControlsEx,a#)
--Style: $50000000 | ~CCS_NORESIZE | ~RBS_FIXEDORDER
ReBar&=Control(ReBarWindow32,,$50000804 ,10,10,600,400,%hwnd,1,0)
struct ReBar=Size&,Mask&,Style&,clrFore&,clrBack&,lpText&,cch&,iImage&,hwndChild&,
cxMinChild&,cyMinChild&,cx&,hbmBack&,wID&,cyChild&,cyMaxChild&,cyIntegral&,
cxIdeal&,lParam&,cxHeader&
dim ReBar#,ReBar--REBARBANDINFO
clear ReBar#
with ReBar#
.Size&=sizeof(ReBar#)
.Mask&=$71------RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE | RBBIM_SIZE
.cyMaxChild&=1--must not zero his
.Style&=256------------------------RBBS_NOGRIPPER (1. volume without handle)
.cxMinChild&=5---------------------minimum wide
.cyMinChild&=height(ReBar&)--------Höhe the Bandes
.cx&=100---------------------------default wide
.hwndChild&=Lb1&-------------------volume 1
sendmessage(ReBar&,1025,0,ReBar#)--RB_INSERTBAND
.Style&=128------------------------RBBS_GRIPPERALWAYS (following bands with handle)
.cxMinChild&=50--------------------minimum wide
.cyMinChild&=200-------------------Höhe the Bandes
.cx&=300---------------------------default wide
.hwndChild&=Lb2&-------------------volume 2
sendmessage(ReBar&,1025,1,ReBar#)--RB_INSERTBAND
.cxMinChild&=10--------------------minimum wide
.cyMinChild&=300-------------------Höhe the Bandes
.hwndChild&=Lb3&-------------------volume 3
sendmessage(ReBar&,1025,2,ReBar#)--RB_INSERTBAND
endwith
while 1
waitinput
if sendmessage(ReBar&,1051,0,0) > height(ReBar&)--1051 = RB_GETBARHEIGHT
clear a#--Umklappen rückgängig, if Gripper to under pulled watts
sendmessage(ReBar&,1047,0,a#)--RB_SIZETORECT
endif
endwhile
though it Yes eigendlich into area CodeSnippets heard... but it fit hold strain about.
SeeYou Pascal |
| | | | |
| | | Wow the known I Yes not at all! this is simply super! |
| | | | |
| | | Beauty idea the ReBar so To *abuse* Have with ReBar not yet plenty made, because create is simply, but management not (if one it as Toolbar-substitute uses) |
| | | | |
| | Frank Abbing | ReBar down wander functions not yet integrally. The Controls vanish and are first at next Click again there. otherwise: Coole idea! |
| | | | |
| | Uwe ''Pascal'' Niemeier | Hello people!
[quote:a0651eeb8e]ReBar down wander functions not yet integrally. The Controls vanish and are first at next Click again there. [/quote:a0651eeb8e] with entsprechender attitude the ReBars go The bands (pages the Splitters) then among themselves displayed. About whom Style could I the yet not suppress, and Profan recognize The suitable Notify-Message not. in the Ernstfall helps there only SubClassing the Parents
integrally hairy becomes the with several ineinander verschachtelten horizontalen and vertikalen ReBars...
SeeYou Pascal |
| | | | |
| | Rolf Koch | Real genial! there can really feinste things with make. unfortunately I get soetwas How under in the Image not there, the would The enhancement schlechthin. means Yes, one should The Header with Bitmaps replace can. I versuchs time moreover, if soetwas with Rebar at all possible is.
window 50,50-700,500
USEFONT MS Sans Serif,13,0,0,0,0
SETDIALOGFONT 1
declare ReBar&,ReBar#,Lb1&,Lb2&,Lb3&,a#
dim a#,16
DECLARE a1&,b1&,c1&
DECLARE a2&,c1&,c2&,c3&
DECLARE a3&
Lb1&=create(Text,%hwnd,,0,0,0,0)
CREATE(TEXT,lb1&,Page 1,0013,0013,0130,0014)
a1& = CREATE(RADIOBUTTON,lb1&,Check Me Page 1 A,0013,0033,0120,0017)
a2& = CREATE(RADIOBUTTON,lb1&,Check Me Page 1 B,0013,0053,0120,0017)
a3& = CREATE(RADIOBUTTON,lb1&,Check Me Page 1 C,0013,0073,0120,0017)
Lb2&=create(Text,%hwnd,,0,0,0,0)
CREATE(TEXT,lb2&,Page 2,0013,0013,0130,0014)
b1& = CREATE(RADIOBUTTON,lb2&,Check Me Page 2 A,0013,0033,0120,0017)
b2& = CREATE(RADIOBUTTON,lb2&,Check Me Page 2 B,0013,0053,0120,0017)
b3& = CREATE(RADIOBUTTON,lb2&,Check Me Page 2 C,0013,0073,0120,0017)
Lb3&=create(Text,%hwnd,,0,0,0,0)
CREATE(TEXT,lb3&,Page 3,0013,0013,0130,0014)
c1& = CREATE(RADIOBUTTON,lb3&,Check Me Page 3 A,0013,0033,0120,0017)
c2& = CREATE(RADIOBUTTON,lb3&,Check Me Page 3 B,0013,0053,0120,0017)
c3& = CREATE(RADIOBUTTON,lb3&,Check Me Page 3 C ,0013,0073,0120,0017)
clear a#
long a#,0=8
long a#,4=$FFFF---everything initialisieren
external(comctl32.dll,InitCommonControlsEx,a#)
--Style: $50000000 | ~CCS_NORESIZE | ~RBS_FIXEDORDER
ReBar&=Control(ReBarWindow32,,$50000884 ,10,10,300,400,%hwnd,1,0)
struct ReBar=Size&,Mask&,Style&,clrFore&,clrBack&,lpText&,cch&,iImage&,hwndChild&,
cxMinChild&,cyMinChild&,cx&,hbmBack&,wID&,cyChild&,cyMaxChild&,cyIntegral&,
cxIdeal&,lParam&,cxHeader&
dim ReBar#,ReBar--REBARBANDINFO
clear ReBar#
with ReBar#
.Size&=sizeof(ReBar#)
.Mask&=$73 ------RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE | RBBIM_SIZE
.cyMaxChild&=1--must not zero his
.Style&=128------------------------RBBS_GRIPPERALWAYS (following bands with handle)
.cxMinChild&=5---------------------minimum wide
.cyMinChild&=height(ReBar&)--------Höhe the Bandes
.cx&=100---------------------------default wide
.hwndChild&=Lb1&-------------------volume 1
sendmessage(ReBar&,1025,0,ReBar#)--RB_INSERTBAND
sendmessage(ReBar&,2048,0,ReBar#)--RB_INSERTBAND
.Style&=128------------------------RBBS_GRIPPERALWAYS (following bands with handle)
.cxMinChild&=5--------------------minimum wide
.cyMinChild&=height(ReBar&)-------------------Höhe the Bandes
.cx&=100---------------------------default wide
.hwndChild&=Lb2&-------------------volume 2
sendmessage(ReBar&,1025,1,ReBar#)--RB_INSERTBAND
.cxMinChild&=5--------------------minimum wide
.cyMinChild&=height(ReBar&)-------------------Höhe the Bandes
.hwndChild&=Lb3&-------------------volume 3
sendmessage(ReBar&,1025,2,ReBar#)--RB_INSERTBAND
endwith
while 1
waitinput
if sendmessage(ReBar&,1051,0,0) > height(ReBar&)--1051 = RB_GETBARHEIGHT
clear a#--Umklappen rückgängig, if Gripper to under pulled watts
sendmessage(ReBar&,1047,0,a#)--RB_SIZETORECT
endif
endwhile
|
| | | | |
| | Rolf Koch | Wow, I habs. the Rebarteil can itself but well verarschen *lol* I bastel another bisschen and then lay I it time hierhin |
| | | | |
| | | | | | | |
| | | | - Page 3 - |
| | Rolf Koch | *lol* here my small idea and Umsetzung. [...]
Runs by me correct with the XProfan Version: 10.0ß-NT RC1. can me Yes time write, as naturally again elsewhere Problems power |
| | | | |
| | | Genial Rolf! the Result sees simply pointed from! |
| | | | |
| | Rolf Koch | means scheints still To walk - The Thanks counts vorallem on Pascal, there it here whom Grundstock supplied has. there can yet More draus make. |
| | | | |
|
AnswerTopic-Options | 20.256 Views |
Themeninformationenthis Topic has 8 subscriber: |