EDIT: Falsche Form gestartet



  • Hallo ich habe ein Programm mit 3 Formen.
    Form 1 heißt MAIN
    Form 2 heißt FILEC
    Form 3 heißt FORMSAVEDATA

    beim hinzufügen von Form 2 ging alles gut und es geht
    aber als ich nummer 3 hinzugefügt habe kam folgende Meldung vom Compiler:

    [ILINK32 Fehler] Error: Nicht auflösbares externes '_Form1' referenziert von C:\DOKUMENTE UND EINSTELLUNGEN\TIM\EIGENE DATEIEN\RAD STUDIO\PROJEKTE\DEBUG\FILECODEX2PROJECT.OBJ

    und

    [ILINK32 Fehler] Error: Nicht auflösbares externes 'TForm1::' referenziert von C:\DOKUMENTE UND EINSTELLUNGEN\TIM\EIGENE DATEIEN\RAD STUDIO\PROJEKTE\DEBUG\FILECODEX2PROJECT.OBJ

    Ich weiß nicht was das heißen soll 😕 .
    ich lasse in den hauptteil des Progs die header der anderen Formen includen.

    Bitte um Hilfe Danke



  • Greifst Du von Form3 direkt auf Form1 zu?
    Dann muss auch rückwärts includiert werden.

    Gruss
    Frank



  • nein ich greife nur von 1 auf 3 zu. (bzw von 1 auf 2)
    1 ist in 3 nicht (mehr) includiert.
    was ich komisch finde ist dass er mir das ausgibt:

    C:\DOKUMENTE UND EINSTELLUNGEN\TIM\EIGENE DATEIEN\RAD STUDIO\PROJEKTE\DEBUG*FILECODEX2PROJECT.OBJ*

    weil das ist die zweite form, an der hab ich nix geändert



  • noch mehr infos ? hier bitte:

    so lasse ich die formen aufrufen:

    FORMSAVEDATA = new FORMSAVEDATA(Application);
    FORMSAVEDATA->ShowModal();
    delete FORMSAVEDATA;
    

    oder für nummer 2

    FILEC = new TFILEC(Application);
    FILEC->ShowModal();
    delete FILEC;
    

    und die includes in der main cpp

    #include "CodeX2combined.h"
    #include "FileCodeX2.h"
    #include "SAVEDATA.h"
    

    mehr nicht

    EDIT ein c zu viel



  • Tim06TR schrieb:

    [ILINK32 Fehler] Error: Nicht auflösbares externes '_Form1' referenziert von C:\DOKUMENTE UND EINSTELLUNGEN\TIM\EIGENE DATEIEN\RAD STUDIO\PROJEKTE\DEBUG\FILECODEX2PROJECT.OBJ

    Das Modul "Filecodex2project.cpp" referenziert die globale Variable "Form1" zu, jedoch wird diese nirgendwo definiert.

    Tim06TR schrieb:

    [ILINK32 Fehler] Error: Nicht auflösbares externes 'TForm1::' referenziert von C:\DOKUMENTE UND EINSTELLUNGEN\TIM\EIGENE DATEIEN\RAD STUDIO\PROJEKTE\DEBUG\FILECODEX2PROJECT.OBJ

    Das Modul "Filecodex2project.cpp" referenziert die VMT der Klasse TForm1, jedoch wird diese nirgendwo definiert.

    Meine Vermutung: "Filecodex2project.cpp" ist deine Projektdatei (also diejenige Datei, die WinMain() enthält) und verweist auf TForm1, jedoch hast du das Unit, das TForm1 enthält, nicht dem Projekt hinzugefügt.

    DerAltenburger schrieb:

    Greifst Du von Form3 direkt auf Form1 zu?
    Dann muss auch rückwärts includiert werden.

    Das kann bei Linkerfehlern als Ursache ausgeschlossen werden 😉



  • verdammt du hattest recht danke da stand:

    USEFORM("FileCodeX2.cpp", Form1);
    

    aber das ist ja falsch und muss:

    USEFORM("FileCodeX2.cpp", FILEC);
    

    heißen jetzt compiliert er danke



  • huch was ist nun kaputt ?
    er kompiliert jetzt Filec Form als hauptteil.
    was hab ich jeztz verändert ? eig nur
    die FileCodeX2Project.cpp

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    #include <tchar.h>
    //---------------------------------------------------------------------------
    USEFORM("FileCodeX2.cpp", FILEC);
    //---------------------------------------------------------------------------
    WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
    {
    	try
    	{
    		Application->Initialize();
    		Application->MainFormOnTaskBar = true;
    		Application->CreateForm(__classid(TFILEC), &FILEC);
    		Application->Run();
    	}
    	catch (Exception &exception)
    	{
    		Application->ShowException(&exception);
    	}
    	catch (...)
    	{
    		try
    		{
    			throw Exception("");
    		}
    		catch (Exception &exception)
    		{
    			Application->ShowException(&exception);
    		}
    	}
    	return 0;
    }
    //---------------------------------------------------------------------------
    

    so sieht sie jetzt aus, er soll aber die andere starten...
    hmpf



  • Menü "Projekt->Optionen" den Kartenreiter "Formulare" auswählen, da in der Combobox "Hauptformular" die gewünschte Formularklasse auswählen, fertig.



  • Hallo

    Fragen zum Thema Hauptform wechseln bitte in den neuen Thread

    bis bald
    akari


Anmelden zum Antworten