Instalowanie komponentu w Lazarusie

0

Mam problem z użyciem jakiegokolwiek dodatkowego komponentu. Mam kilka plików .pas. Je trzeba jakoś instalowac, czy wystarczy wrzucić do katalogu z projektem dopisując w uses te pliki? Bo próbowałem instalować indy 10, nawet 9, i nie ma szans, a robiąc jak wyżej korzystając z jednego komponentu lazarus potrzebował kilku /kilkunastu innych plików .pas, i w którymś zawsze znalazło sie coś co nie działało. Teraz próbowałem synapse, kiedys mi to działało, ale nie wiem dokładnie gdzie mam wpisać ścieżkę do nich, a wrzucając do katalogu z projektem nie może znaleźć jakiegoś jednego pliku. (synsock.pas(1,1) Fatal: Can't find unit BaseUnix used by synsock)

Windows 7 64 bit, fpc 2.4.2, lazarus 0.9.29

1

Jasne że Indy da się zainstalować (wiem bo kiedyś miałem) a tu jest opis http://wiki.lazarus.freepascal.org/Indy_with_Lazarus
EDIT* O synapse też jest http:*www.ararat.cz/synapse/doku.php/public:howto:installsynapse i to o wiele prościej (bo synapse to biblioteki a nie komponenty) wystarczy skopiować pliki do jakiegoś katalogu np. components i dodać ścieżkę w ocjach środowiska.

0

How to install [3] Windows, Indy 10.2.0.3

* Need working Lazarus (and FPC) for this
* Download from http://www.indyproject.org/Sockets/fpc/index.en.aspx
* unpack into a directory
* in the indy /fpc dir 
  1. make clean 2. make all 3. make install This will put the indy files into the FPC units directories

    • From within Lazarus do a Package -> Open package file -> from the indy /lazarus dir, open the indylaz.lpk
    • In the "Compiler options" put

c:\pp\units\i386-win32\indy\ (or wherever the FPC indy units are installed after "make install") into the "Other unit files" field

* compile then install (will rebuild Lazarus)

Przetłumacz mi to dokładnie, bo mi nie działa, szczególnie chodzi mi o to:

  1. make clean 2. make all 3. make install This will put the indy files into the FPC units directories

Ja ostatnio z Synapse się bawiłem, nie jest złe, więc jeśli wie ktoś jak mi pomóc w związku z synapse to prosze o pomoc.

0

Jeżeli masz problem z THttpSend albo ftp pod Synapse to mogę spróbowac pomóc. Natomiast moduły do stworzenia
własnych klientów i serwerów ogarniam słabo, bo do tej pory nie miałem potrzeby z nich korzystać w swoich kodach.
Co do samego Synapse to jego się nie instaluje, tylko wrzuca się moduły pas do katalogu z projektem co polecam, a
względnie do LIB i następnie używa w sposob dynamiczny dodając do sekcji potrzebny moduł - na przykład httpsend.

0

ok wrócę po weekendzie to będę kontynuował, daj jakiś kontakt do ciebie, gg albo maila najlepiej.

0

Możesz napisać prywatną wiadomość z konkretami, ale najlepiej pytania zadawać na forum, bo po pierwsze poza
mną - na przykład - Misiekd o wiele lepiej ogarnia temat używania Synapse, także do e-maili. Zaś po drugie, to
tutaj wiadomości prywatne można początkowo przeoczyć. Natomiast nowy wątek czy post przeczyta więcej osób.

0

Były małe problemy z Lazarusem, ale jakoś już jest zainstalowany i nawet nie wywala błędów, więc teraz jakby ktoś mógł to tak jak 4 posty wyżej:

Przetłumacz mi to dokładnie, bo mi nie działa, szczególnie chodzi mi o to:

1. make clean 2. make all 3. make install This will put the indy files into the FPC units directories
1

Witam,

  1. Ściągnij indy: http://www.indyproject.org/Sockets/fpc/indy-10.2.0.3.zip
  2. Rozpakuj
  3. Skopiuj wszystkie pliki z podkatalogu "fpc" do potkatalogu "lazarus"
  4. Pakiet > Otwórz plik pakietu i wskazujesz na plik indylaz.lpk w podkatalogu "lazarus".

Źródło: http://www.lazarus.freepascal.org/index.php/topic,10258.0.html

Pozdrawiam
paweld

0

Robię tak jak piszesz, ale praktycznie od razu po kliknięciu 'instaluj' wyskakuje mi
user image

plz help ;)

1

po otworzeniu pakietu najpierw wciskasz kompiluj, a po zakończeniu kompilacji wciskasz instaluj.

edit: komponenty wrzucaj do katalogu z lazarusem, najlepiej do katalogu components lub stwórz inny podkatalog, można uniknąć masę głupich błędów.

Pozdrawiam
paweld

0

dokładnie w tym samym miejscu się wysypało:

C:\Users\admin\Desktop\indy-10.2.0.3\lazarus\IdAntiFreeze.pas(78,15) Error: Forward declaration not solved "TIdAntiFreeze.Process;"

0

W "O programie" mam tak:

Wersja #: 0.9.28.2 beta
Data: 2009-10-26
Wersja FPC: 2.2.4
SVN Revision: 22279
x86_64-win64-win32/win64

hm osobno instalowałem FPC 2.4.2, nie wiem czy potrzebnie.. i jak zrozumiałem, po rozpakowaniu indy miałem katalogi FPC i Lazarus, z 'FPC' przeniosłem wszystko do 'Lazarus' i zostało mi to na pulpicie (tymczasowo, wiadomo), czyli ten katalog Lazarus mam przenieść na c:\lazarus\components? bo już sie zgubiłem.. kiedyś mi to działało, ale teraz całkiem inaczej mi to mówią żeby robić :) a tak jak kiedyś robiłem nie działa :(

1

Problem występuje tylko w 64-bitowej wersji lazarusa. Jeżeli Twoja aplikacja ma działać na 32 i 64 bitach to zainstaluj lazarusa w wersji 32-bitowej:
wersja stabilna: http://jaist.dl.sourceforge.net/project/lazarus/Lazarus%20Windows%2032%20bits/Lazarus%200.9.28.2/lazarus-0.9.28.2-fpc-2.2.4-win32.exe
lub wersja rozwojowa (polecam): ftp://ftp.hu.freepascal.org/pub/lazarus/snapshots/Lazarus-0.9.29-29679-fpc-2.4.2-20110227-win32.exe

Jeżeli koniecznie chcesz korzystać z 64-bitowej wersji lazarusa to wyczyść plik IdAntiFreeze.pas i wklej w nim to:

{
  $Project$
  $Workfile$
  $Revision$
  $DateUTC$
  $Id$

  This file is part of the Indy (Internet Direct) project, and is offered
  under the dual-licensing agreement described on the Indy website.
  (http://www.indyproject.org/)

  Copyright:
   (c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
}
{
  $Log$
}
{
  Rev 1.6    2004.02.03 4:16:42 PM  czhower
  For unit name changes.

  Rev 1.5    2004.01.01 3:13:32 PM  czhower
  Updated comment.

  Rev 1.4    2003.12.31 10:30:24 PM  czhower
  Comment update.

  Rev 1.3    2003.12.31 7:25:14 PM  czhower
  Now works in .net

  Rev 1.2    10/4/2003 9:52:08 AM  GGrieve
  add IdCoreGlobal to uses list

  Rev 1.1    2003.10.01 1:12:30 AM  czhower
  .Net

  Rev 1.0    11/13/2002 08:37:36 AM  JPMugaas
}

unit IdAntiFreeze;

{
  NOTE - This unit must NOT appear in any Indy uses clauses. This is a ONE way
  relationship and is linked in IF the user uses this component. This is done to
  preserve the isolation from the massive FORMS unit.

  Because it links to Forms:

  - The Application.ProcessMessages cannot be done in IdCoreGlobal as an OS
    independent function, and thus this unit is allowed to violate the IFDEF
    restriction.
}

interface

{$I IdCompilerDefines.inc}
uses
  Classes,
  IdAntiFreezeBase,
  IdBaseComponent;

{ Directive needed for C++Builder HPP and OBJ files for this that will force it
to be statically compiled into the code }

{$I IdCompilerDefines.inc}

{$IFDEF WIN32}
{$HPPEMIT '#pragma link "IdAntiFreeze.obj"'}    {Do not Localize}
{$ENDIF}

{$IFDEF WIN64}
{$HPPEMIT '#pragma link "IdAntiFreeze.obj"'}    {Do not Localize}
{$ENDIF}

{$IFDEF UNIX}
{$HPPEMIT '#pragma link "IdAntiFreeze.o"'}    {Do not Localize}
{$ENDIF}

type
  TIdAntiFreeze = class(TIdAntiFreezeBase)
  public
    procedure Process; override;
  end;

implementation

uses
  {$IFDEF WidgetKylix}
    QForms,
  {$ENDIF}
  {$IFDEF WidgetVCLLike}
    Forms,
  {$ENDIF}
  {$IFDEF WIN32}
  Messages,
  Windows,
  {$ENDIF}
  {$IFDEF WIN64}
  Messages,
  Windows,
  {$ENDIF}
  {$IFDEF WidgetWinForms}
  System.Windows.Forms,
  {$ENDIF}
  IdGlobal;

{$IFDEF UNIX}
procedure TIdAntiFreeze.Process;
begin
  //TODO: Handle ApplicationHasPriority
  Application.ProcessMessages;
end;
{$ENDIF}

{$IFDEF WIN32}
procedure TIdAntiFreeze.Process;
var
  LMsg: TMsg;
begin
  if ApplicationHasPriority then begin
    Application.ProcessMessages;
  end else begin
    // This guarantees it will not ever call Application.Idle
    if PeekMessage(LMsg, 0, 0, 0, PM_NOREMOVE) then begin
      Application.HandleMessage;
    end;
  end;
end;
{$ENDIF}

{$IFDEF WIN64}
procedure TIdAntiFreeze.Process;
var
  LMsg: TMsg;
begin
  if ApplicationHasPriority then begin
    Application.ProcessMessages;
  end else begin
    // This guarantees it will not ever call Application.Idle
    if PeekMessage(LMsg, 0, 0, 0, PM_NOREMOVE) then begin
      Application.HandleMessage;
    end;
  end;
end;
{$ENDIF}

{$IFDEF WidgetWinForms}
procedure TIdAntiFreeze.Process;
begin
  //TODO: Handle ApplicationHasPriority
  Application.DoEvents;
end;
{$ENDIF}

end.

Indy się zainstaluje, ale nie gwarantuje poprawnego dzialania (nie korzystam z indy ani wersji x64).

Co do umieszczania komponentów to nie zaleca się trzymania tego na pulpicie ani w moich dokumentach. Ja osobiście wszystkie zbieram w C:\lazarus\components , np. dla indy będzie to: C:\lazarus\components\indy

Pozdrawiam
paweld

0

działa mistrzu :) dzięki wielkie :)

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