Formulare
-
Hi, kann mir jemand schnell sagen, wie ich ein Formular aus einem anderen Formular öffnen kann?
-
suchfunktion benutzen! formular über onclick öffnen
-
Danke!
-
Hmm, ich hab das so gemacht, wie du das im andren thread geschrieben hast, aber jetzt bekomme ich eine AcessViolation error meldung wenn ich Form2->Show() mache. Woran liegt das?
-
Original erstellt von StudentJojo:
wenn ich Form2->Show() macheWo bzw. wann "machst du" Form2->Show()? Im OnCreate-Event der Form1 zB. wird das nichts, weil Form2 zu diesem Zeitpunkt noch nicht existiert.
-
ich habs einmal in nem onclick ereignis getestet, und einmal im create (da gehts ja ned, wie du gesagt hast, seh ich ein) aber beim andren???
-
@StudentJojo: Zeig doch mal deinen ganzen Quelltext...
-
Ok, ich war bisschen hohl, hab vergessen das Form2->Show() im create ereignis auszukommentieren... Im onclick funktioniert es wunderbar!
Aber jetzt hab ich immer noch folgendes problem, das Form2 soll automatisch gestartet werden, wie mach ich das?
-
wann denn??? beim Programmstart? Dann setz doch im Objektinspektor einfach Visible auf true!?
dussel...
[ Dieser Beitrag wurde am 26.05.2003 um 19:23 Uhr von aaaabyx editiert. ]
-
So einfach ist es leider auch nicht, bei meinem Programm wird eine Datei durchsucht, und wenn es den entsprechenden Eintrag findet, soll eben dieses Formular geöffnet werden...
-
vielleicht sagst du uns doch einfach mal, wie du das alles machst (postest Quelltext zum Beispiel), dann können wir dir sagen, wie du das machst...
-
void __fastcall TForm1::FormCreate(TObject *Sender) { DWORD nSize; char user_name[255]; nSize=sizeof(user_name); GetUserName(user_name, &nSize); Label2->Caption=user_name; time_t now = time(NULL); tm temp = *(localtime(&now)); int day=temp.tm_mday; int month=1+temp.tm_mon; int year=1900+temp.tm_year; //test int xyz=1; string ausgabe; string leer; string text; int anz=0; char ch; string dayt; string montht; string yeart; int dayi; int monthi; int yeari; ifstream file("data.dat"); getline(file, leer); while(!file.eof()) { file.get(ch); while(0!=isdigit(ch)) { dayt+=ch; file.get(ch); } file.get(ch); while(0!=isdigit(ch)) { montht+=ch; file.get(ch); } file.get(ch); while(0!=isdigit(ch)) { yeart+=ch; file.get(ch); } sscanf(dayt.c_str(),"%d",&dayi); sscanf(montht.c_str(),"%d",&monthi); sscanf(yeart.c_str(),"%d",&yeari); if (dayi==day&&monthi==month) { file.seekg(0,ios::cur); getline(file, text); // Form2->Show(); //So wollte ich es eigentlich machen.. // Form2->Label1->Font->Color=clRed; // Form2->Label1->Caption=text.c_str(); dayt=""; montht=""; yeart=""; text=""; xyz=0; } else { dayt=""; montht=""; yeart=""; getline(file, leer); } } file.close(); if (xyz!=0) { Label3->Font->Color=clBlack; Label3->Caption="Heute muss ich sie an nichts erinnern!"; } }
Edit:
Bitte die Code-Tags benutzen. Danke![ Dieser Beitrag wurde am 26.05.2003 um 19:53 Uhr von Jansen editiert. ]
-
Und warum willst du gleich beim erstellen der Form einen Text durchsuchen???
Guck mal, wenn du einen Beitrag schreibst, unter das Editfeld, da steht C++Code, das sind die CodeTags... Weil du die nicht benutzt hast sieht das hier so fürchterlich aus...
Naja, egal, benutz einfach nicht OnCreate sondern OnShow
[ Dieser Beitrag wurde am 26.05.2003 um 19:47 Uhr von aaaabyx editiert. ]
-
void __fastcall TForm1::FormShow(TObject *Sender)
Klappt ned, wie gehd OnShow?
-
Natürlich geht das...
-
void __fastcall TForm1::FormShow(TObject *Sender) { MessageBox(NULL,"kk", "JJ", MB_OK); }
Ok, jetzt gehts, ich hab bloss immer noch leichte Probleme mit der Syntax... auf jedenfall Danke für eure Hilfe!
[ Dieser Beitrag wurde am 26.05.2003 um 20:44 Uhr von StudentJojo editiert. ]
-
Bitte, keine Ursache...
-
Jetzt hab ich nochma nen Problem: Wenn ich jetzt ein Form2 aufrufe, kann ich dann machen, dass die Ausführung des Codes im Form1 solange gestoppt wird, bis ich Form2 schliesse?
-
ShowModal ???
-
Ja, danke!