Hallo,
Via een reeks bewerkingen genereer ik een compleet geheugenblok met data. In dit geval betreft het een gifje. Nu wil ik dit gifje tonen. Nu doe ik dat op de volgende manier:
Iets in mij zegt dat dat efficienter kan via TStreams, maar daarvoor geldt het verhaal van de klok en de klepel.
Na een hoop help-files en internetpagina's te hebben doorlopen, denk ik gebruik te moeten maken van TMemorystream, setpointer. Maar hoe daar kom ik niet uit.
Ik denk dat het iets moet worden van:
Maar dat werkt niet. En TStreams is slecht gedocumenteerd, kan iemand mij helpen?
Via een reeks bewerkingen genereer ik een compleet geheugenblok met data. In dit geval betreft het een gifje. Nu wil ik dit gifje tonen. Nu doe ik dat op de volgende manier:
Delphi:
1
2
3
4
5
6
7
8
9
| Buffer:array[0..8191] of byte; TmpBestand:file; ... assignfile(TmpBestand,'e:\test.gif'); rewrite(TmpBestand,1); BlockWrite(TmpBestand,Buffer[0],Lengte); closeFile(TmpBestand); gif.LoadFromFile('e:\test.gif'); |
Iets in mij zegt dat dat efficienter kan via TStreams, maar daarvoor geldt het verhaal van de klok en de klepel.
Na een hoop help-files en internetpagina's te hebben doorlopen, denk ik gebruik te moeten maken van TMemorystream, setpointer. Maar hoe daar kom ik niet uit.
Ik denk dat het iets moet worden van:
Delphi:
1
2
3
4
5
6
7
8
9
| TmpStream:TMemorystream; ... TmpStream:=TmemoryStream.create; TmpStream.SetPointer:=@Buffer; TmpStream.Size:=Lengte; gif.LoadFromStream(TmpStream); TmpStream.Free; |
Maar dat werkt niet. En TStreams is slecht gedocumenteerd, kan iemand mij helpen?