goto и edit.text
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
goto и edit.text - 2009-09-20 21:25:51.206666
|
|
|
GiENA[HeaDS!]
Сообщений: 47
Оценки: 0
Присоединился: 2009-06-09 09:22:13.606666
|
попробовал использовать метки в програмке. в коде забито что если ввести с поле число <=0 то выскакивает окно уведомления. n:=StrToInt(Edit1.Text);
if n<=0 then
begin bye:
MessageDlg('Число должно быть больше нуля.', mtError,[mbok],0);
Edit1.text:='';
goto bye;
end; суть трабла - уведомление выскакивает бесконечно при нажатии ок. как сделать чтобы после выскакивания уведомления edit1.text очистился и повторно инструкции не выполнялись? именно: что присвоить Edit1.text? у меня Edit1.text:='';
|
|
|
RE: goto и edit.text - 2009-09-20 21:41:18.926666
|
|
|
psina007
Сообщений: 98
Оценки: 0
Присоединился: 2009-05-09 22:41:33.580000
|
Попробуй так:
n:=StrToInt(Edit1.Text);
if n<=0 then
begin
MessageDlg('Число должно быть больше нуля.', mtError,[mbok],0);
Edit1.text:='';
end;
|
|
|
RE: goto и edit.text - 2009-09-20 21:49:02.486666
|
|
|
GiENA[HeaDS!]
Сообщений: 47
Оценки: 0
Присоединился: 2009-06-09 09:22:13.606666
|
procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
r:integer;
d:integer;
begin
n:=StrToInt(Edit1.Text);
if n<=0 then
begin
MessageDlg('Число должно быть больше нуля.', mtError,[mbok],0);
Edit1.text:='';
end;
d:=2;
repeat
r:=n mod d;
if r<>0 then d:=d+1;
until r=0;
label2.Caption:=Edit1.Text;
if d=n then Label2.caption:=Label2.Caption + ' - простое число.'
else label2.caption:=label2.caption + ' - обычное число.';
end;
end. тут нужно чтобы инструкции не выполнялись если будет введено <=0…а в твоём сучае они продолжают выполнятся и в лейбле выкидывает "обычное число" тут нужно обяз с меткой…но нужно чтобы после сообщ edit очищался
|
|
|
RE: goto и edit.text - 2009-09-20 21:53:08.040000
|
|
|
vzadnikov
Сообщений: 82
Оценки: 0
Присоединился: 2009-07-01 02:27:18.446666
|
А если пользователь введёт в Едит не число? Тогда получиться ошибка пострашнее… quote:
суть трабла - уведомление выскакивает бесконечно при нажатии ок. как сделать чтобы после выскакивания уведомления edit1.text очистился и повторно инструкции не выполнялись? именно: что присвоить Edit1.text? у меня Edit1.text:=''; Какая инструкция? адд: Команда Exit - выход из процедуры. Тобишь:
if n<=0 then
begin
MessageDlg('Число должно быть больше нуля.', mtError,[mbok],0);
Edit1.text:='';
Exit;
end;
|
|
|
RE: goto и edit.text - 2009-09-20 22:01:56.366666
|
|
|
GiENA[HeaDS!]
Сообщений: 47
Оценки: 0
Присоединился: 2009-06-09 09:22:13.606666
|
с exit вроде всё ок. ну а что можно добавить чтобы при вводе буквы или символа выскакивало тоже самое уведомление?
|
|
|
RE: goto и edit.text - 2009-09-20 22:07:41.863333
|
|
|
vzadnikov
Сообщений: 82
Оценки: 0
Присоединился: 2009-07-01 02:27:18.446666
|
Написать обработчик.. Типа такого: .....
d:integer;
begin
If Edit1.Text <> '' Then
Begin
If Edit1.Text[1] <> '0' Then
Begin
For i := 1 To Length(Edit1.Text) Do If Pos(Edit1.Text[i], '1234567890') = 0 Then n := 0;
End
Else
n := 0;
if n<=0 then
begin
...
|
|
|
RE: goto и edit.text - 2009-09-20 22:21:27.303333
|
|
|
GiENA[HeaDS!]
Сообщений: 47
Оценки: 0
Присоединился: 2009-06-09 09:22:13.606666
|
нет что то с обработчиком намудренно…выкидывает ошибку и i откуд ты взял? обьявлять её? ладн сё равно пасиба всем…меня интересовало только цифры =)
|
|
|
RE: goto и edit.text - 2009-09-20 22:22:32.876666
|
|
|
vzadnikov
Сообщений: 82
Оценки: 0
Присоединился: 2009-07-01 02:27:18.446666
|
Естественно i надо обьявить… Незнаю, у меня этот обработчик работает, хотя и написал я его с бодуна.
|
|
|
RE: goto и edit.text - 2009-09-20 22:29:00.366666
|
|
|
GiENA[HeaDS!]
Сообщений: 47
Оценки: 0
Присоединился: 2009-06-09 09:22:13.606666
|
:D а если вместо твоего обработчика сделать так: If n<=0..9 do n:=0; end; ???
|
|
|
RE: goto и edit.text - 2009-09-20 22:33:34.976666
|
|
|
GiENA[HeaDS!]
Сообщений: 47
Оценки: 0
Присоединился: 2009-06-09 09:22:13.606666
|
сорняк…бред я написал…но смысл тот же =)
|
|
|
|
|