Contoh kode: Apakah Anda benar-benar mengenal Delphi dengan baik?
Prosedur StepEditor( strgrid: TStringGrid; Langkah: TStep );
var
nilai s, sField: string;
Kelas Editor: TSstepEditorClass;
Penyunting: TStepEditor;
mulai
sField := strgrid.Sel[0, strgrid.Selection.Top];
sValue := strgrid.Sel[1, strgrid.Selection.Top];
Kelas Editor := EditorClassList.Editors[ sField ];
Editor := EditorClass.Buat;
Editor.Bidang := sBidang;
Editor.Langkah := Langkah;
Editor.Edit(sValue);
Editor.Gratis;
strgrid.Sel[ 1, strgrid.Selection.Top ] := sValue;
akhir;
EditorClass adalah Kelas dari Kelas, yaitu kelas dari kelas
Misalnya
TFormClass = Kelas TForm;
Namun berbeda dengan: TFormClass = Class(TForm); Ini adalah dua konsep!
EditorClassList menyimpan daftar kelas;
Editor := EditorClass.Buat;
Buat adalah metode kelas, bukan metode objek, sehingga turunan EditorClass dapat dibuat dari EditorClass
Mengisi kembali:
TStepEditor = Kelas( TObject )
...
Akhir;
TStepEditorClass = Kelas TStepEditor;
Mengapa Object Inspector menyediakan lingkungan pengeditan yang nyaman?
Mengapa bidang yang berbeda memiliki nilai pemilihan yang berbeda, metode verifikasi yang berbeda, dan kotak edit pop-up?
tidak sama? Karena editor properti yang berbeda didaftarkan menurut jenis bidang yang berbeda;
Penyederhanaan fungsi registrasi property editor yang disediakan oleh Delphi dapat digambarkan sebagai berikut:
RegisteryPropertyEditor( PropertyFieldType, EditorClass );
^Berikut adalah nama tipenya, seperti Bool, Integer, ...dll.
^Ini adalah nama kelas dari editor terkait.
Ketika benar-benar berjalan, ketika pengguna mengklik sebuah field di Object Inspector,
Delphi secara internal mencari kelas editor yang sesuai dengan tipe bidang, kemudian membuat turunan kelas dari kelas yang ditemukan;
Melakukan operasi terkait (menentukan apakah ada kotak drop-down, apakah ada tombol, dll.)
Lebih banyak artikel