This procedure is called just before the answer is written to a binary file to ensure it is in the correct format. It works but I need it to repeat until it is an integer. I was trying to use a 'repeat','until' but wasnt sure what the 'until' condition woudld be. At the moment it displays the message and then carries on regardless.

Procedure ValidateAnswer;
begin
 try
  ValidatedAnswer:=StrToInt(QuestionnaireForm.Answer.Text);
 except
 ShowMessage('Answer must be an integer');
 end;
end;

Thanks!

Recommended Answers

All 3 Replies

I don't think it can be done in it's current form. The input text will never change inside any loop, so it will be endless. Please explain what you are trying to achieve. (or perhaps some more code)

I am writing answers to a binary file. The answer to one of the questions needs to be an integer. So that the program doesn't crash I need to make sure it is an integer before assigning it into the binary file.

I ideally want it to display the message and then go back to the form allowing someone to correct their answer. At the moment It just displays the message and then carries on regardless.

I suppose I don't want a 'repeat' but I don't want it to do anything else such as writing to the file until this answer has been changed.

Hope that makes sense!

Yes it does, but without seeing the flow of your code, suggesting a solution is very hard.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.