Arsip: error waktu mau menampilkan image
more 17 years ago
shindo
rekan sekalian,
mau nanya nih saya ada error pada listing yg saya buat waktu mau menampilkan message setelah refresh ...
sebelumnya tidak ada masalah waktu program ini belum saya pasang ke event on refresh
berikut potongan program nya
sedang error message yg ditampilkan :
... EFOpenError with message 'Cannot open file xxx.jpg. Process cannot open file because it is being used by another process'mohon pencerahannya, apa yg harus saya betulkan supaya program bisa berjalan normal ? thx a lot :D
var PicFile : string;
OleGraphic : TOleGraphic;
fs : TFileStream;
begin
PicFile := FrMenu.PicsDir+DMMaster.TMPet.FieldByName('PPic').AsString;
OleGraphic := nil;
fs := nil;
OleGraphic := TOleGraphic.Create;
fs := TFileStream.Create(PicFile,fmOpenRead);
with FrMPet.fpics.Picture do
begin
OleGraphic.LoadFromStream(fs);
Assign(OleGraphic);
FrMPet.FPicSize.Caption := IntToStr(Width)+' x '+IntToStr(Height);
if (width > 250) or (height > 250) then
end;
end;
more 17 years ago
Manz
Bro shindo, mungkin kurang tepat kalo di simpan di event onRefresh ... karena setiap kali image load , pasti dipanggil lagi untuk onResfresh nya ...
Error tersebut mungkin terjadi karena dead-lock pada saat menampilkan image yang belum selesai tapi event onRefresh sudah dipanggil kembali oleh proses yang lain (background process)
:mrgreen:
mendingan jangan disimpan di onRefresh, mendingan di procedure lain, baru kalo ada perubahan tinggal panggil aja procedure itu... Oceh ...
more 17 years ago
shindo
umm ... tapi saya butuhnya itu buat database binatang, jadi tiap binatang bisa ada gambar2 nya ...
kalau misalnya saya mau buat loop buat menunggu supaya tidak jadi dead lock, jadi saat satu proses belum selesai, tunggu sampai proses yg satu selesai baru di proses lagi begitu, gimana cara bikin looping nya ya
atau ... bisa tolong kasih tau, identitas apa atau status apa yg bisa dicek utk menunjukkan proses pembacaan image sdh selesai ?
mohon pencerahannya
thx a lot
more 17 years ago
DelphiExpert
kemungkinan pertama: dikau lupa men-destroy fd: TFileStream ... sehingga state file tersebut (resource IO) masih nempel. Setelah selesai load from stream panggil fs.free;, ataukah OleGraphic.LoadFromStream otomatis udah me-release file stream tsb?
untuk mengetahui sebuah proses dalam blok udah selesai apa belum gampang aja...
tambai variable global, loadPic: Boolean misalnya.
var PicFile : string;
OleGraphic : TOleGraphic;
fs : TFileStream;
begin
if LoadPic then Exit;
LoadPic:= True;
try
PicFile := FrMenu.PicsDir+DMMaster.TMPet.FieldByName('PPic').AsString;
OleGraphic := nil;
fs := nil;
OleGraphic := TOleGraphic.Create;
fs := TFileStream.Create(PicFile,fmOpenRead);
with FrMPet.fpics.Picture do
begin
OleGraphic.LoadFromStream(fs);
Assign(OleGraphic);
FrMPet.FPicSize.Caption := IntToStr(Width)+' x '+IntToStr(Height);
if (width > 250) or (height > 250) then
end;
finally
loadPic:= False;
end;
end;
more 17 years ago
Manz
Saya rasa OleGraphic tidak melakukan free secara otomatis setelah me-load filestream, sebab kalo free otomatis fungsi Assign(OleGraphic) tidak bakal sukses, karena OleGraphic menjadi nil.
more 17 years ago
Manz
dari source diatas ....
try
... bla bla bla
finally
loadPic := False;
fs.free; <---- tambahin ini untuk free-ing memory setelah creating FS oleh TFileStream
end;
Smoga Embantoe :mrgreen:
more 17 years ago
shindo
sip banget bro ..
dah bisa sekarang ...
yg kemarin gw coba2 ... akhirnya bisa juga, saya coba akalin di
fs := TFileStream.Create(PicFile,fmOpenRead)
saya ganti jadi
fs := TFileStream.Create(PicFile,fmShareNoneDeny)
tapi kayanya ini cara yg salah deh ...
thx a lot buat semuanya :D
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- Convert String
by syntax_error in Tip n Trik Pemrograman more 16 years ago - GImana Cara Save dan Print DBGRID
by ari_volker in Hal umum tentang Pascal Indonesia more 17 years ago - [HELPP ]Tanya cara set Regional Option dari script dong
by MingMing in Tip n Trik Pemrograman more 18 years ago - Tanya wireless
by Apakekdah in Network, Files, I/O & System more 18 years ago - Index doesnt exist
by takur_sakti in Hal umum tentang Pascal Indonesia more 18 years ago - Gimana caranya 1 report ada 2 detail (quickreport) ?
by vikraa in Reporting more 16 years ago - Gimana Cara Menghentikan Printer ?
by holmes in Tip n Trik Pemrograman more 18 years ago - Membuat Text "MARQUEE"
by i_hasibuan in Form Enhancement & Graphical Controls more 17 years ago - IlmuKomputer.Com - mohon doa buat kesembuhan IKC yaa
by LuriDarmawan in OOT more 15 years ago - Help
by ian_lenovo in Hal umum tentang Pascal Indonesia more 13 years ago