Français
Comprend

Docksplitter pour XProfan 10

 
- page 1 -


là XProfan bisher keinen Splitter hat, hab je fois le Docksplitter.dll de David SZAFRANSKI pour XProfan gewrapped. qui DLL ist lizensiert sous GPL.

So einem Splitter peux on 2 auparavant erstellte Controls zuordnen, wobei sich ListBoxen, Edits et ähnliches besonders eignen. avec qui souris läßt sich maintenant qui größer cette beiden Controls verändern, bzw. per Mausclick aussi une entier ausblenden. chez qui Umsetzung im Hinterkopt hab je naturellement une Implementation dans XProfEdit

Snapschuß:



cela paquet besteht aus einer très kleinen DLL, einer Include-Dossier, einer En-tête-Dossier, sowie dem dessus abgebildeten Beispiel.
 $I DockSplitter.inc
Déclarer DLLhWnd&
DllhWnd& = Splitter_Init()

Si non DllhWnd& : Fin : EndIf

    Fenêtre Style 26
    Fenêtre 100, 100 - 600, 400
    Déclarer hList&, hEdit&, hSplitter&
    hList& = Créer(ListBox, %hWnd, , 0, 0, 0, 0)

    WhileLoop 1, 10, 1

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

    Endwhile

    hEdit& = Créer(MultiEdit, %hWnd, , 0, 0, 0, 0)
    SetText hEdit&, ca ist un kleiner erster Test des DockSplitters!
    hSplitter& = Créer(Splitter, 0, 0, 600, 400)
    Splitter_SetPanel(hSplitter&, hList&, hEdit&)
    Splitter_SetPosition hSplitter&, 150
    Déclarer Ende%

    WhileNot Ende%

        WaitInput

    Endwhile

    Splitter_Exit DllhWnd&

Viel Amusement avec cela

30 kB
Kurzbeschreibung: Version 0.5
Hochgeladen:08.10.2006
Downloadcounter292
Download
 
08.10.2006  
 



 
- page 2 -



Frank
Abbing
ici encore un Splitter-Contrôle, variable verschiebbar. Íst justement chez meiner derzeitigen Programmation abgefallen et peux léger à eigene Gegebenheiten angepasst volonté:
 {$cleq}
@Set(ErrorLevel,0)
Déclarer x&,y&,z&,text$,xpiadll&
Déclarer listbox1&,listbox2&,splitter&
Def GetSysColor(1) !USER32,GetSysColor
xpiadll&=UseDll(xpia$)
Fenêtre Style 543
Fenêtre 0,0-640,480
Cls GetSysColor(15)
UseFont MS Sans Serif,13,0,0,0,0
SetDialogFont 1
splitter&=Créer(Button,%hwnd,:,200,0,7,400)
listbox1&=Créer(ListBox,%hwnd,0,0,0,200,400)
listbox2&=Créer(ListBox,%hwnd,0,207,0,200,400)
ClearList
AddWindows
MoveListToList(listbox1&)
ClearList
AddFonts
MoveListToList(listbox2&)

Si 0

    AsmStart GeneriereDatas()

        .data
        point       dd  0,0
        split       dd  0
        profan      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

        .si 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

        .si uMsg == WM_MOUSEMOVE

            invoke LoadCursor,0,IDC_SIZEWE
            invoke SetCursor,eax

            .si    split == TRUE

                invoke GetCursorPos,addr point
                invoke ScreenToClient,profan,addr point
                lea esi,point
                mov edi,[esi]

                .si SDWORD PTR edi<0

                    mov edi,0

                .endif

                .si 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
        raus:

    ASMEND

EndIf

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

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

ASMEND

Tandis que 1

    waitinput
    Cas %clé=2:Pause

Endwhile

DestroyWindow(%hwnd)
FreeDll xpiadll&
Fin

qui gleiche Code ici pour User, qui XPIA et XPSE pas installiert avons (pourquoi De toute façon )
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

comme Splitter-Contrôle dient un gesubclasster Button.
 
22.10.2006  
 




Uwe
''Pascal''
Niemeier
allô gens!

si wir déjà la fois dabei sommes...
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---Alles initialisieren
external(comctl32.dll,InitCommonControlsEx,a#)
--Stil: $50000000 | ~CCS_NORESIZE | ~RBS_FIXEDORDER
ReBar&=Contrôle(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 pas zéro son
    .Style&=256------------------------RBBS_NOGRIPPER (1. ruban sans Griff)
    .cxMinChild&=5---------------------Minimum Breite
    .cyMinChild&=height(ReBar&)--------Hauteur des Bandes
    .cx&=100---------------------------Vorgabe Breite
    .hwndChild&=Lb1&-------------------ruban 1
    sendmessage(ReBar&,1025,0,ReBar#)--RB_INSERTBAND
    .Style&=128------------------------RBBS_GRIPPERALWAYS (folgende Bänder avec Griff)
    .cxMinChild&=50--------------------Minimum Breite
    .cyMinChild&=200-------------------Hauteur des Bandes
    .cx&=300---------------------------Vorgabe Breite
    .hwndChild&=Lb2&-------------------ruban 2
    sendmessage(ReBar&,1025,1,ReBar#)--RB_INSERTBAND
    .cxMinChild&=10--------------------Minimum Breite
    .cyMinChild&=300-------------------Hauteur des Bandes
    .hwndChild&=Lb3&-------------------ruban 3
    sendmessage(ReBar&,1025,2,ReBar#)--RB_INSERTBAND

endwith

tandis que 1

    waitinput

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

        clear a#--Umklappen rückgängig, si Gripper pour unten gezogen wurde
        sendmessage(ReBar&,1047,0,a#)--RB_SIZETORECT

    endif

endwhile


quoique es oui eigendlich dans den Bereich CodeSnippets est... mais es passt arrêt grad zum Thema.

SeeYou
Pascal
 
24.10.2006  
 



Wow cela wusste je oui garnicht! c'est simple super!
 
24.10.2006  
 



belle concept cela ReBar so trop *mißbrauchen*
Hab avec ReBar encore pas viel gemacht, weil erstellen ist simple, mais Verwaltung pas (si on es comme Toolbar-Ersatz utilise)
 
24.10.2006  
 




Frank
Abbing
ReBar pour unten tirer funktioniert encore pas entier. qui Controls verschwinden et sommes seulement beim prochain Klick wieder là.
Ansonsten: Coole concept!
 
24.10.2006  
 




Uwe
''Pascal''
Niemeier
allô gens!

[quote-part:a0651eeb8e]ReBar pour unten tirer funktioniert encore pas entier. qui Controls verschwinden et sommes seulement beim prochain Klick wieder là. [/quote-part:a0651eeb8e]
chez entsprechender Einstellung des ReBars volonté qui Bänder (Seiten des Splitters) ensuite untereinander angezeigt.
Über den Stil konnte je cela bisher pas unterdrücken, et Profan erkennt qui entsprechende Notify-Message pas.
Im Ernstfall hilft là seulement SubClassing des Parents

entier haarig wird cela chez mehreren ineinander verschachtelten horizontalen et vertikalen ReBars...

SeeYou
Pascal
 
25.10.2006  
 




Rolf
Koch
vraie genial!
là peux on wirklich feinste Sachen avec faire. malheureusement bekomme je soetwas comment unten im Bild pas hin, cela wäre qui Steigerung schlechthin. Bedeutet oui, on devrait qui En-tête avec Bitmaps austauschen peut. je versuchs la fois plus, si soetwas avec Rebar überhaupt possible ist.
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---Alles initialisieren
external(comctl32.dll,InitCommonControlsEx,a#)
--Stil: $50000000 | ~CCS_NORESIZE | ~RBS_FIXEDORDER
ReBar&=Contrôle(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 pas zéro son
    .Style&=128------------------------RBBS_GRIPPERALWAYS (folgende Bänder avec Griff)
    .cxMinChild&=5---------------------Minimum Breite
    .cyMinChild&=height(ReBar&)--------Hauteur des Bandes
    .cx&=100---------------------------Vorgabe Breite
    .hwndChild&=Lb1&-------------------ruban 1
    sendmessage(ReBar&,1025,0,ReBar#)--RB_INSERTBAND
    sendmessage(ReBar&,2048,0,ReBar#)--RB_INSERTBAND
    .Style&=128------------------------RBBS_GRIPPERALWAYS (folgende Bänder avec Griff)
    .cxMinChild&=5--------------------Minimum Breite
    .cyMinChild&=height(ReBar&)-------------------Hauteur des Bandes
    .cx&=100---------------------------Vorgabe Breite
    .hwndChild&=Lb2&-------------------ruban 2
    sendmessage(ReBar&,1025,1,ReBar#)--RB_INSERTBAND
    .cxMinChild&=5--------------------Minimum Breite
    .cyMinChild&=height(ReBar&)-------------------Hauteur des Bandes
    .hwndChild&=Lb3&-------------------ruban 3
    sendmessage(ReBar&,1025,2,ReBar#)--RB_INSERTBAND

endwith

tandis que 1

    waitinput

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

        clear a#--Umklappen rückgängig, si Gripper pour unten gezogen wurde
        sendmessage(ReBar&,1047,0,a#)--RB_SIZETORECT

    endif

endwhile


 
07.11.2006  
 




Rolf
Koch
Wow, je habs. cela Rebarteil peut sich mais bien verarschen *lol*
je bastel encore un bisschen et ensuite lege je es la fois hierhin
 
07.11.2006  
 



@Rolf RC1? oO
 
07.11.2006  
 



 
- page 3 -



Rolf
Koch
*lol* ici mon kleine concept et Umsetzung.
[...] 

Läuft chez mir einwandfrei avec qui XProfan Version: 10.0ß-NT RC1.
pouvez mir oui la fois écrivons, comme naturellement wieder la fois woanders Probleme pouvoir
 
07.11.2006  
 



Genial Rolf! cela Result sieht simple spitze aus!
 
07.11.2006  
 




Rolf
Koch
alors scheints doch trop courir - qui Dank gilt vorallem à Pascal, là il ici den Grundstock geliefert hat. là peux on encore plus draus faire.
 
07.11.2006  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

20.884 Views

Untitledvor 0 min.
Gast.081506.09.2024
Rc31.01.2022
Jörg Sellmeyer23.06.2020
jacdelad20.12.2018
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie