delphi 选中控间问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:11:54
现在有54个tshape
每一个shape要在点的时候变成红色
是否要写54个动作?
是否有更简单的方法?
谢谢

楼上的方法可行,但是每个改一次事件,我改进了一下,两步操作就行了

首先在第一个shape的响应事件里面这么处理

procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
(Sender as Tshape).Brush.Color := clRed;
end;

然后在formCreate事件里面调用下面函数就可以了
procedure Tform1.setColorEvent();
var i:integer;
begin
for i := 0 to (ComponentCount - 1) do
if (Components[i] is Tshape) then
(Components[i] as Tshape).OnMouseUp := Shape1.OnMouseUp;
end;

不用,写好一个之后,然后用选择另外53个,把click响应的事件都选择第一个按钮的事件即可

利用 事件赋值.
kcxnvbdbd 的方法是比较好的