Al parecer no solo no he leido el título del hilo, sino que no he visto tus comentarios
en fin; a jugar se dijo:
Código Delphi
[-]unit Unit1;
interface
uses Windows, Types, Classes, Graphics, Controls, Forms, ExtCtrls;
type
TForm1 = class(TForm)
Timer: TTimer;
procedure FormCreate(Sender: TObject);
procedure TimerTimer(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure FormPaint(Sender: TObject);
end;
var Form1: TForm1;
implementation
{$r *.dfm}
var Bitmap: TBitmap;
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer.Interval := 32;
Bitmap := TBitmap.Create;
Bitmap.Width := ClientWidth;
Bitmap.Height := ClientHeight;
end;
procedure TForm1.TimerTimer(Sender: TObject);
begin
Tag := (Tag - 2) mod 360;
FormMouseMove(nil, [], 0, 0);
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
const
Text: string = 'cHackAll ';
Radio: Integer = 128;
var
Point: TPoint;
Index, Value, Color: Integer;
begin
with Bitmap.Canvas do
begin
FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height));
Point := ScreenToClient(Mouse.CursorPos);
for Index := 1 to Length(Text) do
begin
Value := Round(Radio * Sin(((2 * Pi) * (Index / Length(Text))) + ((Tag / 180) * Pi)));
if Value > 0 then
Color := $D0
else
Color := Value + 128;
Font.Size := 32 - Value;
SetBkMode(Handle, TRANSPARENT);
SetTextColor(Handle, RGB(Color, Color, Color));
Windows.TextOut(Handle, Point.X + Round(Radio * Cos(((2 * Pi) * (Index / Length(Text))) + ((Tag / 180) * Pi))),
Point.Y + Value, @Text[Index], 1);
end;
end;
FormPaint(nil);
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
BitBlt(Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
end;
end.
Saludos