deepla deepla

Development of useful applet application.

トップ > 開発メモ - Lazarus > コンポーネント - Indy

コンポーネント - Indy

Lazarusでネットの操作ができるコンポーネントです

ライセンス

MPL(Mozilla Public License)

Indyの準備

インストール

オンラインパッケージマネージャーを用いてインストールします

旧バージョン

表示する

ver 10.2.0.3

Indyのダウンロード

http://www.indyproject.org/Sockets/fpc/index.en.aspx

Indyコンポーネント登録
  1. Lazarusのメインメニューから[プロジェクト(P)]-[プロジェクトオプション...]を選択します
  2. 左のメニューツリーで[パス]を選択し、[その他のユニットファイル]に、展開したIndyのfpcパスを設定し、[OK]ボタンをクリックしてプロジェクトのオプションを閉じます 例:
    /home/hoge/Lazarus Libraries/indy/indy-10.2.0.3/fpc;.
  3. Lazarusのメインメニューから[パッケージ(P)]-[パッケージファイル(.lpk)を開く]を選択し、[indylaz.lpk]を開きます
  4. パッケージ[lnetvisual]が開くので、[オプション]を選択します
  5. 左のメニューツリーで[パス]を選択し、[その他のユニットファイル]に、fpcのパスを設定し、[OK]ボタンをクリックしてパッケージののコンパイラオプションを閉じます 例:
    ../fpc;.
  6. [コンパイル]を選択して、パッケージをコンパイルします
  7. もう一度、コンパイル(4〜実行)します。もう一度コンパイルしないとIdStreamVCLが見つからないとエラーが帰ってきます
  8. このコンポーネントは、Lazarusのビジュアルコンポーネントを持つので、[使用...]-[インストール]を選択し、Lazarusに組み込みます
  9. [はい]ボタンをクリックし、パッケージのコンパイルとLazarusの再構築を実行します
Indyヘルプのダウンロード

http://mediaserver.fh-wedel.de/public/labp/indy/downloads.html

Indyを使用する時

[プロジェクトオプション]を選択し、左のメニューツリーで[パス]を選択し、[その他のユニットファイル]に、Indyのfpcパスを設定します

Windows64bit版で正常にコンパイルできない

IdAntiFreeze.pasファイルを以下の様に修正します

[修正前]
type
  TIdAntiFreeze = class(TIdAntiFreezeBase)
  public
    procedure Process; override;
  end;

[修正後]
type
  TIdAntiFreeze = class(TIdAntiFreezeBase)
  public
    {$IFDEF WIN32}
    procedure Process; override;
    {$ENDIF}
  end;

lazcontroldsgnが見つからないメッセージが出て、Indyがインストールできない(Lazarus 1.8以降)

以下のメッセージが表示された場合

Lazarus.pp(1,1) Fatal: Cannot find lazcontroldsgn used by Lazarus. Check if package LazControlDsgn creates lazcontroldsgn.ppu, check nothing deletes this file and check that no two packages have access to the unit source..
  1. Lazarusを起動します
  2. 以下のパッケージファイルを開いてコンパイル、及びインストールします
    /usr/lib/lazarus/1.8.x/components/lazcontrols/design/lazcontroldsgn.lpk
    (1.8.x ... Lazarusのリリース番号)
  3. Lazarusを終了します
  4. 端末を使って、以下のコマンドを実行します
    sudo cp ~/.lazarus/lib/LazControlDsgn/lib/i386-linux/gtk2/* /usr/lib/lazarus/1.8.x/components/lazcontrols/lib/i386-linux/gtk2/
    (1.8.x ... Lazarusのリリース番号)
  5. Indyをインストールします
参考: http://forum.lazarus.freepascal.org/index.php/topic,39894.0.html

トラブルシューティング

IdFTPで例外クラス'EIdFTPListPaserError'が発生

現象

IdFTP1.DirectoryListing.Countを使用すると以下のメッセージが出ます

画像

対策

IndyパッケージにIdAllFTPListParsers.pasを追加します
  1. [パッケージ(C)]→[読み込まれているパッケージを開く...]を選択します
  2. パッケージ名から[indylaz]を選択し、[開く]をクリックします
  3. [+追加]ボタンをクリックし、[ファイルシステムからファイルを追加]を選択します
  4. [Protocols/IdAllFTPListParsers.pas]を選択し、[開く(O)]ボタンをクリックします
  5. [保存(S)]ボタンをクリックし、[コンパイル]ボタンをクリックします
  6. [パッケージindylaz v10.x.x]ダイアログを閉じます

IdThreadComponentでイベントが指定できない

現象

以下のメッセージが現れて、イベントが指定できません
IdGlobal.pas(1925,108) Error: expected ;, but deprecated found

対策

以下のファイルの指定した行を修正します

広告リンク

準備

日本語処理

コンポーネント

関連ホームページ

ページのトップへ戻る
inserted by FC2 system