Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
Внизпомощь Найти похожие ветки
← →
котел (2002-11-20 13:26) [0]Как сделать чтобы при нахождении курсора мыши над визуальным компонентом прорисовывалась рамка
← →
roadster (2002-11-20 14:39) [1]какая рамка? Если нужно этот контроль делать активным, то на OnMouseMove повесить SetFocus
← →
OlegMsc (2002-11-20 14:47) [2]а если отрисовать свою собственную рамку, то посмотри FrameRgn
← →
Comp (2002-11-20 15:21) [3]Если этот компонент имеет свою рамку, у которой можно менять тип, то обработай событие OnMouseMove...
← →
40º (2002-11-20 15:53) [4]Для компонентов с парент = форма можно так:
type
TCMMouseXXX = record
Msg: Cardinal;
Unused: Cardinal;
Sender: TControl;
Result: Integer;
end;
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure FormPaint(Sender: TObject);
private
FContouredControl: TControl;
procedure SetContouredControl(const Value: TControl);
public
property ContouredControl: TControl read FContouredControl write SetContouredControl;
procedure CMMouseEnter(var Msg: TCMMouseXXX); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TCMMouseXXX); message CM_MOUSELEAVE;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.CMMouseEnter(var Msg: TCMMouseXXX);
begin
ContouredControl := Msg.Sender;
end;
procedure TForm1.CMMouseLeave(var Msg: TCMMouseXXX);
begin
ContouredControl := nil;
end;
procedure TForm1.SetContouredControl(const Value: TControl);
begin
if FContouredControl <> Value then
begin
FContouredControl := Value;
Invalidate;
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
var R: TRect;
begin
if FContouredControl <> nil then
begin
R := ContouredControl.BoundsRect;
InflateRect(R, 2, 2);
Canvas.Brush.Color := clRed;
Canvas.FrameRect(R);
end;
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c