Jump to content

Recommended Posts

Posted

Can I use this method to find a component in runtime? It coud raise a memory leak or something?

var
  i: Integer;
  c: TUniDBCheckBox;
begin
  for i := 1 to 20 do  
  begin
    c := FindComponent('somename' + i.toString) as TuniDBCheckBox; 
    if c <> nil then
    begin
      if c.checked then
        dosomething;
    end;
  end;
end;
Posted

Maybe don't do the "as TUniDBCheckBox" where you execute FindComponent....but do a sanity check if the component "is TUniDBcheckBox" first.

var
  i: Integer;
  c: TComponent;  <<---- use TComponent here
begin
  for i := 1 to 20 do
  begin
    c := FindComponent('somename' + i.toString);
    if (c <> nil) and (c is TUniDBCheckBox) then  <<---- sanity check here
    begin
      if (c as TUniDBCheckBox).checked then  <<---- cast here
        dosomething;
    end;
  end;
end;
  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...