Lazarus - pytania ogólne

0

Witam. Od dość dawna programuje w Delphi 7 - pirackiej wersji. Programy pisałem dla siebie, dla własnych celów, zwykle krótkoterminowych - programik zrobi co ma zrobić i do kosza.

Teraz jednak, pracuje w pewnej firmie i zobligowałem się do napisania paru programów ułatwiających zarządzanie firmą.

Jak przypuszczam nie mogę używać Delphi 7 (pirata)? W razie kontroli zażądają ode mnie licencji Borlanda?

Więc pomyślałem o darmowym Lazarusie. I tu zrodziło się multum problemów. Mam problem nawet z instalacją komponentów HTTP. Próbowałem zainstalować INDY 9 i 10 (9 nie chce w ogóle się instalować a 10 nie działa).

Inny problem miałem z komponentem INET. Tutaj połączenie z internetem działało ale zdarzenie OnDoneInput nie reagowało. Gdy pobierałem dane, zdarzenie input było wywoływane, lecz nijak nie byłem wstanie określić czy wszystkie dane spłynęły.

Proszę o jakieś rady, jak skutecznie przesiąść się z Delphi7 na Lazarusa.

ps. Czy mogę chociaż kontrolkę DLL skompilować w pirackim Delphi i użyć w programie napisanym w Lazarusie?

0
flasher86 napisał(a)

Jak przypuszczam nie mogę używać Delphi 7 (pirata)?
sam sobie odpowiedz…

W razie kontroli zażądają ode mnie licencji Borlanda?
nooo…

Próbowałem zainstalować INDY 9 i 10 (9 nie chce w ogóle się instalować a 10 nie działa).
Nie piszesz co nie działa. Ale spróbuj Synapse.

ps. Czy mogę chociaż kontrolkę DLL skompilować w pirackim Delphi i użyć w programie napisanym w Lazarusie?
Nie można używać pirackiego softu. Nie możesz go nawet mieć na dysku.

0
flasher86 napisał(a)

... a 10 nie działa).

czym objawia się "nie działąnie"?

Pozdrawiam
paweld

0

Tutaj błąd podczas kompilacji INDY9:

http://img829.imageshack.us/img829/570/indy9.jpg

A tutaj dziwny komunikat podczas próby wywołania GET w INDY10:

http://img831.imageshack.us/img831/1153/indy10.jpg

pomóżcie. Jest w ogóle sens pisania poważnego programu w Lazarusie? Boje się że jakiś głupi i nieoczekiwany błąd zniweczy tygodnie mojej pracy...

0

W zasadzie Lazarus się trochę różni od Delphi.
-komponentami
-trochę składnią

To tak jak porównywać TP do FP :)

0
flasher86 napisał(a)

A tutaj dziwny komunikat podczas próby wywołania GET w INDY10:

http://img831.imageshack.us/img831/1153/indy10.jpg

Dodaj 'http://' przed adres i działa

ShowMessage(idhttp1.Get('http://www.google.pl'));

Pozdrawiam
paweld

0

Spróbuj dodać we wszystkich plikach Indy'ego na początku

{$ifdef FPC}{$mode DELPHI}{$endif}

to zwiększa kompatybilność FPC z Delphi.

0

hmmm dzięki za odpowiedzi.

I jeszcze jedno, głupio że dopiero teraz zauważyłem ale widzę że istnieje Delphi7 Personal Edition na licencji Freeware.

Czy mogę napisać w nim mój program i używać go potem w firmie? Jeśli tak to na jakich zasadach ja udostępniałbym go firmie.

0

Delphi7 Personal nigdy nie było freeware. Rozpowszechniane było z gazetami. Jedyny legalny sposób to zakupić archiwalny numer danego czasopisma. Ale nie wiem jak z aktywacją czy numerem seryjnym, czy jeszcze można się zarejestrować.

0
Azarien napisał(a)

Delphi7 Personal nigdy nie było freeware. Rozpowszechniane było z gazetami. Jedyny legalny sposób to zakupić archiwalny numer danego czasopisma. Ale nie wiem jak z aktywacją czy numerem seryjnym, czy jeszcze można się zarejestrować.

Zarejestrować się już nie można niestety. Delphi7 Personal można chyba było ściągnąć ze strony Borlandu, więc zatem jest na licencji freeware raczej. Zadając podobne pytanie w Off-Topic uzyskałem odpowiedź, że mogę na niezarejestrowanej wersji, wydawać programy freeware, więc jak w końcu jest?

0

Przeszukałem ostatnio forum, i znalazłem tyle sprzecznych informacji że aż mnie głowa rozbolała. Na temat legalności było z 15 tematów i w każdym można przeczytać co innego.

Ale mniejsza o to, staram się uniknąć niepewności i pracować na Lazarusie.

Póki co INDY10 niby działa, ale nadal sprawia mi problemy.

Np. gdy wywołuje taką funkcję:
showmessage(idhttp1.Get('http://katalog.fota.pl/Katalog/Article.aspx'));

to wywala mi idiotyczny błąd:
Project project1.exe raised exception class 'External: SIGFPE'.

co się tyczy tej procedury:
procedure RaiseGDBException(const Msg: string);
begin
debugln(rsERRORInLCL, Msg);
// creates an exception, that gdb catches:
debugln(rsCreatingGdbCatchableError);
DumpStack;
if (length(Msg) div (length(Msg) div 10000))=0 then ;
end;

Tylko że gdy wpiszę http://katalog.fota.pl w parametrze GET wszystko jest OK.

ps. Czy gdy kompiluje w Delphi powiedzmy kontrolke dll to czy pozostają tam informację o kompilatorze? Jeśli tak, to jak je usunąć? Główny program mógłbym pisać w Lazarusie, a np. te rzeczy które sprawiają debilne problemy, zostawiałbym dla delphi jako bibliotek DLL.

0
flasher86 napisał(a)

...
Np. gdy wywołuje taką funkcję:
showmessage(idhttp1.Get('http://katalog.fota.pl/Katalog/Article.aspx'));

to wywala mi idiotyczny błąd:
Project project1.exe raised exception class 'External: SIGFPE'.

Tylko że gdy wpiszę http://katalog.fota.pl w parametrze GET wszystko jest OK.

ja używam lazarusa 0.9.29 jedna z ostatnich kompilacji+fpc 2.40 i przy kodzie:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IdHTTP1.Get('http://katalog.fota.pl/Katalog/Article.aspx'));
end;  

otrzymuje komunikat "HTTP/1.0 302 Moved Temporarily". Czyli wszystko jest ok - tzn. indy działa ok. Natomiast ten komunikat w delphi też otrzymasz (przekierowanie czasowe) - ale jak to rozwiązać to nie pomogę (próbowałem handleredirect i zmienę useragenta - pierwsze podpowiedzi z google - ale to nie pomaga).

Pozdrawiam
paweld

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