Seite 1 von 2

Save- & OpenFileRequester

Verfasst: 11.08.2007 18:54
von X0r
Hallo Community!
Vielleicht kanns ja mal einer gebrauchen: Save- & OpenFileRequester über die WinAPI(So machs ich mit C++, geht ja nicht anders.....*vermissePureBasicGUIEngine*)

Code: Alles auswählen

   *buf = AllocateMemory(#MAX_PATH) 
   
   ofn.OPENFILENAME
   ofn\lStructSize=SizeOf(ofn)
   ofn\hwndOwner = hwnd;
   ofn\lpstrFilter = @"Text Files (*.txt)";
   ofn\lpstrFile = *buf
   ofn\nMaxFile = #MAX_PATH;
   ofn\lpstrDefExt = @"*.txt";
   
   GetSaveFileName_(ofn)
   
   Debug PeekS(*buf)

Code: Alles auswählen

   *buf = AllocateMemory(#MAX_PATH) 
   
   ofn.OPENFILENAME
   ofn\lStructSize=SizeOf(ofn)
   ofn\hwndOwner = hwnd;
   ofn\lpstrFilter = @"Text Files (*.txt)";
   ofn\lpstrFile = *buf
   ofn\nMaxFile = #MAX_PATH;
   ofn\lpstrDefExt = @"*.txt";
   
   GetOpenFileName_(ofn)
   
   Debug PeekS(*buf)



Dann noch mal in C++, nur so aus fun:

Code: Alles auswählen

//tööt, nur die "funktion"

#include<windows.h>

BOOL OpenFileSaveRequester(HWND hwnd)
{
  
  OPENFILENAME ofn;
   char szFileName[MAX_PATH];

   ZeroMemory(&ofn, sizeof(ofn));
   szFileName[0] = 0;

   ofn.lStructSize = sizeof(ofn);
   ofn.hwndOwner = hwnd;
   ofn.lpstrFilter = "Text Files";
   ofn.lpstrFile = szFileName;
   ofn.nMaxFile = MAX_PATH;
   ofn.lpstrDefExt = "*.txt";
   GetSaveFileName(&ofn);

}

Verfasst: 11.08.2007 20:47
von mk-soft
*vermissePureBasicGUIEngine*
äh?

So gehts auch

Code: Alles auswählen

Debug SaveFileRequester("", "", "Text Files (*.txt)|*.txt", 0)
FF :wink:

Verfasst: 11.08.2007 21:34
von Fluid Byte
Ich verstehe dein Anliegen nicht. Du machst es in C++ und mit WinAPI aber wieso?

Verfasst: 11.08.2007 21:49
von ts-soft
Ich denke mal, die Aussage ist:
Warum einfach, wenns auch anders geht :lol:

Verfasst: 11.08.2007 22:20
von Andreas
Klar geht's auch einfacher, aber mehr Möglichkeiten hast Du mit API

http://www.purearea.net/pb/CodeArchiv/R ... Preview.pb

Verfasst: 11.08.2007 22:25
von Fluid Byte
Klar geht's auch einfacher, aber mehr Möglichkeiten hast Du mit API
Wissen wir, will aber keiner hier und ist auch nirgends erwähnt. Dieser Code reproduziert lediglich die nativen PB Befehle. Bleibt die Frage warum?

Verfasst: 11.08.2007 22:45
von mk-soft
Ich glaube er hatte ein erfolgserlebnis welches er uns mitteilen wollte.

Verfasst: 11.08.2007 22:48
von ts-soft
>> aber mehr Möglichkeiten hast Du mit API
Ja aber nur wenn ich diese benötige. In dem Beispiel wird davon kein Gebrauch gemacht.
Ohne API habe ich auch die Möglickeit es für Linux oder MacOS (ich nicht, hab keinen Mac) zu kompilieren.

Der Sinn des Postings von Forge entzieht sich mir, sieht aus wie:
Ätsch, ich kanns auch mit API und C++ und gehört somit hier nicht hin.

Verfasst: 11.08.2007 22:49
von PureBasic4.0
ts-soft hat geschrieben:Warum einfach, wenns auch anders geht :lol:
Warum einfach, wenns auch umständlich geht?

Verfasst: 11.08.2007 22:58
von edel
Der Titel sollte eher lauten : "Wie produziere ich Memoryleaks" .
Gerade in diesem Forum sollte doch darauf geachtet werden,
nicht das es noch jemand kopiert ;)