Source/ Codesnippets | | | | - page 1 - |
| Pedro Santos | allô Roland
Wird es dans XProfan10 chez Loadfile cela bmps Preview dabei son?
Gruss
Pedro |
| | | | |
| | « cette Beitrag wurde comme Solution gekennzeichnet. » | | Jörg Sellmeyer | Repariert...
window 10,10-700,500
$H Messages.ph
$H Windows.ph
proc OpenFileHook'-------------------------------OpenFileHook----------------------------
parameters dlg&,msg&,wparam&,lparam&
cas Status%:return 1'-----Ansicht muss seulement einmal angepasst volonté
casenot msg&=~WM_NOTIFY:return 1
si long(lparam&,8)=-603'---chez Init existieren DefView et LV encore pas!
Status%=1
DefView&=~FindWindowEx(~GetParent(dlg&),0,"SHELLDLL_DefView",»)
sendmessage(DefView&,~WM_COMMAND,$702D,0)'--Undokumentierte Message
endif
return 1
endproc---------------------------------------------------------------------------------
proc LoadPicDialog'------------------------------LoadPicDialog---------------------------
parameters Pfad$,Titel$,nom$
declare ofn#,Result$,Result&
declare DefView&,Status%'------Variablen pour Hook
nom$=nom$+"\z*.bmp;*.jpe;*.jpeg;*.jpg;*.gifzz"'--filtre (chez besoin anpassen)
dim ofn#,88+256'---------------Struktur (Win2000/NT/XP) + Puffer
clear ofn#
long ofn#,0=88'----------------Grösse Struktur pour GetOpenFileName (76 pour Win9x)
long ofn#,4=%hwnd'-------------übergeordnetes la fenêtre
long ofn#,12=addr(nom$)'------filtre/Typ
long ofn#,28=ofn#+88'----------Beginn Puffer
long ofn#,32=255'--------------Puffergrösse
long ofn#,44=addr(Pfad$)'------Anfangspfad
long ofn#,48=addr(Titel$)'-----Titel
long ofn#,52=$880024'----------Flags
long ofn#,68=procaddr(OpenFileHook,4)
Result&=external("COMDLG32","GetOpenFileNameA",ofn#)
Result$=string$(ofn#,88)
casenot Result&:Result$=\
procaddr("OpenFileHook",-4)
dispose ofn#
return Result$
endproc'---------------------------------------------------------------------------------
imprimer LoadPicDialog(»,"Bitte Bild wählen","Bild")
waitkey
|
| | | | | |
| | Pedro Santos | allô
je Frage simple nochmal.????
merci
Gruss
Pedro |
| | | | |
| | | Hm quoi ist hiermit? [...] |
| | | | |
| | | Pour cela Schönmachen es mais Du zuständig.
ici je habs la fois zusammengeballert là ego aussi intéressant fand: KompilierenMarqueSéparation {$cleq}
seterrorlevel -1
set(Fastmode,1)
Def GetOpenFileName(1) ! COMDLG32, GetOpenFileNameA
Def CommDlgExtendedError(0) ! COMDLG32, CommDlgExtendedError
Def Mm(3) !KERNEL32, RtlMoveMemory
declare h&,dc&,xx&,yy&,bwidth&,__mem#,preview.lastImg$
dim __mem#,12//(long)hwnd, id, code
clear __mem#
bwidth&=external(USER32,GetSystemMetrics,7)// borderwidth
print Multiloadfile()
dispose __mem#
waitkey
end
proc hook
parameters _hWnd&,_Msg&,_wparam&,_lparam&
if _msg&==272//init
h&=external(USER32,GetParent,_hWnd&)
dc&=external(USER32,GetDC,h&)
xx&=width(h&)
yy&=height(h&)
external(USER32,SetWindowPos,h&,0,0,0,xx&+bwidth&+220,yy&+bwidth&,20)
_wparam&=createblackframe(h&,,xx&+10,0,1,yy&)
elseif _msg&==2//kill
elseif _msg&==78//notify -602
declare l&
l&=addr(__mem#)
mm(l&,_lparam&,12)
if long(__mem#,8)==-602
preview getfname(1125,h&)
endif
endif
return _msg&
endproc
proc preview
parameters fle$
case instr(*,fle$) : return
if fileexists(fle$)
fle$=lower$(fle$)
if right$(fle$,4)==.bmp
if (preview.lastImg$<>fle$)
preview.lastImg$=fle$
startpaint h&
loadsizedbmp fle$,xx&+20,5 - 190,(yy&-15-%cycaption);0
endpaint
endif
endif
settext h&,Öffnen von q+fle$+q
elseif direxists(fle$)
settext h&,Öffnen von q+fle$+q
endif
endproc
proc getfname
parameters msg&,h&
declare s$
s$=space$(260)
sendmessage(h&,msg&,260,addr(s$))
return trim$(s$)
endproc
Proc Multiloadfile
Parameters title$,fmask$,drive$
Declare mem#,fle$
Dim mem#,8100
fmask$=Bitmap-Dateien (*.bmp)z*.bmpzz
Clear mem#
Long mem#,0=76
Long mem#,4=Getactivewindow()
Long mem#,8=%Hinstance
Long mem#,12=Addr(fmask$)
Long mem#,28=mem#+100
Long mem#,32=8000
Long mem#,44=Addr(drive$)
Long mem#,48=Addr(title$)
Long mem#,52=( 4 | 2 | 32 | 524288 )
Long mem#,68=procaddr(hook,4)
Getopenfilename(mem#)
if Commdlgextendederror()
Dispose mem#
return 0
endif
fle$=String$(mem#,100)
Dispose mem#
Retour fle$
ENDPROC
si Dir BMP ensuite doch pas reicht ensuite ist es simple avec qui neuen GDI-Unit autre Bildformate trop soutien. |
| | | | |
| | | Hab den Code grad nochmal vereinfacht... |
| | | | |
| | | ici une variante pour alle Bildformate mittels GDI-Unit. KompilierenMarqueSéparation {$cleq}
$I gdi.inc
seterrorlevel -1
set(Fastmode,1)
Def GetOpenFileName(1) ! COMDLG32, GetOpenFileNameA
Def CommDlgExtendedError(0) ! COMDLG32, CommDlgExtendedError
Def Mm(3) !KERNEL32, RtlMoveMemory
declare h&,dc&,xx&,yy&,bwidth&,__mem#,preview.lastImg$
declare gdiLoadableExtensions$
gdiLoadableExtensions$:=.bmp.dib.rle.jpg.jpeg.jpe.jfif.exif.gif.png.tiff.tif.wmf.emf.ico.
dim __mem#,12//(long)hwnd, id, code
clear __mem#
cls
bwidth&:=external(USER32,GetSystemMetrics,7)// borderwidth
gdi.init
print Multiloadfile()
gdi.kill
dispose __mem#
waitkey
end
proc hook
parameters _hWnd&,_Msg&,_wparam&,_lparam&
if _msg&==272//init
h&:=external(USER32,GetParent,_hWnd&)
dc&:=external(USER32,GetDC,h&)
xx&:=width(h&)
yy&:=height(h&)
external(USER32,SetWindowPos,h&,0,0,0,xx&+bwidth&+220,yy&+bwidth&,20)
_wparam&:=createblackframe(h&,,xx&+10,0,1,yy&)
elseif _msg&==2//kill
elseif _msg&==78//notify -602
declare l&
l&:=addr(__mem#)
mm(l&,_lparam&,12)
if long(__mem#,8)==-602
preview getfname(1125,h&)
endif
endif
return _msg&
endproc
proc preview
parameters fle$
case instr(*,fle$) : return
if fileexists(fle$)
fle$:=lower$(fle$)
if instr(.+right$(fle$,3)+.,gdiLoadableExtensions$)
if (preview.lastImg$<>fle$)
preview.lastImg$:=fle$
declare pic&
pic&:=gdi.loadimage(fle$)
preview.bg
gdi.startpaint dc&
gdi.drawsizedimage pic&,xx&+21,6,188,(yy&-17-%cycaption)
gdi.endpaint
gdi.deleteimage pic&
endif
endif
settext h&,Öffnen von q+fle$+q
elseif direxists(fle$)
settext h&,Öffnen von q+fle$+q
endif
endproc
proc preview.bg
startpaint h&
usepen 0,0,0
usebrush 1,$00FFFFFF
rectangle xx&+20,5 - xx&+210,yy&-10-%cycaption
endpaint
endproc
proc getfname
parameters msg&,h&
declare s$
s$:=space$(260)
sendmessage(h&,msg&,260,addr(s$))
return trim$(s$)
endproc
Proc Multiloadfile
Parameters title$,fmask$,drive$
Declare mem#,fle$
Dim mem#,8100
fmask$=Bild-Dateien (*+translate$(.+trim$(translate$(gdiLoadableExtensions$,., )), ,;*.)+)z*+translate$(.+trim$(translate$(gdiLoadableExtensions$,., )), ,;*.)+zz
Clear mem#
Long mem#,0=76
Long mem#,4=Getactivewindow()
Long mem#,8=%Hinstance
Long mem#,12=Addr(fmask$)
Long mem#,28=mem#+100
Long mem#,32=8000
Long mem#,44=Addr(drive$)
Long mem#,48=Addr(title$)
Long mem#,52=( 4 | 2 | 32 | 524288 )
Long mem#,68=procaddr(hook,4)
Getopenfilename(mem#)
if Commdlgextendederror()
Dispose mem#
return 0
endif
fle$=String$(mem#,100)
Dispose mem#
./../function-references/XProfan/return/'>Retour fle$
ENDPROC
|
| | | | |
| | RGH | ... et qui es entier sans Programmieren avons voudrais, wählt im entier normalemn Loadfile$-Dialog qui Miniaturansicht* et joli volonté alle de Créer(hPic,...) unterstützten Formate comme Vorschaubild angezeigt. cela allez zumindest sous Windows 2000 et XP.
* Im Dialog dessus à droite cela Icon Vous pouvez et qui entsprechende Ansicht auswählen. cela funktioniert malheureusement pas chez Win98 ou bien Win95. comment es sous WinME aussieht, sais je pas, là je es nie benutzt habe.
Salut Roland |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 20.04.2006 ▲ |
| |
| | | allô Roland >>* Im Dialog dessus à droite cela Icon Vous pouvez et qui entsprechende Ansicht auswählen. cela funktioniert malheureusement pas chez Win98 ou bien Win95. comment es sous WinME aussieht, sais je pas, là je es nie benutzt habe. <<
peux toi beruhigen: sous ...ME klappt es aussi |
| | | | |
| | RGH | Horst Horn
peux toi beruhigen: sous ...ME klappt es aussi
Ok, ensuite était Bill Gates alors so freundlich, cela Problem pour uns trop lösen et je dois mich dans cette l'affaire pas plus bemühen.
Salut Roland |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 22.04.2006 ▲ |
| |
| | | Uwe Pascal Niemeier
allô gens! depuis Win2000 wurde qui OpenFileName-Struktur um 3 optionale paramètre ergänzt (siehe MSDN). Wird qui Grösse qui Struktur entsprechend erweitert (qui trois LongInts am Ende doit zéro son) sollte es marcher. ici une Demo, um une Dialog per Hook dans qui Miniatur-Ansicht trop ouvrir (zwecks Bild-sélection): window 10,10-700,500
$H Messages.ph
$H Windows.ph
proc OpenFileHook-------------------------------OpenFileHook----------------------------
parameters dlg&,msg&,wparam&,lparam&
cas Status%:return 1-----Ansicht muss seulement einmal angepasst volonté
casenot msg&=~WM_NOTIFY:return 1
si long(lparam&,8)=-603---chez Init existieren DefView et LV encore pas!
Status%=1
DefView&=~FindWindowEx(~GetParent(dlg&),0,SHELLDLL_DefView,)
sendmessage(DefView&,~WM_COMMAND,$702D,0)--Undokumentierte Message
endif
return 1
endproc---------------------------------------------------------------------------------
proc LoadPicDialog------------------------------LoadPicDialog---------------------------
parameters Pfad$,Titel$,nom$
declare ofn#,Result$,Result&
declare DefView&,Status%------Variablen pour Hook
nom$=nom$+z*.bmp;*.jpe;*.jpeg;*.jpg;*.gifzz--filtre (chez besoin anpassen)
dim ofn#,88+256---------------Struktur (Win2000/NT/XP) + Puffer
clear ofn#
long ofn#,0=88----------------Grösse Struktur pour GetOpenFileName (76 pour Win9x)
long ofn#,4=%hwnd-------------übergeordnetes la fenêtre
long ofn#,12=addr(nom$)------filtre/Typ
long ofn#,28=ofn#+88----------Beginn Puffer
long ofn#,32=255--------------Puffergrösse
long ofn#,44=addr(Pfad$)------Anfangspfad
long ofn#,48=addr(Titel$)-----Titel
long ofn#,52=$880024----------Flags
long ofn#,68=procaddr(OpenFileHook,4)
Result&=external(COMDLG32,GetOpenFileNameA,ofn#)
Result$=string$(ofn#,88)
casenot Result&:Result$=
procaddr(OpenFileHook,-4)
dispose ofn#
return Result$
endproc'---------------------------------------------------------------------------------
imprimer LoadPicDialog(,s'il te plaît Bild choisir,Bild)
waitkey
HTH Pascal |
| | | | |
| | Jörg Sellmeyer | Repariert...
window 10,10-700,500
$H Messages.ph
$H Windows.ph
proc OpenFileHook'-------------------------------OpenFileHook----------------------------
parameters dlg&,msg&,wparam&,lparam&
cas Status%:return 1'-----Ansicht muss seulement einmal angepasst volonté
casenot msg&=~WM_NOTIFY:return 1
si long(lparam&,8)=-603'---chez Init existieren DefView et LV encore pas!
Status%=1
DefView&=~FindWindowEx(~GetParent(dlg&),0,"SHELLDLL_DefView",»)
sendmessage(DefView&,~WM_COMMAND,$702D,0)'--Undokumentierte Message
endif
return 1
endproc---------------------------------------------------------------------------------
proc LoadPicDialog'------------------------------LoadPicDialog---------------------------
parameters Pfad$,Titel$,nom$
declare ofn#,Result$,Result&
declare DefView&,Status%'------Variablen pour Hook
nom$=nom$+"\z*.bmp;*.jpe;*.jpeg;*.jpg;*.gifzz"'--filtre (chez besoin anpassen)
dim ofn#,88+256'---------------Struktur (Win2000/NT/XP) + Puffer
clear ofn#
long ofn#,0=88'----------------Grösse Struktur pour GetOpenFileName (76 pour Win9x)
long ofn#,4=%hwnd'-------------übergeordnetes la fenêtre
long ofn#,12=addr(nom$)'------filtre/Typ
long ofn#,28=ofn#+88'----------Beginn Puffer
long ofn#,32=255'--------------Puffergrösse
long ofn#,44=addr(Pfad$)'------Anfangspfad
long ofn#,48=addr(Titel$)'-----Titel
long ofn#,52=$880024'----------Flags
long ofn#,68=procaddr(OpenFileHook,4)
Result&=external("COMDLG32","GetOpenFileNameA",ofn#)
Result$=string$(ofn#,88)
casenot Result&:Result$=\
procaddr("OpenFileHook",-4)
dispose ofn#
return Result$
endproc'---------------------------------------------------------------------------------
imprimer LoadPicDialog(»,"Bitte Bild wählen","Bild")
waitkey
|
| | | | |
|
Zum QuelltextOptions du sujet | 14.366 Views |
Themeninformationencet Thema hat 5 participant: |