| |
|
|
| KompilierenMarkierenSeparierenvon Bernhard Künzel
Proc MultiLoadFile$
Parameters Titel$,Dateimaske$,LW$
Titel$= Überschrift des Dialoges
Die Übergabe der Dateimaske ist gleich wie bei der Profanfunktion LoadFile$()
Beispiel Dateimaske$= Alle unterstützten Metadateien|*.wmf;*.emf
Dateimaske$= Metafile (wmf)|*.wmf|Enhanced Metafile (emf)|*.emf
bei Leerstring alle Dateien
LW= kann optional ein Pfad angegeben werden z.B.C: est
Case %PCount < 3:LW$=GetDir$(@)sonst wird der Übergebene Pfad übernommen
Declare Api#,i%,Err$,Datei$,RetFile$
Dim Api#,8100
CaseNot Len(Dateimaske$):Dateimaske$=Alle Dateien|*.*;*.*
Dateimaske$=Translate$(Dateimaske$,|,z)+zz
Clear Api#,RetFile$
Long Api#,0=76 ...................Strukturlänge für GetOpenFileName
Long Api#,4=GetActiveWindow() ....übergeordnetes Fenster
Long Api#,8=%HINSTANCE............Instance Dialogbox
Long Api#,12=addr(Dateimaske$) ...Adr. AnwenderFilterfunktion
Long Api#,16=0 ...................Adr. Customfilter
Long Api#,20=0 ...................Max.Länge CustFilter
Long Api#,24=0 ...................Index der Standard Definition
long Api#,28=Api#+100 ............Adr. für die ausgewählten Dateinamen
long Api#,32=8000 ................Max.Länge Dateinamen
long Api#,36=0....................Adr. FileTitel
long Api#,40=0....................Max.Länge FileTitel
long Api#,44=addr(LW$)............Adr. Startverzeichnis z.B.C: est
long Api#,48=addr(Titel$).........Addr. Dialogboxtitel
long Api#,52=$00081206 .......... OFN_EXPLORER | OFN_FILEMUSTEXIST |
OFN_ALLOWMULTISELECT | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
Word Api#,56=0 ...................Adr. Dateinamensbeginn
Word Api#,58=0 ...................Adr. Extensionsbeginn
Long Api#,60=0 ...................Adr. Standardextension
~GetOpenFileName(Api#)
//Fehlerabfrage Pufferüberlauf FNERR_BUFFERTOOSMALL
If ~CommDlgExtendedError()
Err$=If(Equ(~CommDlgExtendedError(),$3003),Sie haben zu viele Einträge ausgewählt !,
Format$(Fehlernummer : ###,~CommDlgExtendedError()))
Messagebox(Err$,Hinweis,48)
Else
i%=Long(Api#,56)-1
Datei$=String$(Api#,100)
If Len(Datei$) = i% ---------> Mehrfachauswahl
RetFile$=Datei$+
i%=0
While Len(Datei$)
i%=i%+Len(Datei$)+1
Datei$=String$(Api#,100+i%)
Case Len(Datei$):RetFile$=RetFile$+|+Datei$
Wend
Else ------------------------> Einzeleintrag
Case Len(Datei$):RetFile$=Translate$(Datei$,+FindFirst$(Datei$),|+FindFirst$(Datei$))
Case Len(Datei$):Ins$(|,Datei$,Len(Datei$)-Len(FindFirst$(Datei$))+1)
EndIf
EndIf
Dispose Api#
Return RetFile$ erster Substring ist der Pfad alle weiteren sind Dateien (Trenner ist |)
ss=s4 href='./../../funktionsreferenzen/xprofan/endproc/'>EndProc
|
|
|
| |
|
|
|
Carlo Keil | MeineHeader-File (XProfan 9) behaupten alle, sie würden nicht passen. Welche wird denn hier benutzt?
Saluto Carlo
Nachtrag: etwas nachdenken und ein wenig suchen können hilfreich sein. Damit sollte es auch klappen (noch ungetestet)
Def GetOpenFileName(1) ! COMDLG32, GetOpenFileNameA Def CommDlgExtendedError(0) ! COMDLG32, CommDlgExtendedError |
|
|
| |
|
|