[ Pobierz całość w formacie PDF ]
.EditPropertyByName( constAPropName: string );varComponents: IDesignerSelections;beginComponents := TDesignerSelections.Create;FContinue := True;FPropName := APropName;Components.Add( Component );FPropEditor := nil;tryGetComponentProperties( Components, tkAny, Designer,EnumPropertyEditors );if Assigned( FPropEditor ) thenFPropEditor.Edit;finallyFPropEditor := nil;end;end;end.Pakiety„NoÅ›nikami” komponentów CLX przeznaczonych do rejestracji w IDE Delphi 6 lub Kyliksa sÄ… pakiety, podobnie jak w przypadku komponentów VCL.Należy jednak wyraźnie zaznaczyć, iż pakiety skompilowane w Delphi 6 nie mogÄ… być instalowane w Kyliksie z powodu różnic w implementacji — pakiety windowsowe majÄ… postać specyficznych bibliotek DLL, podczas gdy w Å›rodowisku Linuksa pakiety implementowane sÄ… jako tzw.obiekty współdzielone (shared objects) w postaci plików.so.Format i skÅ‚adnia pliku źródÅ‚owego pakietu sÄ… jednak takie same w obydwu Å›rodowiskach.Zawartość pliku źródÅ‚owego pakietu różni siÄ™ nieco w obydwu Å›rodowiskach, na przykÅ‚ad lista dyrektywy requires zawiera w Linuksie odwoÅ‚anie do pakietu baseclx, nieobecnego w Delphi 6.Na liÅ›cie tej, podobnie jak w VCL, powinny znaleźć siÄ™ wszystkie pakiety zawierajÄ…ce instalowane komponenty CLX.Konwencje nazewniczeWykorzystywane na użytek tego rozdziaÅ‚u komponenty zawarte sÄ… w pakietach wymienionych w tabelach 13.1 i 13.2.Obydwie tabele zawierajÄ… nazwy pakietów (w postaci źródÅ‚owej i skompilowanej) oraz nazwy innych pakietów wymaganych do instalacji — odpowiednio dla Delphi 6 i Kyliksa.Tabela 13.1.PrzykÅ‚adowe pakiety CLX dla Delphi 6Plik źródÅ‚owyPlik skompilowanyPakiety wymaganeQddgSamples.dpkQddgSamples60.bplvisualclxQddgSamples_Dsgn.dpkQddgSamples_Dsgn60.bplvisualclxdesignideQddgSamplesQddgDBSamples.dpkQddgDBSamples60.bplvisualclxdbrtlvisualdbclxQddgSamplesQddgDBSamples_Dsgn.dpkQddgDBSamples_Dsgn60.bplvisualclxQddgSamples_DsgnQddgSamplesTabela 13.2.PrzykÅ‚adowe pakiety CLX dla KyliksaPlik źródÅ‚owyPlik skompilowanyPakiety wymaganeQddgSamples.dpkbplQddgSamples.so.6baseclxvisualclxQddgSamples_Dsgn.dpkbplQddgSamples_Dsgn.so.6baseclxvisualclxdesignideQddgSamplesQddgDBSamples.dpkbplQddgDBSamples.so.6baseclxvisualclxvisualdbclxdataclxQddgSamplesQddgDBSamples_Dsgn.dpkbplQddgDBSamples_Dsgn.so.6baseclxvisualclxQddgSamples_DsgnQddgSamplesJak widać, odpowiedniość nazw pakietu źródÅ‚owego i skompilowanego rzÄ…dzi siÄ™ pewnymi (zwyczajowymi) reguÅ‚ami, różnymi dla Windows i Linuksa.W Delphi 6 do nazwy pliku źródÅ‚owego dodawany jest przyrostek 60, podkreÅ›lajÄ…cy przynależność pakietu do konkretnej wersji.Zauważmy, że w poprzednich wersjach Delphi nazwa pakietu skompilowanego byÅ‚a tożsama z jego nazwÄ… źródÅ‚owÄ…; w Delphi 6, w celu zapewnienia przenoÅ›noÅ›ci kodu, dodano kilka dyrektyw umożliwiajÄ…cych ksztaÅ‚towanie nazwy wynikowej przez dodawanie przedrostków i (lub) przyrostków do nazwy źródÅ‚owej.Na wydruku 13.7 nietrudno odnaleźć dyrektywÄ™ $LIBSUFFIX ustalajÄ…cÄ… przyrostek nazwy w windowsowej wersji pakietu.Mimo iż Borland nadaje niektórym pakietom nazwy rozpoczynajÄ…ce siÄ™ od dcl (by wskazać, iż mamy do czynienia z pakietem Å›rodowiskowym), staramy siÄ™ tego unikać w naszych przykÅ‚adach, stosujÄ…c w zamian przyrostek _Dsgn.Wszystkie skompilowane pakiety windowsowe (Å›rodowiskowe i wykonywalne) posiadajÄ… rozszerzenie.bpl.W Linuksie tÄ™ konwencjÄ™ realizuje poprzedzenie nazwy pakietu przyrostkiem bpl — decyduje o tym dyrektywa $SOPREFIX, którÄ… nietrudno odnaleźć na wydruku 13.7; ponadto konkretna wersja (skompilowanego) pakietu znajduje odzwierciedlenie w ostatnim czÅ‚onie nazwy jego pliku, zgodnie z dyrektywÄ… $SOVERSION.Pakiety wykonywalneWydruki 13.7 i 13.8 przedstawiajÄ… kod źródÅ‚owy pakietów zwiÄ…zanych z przykÅ‚adowymi komponentami wykorzystywanymi w niniejszym rozdziale.Zwróć uwagÄ™ na symbole kompilacji warunkowej MSWINDOWS i LINUX — pierwszy z nich obowiÄ…zujÄ…cy jest podczas kompilacji pakietu w Delphi 6, drugi — podczas kompilacji w Kyliksie.Wydruk 13.7.QddgSamples.dpk — plik źródÅ‚owy pakietu wykonywalnego dla komponentów nie współpracujÄ…cych z bazÄ… danychpackage QddgSamples;{$R *
[ Pobierz całość w formacie PDF ]