Español
Incluye

Docksplitter para XProfan 10

 
- Página 1 -


Como XProfan bisher no Splitter ha, tener Yo veces el Docksplitter.dll de David SZAFRANSKI para XProfan gewrapped. El DLL es lizensiert bajo GPL.

So una Splitter puede ser 2 vorher erstellte Controls zuordnen, wobei se ListBoxen, Edits y ähnliches besonders eignen. Mit ratón läßt se ahora el größer dieser beiden Controls verändern, o. por Mausclick auch eins bastante ausblenden. En Umsetzung en el Hinterkopt tener Yo natürlich una Implementation en XProfEdit

Snapschuß:



Das Paket besteht de uno muy pequeño DLL, uno Incluir-Expediente, uno Encabezamiento-Expediente, sowie el oben abgebildeten Ejemplo.
 $I DockSplitter.inc
Declarar DLLhWnd&
DllhWnd& = Splitter_Init()

Caso negativo DllhWnd& : End : EndIf

    Ventana de Estilo 26
    Ventana 100, 100 - 600, 400
    Declarar hList&, hEdit&, hSplitter&
    hList& = Crear(ListBox, %hWnd, , 0, 0, 0, 0)

    WhileLoop 1, 10, 1

        AddStrings(hList&, Test  + @Str$(&Loop))

    EndWhile

    hEdit& = Crear(MultiEdit, %hWnd, , 0, 0, 0, 0)
    SetText hEdit&, Dies es una kleiner erster Test des DockSplitters!
    hSplitter& = Crear(Splitter, 0, 0, 600, 400)
    Splitter_SetPanel(hSplitter&, hList&, hEdit&)
    Splitter_SetPosition hSplitter&, 150
    Declarar Ende%

    Sinestar encargado Ende%

        WaitInput

    EndWhile

    Splitter_Exit DllhWnd&

Viel Spaß así

30 kB
Kurzbeschreibung: Versión 0.5
Hochgeladen:08.10.2006
Ladeanzahl292
Descargar
 
08.10.2006  
 



 
- Página 2 -



Frank
Abbing
Hier todavía una Splitter-Control, variabel verschiebbar. Íst gerade en meiner derzeitigen Programación abgefallen y kann ligeramente a propio Gegebenheiten adaptado voluntad:
 {$cleq}
@Conjunto(ErrorLevel,0)
Declarar x&,y&,z&,texto$,xpiadll&
Declarar listbox1&,listbox2&,splitter&
Def GetSysColor(1) !USER32,GetSysColor
xpiadll&=UseDll(xpia$)
Ventana de Estilo 543
Ventana 0,0-640,480
Cls GetSysColor(15)
UseFont MS Sans Serif,13,0,0,0,0
SetDialogFont 1
splitter&=Crear(Button,%hwnd,:,200,0,7,400)
listbox1&=Crear(ListBox,%hwnd,0,0,0,200,400)
listbox2&=Crear(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
        profano      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
            volver 0

        .elseif uMsg == WM_LBUTTONUP

            mov    split,FALSE
            volver 0

        .endif

        .if uMsg == WM_MOUSEMOVE

            invoke LoadCursor,0,IDC_SIZEWE
            invoke SetCursor,eax

            .if    split == TRUE

                invoke GetCursorPos,addr point
                invoke ScreenToClient,profano,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

            volver 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
        fuera:

    ASMEND

EndIf

ASMSTART StartSubclassing(splitter&,%hwnd,listbox1&,listbox2&)

    m2m profano,para2
    m2m listbox1,para3
    m2m listbox2,para4
    invoke SetWindowLong,para1,GWL_WNDPROC,addr subclass
    mov oldproc,eax

ASMEND

Mientras que 1

    waitinput
    Case %key=2:Romper

EndWhile

DestroyWindow(%hwnd)
FreeDll xpiadll&
End

Der gleiche Code hier para User, el XPIA y XPSE no installiert haben (por qué De todos modos )
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&
FIN

Als Splitter-Control dient una gesubclasster Button.
 
22.10.2006  
 




Uwe
''Pascal''
Niemeier
¡Hola Personas!

Wenn wir ya veces esta son...
window 50,50-700,500
declarar 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---Alles inicializar
external(comctl32.dll,InitCommonControlsEx,a#)
--Stil: $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--Darf no Null ser
    .Style&=256------------------------RBBS_NOGRIPPER (1. Band sin Griff)
    .cxMinChild&=5---------------------Minimum Breite
    .cyMinChild&=height(ReBar&)--------Höhe des Bandes
    .cx&=100---------------------------Vorgabe Breite
    .hwndChild&=Lb1&-------------------Band 1
    sendmessage(ReBar&,1025,0,ReBar#)--RB_INSERTBAND
    .Style&=128------------------------RBBS_GRIPPERALWAYS (folgende Bänder con Griff)
    .cxMinChild&=50--------------------Minimum Breite
    .cyMinChild&=200-------------------Höhe des Bandes
    .cx&=300---------------------------Vorgabe Breite
    .hwndChild&=Lb2&-------------------Band 2
    sendmessage(ReBar&,1025,1,ReBar#)--RB_INSERTBAND
    .cxMinChild&=10--------------------Minimum Breite
    .cyMinChild&=300-------------------Höhe des Bandes
    .hwndChild&=Lb3&-------------------Band 3
    sendmessage(ReBar&,1025,2,ReBar#)--RB_INSERTBAND

endwith

mientras que 1

    waitinput

    if sendmessage(ReBar&,1051,0,0) > height(ReBar&)--1051 = RB_GETBARHEIGHT

        clear a#--Umklappen rückgängig, si Gripper después de unten elaborado wurde
        sendmessage(ReBar&,1047,0,a#)--RB_SIZETORECT

    endif

endwhile


Obwohl lo sí eigendlich en el Zona CodeSnippets gehört... Aber lo passt sólo grad para Thema.

SeeYou
Pascal
 
24.10.2006  
 



Wow el wusste Yo sí garnicht! Es simplemente super!
 
24.10.2006  
 



Schöne Concepto el ReBar así a *mißbrauchen*
Hab con ReBar todavía no viel gemacht, porque redactar es simplemente, aber Verwaltung no (si uno lo como Toolbar-Ersatz nutzt)
 
24.10.2006  
 




Frank
Abbing
ReBar después de unten ziehen funktioniert todavía no bastante. El Controls verschwinden y son sólo beim nächsten Clic otra vez como.
Ansonsten: Coole Concepto!
 
24.10.2006  
 




Uwe
''Pascal''
Niemeier
¡Hola Personas!

[quote:a0651eeb8e]ReBar después de unten ziehen funktioniert todavía no bastante. El Controls verschwinden y son sólo beim nächsten Clic otra vez como. [/quote:a0651eeb8e]
En entsprechender Einstellung des ReBars voluntad el Bänder (Páginas des Splitters) entonces untereinander adecuado.
Über el Stil podría Yo el bisher no unterdrücken, y Profano erkennt el entsprechende Notify-Message no.
Im Ernstfall hilft como sólo SubClassing des Parents

Ganz haarig se en el más ineinander verschachtelten horizontalen y vertikalen ReBars...

SeeYou
Pascal
 
25.10.2006  
 




Rolf
Koch
Real genial!
Como puede ser wirklich feinste Sachen con hacer. Leider bekomme Yo soetwas como unten en el Bild no hin, el wäre el Steigerung schlechthin. Bedeutet sí, uno debería el Encabezamiento con Bitmaps austauschen puede. Yo versuchs veces más, si soetwas con Rebar überhaupt posible es.
window 50,50-700,500
USEFONT MS Sans Serif,13,0,0,0,0
SETDIALOGFONT 1
declarar ReBar&,ReBar#,Lb1&,Lb2&,Lb3&,a#
dim a#,16
DECLARE a1&,b1&,c1&
DECLARE a2&,c1&,c2&,c3&
DECLARE a3&
Lb1&=create(texto,%hwnd,,0,0,0,0)
CREATE(TEXT,lb1&,Página 1,0013,0013,0130,0014)
a1&    = CREATE(RADIOBUTTON,lb1&,Check Me Página 1 A,0013,0033,0120,0017)
a2&    = CREATE(RADIOBUTTON,lb1&,Check Me Página 1 B,0013,0053,0120,0017)
a3&    = CREATE(RADIOBUTTON,lb1&,Check Me Página 1 C,0013,0073,0120,0017)
Lb2&=create(texto,%hwnd,,0,0,0,0)
CREATE(TEXT,lb2&,Página 2,0013,0013,0130,0014)
b1&    = CREATE(RADIOBUTTON,lb2&,Check Me Página 2 A,0013,0033,0120,0017)
b2&    = CREATE(RADIOBUTTON,lb2&,Check Me Página 2 B,0013,0053,0120,0017)
b3&    = CREATE(RADIOBUTTON,lb2&,Check Me Página 2 C,0013,0073,0120,0017)
Lb3&=create(texto,%hwnd,,0,0,0,0)
CREATE(TEXT,lb3&,Página 3,0013,0013,0130,0014)
c1&    = CREATE(RADIOBUTTON,lb3&,Check Me Página 3 A,0013,0033,0120,0017)
c2&    = CREATE(RADIOBUTTON,lb3&,Check Me Página 3 B,0013,0053,0120,0017)
c3&    = CREATE(RADIOBUTTON,lb3&,Check Me Página 3 C ,0013,0073,0120,0017)
clear a#
long a#,0=8
long a#,4=$FFFF---Alles inicializar
external(comctl32.dll,InitCommonControlsEx,a#)
--Stil: $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--Darf no Null ser
    .Style&=128------------------------RBBS_GRIPPERALWAYS (folgende Bänder con Griff)
    .cxMinChild&=5---------------------Minimum Breite
    .cyMinChild&=height(ReBar&)--------Höhe des Bandes
    .cx&=100---------------------------Vorgabe Breite
    .hwndChild&=Lb1&-------------------Band 1
    sendmessage(ReBar&,1025,0,ReBar#)--RB_INSERTBAND
    sendmessage(ReBar&,2048,0,ReBar#)--RB_INSERTBAND
    .Style&=128------------------------RBBS_GRIPPERALWAYS (folgende Bänder con Griff)
    .cxMinChild&=5--------------------Minimum Breite
    .cyMinChild&=height(ReBar&)-------------------Höhe des Bandes
    .cx&=100---------------------------Vorgabe Breite
    .hwndChild&=Lb2&-------------------Band 2
    sendmessage(ReBar&,1025,1,ReBar#)--RB_INSERTBAND
    .cxMinChild&=5--------------------Minimum Breite
    .cyMinChild&=height(ReBar&)-------------------Höhe des Bandes
    .hwndChild&=Lb3&-------------------Band 3
    sendmessage(ReBar&,1025,2,ReBar#)--RB_INSERTBAND

endwith

mientras que 1

    waitinput

    if sendmessage(ReBar&,1051,0,0) > height(ReBar&)--1051 = RB_GETBARHEIGHT

        clear a#--Umklappen rückgängig, si Gripper después de unten elaborado wurde
        sendmessage(ReBar&,1047,0,a#)--RB_SIZETORECT

    endif

endwhile


 
07.11.2006  
 




Rolf
Koch
Wow, Yo habs. Das Rebarteil lässt se aber bien verarschen *lol*
Yo bastel todavía una bisschen y luego lege Yo veces hierhin
 
07.11.2006  
 



@Rolf RC1? oO
 
07.11.2006  
 



 
- Página 3 -



Rolf
Koch
*lol* Hier mi kleine Concepto y Umsetzung.
[...] 

Läuft en me einwandfrei con el XProfan Versión: 10.0ß-NT RC1.
Könnt me sí veces escribir, como natürlich otra vez veces woanders Problemas macht
 
07.11.2006  
 



Genial Rolf! Das Result sieht simplemente spitze de!
 
07.11.2006  
 




Rolf
Koch
also scheints doch a laufen - Der Dank gilt vorallem a Pascal, como él hier el Grundstock geliefert ha. Como puede ser todavía mehr draus hacer.
 
07.11.2006  
 




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

20.882 Views

Untitledvor 0 min.
Gast.081506.09.2024
Rc31.01.2022
Jörg Sellmeyer23.06.2020
jacdelad20.12.2018
Más...

Themeninformationen



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