mouse handling
2 отговора
95 прегледа
mouse handling
Искам да махна title bar-a на прозорец, да сложа мой такъв. Искам също да сложа изображения, които да служат като бутони и да се сменят, когато показалеца на мишката премине над тях, т.е. "бутона" да има две изображения - едно , когато мишката не е върху него и едно когато мишката е врху него.
Помогнете с напътствия или някои линк по темата.
Помогнете с напътствия или някои линк по темата.
Виж какво изрових
а относно иконите на бутоните: виж ToolBar и бутоните върху него - имат HotImage списък и още няколко списъка с икони.
(за да ползваш това по-долу си създай нов проект - и добави необходимите контроли и методи, като копираш телата на методите - извинявайй, че съм подробен :)
(за да ползваш това по-долу си създай нов проект - и добави необходимите контроли и методи, като копираш телата на методите - извинявайй, че съм подробен :)
unit a_FormMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
protected
procedure RebuildWindowRgn;
procedure Resize; override;
public
constructor Create(AOwner: TComponent); override;
end;
var
Form1 : TForm1;
implementation
uses Unit2;
// ðåñóðñ ýòîé ôîðìû
{$R *.DFM}
{ Ïðîçðà÷íàÿ ôîðìà }
constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
// óáèðàåì ñêîëëáàðû, ÷òîáû íå ìåøàëèñü
// ïðè èçìåíåíèè ðàçìåðîâ ôîðìû
HorzScrollBar.Visible:= False;
VertScrollBar.Visible:= False;
// ñòðîèì íîâûé ðåãèîí
BorderStyle := bsNone; {required}
RebuildWindowRgn;
end;
procedure TForm1.Resize;
begin
inherited;
// ñòðîèì íîâûé ðåãèîí
RebuildWindowRgn;
end;
procedure TForm1.RebuildWindowRgn;
var
FullRgn, Rgn: THandle;
ClientX, ClientY, k: Integer;
begin
// îïðåäåëÿåì îòíîñèòåëüíûå êîîðäèíàòû êëèåíñêîé ÷àñòè
ClientX:= (Width - ClientWidth) div 2;
ClientY:= Height - ClientHeight - ClientX;
// ñîçäàåì ðåãèîí äëÿ âñåé ôîðìû
FullRgn:= CreateRectRgn(0, 0, Width, Height);
// ñîçäàåì ðåãèîí äëÿ êëèåíòñêîé ÷àñòè ôîðìû
// è âû÷èòàåì åãî èç FullRgn
Rgn:= CreateRectRgn(ClientX, ClientY, ClientX + ClientWidth, ClientY +
ClientHeight);
CombineRgn(FullRgn, FullRgn, Rgn, rgn_Diff);
// òåïåðü äîáàâëÿåì ê FullRgn ðåãèîíû êàæäîãî êîíòðîëüíîãî ýëåìåíòà
for k:= 0 to ControlCount -1 do
with Controls[k] do begin
Rgn:= CreateRectRgn(ClientX + Left, ClientY + Top, ClientX + Left +
Width, ClientY + Top + Height);
CombineRgn(FullRgn, FullRgn, Rgn, rgn_Or);
end;
// óñòàíàâëèâàåì íîâûé ðåãèîí îêíà
SetWindowRgn(Handle, FullRgn, True);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
BorderStyle := bsNone; {required}
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
BorderStyle := bsSizeable; {required}
end;
end.
Re: mouse handling
ако съм те разбрал правилно, за първия въпрос нагласи BorderStyle=bsNone
за втория въпрос вече са ти отговорили
чети и дишай по-леко
за втория въпрос вече са ти отговорили
чети и дишай по-леко