Yeni Uygulama İçin Eskiyi Kaydetmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
edo
Üye
Mesajlar: 40
Kayıt: 05 Haz 2005 11:12

Yeni Uygulama İçin Eskiyi Kaydetmek

Mesaj gönderen edo »

S.a.
Not Defteri benzeri bir uygulamada YeniDosya oluşturmak için eğer programda açık olan dosya değiştirilmiş ve bilgisayara kayıtlı değilse kaydetmek, eğer kayıtlı ise istenirse üzerine kaydetmek için ne yapmalıyım :shock:

Kod: Tümünü seç

procedure TForm1.Yeni1Click(Sender: TObject);
var
m:word;
begin
if Memo1.Modified Then
Begin
m:= Application.MessageBox('Adlı Dosyadaki Değişiklikler Kaydedilsin mi?','Not Defteri',mb_yesnocancel+mb_iconexclamation);
case m of
IDNO: Form1.Close;
IDYES: if FileExists(Memo1.Name) Then Memo1.Lines.SaveToFile(Memo1.Name);
Else
if SaveDialog1.Execute Then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Soru ile cevap berabel gelmiş! Sorun nedir anlamadım !...

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
edo
Üye
Mesajlar: 40
Kayıt: 05 Haz 2005 11:12

Mesaj gönderen edo »

-Cancel da save dilaog u açıyo (hiç bi şey yapmaması lazım)

-Bilgisayara daha önce kaydedilmemiş dosya için evet dediğimde napıyo anlamadım ama savediaolg un çıkması lzm onun yerine (ya hiç bi yere kaydetmiyo, yada nereye ediyo anlamadım)

-Evet deyince direk üstüne kaydetmesi lzm ama hiç bir şey kaydetmiyor.

Yani gelen cevap pek de doğru değil, belki hiç değil :) , Sadece benim yapmak için çırpınışlarım :D
Teşekkürler.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

Kod: Tümünü seç

procedure TForm1.Yeni1Click(Sender: TObject); 
var 
m:word; 
begin 
if Memo1.Modified Then 
Begin 
IF ( Application.MessageBox('Adlı Dosyadaki Değişiklikler Kaydedilsin mi?','Not Defteri',mb_yesnocancel+mb_iconexclamation))= IDNO THEN 
BEGIN
 Form1.Close; 
END
ELSE
BEGIN
 if FileExists(Memo1.Name) Then Memo1.Lines.SaveToFile(Memo1.Name); 
Else 
if SaveDialog1.Execute Then 
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
END
birde böyle dene bakalım olacak mı? :)
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
edo
Üye
Mesajlar: 40
Kayıt: 05 Haz 2005 11:12

Mesaj gönderen edo »

Hayır olmadı isterseniz bu proceduere ün ne yapacağını bi tarif ediyim bi daha. Not Defterindeki Dosya >> Yeni Düğmesi var ya onun tam aynısı olcak. :wink:

Yardım lütfen :(
edo
Üye
Mesajlar: 40
Kayıt: 05 Haz 2005 11:12

Mesaj gönderen edo »

:?: :arrow:
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

IDNO diye kontrol ettiğiniz Case bölümünde IDCANCEL yazın !... IDNO olursa, ModalResult'tan NO tuşuna basılıp basılmadığı döner !... Siz Cancel'a basıyorsanız CANCEL döner !...

Bu sebeple ELSE bölümüne düşer ve SaveDialog soru sorar :)

Anlatabildim umarım.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
edo
Üye
Mesajlar: 40
Kayıt: 05 Haz 2005 11:12

Mesaj gönderen edo »

YES deyince eğer bilgisayara kaydedilmişse üzerine kaydetcek, eğer kaydedilmemişse saveiladolg u açacak

NO deyince memo1 deki texti kapatıp yeniden boş bi text açcak yanlız memo1.text.clear olmaz çünkü o zmn kayıt edilrse oluşturulmuş dosyaya kaydedilcek değişiklikler.

CANCEL deyince hiç bir şey yapmıyacak.

Cancel ı
IDCANCEL: ; yaptım halloldu,
YES ve NO da sorun var :wink:
Cevapla