Проект начинает выполняться с обработчика события OnCreate:
Code: |
procedure TShuffler.FormCreate(Sender: TObject); begin rW := Screen.Width div DELTA; rH := Screen.Height div DELTA;
redRect:=TBitmap.Create; with redRect do begin Width := rW; Height := rH; Canvas.Brush.Color := clRed; Canvas.Brush.Style := bssolid; Canvas.Rectangle(0,0,rW,rH); Canvas.Font.Color := clNavy; Canvas.Font.Style := Canvas.Font.Style + [fsBold]; Canvas.TextOut(2,2,'About'); Canvas.Font.Style := Canvas.Font.Style - [fsBold]; Canvas.TextOut(2,17,'Delphi'); Canvas.TextOut(2,32,'Programming'); end;
Timer1.Enabled := False; Image1.Align := alClient; Visible := False; BorderStyle := bsNone; Top := 0; Left := 0; Width := Screen.Width; Height := Screen.Height; InitScreen; // SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE + SWP_NOMOVE); Visible := True; Timer1.Interval := 10; // меньше := быстрее Timer1.Enabled := True; // Запускаем вызов DrawScreen end; |
Во-первых, значения rW и rH определяются значением DELTA. Как уже объяснялось, если разрешение экрана 800x600 и DELTA равна 8, изображение экрана будет разделено на 8x8 частей размером 100x75 (rW = 100, rH = 75).
Во-вторых, созданный битмап redRect, будет размещён внутри картинки, с той целью, чтобы заменить перемещённый блок. redRect является простым красным прямоугольником с текстом (синим) внутри него. Так же для этого можно использовать готовую эмблему или что-то ещё.
Наконец, устанавливается ширина и высота формы как у экрана. Вызов (закомментированный) API функции SetWindowPos можно использовать, чтобы установить форму всегда на переднем плане (OnTop), не перемещаемую и не изменяемую. Вызывается процедура InitScreen. Устанавливает интервал таймера и начинает выполняться обработчик события OnTimer, запуская процедуру DrawScreen.
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!