Fonte: www.activedelphi.com.br
Imaginem criar uma aplicação que possibilite
"darmos" um zoom por onde o mouse passar. A idéia é passarmos o mouse
em um determinado local da tela e ampliar a mesma. Com Delphi podemos fazer
isso facilmente. Para demonstrarmos essa facilidade vamos criar uma aplicação
exemplo, e detalharmos passo-a-passo como executar o zoom por onde o mouse
passar. A imagem abaixo demonstra como deve ficar a interface gráfica da
aplicação de exemplo.
Vamos ao código fonte do botão Click Here
//
variaveis
var
Srect,Drect,PosForme:TRect;
iWidth,iHeight,DmX,DmY:Integer;
iTmpX,iTmpY:Real;
C:TCanvas;
hDesktop: Hwnd;
Kursor:TPoint;
// Ampliar a tela se esse aplicativo não for um icone
If not
IsIconic(Application.Handle) then begin
// Pega as coordenadas do mouse
GetCursorPos(Kursor);
hDesktop:= GetDesktopWindow;
// PosForm representa um retangulo com as coordenadas
// Form
(image control) coordenadas
PosForme:=Rect(Form1.Left,
Form1.Top,
Form1.Left+Form1.Width,
Form1.Top+Form1.Height);
//Mostra a tela ampliada
//se o cursor do mouse sair do form
If not
PtInRect(PosForme,Kursor) then begin
// O codigo abaixo para ampliar o que estiver selecionado a
parte da tela que estiver selecionada
iWidth:=Image1.Width;
iHeight:=Image1.Height;
Drect:=Bounds(0,0,iWidth,iHeight);
iTmpX:=iWidth
/ (Slider.Position * 4);
iTmpY:=iHeight
/ (Slider.Position * 4);
Srect:=
Rect(Kursor.x,Kursor.y,Kursor.x,Kursor.y);
InflateRect(Srect,Round(iTmpX),Round(iTmpY));
//recebe a "alça de janela" (handle) do form
C:=TCanvas.Create;
try
C.Handle:=GetDC(GetDesktopWindow);
//Transfere a parte da imagem da tela para o TImage
Image1.Canvas.CopyRect(Drect,C,Srect);
finally
ReleaseDC(hDesktop,
C.Handle);
C.Free;
end;
end;
// Garantir de processar todas as mensagens do windows
Application.ProcessMessages;
end;
É obvio que devemos aumentar a parte gráfica da aplicação
para podermos visualizar melhor a parte da tela que esta sendo ampliada. Fica a
dica, de mais uma funcionalidade que podemos disponibilizar em nosso sistemas.
Nenhum comentário:
Postar um comentário