Delphi Not Defteri Oluşturma: Aç ve Kaydet

Çeşitli Windows uygulamalarıyla çalışırken ve Delphi, standartlardan biriyle çalışmaya alıştık diyalog kutuları bir dosyayı açmak ve kaydetmek, metin bulmak ve değiştirmek, yazdırmak, yazı tiplerini seçmek veya renkleri ayarlamak için.

Bu makalede, bu diyalogların en önemli özelliklerinden ve yöntemlerinden bazılarına odaklanarak Açık ve Kayıt etmek diyalog kutuları.

Ortak iletişim kutuları Bileşen paletinin İletişim Kutuları sekmesinde bulunur. Bu bileşenler standart Windows iletişim kutularından yararlanır (\ Windows \ System dizininizdeki bir DLL dosyasında bulunur). Ortak bir iletişim kutusu kullanmak için, formun üzerine uygun bileşeni (bileşenleri) yerleştirmemiz gerekir. Ortak iletişim kutusu bileşenleri görsel değildir (görsel tasarım-zaman arayüzüne sahip değildir) ve bu nedenle çalışma zamanında kullanıcı tarafından görülemez.

TOpenDialog ve TSaveDialog

Dosya Açma ve Dosya Kaydetme iletişim kutularının birkaç ortak özelliği vardır. Dosya Aç genellikle dosyaları seçmek ve açmak için kullanılır. Dosya Kaydet iletişim kutusu (Farklı Kaydet iletişim kutusu olarak da kullanılır), bir dosyayı kaydetmek için kullanıcıdan bir dosya adı alırken kullanılır. TOpenDialog ve TSaveDialog'un önemli özelliklerinden bazıları şunlardır:

instagram viewer

  • Seçenekler Özellikler kutunun son şeklini ve hissini belirlemede çok önemlidir. Örneğin, aşağıdaki gibi bir kod satırı:
    ile OpenDialog1 yapmakSeçenekler: = Seçenekler + [ofAllowMultiSelect, ofFileMustExist];
    seçenekleri önceden ayarlanmış olarak tutar ve kullanıcı varolmayan bir dosyayı seçmeye çalışırsa, hata mesajı oluşturmanın yanı sıra kullanıcıların iletişim kutusunda birden fazla dosya seçmesine izin verir.
  • InitialDir özelliği, dosya iletişim kutusu görüntülendiğinde ilk dizin olarak kullanılacak dizini belirtmek için kullanılır. Aşağıdaki kod, Açık İletişim kutusunun Başlangıç ​​dizininin Uygulamalar başlangıç ​​dizini olmasını sağlar.
    SaveDialog1.InitialDir: = ExtractFilePath (Uygulama. Exename);
  • filtre özelliği, kullanıcının seçebileceği dosya türlerinin bir listesini içerir. Kullanıcı listeden bir dosya türü seçtiğinde, iletişim kutusunda yalnızca seçilen türde dosyalar görüntülenir. Filtre, Filtre Editörü iletişim kutusundan tasarım zamanında kolayca ayarlanabilir.
  • Program kodunda dosya maskeleri oluşturmak için, Filter özelliğine, dikey çubuk (boru) karakteriyle ayrılmış bir açıklama ve maskeden oluşan bir değer atayın. Bunun gibi:
    OpenDialog1.Filter: = 'Metin dosyaları (* .txt) | * .txt | Tüm dosyalar (*. *) | *. * ';
  • Dosya adı Emlak. Kullanıcı bir iletişim kutusunda Tamam düğmesini tıklattığında, bu özellik seçilen dosyanın tam yolunu ve dosya adını içerecektir.

gerçekleştirmek

Aslında ortak iletişim kutusu oluşturmak ve görüntülemek için gerçekleştirmek çalışma zamanında belirli bir iletişim kutusunun yöntemi. TFindDialog ve TReplaceDialog dışında, tüm iletişim kutuları kalıcı olarak görüntülenir.

Tüm yaygın iletişim kutuları, kullanıcının İptal düğmesini tıklayıp tıklamadığını (veya ESC'ye bastığını) belirlememize olanak tanır. Execute yöntemi True döndürdüğünden, kullanıcı OK düğmesini tıkladığında, verilen kodun yürütülmediğinden emin olmak için bir Cancel düğmesini tıklatmamız gerekir.

Eğer OpenDialog1.Execute sonra
ShowMessage (OpenDialog1.FileName);

Bu kod, Dosya Aç iletişim kutusunu görüntüler ve "başarılı" yürütme yönteminden sonra (kullanıcı Aç'ı tıklattığında) seçilen bir dosya adını görüntüler.

Not: Kullanıcı Tamam düğmesini tıkladığında, bir dosya adını çift tıkladığında (dosya iletişim kutularında) veya klavyede Enter tuşuna basarsa Execute, True değerini döndürür. Kullanıcı İptal düğmesini tıkladığında, Esc tuşuna bastıysa, sistem kapatma düğmesiyle veya Alt-F4 tuş bileşimi ile iletişim kutusunu kapatırsa Execute False değerini döndürür.

Koddan

Formda bir OpenDialog bileşeni yerleştirmeden çalışma zamanında Aç iletişim kutusuyla (veya başka herhangi biriyle) çalışmak için aşağıdaki kodu kullanabiliriz:

prosedür TForm1.btnFromCodeClick (Gönderen: TObject); var OpenDlg: TOpenDialog; başla OpenDlg: = TOpenDialog. Yarat (Benlik); {seçenekleri buradan belirleyin ...}Eğer OpenDlg. gerçekleştirmek sonrabaşla
{burada bir şeyler yapmak için kod}
son; OpenDlg. Bedava; son;

Not: Execute çağırmadan önce, OpenDialog bileşeninin herhangi bir özelliğini ayarlayabiliriz (ayarlamamız gerekir).

MyNotepad

Son olarak, gerçek bir kodlama yapma zamanı. Bu makalenin arkasındaki fikir (ve gelecek birkaç kişi) basit bir MyNotepad uygulaması oluşturmaktır - Notepad uygulaması gibi bağımsız Windows.
Bu makalede, Aç ve Kaydet iletişim kutuları sunulmaktadır, bu yüzden onları hareket halinde görelim.

MyNotepad'in kullanıcı arayüzünü oluşturma adımları:
. Delphi'yi başlatın ve Dosya-Yeni Uygulama'yı seçin.
. Bir Memo, OpenDialog, SaveDialog iki Düğmeyi forma yerleştirin.
. Button1'i btnOpen olarak, Button2'yi btnSave olarak yeniden adlandırın.

Kodlama

1. FormCreate olayına aşağıdaki kodu atamak için Nesne Denetçisi'ni kullanın:

prosedür TForm1.FormCreate (Gönderen: TObject); başlaile OpenDialog1 yapmakbaşla
Seçenekler: = Seçenekler + [ofPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (Uygulama. Exename); Filtre: = 'Metin dosyaları (* .txt) | * .txt'; son; ile SaveDialog1 yapmakbaşla
InitialDir: = ExtractFilePath (Uygulama. Exename); Filtre: = 'Metin dosyaları (* .txt) | * .txt'; son; Memo1.ScrollBars: = ssBoth; son;

Bu kod, makalenin başında tartışıldığı gibi bazı Aç iletişim özellikleri ayarlar.

2. BtnOpen ve btnSave düğmelerinin Onclick olayı için bu kodu ekleyin:

prosedür TForm1.btnOpenClick (Gönderen: TObject); başlaEğer OpenDialog1.Execute sonrabaşla
Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. Dosyadan yükle. (OpenDialog1.FileName); Not1.SelStart: = 0; son; son;
prosedür TForm1.btnSaveClick (Gönderen: TObject); başla
SaveDialog1.FileName: = Form1.Caption; Eğer SaveDialog1.Execute sonrabaşla
Memo1.Lines. Dosyaya kaydet. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; son; son;

Projenizi çalıştırın. Buna inanamazsınız; dosyalar "gerçek" Not Defteri'nde olduğu gibi açılıyor ve kaydediliyor.

Son sözler

Bu kadar. Artık kendi "küçük" Not Defteri'miz var.

instagram story viewer