forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Работа нескольких программ в одной (http://forum.boolean.name/showthread.php?t=6352)

anton_obuhov 09.09.2008 18:09

Работа нескольких программ в одной
 
Суть проблемы такова
есть меню в меню 5 задач при входе в задачу создаются textField-ы соответствующие ну там вводиш и нажимаеш это понятно. Проблема вот в чем я написал решение квадратного уравнения которое включается при выборе пункта и при выборе второго пункта сделал решение другой задачи, квадратное запускается а вторая не хочет просто выходит из приложения, ошибок нет, все одинаково:''((

Romanzes 09.09.2008 19:20

Ответ: Работа нескольких программ в одной
 
Ты бы лучше исходник показал, а то так как ты сформулировал, трудно понять, что ты хочешь.

anton_obuhov 10.09.2008 04:32

Re: Работа нескольких программ в одной
 
PHP код:

program Geodezia;
var 
Prgeod,Obrgeod,KBYravnenie,Uclon:integer//Название Геодезических задач
     
Oshcibki:integer;
     
textField_id:integer;        //Едит для ввода информации во всех задачах
     
L1,L23,B2pr:integer;                     //Переменные для решения задачи
     
show,okcommand,clicked:command//Здесь будут все команды для приложения 
     
Perema,Peremb,Peremc,Discrim,x1,x2:integer;           //Для кв.Уравнения 
     
Ha,Hb,Dab,I,hab:integer;//Решение задачи для рассчета уклона в процентах
     
Ha1,Hb1,Dab1,I1,hab1:real;
     
Formirovanie_otveta:string;                          //Обработка ответов
     
Perema1,Peremb1,Peremc1,Discrim1:real;
     {&
#1044;оработка всех переменных в будуещем используемых в решении}
begin
ShowMenu
('Выберите задачу',CH_Implicit);
Prgeod := menuAppendString('Прямая геодезическая');
Obrgeod := menuAppendString('Обратная геодезическая');
KBYravnenie := menuAppendString('Квадратное уравнение');
Uclon := menuAppendString('Рассчет уклона');
Oshcibki := menuAppendString('Теория ошибок');
{&
#1044;оработка меню}
// Начало Создания функций выбора в программе по геодезии
show:=createCommand('Выбрать',CM_SCREEN,1);
addcommand(show);
repeat
 delay
(100);
 
Clicked:=getclickedcommand;
until clicked=show;
// Начало программы решения квадратного уравнения 
if menugetselectedindex KBYravnenie then
Begin
ShowForm
;
 
     while 
true do //запускаем бесконечный цикл 
     
begin 
     okCommand 
:= createCommand('OK'CM_OK1);    
     
showForm;    
     
addCommand(okCommand);   
Perema:=formaddtextfield('Введите a','',20,TF_Numeric);
Peremb:=formaddtextField('Введите b','',20,TF_Numeric);
Peremc:=formaddtextField('Введите c','',20,TF_Numeric);
//Ожидание нажатия ок
While(getclickedCommand<>okcommand) do
delay (100);
   
//Создаем дополнительные переменные для результата REAL
Perema1:=StringtoReal(formgettext(Perema),10);
Peremb1:=StringToReal(formgettext(Peremb),10);
Peremc1:=StringToReal(formgettext(Peremc),10);
Discrim1:=Stringtoreal(formgettext(Discrim),10);
   
//Само решение квадатного уравнения,используя переменные типа REAL 
Discrim1:=(Peremb1*Peremb1)-(4*Perema1*Peremc1);
Formirovanie_otveta := 'D ='+Peremb1+'*'+peremb1+'(4 *'+Perema1+' *'+Peremc1+')';
Formirovanie_otveta := 'ответ'+Discrim1+'';
showCanvas
drawtext(Formirovanie_otveta0,0);
repaint;
delay(20000);
if 
Discrim1 <0 then
Drawtext
('Корней в уравнении НЕМА',0,0);
repaint;
delay(20000);
 

{&
#1058;ут будет завершено создание квадратного уравнения}

     
{&#1058;ело программы}
     
end;
     
if 
menugetselectedindex Uclon then
begin
ShowForm
;
     while 
true do //запускаем бесконечный цикл 
     
begin 
     okCommand 
:= createCommand('OK'CM_OK1);    
     
showForm;    
     
addCommand(okCommand); 
Ha:=formaddtextField('Введите HA','',20,TF_Numeric);
Hb:=formaddtextField('Введите HB','',20,TF_Numeric);
Dab:=formaddtextField('Введите Dab','',10,TF_Numeric);
While(
getclickedCommand<>okcommand) do
delay (100);
Ha1:=StringToREal(formgettext(Ha),10);
Hb1:=StringToReal(formgettext(Hb),10);
Dab1:=StringToReal(formgettext(Dab),10);
I1:=StringTOReal(formgettext(I),10);
hab1:=StringToReal(formgettext(hab),10);
hab1:=Hb-Ha;
I1:=(hab1/Dab1)*100;
end;
end;
end;
end


То что выделено красным даже не появляется помогите

anton_obuhov 10.09.2008 04:33

Re: Работа нескольких программ в одной
 
PHP код:

if menugetselectedindex Uclon then
begin
ShowForm
;
     while 
true do //запускаем бесконечный цикл 
     
begin 
     okCommand 
:= createCommand('OK'CM_OK1);    
     
showForm;    
     
addCommand(okCommand); 
Ha:=formaddtextField('Введите HA','',20,TF_Numeric);
Hb:=formaddtextField('Введите HB','',20,TF_Numeric);
Dab:=formaddtextField('Введите Dab','',10,TF_Numeric);
While(
getclickedCommand<>okcommand) do
delay (100);
Ha1:=StringToREal(formgettext(Ha),10);
Hb1:=StringToReal(formgettext(Hb),10);
Dab1:=StringToReal(formgettext(Dab),10);
I1:=StringTOReal(formgettext(I),10);
hab1:=StringToReal(formgettext(hab),10);
hab1:=Hb-Ha;
I1:=(hab1/Dab1)*100

А вот это не пояавляется даже (вопрос почему)

Piligrim 10.09.2008 11:15

Ответ: Работа нескольких программ в одной
 
Код:

program Geodezia;
var Prgeod,Obrgeod,KBYravnenie,Uclon:integer; //Название Геодезических задач
    Oshcibki:integer;
    textField_id:integer;        //Едит для ввода информации во всех задачах
    L1,L23,B2pr:integer;                    //Переменные для решения задачи
    show,okcommand,clicked:command; //Здесь будут все команды для приложения
    Perema,Peremb,Peremc,Discrim,x1,x2:integer;          //Для кв.Уравнения
    Ha,Hb,Dab,I,hab:integer;//Решение задачи для рассчета уклона в процентах
    Ha1,Hb1,Dab1,I1,hab1:real;
    Formirovanie_otveta:string;                          //Обработка ответов
    Perema1,Peremb1,Peremc1,Discrim1:real;
    menu : integer;
    {Доработка всех переменных в будуещем используемых в решении}
begin
  okCommand := createCommand('OK', CM_OK, 1);   
        ShowMenu('Выберите задачу',CH_Implicit);
        Prgeod := menuAppendString('Прямая геодезическая');
        Obrgeod := menuAppendString('Обратная геодезическая');
        KBYravnenie := menuAppendString('Квадратное уравнение');
        Uclon := menuAppendString('Рассчет уклона');
        Oshcibki := menuAppendString('Теория ошибок');
{Доработка меню}
// Начало Создания функций выбора в программе по геодезии
        show:=createCommand('Выбрать',CM_SCREEN,1);
        addcommand(show);
        repeat
                delay(100);
                Clicked:=getclickedcommand;
        until clicked=show;
        menu := menugetselectedindex;
        debug('m='+menu);
// Начало программы решения квадратного уравнения
        if menu = 2 then Begin
                ShowForm;
                addCommand(okCommand); 
                Perema:=formaddtextfield('Введите a','',20,TF_Numeric);
                Peremb:=formaddtextField('Введите b','',20,TF_Numeric);
                Peremc:=formaddtextField('Введите c','',20,TF_Numeric);
//Ожидание нажатия ок
                While(getclickedCommand<>okcommand) do
                        delay (100);
  //Создаем дополнительные переменные для результата REAL
                Perema1:=StringtoReal(formgettext(Perema),10);
                Peremb1:=StringToReal(formgettext(Peremb),10);
                Peremc1:=StringToReal(formgettext(Peremc),10);
                Discrim1:=Stringtoreal(formgettext(Discrim),10);
  //Само решение квадатного уравнения,используя переменные типа REAL
                Discrim1:=(Peremb1*Peremb1)-(4*Perema1*Peremc1);
                Formirovanie_otveta := 'D ='+Peremb1+'*'+peremb1+'(4 *'+Perema1+' *'+Peremc1+')';
                Formirovanie_otveta := 'ответ'+Discrim1+'';
                showCanvas;
                drawtext(Formirovanie_otveta, 0,0);
                repaint;
                delay(20000);
                if Discrim1 <0 then
                Drawtext('Корней в уравнении НЕМА',0,0);
                repaint;
                delay(20000);
 end;

{Тут будет завершено создание квадратного уравнения}

   
if menu = 3 then begin
        ShowForm;
  addCommand(okCommand);
        Ha:=formaddtextField('Введите HA','',20,TF_Numeric);
        Hb:=formaddtextField('Введите HB','',20,TF_Numeric);
        Dab:=formaddtextField('Введите Dab','',10,TF_Numeric);
        While(getclickedCommand<>okcommand) do
                delay (100);
                Ha1:=StringToREal(formgettext(Ha),10);
                Hb1:=StringToReal(formgettext(Hb),10);
                Dab1:=StringToReal(formgettext(Dab),10);
                I1:=StringTOReal(formgettext(I),10);
                hab1:=StringToReal(formgettext(hab),10);
                hab1:=Hb-Ha;
                I1:=(hab1/Dab1)*100;
end;
end.



Часовой пояс GMT +4, время: 14:44.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot