Delphi6でのJSON解析

469 views
Skip to first unread message

ta1101ka

unread,
Jul 29, 2022, 12:54:57 PM7/29/22
to Japan RAD Studio User Group
Delphi6Professionaを使っていますが、Jsonの解析にはどのコンポーネントを使えばいいのでしょうか?
ulkJson1.9、json4delphiはJSON for Delphi, support for older versions of Delphi (6 or above)と書いてありましたが、使えませんでした。
やりたいことは、国土地理院APIを使って、地形から想定されるリスクを考えることなのですが、住所から経度、緯度を取得したいのですが。。。

uses
Jconvert;

procedure TForm1.btn1Click(Sender: TObject);
var
  Address: string;
  URL: string;
  Responce: TStringStream;
begin
Responce := TStringStream.Create('');
try
Address := URLEnc(AnsiToUTF8(edt1.Text));
URL := AnsiToUTF8(GEOURL) + Address;
IdHTTP1..IOHnader:=IdSSLIOHandlerSocketOpenSSL1;
IdHTTP1.Get(URL, Responce);
Responce.Position := 0;

//Utf8ToAnsi(Responce.DataString)から経度・緯度を取得したい。
{
データは[{"geometry":{"coordinates":[139.767197,35.681561],"type":"Point"},"type":"Feature","properties":{"addressCode":"","title":"東京都千代田区丸の内一丁目"}}]
}

finally
  Responce.free:;
end;

このような場合、delphi6Professionalではどのような方法があるのでしょうか?
今は、方法が分からないので正規表現で取得しています。

大橋

久世雄一

unread,
Jul 30, 2022, 6:13:22 AM7/30/22
to radstu...@googlegroups.com
大橋さん

久世です。

JSON処理については、
superobjectが、慣れれば使いやすいと思います。
https://github.com/hgourvest/superobject

独特な使い方なので、サンプルを作成しました。
未確認で申し訳ないのですが、Delphi6でも動作すると思います。
変数は、もっと少なくてもよいのですが、分かりやすいように複数準備しました。
Form1に、Label1, 2, 3を置いています。
参考になればよいのですが、、、

unit Unit1;

interface

uses
省略, superobject;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure FormShow(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
var
S : string;
SOorg, SO1, SO1_3: ISuperObject;
SA1_1 : TSuperArray;
S1_2 : string;
X, Y : Double;
AdrCode : string;
Jusho : string;
begin
(*
[
{
"geometry":{"coordinates": [139.767197,35.681561],"type":"Point"},
"type":"Feature",
"properties":{"addressCode":"","title":"東京都千代田区丸の内一
丁目"}
}
]';
*)
SOorg := SO('[{"geometry":{"coordinates":
[139.767197,35.681561],"type":"Point"},"type":"Feature","properties":
{"addressCode":"","title":"東京都千代田区丸の内一丁目"}}]');
SO1 := SOorg.AsArray[0];
SA1_1 := SO1.O['geometry'].A['coordinates']; // 1. "geometry"
X := SA1_1[0].AsDouble;
Y := SA1_1[1].AsDouble;
S1_2 := SO1.O['type'].AsString; // 2. "type":
"Feature" 未使用
SO1_3 := SO1.O['properties']; // 3. "properties"
AdrCode := SO1_3.S['addressCode']; // 未使用
Jusho := SO1_3.S['title'];
Label1.Caption := FloatToStr(X);
Label2.Caption := FloatToStr(Y);
Label3.Caption := Jusho;
end;

end.

Takashi Ohashi

unread,
Jul 30, 2022, 7:15:57 AM7/30/22
to radstu...@googlegroups.com
久世様
サンプルまで書いて頂き、ありがとうございます。
unit supertimezoneのGenerics.Collectionsでエラーになりますが、もう少し調べてみます。
それと、Delphi6では、やはり開発し続けるのは厳しいのでしょうか?
個人的には好きなのですが、、、、

2022年7月30日(土) 19:13 久世雄一 <ku...@hi-ho.ne.jp>:
--
このメールは Google グループのグループ「Japan RAD Studio User Group」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには radstudio-jp...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/radstudio-jp/36bee790-5479-4105-75e9-f1f93fa182a8%40hi-ho.ne.jp にアクセスしてください。

久世雄一

unread,
Jul 30, 2022, 8:29:50 AM7/30/22
to radstu...@googlegroups.com

大橋様

久世です。

私は、Delphi7を一番長く利用してきましたが、
Delphi6->7->XE4->10.3->10.4と、今では10.4のユーザーになっています。
Windowsも11まで来ましたから、Delphi6もそろそろ厳しいかなとは思っています。

さて、superobjectが動作しないということで失礼しました。
派生の下記なら、動くかもしれません。Delphi7と記載がありますが、、、
https://github.com/ekapujiw2002/delphi7-json-parser-superobject

Tarou Takagi, Imageom

unread,
Jul 30, 2022, 11:34:48 PM7/30/22
to radstu...@googlegroups.com
こんにちは、イマジオムの高木です。 割り込みで失礼します。
[radstudio-jp:284] から件名を変えてお返事します。

大橋さん:
> それと、Delphi6では、やはり開発し続けるのは厳しいの
> でしょうか? 個人的には好きなのですが、、、、

 私は Delphi 5 と Delphi XE2 を両方とも、現役の開発環境と
して愛用しております。 その立場で申しますと、Delphi 6 で
開発し続けることは不可能ではありません。 ただし次のような
課題があると思います。

  1.最新の機能、特にモバイルデバイス用の機能を
    使うのに Delphi 6 ではとても骨が折れます。
    たとえばGPSとか、ジャイロセンサとか……

  2.オープンソースやサードパーティ製品の中には、
    XE 以降の Delphi にしか対応していないものが
    ありますので、Delphi 6 だけではそれらを使う
    ことができません。 XE 以降の Delphi で
    「つなぎ」(DLLとか)を作る必要があります。

  3.Unicode 文字列が使いたくなる場面は意外と多く
    あります。 そんな時に備えると、ネイティブに
    Unicode 文字列を扱うことができる XE2 以降の
    Delphi は持っておきたいです。

  4.Windows 以外のOSを使うことも増えてきています。
    そうすると FireMonkey フレームワークが使える
    XE2 以降(でしたっけ?)の Delphi は持って
    おきたいです。

  5.最近のパソコンは64ビットが主流ですから、
    パソコンの性能を生かすためにも、64ビット
    ビルドのできる XE2 以降の Delphi は持って
    おきたいです。

 私の場合、最初のうちは Delphi 5 と Delphi XE2 を対等に
扱っていて、汎用のライブラリを作る時にも、Delphi 5 用の
ものと Delphi XE2 用のものをセットで作るようにしたりして
いたのですが、だんだん Delphi XE2 の比率が大きくなり、
今ではほとんどを Delphi XE2 で作っています。 Delphi 5 は
実行プログラムのサイズを小さくしたいとか、特殊な場合にのみ


 なお Delphi XE2 以降は、言語仕様上ほぼ完全な上位互換に
なっていて、Delphi XE2 のソースコードは Delphi 11 でも
たいていそのままコンパイルすることができます。  つまり
プログラミング言語としてはほぼ「枯れた」状態になって
いますので、機会を見て新しい Delphi の習得にチャレンジ
なさるのがいいと思います。 ずっと使っていけると思いますよ。
――――――――――――――――――――――――――――――――――――
株式会社イマジオム 代表取締役 高木太郎
〒316-0024 茨城県 日立市 水木町 1-11-10
電話:0294-28-0147
ファクシミリ:0294-28-0148
携帯電話:090-8177-5709
メール:tarou_...@imageom.co.jp
ウェブサイト:
  (会社公式)https://www.imageom.co.jp/
  (イマジオム・アウトレット)https://www.imageom-outlet.shop/

Takashi Ohashi

unread,
Jul 31, 2022, 12:37:50 AM7/31/22
to radstu...@googlegroups.com
高木様
アドバイスありがとうございます。
コンポーネントも7以降のものが多く、Delphi6が取り残された感があります。
問題はユニカード化で、前にDelphi2007にアップデートしてから、と言う話を聞いたことがあります。
しかし、Delphi2007は入手出来ないので、次のバージョンを購入し、手分けしてユニコードに変えて行くしかないと思っています。今更、c#などに乗り換えることは全く考えていませんので、これからもずっとDelphiで行きたいと思っています。
コミュティバージョンを少し触りましたが、凄く使いやすい感じがしました。
今後ともよろしくお願い申し上げます。

2022年7月31日(日) 12:34 Tarou Takagi, Imageom <tarou_...@imageom.co.jp>:
--
このメールは Google グループのグループ「Japan RAD Studio User Group」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには radstudio-jp...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/radstudio-jp/202207310334.AA12706%40110-server.imageom.co.jp にアクセスしてください。

Hikaru Fukushi

unread,
Jul 31, 2022, 2:11:36 AM7/31/22
to radstu...@googlegroups.com
大橋さん、みなさん、こんにちは。福士です。

> 問題はユニカード化で、前にDelphi2007にアップデートしてから、と言う話を聞いたことがあります。
> しかし、Delphi2007は入手出来ないので、

DelphiのPro/Ent/Archを購入した場合、過去のDelphi 7、2007、2009
および以降のすべてのバージョンを入手可能です。詳細は

Delphi: 旧バージョン情報 - エンバカデロ・テクノロジーズ
https://www.embarcadero.com/jp/products/delphi/previous-versions

をご覧ください。

Windows 10/11とDelphi 2007の組み合わせではいくつか気を付けなければ
いけない点がありますが、DEKOさんがまとめてくださっています。

Delphi 2007 (R2) for Win32 を Windows 10 / 11 にインストールする - Qiita
https://qiita.com/ht_deko/items/95c95a0ca97551f0adb4


基本的にDelphi 7およびそれ以前からDelphi 2007への移行はそれほど
作業量はありませんが、マニフェスト対応など、Unicode対応以外の
要素が含まれており、暫定的に移行する先としては適切だと思います。
うちのプロダクトでも費用、工数の問題でUnicode対応できないまま
Delphi 2007でメンテナンス状態になっているものがいくつもあります。

# 新しい機能に慣れてしまっていて、さすがにDelphi 2007ではもう
# あんまり作業したくはありませんが…。


参考にしてください。

---
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fuk...@tts-inc.co.jp

Tarou Takagi, Imageom

unread,
Jul 31, 2022, 3:00:03 AM7/31/22
to radstu...@googlegroups.com
こんにちは、イマジオムの高木です。 割り込みで失礼します。

大橋さん:
> 問題はユニコード化で、前にDelphi2007にアップデートしてから、と
> 言う話を聞いたことがあります。しかし、Delphi2007は入手
> 出来ないので、次のバージョンを購入し、手分けしてユニコードに
> 変えて行くしかないと思っています。

 私も Delphi 5 から Delphi XE2 に移行する時、半年くらい
かかるかと覚悟したのですが、やってみたら意外と簡単で、
まる2日でほぼ終わったということがあります。 「案ずるより
生むが易し」で取り組まれてはいかがでしょうか?

 なおこの移行の時に得たノウハウを delphi-users メーリング
リストに投稿したことがあります。 インターネット検索ができない
ようですので、再掲いたします。 ご参考になさってください。

(以下、delphi...@freeml.com に投稿した内容です)
――――――――――――――――――――――――――――――――――――
Date: Wed, 14 Sep 2011 14:33:44 +0900
To: delphi...@freeml.com
Subject: Delphi XE2の使用レポート。
From: aaa1...@pop06.odn.ne.jp (高木太郎)

 こんにちは、イマジオムの高木です。

 今回一念発起して、Delphi 5 から XE2 へのバージョンアップに着手
しました。 ほとんど初心者気分ですが、いろいろ気づいたことが
ありますので、これからバージョンアップに取り掛かられる方のために、
僭越ながらレポートしたいと思います。

 ちなみに XE2 以前の変更についても触れていますが、いかんせん
当方2001年の Delphi 5 からのステップアップですので、流行に
乗れていないのはご容赦ください。


1.UNICODE 化

 UNICODE 化により、Char と string の意味が変わったのはご存知の
とおりです。 ソースコードを書き直す必要があるとのことで、着手前は
戦々恐々でしたが、実際には意外と直さずにすみました。 だいたい
1,000行あたり1ヶ所くらいの修正ですんだと思います。 コツと
しては───

  ア.なるべく低層のユニットから取り組んでいきます。 ユニット
    ごとにテストプロジェクトを作るのがお勧めです。

  イ.最初にユニットに含まれる Char・PChar・Length・SetLength・
    FillChar・ByteType ……といったキーワードを、機械的に
    ' の付いた文字列に置き換えます(つまり Char' PChar' などに
    します)。 これでコンパイルをかけると、その箇所でエラーが
    出ますので、確実かつ網羅的に危険部位を見つけることが
    できます。

  ウ.イの部分では、ANSIChar または ANSIString 型が使われている
    はずですので、その変数を見つけ、VCL標準でない手続き
    または関数(たとえば独自DLLのインポート関数など)に
    渡している部分を探します。 特にポインタを引数として渡す
    部分、文字列の長さを扱っている部分が要注意です。

  エ.どうしても必要な場合に限り、ANSIChar・ANSIString 型の変数を
    宣言して使います。 宣言を明示的にすることで、後から問題が
    起きた時に、疑う場所を絞り込むことができます。 つまり
    「ANSI」で検索をかければいいのです。

意外と簡単ですので、ぜひチャレンジしてみてください。


2.コンパイラの作るファイル

 旧プロジェクトのコンパイルによって .dproj ファイルをはじめとする、
たくさんのファイルができます。 しかし最低限必要なのは、Delphi 5 と
同じく .dpr・.pas・.dfm、それに必要に応じて .res くらいです。
あとは消してしまってもよさそうです。 特に履歴管理をしなければ
_history フォルダも丸ごと消してしまってかまいません。 上記の
3~4種類のファイルさえ残っていればいいようです。


3.ユニットスコープ

 uses 節に Vcl.Forms・Winapi.Windows などのように限定子がついて
表示されます。 ちょっとうっとうしいのですが、限定の部分は取って
しまってもかまわないようです。 たまにコンパイルが通らなくなる
こともありますが、その時にはプロジェクトオプションの「ユニット
スコープ名」のリストに「Vcl」を追加してやれば、ソースコードに
手を入れなくても大丈夫です。


4.IDE

 「検索」はダイアログがなくなりました。 正規表現の検索もできて
いいのですが、操作をしないと検索オプションが見えないので、
個人的には Delphi 5 の方が使いやすかったと思います。 「どうも
ヒットしないな」と思っていたら、意図せず「選択部分のみ」が
チェックされていたり。

 置換のダイアログは Delphi 5 のままです。


5.実行ファイルのサイズ

 コンパイルされる実行ファイル(.exe)は、Delphi 5 に比べて
非常に大きくなっています。 最低でも1Mバイトくらいあるので、
小さい .exe を作りたい場合には不利かもしれません。

 #何かワザがあるのかもしれませんが、まだそこまで使いこなして
  おりません。


6.64ビットアプリケーション

 「プラットホーム」を切り替えて再コンパイルするだけで、あっけない
ほど簡単にできました。 すばらしいことです。


7.Windows が終了させられない

 一時期、Delphi XE2 を使った後、Windows が落とせなくなる問題が
発生しました。 その場合には、タスクマネージャで dexplore.exe を
落とすことで、Windows も落とせるようになりました。


8.コンポーネントのインストール

 コンポーネントのインストールが非常に楽になりました。


9.オプションセット

 コンパイル・リンクのオプションの組み合わせを、Debug・Release の
2種類持つことができるようになりました。 Delphi 5 では1種類
でしたので、デバッグ用とリリース用でいくつものチェックボックスを
オン/オフしないといけませんでしたが、XE2 では一発で切り替える
ことができます。


10.ヘルプ

 Delphi 5 の方が少し使いやすかったような気がしますが、内容は
豊富です。


11.その他

 細かいことですが、Delphi 5 では WriteLn 文の () の中では支援
機能が働かなかったのですが、XE 2 ではちゃんと働きます。

 全体的に、非常にこなれていて安定した感じがします。


 以上、XE2 初心者ユーザの個人的な見解ですが、移行を考えている
方はぜひ参考にしてください。 また間違いなどありましたら、ご指摘
いただければ幸いです。
――――――――――――――――――――――――――――――――――――

mbb...@ybb.ne.jp

unread,
Aug 6, 2022, 6:13:47 PM8/6/22
to radstu...@googlegroups.com
tonboです。
お世話になっています。
Python4DelphiのインストールとDemo異常で躓いています。

【環境】
・Windows10
・Delphi10.4
・Phtyon3.9.5(64Bit)
・Python4Delphi: https://github.com/pyscripter/python4delphi
   からZipをダウンロードし、解凍してC:\P4Dへコピー

【Path】
ツール/オプション/言語/Delphi/ライブラリ/Windows64ビット/ライブラリパス
へ、以下追加
・C:\P4D\Source
・C:\P4D\Source\vcl
・C:\P4D\Source\fmx

【インストール】
Installation
https://github.com/pyscripter/python4delphi/wiki/Installation
を参考にして、1.2.を行いました。

1.C:\P4D\Installの「MultiInstaller.exe」を実行
・Select a destination directory ...
C:\P4D
・「Compile packages and install on IDE」にチェック
・Next
Error: C:\P4D\Install\ doesn't exist.

色々試しましたがうまくいかず、次の方法にしました。

2.手作業
・ファイル/開く/で
C:\P4D\Packages\Delphi\Delphi 10.4+ の「P4DComponentSuite.groupproj」を指定
・「P4DComponentSuite」を右クリック/全てビルド
エラー無しで終了
・「P4DComponentSuite」を右クリック/「プロジェクトのグループに名前を付けて保存」
  「P4DComponentSuite.groupproj」のまま/保存

3.C:\P4D\Demos\Demo01の「Demo01.dpr」をダブルクリック
エラー「クラス TPythonEngineが見つかりません...」が出ます。

・TPythonEngineを定義している「PythonEngine.pas」には、
 C:\P4D\SourceのPathを通しています。
・エラーを無視し、Windows64Bitのプラットフォームを追加し、
 プロジェクト/Demo01をビルド を行うと
 エラー「フィールドForm1.PythonGUIInputOutput1に対応するコンポーネントがありません。...」
 が出ます。

アドバイスをお願いいたします。

梅澤智実

unread,
Aug 8, 2022, 7:36:55 AM8/8/22
to radstu...@googlegroups.com
こんにちは、梅澤@プロキャストと申します。

以下の環境で手動でインストール後、問題なくDemo01.dprojをオープンできました。
(エラーになりませんでした)
      OS: Windows 10 21H2
      Delphi 10.4 Pro

私の方はPython4Delphiのインストール後、コンポーネントパレットに、"Python"というカテゴリが出来て、
  TPythonGUIInputOutput
  TPythonEngine
  TPythonType
  TPythonModule
  TPythonDelphiVar
  TPythonInputOutput
  TPyDelphiWapper
というコンポーンネントがぶら下がっていますが、その点はどうでしょうか?

もしかして、
  『「P4DComponentSuite」を右クリック/全てビルド 』
の手順で、ビルドだけしてコンポーネントのインストールがされていないのかもしれません。

dclPython270.bpl
dclPythonVcl270.bpl
dclPythonFmx270.bpl

の3つは、右クリックすると「インストール」というメニューが出てくるので、それを行ってみて下さい。



2022年8月7日(日) 7:13 <mbb...@ybb.ne.jp>:
--
このメールは Google グループのグループ「Japan RAD Studio User Group」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには radstudio-jp...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msgid/radstudio-jp/002e01d8a9e1%248b672c80%24a2358580%24%40ybb.ne.jp にアクセスしてください。

mbb...@ybb.ne.jp

unread,
Aug 8, 2022, 6:26:56 PM8/8/22
to radstu...@googlegroups.com

梅沢様

tonboです。

わざわざ確かめて頂きありがとうございます。

 

もう一度以下のようにやり直してみましたが、状況が変わっていません。

・ファイル/開く/

C:\P4D\Packages\Delphi\Delphi 10.4+ の「P4DComponentSuite.groupproj」を指定

Python270.bpl他全部のターゲットを64Bitに変更

・「P4DComponentSuite」を右クリック/全てビルド

   エラー無しで終了

・「P4DComponentSuite」を右クリック/「プロジェクトのグループに名前を付けて保存」

  「P4DComponentSuite.groupproj」のまま/保存

dclPython270.bpl

dclPythonVcl270.bpl

dclPythonFmx270.bpl

3つは、右クリックすると「インストール」が無いため「上書き保存」

・右側「パレット」にはPythonは見当たりません。

Delphiを終了

Delphi立ち上げ

Demo0164Bitでビルド

  状況は変わりませんでした。

 

続けて色々確認いたします。

ありがとうございます。

 

-------------------------------------

--
このメールは Google グループのグループ「Japan RAD Studio User Group」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには radstudio-jp...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/radstudio-jp/CAAuxAt3SQ_87YxMS0KG_odueB%2BSmkFJ5Qa3eNO8B-HhVPrup%3Dg%40mail.gmail.com にアクセスしてください。

梅澤智実

unread,
Aug 8, 2022, 8:36:56 PM8/8/22
to radstu...@googlegroups.com
こんにちは、 tonboさん。

おやりになられた手順で、

> Python270.bpl他全部のターゲットを64Bitに変更

が問題だと思います。
(ここはGitHubのPython4Delphiのインストールの説明に書かれておらず、tonboさんが独自に加えた手順ですよね?)

設計時パッケージのdclPythonXXXX.bplには、元々「ターゲットプラットフォーム」として「Windows 32ビット」
しかありません
(実行時パッケージのPythonXXXX.bplには 「Windows 32ビット」「Windows 64ビット」の両方がありますが)


私の方で試しに以下の事をやってみると、右クリックでの「インストール」が出なくなりました。
いったん、「Windows 32ビット」環境でお試しになってはいかがでしょうか?

<「インストール」メニュー が出なくなる手順>
1)  dclPython270.bplの 「ターゲットプラットフォーム」に 「Windows 64ビット」を追加
2)  dclPython270.bplの 「ターゲットプラットフォーム」を「Windows 64ビット」側を「アクティブ化」
3)  dclPython270.bplを右クリック →  「インストール」メニューが存在しない。

2022年8月9日(火) 7:26 <mbb...@ybb.ne.jp>:
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/radstudio-jp/001e01d8ab75%24b4ed3f00%241ec7bd00%24%40ybb.ne.jp にアクセスしてください。

mbb...@ybb.ne.jp

unread,
Aug 9, 2022, 7:54:26 AM8/9/22
to radstu...@googlegroups.com

梅沢様

tonboです。

重ねてのテストとアドバイス、ありがとうございました。

帰宅が遅くなり返事が遅れ申し訳ありません。

 

別のPCで試したところ、梅沢様の方法でうまくいきました!

ありがとうございました。

 

次に問題を起こしたPCで確かめました。

ビルド、インストールまではうまくいきました。

コンポーネントパレットにも追加されました。

ただ、実行すると、アプリが立ち上がらず無反応でした。

 

考えられるのは、

Phtyon3.9.5が古すぎる?

・失敗を繰り返し、Delphiがおかしくなった?

落ち着いて確かめてみます。

 

今までは、32Bitのコンパイルで済ませており、64Bitは最近始めました。

>独自に加えた手順ですよね?

ご指摘の通りです。良かれと思ってやりました。

 

>設計時パッケージのdclPythonXXXX.bplには、元々「ターゲットプラットフォーム」として「Windows >32ビット」しかありません

>(実行時パッケージのPythonXXXX.bplには 「Windows 32ビット」「Windows 64ビット」の両方があ>りますが)

このあたりもしっかり勉強させていただきます。

ありがとうございました。

mbb...@ybb.ne.jp

unread,
Aug 9, 2022, 4:43:10 PM8/9/22
to radstu...@googlegroups.com

梅沢様

tonboです。

以下を行い解決しました。

どちらが効いたかは未確認です。

Python3.10.6

C:\P4DC:\ Components \P4D

 

助かりました。感謝いたします。

--

このメールは Google グループのグループ「Japan RAD Studio User Group」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには radstudio-jp...@googlegroups.com にメールを送信してください。

このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/radstudio-jp/000c01d8abe6%247c6548f0%24752fdad0%24%40ybb.ne.jp にアクセスしてください。

梅澤智実

unread,
Aug 9, 2022, 9:18:18 PM8/9/22
to radstu...@googlegroups.com
tonboさん、こんにちは。
梅澤です。

動作したようで良かったです。
私はPythonは多少文法をかじった程度で時間があったら手を出したいのですが
なかなか...

ちなみに
  ・Delphiでビルドしたexe
  ・Python 3.10.6
は、どちらも64bitでしょうか?

参考までにお教え下さい。

話は変わりますが、設計時パッケージの件ですが、DelphiのIDEが32bitなので、設計時パッケージ
は32bitだけで良いのだと思われます。
実行時パッケージは、32bit, 64bit両方用意されていたので、exeは 32bit, 64bit 作れるということ
ですね。

2022年8月10日(水) 5:43 <mbb...@ybb.ne.jp>:
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/radstudio-jp/000801d8ac30%245f77bd00%241e673700%24%40ybb.ne.jp にアクセスしてください。

mbb...@ybb.ne.jp

unread,
Aug 10, 2022, 9:59:30 AM8/10/22
to radstu...@googlegroups.com

梅沢様

お世話になります。

Tonboです。

 

私はPythonは嫌いで、Delphiだけで済ませたかったのですが、

AIのコードを読むときに避けて通れず、最低限の勉強をしています。

 

どちらも64Bitです。

その理由は、「array of array of double」で行列を作り、

繰り返し処理をした時、凄く遅く、試しに64Bitでコンパイルすると

劇的に早くなることに気付いたためです。

今後は行列を使う機会が多くなるため、64Bitを基本にしようと思いました。

ただ、32BitしかないD llがあり、これが64Bitアプリでは使えなくなると

思います。悩ましいです。

 

DelphiIDE32bitなのですね。意識していませんでした・・・

 

私のPCには、dclPythonXXXX.bplPythonXXXX.bplが2つずつあり、

をエディタで開いてみると、それぞれ、

This program must be run under Win32

This program must be run under Win64

の文字がありました。

これが、「実行時パッケージは、32bit, 64bit両方用意されていた」の意味ですね。

 

dclPythonXXXX.dpkPythonXXXX.dpkは、エディタででは、32Bit64Bit

見分けがつきませんでした。

勉強を続けます。

このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/radstudio-jp/CAAuxAt3-UhO4gc7xWXsJmd03QCPfu2NnLSyFytMuC3kKNdfykg%40mail.gmail.com にアクセスしてください。

梅澤智実

unread,
Aug 12, 2022, 1:35:22 AM8/12/22
to radstu...@googlegroups.com
tonboさん、こんにちは。 梅澤です。

お返事有り難うございます。
Delphi側、Python側どちらも64bitなのですね。
了解しました。

bpl や dpkをエディタで開いてみたとのことですが、そこまでの確認はこちらではしていません。

DelphiでP4DComponentSuite.groupprojを開いた後、プロジェクトマネージャーで各bplファイルの
「ターゲットプラットフォーム」にぶら下がっている項目を確認しているだけです。

dclPythonXXXX.bplの3個は
  Windows32ビット

PythonXXXX.bplの3個は
  Windows32ビット
  Windows64ビット

となっていませんか?

2022年8月10日(水) 22:59 <mbb...@ybb.ne.jp>:
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/radstudio-jp/005c01d8acc1%2424ee6b20%246ecb4160%24%40ybb.ne.jp にアクセスしてください。

mbb...@ybb.ne.jp

unread,
Aug 16, 2022, 3:07:48 AM8/16/22
to radstu...@googlegroups.com

梅澤様

 

tonboです。

すみません。お盆の期間、留守にしていました。

 

続けてありがとうございます。

ご指摘のようになっていることを確認しました!

これで区別できるのですね。

 

今更のことですが、恥を忍んでお聞きします。

設計用と実行用のdpkファイルをコンパイルすると、設計用と実行用のbplファイルができます。

dclPythonXXXX.dpkPythonXXXX.dpkのどちらが設計用か実行用か、

どのようにして区別されたのでしょうか?

テキストエディタで見ても、あまり差はありません。

 

今回は、

dclPythonXXXX.bplのプラットフォームが32Bitのみなので設計用

PythonXXXX.bplのプラットフォームが32Bit64Bit、他と増えているので実行用

で区別できると思います。(減少したらおかしいので)

でも両方のプラットフォームが32Bitの場合、区別できません。

よろしくお願いいたします。

梅澤智実

unread,
Aug 16, 2022, 4:46:20 AM8/16/22
to radstu...@googlegroups.com
tonboさん、こんにちは。 梅澤です。

お返事有り難うございます。

設計時パッケージと実行時パッケージの区別ですが...


・「設計時パッケージ」の場合は、プロジェクトマネージャーでbplを右クリックして「オプション」
   を指示し、出てきたダイアログで左のメニューから「ビルド」の下の「説明」を選択して下さい。
   下の方にある「用途に関するオプション」で
         設計時のみ使用可能
         実行時のみ使用可能
         設計/実行時とも使用可能
   という選択肢があります。
   ここで区別出来ます。

   たぶん、各dpkファイルに書かれている、 {$DESIGNONLY} や {$RUNONLY} が関係しているはずです。



また、今回のソース類に限って言えば

1)  以下のURLの " Manual Installation " の" For Delphi Sydney and later " の項に
        " Then install the dclPython, dclPythonVcl and dclPythonFmx design-time packages."
    と書かれているので、この3つが design-time packages です。


2) 「設計時パッケージ」の場合は、プロジェクトマネージャーで各bplを右クリックして「ソースの表示」
    を挿せた時に、「{$DESCRIPTION」 で始まる部分はパッケージの説明が書かれているのですが、
    6つのパッケージを確認すると、 "Design-time" か "Run-time" か書かれています。

    ※ 前述のダイアログの「ビルド」の下の「説明」部分に相当します。


私の方は仕事でC#やTypeScriptをやることになり、あまりDelphiに触れていません。 トホホ.. (^ ^;;


2022年8月16日(火) 16:07 <mbb...@ybb.ne.jp>:
--
このメールは Google グループのグループ「Japan RAD Studio User Group」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには radstudio-jp...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/radstudio-jp/017201d8b13e%249d5dd290%24d81977b0%24%40ybb.ne.jp にアクセスしてください。

mbb...@ybb.ne.jp

unread,
Aug 16, 2022, 8:01:49 PM8/16/22
to radstu...@googlegroups.com

梅沢様

tonboです。

詳しく解説頂きありがとうございました。

全て確認しました!

とても勉強になりました。

 

C#TypeScript、どちらもDelphiを開発した人が作ったものですね。

仕事ですので、切磋琢磨し合って短期間で身につけるのでしょうね?

 

私は、Web上に溢れているAIPythonコードを、制御に使いたく思いました。

Python4Delphiでそれができないか検討を始めたところです。

ただ、独学で納期も無く、亀のスピードです…(泣)

Reply all
Reply to author
Forward
0 new messages