1- نیازی نبود که سه بار mousedown شیپها را بنویسی، یکی کافی است و در مابقی از همان متد استفاده کن:
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
(Sender as TShape).Brush.Color:=clBlue;
end;
2- چرا از متد canresize بری فعال کردن کلید و ایمیج استفاده کردی در صورتی که میتوانستی از یک متد مستقل استفاده کنی و بعد از تغییر رنگ در متد بالا از اون استفاده کنی یعنی:
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
(Sender as TShape).Brush.Color:=clBlue;
[b] doEnable;[/b]
end;
procedure TForm1.doEnable;
begin
BitBtn1.Enabled:=(Shape1.Brush.Color=clYel low)and(Shape2.Brush.Color=clYellow)an d
(Shape3.Brush.Color=clYellow)
Image1.Visible:=BitBtn1.Enabled;
end;
البته کمی سورس متد doEnable را برایتان تغییر دادم :flower:
در مورد Refresh هم بهتر است به راهنمای دلفی مراجعه کنید ، اگر و تنها اگر متوجه نشدید سوال کنید دوستان حتماً جواب خواهند داد.
موفق باشید