Witam. Napisałem dość prosty pogram który liczy z prostych wzorów matematycznych. Śmiga on ładnie, a dane pobiera z dwóch Edit'ów. Lecz gdy użytkownik pozostawi puste okienko to program się wali. I chciałbym zrobić taki warunek aby program automatycznie wyświetlał komunikat o tym że jeden Edit pozostał pusty. Teorytycznie wiem jak to zrobić ale w praktyce program i tak się wali. Mógłby ktoś bardziej doświadczony zerknąć na mój kod. Z góry dziękuję ;) Poniżej fragment kodu na którym pracuję.
if(Interpolacja->ItemIndex==2)
{
if(Edit3->Text.ToInt() == NULL)
{
Memo1->SetSelTextBuf("Wpisz wartosc wykladnika potegi\r\n");
ShowMessage("Wpisz wartosc wykladnika potegi");
}
else
{
if(Edit4->Text.ToInt()>0)
{
//obliczamy odlegosci do wezla pierwszego dla wszystkich sondazy
int indeks2=0;
for(int j=0; j<=3; j++)
{
indeks2=j;
zbior_wezlow[indeks2];
for(int i=0; i<8; i++)
{
zbior_sondazy[i].d=sqrt(pow(zbior_sondazy[i].x-
zbior_wezlow[j].x,2.0)+pow(zbior_sondazy[i].y-zbior_wezlow[j].y,2.0));
}
//ustalamy zbior o zadanej liczbie sondazy
int indeks=0;
double suma_h_d=0;
double suma_1_d=0;
for(int n=0; n<Edit4->Text.ToInt();n++)
{
for(int i=0; i<8; i++)
{
if(zbior_sondazy[indeks].d>zbior_sondazy[i].d)
{
indeks=i;
}
}
suma_h_d+=(zbior_sondazy[indeks].h/pow(zbior_sondazy[indeks].d,Edit3->Text.ToInt()));
suma_1_d+=(1.0/pow(zbior_sondazy[indeks].d,Edit3->Text.ToInt()));
//podstawienie wartosci odleglosci z poza zakresu
zbior_sondazy[indeks].d=100000000;
}
//podstawiamy glebokosc sredniej wazonej odwrotnoscia odlegosci
zbior_wezlow[indeks2].h=suma_h_d/suma_1_d;
}
Memo1->SetSelTextBuf("METODA SREDNIEJ WAZONEJ ODWROTNOSCIA ODLEGLOSCI\r\n");
Memo1->Lines->Add("------------------------------------------------------------------------------------------------------------");
Memo1->SetSelTextBuf("Wykladnik potegi: ");
Memo1->SetSelTextBuf(Edit3->Text.c_str());
Memo1->SetSelTextBuf("\r\n");
Memo1->SetSelTextBuf("Liczba punktow do interpolacji: ");
Memo1->SetSelTextBuf(Edit4->Text.c_str());
Memo1->SetSelTextBuf("\r\n");
Memo1->SetSelTextBuf("Węzeł nr1: ");
Memo1->SetSelTextBuf(FloatToStrF(zbior_wezlow[0].h, ffFixed, 4,2).c_str());
Memo1->SetSelTextBuf("\r\n");
Memo1->SetSelTextBuf("Węzeł nr2: ");
Memo1->SetSelTextBuf(FloatToStrF(zbior_wezlow[1].h, ffFixed, 4,2).c_str());
Memo1->SetSelTextBuf("\r\n");
Memo1->SetSelTextBuf("Węzeł nr3: ");
Memo1->SetSelTextBuf(FloatToStrF(zbior_wezlow[2].h, ffFixed, 4,2).c_str());
Memo1->SetSelTextBuf("\r\n");
Memo1->SetSelTextBuf("Węzeł nr4: ");
Memo1->SetSelTextBuf(FloatToStrF(zbior_wezlow[3].h, ffFixed, 4,2).c_str());
Memo1->SetSelTextBuf("\r\n");
Memo1->SetSelTextBuf("\r\n");
}
else
{
Memo1->SetSelTextBuf("Liczba punktów do interpolacji nie może byc mniejsza niż zero\r\n");
ShowMessage("Liczba punktów do interpolacji nie może byc mniejsza niż zero");
}
}
}