Problemy z borland builderem

0

Od niedawna zacząłem programować w C++ builderze (Community Edition 10.3), po skompilowaniu kodu, program nie otwiera się, nie pojawia się żaden komunikat błędu. Gdy próbuję otworzyć program nie poprzez kompilator - naciskając na niego dwukrotnie ten także się nie otwiera. Na pewno nie jest to problem związany z brakiem materiału do wyświetlenia. Czy ktoś wie co mogło pójść nie tak? Dodam jeszcze że program pokazuje się w menedżerze zadań jako uruchomiony.

0

Pokaż ten program. Może nie zauważasz jak zamyka się konsola albo nie dałeś dyrektywy apptype ?

0
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <algorithm>
#include <fstream>
#include <string>
#include <windows.h>
using namespace std;
TSchool *School;
//---------------------------------------------------------------------------
__fastcall TSchool::TSchool(TComponent* Owner)
	: TForm(Owner)
{
}

//---------------------------------------------------------------------------
void __fastcall TSchool::FormShow(TObject *Sender)
{
fstream name_file;
string name;

name_file.open("User.txt" , ios::in | ios::out);
if(name_file.bad()==true)
{
School->Error1_label->Visible=true;
School->Error1_button->Visible=true;
}
getline(name_file, name);
if(name.size()==0)
{
	School->Name_label->Visible=true;
	School->Name_edit->Visible=true;

	do
	{
	AnsiString name = School->Name_edit->Text;
	}while(name.size()==0);

	name_file<<name;
	School->Name_label->Visible=false;
	School->Name_edit->Visible=false;
}

name_file.close();
}
1

A to co to :

do
{
AnsiString name = School->Name_edit->Text;
}while(name.size()==0);

Jesteś pewien, że ta pętla się kończy bo wg mnie nie... W ogóle wywal ją. Jak chcesz analizować zawartość pól tekstowych to do tego służą odpowiednie zdarzenia.

0

A co w tej pętli jest nie tak? AnsiString musiałem dodać bo inaczej mi nie chciał się skompilować...

0
Author napisał(a):

A co w tej pętli jest nie tak? AnsiString musiałem dodać bo inaczej mi nie chciał się skompilować...

Jak pracujesz na formularzach musisz zmienić sposób myślenia na obiektowo zdarzeniowy.
A tutaj wygląda jak byś na coś czekał i tym samym funkcja FormShow nie kończy się a tym samym program się nie pokazuje ( wisi ).

W komponencie Name_edit użyj zdarzenia onChange .

0

Rozumiem pętla nigdy się nie skończy i to dlatego się nie pokazuje, ale czy dobrze myślę że trzeba wstawić tę pętlę w inny "Formularz"?

0

Jak masz name puste to leci w nieskończoność pętla bo się spełnia name.size()==0

0
Author napisał(a):

Rozumiem pętla nigdy się nie skończy i to dlatego się nie pokazuje, ale czy dobrze myślę że trzeba wstawić tę pętlę w inny "Formularz"?

Nie ma być żadnej pętli. Masz wykorzystywać zdarzenia.

0

Dziękuję !

1 użytkowników online, w tym zalogowanych: 0, gości: 1