Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
Autor | Správa |
---|
Registrovaný: 27.09.07 Prihlásený: 31.12.15 Príspevky: 646 Témy: 233 | 233 Bydlisko: Dubnica nad... |
Mam taky problem ze pred spustenim programu chcem aby sa mi otvoril Form2, ten sa po nejakom case zavre a otvori sa Form1 kde je uz program... (Form2 - chcem mat ako uvitaciu "tabulu")...
ked som vlozil vyvolavaci prikaz takto:
Kód: #include <vcl.h> #include <stdio.h> #include<iostream.h> #pragma hdrstop
#include "Unit1.h" #include "Unit2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int j; Form2->Show(); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } vypisalo mi to toto: [C++ Error] Unit1.cpp(15): E2356 Type mismatch in redeclaration of 'Form2' [C++ Error] Unit2.h(29): E2344 Earlier declaration of 'Form2' [C++ Error] Unit1.cpp(15): E2141 Declaration syntax error ked som vlozil vyvolavaci prikaz takto: Kód: __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Form2->Show(); } zbytok programu....
presla kompilacia ale vypisalo mi takuto hlasku: EAccessViolation. a program vobec nespusti.
uz ma nic nenapada... 
_________________ Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader. Smartphone: Samsung Galaxy S5 mini |
|
Registrovaný: 11.01.09 Prihlásený: 27.02.25 Príspevky: 1397 Témy: 10 | 10 Bydlisko: Hrinova |
A je Form2 vytvorený ( lebo Access Violation je zápis do nealokovanej pamäte )? Ak nie, môžeš postupovať takto:
Kód: {
TForm2* Form2 = new TForm2( Application ); Form1->Hide(); Form2->ShowModal(); // modalne okno je také, na ktorého ukončenie sa čaká (tzn, kód nepokračuje, pokiaľ sa neuzavrie Form2 ) Form2->Hide(); delete Form2; Form1->Show();
}
Ak už je vytvorený, tak vynechaj prvý riadok v kóde, kde sa form vytvára.
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
Fico píše: A je Form2 vytvorený ( lebo Access Violation je zápis do nealokovanej pamäte )? Ak nie, môžeš postupovať takto: Kód: {
TForm2* Form2 = new TForm2( Application ); Form1->Hide(); Form2->ShowModal(); // modalne okno je také, na ktorého ukončenie sa čaká (tzn, kód nepokračuje, pokiaľ sa neuzavrie Form2 ) Form2->Hide(); delete Form2; Form1->Show();
} Ak už je vytvorený, tak vynechaj prvý riadok v kóde, kde sa form vytvára. ale on chcel pravdepodobne splashscreen , alebo zeby nie ?
|
|
Registrovaný: 11.01.09 Prihlásený: 27.02.25 Príspevky: 1397 Témy: 10 | 10 Bydlisko: Hrinova |
Z jeho popisu som to nepochopil. Nech si skúsi, či mu to vyhovuje takto. Keď nie, stačí sa ozvať.
_________________ Ak potrebujete pomoc s diagnostikou/opravou vasej elektroniky ( notebook, motherboard, GPU, a ine ), kontaktujte ma cez SS. |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
predpokladam ze Marek pouziva c++ builder a ten by mal byt podobny delphi.
v delphi je subor .dpr ktory riadi spustanie aplikacie
Kód: program Project1;
uses Forms, Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.
ak by v takomto subore nahradil TForm1 za TForm2 tak by aplikacia zacala najprv spustat okno form2 a form1 by mohlo byt vytvarane kodom okna form2. samozrejme za predpokladu ze c++ builder ma obdobny subor
|
|
Registrovaný: 27.09.07 Prihlásený: 31.12.15 Príspevky: 646 Témy: 233 | 233 Bydlisko: Dubnica nad... |
to co mi poradil Fico mi nefungovalo...
skusil som tu radu s Project1;
toto je jeho obsah:
Kód: #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("Unit1.cpp", Form1); USEFORM("Unit2.cpp", Form2); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->CreateForm(__classid(TForm2), &Form2); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; } // pridané po 58 sekundách od posledného príspevku upravil som ho takto: Kód: #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("Unit1.cpp", Form1); USEFORM("Unit2.cpp", Form2); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm2), &Form2); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; } // pridané po 1 minúte od posledného príspevku a do formu som pridal riadok : Kód: if ( ProgressBar1->Position == 100 ) { Close(); Form1->Show(); }
lenze prve okno mi zavre ale druhe uz neotvori, ukonci cely program. 
_________________ Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader. Smartphone: Samsung Galaxy S5 mini |
|
Registrovaný: 11.01.09 Prihlásený: 27.02.25 Príspevky: 1397 Témy: 10 | 10 Bydlisko: Hrinova |
Skús to prehodiť:
Kód: if ( ProgressBar1->Position == 100 ) {
Form1->Show(); Close();
}
|
|
Registrovaný: 27.09.07 Prihlásený: 31.12.15 Príspevky: 646 Témy: 233 | 233 Bydlisko: Dubnica nad... |
nie nepomohlo to,to bude treba nejako upravit v tom Project1 ale neviem ako... nic ma nenapada
_________________ Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader. Smartphone: Samsung Galaxy S5 mini |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
nedavaj close() to zatvori aj aplikaciu ktora ho vytvorila, lebo prve okno v poradi je Main okno. daj radsej Form2->Hide()
edit:
radsej skus takto :
Kód: #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("Unit1.cpp", Form1); USEFORM("Unit2.cpp", Form2); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { TForm2* Form2 = new TForm2( Application ); Form2->Show(); Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; }
a zatvorenie form2 mozes nechat tam kde je
|
|
Registrovaný: 27.09.07 Prihlásený: 31.12.15 Príspevky: 646 Témy: 233 | 233 Bydlisko: Dubnica nad... |
Uz som to poriesil takto:
V Project1 som zamenil riadky:
Kód: Application->CreateForm(__classid(TForm2), &Form2); Application->CreateForm(__classid(TForm1), &Form1);
A vo Forme2 som upravil timmer takto: Kód: void __fastcall TForm2::Timer1Timer(TObject *Sender) { ProgressBar1->Position++;
// zatvorenie okna po dokonceni brogressbaru if ( ProgressBar1->Position == 100 ) { Form1->Show(); Form2->Hide(); }
} ale teraz mam problem zo zatvorenim programu nakoniec... nechce mi to ukoncit program cez "cerveny krizik v pravo hore! musim si vytrvorit v menu koniec s prikazom: Kód: Form1->Close(); Form2->Close();
Naco vlastne sluzi funkcia Hide() ?
_________________ Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader. Smartphone: Samsung Galaxy S5 mini |
|
Registrovaný: 11.01.09 Prihlásený: 27.02.25 Príspevky: 1397 Témy: 10 | 10 Bydlisko: Hrinova |
HIde() iba schová okno ( nastaví visible na false ). To znamená, že okno je stále aktívne, iba ho nie je vidieť.
_________________ Ak potrebujete pomoc s diagnostikou/opravou vasej elektroniky ( notebook, motherboard, GPU, a ine ), kontaktujte ma cez SS. |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
Marek Adamec píše: ale teraz mam problem zo zatvorenim programu nakoniec... nechce mi to ukoncit program cez "cerveny krizik v pravo hore! musim si vytrvorit v menu koniec s prikazom: Kód: Form1->Close(); Form2->Close(); Naco vlastne sluzi funkcia Hide() ?
kedze si nevytvoril form2 pred inicializovanim aplikacie tak sa stal oknom Main a aplikaciu zatvara ono . bud si to zmen tak ako som ti predtzm navrhol alebo vo form1 v evente onClose si daj Application->terminate
|
|
Registrovaný: 27.09.07 Prihlásený: 31.12.15 Príspevky: 646 Témy: 233 | 233 Bydlisko: Dubnica nad... |
coldak píše: nedavaj close() to zatvori aj aplikaciu ktora ho vytvorila, lebo prve okno v poradi je Main okno. daj radsej Form2->Hide() edit: radsej skus takto : Kód: #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("Unit1.cpp", Form1); USEFORM("Unit2.cpp", Form2); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { TForm2* Form2 = new TForm2( Application ); Form2->Show(); Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; }
a zatvorenie form2 mozes nechat tam kde je
toto vypise potom:
[C++ Error] Project1.cpp(13): E2450 Undefined structure 'TForm2'
[C++ Error] Project1.cpp(13): E2034 Cannot convert 'TApplication *' to 'TForm2'
[C++ Error] Project1.cpp(14): E2315 'Show' is not a member of 'TForm2', because the type is not yet defined
[C++ Warning] Project1.cpp(27): W8004 'Form2' is assigned a value that is never used
[C++ Error] Project1.cpp(40): E2451 Undefined symbol 'exception'
_________________ Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader. Smartphone: Samsung Galaxy S5 mini |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
tak skus dat to initialize pred TForm2* Form2 = new TForm2( Application );
|
|
Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
 | v Delphi, Visual Basic | 4 | 675 | 20.12.2011 20:51 wiini |  | v Assembler, C, C++, Pascal, Java | 11 | 1279 | 15.07.2009 11:45 stopa27 |  | v Assembler, C, C++, Pascal, Java | 1 | 545 | 29.12.2008 20:42 neutronmind |  | v Assembler, C, C++, Pascal, Java | 7 | 1817 | 23.05.2010 20:28 capricorn7 |  | v Siete | 0 | 571 | 14.03.2011 18:56 labtec222 |  | v JavaScript, VBScript, Ajax | 5 | 475 | 07.10.2010 14:49 coldak |  | v HTML, XHTML, XML, CSS | 4 | 625 | 18.03.2009 10:19 myxall |  | v Delphi, Visual Basic | 2 | 897 | 03.06.2009 14:38 B.A.X.O |  | v HTML, XHTML, XML, CSS | 3 | 447 | 14.01.2012 14:16 1daemon1 |  | v Notebooky a netbooky | 3 | 1009 | 27.04.2009 21:18 Jaro |  | v Assembler, C, C++, Pascal, Java | 5 | 806 | 08.07.2014 20:40 XOLOO |  | v Ostatné programy | 5 | 1145 | 17.11.2006 22:37 krocan |  | v Siete | 2 | 916 | 03.01.2012 1:16 MFSBoban |  | v Siete | 2 | 803 | 01.09.2012 0:19 mtxd |  | v Operačné systémy Microsoft | 2 | 415 | 27.11.2019 19:51 milan1966 |  | v Monitory, televízory a projektory | 10 | 1170 | 14.01.2019 15:36 Patrikan |
|