Seite 1 von 1

File- Open / Save Requester verbessern ... wie?

Verfasst: 07.06.2007 22:34
von Xaby
Hab im Office was gesehen, was ich gern für alle meine Programme haben möchte. Es müsste also igrendwie eine Software sein, die den Standard-File-Reqeuster verändert und die Funktionen des Office-Requesters hinzufügt.
Wenn ich selbst Programme schreibe, könnte ich mir ja einen eigenen Requester machen, aber was ist mit den schon vorhandenen Programmen, die das halt nicht haben?

Normal:

Bild

Office 2003:

Bild
Bild

Ulead PhotoImpact
Bild
Bild

Jemand eine Idee? Eine Art Hack oder Crack.
Vielleicht sowas wie Worktune
http://leolasoft-herter.de/Download.html

Das ist vielleicht nur ein Eintrag in die Registry, aber cool ist es schon.
Zwar noch nicht meine Verknüpfungen genutzt, weil sie halt nicht in der Spalte links beim Laden oder Speichern angezeigt werden, aber sowas in der Richtung ....

Vista erlaubt es ja auch Verknüpfungen direkt zu bilden.

Ich mache es zurzeit so, dass ich in meinem eigene Dateien Ordner Verknüpfungen habe. Aber das ist noch umständlich und unübersichtlich.

Man sollte sowas wie die Favoriten beim Explorer haben.
Nur halt in diesem Requester.

... Kennt sich da jemand aus?

Dank euch :allright:

Verfasst: 07.06.2007 22:49
von D@nte

Verfasst: 07.06.2007 22:57
von Xaby
Sieht gut aus, dank dir.

Gruß, Folker :allright:

Leider scheint es wirklich nur für 5 Verknüpfungen gehen.
Mmmm. Aber ich könnte eine Verknüpfung zu meinen Verknüpfungen machen. Dann geht es vielleicht :shock:

Vielleicht gibt es ja demnächst einen offiziellen neuen FileRequester von PB :?


>> Wie du bei dem PhotoImpact Requester siehst, ist es ein erweiterter Standard-Requester.

Wie ist sowas möglich? Es muss ein Standard-Requester sein, weil die Registereinträge auf die Symbole links Einfluss haben!

:shock:

Verfasst: 08.06.2007 08:40
von Leonhard
Mann kann bei der erstellung des Requestors einen Callback (wenn man ihn mi WinAPI startet) einfügen. Damit ist dann die Veränderung des Requestors bestimmt möglich.

Verfasst: 08.06.2007 09:24
von Xaby
Mmmm, ich kenn mich mit Callbacks nicht aus :roll:

Aber mich regt es auf, dass ich zum Beispiel manchmal Favoriten zum Speicherort-Wählen habe und dann wieder nicht.

Eine weitere Idee wäre, es irgendwie in das Zweite-Maustaste-Menü einzufügen.

Bild

So wie: Zuletzt geöffnete Dateien (nur halt mit Ordnern)
Oder wenn man einen Verlauf hätte und nur Ordner angezeigt werden.

Bei Vista ist das auch noch nicht ideal. Ist zu unüberlichtlich und zu klein oder zu groß.

Eine Art angehängtes DOCK, was immer unter dem FileRequester mit erscheint. Vielleicht 10 Symbole oder so.

Und wenn man eins anklickt, dann wird automatisch der Ordner in das Eingabe-Feld eingefügt.

:?

Oder wie gesagt: Zweite-Maustaste-Menü und da dann die 10 Ordner.
Einfach so wie die Favoriten, die sind allerdings nur im Explorer aber nicht im Requester. Ein Symbol neben AUFWÄRTs und NEUER-ORDNER.

Zurzeit geht es wie im ScreenShot. Mein Bilder-Ordner ist eine Verknüpfung zu einem Ordner, der Verknüpfungen enthält.
So kann ich schnell meinen Bilder-Ordner auswählen.

Problem nun ist aber, dass gerade im Fotoprogramm meine Leiste mit den großen Symbolen links nicht da ist. (Die Schw**n*)

:cry:

Verfasst: 08.06.2007 12:00
von Ligatur
Das verändern von Requestern kann so viel ich weiß nicht bei Purebasic Requestern gemacht werden, da man da keinen Zugriff auf die OPENFILENAME - Struktur hat. Man muß wohl eher ein Requester über die API - Funktion GetOpenFileName_(@ofn) erstellen. dafür muß erst eine OPENFILENAME - Struktur ausgefüllt werden, bei der bei Flags #OFN_ENABLETEMPLATE gesetzt sein muß und unter lpTemplateName die ID einer Dialogressource eingegeben werden muß, die vorher unter Compileroptionen eingebunden werden muß. Dieser Dialog erscheint dann als Childwindow im Filerequester.

Verfasst: 08.06.2007 12:13
von Xaby
nichts einfacher als das :mrgreen:

:? :oops: /:-> :cry: :roll: :freak: :| >_< :praise: :doh: :lamer: :bluescreen: >:) :angry: :(

Verfasst: 08.06.2007 12:48
von Ligatur
Naja, einfach ist es nicht. Ich habe das mal getestet mit folgendem Programm:

Code: Alles auswählen

Define ofn.OPENFILENAME

hwnd = OpenWindow(0, 0, 0, 640, 480, "DialogTemplate", #PB_Window_SystemMenu)
CreateGadgetList(hwnd)
ButtonGadget(0, 10, 10, 80, 30, "Dialog")

Ende = #False

Filter.s ="Alle Dateien" +Chr(0) + "*.*" + Chr (0) + Chr(0)
InitFile.s{256} = Chr(0)
Dialog.s = "#101"
With ofn
	\lStructSize = SizeOf(OPENFILENAME)
	\hwndOwner = hwnd
	\hInstance = GetModuleHandle_(0)
	\lpstrFilter = @Filter
	\lpstrCustomFilter = 0
	\nMaxCustFilter = 1
	\nFilterIndex = 0
	\lpstrFile = @InitFile
	\nMaxFile = 256
	\lpstrFileTitle = 0
	\nMaxFileTitle = 0
	\lpstrInitialDir = 0
	\lpstrTitle = 0
	\Flags = #OFN_EXPLORER | #OFN_ENABLETEMPLATE
	\nFileOffset = 0
	\nFileExtension = 0
	\lpstrDefExt = 0
	\lCustData = 0
	\lpfnHook = 0
	\lpTemplateName = @Dialog
EndWith

Repeat
	Select WaitWindowEvent()
		Case #PB_Event_Gadget
			If EventGadget() = 0
				GetOpenFileName_(@ofn)
			EndIf
		Case #PB_Event_CloseWindow
			Ende = #True
	EndSelect
Until Ende
Die Ressourcendatei namens OpenDialog.rc sieht so aus:

Code: Alles auswählen

#include "resource.h"

IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 186, 90
STYLE 128 | 4 | 1024 | 1073741824 | 1 | 67108864
FONT 8, "MS Sans Serif"
BEGIN
    CONTROL         "",IDC_STATIC,"Static",7,7,7,76,76
    EDITTEXT        IDC_EDIT1,90,7,89,12,128
    EDITTEXT        IDC_EDIT2,90,22,89,12,128
END
Und ressource.h so:

Code: Alles auswählen

#define IDD_DIALOG1                     101
#define IDC_EDIT1                       1000
#define IDC_EDIT2                       1001
#define IDC_STATIC                      69
.
Es funktioniert auch im Prinzip, nur wird die Schnellauswahl auf der linken Seite nicht mehr angezeigt und nur die Steuerelemente werden nach unterhalb der Standardsteuerelemente verlegt und der Rest des Child -Fensters beginnt bei 0. Weiß jemand, wie man auch das noch berichtigen kann?

Verfasst: 08.06.2007 23:30
von Xaby
CopyDings Anfang:

http://www.purebasic.fr/german/viewtopic.php?t=13247

Vielleicht kann man es irgendwann so ummodeln, dass es direkt in den FileRequester schreibt.

vielleicht so:
http://www.purebasic.fr/german/viewtopi ... er+colours

Oder mit dem PureDispHelper ...
Das man einfach durch ein externes Programm den Pfad, den man haben möchte an den Requester sendet.

:?