Forum | | | | - page 1 - |
| Rolf Koch | Huhu gens,
aujourd'hui hab je la fois ne Frage: Hat einer ne concept: @Contrôle(STATIC,txt$,$54000106,x%,y%,breit%,hoch%,fenster&,$7918,%HINSTANCE) là liegen Edits sur elle. Logischerweise peux je cet pas avec qui Tabtaste anspringen. Logisch, car c'est ne...aucune Dialog et je peux diesem partie keinen 512il Wert mettons. aussi un Exwert $200 funktioniert pas. je besoin cela partie mais. malheureusement klappt es avec Getkeystate(9) aussi pas. Ist arrêt blöde, si on pas avec qui Tabtaste entre den Edits hin et herspringen peux. Hab alles versucht.
mais, habe encore un bisschen espoir , là rien unmöglich ist.
Rolf |
| | | | |
| | | | | - page 2 - |
| Uwe ''Pascal'' Niemeier | allô Rolf!
Il convient plusieurs Gruppen de Elementen sur einmal un- ou bien ausgeblendet volonté (z.B. chez Reiterwechsel dans einem Tab-Contrôle)?
comment wäre es avec rahmenlosen Dialogen statt Statics?
peut-être pourrait on qui Statics aussi einem Subclassing unterziehen, si seulement qui Nebenwirkungen pas wären...
SeeYou Pascal |
| | | | |
| | Rolf Koch | Hi Pascal,
oui wäre aussi une Possibilité, si on so simple et joli comment un Static den Dialogen de Hause aus une weisse Hintergrundfarbe donner pourrait. de Hause aus = per Stil et seulement pas per Startpaint - EndPaint *würg*
Rolf |
| | | | |
| | | Rolf - tu es doch avec qui Fil.pcu vertraut - pourquoi prends qui pas pour - qui mais est comment pour geschaffen. je peux Dir naturellement aussi un kleines demo pour liefern.
Salve, iF |
| | | | |
| | Rolf Koch | Hi Si,
bien sûr suis je avec cela vertraut, sogar très intim alors meinste là Neuzeichnen? je hatte extra *würg* chez Startpaint geschrieben. je hasse Startpaint et EndPaint. absolu fastidieux
mais comment dit: prenons uns dem Thema später nochmals à, là es im Moment doch pas so important ist. Es sei car un anderer intéressé sich weiterhin pour qui Fragestellung - ausser Startpaint LOL Rolf |
| | | | |
| | Jörg Sellmeyer | allô Rolf, comment wäre es car so:
Cls dlg&=Createdialog(%hwnd...) Static&=Control(Static,dlg&,....) sur cet Static un Bitmap avec Handle pratiquer la magie, allez oui aussi avec Bitmap aus grenier. un 1 x 1 Pixel reicht oui déjà pour une weißen Hintergrund Button&=CreateButton(%dlg,...)
So la hâte Du qui Controls sur dem Dialog et cela Static gibt Dir den weißen Hintergrund Salut Jörg |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 07.02.2005 ▲ |
| |
| | Rolf Koch | merci aussi Dir pour qui Antwort.
cependant oui c'est ca so (ähnlich sieht es oui aus). je suis un Staticfetischist et daher arbeite je seulement avec Bitmaps sur Statics. je besoin ne...aucune Bitmap sur dem Staticteil. là je per Stil cela Staticcontrol dans weiss färbe. Brauche alors encore pas la fois un Pixel Grafik. alors: Contrôle(STATIC,txt$,$54000106,x%,y%,breit%,hoch%,fenster&,$10000,%HINSTANCE) wäre weiss = Whiterect ou bien 54000105 = Grayrect ou bien 54000104 = Blackrect. tu vois, und dir oui aussi sans Bitmap. je schätze tu as malheureusement mon Frage pas verstanden. comment je quoi erstelle et so plus ist oui bien sûr . Schätzungsweise la hâte Du seulement plus unten angefangen trop lesen, là sieht es pour einem anderen Problem aus . und dir lediglich um cela Problem sur Statics erstellten Edits qui Tabtaste abzufragen.
Abgesehen en bleibt dans diesem le cas toujours cela Problem
mon Erstellung:
Dialog erstellen Static sur elle (dans weisem Stil) Controls sur elle et schätzungsweise gibt es aucun Solution pour cela Problem, es sei den per Sous-classe., qui on qui Tabtaste là dans den Editfeldern ansprechen peux.
mais comment dit: pouvoir Euch maintenant pas fou. Muss arrêt maintenant d'abord quoi d'autre programmieren.
[quote-part:1267241905] Cls dlg&=Createdialog(%hwnd...) Static&=Control(Static,dlg&,....) sur cet Static un Bitmap avec Handle pratiquer la magie, allez oui aussi avec Bitmap aus grenier. un 1 x 1 Pixel reicht oui déjà pour une weißen Hintergrund Button&=CreateButton(%dlg,...) [/quote-part:1267241905] Jo pourrait je connaître - so travailler ROC, NOCTRAMIC (très viel) et quelques meiner Beispielcodes doch.
Rolf |
| | | | |
| | | Moin Rolf, je encore la fois....
la fois regarder, si je toi jusqu'alors richtig verstanden habe: So large es du déjà... KompilierenMarqueSéparationDeclare Static&,Edits&[5],fenster&,Focus%,txt$
WINDOWSTYLE 31
WINDOWTITLE "STATIC Control und Tabtaste",TXT$
Window 0,0-640,440
LET FENSTER&=@Control("Dialog","",$54000000,10,10,210,300,%HWND,$7917,%hinstance)
LET TXT$="Test"
LET STATIC&=@Control("STATIC",txt$,$54000106,0,0,210,300,fenster&,$7918,%hinstance,$10000)
LET EDITs&[1]=@CREATEEDIT(STATIC&,"",10,10,200,25)
LET EDITs&[2]=@CREATEEDIT(STATIC&,"",10,50,200,25)
LET EDITs&[3]=@CREATEEDIT(STATIC&,"",10,90,200,25)
LET EDITs&[4]=@CREATEEDIT(STATIC&,"",10,130,200,25)
LET EDITs&[5]=@CREATEEDIT(STATIC&,"",10,170,200,25)
@SETFOCUS(EDITs&[1])
LET FOCUS%=1
Whilenot %MENUITEM=-2
Waitinput
WEND
qui SKCONTROL.DLL habe je maintenant la fois weggelassen - avec cela kenne je mich pas aus - WS_TABSTOP ici nachträglich dans qui Controls einzufügen pourrait mais eigentlich ne...aucune Problem son - ou bien doch? quelle Probleme la hâte du avec dem Dialog comme Untergrund, pourquoi soll qui weg, et quelle Probleme gibt es avec WINDOWSTYLE 512?
|
| | | | |
| | Rolf Koch | Hi AH,
jo komischerweise klappt là maintenant qui Tabtaste. je hatte aussi $10000 pris. peut-être liegt es maintenant doch seulement encore à den SKEdits. mais wirklich bien so. peut-être peux je es oui ensuite (si je là weitermache) so umsetzen. et peut-être. den SKControls den Stile beibringen.
Thx Rolf |
| | | | |
| | Michael Dell | Salut,
hab aussi encore un Beispiel avec WS_EX_CONTROLPARENT, weis allerdings pas si cela avec den SKEdits aussi fonctionne: KompilierenMarqueSéparationBitte tabulator Taste betätigen
Def GSC(1) !"USER32.DLL","GetSysColor"
Declare dlg1&,st1&,txt1&,ed1&,ed2&,ed3&,tst&
WindowStyle 538
Cls
dlg1& = Create("Dialog",%HWnd,"Test Dialog - Bitte tabulator Taste betätigen",40,40,400,300)
st1& = Control("Static","Dies ist ein Test!",$54010106,40,40,200,150,dlg1&,$10001,%HInstance,$050080) WS_EX_CONTROLPARENT =$050080
st1& = Control("Static","Dies ist ein Test!",$54010106,40,120,200,150,%HWnd,$10001,%HInstance,$050080) WS_EX_CONTROLPARENT =$050080
txt1& = Create( "Text",st1&,"Dies ist ein Test!",10, 10,180, 16)
ed1& = Create( "Edit",st1&, "Edit 1",10, 40,180, 18)
ed2& = Create( "Edit",st1&, "Edit 2",10, 70,180, 18)
ed3& = Create( "Edit",st1&, "Edit 3",10,100,180, 18)
Sleep 1000
ShowWindow(st1&,0)
Sleep 1000
ShowWindow(st1&,1)
WhileNot Or(Equ(%Key,2),Equ(%MenuItem,-2))
WaitInput
EndWhile
DestroyWindow(dlg1&)
Fin
Salut
Michael... |
| | | Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 08.02.2005 ▲ |
| |
| | Rolf Koch | oui, Michael, klappt aussi bestens! Comme je le disais: ensuite hängt es de (avec Tab u.s.w) einem anderen facteur ab. Werde ensuite nochmals detailiert chercher, pourquoi ca pas so allez. mais peut-être ca va oui so maintenant avec den Beispielen, viens seulement pas en supplément trop testen
Rolf |
| | | | |
| | CB | Hi,
voudrais Euch allen remercier - vous avez mir très geholfen, un Problem trop beseitigen. Im Prinzip gings à gleiche Ausgangssituation comment chez Rolf - seulement avec Tabcontrols. comment cela avec SKControls allez, peux je Dir malheureusement aussi pas dire, je schätze mais, Sebastian wird là sûrement quoi tricksen peut. aussi si Euch cela aucun neuen Erkenntnisse apporter wird, schicke je la fois mon Konstruktion (cela primär fixierte 1. Tab ist zwar une wilde Konstruktion, en supplément habe je de Frank et Pascal aussi autre Lösungen bekommen, mais cet ist arrêt de mir - je schmücke mich eh bien la fois seulement ungern avec fremden Federn): KompilierenMarqueSéparationDEF SetWindowLong(3) ! "User32","SetWindowLongA"
DEF GetWindowLong(2) ! "User32","GetWindowLongA"
DEF &WM_CLOSE $010
DEF &WM_COMMAND $0111
DEF &TCM_SETITEMSIZE $01329
DEF &TCS_FIXEDWIDTH 1024
DEF &TCM_GETITEMCOUNT $01304
DEF &GWL_STYLE -16
DEF MakeLong(2) Or(&(1),&(2)<<16)
DEF GetSysColor(1) !"USER32","GetSysColor"
UserMessages &WM_COMMAND,&WM_CLOSE
Declare Ende&,TabControl&,TabItems&,AllTabsBut&,AktivesTab&,Ende&,Tab2&
Declare EditTab1&,EditTab2_1&,EditTab2_2&,EditTab3&,EditTab4&,EditTab5&,EditTab6&
Declare Control1&,Control2&,Control3&,Text1&
PROC TAB1AKTIV
ShowWindow(AllTabsBut&,1)
ShowWindow(Control1&,1)
ENDPROC
PROC TAB1INAKTIV
ShowWindow(AllTabsBut&,0)
ShowWindow(Control1&,0)
ENDPROC
PROC TAB2AKTIV
ShowWindow(Control2&,1)
ENDPROC
PROC TAB2INAKTIV
ShowWindow(Control2&,0)
ENDPROC
PROC TAB3AKTIV
ShowWindow(Control3&,1)
ENDPROC
PROC TAB3INAKTIV
ShowWindow(Control3&,0)
ENDPROC
PROC TAB4AKTIV
ShowWindow(EditTab4&,1)
ENDPROC
PROC TAB4INAKTIV
ShowWindow(EditTab4&,0)
ENDPROC
PROC TAB5AKTIV
ShowWindow(EditTab5&,1)
ENDPROC
PROC TAB5INAKTIV
ShowWindow(EditTab5&,0)
ENDPROC
PROC TAB6AKTIV
ShowWindow(EditTab6&,1)
ENDPROC
PROC TAB6INAKTIV
ShowWindow(EditTab6&,0)
ENDPROC
WindowStyle 538
Cls
TabControl& = Create("TABCTRL",%hwnd,"TAB 1",0,0,width(%HWND),height(%HWND))
Tab2& = InsertTab(TabControl&,1,"TAB 2")
InsertTab(TabControl&,2,"TAB 3")
InsertTab(TabControl&,3,"TAB 4")
InsertTab(TabControl&,4,"TAB 5")
InsertTab(TabControl&,5,"TAB 6")
SetWindowLong(TabControl&,&GWL_STYLE,OR(GetWindowLong(TabControl&,&GWL_STYLE),$0440))
TabItems& = 1
SendMessage(TabControl&,&TCM_SETITEMSIZE,0,MakeLong(Width(TabControl&),20))
==== Elemente Tab 1 ====
Control1& = Control("Static","",$50000006,20,30,600,410,%HWND,1001,%hInstance,$050080)
EditTab1& = Create("Edit",Control1&,"Edit in Control 1",50,50,150,19)
Text1& = Create("Text",Control1&,"Dzt. ist nur Tab 1 sichtbar",170,325,170,15)
AllTabsBut& = Create("Button",%HWND,"Show all tabs",50,350,100,20) gesonderte Behandlung, deswegen dem Hauptfenster zugeordnet
==== Elemente Tab 2 ====
Control2& = Control("Static","",$50000006,25,50,250,200,%HWND,2001,%hInstance,$09)
Control2& = Control("Static","",$50010106,25,50,250,200,%HWND,2001,%hInstance,$050080) WS_EX_CONTROLPARENT =$050080
EditTab2_1& = Create("Edit",Control2&,"Edit 1 in Control 2",50,100,150,19)
EditTab2_2& = Create("Edit",Control2&,"Edit 2 in Control 2",50,125,150,19)
==== Elemente Tab 3 ====
Control3& = Control("Static","",$50000007,30,90,250,200,%HWND,3001,%hInstance,$050080)
EditTab3& = Create("Edit",Control3&,"Edit in Control 3",50,150,150,19)
==== Elemente Tab 4 ====
EditTab4& = Create("Edit",%HWND,"Normales Tab 4",50,200,150,19)
==== Elemente Tab 5 ====
EditTab5& = Create("Edit",%HWND,"Normales Tab 5",50,250,150,19)
==== Elemente Tab 6 ====
EditTab6& = Create("Edit",%HWND,"Normales Tab 6",50,300,150,19)
TAB1AKTIV
TAB2INAKTIV
TAB3INAKTIV
TAB4INAKTIV
TAB5INAKTIV
TAB6INAKTIV
AktivesTab& = GetActiveTab(Tabcontrol&)
AktivesTab& = 0
EnableWindow Tabcontrol&,0
PROC TABS_erweitern
EnableWindow Tabcontrol&,1
WindowStyle erweitern um feste Breite (alle Tabreiter sind gleich breit)
SetWindowLong(TabControl&,&GWL_STYLE,OR(GetWindowLong(TabControl&,&GWL_STYLE),OR(&TCS_FIXEDWIDTH,$0440)))
Anzahl der Tabreiter ermitteln
TabItems& = SendMessage(TabControl&,&TCM_GETITEMCOUNT,0,0)
Breite und Hoehe setzen (Par1 bei MakeLong ist die Breite, Par2 bei Makelong ist die Höhe)
SendMessage(TabControl&,&TCM_SETITEMSIZE,0,MakeLong(Width(TabControl&)/TabItems&,20))
AktivesTab& = 0
ShowWindow(Text1&,0)
ENDPROC
Whilenot Ende&
Waitinput
AktivesTab& = GetActiveTab(Tabcontrol&) Ermittelt das selektierte Tab
If %UMessage = &WM_CLOSE
Ende& = 1
ElseIf %UMessage = &WM_COMMAND
If &ULParam = AllTabsBut&
TABS_erweitern
TAB1INAKTIV
TAB2AKTIV
TAB3INAKTIV
TAB4INAKTIV
TAB5INAKTIV
TAB6INAKTIV
TAB1AKTIV das kapier ich zwar nicht so ganz, aber es geht nur so,
TAB2INAKTIV sonst wird der Inhalt von Tab1 nicht gleich angezeigt!
ShowWindow(AllTabsBut&,0)
EndIf
EndIf
If tabchanged(TabControl&) Tab gewechselt?
If AktivesTab& = 0
TAB1AKTIV
ShowWindow(AllTabsBut&,0)
TAB2INAKTIV
TAB3INAKTIV
TAB4INAKTIV
TAB5INAKTIV
TAB6INAKTIV
ElseIf AktivesTab& = 1
TAB1INAKTIV
TAB2AKTIV
TAB3INAKTIV
TAB4INAKTIV
TAB5INAKTIV
TAB6INAKTIV
ElseIf AktivesTab& = 2
TAB1INAKTIV
TAB2INAKTIV
TAB3AKTIV
TAB4INAKTIV
TAB5INAKTIV
TAB6INAKTIV
ElseIf AktivesTab& = 3
TAB1INAKTIV
TAB2INAKTIV
TAB3INAKTIV
TAB4AKTIV
TAB5INAKTIV
TAB6INAKTIV
ElseIf AktivesTab& = 4
TAB1INAKTIV
TAB2INAKTIV
TAB3INAKTIV
TAB4INAKTIV
TAB5AKTIV
TAB6INAKTIV
ElseIf AktivesTab& = 5
TAB1INAKTIV
TAB2INAKTIV
TAB3INAKTIV
TAB4INAKTIV
TAB5INAKTIV
TAB6AKTIV
/a>
EndIf
Endwhile
Fin
Salut, Christian |
| | | | |
| | | | - page 3 - |
| | Michael Dell | Salut,
à Tac- Controls Schraub je aussi grad rum, ici qui aktuelle Stand: KompilierenMarqueSéparationHier ein Beispiel wie man etwas einfacher die manchmal zahlreichen Controls auf Tabs umschalten kann!!!!
für jedes Tab gib es eine Basis-Static die den gesammten nutzbaren Bereich ausfüllt erst hierauf und nicht
auf dem eigenlichen Tab-Control werden alle anderen Controls eingerichtet
Def GSC(1) !"USER32.DLL","GetSysColor"
Def gSelTab(1) SendMessage(&(1),$130B,0,0) aktuelles Tab ermitteln
Def sSelTab(2) SendMessage(&(1),$130C,&(2),0) neues Tab setzen
Declare tbc1&,stbc&[5],LastAcT&
Proc ChangeActTab
Parameters TabNr&
sSelTab(tbc1&,TabNr&)
SetFocus(tbc1&)
ShowWindow(stbc&[LastAcT&],0) Deaktivieres zuletzt aktives Tab (Das Basis-Static für dieses Tab!!)
ShowWindow(stbc&[TabNr&],1) Aktiviere das nun aktive Tab (Das Basis-Static für dieses Tab!!)
LastAcT& = TabNr&gSelTab(tbc1&) Welches Tab ist nun Aktiv? (z.B.: durch anklicken)
EndProc
WindowStyle 538
Window Add(%maxX,10),0-640,480 Fenster ausserhalb erstellen
Cls GSC(15)
Aufbau der gesammten Tab-Controls und deren Kinder
tbc1& = Control( "SysTabControl32","",$50010001,220, 20,400,360, %HWnd,$a9000,%HInstance,$010000)Tab-Control erzeugen
InsertTab(tbc1&,0,"Eins") Erstes Tab anlegen
InsertTab(tbc1&,1,"Zwei") weiteres Tab anlegen
InsertTab(tbc1&,2,"Drei") weiteres Tab anlegen
InsertTab(tbc1&,3,"Vier") weiteres Tab anlegen
stbc&[0] = Control( "STATIC", "",$50010006, 2, 24,396,334, tbc1&,$a9001,%HInstance,$010000)Basis-Static für Tab0
Control( "STATIC","Tabulatortaste",$50000000, 20, 50,140, 18,stbc&[0],$a9001,%HInstance)Textfeld für Tab0
Control( "EDIT", "A",$50010000, 20, 80,140, 20,stbc&[0],$a9001,%HInstance,$010200)Edit für Tab0
Control( "EDIT", "B",$50010000, 20,110,140, 20,stbc&[0],$a9001,%HInstance,$010200)Edit für Tab0
Control( "EDIT", "C",$50010000, 20,140,140, 20,stbc&[0],$a9001,%HInstance,$010200)Edit für Tab0
ShowWindow(stbc&[0],0) Basis-Static für Tab0 deaktivieren
stbc&[1] = Control( "STATIC", "",$50010006, 2, 24,396,334, tbc1&,$a9002,%HInstance,$010000)Basis-Static für Tab1
Control( "STATIC","Tabulatortaste",$50000000, 20, 50,140, 18,stbc&[1],$a9002,%HInstance)Textfeld für Tab1
Control("ListBox", "",$50010000, 20, 80,140,120,stbc&[1],$a9002,%HInstance,$010200)ListBox für Tab1
ShowWindow(stbc&[1],0) Basis-Static für Tab1 deaktivieren
stbc&[2] = Control( "STATIC", "",$50010006, 2, 24,396,334, tbc1&,$a9003,%HInstance,$010000)Basis-Static für Tab2
Control( "STATIC", "Text zu 3",$50000000, 20, 50,140, 18,stbc&[2],$a9003,%HInstance)Textfeld für Tab2
Control( "EDIT", "D",$50010000, 20, 80,140, 20,stbc&[2],$a9003,%HInstance,$010200)Edit für Tab0
ShowWindow(stbc&[2],0) Basis-Static für Tab2 deaktivieren
stbc&[3] = Control( "STATIC", "",$50010006, 2, 24,396,334, tbc1&,$a9004,%HInstance,$010000)Basis-Static für Tab3
Control( "STATIC", "Text zu 4",$50000000, 20, 50,140, 18,stbc&[3],$a9004,%HInstance)Textfeld für Tab3
Control( "EDIT", "F",$50010000, 20, 80,140, 20,stbc&[3],$a9004,%HInstance,$010200)Edit für Tab0
ShowWindow(stbc&[3],0) Basis-Static für Tab3 deaktivieren
LastAcT& = gSelTab(tbc1&) speichern des zuletzt aktiven Tabs!
ShowWindow(stbc&[LastAcT&],1) dessen Basis-Static aktivieren
Window 0,0-640,480 Fenster in den sichtbaren Bereich
WhileNot Or(Equ(%Key,2),Equ(%MenuItem,-2)) warte auf Beenden (X)
WaitInput
Case TabChanged(tbc1&): ChangeActTab(gSelTab(tbc1&)) Wenn Tabs verändert, Anzeige aktuallisieren
EndWhile
DestroyWindow(tbc1&) Zerstöre Tab-Control und alle Kinder
f='./../../references-fonction/XProfan/end/'>Fin
Nachtrag: Kleine amélioration - 09.02.05 / 3:10
Salu
Michael... |
| | | Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 08.02.2005 ▲ |
| |
|
répondreOptions du sujet | 6.179 Views |
Themeninformationencet Thema hat 8 participant: |