Witam wszystkich na pewno kazdy z was widzial kiedys taki programik:
http://www.dziecionline.pl/download/dobiazgi/brucelee.exe

Moje pytanie jest takie jak uzyskac efekt takiej ruszajacej sie postaci ktora chodzi po pulpicie. Udalo mi sie juz stworzyc "kuleczke" ktora rusza sie po ekranie w gore i w dol i poprzez zrobienie uchwytu canvasa do pulpitu rysuje po pulpicie jak po zwyklym canvasie. Niestety odtworzenie tla nie jest juz takie kolorowe poniewaz ekran widoczny podczas dzialania aplikacji nie jest tylko bitmapa zaladowana podczas startu.

Moje pytanie brzmi jak uzyskac taki program (ten z linku) czy moj kod idzie w dobrym kierunku czy moze zabralem sie za to od zlej strony.

function GetDesktopListViewHandle: THandle;
var
  S: String;
begin
  Result := FindWindow('ProgMan', nil);
  Result := GetWindow(Result, GW_CHILD);
  Result := GetWindow(Result, GW_CHILD);
  SetLength(S, 40);
  GetClassName(Result, PChar(S), 39);
  if PChar(S) <> 'SysListView32' then
  Result := 0;
end;


procedure TForm1.Button1Click(Sender: TObject);
var x,y:integer;
begin
  Form1.WindowState := wsMinimized;
  Canvas.Handle:=GetWindowDC(GetDesktopListViewHandle);
  // utworzenie obiektu Bitmap1
  Bitmap1 := TBitmap.Create;
  Bitmap1.Width:=Screen.Width;
  Bitmap1.Height:=Screen.Height;
  for x:=0 to Screen.Width - 1 do
    for y:=0 to Screen.Height do
      Bitmap1.Canvas.Pixels[x,y]:=Canvas.Pixels[x,y];
  Timer2.Enabled:=true;  
end;


{$J+}
procedure TForm1.Timer2Timer(Sender: TObject);
const x1:integer=0;
       y1:integer=0;
       krok:integer=5;
var   x,y:integer;
begin
   Canvas.Handle:=GetWindowDC(GetDesktopListViewHandle);
   Canvas.Draw(x1,0,Bitmap1); 
   Canvas.Ellipse(x1,y1,x1+30,y1+30);
    y1:=y1+krok;
    if y1+29>=Screen.Height then krok:=-krok;
    if y1<=0 then krok:=-krok;

end;