Hola.
Hasta Delphi2006, para poner un gif animado en un Timage usaba la VCL de Melander TGifimage, a partir de Delphi2007
esta Vcl está incluida, y la opción de animar gifs está desactivada, una manera de seguir haciendo lo mismo seria
recompilar TGifImage activando la animacion y sustituir la dcu incluida en Delphi por el resultado de la compilación.
Otras formas de hacerlo sin modificar la dcu serian:
1-Establecer la variable global 'GifImageDefaultAnimate:==True', antes de "instanciar" el objeto TGifImage.
2-...'(Image2.Picture.Graphic as TGifImage).Animate:= True;'
Mis preguntas, dudas y demás... son: Dado el siguiente código en el que tengo un gif animado en el Image2
¿Donde, como y porqué?..coloco el "source" donde animar el gif, de las dos maneras.
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.GIFImg, Vcl.Imaging.jpeg, Vcl.ExtCtrls, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; Image1: TImage; Image2: TImage; Button2: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); function IsWindowsGenuine() : Boolean; const app_guid : TGUID = '{55C92734-D682-4D71-983E-D6EC3F16059F}'; module : string = 'Slwga.dll'; api : string = 'SLIsGenuineLocal'; var app_id : TGUID; state : Byte; ret : HRESULT; CheckGenuine : function (var appID : TGUID ; var result : Byte ; uReserved : Pointer): HRESULT;stdcall; begin CheckGenuine := GetProcAddress(LoadLibrary(PChar(module)),PChar(api)); if @CheckGenuine <> nil then begin app_id := app_guid; ret := CheckGenuine(app_id,state,nil); if Succeeded(ret) then begin Result := (state = 0); SetLastError(ERROR_SUCCESS); end else begin Result := False; SetLastError(ERROR_ACCESS_DENIED); end; end else begin Result := False; SetLastError(ERROR_INVALID_FUNCTION); end; end; begin if (IsWindowsGenuine()) and (GetLastError() = ERROR_SUCCESS) then ShowMessage('Estas usando una copia original de Windows.') else ShowMessage('Tu windows es mas pirata que John Silver.'); Readln; end; end.
..por supuesto, gracias por todas las respuestas
saludos a todos.
Miguel