Lazarusで'System.Typesが見つかりません'と表示されます。

解決


Lazarus始めました  2022-01-20 01:02:11  No: 149969  IP: 192.*.*.*

お世話になります。
昨日Lazarusをダウンロードして、使おうとしています。(Delphiは多少知っています)
プログラムを作り始めたんですが、コンパイルすると'System.Typesが見つかりません'と表示されます。
ダウンロードしてインストール後、作成するプログラムのフォルダを変更しのが原因でしょうか?

編集 削除
mam  2022-01-20 04:11:20  No: 149970  IP: 192.*.*.*

uses system.types;
ではなく、
uses types;
にしても、駄目ですか?

編集 削除
Lazarus始めました  2022-01-20 05:17:09  No: 149971  IP: 192.*.*.*

mamさん、ありがとうございます。
typesでコンパイルできましたが、IOUtilsを追加するとまたエラーになります。
(System.IOUtilsでもダメです)

編集 削除
Lazarus始めました  2022-01-20 05:52:55  No: 149972  IP: 192.*.*.*

次の頁を参考に、まずファイル一覧を取得しようとしています。
https://www.gesource.jp/weblog/?p=5959

編集 削除
mam  URL  2022-01-20 13:16:30  No: 149973  IP: 192.*.*.*

LazarusにはTDirectoryクラスは無いのではないでしょうか。
FindFirstを使うのは如何でしょうか。


unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type
  { TForm1 }
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  Path: string;
  SearchPattern: string;
  f:TSearchRec;
    ret:Integer;
begin
  // ファイルを列挙したいディレクトリのパス
  Path:=Edit1.Text;
  // ファイル名に一致する検索パターン
  SearchPattern := '*.txt';
  ret:=FindFirst(Path+'\'+SearchPattern,0,f);
  while(ret=0)do
  begin
    ListBox1.Items.Add(f.Name);
    ret:=FindNext(f);
  end;
  FindClose(f);
end;

end. 

編集 削除
Lazarus始めました  2022-01-20 23:08:31  No: 149975  IP: 192.*.*.*

mamさん、ありがとうございます。
コンパイルできるようになりました。

Delphiと100%互換性があるかと思ったんですけど、そうではなかったんですね。
でも新しいプログラムを作るんでかまわないですけど

編集 削除
Mr.XRAY  2022-01-23 10:23:03  No: 149978  IP: 192.*.*.*

Delphi XE で新規にプロジェクトを作成して,山本さんのコードをコンパイルすると
以下のエラーが発生します.Lazarus と時と同じでしょう.

[DCC 致命的エラー] Unit1.pas(23): F1026 ファイル 'System.IOUtils.dcu' が見つかりません

これが,,


> Delphiと100%互換性があるかと思ったんですけど、そうではなかったんですね。 

という意味であれば,
Delph 7 と Delphi 2007 は 100% の互換性はありません.
Delphi 2007 と Delphi 2009 とは 100%の互換性はありません.
Delphi 2009 と Delphi XE とは 100% の互換性はありません.
Delphi XE と Delph XE2 は 100% の互換性はありません

ということになりますね.😁

編集 削除
mam  URL  2022-01-24 09:53:55  No: 149979  IP: 192.*.*.*

言語仕様は互換がありますが、ライブラリまでは難しそうですね。
LazarusはRaspberry Piでもコンパイル出来て動作するので良いですよね。
https://mam-mam.net/mytech/show.php?cd=344

編集 削除
Lazarus始めました  2022-01-29 01:13:52  No: 149983  IP: 192.*.*.*

Mr.XRAYさんありがとうございます。
Mr.XRAYさんのサイトにはいつもお世話になっています。

>Delph 7 と Delphi 2007 は 100% の互換性はありません.
確かにそうですよね。

mamさんありがとうございます。
Raspberry Pi、昔買って少しいじっただけでホコリを被ったままになっています。
また挑戦してみようかな。

編集 削除