Fuente/ Codesnippets | | | | | Apéndice: Aktueller y mejor es esta Método: [...]
Flimmerfreie Fensterskalierung con Anpassung el daraufliegenden Elemente...
wohl una Problema welches fast todos XProfan haben. Wenn uno el fertigen Programas ansieht stellt uno siempre otra vez fest - el no umsonst a skalierbaren Ventana gespart se.
Der gemeine Profaner se o más weniger dazu bewegt una no-skalierbares Ventana a redactar - wobei lo hay en Erstellung auch erhebliche Qualitätsunterschiede son. Immer otra vez lugar Yo fest, daß Ventana con uno statischen Größe erstellt voluntad, wobei no beachtet se el el innere-Zona je después de Windowseinstellung en el Größe abweichen kann. Dies es aber una más Thema.
Hier nun mein Vorschlag: Ein Ventana (dlg) welches se flimmerfrei skalieren lässt - y el daraufliegenden Elemente se automáticamente (y inmediatamente) el neuen Größe adaptar. KompilierenMarcaSeparación {$cleq}
seterrorlevel 0
$U thread.pcu = thread.
declare dlg&,dir&,stat&,_dlgw&,_dlgh&,_odlgw&,_odlgh&
decimals 0
dlg&:=createwindow (%desktop,app ,100,100,640,480)
dir&:=createsortedlistbox(dlg&,,0,0,0,0)
stat&:=create(statuswindow,dlg&,Bereit.)
thread.start 1
whilenot (%key==2)
waitinput
wend
thread.stop 1
end
proc thread.do
parameters n&
if n&==1
_dlgw&:=width(dlg&);_dlgh&:=height(dlg&)
if ( ( _odlgw&<>_dlgw& ) or ( _odlgh&<>_dlgh& ) )
_odlgw&:=_dlgw&;_odlgh&:=_dlgh&
_redrw
endif
endif
endproc
proc _redrw
setwindowpos dir&=0,0 - width(dlg&),(height(dlg&)-height(stat&));0
setwindowpos stat&=0,0 - 0,0;0
ENDPROC
Salve, IF |
| 483 kB | | Kurzbeschreibung: | como Exe kompiliertes Ejemplo | | Hochgeladen: | 27.03.2005 | | Ladeanzahl: | | | | Descargar |
| | | | |
| | | Tiempo ne neuere Versión con Popupmenu-Unterstützung. KompilierenMarcaSeparación {$cleq}
seterrorlevel 0
$U thread.pcu = thread.
declare dlg&,dir&,stat&,_dlgw&,_dlgh&,_odlgw&,_odlgh&,hMenu&,hwin&
app.init
whilenot (%key==2)
waitinput
if (menuitem(100))
sendmessage(%hwnd,$10,0,0)
setmenuitem 0
elseif (menuitem(998))
enablewindow %hwnd,0
messagebox About,About,4096
enablewindow %hwnd,1
setmenuitem 0
elseif (menuitem(999))
enablewindow %hwnd,0
messagebox Info,Info,4096
enablewindow %hwnd,1
setmenuitem 0
endif
wend
app.kill
end
/* FUNCTIONS */
proc thread.do
parameters n&
if (n&==1)
_dlgw&:=width(dlg&);_dlgh&:=height(dlg&)
if ( ( _odlgw&<>_dlgw& ) or ( _odlgh&<>_dlgh& ) )
_odlgw&:=_dlgw&;_odlgh&:=_dlgh&
_redrw
endif
elseif (n&==2)
insertstring(hwin&,0,time$(0)+.+substr$(time$(1),1,.))
endif
endproc
proc _redrw
setwindowpos %hwnd=0,0 - width(dlg&),%CYMenu;0
setwindowpos hwin&=0,%CYMenu - width(dlg&),(height(dlg&)-height(stat&)-%CYMenu);0
setwindowpos stat&=0,0 - 0,0;0
endproc
proc app.init
proc createpmenu
windowtitle app
windowstyle 80
window 0,0-0,0
showwindow(%Hwnd,0)
popup Programm
appendmenu 100,&Beenden
popup &?
appendmenu 998,&About
Separator
appendmenu 999,&Help
external(USER32,SetParent,%hwnd,dlg&)
endproc
decimals 0
dlg&:=createwindow (%desktop,app ,100,100,640,480)
hwin&:=createlistbox(dlg&,,0,0,0,0)
stat&:=create(statuswindow,dlg&,Bereit.)
createpmenu
thread.start 1
thread.start 2,7
endproc
proc app.kill
thread.stop 2
thread.stop class=s2>1
ENDPROC
Tal vez schaffts sí alguien el PopupMenuunterstützung eleganter einzubetten.
Salve, IF |
| 484 kB | | Kurzbeschreibung: | como Exe kompiliertes Ejemplo | | Hochgeladen: | 27.03.2005 | | Ladeanzahl: | | | | Descargar |
| | | | |
| | | Das todo veces en Faktor Toolbar erweitert: KompilierenMarcaSeparación {$cleq}
seterrorlevel 0
$U thread.pcu = thread.
declare dlg&,dir&,stat&,_dlgw&,_dlgh&,_odlgw&,_odlgh&,hMenu&,hwin&,ftps&,ftpp&,ftpm&,_topspc&,hToolbar&,tdlg&
declare fnt1&
app.init
whilenot (%key==2)
waitinput
if (menuitem(100))
sendmessage(%hwnd,$10,0,0)
setmenuitem 0
elseif (menuitem(998))
enablewindow %hwnd,0
messagebox About,About,4096
enablewindow %hwnd,1
setmenuitem 0
elseif (menuitem(999))
enablewindow %hwnd,0
messagebox Info,Info,4096
enablewindow %hwnd,1
setmenuitem 0
elseif (menuitem(2001))
enablewindow %hwnd,0
messagebox Info,Info,4096
enablewindow %hwnd,1
setmenuitem 0
endif
wend
app.kill
end
/* FUNCTIONS */
proc thread.do
parameters n&
if (n&==1)
_dlgw&:=width(dlg&);_dlgh&:=height(dlg&)
if ( ( _odlgw&<>_dlgw& ) or ( _odlgh&<>_dlgh& ) )
_odlgw&:=_dlgw&;_odlgh&:=_dlgh&
_redrw
endif
elseif (n&==2)
insertstring(hwin&,0,time$(0)+.+substr$(time$(1),1,.))
endif
endproc
proc _redrw
setwindowpos %hwnd=0,0 - width(dlg&),(%CYMenu);0
_topspc&:=%winbottom-%wintop+48
setwindowpos tdlg&=0,%CYMenu - %maxx,48;0
setwindowpos htoolbar&=0,0 - width(tdlg&),height(tdlg&);0
if ( (height(dlg&)>150) and (width(dlg&)>150) )
setwindowpos ftpm&=(width(dlg&)-65),((height(dlg&)-height(stat&))-23) - 65,23;0
setwindowpos ftpp&=(width(dlg&)-130),((height(dlg&)-height(stat&))-23) - 65,23;0
else
setwindowpos ftpm&=0,0 - 0,0;0
setwindowpos ftpp&=0,0 - 0,0;0
endif
if (width(dlg&)>150)
setwindowpos ftps&=(width(dlg&)-130),_topspc& - 130,((height(dlg&)-height(stat&)-_topspc&)-height(ftpm&));0
setwindowpos hwin&=0,_topspc& - (width(dlg&)-130),(height(dlg&)-height(stat&)-_topspc&);0
else
setwindowpos ftps&=0,0-0,0;0
setwindowpos hwin&=0,_topspc& - (width(dlg&)),(height(dlg&)-height(stat&)-_topspc&);0
endif
setwindowpos stat&=0,0 - 0,0;0
showwindow (ftpm&,0)
showwindow (ftpp&,0)
showwindow (ftpm&,1)
showwindow (ftpp&,1)
endproc
proc app.init
proc createsubs
proc createpopupmenu
popup Programm
appendmenu 100,&Beenden
popup &?
appendmenu 998,&About
Separator
appendmenu 999,&Help
endproc
proc createtoolbar
hToolbar& = create(TOOLBAR,tdlg&,0,0,0,2000,-1)
Toolbar(separator,hToolBar&)
Toolbar(AddTextButton,hToolBar&,0,2001,Knopf 1,)
Toolbar(AddTextButton,hToolBar&,0,2002,Knopf 2,)
Toolbar(AddTextButton,hToolBar&,0,2003,Knopf 3,)
Toolbar(AddTextButton,hToolBar&,0,2004,Knopf 4,)
Toolbar(AddTextButton,hToolBar&,0,2005,Knopf 5,)
endproc
windowtitle app
windowstyle 80
window 0,0-0,0
createpopupmenu
createtoolbar
external(USER32,SetParent,%hwnd,dlg&)
endproc
decimals 0
fnt1&:=createfont(MS Sans Serif,10,0,0,0,0)
dlg&:=createwindow (%desktop,app ,100,100,640,480)
hwin&:=createlistbox(dlg&,,0,0,0,0)
ftps&:=createlistbox(dlg&,,0,0,0,0)
ftpp&:=createbutton(dlg&,Hinzufügen,0,0,0,0)
ftpm&:=createbutton(dlg&,Bearbeiten,0,0,0,0)
windowstyle 80
tdlg&:=createwindow(dlg&,,0,0,0,0)
external(USER32,SetParent,tdlg&,dlg&)
stat&:=create(statuswindow,dlg&,Bereit.)
setfont hwin&,fnt1&
setfont ftps&,fnt1&
setfont ftpp&,fnt1&
setfont ftpm&,fnt1&
createsubs
thread.start 1
thread.start 2,7
endproc
proc app.kill
thread.stop 2
thread.stop 1
lass=s4 href='./../../funktionsreferenzen/XProfan/deleteobject/'>deleteobject fnt1&
ENDPROC
|
| 485 kB | | Kurzbeschreibung: | como Exe kompiliertes Ejemplo | | Hochgeladen: | 27.03.2005 | | Ladeanzahl: | | | | Descargar |
| | | | |
|
Zum QuelltextThemeninformationenDieses Thema ha 1 subscriber: |