Español
C ++ Foro

GetSaveFileName

 

Georg
Hovenbitzer
¡Hola Sebastian,

anhängender Code funktioniert no mehr si uno ihn traducido

Das Dateiauswahlfenster no es geöffnet, en el Interpreter y como Compilat funktioniert alles bestens.

Yo hoffe du kannst veces otra vez helfen
Def Getsavefilename(1) !"COMDLG32.DLL","GetSaveFileNameA"
Def Make256cadena(1) ((@$(1) + @Chr$(0)) + @Espacio$(256 - @Len(@$(1))))
Struct Tagofn = Lstructsize&,
Hwndowner&,
Hinstance&,
Lpstrfilter&,
Lpstrcustomfilter&,
Nmaxcustfilter&,
Nfilterindex&,
Lpstrfile&,
Nmaxfile&,
Lpstrfiletitle&,
Nmaxfiletitle&,
Lpstrinitialdir&,
Lpstrtitle&,
Flags&,
Nfileoffset%,
Nfileextension%,
Lpstrdefext&,
Lcustdata&,
Lpfnhook&,
Lptemplatename&,
Pvreserved&,
Dwreserved&,
Flagsex&
Declarar Ofn#
Dim Ofn#,Tagofn
Struct _rect = Left&,
Top&,
Right&,
Bottom&
Declarar Rect#
Dim Rect#,_rect
Declarar Ergebnis&
Declarar Icon&

Proc Iconload

    Declarar Name$
    Declarar Dll&
    Name$ = "#1001" + @Chr$(0)
    Dll& = @Usedll("SHELL32.DLL")
    Icon& = @Externo("USER32.DLL","LoadImageA",Dll&,@Addr(Name$),1,48,48,0)
    Freedll Dll&

ENDPROC

Proc Savedateihook

    Parámetros Hdlg&,Umsg&,Wparam&,Lparam&
    Claro Rect#
    Declarar Parent&
    Declarar Fenster&
    Declarar Text&
    Declarar Weiter&
    Declarar Neu&
    Declarar Abbruch&
    Declarar Static&
    Declarar Raus&

    If Umsg& = 49265

        If @Fileexists(@String$(Ofn#.Lpstrfile&,0)) = 1

            Parent& = @Externo("USER32","GetParent",Hdlg&)
            @Externo("USER32","GetWindowRect",Parent&,Rect#)
            Fenster& = @Crear("Dialog",%Hwnd,"Datei existiert",-1,-1,-1,0)
            Setwindowpos Fenster& = (Rect#.Left& + (((Rect#.Right& - Rect#.Left&) / 2) - 160)),(Rect#.Top& + (((Rect#.Bottom& - Rect#.Top&) / 2) - 75))- 320,150
            Text& = @Crear("Text",Fenster&,"Folgende Aktion ausführen:",80,30,200,40)
            Usefont "Curier New",14,0,0,0,0
            Setdialogfont 1
            Weiter& = @Crear("DefButton",Fenster&,"Anhängen",25,75,82,26)
            Neu& = @Crear("Button",Fenster&,"Überschreiben",115,75,82,26)
            Abbruch& = @Crear("Button",Fenster&,"Abbruch",205,75,82,26)
            Static& = @Control("Static","",$54000103,10,10,48,48,Fenster&,0,%Hinstance,$0)
            @SendMessage(Static&,$170,Icon&,0)
            Setdialogfont 0
            Raus& = 0

            Sinestar encargado Raus& = 1

                Waitinput

                If @Clicked(Weiter&)

                    Ergebnis& = 1
                    Raus& = 1

                Elseif @Clicked(Neu&)

                    Ergebnis& = 2
                    Raus& = 1

                Elseif (@Clicked(Abbruch&) Or (%Key = 2))

                    Ergebnis& = 0
                    Raus& = 1

                Endif

            Endwhile

            @Destroywindow(Fenster&)
            Volver 1

        Endif

    Endif

    Volver 0

ENDPROC

Proc Savedatei

    Parámetros Hwnd&,Titel$,Filespec$,Initialdir$,Filter$,Defext$
    Declarar Customfilter$
    Declarar Filetitle$
    Declarar Rcode&
    Declarar Auswahl$
    Claro Ofn#
    Titel$ = Make256cadena(Titel$)
    Filespec$ = Make256cadena(Filespec$)
    Initialdir$ = Make256cadena(Initialdir$)
    Filter$ = @Translate$(Filter$,"|",@Chr$(0)) + @Chr$(0)
    Filter$ = Make256cadena(Filter$)
    Defext$ = Make256cadena(Defext$)

    With Ofn#

        .Lstructsize&       = @Sizeof(Ofn#)
        .Hwndowner&         = Hwnd&
        .Hinstance&         = %Hinstance
        .Lpstrfilter&       = @Addr(Filter$)
        .Lpstrcustomfilter& = @Addr(Customfilter$)
        .Nmaxcustfilter&    = 0
        .Nfilterindex&      = 1
        .Lpstrfile&         = @Addr(Filespec$)
        .Nmaxfile&          = 256
        .Lpstrfiletitle&    = @Addr(Filetitle$)
        .Nmaxfiletitle&     = 256
        .Lpstrinitialdir&   = @Addr(Initialdir$)
        .Lpstrtitle&        = @Addr(Titel$)
        .Flags&             = ($4 | $20 | $80000 | $800)
        .Nfileoffset% = 0
        .Nfileextension% = 0
        .Lpstrdefext&       = @Addr(Defext$)
        .Lcustdata& = 0
        .Lpfnhook& = @Procaddr(Savedateihook,4)
        .Lptemplatename& = 0
        .Pvreserved& = 0
        .Dwreserved& = 0
        .Flagsex& = 0

    Endwith

    Ergebnis& = 2
    Rcode& = Getsavefilename(Ofn#)

    If Rcode& = 1

        If Ergebnis& <> 0

            Auswahl$ = @Str$(Ergebnis&) + "|" + @String$(Ofn#.Lpstrfile&,0)

        Elseif Ergebnis& = 0

            Auswahl$ = ""

        Endif

    Más

        Auswahl$ = ""

    Endif

    @Procaddr(Savedateihook,-4)
    Volver Auswahl$

ENDPROC

#######################
Windowstyle 8 + 16 + 512 + 1024
Ventana 100,100-300,300
Declarar Ende&
Declarar Button&
Button& = @Crear("Button",%Hwnd,"Button",10,10,100,40)
Iconload

Sinestar encargado Ende& = 1

    Waitinput

    If %Key = 2

        Ende& = 1

    Elseif @Clicked(Button&)

        Savedatei(%Hwnd,"Ausgabe el Ergebnisse después de:","DLQueue",$Progdir,"DAT File (*.dat)|*.dat|Textfile (*.txt)|*.txt","*.dat")

    Endif

Endwhile

Disponer Rect#
Disponer Ofn#
@Externo("USER32.DLL","DestroyIcon",Icon&)
End
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
06.07.2006  
 




Sebastian
König
¡Hola Georg,

primero kann Yo el problema bestätigen - tritt incluso auch todavía con el aktuellen Beta-Versión en....

El Ursache podría Yo allerdings todavía no encontrar - mein erster Verdacht, dass lo con el Hook zusammenhängen podría, ha se no bestätigt... CommDlgExtendedError() liefert simplemente CDERR_INITIALIZATION.

Leider bin Yo en el Moment una bischen en el Stress (morgen una Klausur, Montag igual el nächste ), sodass Yo wahrscheinlich sólo Montag Abend intensiver después de el Ursache suchen kann. Sorry, dass Usted una bischen warten musst! Yo voluntad mich natürlich inmediatamente por lo tanto kümmern, si yo otra vez genug Tiempo habe.

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
06.07.2006  
 




Georg
Hovenbitzer
¡Hola Sebastian,

laß dir Por favor, Tiempo y bastante viel Glück para el Prüfung !!
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
07.07.2006  
 




Sebastian
König
¡Hola Georg,

así - Yo denke, Yo habs . Der entscheidende Punkt es esta Línea:

.Lpstrcustomfilter& = @Addr(Customfilter$)

Nachdem Yo simplemente veces en lugar de el Adresse una Null angegeben habe, funktionierte lo plötzlich auch con Profano2Cpp. Erst podría Yo el nada erklären, a Yo folgendes bemerkte: In (X)Profano son @Addr() en Leerstrings (y por lo tanto es lo en Customfilter$, como kein Valor zugewiesen se) siempre 0 zurück. Das war me bisher nie aufgefallen...

Un Anpassung war aber para Glück bastante simplemente posible. Yo habe gerade una neue Beta-Versión hochgeladen, en el el Fehler korrigiert es. Außerdem gab lo todavía una Problema por el Benutzung de WAITINPUT en el Hook-Procedimiento, el Yo ebenfalls Fijo habe.

El aktuelle Beta (1.5.9c) findest Usted en el Profano2Cpp-Homepage. Wenn lo así auch con usted problemlos funktioniert, kann Yo mich aufmachen, el Korrekturen en Versión 1.5a zurückzuportieren.

Nochmals danke para el Geduld!

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
10.07.2006  
 




Michael
Dell
Ähm,

el war más una Eingabefehler uno braucht sólo .Nmaxcustfilter& en 255 a conjunto entonces gehts ausgezeichnet!
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
10.07.2006  
 




Sebastian
König
¡Hola Michael,

stimmt - el hilft auch . Aunque funktioniert lo sí en el ursprünglichen Versión en XProfan incluso, qué wohl a el Comportamiento de @Addr() liegt. Hier una corto Testcode dazu:
declarar texto$
imprimir Addr(texto$)
let texto$ = "Hallo"
imprimir Addr(texto$)
let texto$ = ""
imprimir Addr(texto$)
waitkey

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
11.07.2006  
 




Michael
Dell
Sí, es deutlich a erkennen!

Intressant Es el Anzeige si el Test- Programa con Prf2Cpp (v1.5a-new3) traducido hast!!!
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
11.07.2006  
 




Sebastian
König
Sí, stimmt. Hier se de Addr() auch en Leerstrings una Adresse zurückgegeben. (Was daran liegt, dass auch el Leerstrings una kurzen Puffer con uno 0 direkt al Anfang benutzen....). Si usted el código con el aktuellen Beta (1.5.9c) traducido, debería el Comportamiento genau el de (X)Profano entsprechen

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
11.07.2006  
 




Sebastian
König
Was me gerade todavía einfällt: In el Beta-Versión es natürlich auch el [...]  diskutierte Möglichkeit a Steuerung el Übersetzung de @Call() y @Externo() integriert. Dokumentiert Yo Todo en el Ayuda bajo el neuen Rubrik Sonstige Features...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
11.07.2006  
 




Michael
Dell
Dachte me ya el jede Variable/String una Adresse ha bastante igual si leer oder no es doch eh alles sólo una addressierter Speicherbereich. Es also más una, na sagen wir veces unerwartetes Comportamiento de XProfan oder?
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
11.07.2006  
 




Sebastian
König
Unerwartet - en el Tat . Sombrero bastante schön gedauert, a me endlich aufgefallen es... direkt bin Yo nada en el Concepto gekommen - bemerkt Yo lo sólo, como Yo el komplette OFN-Struktur con BlockWrite en un Expediente geschrieben y luego el Ergebnisse con XProfan y Profano2Cpp verglichen habe...

Meinen Tests zufolge es auch sólo seit Profano² 7.0 así - con 6.6 todavía se auch en Leerstrings siempre una Adresse zurückgegeben. Wahrscheinlich es simplemente una de Delphi vorgegebene Eigenschaft el en Versión 7.0 eingeführten langen Cuerdas....

Como De todos modos - lo ließ se para Glück con uno pequeño Änderung en el Expediente pstring.h auch en Profano2Cpp muy simplemente umsetzen .

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
11.07.2006  
 




Georg
Hovenbitzer
¡Hola Sebastian,

Yo hoffe el Prüfungen son bien verlaufen

Nun a mi Problema.
El neue Versión de Profano2Cpp funktioniert muy bien con el Demo Code hier.
Wende Yo esta Versión aber el todo Projekt a, stürzt el exe direkt después de el Start con uno Schutzverletzung de, con el Versión 1.5a se ejecuta alles sauber salvo que aquí genannte Problema.
Wenn Yo, el Source Code Comparar hay una Menge Unterschiede, Yo voluntad dir esta veces como private Mail hier zukommen dejar.

Aber sonst veces otra vez super Arbeit
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
13.07.2006  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

5.270 Views

Untitledvor 0 min.
liveFamilie28.03.2012
Andreas Koch02.12.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie