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;