XbpFileDialog()

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

XbpFileDialog()

Beitrag von Rolf Ramacher »

Hallo,


ich rufen den XbpfileDialog aus einer Maske auf. Dieser schiebt sich bei mir nicht in den Vordergrund. Wenn ich den xbpfileDialog() wieder schliesse und neu starte klappt dies. Der Rückgabewert ist richtig.
Egal wo ich den SetAppFocus() setze - klappt es nicht

Code: Alles auswählen

Function FileDlg(oParent)
      LOCAL nEvent, mp1, mp2, oXbp, oFileDlg, cVerz:=""

      oFileDlg   := XbpFileDialog():new() 
      oFileDlg:create( AppDesktop() ) 
		SetAppFocus(oFileDlg)
 		cVerz:=oFileDlg:open()
RETURN cVerz
Geht das anders >??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

lass mal die Zeile SetAppFocus(oFileDlg) einfach weg.
Der Filedialog selbst (also die API Funktion) müsste dann automatisch nach vorne kommen.
Allerdings gebe keinen Parent an, was dann mein Fenster zum Parent macht, eventuell liegt es auch daran.

Sehr wichtig beim FileDialog ist, dass man das aktuelle Verzeichnis wieder einstellt (neuerdings gibt es dafür :restoreDir := .t.), denn mir ist es schon öfters passiert, dass das Programmverzeichnis verstellt wurde !
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi Hubert,

dies hat leider nicht geholfen. Ich übergebe keinen Dlg mehr an die Function FileDlg() und Setappfocus(oFileDlg) habe ich ebenfalls weggelassen.

Aber mit :retore:dir:=.t. - werde ich mal drauf achten. Danke für den Hinweis
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo ihr beiden,

ich setze XbpFileFDialog dazu ein, in einem mandantenfähigen System das entsprechende Mandanten-Verzeichnis auszuwählen. Der Rückgabewert ist dann mein Standard-Pfad zu den Datenbanken.

- Dabei setze ich kein :restoreDir() ein. Was (zumindest in diesem Fall) kein Problem ist.
- Im :create() habe ich auch keinen Parent drin. Geht auch so.
- Auch ein SetAppFocus() gibt es bei mir nicht.
- Nach dem openFileDlg() mache ich noch ein oFileDlg:configure().
- Was ich bei Rolf vermisse ist ein oFileDlg:show. Liegt es vielleicht daran?

Jan
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi Jan

ich habe es rausgefunden, warum sich oFileDlg() nicht beim 1. Mal in den Fordergrund kommt:
an FileDlg übergebe ich den aktuellen Dialog. dann klappt es auch.

ohne :show() und ohne :configure()
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Rolf Ramacher hat geschrieben:Aber mit :retore:dir:=.t. - werde ich mal drauf achten. Danke für den Hinweis
Jetzt habe ich wieder den Übeltäter gefunden, bei dem das Problem auftrat:

Mit HB_Printer (XbpPrinter) wird auf einen PDF Druckertreiber gedruckt, dort muss man eine Datei auswählen und einer der beiden (ich weiß jetzt nicht genau welcher) verstellt das Verzeichnis, wenn die Ziel-PDF Datei nicht im gerade angezeigten Verzeichnis liegt. Da das ja außerhalb von Xbase++ geschieht, kann man dort das Verzeichnis nicht automatisch sichern lassen. Daher habe ich bei mir in der StartDoc Methode die Sicherung des Verzeichnisses und das Zurücksetzen implementiert ...
Gruß
Hubert
Antworten