Temat powracający zawsze gdy musimy wstawić coś z zasobów RC do Image1 i podmieniać to na
zasadach podobnych do animacji.
Pliki w zasobach to format *.JPG aby mało zajmowały miejsca dwa osobne obrazki.
Działanie: procedura ma wstawić obrazek *.JPG do Image1 zamienić go z formatu JPG na
typową bitmapę aby klasyczne operacje w rodzaju Image1.Canvas.CopyRect() mogły
coś przemieścić na naszym Image1.
Przykładowa procedura nie działa! Moje pytanie jak to powinno być poprawnie?
implementation
{$R Zasoby_RC\Bitmapy.res}
procedure TForm1.Button1Click(Sender: TObject);
var
Temp_ON,Temp_OFF: TResourceStream;
jpg : TJPEGImage;
begin
try
Temp_ON:=TResourceStream.Create(hinstance, 'JPG_Term_ON', RT_RCDATA);
Temp_OFF:=TResourceStream.Create(hinstance, 'JPG_Term_OFF', RT_RCDATA);
Image1.Picture.Graphic:=TJPEGImage.Create;
Image1.Picture.Graphic.LoadFromStream(Temp_ON);
if Image1.Picture.Graphic is TJPEGImage then
begin
jpg := TJPEGImage.Create;
jpg.Assign(Image1.Picture); //odczytujemy to co jest w Image1, przekształcamy na bmp i zapisujemy z powrotem do Image1
jpg.DIBNeeded;
Image1.Picture.Bitmap.Assign(jpg);
jpg.Free;
end;
//Tu przemieszczam pasek na Image1
Application.ProcessMessages;
Sleep(2000);
Image1.Picture.Graphic.LoadFromStream(Temp_OFF);
if Image1.Picture.Graphic is TJPEGImage then
begin
jpg := TJPEGImage.Create;
jpg.Assign(Image1.Picture); //odczytujemy to co jest w Image1, przekształcamy na bmp i zapisujemy z powrotem do Image1
jpg.DIBNeeded;
Image1.Picture.Bitmap.Assign(jpg);
jpg.Free;
end;
//Tu przemieszczam pasek na Image1
Application.ProcessMessages;
Sleep(2000);
except
Temp_ON.Free;
Temp_OFF.Free;
end;
end;