Программирование

Код Delphi

,

Помогите

Дата публикации:

Disant1, 23.10.2005 - 13:19

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 ….

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

PRYANIK, 23.10.2005 - 14:19

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

Paladin, 23.10.2005 - 14:39

Делается это так:
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, 23.10.2005 - 22:02

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

SergV2005, 24.10.2005 - 17:47

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

Disant1, 24.10.2005 - 20:14

Привет всем.Горе у меня,код попрбывал вставить,что-то 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, 25.10.2005 - 18:43

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


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

Disant1, 25.10.2005 - 20:13

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

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

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

Paladin, 25.10.2005 - 21:07

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

Disant1, 26.10.2005 - 11:33

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

Disant1, 27.10.2005 - 20:57

Привет всемю.Нашел как отключаеться:

Отключи встроенный отладчик:
Tools->Debugger Options-># Integrated Debugging

SergV2005, 28.10.2005 - 18:08

Мда, я чет не въеду, на кой такой гемор, если уж тебе надо ток цифры вводить, то надо сделать так чтоб другие символы просто к примеру подменялись на ноль или вообще не вводились, а выдовался звуковой сигнал.
Пример:
if not (key in ['0'..'9', ' '_ ',', '.']) then // Задаёш то что можно вводить
begin
key:=#0; // Вводит 0 вместо ненужного
beep; // Выдаёт звуковой сигнал
end;

Disant1, 29.10.2005 - 20:51

Я недавно начал изучать Delphi. Знаний пока маловато,вот
пробую че в книге прочитал. Да не все в книге пушут.


версия для печати -> Полная версия

SoftoRooM © 2004-2024