DBGrid'e açılır seçim listesini nasıl yerleştireceğiniz aşağıda açıklanmıştır. DBGrid sütununun PickList özelliğini kullanarak, bir DBGrid içindeki arama alanlarını düzenlemek için görsel olarak daha çekici kullanıcı arabirimleri oluşturun.
Artık, arama alanlarının ne olduğunu ve bir arama alanını görüntüleme seçeneklerinin neler olduğunu biliyorsunuz. Delphi's DBGrid, bir DGBrid sütununun PickList özelliğinin, bir açılır liste kutusundan arama alanı için bir değer seçmesini sağlamak için nasıl kullanılacağını görmenin zamanı geldi.
DBGrid Columns Özelliği Hakkında Kısa Bilgi
bir DBGrid denetim bir Columns özelliğine sahiptir - ızgara denetimindeki tüm sütunları temsil eden bir TColumn nesneleri koleksiyonu. Sütunlar, tasarım zamanında Sütunlar düzenleyicisi aracılığıyla veya programlı olarak çalışma zamanında ayarlanabilir. Genellikle eklersiniz Sütunlar bir sütunun nasıl görüneceğini, sütundaki verilerin nasıl görüntüleneceğini tanımlamak ve çalışma zamanında TDBGridColumns'un özelliklerine, olaylarına ve yöntemlerine erişmek istediğinizde DBGird'e gidin. Özelleştirilmiş ızgara, aynı sütunun farklı görünümlerini sunmak için birden çok sütun yapılandırmanıza olanak tanır veri kümesi (farklı sütun siparişleri, farklı alan seçenekleri ve farklı sütun renkleri ve yazı tipleri, misal).
Şimdi, bir ızgaradaki her Sütun, ızgarada görüntülenen veri kümesinden bir alana "bağlanır". Dahası, her sütun bir PickList özelliğine sahiptir. Seçim Listesi özelliği, kullanıcının sütunun bağlı alan değeri için seçebileceği değerleri listeler.
Seçim Listesini Doldurma
Burada öğreneceğiniz şey, bu Dize Listesinin çalışma zamanında başka bir veri kümesindeki değerlerle nasıl doldurulacağıdır.
Makaleler tablosunu düzenlediğimizi ve bir Konu alanının yalnızca Konular tablosundaki değerleri kabul edebileceğini hatırlayın: Seçim Listesi için ideal durum!
PickList özelliğini nasıl ayarlayacağınız aşağıda açıklanmıştır. İlk olarak, Form'un OnCreate olay işleyicisinde SetupGridPickList yordamına bir çağrı ekliyoruz.
prosedür TForm1.FormCreate (Gönderen: TObject);
başla
SetupGridPickList ('Subject', 'Subject'lardan SELECT Name');
son;
SetupGridPickList yordamını oluşturmanın en kolay yolu, form bildiriminin özel bölümüne gitmek, bildirimi buraya ekleyin ve CTRL + ÜST KRKT + C tuş bileşimine basın - Delphi'nin kod tamamlanması dinlenme:
...
tip
TForm1 = sınıf (TForm)
...
privateprocedure SetupGridPickList (
const Alan adı: sicim;
const sql: sicim);
halka açık
...
Not: SetupGridPickList yordamı iki parametre alır. İlk parametre, AlanAdı, bir arama alanı gibi davranmak istediğimiz alanın adıdır; ikinci parametre olan SQL, PickList'i olası değerlerle doldurmak için kullandığımız SQL ifadesidir - genel olarak, SQL ifadesi yalnızca bir alanlı bir veri kümesi döndürmelidir.
SetupGridPickList şöyle görünür:
prosedür TForm1.SetupGridPickList (const AlanAdı, sql: sicim);
var
slPickList: TStringList;
Sorgu: TADOQuery;
i: tam sayı;
başla
slPickList: = TStringList. Oluşturmak;
Sorgu: = TADOQuery. Yarat (benlik);
Deneyin
Sorgu. Bağlantı: = ADOConnection1;
Sorgu. SQL.Text: = sql;
Sorgu. Açık;
// Dize listesini doldursüredeğil Sorgu. EOF dobegin
slPickList. Ekle (Sorgu. Alanlar [0] .AsString);
Sorgu. Sonraki;
son; //while
// listeyi doğru sütuna yerleştiriniçin i: = 0 için DBGrid1.Columns. Kont-1 yapmak
Eğer DBGrid1.Columns [i] .FieldName = AlanAdı thenbegin
DBGrid1.Columns [i] .PickList: = slPickList;
break;
son;
en sonunda
slPickList. Bedava;
Sorgu. Bedava;
son;
son; (* SetupGridPickList *)
Bu kadar. Şimdi, Konu sütununu tıkladığınızda (düzenleme moduna girmek için).
Not 1: Varsayılan olarak, açılır listede 7 değer görüntülenir. DropDownRows özelliğini ayarlayarak bu listenin uzunluğunu değiştirebilirsiniz.
Not 2: Hiçbir şey, bir veritabanı tablosundan gelmeyen değerler listesinden Seçim Listesini doldurmanızı engellemez. Örneğin, yalnızca hafta içi adları ('Pazartesi',..., 'Pazar') kabul eden bir alanınız varsa "sabit kodlu" bir Seçim Listesi oluşturabilirsiniz.
"Ah, Seçim Listesini 4 kez tıklatmam gerekiyor ..."
Bir açılır liste görüntüleyen alanı düzenlemek istediğinizde, listeden gerçekten bir değer seçmek için hücreyi 4 kez tıklamanız gerekeceğini unutmayın. DBGrid'in OnCellClick olay işleyicisine eklenen bir sonraki kod snippet'i, F2 tuşuna ardından Alt + DownArrow tuşlarına bir taklit eder.
prosedür TForm1.DBGrid1CellClick (Sütun: TColumn);
başla// Açılır listenin daha hızlı görünmesini sağlamaEğer Sütun. Seçim listesi. Sayı> 0 thenbegin
keybd_event (VK_F2,0,0,0);
keybd_event (VK_F2,0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_MENU, 0,0,0);
keybd_event (VK_DOWN, 0,0,0);
keybd_event (VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_MENU, 0, KEYEVENTF_KEYUP, 0);
son;
son;