Caesar Napisano Czerwiec 17, 2008 Zgłoś Share Napisano Czerwiec 17, 2008 Mam problem z użyciem modułu PixelCore (jak i również FastPixels, TurboPixels, PixelsDX), robię wszystko jak w tutorialach, ale wyskakuje mi błąd dostępu do pamięci po uruchomieniu programu. Możecie mi dokładnie wyjaśnić, jak użyć któregoś z wymienionych modułów? Dajcie jakiś kod albo działający program. Tylko nie piszcie, że to "jest opisane i wystarczy się rozejrzeć" i nie odsyłajcie mnie do przykładów i dem z DelphiXa... Potrzebuję zwykłego, prostego programu... // temat przeniesiony z działu Delphi - sazian Link do komentarza Udostępnij na innych stronach More sharing options...
TEIWAZ Napisano Czerwiec 17, 2008 Zgłoś Share Napisano Czerwiec 17, 2008 to zapodaj ten swój kod to sie zobaczy co źle idzie Link do komentarza Udostępnij na innych stronach More sharing options...
Caesar Napisano Czerwiec 17, 2008 Autor Zgłoś Share Napisano Czerwiec 17, 2008 Oto kod zdarzenia OnTimer: [code=Delphi] procedure TfDX.TimerTimer(Sender: TObject; LagCount: Integer); var i, j, c: Integer; punkt: TPoint; kolor: TColor; tx, ty: Integer; rx, ry: Integer; begin Ekran.Surface.Fill(0); //rys.Image.DrawRotate(Ekran.Surface, 200, 200, 100, 100, 1, 0.5, 0.5, kat); //rys.Image.DrawWaveX(Ekran.Surface, 350, 350, 100, 100, 3, 10, 10, 10); Engine.Draw; Images.Items.Find('paleta').DrawRotateAlphaCol(Ekran.Surface, 0, 0, 150, 150, 0, 0, 0, 0, pc); Engine.Move(LagCount); GetCursorPos(punkt); Canvas.Handle:=GetWindowDC(GetDesktopWindow); kolor:=Canvas.Pixels[punkt.X,punkt.Y-1]; Ekran.Surface.Canvas.Brush.Color:=kolor; Ekran.Surface.Canvas.TextOut(400, 200, ' ' + ColorToString(kolor) + ' '); Ekran.Surface.Canvas.Brush.Color:=clWhite; Ekran.Surface.Canvas.TextOut(400, 220, ' ' + IntToStr(GetRValue(kolor)) + ' '); Ekran.Surface.Canvas.TextOut(400, 240, ' ' + IntToStr(GetGValue(kolor)) + ' '); Ekran.Surface.Canvas.TextOut(400, 260, ' ' + IntToStr(GetBValue(kolor)) + ' '); Ekran.Surface.Canvas.TextOut(430, 220, ' ' + IntToStr(GetRValue(ZmienKolor(kolor))) + ' '); Ekran.Surface.Canvas.TextOut(430, 240, ' ' + IntToStr(GetGValue(ZmienKolor(kolor))) + ' '); Ekran.Surface.Canvas.TextOut(430, 260, ' ' + IntToStr(GetBValue(ZmienKolor(kolor))) + ' '); rx:=(fDX.Left + (fDX.Width - fDX.ClientWidth) div 2) + Ekran.Left; ry:=(fDX.Top + (fDX.Height - fDX.ClientHeight - (fDX.Width - fDX.ClientWidth) div 2)) + Ekran.Left; tx:=punkt.X - (fDX.Left + (fDX.Width - fDX.ClientWidth) div 2) + Ekran.Left; ty:=punkt.Y - (fDX.Top + (fDX.Height - fDX.ClientHeight - (fDX.Width - fDX.ClientWidth) div 2)) + Ekran.Left; Ekran.Surface.Canvas.TextOut(400, 280, ' ' + IntToStr(tx) + 'x' + IntToStr(ty) + ' '); Ekran.Surface.Canvas.TextOut(400, 300, ' ' + IntToStr(punkt.X) + 'x' + IntToStr(punkt.Y) + ' '); RysujPiksel(gx + 50, gy + 50, kolor); rys.Image.DrawRotate(Ekran.Surface, 200, 200, 100, 100, 1, 0.5, 0.5, kat); ********************** for i:=1 to 51 do for j:=1 to 51 do begin //zasieg[i, j]:=Ekran.Surface.Canvas.Pixels[i + gx, j + gy]; //Ekran.Surface.Canvas.Pixels[i + gx, j + gy]:=ZmienKolor(zasieg[i, j]); DXSurfaceLock(Ekran.Surface.ISurface4, Ekran.Surface.BitCount); PutPixel(i + gx + 51, j + gy, ZmienKolor(Canvas.Pixels[i + gx+rx, j + gy+ry])); DXSurfaceUnlock(Ekran.Surface.ISurface4); //Ekran.Surface.Canvas.Pixels[i + gx+51, j + gy]:=ZmienKolor({Ekran.Surface.}Canvas.Pixels[i + gx+rx, j + gy+ry]); end; ********************** Ekran.Surface.Canvas.Release; Ekran.Flip; kat:=kat + 0.1; end;ŚQ`IAĄ%ŃQ ą)(ŃŃ%Ń)(M ąi-ąĄ(M QŃ=Ź ąQMŃĄi-ąĄŹ(M Aąmti-ąĄ(źa]ŃIŃ)ŚQ` ŃĄMQ=)(I(%Ńą(%ѹѥ((MĄ5 ąĄ`(ąŃQŃ(((Q= ŃĄ(%%%ŃŃźŹź(]ŃźąŃ(!ĄźąŃ(`ź(dź(1џѹ( źąąŃŹ(MŃ(M((QąQ();ŚŚ[eś[]zZaYH]^[K[YN[NHX^HHYHXBBB[KTXQXBX^YKX^[[Z[]^[[X^TXQ]B][YYKX^[WKX B][ [/code]mogę wysłać wszystkie źródła... tzn. cały projekt (choć to na razie testowy...)Sorry, że od razu nie umieściłem tematu w tym dziale... Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.