I've encountered a problem while writing code in Delphi. Namely I can't get acces to Components, even though they're declared and I used them in code above ( previously in procedures, now I am trying to use them in functions - maybe this is the reason, I don't know, I am not good at Delphi ). I made a few screens to make it look clearer. Take a look.
http://imageshack.us/photo/my-images/135/weirddelphi3.png/">
As you can see on the first screen I'm getting compiler error. It says that the component doesn't exist, but on the third screen you can see that this component exists. On the second screen I can even use this component ( Code Completion can be invoked successfully, but if I try to invoke it in secondFunction's scope I get error like this : "Unable to invoke Code Completion due to errors in source code " - but what the hell is the error?! ). If I comment these two lines, which refer to Edit7 and Edit8, I can run the program without problems. I really can't figure out what is wrong, if any of you could give me some advice, it would be greatly appreciated. I didn't wanted to post whole code here, because it would take about 300 lines, however if u need to know something else to sort this out then ask I will tell you..
I don't have enough reputation points to post more than 2 hyperlinks so you have to do "copy & paste " with the last one :D
The problem is that Edit7
is a part of the TForm1
class. Edit7
is not accessible by name outside of TForm1
. So either you can use the global Form1
variable, and do
function secondFunction(x: extended): extended;
var
paramA, paramB: extended;
begin
paramA := StrToFloat(Form1.Edit7.Text);
paramB := StrToFloat(Form1.Edit8.Text);
Result := paramA + paramB * sin(x);
end;
or you can make the secondFunction
part of the TForm1
class:
function TForm1.secondFunction(x: extended): extended;
var
paramA, paramB: extended;
begin
paramA := StrToFloat(Edit7.Text);
paramB := StrToFloat(Edit8.Text);
Result := paramA + paramB * sin(x);
end;
But then you need to declare secondFunction
in the declaration of the TForm1
class, like
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
function secondFunction(x: extended): extended;
end;
in the beginning of the unit.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With