Resim yolunda ki değeri dbeditten alması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Resim yolunda ki değeri dbeditten alması

Mesaj gönderen bobasturk »

Merhabalar,

Forumdaki örnekleri inceledim, tabloya atmak istemediğimden ve herzaman görünmesini istemediğimden şöle bişi yaptım.

Kod: Tümünü seç

.......button1.click()
begin
  image1.picture.loadfromfile('d:\Proje\Resim Dosyaları\333333.jpg');
end;
şeklinde butona basınca ilgili resmi gösterebiliyorum. Burada yapmak istediğim '333333' olan resim adı tablomda Ceraim no alanında geçiyor bu rakamsal değeri bu alandan almasını istiyorum.
şöyle anlatayım

image1...............\333333.jpg yerine

image1............\[dbedit1].jpg şeklinde yapabilirmiyiz resim numarası ile dbedit1 deki numaralar aynı olduğu için değerini buradan alsın bize sadece butona basmak kalsın.

VT=Firebird
Delphi=7
DBedit1 alan değeri=integer
ibdataset bileşeni ile verileri işliyorum

Teşekkür ve saygılarla
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Evet yapabilirsin ancak resmin adını DbEdit.Text den değilde alan adından çağırsan daha sağlıklı olur

Kod: Tümünü seç

Image1.Picture.LoadFromFile('d:\Proje\Resim Dosyaları\'+Table1.FieldByNamE('Ceraim_no').ASString+'.jpg');
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Ustam,

yardımın için teşekkür ederim, yol göstermiş oldun çünkü yapamadım. ibdataset bileşeni ve datasource ile form üzerinde tablodaki alanlara bağlanarak kayıt vs işlemlerimi yapıyorum. verdiğin kodda table1 yerine ibdataset1 kullanarak yapmaya çalıştım fakat nokta koyduktan sonra fieldbyname seçeneği çıkmadığı için şaşırıp kaldım, seçeneklerden değişik şekillerde denedim ama run başlamadan önce komut satırı ceraımno yazdığım kesimlerde imleç yanıp sönmeye başladı ve burada bi hatamın olduğunu anladım çeşitli denemeler yaptım ama komut çalışmadı en son aşağıdaki komut çalıştı fakat oda belirtilen dosya bulunamıyor hatası ile prg çalışmasını durdurdu.

Kod: Tümünü seç

procedure TFormArsivTescil.Button2Click(Sender: TObject);
begin
  image1.Picture.LoadFromFile('d:\OlayYeriInceleme\Resimler\+ibdataset1.fieldbyname(CERAIMNO)+.jpg');
end;
yapmak istediğim o an formun CERAIMNO alanında görünen numaranın dosya yolundaki .jpg satırından önce görünerek Resimler dosyası içindeki fotoğrafı bulması ve göstermesi. Demek istediğimi anladığınızdan eminim fakat biz çalıştıramadık.

Teşekkür ve saygılarla
Kolay gelsin
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam,

Bize yol göstererek büyük bir sevince garkolduk ve sorunu şu şekilde çözdüm;

Kod: Tümünü seç

procedure TFormArsivTescil.Button2Click(Sender: TObject);
begin
  image1.Picture.LoadFromFile('d:\OlayYeriInceleme\Resimler\'+dbedit1.text+'.jpg');
end;
bölelikle dbedit1.text te yazan fotoğrafı bularak gösterdi, dbedit1.text boş olan yerlere gelince herhangi bir değer olmadığından belirtilen dosya bulunamadı hatası vererek run durdu,

sıra geldi bu hatadan önce showmessage yazarak kullanıcıyı uyarmak

yardımlarınız için teşekkür eder kolaylıklar dilerim.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
gerçi hallettim demişsin ama hataverdiği yerde CERAIMNO yu tırnak içinde yazman gerekiyor. Yani alan ismi tırnak içinde olacak.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Ustam,

şimdi yine denedim tırnak içinde olsada hata veriyor, bi kere ibdataset1. diyince fieldbyname seçeneği yok delphi başka seçenekler sunuyor denedim kodun çalıştığı yerde göster diyince belirtilen dosya bulunamadı diyor. İşi diğer türlü hallettik ama sağlıklı olma açısından hangisi iyi bilemiyorum, inşeallah sizin yöntemide uygulamaya çalışacağım büyük ihtimalle sorun bizden kaynaklanıyor olabilir.

teşekkür ve saygılarla
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

gozden kacmıs galiba
olc yazdı:Ustam,

Kod: Tümünü seç

procedure TFormArsivTescil.Button2Click(Sender: TObject);
begin
  image1.Picture.LoadFromFile('d:\OlayYeriInceleme\Resimler\'+ibdataset1.fieldbyname('CERAIMNO').AsString+'.jpg');
end;
seklinde calısması lazım
bu gibi islemler yaptırırken hata veren yerde stringi soyle bir showmessage ile kontrol etmekte fayda var...
kolay gelsin
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

gökmen ustam teşekkür ederim

muhakkak deniyeceğim çünki verdiğiniz yolun daha sağlıklı olduğunu inanıyorum nedense şöle yaparak istediğim gibi çalışoyır

Kod: Tümünü seç

procedure TFormArsiv.BitBtn3Click(Sender: TObject);
begin
  if fileexists('d:\OlayYeriIncBrProjesi\Resim Dosyaları\'+DBEdit1.Text+'.jpg') then
  begin
  image1.Picture.LoadFromFile('d:\OlayYeriIncBrProjesi\Resim Dosyaları\'+DBEdit1.Text+'.jpg');
  end
  else
  begin
  if not fileexists('d:\OlayYeriIncBrProjesi\Resim Dosyaları\'+DBEdit1.Text+'.jpg') then
  showmessage('yok');
  end;
end;
yalınız burada CERAIMNO alanım integer olarak ayarlı

şimdide ilerlemem gerekiyor çünki kayıtlar arası gezerken önceki gösterdiği fotoğraf görünmeye devam ediyor. Bunu navigatorun last, back olaylarına image yi temizlemesini yazmam gerekiyor heralde yoksa ibdataset in mi ileri, geri, son, ilk özelliklerinemi yazmam gerekiyor.

teşekkür ve saygılarla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustalarım,

dediğiniz yol ile bu iş oldu sanırım tırnaklarda hata yaptığımdan dolayı yapamıyordum.

Teşekkür eder saygılar sunarım.
(Teşekkürün yetmediğini bile bile)
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Mesaj gönderen warder »

Kod: Tümünü seç

....
else Image->Picture = NULL;
Bugün bu kodu ikinci kere yazıyorum. Böyle kullanırsanız önceki resmi göstermeye devam etmez. Hata kodu vermez. not exists gibi ayrıntılara da gerek kalacağını sanmıyorum.
Alternatif olsun.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Cevapla