Deutsch
Quelltexte/ Codesnippets

Dialog Loadfile Multiselect

 

KompilierenMarkierenSeparieren
von 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 |)

EndProc

 
25.09.2005  
 




Carlo
Keil
MeineHeader-Dateien (XProfan 9) behaupten alle, sie würden nicht passen.
Welche wird denn hier benutzt?

Gruß
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
 
07.11.2005  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.362 Betrachtungen

Unbenanntvor 0 min.
RudiB.06.04.2022
Manfred Barei08.11.2018
Peter Max Müller11.10.2017
Jochen Roxlau04.10.2014
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Carlo Keil (1x)
iF (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie