Показать сообщение отдельно
Старый 14.10.2009, 15:44   #4
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Чет не пашет( Спецы посмотрите а???

Program math;

procedure menu;
var  
STReal:real;
     
strwork:string;
     
itemId:integer;
     
Iid:real;
     
cmdcmdOkcmdExitcommand;
Begin
    repeat
    ShowForm
;
    
ShowMenu('Главное меню',CH_IMPLICIT);
    
id:=MenuAppendString('sin');
    
id:=MenuAppendString('cos');
    
id:=MenuAppendString('tg');
    
id:=MenuAppendString('ctg');
    
id:=MenuAppendString('Выход');
    
cmdOk:=CreateCommand('ОК'CM_OK1);
    
cmdExit:=CreateCommand('Выход'CM_EXIT2);
    
AddCommand(cmdOk); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
    
AddCommand(cmdExit);
    
repeat
        cmd
:=GetClickedCommand;
        
Delay(50);
        if 
cmd=cmdExit then Halt;  
    
until cmd=cmdOk;
    
ClearForm;
    if 
MenuGetSelectedIndex<>4 then
    begin
        id 
:= MenuGetSelectedIndex;
        
cmdOk:=CreateCommand('ОК'CM_OK1);
        
cmdExit:=CreateCommand('Выход'CM_EXIT2);
        
AddCommand(cmdOk);
        
AddCommand(cmdExit);
        
itemId:=FormAddTextField('Введите число с точностью до сотых','',20,TF_NUMERIC);
        
repeat
            Delay
(50);
            
cmd:=GetClickedCommand;
             if (
cmd cmdExitthen Halt;
        
until cmd cmdOk;
        
str:=FormGetText(itemId);
        
//STI:=StringToInteger(str); эту строку я ваще не понял
        
STReal:=StringToReal(str10); // так как с точностью до сотых то вводим 100, можно увеличить в случаи необходимости
        
if (id 0then begin I:=sin(STReal); work:='sin'end;
        if (
id 1then begin I:=cos(STReal); work:='cos'end;
        if (
id 2then begin I:=tan(STReal); work:='tan'end;
        if (
id 3then begin I:=tan(STReal); work:='ctg'end;
        
ShowCanvas;
        
setcolor(255,255,255); FillRect(0,0,GetWidth,getHeight);
        
setcolor(0,0,0);
        
DrawText(work ' ('+STReal+') = ' I55);
        
repaint;
        
delay(10000);
    
end;
    else 
Halt;
    
until false;
End;

Begin
    menu
;
end
Теперь всё пашет. Даже синусы с косинусами и проч.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
JACUK (14.10.2009)