「タイル」のようなコンポーネントを設計しました。下または上をクリックしたときに色を変更する必要があります。これどうやってするの?
1 に答える
3
コンポーネントの色を設定するには、TControl で導入された MouseDown() および MouseUp() プロシージャをオーバーライドします。
コンポーネントに color プロパティがない場合は、Paint プロシージャをオーバーライドする必要があります。
type
TMyComp = Class(TGraphicControl)
private
FColor: TColor;
protected
// ....
Procedure Paint; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
override;
End;
implementation
{ TMyComp }
procedure TMyComp.MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
begin
inherited;
if Button = mbLeft then
begin
FColor := clRed;
invalidate;
end;
end;
procedure TMyComp.MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
begin
inherited;
if Button = mbLeft then
begin
FColor := clLime;
invalidate;
end;
end;
procedure TMyComp.Paint;
begin
inherited;
// ...
Canvas.Brush.Color := FColor;
Canvas.FillRect(BoundsRect);
// ....
end;
于 2013-04-29T05:26:37.150 に答える