Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Постоянно выскакивает ошибка   Найти похожие ветки 

 
pro_xaoc ©   (2010-03-22 08:43) [0]

Люди кто может разобраться, просто я новичок в Дельфи. Дело в том что созданная мной программа без проблем компилируется и работает. В общем ошибка выглядит в таком виде: Proeject Project1.exe raised exception class EConvertError with meesage "Здесь любой текст" is not a valid integer value". Process stopped. Use Step or Run to continue.
Эта ошибка выходит после нажатия кнопки. Вот собственно часть текста программы в котором как я думаю есть ошибка:

procedure TForm1.Button15Click(Sender: TObject);
var
result : integer;
begin
result := strtoint(edit1.text);
edit1.Text := edit1.text  +  button15.Caption + inttostr(result);
end;


 
oldman ©   (2010-03-22 08:48) [1]


> strtoint(edit1.text);


В Edit в этот момент НЕ ЧИСЛО!


 
oldman ©   (2010-03-22 08:51) [2]

Что, так сложно "is not a valid integer value" на русский перевести?


 
Anatoly Podgoretsky ©   (2010-03-22 09:15) [3]

Инвалид


 
pro_xaoc ©   (2010-03-22 09:20) [4]


> > strtoint(edit1.text);В Edit в этот момент НЕ ЧИСЛО!

да, знаю что не число, и именно поэтому я написал функцию для преобразования строки в число.
Кто может помочь?


 
Anatoly Podgoretsky ©   (2010-03-22 09:24) [5]


> функция для преобразования строки в число.

Давно существует, это strtoint


 
pro_xaoc ©   (2010-03-22 09:31) [6]

Ну я же написал уже strtoint перед edit1.text, вот терь не знаю что ему ещё не хватает, люди плз кто знает, помогите в чем дело?


 
Бетмен   (2010-03-22 09:33) [7]


> Кто может помочь?

Ну конечно же Бетмен!

procedure TForm1.Button15Click(Sender: TObject);
var result : integer;
begin
   if TryStrToInt(Edit1.Text, result)
   then edit1.Text := edit1.text  +  button15.Caption + inttostr(result)
   else edit1.Text := edit1.text  +  button15.Caption + " не число";
end;


 
pro_xaoc ©   (2010-03-22 09:49) [8]

СПС Бетмен, но у меня выходит второй вариант, т.е. "не число". Кароч я хотел создать типо калькулятор, к каждой кнопке присвоил caption 1, 2, 3, 4, 5, 6, 7, 8, 9, 0. Также есть кнопка / * - + и =. Вот когда я нажимаю на одну из кнопок то в edit1.text появляется собственно caption нажатой кнопки. Например нажал на кнопку "2" "+" "3", а потом нажимаю на "=". Вот он должен был мне возвратить 2+3=5, а он этого не делает и вместо выходит ошибка... Кто понимает, в чем тут проблема? Если надо, вот полный код:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   Button4: TButton;
   Button5: TButton;
   Button6: TButton;
   Button7: TButton;
   Button8: TButton;
   Button9: TButton;
   Button10: TButton;
   Edit1: TEdit;
   Button11: TButton;
   Button12: TButton;
   Button13: TButton;
   Button14: TButton;
   Button15: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button4Click(Sender: TObject);
   procedure Button5Click(Sender: TObject);
   procedure Button6Click(Sender: TObject);
   procedure Button7Click(Sender: TObject);
   procedure Button8Click(Sender: TObject);
   procedure Button9Click(Sender: TObject);
   procedure Button10Click(Sender: TObject);
   procedure Button11Click(Sender: TObject);
   procedure Button12Click(Sender: TObject);
   procedure Button13Click(Sender: TObject);
   procedure Button14Click(Sender: TObject);
   procedure Button15Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button1.Caption;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button2.Caption;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button3.Caption;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button4.Caption;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button5.Caption;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button6.Caption;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button7.Caption;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button8.Caption;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button9.Caption;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button10.Caption;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button11.Caption;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button12.Caption;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button13.Caption;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
edit1.Text :=edit1.text  +  button14.Caption;
end;

procedure TForm1.Button15Click(Sender: TObject);
var
result : integer;
begin
if TryStrToInt(Edit1.Text, result)
  then edit1.Text := edit1.text  +  button15.Caption + inttostr(result)
  else edit1.Text := edit1.text  +  button15.Caption + " не число";
end;

end.


 
Бетмен   (2010-03-22 09:58) [9]

Мама миа... <садится в бетмобиль и резко жмет на газ>

PS: В интернете куча примеров. Скачайте простенький калькулятор и разберитесь - как он работает.

http://nova.rambler.ru/srch?query=%D0%BA%D0%B0%D0%BB%D1%8C%D0%BA%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80+%D0%BD%D0%B0+Delphi+%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D0%B8%D0%BA%D0%B8&old_q=%D0%BA%D0%B0%D0%BB%D1%8C%D0%BA%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80+%D0%BD%D0%B0+Delphi


 
pro_xaoc ©   (2010-03-22 10:17) [10]

лан спс, так и сделаю, но хотелось бы самому понять.


 
oldman ©   (2010-03-22 10:26) [11]


> но хотелось бы самому понять


Знаешь, что такое стек и "обратная польская запись"?
Захотел в лоб strtoint("2+3") получить... ха-ха...


 
brother ©   (2010-03-22 10:26) [12]

> Например нажал на кнопку "2" "+" "3", а потом нажимаю на
> "=". Вот он должен был мне возвратить 2+3=5, а он этого
> не делает и вместо выходит ошибка...

все верно ведь: 2+3= не является яислом...
тебе надо распарсить строку и вывести результат...


 
Бетмен   (2010-03-22 10:31) [13]

Зачем парсить? Просто запоминать - первое число, операция, второе число. Выполняем операцию - получаем новое первое число. Ну а с корнем просто: первое число, операция = первое число.


 
brother ©   (2010-03-22 10:32) [14]

> Зачем парсить?


> 2+3=5


 
pro_xaoc ©   (2010-03-22 10:35) [15]

что такое парсить? (извините тупого новичка) я понимаю это как преобразовать, если это так, то я же сделал преобразование сначала строку в целое, а потом результат преобразовал в строку.


 
Бетмен   (2010-03-22 10:36) [16]

Сначала пользователь все равно нажмет 2, потом "плюс" а потом 3. Там же автор кнопки делает. Просто парсил - это муторно и займет несколько часов. Если человек не умеет использовать Sender, он врят ли напишет парсер.


 
pro_xaoc ©   (2010-03-22 10:39) [17]

ок, скачал исходник калькулятора, терь сижу и разбираю ...


 
Anatoly Podgoretsky ©   (2010-03-22 11:05) [18]

> pro_xaoc  (22.03.2010 10:39:17)  [17]

Не разбирать надо, а переименовать и about сменить, и далее сдать работу.


 
{RASkov} ©   (2010-03-22 11:10) [19]

> [17] pro_xaoc ©   (22.03.10 10:39)

Лучше книжку какую для начала скачай....(или купи), а так только запутаешься...


 
Плохиш ©   (2010-03-22 11:23) [20]


> Лучше книжку какую для начала скачай....(или купи)

это для ламеров и чайников

> а так только запутаешься

фигня крютыедермокодеры спросят на форуме, здесь обязаны им код для копи-паста дать, здесь же для этого и сидят



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.062 c
15-1274432547
boriskb
2010-05-21 13:02
2010.08.27
Можно не всё сразу а выборочно?


15-1264487745
Jeer
2010-01-26 09:35
2010.08.27
Инет-разум


2-1268463477
Тофер
2010-03-13 09:57
2010.08.27
Как узнать анкор на странице в TWebBrowser


2-1270329778
Б
2010-04-04 01:22
2010.08.27
String -> WideChar


15-1270645124
Andrey O.
2010-04-07 16:58
2010.08.27
Небольшая рекламация для пользователей Firefox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский