Can index of control array be automatically passed to control’s click event?

Can index of control array be automatically passed to control’s click event?

I read your answer to someone who was looking to create control arrays as in VB. However, in VB, the index of a control array automatically gets passed to the control’s click event. I want to address an array of edit boxes the same way in Delphi 2.

EditClick (index : integer);

Is there a pressing need to do this? I ask because since components can share event handlers, the need for componentarrays a la VB is pretty much nullified. I provided the previous answer only becausesomeone asked if it could be done. I demonstrated that it could, with thefull understanding that the primary reason you make component arrays in VBis to share event handlers. That’s seamless in Delphi.

For example, let’s say we have 10 buttons on a form. Clicking on each ofthe buttons, we change their “Tag” property to some value. But for clarity’ssake we’ll number them seqentially from one to 10. Having done that, we can goto the OnClick event handler of one of the buttons (let’s say the first), and write out code like this:

procedure Button1Click(Sender : TObject);begin  if Sender IS TButton then    case (Sender AS TButton).Tag of      1 :      2 :      3 :      4 :      …and so on…    end;end;
Then with the other nine buttons, all I have to do is go to the ObjectInspector and assign Button1’s OnClick handler to the current button’shandler. This is the exact equivalent to using a single procedure to handlemultiple actions.

See also  Small Business Strategies with Venmo

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist