Speichern unter... Dialog



  • Hallo ich bin erst 14 und noch ein ziemlicher Anfänger. Aber ich möchte meinen Texteditor nun auch mit einer "speichern unter.." und nicht nur "speichern" Funktion versehen. Wenn mir jemand eine gute und ausführliche antwort geben könnte wäre ich dankbar. auch wo ich diesen code dann eingeben muss mchte ich wissen. Also bedanke ich schon mal für die Antworten.
    LG





  • danke auch wenn der erste link unnötig war. das forum hatte ich schon gelesen. Umd ich habe zuerst reines c++ gelernt, weil ich zu anfang keine ahnung vom programmieren hatte. Und ein Buch vom selben Autor, der das buch, mit dem dem ich c++ gelernt habe, gesdchrieben hat, hat auch das buch mit dem ich jetzt versuche visual c++ zu lernen. Und auch danke für die nette Begrüssung...



  • Und auch danke für die nette Begrüssung...

    Keine Ursache.

    Im MSDN Link befindet sich ein Bsp.



  • Nun stehe ich vor dem nächsten Problem:
    Angenommen ich möchte jetzt eine txt datei öffnen und öffne sie per "öffnen mit" und dann wähle ich meinen Texteditor aus. Die datei wird aber nicht geladen. Wie kann ich das so verändern, dass die datei geladen wird? Und wie mache ich einen Dialog mit 3 auswahlmöglichkeiten? Bei meiner Fassung

    //Schließt die Anwendung
    if (dialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
    			{
    				Close();
    			}			
    //speichert die Anwendugn auf dem Button speichern unter			
    if (dialog1->ShowDialog() == System::Windows::Forms::DialogResult::Yes)
    			{
    				Stream^ myStream;
    				SaveFileDialog^ saveFileDialog1 = gcnew SaveFileDialog;
    				saveFileDialog1->Filter = "Textdateien (*.txt)|*.txt|Alle Dateien|*.*";
    				saveFileDialog1->FilterIndex = 2;
    				saveFileDialog1->RestoreDirectory = true;
    				if ( saveFileDialog1->ShowDialog() == DialogResult)
    					{
    						if ( (myStream = saveFileDialog1->OpenFile()) != nullptr )
    							{
    
    								// Code to write the stream goes here.
    								myStream->Close();
    							}
    					}
    				Close();
    

    wird zwei mal dasselbe dialogfenster geöffnet wenn man speichern unter benutzt. Ich hoffe ir kann iner helfen.



  • Dann speicher doch das Ergebnis des ersten Aufrufs - du hast dort zweimal ShowDialog() aufgerufen, also was erwartest du?

    DialogResult res = dialog1->ShowDialog();
    if(res == System::Windows::Forms::DialogResult::OK)
    {
      close()
    }
    else if(res == System::Windows::Forms::DialogResult::Yes)
    {
      ...
    }
    


  • das hab ich auch schon bemerkt warum es so ist. allerdings nicht wie ich es beheben kann. Aber iwie funktioniert es nicht richtig.
    "1>c:\...\texteditor\Form1.h(433): error C2065: 'res': nichtdeklarierter Bezeichner"



  • Vollständig muss es natürlich

    System::Windows::Forms::DialogResult res = dialog1->ShowDialog();
    

    heißen. Das braucht man aber nur, wenn man den Namensraum System::Windows::Forms nicht eingebunden hat.



  • Achso. Gut danke



  • So zwei Fragen: 1. Wie unterbreche ich das FormClosed event?
    2. Wie kann ich eine Datei extern öffnen, dass heißt ich möchte, dass, wenn ich ein Dokument im Windows Explorer öffne, Ich dafür den Texteditor verwenden kann.

    Schon mal danke für die (hoffentlich hilfreichen) Antworten.



  • -dieser Beitrag wurde gelöscht-



  • Der Text-Editor geht mit auf, wenn du dein Betriebssystem dazu veranlasst:

    System::Diagnostics::Process::Start(L"http://www.c-plusplus.net/");
    

    Im Beispiel geht der Standardbrowser auf. Du übergibst als Argument den vollständigen Pfad deiner Text-Datei.



  • geht das auch, wenn ich nur z.B. *.txt eingebe?
    denn sonst müsste ich ja Jede Text datei auf dem Computer einzeln verlinken....



  • Willst du die Datei aus deinem Programm heraus öffnen? Oder den txt-Dateityp in Windows mit deinem Programm verknüpfen?



  • das zweite
    also wie ich es als standard programm einrichten müsste weiß ich. allerdings öffnet sich dan nur eine leere textdatei



  • Also das event unterbrechen krieg ich jetzt schon hin, allerdings mit dem externen öffnen...


Anmelden zum Antworten