[asphyre] wyswietlanie bitmapy

0

Ucze sie pakietu Asphyre i napotkalem na problemy...

Utworzylem ASDb, w ktorym jest bitmapa o rozmiarze 1680x1050. Chce ją teraz wyświetlić na panelu i w zasadzie mi sie to udaje, ale jest jeden problem... bitmapa nie wyświetla się w naturalnych rozmiarach. Bitmapa jest rzecz jasna dużo wieksza niż moj panel, dlatego zmieści sie tylko jej czesc. Nie zalezy mi aby sie cała zmieścila ale aby była nieprzeskalowana. W Onrender skleciłem taki kod:

procedure TForm1.AsphyreDevice1Render(Sender: TObject);
var texCoord:TtexCoord;
begin
 texCoord.Pattern:=1;
 texCoord.x:=0; texCoord.y:=0;
 texCoord.w:=panel1.Width; texCoord.h:=panel1.Height;
 texCoord.Flip:=false; texCoord.Mirror:=false;
 AsphyreCanvas1.TexMap(AsphyreImages1[0],
                       pBounds4(0,0,panel1.Width,panel1.Height),
                       clWhite4,
                       texCoord,
                       1);
end;

Jeśli dobrze zrozumialem helpa dolączonego do Asphyre to parametr Points:TPoint4 funkcji TexMap odpowiada za skrawek ekranu na którym chcemy wyswietlac, tak wiec podałem wymiary panela. Natomiast parametr texCoord odpowiada za źródło, tzn. za jego pomocą wskazujemy jaki fragment danej bitmapy chcemy wyświetlic, tak wiec ponownie użyłem panel1.width i panel1.height aby wybrac odpowiedni fragment z mojej bitmapy.
Niestety taki kod nie wyswietla bitmapy w naturalnym rozmiarze tylko znacznie ja powieksza. Gdzie popełniam błąd? Bardzo prosze o pomoc.

0

przyznaje... mój błąd... zapomniałem wpisać odpowiednich wartości w AsphyreDevice.width i AsphyreDevice.Height

Tematu jednak nie zamykam, bo napotkałem inny problem. A mianowicie po przykryciu i potem odkryciu mojego panelu (tym na którym rysuje) jego zawartość znika. Na forum znalazłem na to jedną rade... używać komponentów które buforują obraz, np. TImage. Niestey nie wiem jak go użyć :(
Ogólnie w Asphyre aby nie rysować na pełnym ekranie tylko w oknie piszemy tak:

AsphyreDevice1.WindowHandle:=panel1.Handle;

Niestety nie wiem jak zmusic Asphyre aby rysował w Image'u. TImage nie posiada właściwiości Handle.
Jak sobie z tym poradzić?

1 użytkowników online, w tym zalogowanych: 0, gości: 1