Tworzenie paczki w Delphi 10.1

0

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)

0

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ś.

0

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.
0

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.

0

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;

0

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ś

0

Trochę późno na takie pytanie, ale... widziałeś może artykuł Creating a Package w dokumentacji? Bo w nim jest wszystko ładnie opisane :]

0

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

0
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).

1 użytkowników online, w tym zalogowanych: 0, gości: 1