OnMouseDown

10/04/2003

0

Construi um Panel Dinamicamente, mas gostaria de Fazer uma programação no evento OnMouseDown deste Panel, minha duvida é, que parametros eu passo?




Agradeço desde já


Anonymous

Anonymous

Responder

Posts

10/04/2003

Anonymous

Estude o Help do Delphi (fragmento abaixo):

the following example requires a form with a four-paneled status bar. (Set the Width of the status panels to 150 before running this example). When the user presses a mouse button, moves the mouse, and releases the mouse button, a rectangle is drawn on the form. When the mouse button is released, the rectangle appears on the form’s canvas. Its top-left and bottom-right corners are defined by the location of the mouse pointer when the user pressed and released the mouse button. While the user drags the mouse, the location of the top, left, bottom, and right sides of the rectangle are displayed in the status bar.

var

StartX, StartY: Integer;{Declare in interface section of form’s unit}

{Use this code as the OnMouseDown event handler of the form:}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StartX := X;
StartY := Y;
end;

{Use this code as the OnMouseUp event handler of the form:}

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Form1.Canvas.Rectangle(StartX, StartY, X, Y);
StatusBar1.Panels[0].Text := ´´;
StatusBar1.Panels[1].Text := ´´;
StatusBar1.Panels[2].Text := ´´;
StatusBar1.Panels[3].Text := ´´;
end;


{Use this code as the OnMouseMove event handler of the form:}

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then { make sure button is down }
begin
if Y > StartY then
begin
StatusBar1.Panels[0].Text := ´Top: ´ + IntToStr(StartY);
StatusBar1.Panels[2].Text := ´Bottom: ´ + IntToStr(Y);
end
else
begin
StatusBar1.Panels[0].Text := ´Top: ´ + IntToStr(Y);
StatusBar1.Panels[2].Text := ´Bottom: ´ + IntToStr(StartY);

end;
if X > StartX then
begin
StatusBar1.Panels[1].Text := ´Left: ´ + IntToStr(StartX);
StatusBar1.Panels[3].Text := ´Right: ´ + IntToStr(X);
end
else
begin
StatusBar1.Panels[1].Text := ´Left: ´ + IntToStr(X);
StatusBar1.Panels[3].Text := ´Right: ´ + IntToStr(StartX);
end;
end;
end;


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar