Tsavepicturedialog aynı dosya sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Tsavepicturedialog aynı dosya sorunu

Mesaj gönderen tayc »

Mrh,
Tsavepicturedialog ile x.bmp isimli ve uzantılı resmi kaydetmek istiyorum, aynı isme sahip dosya var üzerine yazılsınmı diye pencere çıkıyor, buraya kadar herșey tamam ama dosya adının (filename) kısmından x dosyasının uzantısnı sildiĝim zaman (.bmp) uzerine yazılsınmı onay penceresi çıkmıyor direk x.bmp olarak üzerine yazıyor. Bunu sorun hakkında bana yardımcı olmanızı rica edecektim.

İyi çalıșmalar....
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Tsavepicturedialog aynı dosya sorunu

Mesaj gönderen sabanakman »

İyi günler. Ne ayarlar var hangi kodlar yazıldı bilmeden yorum yapmak imkansız. O yüzden Tsavepicturedialog u seçip ctrl+c yapın ve buraya yapıştırın. Bir de kaydet butonunda ne kodlar yazıldı onu da ilave edin ki bir yorum yapabilelim.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: Tsavepicturedialog aynı dosya sorunu

Mesaj gönderen tayc »

Kaydet butonda yazılı kod
İf kaydet.execute then
Begin
image1.picture.savefromfile(kaydet.filename+'.bmp');
End;

İyi çalıșmalar...
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Tsavepicturedialog aynı dosya sorunu

Mesaj gönderen sabanakman »

Aslında SaveDialog ve türevlerinde (TSavePictureDialog) Options özelliğinde ofOverwritePrompt özelliği eklenmişse seçilen dosya varsa üzerine yazılsın mı diye otomatik sormaktadır ama yukarıda kullanılan bu kodlar işi başka yere taşımış. Dosya ismine müdahale ettiğiniz için seçilen dosya değil artık başka dosya ismiyle resmi oluşturmaktasınız. Aslında c:\test\resim.bmp gibi bir dosya varsa ve programdan bu seçilince üzerine yazılsın mı diye sorsa bile evet denildiğinde kodlar bunu c:\test\resim.bmp.bmp olarak kayıt edecektir. Kullanıcı uzantı belirtirse müdahale etmemek lazım ama uzantısız grmişse de kodlarla onu düzenlemek lazım derseniz aşağıdaki gibi bir yöntem işinize yarayabilir.

Kod: Tümünü seç

var sDosyaAdi, sUzanti:String;
begin
  if kaydet.execute then begin
    sDosyaAdi:=kaydet.FileName;
    sUzanti:=ExtractFileExt(sDosyaAdi);
    if (sUzanti='') then begin
      sDosyaAdi:=ChangeFileExt(sDosyaAdi, '.bmp'); //sDosyaAdi:=sDosyaAdi+'.bmp'; gibi çalışır...
      if FileExists(sDosyaAdi) and (Applicatiom.MessageBox(PChar(Format('"%s" dosyası var. Üzerine yazılsın mı?',[sDosyaAdi]), 'Uyarı', MB_YESNOCANCEL+MB_ICONWARNING))<>IDYES) then sDosyaAdi:='';//kayıt etme...
    end;
    if sDosyaAdi<>'' then Image1.Picture.SaveToFile(sDosyaAdi);
  end;
end;
gibi ek kontroller ilave ederek problemi çözebilirsiniz.

Not:kaydet.Options özelliğinde ofOverwritePrompt tanımlı olması gerekmektedir. Kaldırısanız kodları ona göre değiştirmek gerekecektir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
tayc
Üye
Mesajlar: 38
Kayıt: 06 Eyl 2014 02:36

Re: Tsavepicturedialog aynı dosya sorunu

Mesaj gönderen tayc »

Cevap icin tesekkur ederim ișimi gördü.

İyi çalıșmalar...
Cevapla