Orientuje się ktoś czy mógłbym gdzieś jeszcze zakupić licencję do Delphi najlepiej w wersji 7? Nie stać mnie na licencję nowych środowisk Delphi zaś chciałbym puścić w życie swojej firmy dosłownie jedną aplikację. Ogólnie raczej nie będzie z tego zarobku po prostu przyda mi się pomocna aplikacja w pełni legalnie wrzucona w życie firmy.
Od producenta, to kupujesz najnowszą wersję i możesz pobrać wczesniejszą: http://edn.embarcadero.com/article/42852
Zostaje drugi obieg lub alternatywa: Lazarus.
Do D7? Teraz nie widzę ale z tego co pamiętam kosztowała tyle samo co najnowsze narzędzia więc po co kupować D7 tym bardziej że kupując nowsze masz licencje także na D7 (i nie tylko) http://www.embarcadero.com.pl/informacje/starsze_wersje.shtml
Da sie uruchomic projekt tworzony w Delphi na Lazarusie?
Da się, oczywiście jeżeli nie używasz komponentów których Lazarus nie posiada no i są pewne drobne różnice w języku ale tu więcej mógłby napisać @furious programming, bo z tego co się orientuje on "siedzi"w tym środowisku.
Lazarus to delfiopodobne IDE które jako kompilator ma Free Pascala.
Z dyrektywą {$MODE DELPHI}
jest dość dobra zgodność z Delphi 7 i okolicznymi, ale nie ma obsługi nowinek z najnowszych XE.
Z drugiej strony, Free Pascal ma wiele własnych ficzerów które włącza się przez {$MODE OBJFPC}
i warto z nich korzystać, jeśli zgodność z Delphi nie jest już potrzebna.
@Zeelof nie jestem pewien bo nie dotarła do mnie ta informacja bezpośrednio tylko do jednego z moich dyrektorów w firmie ale BSC Polska ma teraz jakąś mega promocję i można kupić licencję lub "dźwignąć" się z minimum XE3 do najnowszej wersji w jakiejś ekstra cenie (z tego co podchwyciłem to 1400$ brutto) promocja niby trwa do końca marca więc najlepiej skontaktuj się bezpośrednio z BSC Polska i wypytaj czy jest to oferta tylko dla poszczególnych firm czy dla wszystkich. Ja gadam z tym gościem: (Piotr Habas) [email protected]
Przede wszystkim należy zwrócić uwagę na to, że Free Pascal ma swój dialekt, w większości zgodny ze starym i nowym Delphi, ale ma pewne swoje ficzery, niekompatybilne z Delphi;
Pierwszy jaki mi do głowy przychodzi to ficzer związany z operatorami, podpatrzonymi z języka C; Dostępne są operatory +=
, -=
, *=
i /=
, o ile korzystamy z dyrektywy {$MODE OBJFPC}
; Kolejna bardzo przydatna rzecz, której Delphi do dziś nie wspiera, to definiowanie wartości lokalnej, standardowej zmiennej; Przykład:
procedure Foo();
var
strValue: String = 'foo';
begin
{...}
end;
Są też pewne różnice, jeśli o słówka kluczowe chodzi - ogólnie w składni dialektu FP; Pierwszym i pewnie nie jedynym przykładem są typy generyczne; Pewne mechanizmy także działają inaczej i inaczej się je obsługuje;
Inna sprawa odróżniająca Free Pascala od Delphi to nazewnictwo modułów; Jeśli piszemy kod stricte pod system Windows, możemy korzystać z takich modułów jak Windows
, Messages
, ShellAPI
itd.; Natomiast pewne rzeczy związane z LCL są zdefiniowane inaczej - np. nazewnictwo stałych dla komunikatów; Są do tego celu przeznaczone moduły z elementami uniwersalnymi, niezwiązanymi z daną platformą; Umieszczone są m.in. w modułach LMessages
, LCLType
, LCLIntf
czy LCLProc
; To trzeba zapamiętać, jeśli jakiejś stałej czy funkcji nie można odnaleźć w danym module; Natomiast pozostałe moduły są multiplatformowe, np. SysUtils
, Classes
itd.;
Samo LCL też niestety ale działa nieco inaczej niż VCL; Niektóre rzeczy nie działają w ogóle (np. śledzenie kursora w komponentach dziedziczących z TGraphicControl
, z którym kiedyś walczyłem i co musiałem obejść za pomocą timera), ale trzeba by zainstalować najnowszą wersję Lazarusa, aby to sprawdzić; Ja pracuję z wersją 1.4.4, jeszcze na starym silniku unikodowym (FPC 2.6.4);
No i podstawowa rzecz - FPC w wersji 3.0.0 (czyli najnowsza odsłona) posiada nowy system dla unikodu, którego jeszcze nie ogarnąłem; Praktycznie całe LCL i prawie całe RTL natywnie obsługuje UTF-8, więc to trzeba zapamiętać; Do tego kodowania jest mnóstwo dedykowanych procedur i funkcji - posiadają prefiks lub sufiks UTF8
, pozostała część to już nazwa, np. UTF8Length
czy FindFirstUTF8
;
Dużo różnych ciekawych i mniej ciekawych rzeczy, jednak nie sposób wszystkich wymienić;
Co do samego przejścia z Delphi na Lazarusa - nie jest to takie trudne; Jest dużo rzeczy, które trzeba sobie przyswoić, jednak materiałów pomocniczych we wiki jest mnóstwo, więc jest co poczytać; Najlepiej jest poznać dialekt FP i z niego na bieżąco korzystać, zamiast naprawiać kod dyrektywą {$MODE DELPHI}
; To nie jest żadne rozwiązanie - projekt pisze się w jednym dialekcie, albo dialekcie Delphi, albo FP (albo np. TP :]); Lazarus jako narzędzie to dość dobry produkt, choć pewne błędy posiada; Jednak nie ma się co tym przejmować, bo z wersji na wersję jest coraz lepiej - błędy są poprawiane, ale też dodawane są nowe funkcje.
Udało mi się wgrać INDY do Lazarusa jednak podczas konwertowania projektu z Delphi za pomocą wbudowanego narzędzia wyrzuca braki w komponentach nazwanych OleCtrls oraz SHDocVw. Orientujecie się może o czym mowa i czy również to dałoby się wstawić w środowisko?
Mowa o komponentach które są dostępne tylko w Windows powstały na podstawie kontrolek ActiveX (SHDocVw czyli TWebBrowser = Internet Explorer) i Ole ale OleCtrls nie wiem do czego u Ciebie potrzeba ale jest wysokie prawdopodobieństwo że też do WebBrowser.
Nie zakładaj że Lazarus zrobi wszystko za Ciebie !
Jak w projekcie masz SHDocVw to pewnie masz kontrolkę do przeglądania stron WWW , z tym to może być problem i pewnie trzeba bedzie coś poprawić w kodzie aby to zadzialało
SHDocVw działa tylko na Windows a Lazarus jet wieloplatformowy i kiepsko wspiera rozwiązania które działaja tylko na jednej platformie
Co do migracji Delphi -> Lazarus to raz migrowałem nie swoja aplikację gdzie byłą masa komponentów z JVCL na szczenie tylko 6 róznych typów.
A nie dało sie zainstalowac JVCL do lazarus-a
Wiec najpierw zobaczyłem czego brakuje podejmując próbę importowania projektu
Potem utworzyłem nowe komponenty z takimi samymi właściwościami.
Zainstalowałem w IDE nowe komponenty.
Importowałem projekt.