Arsip: error waktu mau menampilkan image

more 18 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 18 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 18 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 18 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 18 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 18 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 18 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
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 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 5 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
- nanya.....tentang metode search engine
by diah in Tutorial & Community Project more 18 years ago - menu aplikasi dapat di pindah posisinya ga ya????
by $tring in Hal umum tentang Pascal Indonesia more 16 years ago - TMU Printer komponen u/ printer kasir & dot matrik
by MrLee in Reporting more 16 years ago - Tanya format date di DBGrid ?
by gold3n_b0y in Hal umum tentang Pascal Indonesia more 19 years ago - Mohon bantuan....
by id8788 in OOT more 15 years ago - auto refresh record/record yang di update saja?
by oloan_ac in Hal umum tentang Pascal Indonesia more 16 years ago - [ASK] : Delete record hasil query
by akbaaar in Hal umum tentang Pascal Indonesia more 12 years ago - Error Message "Lost Connections During Query"
by 3m8ooo in MySQL more 16 years ago - Masalah Dalam Menghitung Expired Date...
by ii_irwan in Hal umum tentang Pascal Indonesia more 15 years ago - Yang baru sejak Delphi 7
by deLogic in Tip n Trik Pemrograman more 18 years ago