Ответ: Чет не пашет( Спецы посмотрите а???
Вот как обещал мой код))))
Код:
Program math;
procedure menu;
var STReal:real;
str:string;
itemId,STI, a,b,c,d,e:integer;
sinI,cosI,tgI,ctgI,id:real;
cmd, cmdOK, cmdExit,OK, clicked: command;
exit: boolean;
Begin
ShowMenu('Главное меню',CH_IMPLICIT);
a:=MenuAppendString('sin');
b:=MenuAppendString('cos');
c:=MenuAppendString('tg');
d:=MenuAppendString('ctg');
e:=MenuAppendString('Выход');
cmdOK:=CreateCommand('ОК', CM_OK, 1);
cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
AddCommand(cmdExit);
Repaint;
cmd := EMPTYCOMMAND;
repeat
cmd:=GetClickedCommand;
if cmd=cmdExit then Halt;
Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.
until cmd=cmdOk;
repaint;
ShowForm;
if MenuGetSelectedIndex=a then
Begin
itemId:=FormAddTextField('Введите число','',20,TF_NUMERIC);
cmdOK:=CreateCommand('ОК', CM_OK, 1);
cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
AddCommand(cmdExit);
Repaint;
cmd := EMPTYCOMMAND;
str:=FormGetText(itemId);
repeat
delay(100);
clicked := getClickedCommand;
if cmd=cmdExit then Halt;
until clicked = cmdOK;
if cmd=cmdOk then begin
str:=FormGetText(itemId);
STI:=StringToInteger(str);
STReal:=StringToReal(str,STI);
sinI:=sin(STReal);
ClearForm;
setcolor(255,255,255);
FillRect(0,0,GetWidth,getHeight);
setcolor(0,0,0);
DrawText('gh'+sinI, 10, 20);
repaint;
delay(10000);
end;
end; else
if MenuGetSelectedIndex=b then
Begin
itemId:=FormAddTextField('Введите число','',20,TF_NUMERIC);
cmdOK:=CreateCommand('ОК', CM_OK, 1);
cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
AddCommand(cmdExit);
Repaint;
cmd := EMPTYCOMMAND;
repeat
cmd:=GetClickedCommand;
if cmd=cmdExit then Halt;
Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.
until cmd=cmdOk;
repaint;
str:=FormGetText(itemId);
STI:=StringToInteger(str);
STReal:=StringToReal(str,STI);
cosI:=cos(STReal);
DrawText('Cos числа'+STReal+'='+CosI,5,5);
repaint;
end; else
if MenuGetSelectedIndex=c then
Begin
itemId:=FormAddTextField('Введите число','',20,TF_NUMERIC);
cmdOK:=CreateCommand('ОК', CM_OK, 1);
cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
AddCommand(cmdExit);
Repaint;
cmd := EMPTYCOMMAND;
repeat
cmd:=GetClickedCommand;
if cmd=cmdExit then Halt;
Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.
until cmd=cmdOk;
repaint;
str:=FormGetText(itemId);
STI:=StringToInteger(str);
STReal:=StringToReal(str,STI);
tgI:=sin(STReal);
DrawText('Tg числа'+STReal+'='+tgI,5,5);
repaint;
end; else
if MenuGetSelectedIndex=c then
Begin
itemId:=FormAddTextField('Введите число','',20,TF_NUMERIC);
cmdOK:=CreateCommand('ОК', CM_OK, 1);
cmdExit:=CreateCommand('Выход', CM_EXIT, 2);
AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
AddCommand(cmdExit);
Repaint;
cmd := EMPTYCOMMAND;
repeat
cmd:=GetClickedCommand;
if cmd=cmdExit then Halt;
Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.
until cmd=cmdOk;
repaint;
str:=FormGetText(itemId);
STI:=StringToInteger(str);
STReal:=StringToReal(str,STI);
ctgI:=cos(STReal)/sin(STReal);
DrawText('Ctg числа'+STReal+'='+ctgI,5,5);
repaint;
end; else
if MenuGetSelectedIndex=d then Halt;
End;
Begin
menu;
repaint;
end.
И всеравно не пашет(((
|