Save- & OpenFileRequester

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Save- & OpenFileRequester

Beitrag 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);

}
Benutzeravatar
mk-soft
Beiträge: 3856
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

*vermissePureBasicGUIEngine*
äh?

So gehts auch

Code: Alles auswählen

Debug SaveFileRequester("", "", "Text Files (*.txt)|*.txt", 0)
FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Ich verstehe dein Anliegen nicht. Du machst es in C++ und mit WinAPI aber wieso?
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich denke mal, die Aussage ist:
Warum einfach, wenns auch anders geht :lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andreas
ToolbarKönig
Beiträge: 142
Registriert: 08.09.2004 08:33

Beitrag von Andreas »

Klar geht's auch einfacher, aber mehr Möglichkeiten hast Du mit API

http://www.purearea.net/pb/CodeArchiv/R ... Preview.pb
Gruss Andreas
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag 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?
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
mk-soft
Beiträge: 3856
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Ich glaube er hatte ein erfolgserlebnis welches er uns mitteilen wollte.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

ts-soft hat geschrieben:Warum einfach, wenns auch anders geht :lol:
Warum einfach, wenns auch umständlich geht?
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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 ;)
Antworten