TOpenDialog



  • int iEreignis = Application->MessageBoxA("Es konnte keine Initialisierungsdatei "
                                                   "festgestellt werden.\nBitte geben sie "
                                                   "den korrekten Dateipfad für die Datei "
                                                   "\"TimeCollect.ini\" an", "MELDUNG!",
                                                   MB_OKCANCEL);
    
          if( iEreignis == 1 )
          {
    
             if( OpenDialog->Execute() )
             {
                m_asINIPfad = OpenDialog->FileName;
             }       
    
          }
          else
          {
             exit(0);
          }
    


  • Er geht zwar bis an die Stelle des Execute(), aber er zeigt nicht den Dialog auf dem Bildschirm an!



  • Wenn ich den gleichen Code in eine __fascall - methode setze so geht es. Doch wenn ich es versuche in einer Klassenmethode auszuführe die ich selbst geschrieben habe, dann macht er das nicht!



  • Wenn deine "selbstgeschriebene" Methode KEIN Mitglied der Klasse des Formulars ist,und du die Komponente TOpendialog in dein Formular gezogen hast, musst du den Formularname voransetzen:

    Form1->Opendialog1->Execute();



  • Warum heisst das bei dir MessageBoxA??



  • Das geht trotzdem nicht! Er will einfach nicht angezeigt werden.
    Habe jetzt mal dein Tipp verfolgt und habe den Formnamen davor gesetzt.
    Kann es auch noch an etwas anderes liegen?

    Weiß auch nicht warum das bei mir MessageBoxA heißt. Ein normales MessageBox gibt es bei mir garnicht!



  • Da wird mehr Code und Information benötigt:

    Wo und wie hast du TOpenDialog erzeugt? (Manuell oder per Komponente)

    Zeige die komplette Funktion, in der du dann TOpendialog aufrufst (von vorne bis hinten)



  • Der TOpenDialog habe ich als Komponente auf mein Form gezogen!

    Hier mal die Funktion:

    void TAnmeldeFormular::ueberpruefeINIExistenz()
    {
    
       m_asINIPfad = "\E:\\TIME_COLLECT_ENTWICKLUNG\\TimeCollect\\TimeCollect.ini";
    
       if (FileExists(m_asINIPfad))
       {
          ;
       }
       else
       {
          int iEreignis = Application->MessageBoxA("Es konnte keine Initialisierungsdatei "
                                                   "festgestellt werden.\nBitte geben sie "
                                                   "den korrekten Dateipfad für die Datei "
                                                   "\"TimeCollect.ini\" an", "MELDUNG!",
                                                   MB_OKCANCEL);
    
          if( iEreignis == 1 )
          {
    
             if( OpenDialog->Execute() )
             {
                m_asINIPfad = AnmeldeFormular->OpenDialog->FileName;
             }
    
          }
          else
          {
             exit(0);
          }
    
       }
    
    }
    

    Und hier ein Klassenausschnitt:

    class TAnmeldeFormular : public TForm
    {
    __published:	// Von der IDE verwaltete Komponenten
       TPanel *Panel1;
       TPanel *Panel2;
       TImage *Image;
       TLabel *Label1;
       TLabel *Label2;
       TLabel *Label3;
       TEdit *EditPasswort;
       TLabel *Label4;
       TLabel *Label5;
       TButton *ButtonOK;
       TButton *ButtonAbbruch;
       TLabel *Label6;
       TLabel *Label7;
       TLabel *LabelKontoAendern;
       TPanel *Panel3;
       TEdit *EditBenutzer;
       [b]TOpenDialog *OpenDialog;[/b]
       void __fastcall ButtonAbbruchClick(TObject *Sender);
       void __fastcall ButtonOKClick(TObject *Sender);
       void __fastcall EditPasswortKeyPress(TObject *Sender, char &Key);
       void __fastcall LabelKontoAendernMouseEnter(TObject *Sender);
       void __fastcall LabelKontoAendernMouseLeave(TObject *Sender);
       void __fastcall LabelKontoAendernClick(TObject *Sender);
    
    ....
    
    };
    


  • Kann nix erkennen bezüglich des Dialoges

    Schicke mir das Projekt mal zu cecke@marquardtnet.info



  • Hab das Problem erst mal umgangen, mache da aber morgen weiter! Werde mich dann nochmal melden! Danke aber schon mal für die Hilfe!

    Gruß


Anmelden zum Antworten