Forum | | | | - Seite 1 - |
| Jac de Lad | Schaut euch mal den folgenden Screenshot an, ist das ein Windows XP-Problem? Oder liegts an Profan? Kann man irgendwie beheben (Hintergrundfarbe für Buttons etc. transparent oder so...
Jac |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 01.01.2006 ▲ |
| |
| | | | - Seite 2 - |
| | Uwe ''Pascal'' Niemeier | Hallo Jac!
Wäre es nicht einfacher, beim TabControl einfach den XP-Stil abzuschalten?
SeeYou Pascal |
| | | | |
| | Jac de Lad | @Pascal: Naja, das stimmt, aber ich wollte den Stil ja behalten, sieht sonst blöde aus...
@Frank: Beispiel kommt gleich!
Jac |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 25.08.2006 ▲ |
| |
| | | Also wenn ich auf Tabcontrols Text darstellen muß nehme ich meistens Drawtext. Damit das mit dem Redraw klappt nutze ich den Fastmode und reagiere halt selbst auf das Neuzeichnen. |
| | | | |
| | Jac de Lad | Hier der Quelltext: KompilierenMarkierenSeparierenDef Setactivetab(2) Sendmessage(&(1),$130C,&(2),0)
subproc Create.Trackbar
Parameters hwnd&,style&,x%,y%,dx%,dy%
Style:
0=horizontal,2=vertikal
$10=Keine Ticks,0=Ticks
Return Control("msctls_trackbar32","",$54010020+style&,x%,y%,dx%,dy%,hwnd&,1003,%hInstance,$020000)
endproc
proc SetTrackPos
Parameters handle&,pos%
SendMessage(handle&,$405,1,pos%)
endproc
proc SetTrackRange
Parameters handle&,min%,max%
SendMessage(handle&,$406,1,min% | (max%*65536))
endproc
proc TC
declare at%
at%=GetActiveTab(tab&)
ShowWindow(dm&,Equ(at%,0))
ShowWindow(sp&,Equ(at%,0))
ShowWindow(pt&,Equ(at%,1))
ShowWindow(pg&,Equ(at%,1))
ShowWindow(tm&,Equ(at%,0))
ShowWindow(it&,Equ(at%,0))
ShowWindow(zv&,Equ(at%,1))
ShowWindow(ign&,Equ(at%,0))
ShowWindow(tar&,Equ(at%,1))
ShowWindow(tars&,Equ(at%,1))
ShowWindow(ind&,Equ(at%,1))
ShowWindow(idx&,Equ(at%,1))
ShowWindow(date&,Equ(at%,1))
ShowWindow(dt&,Equ(at%,1))
ShowWindow(dtf&,Equ(at%,1))
ShowWindow(rec&,Equ(at%,2))
ShowWindow(comp&,Equ(at%,2))
ShowWindow(compt&,Equ(at%,2))
ShowWindow(compo&,Equ(at%,2))
ShowWindow(mark&,Equ(at%,0))
ShowWindow(mask&,Equ(at%,0))
ShowWindow(erase&,Equ(at%,1))
ShowWindow(bsize&,Equ(at%,1))
ShowWindow(crc&,Equ(at%,1))
ShowWindow(sort&,Equ(at%,0))
ShowWindow(idc&,Equ(at%,1))
ShowWindow(idt&,Equ(at%,1))
endproc
proc options
declare dm&,idt&,idc&,sp&,pt&,pg&,tm&,it&,zv&,tab&,p$,dlg&,ign&,tar&,tars&,ind&,idx&,date&,dt&,dtf&,rec&,comp&,compt&,compo&,mark&,mask&,erase&,bsize&,crc&,ok&,std&,abb&,sort&
EnableWindow %HWnd,0
dlg&=Create("Dialog",%HWnd,"Einstellungen",0,0,0,0)
ShowWindow(dlg&,0)
SetWindowPos dlg&=(%MaxX-424)/2,((%MaxY-404)/2)-424,404
tab&=Create("TabCtrl",dlg&,"Anzeige",8,8,400,324)
InsertTab(tab&,1,"Kopieroptionen")
InsertTab(tab&,2,"Rekompression")
dm&=Create("Text",dlg&,"Dateimaske:",16,48,96,18)
mask&=Create("Edit",dlg&,"Dateien",160,44,240,24)
it&=Create("Text",dlg&,"Ignorierte Laufwerke (z.B. AbXyz):",16,80,240,18)
ign&=Create("Edit",dlg&,"AbXyz",240,76,160,24)
mark&=Create("Checkbox",dlg&,"Neue Dateien automatisch markieren",16,108,280,18)
SetCheck mark&,1
sp&=Create("Text",dlg&,"Sortierreihenfolge:",16,136,240,18)
sort&=Create("Choicebox",dlg&,0,132,132,260,240)
AddString(sort&,"Nach Dateiname (mit Pfad)")
AddString(sort&,"Nach Dateiname (ohne Pfad)")
AddString(sort&,"Nach Datum (neuste zuerst)")
AddString(sort&,"Nach Datum (älteste zuerst)")
AddString(sort&,"Nach Größe (kleinste zuerst)")
AddString(sort&,"Nach Größe (größte zuerst)")
AddString(sort&,"Nach Dateiendung")
AddString(sort&,"Nicht übertragene zuerst (+Pfad)")
AddString(sort&,"Nicht übertragene zuerst (+Name)")
sendmessage(sort&,$14E,4,0)
zv&=Create("Text",dlg&,"Zielverzeichnis:",16,48,240,18)
tars&=Create("Button",dlg&,"Suchen",160,44,80,24)
tar&=Create("Edit",dlg&,"C:",240,44,160,24)
date&=Create("CheckBox",dlg&,"Unterverzeichnis mit aktuellem Datum anlegen:",16,76,320,18)
SetCheck date&,1
dtf&=Create("Text",dlg&,"Datumsformat:",16,108,240,18)
EnableWindow dtf&,1
dt&=Create("ChoiceBox",dlg&,0,160,104,240,160)
whileloop 0,5
case Neq(&Loop,4):AddString(dt&,Date$(&Loop))
wend
sendmessage(dt&,$14E,1,0)
EnableWindow dt&,1
ind&=Create("Checkbox",dlg&,"Dateien indizieren, Index:",16,140,156,18)
SetCheck ind&,1
idx&=Create("Edit",dlg&,"44",176,136,64,24)
SetStyle idx&,$50012080
EnableWindow idx&,1
idt&=Create("Text",dlg&,"Stellen:",292,140,64,18)
EnableWindow idt&,1
idc&=Create("Edit",dlg&,"6",336,136,64,24)
EnableWindow idc&,1
SetStyle idc&,$50012080
erase&=Create("Checkbox",dlg&,"Dateien nach Übertragung löschen",16,168,240,18)
SetCheck erase&,1
pt&=Create("Text",dlg&,"Genauere Fortschrittsanzeige Schnellere Übertragung",16,192,382,18)
bsize&=create("Trackbar",tab&,0,8,202,382,44)
SetTrackRange bsize&,10,20
SetTrackPos bsize&,15
pg&=Create("Text",dlg&,"Schnellere CRC-Erstellung Genauere Erkennung",16,260,382,18)
crc&=create("Trackbar",tab&,0,8,270,382,44)
SetTrackRange crc&,10,17
SetTrackPos crc&,12
rec&=Create("Checkbox",dlg&,"Dateien neu komprimieren",16,48,240,18)
SetCheck rec&,1
compt&=Create("Text",dlg&,"Kompression:",16,72,160,18)
EnableWindow compt&,1
comp&=Create("Edit",dlg&,"8",232,68,40,24)
EnableWindow comp&,1
compo&=Create("Checkbox",dlg&,"Andere Bildformate in JPEG konvertieren",16,96,360,18)
SetCheck compo&,1
EnableWindow compo&,1
ok&=Create("Button",dlg&,"OK",8,340,96,24)
abb&=Create("Button",dlg&,"Abbrechen",112,340,96,24)
std&=Create("Button",dlg&,"Standard",296,340,96,24)
SetActiveTab(tab&,1)
TC
SetActiveTab(tab&,0)
TC
ShowWindow(dlg&,1)
while 1
EnableWindow dtf&,GetCheck(date&)
EnableWindow dt&,GetCheck(date&)
EnableWindow idx&,GetCheck(ind&)
EnableWindow idt&,GetCheck(ind&)
EnableWindow idc&,GetCheck(ind&)
EnableWindow compt&,GetCheck(rec&)
EnableWindow comp&,GetCheck(rec&)
EnableWindow compo&,GetCheck(rec&)
case TabChanged(tab&):TC
waitinput
if Clicked(std&)
sendmessage(dt&,$14E,0,0)
sendmessage(sort&,$14E,0,0)
SetText mask&,""
SetText ign&,""
SetCheck date&,0
SetCheck ind&,0
SetCheck erase&,0
SetCheck rec&,0
SetText comp&,"8"
SetCheck compo&,0
SetCheck mark&,1
SetTrackPos bsize&,20
SetTrackPos crc&,17
SetText idc&,"6"
elseif Clicked(tars&)
p$=ChooseDir$("Zielverzeichnis wählen")
casenot %IOResult:SetText tar&,p$
elseif Clicked(ok&)
Break
elseif Or(Clicked(abb&),Equ(%Key,2))
Break
endif
wend
DestroyWindow(dlg&)
EnableWindow %HWnd,1
endproc
cls
UseFont "Sagoe UI",15,0,0,0,0
Setdialogfont 1
options
Print "Ich warte..."
waitinput
@iF: Mit der TControl.dll hats wunderbar geklappt, nur leider ist mein Prog, in dem ich die verwendet hab weg und ich habe keine Anleitung... |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 25.08.2006 ▲ |
| |
| | Michael Wodrich | Sieht ohne XP-Style doch Klasse aus.
Schalte mal um - moment...
Arrrggggg - jetzt weiß ich, warum der bei mir abgeschaltet ist.
Da hilft wohl wirklich nur eine Umstellung auf die Property-Sheets.
Mal schauen...
Schöne Grüße Michael Wodrich |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 25.08.2006 ▲ |
| |
| | Jac de Lad | | | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 25.08.2006 ▲ |
| |
| | Frank Abbing | Hier der originale Quellcode zur Dll. Ich denke, der ist ziemlich selbsterklärend: KompilierenMarkierenSeparierenSetTrueColor 1
Declare fadll&,x&,y&,text$,farbe&,listbox&,choicebox&,tab&,memhwnd&,text&
Def GetSysColor(1) !"USER32","GetSysColor"
Def LoadIcon(2) !"USER32","LoadIconA"
Def GetWindowLong(2) !"USER32","GetWindowLongA"
Def SetWindowLong(3) !"USER32","SetWindowLongA"
Def GetPix(3) !"GDI32","GetPixel"
Def GetDC(1) !"USER32","GetDC"
DEF TC_Init(2) !"TControl.dll","TC_Init"
DEF TC_Include(6) !"TControl.dll","TC_Include"
DEF TC_Remove(1) !"TControl.dll","TC_Remove"
fadll&=usedll("TControl.dll")
WindowStyle 543
WindowTitle "Transparente Controls mit der TControl.dll, © 2005 Frank Abbing."
Window 0,0-600,440
Cls GetSysColor(4)
SendMessage(%hwnd,$80,1,LoadIcon(0,32517)) WM_SetIcon Application Icon setzen
Usefont "MS Sans Serif",10,0,0,0,0
SetDialogFont 1
text&=Create("TEXT",%hwnd,"",20,20,540,360)
tab&=Create("TABCTRL",text&,"Reiter 1",0,0,540,360)
InsertTab(tab&,1,"Reiter 2")
InsertTab(tab&,2,"Reiter 3")
x&=GetDC(tab&)
x&=GetPix(x&,8,80)
MCLS %maxx,%maxy
StartPaint -1
Cls x&
EndPaint
Create("CHECKBOX",text&,"Checkbox",48,52,120,24)
Create("RADIOBUTTON",tab&,"Radiobutton",48,80,120,24)
Create("Groupbox",tab&,"ChildWindow",32,32,200,84)
Create("Edit",text&,"Editier mich.",32,128,200,24)
listbox&=Create("Listbox",text&,"",32,160,200,144)
Whileloop 24
text$="Das ist Eintrag Nr. "
text$=text$+Str$(&loop)
@AddString(listbox&,text$)
EndWhile
choicebox&=Create("Choicebox",text&,"",32,320,200,64)
Whileloop 8
text$="Text Nr. "
text$=text$+Str$(&loop)
@AddChoice(choicebox&,text$)
EndWhile
SendMessage(choicebox&,$14e,0,0)
text$="Das hier ist ein statischer Text,
Static-Control oder auch
Text-Control genannt."
Create("TEXT",text&,text$,264,52,200,56)
text$="Und ein Multiedit, geeignet für schnelle Texteingabe. Bietet Platz für bis zu 32768 Zeilen Text. Das reicht in den meisten Fällen für viele Anwendungen."
Create("Multiedit",text&,text$,264,116,200,-64)
Create("Button",tab&,"Drück mich",264,116+64+16,80,24)
StartPaint -1
x&=%HDC2
EndPaint
TC_Init(%hwnd,%hdc2)
TC_Init(text&,x&)
RePaint
WhileNot 0
WaitInput
Case %key=2:BREAK
EndWhile
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Das gesubclasste Fenster muss vor Beenden von Hand zerstört werden.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DestroyWindow(tab&)
DestroyWindow(%hwnd)
freedll fadll&
end
|
| | | | |
| | Jac de Lad | Hm,
aber wozu sind die Befehle TC_Include und TC_Remove da? |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 25.08.2006 ▲ |
| |
| | Frank Abbing | Ach so. Vergiss die beiden Funktionen. Die waren mal als Erweiterung geplant, werden aber nicht benutzt. Wenn du sie aufrufst, passiert nichts. |
| | | | |
| | Jac de Lad | Ich vergess die ganze DLL: Mit der DLL gehts zwar so recht und schlecht, aber Trackbars und SpinEdits werden falsch angezeigt und mit ShowWindow() klappts auch nicht immer...ich setze den Style für Tabcontrols einfach zurück und gut. |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 26.08.2006 ▲ |
| |
| | Frank Abbing | Genau das war der Grund für die Einstellung der Dll. |
| | | | |
| | Jac de Lad | | | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 26.08.2006 ▲ |
| |
|
AntwortenThemenoptionen | 2.844 Betrachtungen |
ThemeninformationenDieses Thema hat 5 Teilnehmer: |