smurff
asked on
Procedure returns
How do I have a procedure return more than one string, e.g
Procedure Get3answers;
Begin
result := 'blue';
result2 := 'yellow';
result3 := 'red';
end;
Main:
Get3answers(result) := edit1.text
Get3answers(result2) := edit2.text
Get3answers(result3) := edit3.text
Thanks
Procedure Get3answers;
Begin
result := 'blue';
result2 := 'yellow';
result3 := 'red';
end;
Main:
Get3answers(result) := edit1.text
Get3answers(result2) := edit2.text
Get3answers(result3) := edit3.text
Thanks
or returning a TStringList
Gl
Mike
Gl
Mike
? never seen something like this (a procedure with results)
try this
Type TAnswers = Record
Result1 : String[50];
Result2 : String[50];
Result3 : String[50];
end;
Function Get3Answers : TAnswers;
begin
Result.Result1 := 'Blue';
Result.result2 := 'yellow';
Result.result3 := 'red';
end;
Main:
Var Answers : TAnswers;
begin
Answers := Get3Answers;
Edit1.Text := Answers.Result1;
Edit2.Text := Answers.Result2;
Edit3.Text := Answers.Result3;
end;
something mixed in your q, hoping i'm on the right path
meikl
try this
Type TAnswers = Record
Result1 : String[50];
Result2 : String[50];
Result3 : String[50];
end;
Function Get3Answers : TAnswers;
begin
Result.Result1 := 'Blue';
Result.result2 := 'yellow';
Result.result3 := 'red';
end;
Main:
Var Answers : TAnswers;
begin
Answers := Get3Answers;
Edit1.Text := Answers.Result1;
Edit2.Text := Answers.Result2;
Edit3.Text := Answers.Result3;
end;
something mixed in your q, hoping i'm on the right path
meikl
Sorry, in your case you'd have to call the routine with a set of simple String variables and then assign them OR define the parameter list to take the edit boxes themselves (as you can't specify the Text property of your edit boxes as string parameters) eg:
PROCEDURE Get3Answers(edt1, edt2, edt3 : TEdit);
BEGIN
edt1.Text := 'Blue';
edt2.Text := 'Yellow';
edt3.Text := 'Red';
END;
The Neil =:(
PROCEDURE Get3Answers(edt1, edt2, edt3 : TEdit);
BEGIN
edt1.Text := 'Blue';
edt2.Text := 'Yellow';
edt3.Text := 'Red';
END;
The Neil =:(
yup, theneil, thought also on this ;-)
ASKER
Thanks for all your replies, Ill try and explain it. Ive created a DLL that when called goes away and gets 3 string answers. I want the App that called the DLL to use the 3 answers.
Sorry about all this, ive been working on this all day and I feel stupid :)
Sorry about all this, ive been working on this all day and I feel stupid :)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
BTW you can declare a method procedure and implement function and D4 compiles happily without error. D3 throws the deserved error.
>One way out is using short strings (like string[50]).
BEtter yet to use pchars, since they don't impose a limit on the size of the string.
Also, instead of using something like "String[50]", just disable the Huge string support in the linker/compiler options of the project.
Alex
BEtter yet to use pchars, since they don't impose a limit on the size of the string.
Also, instead of using something like "String[50]", just disable the Huge string support in the linker/compiler options of the project.
Alex
ASKER
Again, thanks for everybodys help. This was really sending me crazy.
Cheers.
Smurff
Cheers.
Smurff
PROCEDURE Get3Answers(VAR Ans1, Ans2, Ans3 : STRING);
BEGIN
Ans1 := 'Blue';
Ans2 := 'Yellow';
Ans3 := 'Red';
END;
The Neil =:)