jpeg sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
jpeg sorunu
delphide jpeg dosyaları veri tabanında tutamıyorum. mustafa beyin notlarını aldım cok iyi ama oradaki kodda bazı sorunlarla karşılaşıyorum. zannediyorum eksik unit lerden kaynaklanıyor. bu konuda yardım istiyorum. personel kaydında jpeg resim kaydı isteniyor bu sebepten.
BlobField := table1.DataSet.FieldByName('Bild') as TBlobField;
bu satırda undeclereted identifer hatası veriyor ve ben halledemedim. bu neden kaynaklanıyor.
birde sql kullanımının bu konuda bana faydası olurmu olursa nasıl olur?
BlobField := table1.DataSet.FieldByName('Bild') as TBlobField;
bu satırda undeclereted identifer hatası veriyor ve ben halledemedim. bu neden kaynaklanıyor.
birde sql kullanımının bu konuda bana faydası olurmu olursa nasıl olur?
+ bir ek not daha. undeclarated identifier hatası aldığınız kelimenin üstüne gelip klavyeden F1 tuşuna basın. Delphi Help açılır ve en üst tarafta, o kelimenin hangi unitte tanımlandığı yazılıdır. o uniti uses kısmına ekleyin.
SQL kullanımının burada pek faydalı olabileceğini sanmıyorum.
Kolay gelsin.
SQL kullanımının burada pek faydalı olabileceğini sanmıyorum.
Kolay gelsin.
teşekkürler
teşekkürler mustafa bey ilginiz için ama DataSet kelimesinin önünde duruyor imleç. TDataSet Db unitinde ve benim uses satırında bu unit var ama hata hala mevcut. Alan olayı konusunda haklısınız onu farkettim ama hata oradan daha önce.
doğru ama olmuyo
dediğim gibi yaptım onu ama olmuyo. hata mesajı aynen şöyle
undeclereted identifer 'DataSet'
dataset in uniti için DB diyor yardım dosyası ve zaten benim programda her her tarafta bu unit mevcut hatta veritabanının hemen hemen tüm unitleri mevcut ama halen hata devam ediyor.
undeclereted identifer 'DataSet'
dataset in uniti için DB diyor yardım dosyası ve zaten benim programda her her tarafta bu unit mevcut hatta veritabanının hemen hemen tüm unitleri mevcut ama halen hata devam ediyor.
şimdi ben bişeyler yaptım ama bozdummu yaptımmı bilmiyorum. habire tıkanıyorum.
şu hata mesajı vardıya
undeclared indetifier 'xyz'
eğer ki
BlobField := table1.DataSet.FieldByName('Bild') as TBlobField;
bu satırı
BlobField := table1.DataSetField.DataSet.FielByName('Bild') as TBlobField;
olarak değiştirirsem o hatadan kurtuluyorum. ama bu sefer hemen birkaçsatır aşağıda yine aynı hatayı başka bişey için veriyor. oda şu
DataSourceForm.DataSet.Edit;
bu satır için şöyle diyo
undeclared indetifier 'DataSourceForm'
ne yapacağımı bilemiyorum. bu loadPic procedure nü yazmam gereken özel bir yermi var. veya formun üzerine koymam gereken farklı bir bileşen mi var, veya bu procedure ü bir yerden çağırmam mı gerekiyor? anlamadım vallahi
şu hata mesajı vardıya
undeclared indetifier 'xyz'
eğer ki
BlobField := table1.DataSet.FieldByName('Bild') as TBlobField;
bu satırı
BlobField := table1.DataSetField.DataSet.FielByName('Bild') as TBlobField;
olarak değiştirirsem o hatadan kurtuluyorum. ama bu sefer hemen birkaçsatır aşağıda yine aynı hatayı başka bişey için veriyor. oda şu
DataSourceForm.DataSet.Edit;
bu satır için şöyle diyo
undeclared indetifier 'DataSourceForm'
ne yapacağımı bilemiyorum. bu loadPic procedure nü yazmam gereken özel bir yermi var. veya formun üzerine koymam gereken farklı bir bileşen mi var, veya bu procedure ü bir yerden çağırmam mı gerekiyor? anlamadım vallahi

Y.S.K.
Yazılım Sistemleri
Yazılım Sistemleri
uses da Jpeg uniti ekli olduğunu varsayarak aşağıdaki kodlardan yararlanarak JPeg bir resim dosyasını paradoks (bendeki paradoks olduğu için) tablosuna gömebilirsin.
Kod: Tümünü seç
var
bs: TBlobStream;
fs: TFileStream;
jp: TJPEGImage;
begin
....
tblResim.Append;
FName := 'c:\resim.jpg')
fs := TFileStream.Create(FName, fmOpenRead);
tblResimID_NUMBER.Value := 123;
// fs := TFileStream.Create('c:\resim.jpg', fmOpenWrite or fmCreate);
bs := TBlobStream(tblResim.CreateBlobStream(tblResim.FieldByName('RESIM'), bmWrite));
bs.CopyFrom(fs, 0);
bs.Free;
fs.Free;
tblResim.Post;
.....
with tblResim do
if FileExists('c:\resim.jpg') then
begin
// tblResimID_NUMBER.Value := 12345;
if not bFound then
begin
fs := TFileStream.Create('c:\resim.jpg', fmOpenRead);
Append;
tblResimID_NUMBER.Value := qryStudentID_NUMBER.Value;
bs := TBlobStream(CreateBlobStream(FieldByName('RESIM'), bmWrite));
bs.CopyFrom(fs, 0);
bs.Free;
fs.Free;
Post;
end;
end;
...
end;
tesekkürler rşimşek senin verdiğin kodla mustafa beyin kodunu birleştirince istediğim gibi çalışıyor. ama mustafa beyin kodu tek başına kesin olarak çalışmıyor. benim kullandığım kodun son hali şöyle
table in paradox oluğunu varsayarak
table in paradox oluğunu varsayarak
Kod: Tümünü seç
procedure TForm1.loadPic;
var
jpeg: TJPEGImage;
Stream: TMemoryStream;
BlobField: TBlobField;
begin
BlobField := table1.DataSetField.Dataset.FieldByName('Resmi') as TBlobField;
jpeg := TJPEGImage.Create;
try
if (Image1.Picture.Graphic is TJPegImage) then begin
jpeg.Assign (Image1.Picture.Bitmap);
end;
Stream := TMemoryStream.Create;
try
jpeg.SaveToStream (Stream);
BlobField.LoadFromStream (Stream);
finally
Stream.Free;
end;
finally
jpeg.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
bs: TBlobStream;
fs: TFileStream;
jp: TJPEGImage;
FName:TFileName;
bFound:boolean;
begin
table1.Edit;
FName := (opendialog1.FileName);
fs := TFileStream.Create(FName, fmOpenRead);
bs := TBlobStream(table1.CreateBlobStream(table1.FieldByName('Resmi'), bmWrite));
bs.CopyFrom(fs, 0);
bs.Free;
fs.Free;
table1.Post;
with table1 do
if FileExists(opendialog1.FileName) then
begin
if not bFound then
begin
fs := TFileStream.Create('c:\resim.jpg', fmOpenRead);
Append;
bs := TBlobStream(CreateBlobStream(FieldByName('RESIM'), bmWrite));
bs.CopyFrom(fs, 0);
bs.Free;
fs.Free;
Post;
end;
end;
table1.Append;
end;
procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
var
MS: TMemoryStream;
J1: TJPEGImage;
begin
J1 := TJPEGImage.Create;
MS := TMemoryStream.Create;
try
TBlobField(DataSet.Fieldbyname('Resmi')).SaveToStream(MS);
MS.Seek(0,soFromBeginning);
with J1 do begin
PixelFormat := jf24Bit;
Scale := jsFullSize;
Grayscale := False;
Performance := jpBestQuality;
ProgressiveDisplay := True;
ProgressiveEncoding := True;
LoadFromStream(MS);
end;
if MS.Size >0 then
Image1.Picture.Assign(J1)
else
Image1.Picture.Assign(nil);
finally
J1.Free;
MS.Free;
end;
end;
Y.S.K.
Yazılım Sistemleri
Yazılım Sistemleri
merhaba
merhabalar Jpeg Sorunu ile ilgili kodu denedim.yalnız "undeclared identifier 'Load Pic' hatasını veriyor.bu komponent felan mı yoksa procedure olarak mı tanımlamam lazım.procedure olarak nasıl tanımlayabilirim?tanımlamaya çalıştım.ama olmadı.YARDIMLARINIZ İÇİN TEŞEKKÜRLER.İYİ RAMAZANLAR.
hayır loadpic companent falan değil. o bizim eklediğimiz bir procedure. bu procedure' i yukarıda tanımlamanız gerekiyor bunu yaptınız mı?
en yukarıda diğer procedure lerin tanımlı olduğu bölgede bir satır açın ve şöyle yazın
bu şekilde procedure yi tanımlamış olursunuz.
en yukarıda diğer procedure lerin tanımlı olduğu bölgede bir satır açın ve şöyle yazın
Kod: Tümünü seç
procedure loadpic();
Y.S.K.
Yazılım Sistemleri
Yazılım Sistemleri
microchip örneğini bulamadım. tam olarak nerede olduğunu söylersen incelemek isterim. şu an benim jpegle ilgili bir sorunum kalmadı. en son yolladığım kod tam olarak benim istediğim şekilde ve doğru olarak çalışıyor. ancak mmumtaze arkadaşım bu kodla ilgili bazı sorunlar yaşamış. fakat onun karşılaştığı sorunuda tam olarak anlayamadım.
Y.S.K.
Yazılım Sistemleri
Yazılım Sistemleri
buyur dostum linkini:
viewtopic.php?t=991&highlight=access+jpeg
gayet kısa ve öz.
hayırlı çalışmalar[/url]
viewtopic.php?t=991&highlight=access+jpeg
gayet kısa ve öz.
hayırlı çalışmalar[/url]