Instalacja komponentu z Delphi w Lazarusie

0

Panowie i Panie

Mam komponent napisany dla Delphi. To komponent służący do dynamicznego resizingu formy i wszystkich elementów na formie. W Delphi instaluję go bez problemu, działa.
Zastanawiam się czy byłaby możliwość zainstalowania go w Lazarusie, po jakiejś ewentualnej konwersji?
Zaczynam bawić się Lazarusem i nie do końca potrafię się tam odnaleźć w kwestii instalacji komponentów. Zwłaszcza tych dla Delphi.
Być może ktoś pokierowałby mnie krok po kroku co należy zrobić jeśli jest to w ogóle możliwe?

Link do komponentu:
http://www.delphi32.com/vcl/1289/

0

Zastanawiam się czy byłaby możliwość zainstalowania go w Lazarusie, po jakiejś ewentualnej konwersji?

No to nie zastanawiaj się i spróbuj go zainstalować...

Nie wiem w jakiej postaci masz ten komponent, czy jest on gołym plikiem .pas czy może paczką .dpk - nie napisałeś. W każdym razie utwórz sobie pustą paczkę, nazwij ją sensownie i zapisz gdzieś na dysku. Dodaj do niej nowy moduł i też nazwij go sensownie i zapisz go na dysku. Otwórz moduł komponentu z Delphi i przeklej kod z sekcji interface oraz implementation do modułu dla Lazarusa.

Jeśli kod kontrolki koniecznie musi być możliwy do skompilowania w obu tych środowiskach to zamień dyrektywę {$MODE OBJFPC} na {$MODE DELPHI}, a jeśli nie musi to nie zmieniaj jej. Przekompiluj paczkę - jeśli wyskoczą błędy to znaczy, że coś trzeba będzie poprawić. Mniejsza szansa na błędy będzie wtedy, gdy użyjesz dyrektywy {$MODE DELPHI}.

W razie błędów pisz - podaj treść błędu i linijkę w której występuje, dla każdego problemu z osobna. O ile faktycznie błędy wystąpią, bo nie jest wykluczone, że portowanie pójdzie gładko.

0

Może zamieść źródła do tego komponentu w wątku, bo link jaki podałeś troche jakiś taki nie bardzo jest...

0

Faktycznie, coś z tą stroną jest nie tak.

Wrzuciłem wszystkie pliki komponentu do załącznika do tego postu (10 plików, kilkanaście KB).

Próbuję to zainstalować w Lazarusie, ale chyba do czasu aż ktoś mi nie napisze krok po kroku, gdzie kliknąć itp, to tego nie ogarnę.

Załącznik.

0

@axel234: spróbuj sam przenieść ten kod - toż to nic trudnego.

W sumie to nie musisz tworzyć modułów i kopiować kodu - wystarczy, że utworzysz pustą paczkę i dodasz do niej pliki .pas ze źródłami z Delphi oraz zamienisz w nich dyrektywy {$APPTYPE GUI} na {$MODE OBJFPC} lub {$MODE DELPHI}. Tyle wystarczy, bo Lazarus oprócz plików .pp obsługuje również pliki .pas.

0

Tworzę nową paczkę, dodaję do niej plik easysize.pas (wśród plików tylko ten ma rozszerzenie .pas), następnie otwieram go i szukam {$APPTYPE GUI}, tak? Jeśli tak, to nie ma tam czegoś takiego.
Jest tam:

{$IFDEF WIN32}
{$R Easysize.d32}
{$ELSE}
{$R Easysize.d16}
{ENDIF}

No i do tego cała lista procedur.

W złym miejscu szukam?

0

No nie ma nic takiego, bo to nie aplikacja okienkowa - źle napisałem, nie byłem w formie....

Nie szukaj żadnych dyrektyw - po prostu dodaj ten moduł do listy modułów w ustawieniach paczki i przekompiluj ją, za pomocą przycisku Compile lub opcji More >> Recompile clean. Jeśli kompilacja nie uda się to pisz w czym problem.

0

Kompilacja wywala się już na początku na USES.
Te rzeczy z gwiazdkami, to te, na których kompilacja się wywala.

uses **WinTypes**, **WinProcs**, Messages, SysUtils, Classes **Controls**,
     **Forms**, **Graphics**, **StdCtrls**;  

Przykładowy komunikat:
Easysize.pas(24,6) Fatal: Cannot find WinTypes used by Easysize of package Nowy_Pakiet.

0

http://forum.lazarus.freepascal.org/index.php?topic=14072.0

marcov:

WinProc and Wintype are units from Windows 3.1x. In Win9x and later these are replaced by unit Windows.

Delphi allows some aliases for backwards compatibility from winproc and wintypes to Windows.
FPC never supported Windows 3.1x, and for FPC the issue came up nearly a decade after this transition, so these aliases were never implemented.

So in summary, simply use unit Windows.

1

Łap gotowca na Lazarus

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