Görsel Bileşen Kitaplığı - Visual Component Library

Görsel Bileşen Kitaplığı (VCL)
Orijinal yazar(lar) Borland
Geliştirici(ler) Embarcadero Teknolojileri
İlk sürüm 1995 ; 26 yıl önce ( 1995 )
İşletim sistemi Çapraz platform ( Microsoft Windows , macOS , iOS , Android )
Tip GUI
Lisans Reklam
İnternet sitesi www .embarcadero .com /kr /products /rad-studio
docwiki .embarcadero .com /RADStudio /XE6 /tr /VCL _Genel Bakış

Görsel Bileşen Kütüphanesi ( VCL ) bir görseldir bileşen tabanlı nesne yönelimli bir çerçeve içinde kullanıcı arayüzü geliştirmek için Microsoft Windows uygulamaları. Object Pascal'da yazılmıştır .

Tarih

VCL, Borland tarafından Delphi ve C++Builder RAD araçlarında kullanılmak üzere geliştirildi ve bunlarla sıkı bir şekilde entegre edildi .

1995'te Borland, bir Object Pascal IDE ve dilinin ilk sürümü olan Delphi'yi piyasaya sürdü . Bu noktaya kadar, Borland'ın DOS ve Windows için Turbo Pascal'ı, minimum nesne yönelimli özelliklere sahip ve Turbo Vision ve Object Windows Library gibi çerçeveler kullanılarak gereken dil ile UI çerçeveleri oluşturan, büyük ölçüde prosedürel bir dildi . OWL, benzer bir çerçeve MFC UI nesneleri oluşturmak için kod yazmadan gerektiriyordu.

Delphi diliyle birleştirilmiş VCL'nin temel amacı, bir kullanıcı arayüzü oluşturma gereksinimlerini değiştirmekti. (Bağlam için, Pascal'ın Delphi varyantı, Modula ve Smalltalk'tan esinlenilen özellikler ve çalışma zamanı türü bilgileri gibi bir dizi yenilikçi nesne yönelimli özelliğe sahipti.) O zamanlar, diğer sınıflardan miras alan sınıflar oluşturmak için çok sayıda UI kod çalışması gerekiyordu. ve özelleştirilmiş nesneler genellikle yeniden kullanılamazdı (örneğin, belirli bir eylemi gerçekleştiren bir düğme farklı bir uygulamada yeniden kullanılamaz.) UI kodu da karmaşıktı ve programcıyı Windows API'sini anlamaya ve kullanmaya, GDI kaynaklarını yönetmeye vb. zorladı. Son olarak, görsel bir kullanıcı arabirimi muhtemelen görsel olarak tasarlanmalıdır ve yine de bunu yapmak için çoğu araç - o zamanlar, özellikle Visual Basic - bunu tasarımcının kod çıktısı açısından yaptı ve kırılgan, manuel olarak düzenlenemeyen bir durum yarattı - bir Bugün birçok UI çerçevesinde, özellikle Qt gibi C++ tabanlı olanlarda hala devam eden sorun.

Delphi dili ve bu dilde yazılmış VCL çerçevesinin birleşimi şunları ele aldı:

  • Bir nesnenin ve alt nesnelerin metin veya ikili biçime akışını sağlayan bir akış çerçevesi - VCL çerçevesinin kök sınıfı olan TComponent
  • Bir akışa kaydedilen, onları oluşturmak için gerekli kodu değil, nesnelerin açıklamasını kaydeden ve açıklamayı geri akışa aktarırken kendi kendini oluşturabilen nesnelerle bir form tasarımcısı
  • Bir sınıfın örneklerinin alt sınıflama olmadan iki şekilde özelleştirilmesine izin veren dil özellikleri: birincisi, özelliklerin kullanımı yoluyla, bir nesnenin örneklerinin akış yoluyla kendi alanlarına (başlık gibi) sahip olmasına izin vererek; ikincisi, olayların - koddaki belirli yerlerde çağrılan yöntem işaretçilerinin - başka bir nesne tarafından işlenmesine izin vererek; diğer bir deyişle, yöntem işaretçileri bir nesne örneğine eklenmiştir. Başka bir deyişle, bu "miras yerine yetkilendirme yoluyla özel davranışlar" yaratır.
  • Kaynakları yöneten çerçevede yerel Windows denetimlerini saran denetimler

Bunların birleşimi, bir açıklama yayınlayan bir görsel tasarımcıyla sonuçlandı; o formdaki diğer tüm bileşenleri oluşturmak da dahil olmak üzere, kendisini bu açıklamadan oluşturan bir form (pencere); ve form kodunda uygulanan OnClick olay işleyicisini çağıran bir düğme gibi belirli eylemlere yanıt olarak UI öğeleri tarafından çağrılabilen tek bir yere (formdaki yöntemler) yazılan kod. Bu, o zamanlar devrim niteliğindeyken, bugün WinForms ve Cocoa gibi diğer birçok çerçeve tarafından kullanılan bir yaklaşımdır.

Bu aynı zamanda yeni bileşenlerin - yeni görsel veya görsel olmayan sınıfların - kolayca yazılmasına izin verdi. VCL, Windows tabanlıdır ve ortak denetim uygulamaları, Windows API'sinin sarmalayıcılarıdır, bu nedenle zemine yakındır ve tamamen yereldir. Yeni kontroller sıfırdan uygulanabilir veya mevcut Windows kontrollerini kullanabilir.

C++ Builder'ın piyasaya sürülmesiyle, Delphi derleyicisi, derlenmiş Delphi dili birimleri için C++ başlık dosyalarını yayabilir ve böylece akış esnekliği, görsel olarak tasarlanmış UI çerçevesi C++ için kullanılabilir hale geldi. VCL bileşenleri aslında C++ ile yazılabilir, ancak sonuçta C++Builder derleyicisi ve bağlayıcısı Delphi tarafından üretilen nesne ve başlık dosyalarını tüketebildiğinden Delphi atalarından miras alınır. Bu, diller arası uyumluluğun ilk örneklerinden biriydi ve .Net'e kadar görülmeyen bir şeydi.

Bugün VCL, hem Delphi hem de C++ dillerinde kullanılabilen birkaç yüz görsel ve görsel olmayan bileşen içermektedir.

teknoloji

VCL , ortak bir ata olan TComponent sınıfı ( Delphi Object Pascal'daki kök sınıf olan TObject'den miras alan) ile bir sınıf hiyerarşisi oluşturur . Bu, Java programlama dili , Smalltalk , C# ve diğer birçok nesne yönelimli programlama dili tarafından paylaşılan ortak bir yaklaşımdır .

VCL bileşenleri, pencereler (TForm sınıfı ), denetimler (örn., TButton, TCheckBox, TLabel sınıfları) gibi Windows denetimlerinin yanı sıra veritabanı erişimini (örn., ADO veya IBX bileşenleri) veya İnternet bağlantılarını ( Indy bileşenleri) kapsar. Bileşen yaklaşımı, programcıların VCL'yi birçok görsel ve görsel olmayan ek bileşenle genişletmesine olanak tanır. Çok sayıda ücretsiz ve ticari bileşen paketi vardır. Bunlar arasında JEDI , TMS , Developer Express , Mitov Software , Raize Software , TurboPower , IOComp , SDL , DA-SOFT Technologies ve diğerleri bulunmaktadır.

Tüm VCL bileşenleri iş parçacığı için güvenli olmasa da , VCL çoklu iş parçacığını da destekler . Bir örnek, OpenWire VCL kitaplığının yerleşik çoklu iş parçacığı desteğidir .

VCL , .NET düzeyinde PME (özellikler, yöntemler ve olaylar) modeli için yerel destek sağlar .

.NET tasarımının çoğu , özellikle WinForms, VCL'den sonra modellenmiştir. İlk Delphi sürümlerinin ana mimarlarından biri olan Anders Hejlsberg , Microsoft tarafından işe alındı ve .NET'in ana mimarlarından biri oldu. Bu bir dava konusu oldu: o zaman (1996), "Borland, Microsoft'un Borland ticari sırlarını çalmak için son 30 ayda 34 Borland çalışanını işe aldığını iddia etti. Borland ayrıca Microsoft'un Borland'a pahalı yemler teklif ettiğini ve teslim ettiğini iddia etti. İki durumda, 1 milyon doları aşan teşvikler söz konusuydu." Delphi.about.com'a göre, Anders'ın durumunda ikramiye üç milyon dolardı. Birçok Delphi geliştiricisi, tasarım benzerlikleri nedeniyle C#'ı oldukça tanıdık buluyor.

İlgili çerçeveler

CLX (Cross Platform için Bileşen Kitaplığı) adı verilen VCL'nin çapraz platform eşdeğeri daha sonra 2000-2001 yıllarında Delphi , C++Builder ve Kylix'te kullanılmak üzere geliştirildi . Ancak terk edildi.

İkinci bir platformlar arası çerçeve olan FireMonkey , 2011'de Delphi ve C++Builder XE2'ye entegre edildi. FireMonkey, Windows, OSX, iOS ve Android'deki UI'ler için vektör tabanlı WPF benzeri bir çerçevedir.

Lazarus projesi adı verilen bir (* Nix, OS / X, Win32 / 64 + çekinme) taşınabilir eşdeğeri vardır Parsiyel Kylix ve CLX ortaya çıkınca zaten çalışıyordu ki,. Proje seyrini sürdürdü ve Kylix'i (ve daha sonra FMX'i) görmezden geldi.

OpenOffice.org ve dolayısıyla LibreOffice , Görsel Sınıf Kitaplığı (VCL) adı verilen ilgisiz bir grafik kitaplığı içerir .

Ayrıca bakınız

Referanslar

Dış bağlantılar