HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

JPG és más formátumú képeket, paradox táblába író és onnan megjelenítő komponens


Példaprogram letöltése

181781 bájt

A DBJPGImage komponens a DBImage komponens továbbfejlesztett változata. A komponens lehetővé teszi, hogy JPG és más formátumú képeket tároljunk paradox adatbázisokban. Segítségével egyszerűvé válik a képek elmentése és megjelenítése, kihasználhatjuk a JPG formátum rendkívüli tömörségét és kis helyigényét. Ez egy hálózatos rendszerben rendkívüli előnyt jelent.

A mellékelt példaprogram megnyitása előtt a DBJPGImage.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A DBJPGImage komponens a DBImage-ből származik. Ezáltal örökli annak minden tulajdonságát, amit eddig is használhattunk. Ezeken az alap tulajdonságokon felül képes arra, hogy a paradox táblák Binary vagy Graphic típusú mezőjében képeket tároljon el, illetve onnan képeket jelenítsen meg.
Ha egy képet el akarunk tárolni, akkor meg kell, hogy jegyezzük a kiterjesztését is. A kiterjesztés határozza meg azt, hogy a számítógép milyen algoritmus szerint dolgozza fel az adott képet.
Amikor létrehozunk egy adattáblát, amelyben képet szeretnénk tárolni, létre kell hoznunk egy String típusú mezőt is, amelyben a kép kiterjesztését fogjuk eltárolni.
Ahhoz, hogy ezzel a mezővel kapcsolatot tudjunk létesíteni, komponensünkben szükségünk van egy ExtensionField tulajdonságra. Ez a tulajdonság String típusú és a DataField tulajdonsághoz hasonlóan egy adatmező nevét fogja tárolni. A példaprogramban ez „Kiterjesztés”.
Szükséges továbbá egy Extension nevű tulajdonság is, amely szintén String típusú. Amikor egy fájlból töltünk be képet, akkor ebben a tulajdonságban tároljuk el ideiglenesen a kép kiterjesztését.
A LoadPicture metódus jeleníti meg az adattáblában lévő képet. A SavePicture metódus pedig a komponens Picture tulajdonságában elhelyezett képet menti el az adattáblába.
A LoadPicture függvény magja
Stream:=TMemoryStream.Create;
Blob:=TBlobStream.Create(DataSource.DataSet.FieldByName(DataField) as TBlobField,bmRead);
Stream.CopyFrom(Blob,0);
Stream.SaveToFile('Temp.'+fExtension);
Picture.LoadFromFile('Temp.'+fExtension);
DeleteFile('Temp.'+fExtension);
Blob.Free;
Stream.Free;
A TBlobStream objektummal csatlakozhatunk a paradox táblák bináris mezőihez. Ehhez hivatkoznunk kell az adattábla mezőjére. Jelen esetben ezt a mezőt a DataSource property-n keresztül tudjuk elérni. Típuskényszerítést kell alkalmaznunk, mert a TBlobStream.Create paraméterlistájában csak TBlobField típusú objektumot adhatunk meg. A következő paraméter (bmRead) azt jelenti, hogy az adott mezőből olvasni fogunk.
A BlobStream értékét nem tudjuk közvetlenül átadni a Picture property-nek. Ehhez egy picit trükköznünk kell. Adjuk át a BlobStream tartalmát egy MemoryStream-nek, amely rendelkezik a fájlba írás képességgel. A fájlból a Picture property pedig már be tudja olvasni a képet.
A SavePicture függvény magja
Az itt megvalósítandó eljárás ugyanaz, mint a LoadPicture-nél, csak fordított. A Picture property-ből elmentjük a képet egy fájlba. Azt beolvassuk egy MemoryStream-be, majd a BlobStream segítségével beírjuk azt az adattáblába.
A függvény visszatérési értéke True ha a mentés sikeres, ellenkező esetben False.
A komponens hozzákapcsolása az adattáblához
  • Állítsuk be a komponens DataSource tulajdonságát.
  • A DataField property-ben adjuk meg azt a bináris mezőt, amely a képet fogja tárolni.
  • Az ExtensionField property-ben adjuk meg azt a String típusú mezőt, amely a kép kiterjesztését tárolja.
  • Mielőtt meghívjuk a SavePicture metódust, az Extension property-be állítsuk be az elmentendő kép kiterjesztését.

Cikksorozat

#IDKategóriaCikk címeSorozat
3047WindowsAz XML bemutatása1. rész
3059WindowsAz XML bemutatása2. rész
3068WindowsAz XML bemutatása3. rész
3077WindowsAz XML bemutatása - deklarációk4. rész
3086WindowsAz XML bemutatása - MSXML, XSLT5. rész
3094WindowsAz XML bemutatása - DTD6. rész
3105WindowsXML adatok megjelenítése Excel-ben7. rész
3114WindowsDokumentum hivatkozások az XML-ben8. rész
3123WindowsXML adattípusok9. rész
3132WindowsXML adatok HTML oldalakon10. rész
3141WindowsXML Notepad11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 658. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |