Setler İyi misin, diziler harikalar.
Programlama topluluğumuzdaki 50 üye için üç adet tek boyutlu dizi oluşturmak istediğimizi varsayalım. İlk dizi isimler için, ikincisi e-postalar için ve üçüncüsü topluluğumuza yükleme (bileşenler veya uygulamalar) içindir.
Her dizi (liste), üç listenin tümünü paralel tutmak için eşleşen dizinlere ve bol miktarda koda sahip olacaktır. Tabii ki, üç boyutlu bir dizi ile deneyebiliriz, ama türü ne olacak? Adlar ve e-postalar için dizeye, yükleme sayısı için bir tamsayıya ihtiyacımız var.
Böyle bir veri yapısı ile çalışmanın yolu Delphi'yi kullanmaktır. kayıt yapısı.
TMember = Kayıt...
Örneğin, aşağıdaki beyan, bizim durumumuzda kullanabileceğimiz TMember adlı bir kayıt türü oluşturur.
Esasen, Kayıt veri yapısı Delphi'nin yerleşik türlerinden herhangi birini karıştırabilir oluşturduğunuz tüm türler dahil. Kayıt türleri, farklı türdeki öğelerin sabit koleksiyonlarını tanımlar. Her öğe veya alan, bir ad ve türden oluşan bir değişken gibidir.
TMember türü üç alan içerir: Ad adlı bir dize değeri (bir üyenin adını tutmak için), bir dize türünün değeri e-posta (bir e-posta için) ve Gönderiler (gönderilerinizin gönderilme sayısını tutmak için) adlı bir tam sayı (Kardinal) topluluk).
Kayıt türünü ayarladıktan sonra, bir değişkenin TMember türünde olduğunu bildirebiliriz. TMember artık değişkenler için en iyi değişken tipidir. Delphi's String veya Integer gibi yerleşik türler. Not: TMember türü bildirimi, Ad, e-Posta ve Yayınlar alanları için bellek ayırmaz;
Aslında TMember kaydının bir örneğini oluşturmak için, aşağıdaki kodda olduğu gibi TMember türünde bir değişken bildirmeliyiz:
Şimdi, bir kaydımız olduğunda, DelphiGuide alanlarını izole etmek için bir nokta kullanıyoruz.
Not: yukarıdaki kod parçası kullanılarak yeniden yazılabilir ileanahtar kelime.
Artık DelphiGuide’ın alanlarının değerlerini AMember’e kopyalayabiliriz.
Kayıt Kapsamı ve Görünürlük
Bir form (uygulama bölümü), işlev veya yordam bildirimi içinde bildirilen kayıt türü, bildirildiği blokla sınırlı bir kapsama sahiptir. Kayıt bir birimin arabirim bölümünde bildirilirse, bildirimin gerçekleştiği birimi kullanan diğer birimleri veya programları içeren bir kapsama sahiptir.
Bir Kayıt Dizisi
TMember başka bir Object Pascal türü gibi davrandığından, bir dizi kayıt değişkeni bildirebiliriz:
Not: İşte nasıl Delphi'de sabit bir kayıt dizisi bildirme ve başlatma.
Kayıt Alanı Olarak Kayıtlar
Bir kayıt türü diğer herhangi bir Delphi türü gibi meşru olduğundan, bir kayıt alanının kendisinin bir kayıt olmasını sağlayabiliriz. Örneğin, üyenin üye bilgileriyle birlikte neler gönderdiğini takip etmek için ExpandedMember oluşturabiliriz.
Tek bir kayıt için gereken tüm bilgileri doldurmak artık bir şekilde daha zor. TExpandedMember alanlarına erişmek için daha fazla nokta (nokta) gerekir.
"Bilinmeyen" Alanlarla Kaydet
Kayıt türünün bir varyant kısmı olabilir (Varyant türü değişken ile karıştırılmamalıdır). Varyant kayıtları, örneğin alanları içeren bir kayıt türü oluşturmak istediğimizde kullanılır farklı veri türlerine sahiptir, ancak tüm alanları asla tek bir kayıtta kullanmamız gerekmediğini biliyoruz. örneği. Kayıtlardaki Değişken parçalar hakkında daha fazla bilgi edinmek için Delphi'nin yardım dosyalarına bakın. Varyant kayıt tipinin kullanımı tip için güvenli değildir ve özellikle yeni başlayanlar için önerilen bir programlama uygulaması değildir.
Bununla birlikte, kendinizi kullanmak için bir durumda bulursanız, varyant kayıtları oldukça yararlı olabilir.