Cześć
Pytanie o paczkę. Zrobiłem swoją pierwszą paczkę i gdzie teraz ona jest? Nie ma jej w folderze skąd dodałem plik .pas Nie ma jej w dokumentach użytkownika Windows(tam domyślnie zapisuje program projekty, jest tam tylko package1.res
i tyle ? Skompilowała się bez błędów, nie mam pojęcia. Może mam normalnie zapisać Save all
, projekt save
? Tylko że to jest ostatni punkt w dokumentacji.
Choose Project > Build <Package Name> to build the package.
Jeśli tak to przepraszam za błache pytanie. Robię ją po raz pierwszy a chce to zrobić dobrze. (Delphi 10.1 Berlin)
Nie wiem jak to wygląda w tej wersji Delphi, ale wybierz z menu opcję Save all
. Choć minęła już doba od zadania pytania, więc pewnie sobie poradziłeś.
Tak właśnie zrobiłem i dopiero wtedy pojawił mi się plik o rozszerzeniudpk.
Wyszło mi coś takiego co podam poniżej do tego dołączę pytanie - Czy to jest poprawny kod paczki. Pytam dla tego iż chce zainstalować komponent. Kod ściągnąłem z netu jest to kontrolka na bazie klasy TBatton. Teraz pytanie jak to zrobić bo raz czytam że muszę zrobić paczkę, raz że plik .pas mam jedno i drugie. Chcę ten komponent dodać tak by pojawił się na liście komponentów. Za chwilę pisze iż jakiś plik trzeba skopiować do folderu tylko wszystko jest pod Delphi 7 a tutaj już struktura katalogów jest zupełnie inna. To na pewno nie jest skomplikowane ale na pierwszy raz to serio idzie się pogubić. Mógłby ktoś podpowiedzieć co dalej z tą paczką czy plikiem .pas ?
A oto ten kod .dpk
package Package1;
{$R *.res}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO OFF}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DEFINE DEBUG}
{$ENDIF IMPLICITBUILDING}
{$IMPLICITBUILD ON}
requires
rtl,
vcl;
contains
Unit1 in 'Unit1.pas';
end.
Wyszło mi coś takiego co podam poniżej do tego dołączę pytanie - Czy to jest poprawny kod paczki.
No tak, wygląda dobrze. Choć nazwa Unit1
nic nie mówi o zawartości tego modułu i pasuje ją zmienić. Ten plik generowany jest automatycznie przez środowisko, więc o ile sam go nie modyfikowałeś, to nie musisz się martwić o poprawność zawartości.
Teraz pytanie jak to zrobić bo raz czytam że muszę zrobić paczkę, raz że plik .pas mam jedno i drugie.
Tzn. moduł z implementacją komponentu musi się znajdować w jakimś pakiecie - albo w istniejącym, albo we własnym. Jak jeszcze używałem Delphi7 to swoje komponenty często dodawałem do pakietu o nazwie dclusr.dpk
, czyli do już istniejącego.
Chcę ten komponent dodać tak by pojawił się na liście komponentów.
Aby komponent został dodany do listy kontrolek w menu środowiska, musi być przygotowana procedura Register
. W przeciwnym razie komponent zostanie zainstalowany i będzie można z niego korzystać, ale w zakładce widnieć nie będzie.
Więcej informacji będzie w stanie podać ktoś kto używa Delphi Berlin, więc musisz trochę poczekać. Ja niestety nie korzystam z Delphi już od dawna, więc nie wiem dokładnie jak teraz wygląda tworzenie pakietów i instalowanie komponentów.
Masz rację co do nazw masz rację, ale to jest pierwszy komponent który chcę po prostu dodać bo powoli świruje z tym. ale dziękuję dużo już się dowiedziałem od Ciebie. A procedurka jest jeśli to o to chodzi. W poradnikach też pisze wszędzie że trzeba zarejestrować ale nigdzie nie piszę po co a tu od Ciebie mam konkretną odpowiedź za co Wielkie Dzięki
procedurę Register;
IMPLEMENTATION
procedure Register;
begin
RegisterComponents('MyComponents',[TMyButton]);
end;
Dobra udało mi się za instalować to jeszcze prostsze niż budowa cepa. Jak by kiedyś ktoś miał takie problemy jak ja:
- utworzyć paczkę
- otworzyć projekt z paczką
- w oknie Project Manager ppm wybrać kompiluj
- jeszcze raz ppm Install
Wszystko w temacie
Ale i tak dziękuje bo dużo mi wyjaśniłeś
Trochę późno na takie pytanie, ale... widziałeś może artykuł Creating a Package w dokumentacji? Bo w nim jest wszystko ładnie opisane :]
Mimo wszystko podpowiedzcie mi jeszcze o co chodzi komponent mam zainstalowany dobrze jest w komponentach a cały wyświetla mi błąd
*Unit1.pas(7): F2613 Unit 'MyButton' not found.
*
Mam ten plik MyButton.pas
gdzieś przenieść? jeśli tak to gdzie?
Dodałem też ścieżki w Library do folderu z plikiem DCU który sam utworzył i dalej to samo wrrrrr
ziomziom napisał(a):
Dodałem też ścieżki w Library do folderu z plikiem DCU który sam utworzył i dalej to samo wrrrrr
W Library -> Library path
dodaj ścieżkę do DCU a w Library -> Browsing path
dodaj ścieżkę do PAS i powinno być ok.
I pamiętaj ze nic się samo nie tworzy a raczej bez przyczyny gdzie się utworzą DCU ustawiasz w opcjach projektu Unit output directory
domyślnie jest to .\$(Platform)\$(Config)
.