( Вход | Регистрация | Поиск )

Код Delphi, Помогите
Дата обновления: 29.10.2005 - 20:51, перейти к новому сообщению

Disant1

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
a:integer;
begin
i:=strtoint(edit1.Text);
a:=strtoint(edit2.Text);
if (i>=170)and(a>=70) then listbox1.Items.Add ….

Братцы помогите этот код защитить, если вместо числа введем буквы.


Ответов(1 - 9)

·PRYANIK
Группа: Администраторы

Сообщений: 31.520
сделай нормальный заголовок, иначе тема под снос!


--------------------
Не работает ссылка? Пишите в теме, обновим :)! Link not working? Let us know in the comments, we'll fix it!


Трудно найти слова, когда действительно есть что сказать. Э.М. Ремарк


·Paladin
Группа: Наши Люди

Сообщений: 944
Делается это так:
QUOTE
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
a:integer;
begin
try
 i:=strtoint(edit1.Text);
 a:=strtoint(edit2.Text);
except messagebox(application.Handle,'Ты хоть понял что ты вводишь? ))','Ошибка ввода',MB_ICONINFORMATION);
end;

if (i>=170)and(a>=70) then listbox1.Items.Add ….



Disant1

Спасибо,сейчас попробую


SergV2005

А можно ещё edit'ы настроить так, чтоб в них ток цифры вводились, и отпадёт надобность в месагах.


Disant1

Привет всем.Горе у меня,код попрбывал вставить,что-то TRY...EXCEPT
у меня не работает посмотрите где допустил ошибку.Для примера вот:

unit Upravlenie1;

interface

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

type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
s,i,r:integer;
begin
try
s:=strtoint(edit1.text);
for i:=-3 to 3 do
begin
r:=round(s/i);
listbox1.Items.Add(inttostr(s)+'/'+inttostr(i)+'='+inttostr®);
end;
except messagebox(application.Handle,'Ты хоть понял что ты вводишь? ))','Ошибка ввода',MB_ICONINFORMATION);
end;
end;
end.


·Paladin
Группа: Наши Люди

Сообщений: 944
QUOTE(Disant1 @ 25.10.2005 - 0:14)
Привет всем.Горе у меня,код попрбывал вставить,что-то TRY...EXCEPT
у меня не работает посмотрите где допустил ошибку.Для примера вот:


А ты хоть F9 жать пробовал? Нет? Попробуй.


Disant1

Пробовал.Выдает ошибку,и бросает в код на позицию RUN.Потом попробовал сделать так:

except
on EConvertError do
Application.MessageBox('Только числа','Внимание');
end;

такая же бадяга,КАК ТОЛЬКО В EDIT ПИШУ БУКВЫ см.выше.
TRY...Finally такаяже хрень.


·Paladin
Группа: Наши Люди

Сообщений: 944
Все нормально. Делфи прерыватся на исключения не зависимо от того, отслеживаешь ты их, или нет (можно отключить, но как не помню). Просто жми "старт" и работай дальше. Если запустить программу не из Дэлфи, все будет нормально.


Disant1

Вас понял,благодарю за помощь.