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=9545)

Zipper 20.10.2009 01:02

Помощь новичку
 
Здраствуйте. Я только сел за мидлет паскаль. Подскажите пожалуйста как в переменную записать число вводимое с клавишь?

Bruteo 20.10.2009 01:45

Ответ: Помощь новичку
 
В хэлпе всё расписано с примерами. Пример оттуда:
Либо через текстбокс:
Код:

var cont : command;
      quote : string;
begin 
    showTextBox('Enter message, '', 200, TF_ANY); 
    cont := createCommand('Send', CM_SCREEN, 1);
    addCommand(cont); 

    repeat
      delay(100); 
    until getClickedCommand <> emptyCommand; 

    quote := getTextBoxString;

    ...     
end.

Либо через текстовое поле:
Код:

var gauge_id, value: integer;
begin
  text_id :=FormAddTextField('Enter your name', 'Mr.Smith', 20, TF_ANY);

    ShowForm;
    value := FormGetValue(text_id);
    Delay(2000);
end.


Zipper 20.10.2009 10:20

Ответ: Помощь новичку
 
блин...мало что понятно =(
может кто поможет написать прогу?
она должна вычислять число по формуле, данные должны вводиться с клавиатуры

вот формула: X:=a1*b2*c3+a2*b3*c1+a3*b1*c2-a3*b1*c3-a1*b3*c2

Bruteo 20.10.2009 12:49

Ответ: Помощь новичку
 
Создавай столько текстбоксов, сколько у тебя переменных, не считая x. Добавляй на форму, потом считывай и считай x.
Если что-то конкретное не получается - можно спросить, так и разберёшься)

Zipper 20.10.2009 17:42

Ответ: Помощь новичку
 
PHP код:

var cont command
      
quote string
begin  
    showTextBox
('Enter message, '', 200, TF_ANY);  
    cont := createCommand('
Send', CM_SCREEN, 1); 
    addCommand(cont);  

    repeat 
      delay(100);  
    until getClickedCommand <> emptyCommand;  

    quote := getTextBoxString; 

    ...      
end. 

вот не понимаю куда здесь будет записываться числа?

Bruteo 20.10.2009 17:53

Ответ: Помощь новичку
 
Строка будет писаться в переменную quote. Если подразумевается ввод только целых чисел, то TF_ANY можно заменить на более подходящий вариант, не забыв и про типы переменных.

Zipper 20.10.2009 19:18

Ответ: Помощь новичку
 
PHP код:

program Raschet;
var 
 
a1a2a3b1b2b3c1c2c3Integer
 
Result string;
 
cmdNextcmdexit command;
 
begin 
 showForm
;//показываем форму //создаём элементы управления
 
a1 := FormAddTextField('a1='''20TF_NUMERIC);
 
a2 := FormAddTextField('a2='''20TF_NUMERIC);
 
a3 := FormAddTextField('a3='''20TF_NUMERIC);
 
b1 := FormAddTextField('b1='''20TF_NUMERIC);
 
b2 := FormAddTextField('b2='''20TF_NUMERIC);
 
b3 := FormAddTextField('b3='''20TF_NUMERIC);
 
c1 := FormAddTextField('c1='''20TF_NUMERIC);
 
c2 := FormAddTextField('c2='''20TF_NUMERIC);
 
c3 := FormAddTextField('c3='''20TF_NUMERIC); //создаём команду(кнопку)
 
cmdNext := createCommand('Next'CM_OK1); AddCommand(cmdNext);
 
repeat until GetClickedCommand cmdNext//берём текст, введёный пользователем
  
X:=a1*b2*c3+a2*b3*c1+a3*b1*c2-a3*b1*c3-a1*b3*c2;
 
Result := FormGetText(X); //выводим информацию на дисплей 
 
ShowTextBox('Ответ:',Result 200TF_NUMERIC);
 
cmdExit := CreateCommand('Exit'CM_EXIT1);
 
AddCommand(cmdExit);
 
repeat delay(100);
 
until GetClickedCommand cmdExit;
 
end

вот что я написал, но оно ничего не выводит...в чем проблема?

Bruteo 20.10.2009 19:26

Ответ: Помощь новичку
 
Строку с formgettext убрать. Не ясно вообще зачем она здесь.
А showtextbox вызывать так:
Код:

ShowTextBox('Ответ:',''+X , 200, TF_NUMERIC);
Но кроме всего этого в формуле x надо использовать не ссылки на поля ввода(a1,a2 и т.д.), а данные из этих полей, которые можно получить функцией FormGetText

Zipper 20.10.2009 20:20

Ответ: Помощь новичку
 
PHP код:

program Raschet;
var 
 
a1a2a3b1b2b3c1c2c3Xa1ia2ia3ib1ib2ib3ic1ic2ic3i real
  
cmdNextcmdexit command;
 
begin 
 showForm
;//показываем форму //создаём элементы управления
 
a1 := FormAddTextField('a1='''20TF_NUMERIC);
 
a2 := FormAddTextField('a2='''20TF_NUMERIC);
 
a3 := FormAddTextField('a3='''20TF_NUMERIC);
 
b1 := FormAddTextField('b1='''20TF_NUMERIC);
 
b2 := FormAddTextField('b2='''20TF_NUMERIC);
 
b3 := FormAddTextField('b3='''20TF_NUMERIC);
 
c1 := FormAddTextField('c1='''20TF_NUMERIC);
 
c2 := FormAddTextField('c2='''20TF_NUMERIC);
 
c3 := FormAddTextField('c3='''20TF_NUMERIC); //создаём команду(кнопку)
 
cmdNext := createCommand('Next'CM_OK1); AddCommand(cmdNext);
 
repeat until GetClickedCommand cmdNext//берём текст, введёный пользователем

 
a1i:=FormGetText(a1);
 
a2i:=FormGetText(a2);
 
a3i:=FormGetText(a3);
 
b1i:=FormGetText(b1);
 
b2i:=FormGetText(b2);
 
b3i:=FormGetText(b3);
 
c1i:=FormGetText(c1);
 
c2i:=FormGetText(c2);
 
c3i:=FormGetText(c3);

 
X:=a1i*b2i*c3i+a2i*b3i*c1i+a3i*b1i*c2i-a3i*b1i*c3i-a1i*b3i*c2i;
  
 
ShowTextBox('Ответ:',''+200TF_NUMERIC);
 
cmdExit := CreateCommand('Exit'CM_EXIT1);
 
AddCommand(cmdExit);
 
repeat delay(100);
 
until GetClickedCommand cmdExit;
 
end

добавил FormGetTextы, но при компиляции пишет "ошибка в параметре 1" в строках с FormGetTextами

Bruteo 20.10.2009 20:23

Ответ: Помощь новичку
 
Внимательнее читай документацию. Идентификаторы на текстовые поля должны быть целыми, а не типа real.

ViNT 20.10.2009 20:23

Ответ: Помощь новичку
 
Идентификаторы a1, a2 и т.д. должны быть типа integer. Дальше по идентификатору нужно получить строку с помощью FormGetText, а потом уже преобразовать ее в действительное число с помощью StringToReal.

Zipper 20.10.2009 20:52

Ответ: Помощь новичку
 
PHP код:

program Raschet;
var 
 
a1a2a3b1b2b3c1c2c3:integer;
 
a1ia2ia3ib1ib2ib3ic1ic2ic3i string;
 
a1oa2oa3ob1ob2ob3oc1oc2oc3oX:real;
  
cmdNextcmdexit command;
 
begin 
 showForm
;
 
a1 := FormAddTextField('a1='''20TF_NUMERIC);
 
a2 := FormAddTextField('a2='''20TF_NUMERIC);
 
a3 := FormAddTextField('a3='''20TF_NUMERIC);
 
b1 := FormAddTextField('b1='''20TF_NUMERIC);
 
b2 := FormAddTextField('b2='''20TF_NUMERIC);
 
b3 := FormAddTextField('b3='''20TF_NUMERIC);
 
c1 := FormAddTextField('c1='''20TF_NUMERIC);
 
c2 := FormAddTextField('c2='''20TF_NUMERIC);
 
c3 := FormAddTextField('c3='''20TF_NUMERIC); 
 
cmdNext := createCommand('Next'CM_OK1); AddCommand(cmdNext);
 
repeat until GetClickedCommand cmdNext

 
a1i:=FormGetText(a1);
 
a2i:=FormGetText(a2);
 
a3i:=FormGetText(a3);
 
b1i:=FormGetText(b1);
 
b2i:=FormGetText(b2);
 
b3i:=FormGetText(b3);
 
c1i:=FormGetText(c1);
 
c2i:=FormGetText(c2);
 
c3i:=FormGetText(c3);
 
 
a1o:=StringToReal(a1i);
 
a2o:=StringToReal(a2i);
 
a3o:=StringToReal(a3i);
 
b1o:=StringToReal(b1i);
 
b2o:=StringToReal(b2i);
 
b3o:=StringToReal(b3i);
 
c1o:=StringToReal(c1i);
 
c2o:=StringToReal(c2i);
 
c3o:=StringToReal(c3i);

 
X:=a1o*b2o*c3o+a2o*b3o*c1o+a3o*b1o*c2o-a3o*b1o*c3o-a1o*b3o*c2o;
  
 
ShowTextBox('Ответ:',''+200TF_NUMERIC);
 
cmdExit := CreateCommand('Exit'CM_EXIT1);
 
AddCommand(cmdExit);
 
repeat delay(100);
 
until GetClickedCommand cmdExit;
 
end

добавил StringToReal стало писать 'параметров слишком мало', что это значит?? :"(

Zipper 20.10.2009 21:08

Ответ: Помощь новичку
 
решил ту проблему: вместо StringToReal, писал StringToInteger

теперь новая проблема, перестала работать кнопка Next...до этого работала нормально, ничего не менял, а теперь хз что случилось...

Bruteo 20.10.2009 21:21

Ответ: Помощь новичку
 
После repeat первого вставляй задержку. delay(100); , например. Чтобы не перегружать процессор бесконечным циклом без пауз.

Zipper 20.10.2009 21:36

Ответ: Помощь новичку
 
ага, помогло, но только для эмулятора, на мобиле все равно не работает...


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

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