Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых)

 eXeL@B —› Программирование —› Почему Access violation?
Посл.ответ Сообщение

Ранг: 161.0 (ветеран)
Активность: 0.120
Статус: Участник

Создано: 31 января 2007 12:08
· Личное сообщение · #1

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

procedure TForm1.SpeedButton2Click(Sender: TObject);
var name:string;
summ,i, sum1:integer;
begin
name:=Edit1.Text;
sum1:=0;
for i:=1 to length(name) do
begin
sum1:=sum1+ord(name[i]);
summ:=(sum1*2)+$6A;
end;
if length(Edit1.Text)=0 then Edit2.Text:='Please enter 1 or more chars';
Edit2.text:=inttostr(summ);

end;

Нажимаю все ок!

Делал 2-ой кейген. Код:

procedure TForm1.SpeedButton2Click(Sender: TObject);
var name:string;
sum2_1, summ2, summ,i, sum1, sum2, sum3, sum4:integer;
begin
name:=Edit1.Text;
sum1:=0;
sum2:=0;
sum3:=0;
sum4:=0;
for i:=1 to length(name) do
begin
sum1:=sum1+ord(name[i]);
summ:=(sum1*2)+$6A;

sum2:=(sum2+ord(name[i]));
sum2_1:=(sum2*4)+sum2;
summ2:=(sum2_1*4)+$6A;
end;

for i:=length(name) to length(name) do
begin
sum3:=(sum3+ord(name[i])*$16)+1;
sum4:=(sum4+ord(name[i])*4)+$1D;
end;
if length(Edit1.Text)=0 then Edit2.Text:='Please enter 1 or more chars';
Edit2.text:=inttostr(summ)+'-'+inttostr(summ2)+'-'+inttostr(sum3)+'-'+ inttostr(sum4);

end;

А тут одна проблемка. Если поле ввода имени пустое, и нажимаешь на нужную кнопочку, то вылетает Access violation. Вот это и плохо. А так все вроде нормально пашет.

Помогите решить эту задачу.



Ранг: 116.1 (ветеран), 5thx
Активность: 0.060
Статус: Участник

Создано: 31 января 2007 12:16
· Личное сообщение · #2

А трудно проверку поставить в начало процедуры, а не в конец?

if length(Edit1.Text)=0 then
begin
Edit2.Text:='Please enter 1 or more chars';
exit;
end;

з.ы.
Странный ваще вопрос, честно говоря...




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 31 января 2007 12:17
· Личное сообщение · #3

а сделать проверку длинны имени никак? ;)

-----
Тут не могла быть ваша реклама





Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 31 января 2007 12:19
· Личное сообщение · #4

пока набирал, бум уже опередил.. моб блин =)

-----
Тут не могла быть ваша реклама



 eXeL@B —› Программирование —› Почему Access violation?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати