【Delphi互換!?】FreePascal/Lazarus その2【GPL】

レス数が950を超えています。1000を超えると書き込みができなくなります。
2023/01/09(月) 20:44:35.21ID:uyXkOmJj
>>925
プロパティの設定が効かないってことかな?
2023/01/10(火) 09:05:22.16ID:GH/EYK1c
>>926
オブジェクトインスペクタでTitleを「画像ファイルを開く」など「ファイルを開く」以外にすればTitleがダイアログのキャプションに反映されます。
また、コードでOpenDialog1.Title := 'ファイルを開く'; を実行すればキャプションもそうなります。
ただ、コードを書かずにオブジェクトインスペクタで「ファイルを開く」を設定するだけだと「Open existing file」が表示されるというのが今回の問題です。

この症状はTDBNavigatorでも確認できていて、Hintsプロパティにはデフォルトで日本語のヒントが設定されているのにもかかわらず、実行すると英語のヒントが表示されてしまします。
その他MessageDlgのボタンが「はい」「いいえ」ではなく「Yes」「No」なのも同じ原因だと思います。
2023/01/10(火) 18:40:29.37ID:ddgJg6qa
>>927
IDEの言語を日本語にしていると、TOpenDialogのTitleプロパティを「ファイルを開く」に設定してもデフォルトとみなされ設定ファイルに記録されず
アプリを国際化対応させてないと元のデフォルトである 'Open existing file' が表示されるみたい
したがって
解決法1
IDEの言語を日本語以外にして Titleプロパティを「ファイルを開く」に設定する
他のダイアログなどでも設定しないとならなかったり、根本解決ではない

解決法2
国際化対応(のふり):
1.どこかの uses節に DefaultTranslator を追加し、
2.実行ファイルがあるフォルダに languagesフォルダを作り、その中に lclstrconsts.ja.po をコピーする
でいいはずなんだけど、Windowsだと FCLの gettextユニットに日本語の言語コードを jp とする不具合があるので、次のように修正する
3.gettextユニットにある procedure GetLanguageIDs(var Lang, FallbackLang: string) の中の
 LOCALE_SABBREVLANGNAME を LOCALE_SISO639LANGNAME に
 LOCALE_SABBREVCTRYNAME を LOCALE_SISO3166CTRYNAME に書き換える
あとは gettextユニットをプロジェクトに追加してコンパイルするだけでいいはず
(gettextユニットを修正せずにファイル名を lclstrconsts.ja.po から lclstrconsts.jp.po にするだけでもいいけど)

gettextユニットの不具合のせいで国際化対応をどうやってもできなくて無駄に悩んだぞ
IDEの言語設定で Automaticで日本語にならないのも gettextユニットの不具合のせいじゃないのかなあ
2023/01/10(火) 19:51:57.80ID:GH/EYK1c
>>928
ありがとうございます。
lclstrconsts.jp.poにリネームする方法で試して無事日本語で表示されました。
TDBNavigatorのヒントとMessageDlgのボタンも同様です。
2023/03/13(月) 17:17:11.04ID:0W6r0BpQ
Lazarus Release 2.2.6 - March 09, 2023, 10:38:09 am
931デフォルトの名無しさん
垢版 |
2023/03/17(金) 15:14:21.65ID:O04jxkPS
軽くていいな。ゲームエンジンなんかもあるようで欧州では使い手多いのか?
2023/04/29(土) 13:16:43.69ID:SIZVO/Fn
https://www.tiobe.com/tiobe-index/

TIOBE Indexで常に10位前後を維持してるDelphi系のPascal言語もスゴいよな
信じがたい快挙
2023/05/05(金) 03:07:31.72ID:PeDEzH1k
Windowsアプリを作ったら、とても遅いような気がするんだけど、まだ改善してないのかな?
2023/05/07(日) 13:41:00.25ID:eh+8xa5M
>>933
どんなプログラムを書いてどの言語と比較して遅いのかを書かないと答えは無理
C++/C言語と同等の速度にはならない
スクリプト言語よりは高速
935デフォルトの名無しさん
垢版 |
2023/05/07(日) 15:52:40.36ID:FtrFphzu
>>933
他のプログラムはサクサク動くのにお前の作ったプログラムだけが遅いという場合は、
多分お前のプログラムの何かがおかしい。
2023/07/12(水) 06:19:48.60ID:I6ZMSQN0
Lazarus Release Candidate 1 of 3.0 - July 03, 2023, 02:10:30 pm
2023/07/15(土) 21:28:05.69ID:2FiMr/gw
なんか知らんけど山下って人に金払わんでも専ブラ作っていいみたくなったらしいから
Lazarusでなんか作るチャンスなんじゃねw
2023/10/21(土) 16:11:17.35ID:G+lHRKF1
Lazarus Release Candidate 2 of 3.0 - October 16, 2023, 11:19:47 am

The Lazarus team is glad to announce the second release candidate of Lazarus 3.0.
This release was built with FPC 3.2.2.
2023/10/21(土) 16:11:26.42ID:G+lHRKF1
Lazarus Release Candidate 2 of 3.0 - October 16, 2023, 11:19:47 am

The Lazarus team is glad to announce the second release candidate of Lazarus 3.0.
This release was built with FPC 3.2.2.
2023/12/24(日) 07:32:34.78ID:1m+l9U5n
Lazarus Release 3.0 - December 21, 2023, 05:13:29 pm
The Lazarus team is glad to announce the release of Lazarus 3.0.
This release was built with FPC 3.2.2.
941デフォルトの名無しさん
垢版 |
2023/12/24(日) 12:29:21.36ID:CLUuqAoM
>>937
Siki 以上のものをサクッと作れる気がしねー……
942デフォルトの名無しさん
垢版 |
2024/02/09(金) 17:03:32.99ID:LEmbefGZ
元となったPascalの開発者が失踪したそうです
943デフォルトの名無しさん
垢版 |
2024/02/11(日) 15:58:19.39ID:8Y1XXxgX
マジっすか
2024/02/13(火) 17:18:01.13ID:kntdml6t
↑誤訳
2024/02/14(水) 17:08:51.66ID:S7FsWUpF
Pascal言語の作者が亡くなった話?
946デフォルトの名無しさん
垢版 |
2024/02/14(水) 18:24:17.69ID:vFlu/nl/
N. Wirth 死去 2024/1/1 89歳.R.I.P.

失踪じゃないよ.逝去だよ.
2024/02/15(木) 13:20:05.14ID:YdqWfEse
Pascalの始祖が伝説になっただけで開発者はご存命
2024/02/15(木) 20:39:21.53ID:mXBES2ti
なんじゃいヴィルト死去の話やったんかいヽ(`Д´)ノ
2024/02/15(木) 21:10:08.91ID:+1FkxmBK
passed away(消え去った)と書いてあったのでどこへ行ったのかと思った
2024/02/15(木) 21:11:56.18ID:zblp804r
>>949
どの記事?URL教えて!
951デフォルトの名無しさん
垢版 |
2024/02/16(金) 19:18:09.96ID:Axc1uWNK
フリーパスカルに書いてあった
http://www.freepascal.org/

The creator of the Pascal Language, Niklaus Wirth, has passed away on January 1st.
2024/02/16(金) 21:56:16.38ID:nKsaIfEz
passed awayは日本語でいう亡くなったみたいに、丁寧な言い方なんだな
勉強になった
2024/02/29(木) 22:49:58.22ID:GWZVNy5Y
Lazarus Release 3.2 - February 28, 2024, 04:35:50 pm
The Lazarus team is glad to announce the release of Lazarus 3.2.
This is a bugfix release and was built with FPC 3.2.2.
954デフォルトの名無しさん
垢版 |
2024/05/01(水) 11:19:57.60ID:N7BxcJwz
ラズパイ上の開発なんですけど、Windows/DelphiでのPostMessageに相当するものはありますか?
955954
垢版 |
2024/05/01(水) 14:14:26.40ID:N7BxcJwz
自己解決しました。
winapih.inc(LCLIntf.pas)の中に定義がありました。

それとは別で、TThreadのインスタンスを作成しただけで例外でアプリごと落ちるんですが、
何か作法があるんでしょうか?
956955
垢版 |
2024/05/01(水) 15:56:37.66ID:N7BxcJwz
自己解決しました。

プロジェクトのソースをデフォルトから変える必要があるのかもしれません。
{$IFDEF UNIX}
cthreads,
{$ENDIF}
2024/05/11(土) 08:16:18.21ID:fN4sXTbp
ラズパイでというかLinux(Debian)での Lazarus ですよね?
GTK や QT ベースで普通にアプリ作れますよ。
2024/05/31(金) 12:03:18.67ID:AJG6Tz1O
Lazarus Release 3.4 - May 29, 2024, 09:38:42 am
The Lazarus team is glad to announce the release of Lazarus 3.4.
This is a bugfix release and was built with FPC 3.2.2.
2024/09/20(金) 13:00:12.04ID:qcL9NwXM
Rustってコンパイル遅い。
Delphi 言語はなぜこんなにコンパイルが速いのか
960デフォルトの名無しさん
垢版 |
2024/09/20(金) 21:29:23.48ID:CPyMSx6T
C/C++は近年のCPUの進化で速くなったが、Pascalみたいに変数の後に型宣言するとか、関数プロトタイプ宣言が無いとかは、1パスでコンパイル完了するための文法的な工夫。
2024/09/20(金) 22:26:32.07ID:98e3Ciwa
Turbo Pascalの変態的なコンパイル速度が懐かしい
x86アセンブラで記述されていてオンメモリコンパイルだったそうだけど、DOS時代のI/O速度であれかよって思った
2024/09/20(金) 23:33:43.55ID:W27RIytC
炎のコンパイラって言われてたもんな
2024/09/21(土) 01:25:35.67ID:YrJIgGEK
PascalはLL文法だからコンパイルが速かったと思ってる
TurboPascalはコンパイルが異常に速かった
F5押したら瞬時に実行されてた
もちろんコンパイルしてから実行されてるはずだが、CPUが386とかの時代にコンパイル時間を感じないとか、もはやオーパーツと言ってもいいかもしれないw
2024/09/23(月) 23:34:17.75ID:/NJ3vFEC
ちなみに俺が最初に Turbo Pascal に触れたのは Sharp X-1 の CP/M-80 上の Z-80 Turbo Pascal だったが
こんな貧弱な8ビット環境であるにもかかわらずスクリーンエディタ込みでオンメモリで作動し
快適にコーディング<->デバッグができるほどに爆速コンパイルだった
2024/09/23(月) 23:55:17.21ID:tiwXgKZ4
Read Writeの様なIOが、Cがライブラリー実装なのに対して、Pascalは言語仕様なのも大きい
Cでmain内に10行程度のコードを書いたとしても、#include <stdio.h>しただけで何千行というヘッダーファイルをパースする必要がある(ファイルも複数読む必要がある)
これは遅い
Pascalはコンソールやファイルに読み書きする程度なら余計な読み込みは要らなかったはず
2024/09/24(火) 10:56:15.98ID:ugZT4nhj
Turbo Pascal 6.0で初めて触れたんだけど、コンパイラが小さいexe単一ファイルでインラインアセンブラ含むコードのコンパイル、リンクまでしてるからあの開発者は良い意味で化物
標準ユニット込みでも物凄いサイズ小さかった記憶
2024/09/24(火) 15:47:09.01ID:lVbfF7GP
Turbo Pascalって、アンダースヘルスバーグだっけ?

delphiのインターフェース(IInterface)の明示実装やクラスとは異なる公開スコープを持たせられる作りも好き。
968デフォルトの名無しさん
垢版 |
2024/09/30(月) 23:08:06.65ID:kiCuXRCW
Lazarus 3.6が出ました.
2024/10/09(水) 08:54:10.50ID:AyxXMafE
Deno や Bun から Delphi や Lazarus で作った dll 読み込めるっぽいな。
2024/11/08(金) 18:55:05.89ID:eF4gB/Tn
Lazarus Release Candidate 1 of 4.0 - October 27, 2024, 09:34:20 am
2024/11/09(土) 11:36:02.31ID:KmaxpfiK
forum見ると4.0からUIも変わるのかな?
とりあえずはfpc 3.2.2推奨で3.2.3使うと再構築できないとか云々
2025/04/05(土) 12:21:44.45ID:Gviq4eZn
Lazarus Release Candidate 3 of 4.0 - March 25, 2025, 01:59:17 pm
2025/04/07(月) 00:29:15.74ID:81Lw1ltM
https://www.youtube.com/watch?v=IUzoajpEJeg
974デフォルトの名無しさん
垢版 |
2025/05/05(月) 21:29:15.36ID:+8iKHwJ7
Lazarus 4.0が出ました
https://forum.lazarus.freepascal.org/index.php/topic,71050.0.html
975デフォルトの名無しさん
垢版 |
2025/07/05(土) 11:41:26.06ID:wlPhJnc4
Lazarus 4.0
AIにアドバイスしてもらいながら macos と ubuntu24.04LTS にインストールしてみただけ・・みたいな感じで

・macos M1-manmini は macos sonoma14.7.6 Xcode 15.4 の組み合わせだと割とあっさり
・intelCPUのmacbookair 2017 は敗北・・スキルのある人なら大丈夫なんだと思う
・ubuntu24.04LTSも割とあっさり
・Windowsはきっと動くんだろうと思ってパス
976デフォルトの名無しさん
垢版 |
2025/07/23(水) 18:05:28.79ID:g64wXekY
Lazarus 4.2が出ました
https://forum.lazarus.freepascal.org/index.php/topic,71826.0.html
977デフォルトの名無しさん
垢版 |
2025/09/16(火) 11:36:00.51ID:4xybmvnI
lazarus4.2  日本語windows11にデフォルト設定でインストールしてみた 起動すると始めからメニュー等は日本語になってました
試しに昔々Delphi5で書いたプロジェクトをインポートしたら文字はSJISだったしwinapi使ってあったけど修正無しでそのままの動いた とわいえ文字列操作があるとSJIS-UTF8の変換とwcharの対応は要ると思う

AIによるとdelphi5-7のプロジェクトのインポートは親和性が高いそうです。最新のDelphiプロジェクトはダメみたい
2025/09/16(火) 20:51:30.36ID:jRpZrnge
Lazarus製のフリーソフトって何かある?
2025/09/19(金) 04:21:07.83ID:Nq42NZKA
LazPaint
980デフォルトの名無しさん
垢版 |
2025/09/29(月) 03:11:58.75ID:gRIxbkow
俺が自分のPCで使うためだけに作ったどうでも良いツール
981デフォルトの名無しさん
垢版 |
2025/10/07(火) 11:53:48.40ID:1INtyESS
977です delphi5のプログラムをインポートしたソースコードだけどソースそのものがsjis->utf8に変換されてた。メニュー等の文字だけを日本語化しただけじゃないみたい
 AIはdelphi用のコンポーネントも使えるかも?と言ってるのでちょっとイジってみようかと思う、いや思ってるだけですよ
2025/10/07(火) 18:15:23.51ID:PufELU/u
fpcで作成したコンソールアプリが実行時にEAccessViolationとなるのでfpcでソースのエラー位置を調べたら
ある関数の最後のendが示されて役に立ちませんでした
Lazarusに持って行ったら例外で停止さえしませんでした
Delphai6に持って行ってOSによる例外をデバッガが受け取るという設定にしたらやっと発生位置が特定できました

FPC/Lazarusではどうにもならないのでしょうか
Lazurusはちょっと古くて2.2.4です
983デフォルトの名無しさん
垢版 |
2025/10/07(火) 22:35:09.49ID:GcmYQjI+
>>982
プロジェクトオプションの最適化が有効になっているからでは?
「0.最適化なし」にして試してみては?
2025/10/08(水) 09:53:53.24ID:i2Vw4tqm
最適化がオンでもオフでも
Execution stopped with exit-code 1 ($0001)
というポップアップが出て終了してしまいます
エラー位置にカーソルは行ってくれません
デバッガはdefault debuggerでもGdbでも同じです
2025/10/08(水) 10:11:36.23ID:i2Vw4tqm
982で「例外で停止さえしませんでした」というのは嘘でしたstoppedだから停止はしていますね
でもどこで停止したのかがわかりません

fpcでは
fpc -glh -O- とかやってどの関数でエラーが発生したのかまではわかるのですが
986デフォルトの名無しさん
垢版 |
2025/10/08(水) 14:47:25.50ID:xHDBIHkx
fpcそのものからは離れますが
exet code が1でエラーなので例外停止したと読めます

ただコンソールアプリがさまざまな返り値を返すこと自体はエラーでも何でもなく普通のことだと私は理解しています
アプリの終了時に0を返せばいいのでは?

Cだと
int main()
{
printf("hello world");
return 0;
}

エラー位置が特定できないのはそもそもプログラムが終わっているからとも解釈できます。rezarusにexiecode=1のエラーを無視するみたいなのはないのでしょうか?

的外れでしたらすみません
2025/10/08(水) 21:55:59.60ID:i2Vw4tqm
>>986
985 に訂正して書きましたようにLazarusでもエラー停止はしています

デバッガにはエラー位置を特定してもらいたいという話です
Lazarus/FPCではEAccessViolationのエラーについてそれができないようでした
一方Delphi 6では同じソースでEAccessViolationについても停止してからIDE上でカーソルがエラー位置に飛びます
988デフォルトの名無しさん
垢版 |
2025/10/09(木) 07:09:23.25ID:l11UH+Dz
どうもお役に立てなかったようです
2025/10/12(日) 17:55:59.44ID:E5GJpTM9
987です
前回のプログラムは開発途中でもう残っていないのですが、EAccessViolationが発生する単純なプログラムで
今日改めてテストして見ました所Lazarus/FPCとも正しくエラー行を表示してくれました
お騒がせしてすみませんでした
前回は一体何だったのだろうか・・・

{$APPTYPE CONSOLE}
program test;
uses SysUtils;
var
 p: PInteger;
begin
 Writeln('Start');
 p := nil;
 p^ := 123;
 Readln
end.
990デフォルトの名無しさん
垢版 |
2025/10/13(月) 09:39:19.36ID:Jdg3EAgT
コンソールアプリの返り値が1なのでエラーだったと思いますが
書き込まれたソースですと返り値が指定されていません
よって返り値は不定なのでその度に結果が異なると解釈できないことはありません。
なので返り値を明示的に指定してその結果を比較されていかがでしょうか? 
 
以下はgrokに聞きました

Q)pascal(free pascal)を使用して、windows(dos)上で動作するコンソールアプリを作成します
そのコンソールアプリの返り値を指定するにはどうしたらいいですか

A) by grok
Free Pascalでは、プログラムの終了コードをHalt手続きやExitCode変数を使用して設定できます。以下に具体的な手順とサンプルコードを示します。

<<sample1>>
program ExitCodeDemo;
begin
WriteLn('プログラムが正常に終了しました');
Halt(0); // 終了コード 0 を返す
end.

<<sample2>>
program ExitCodeDemo;
begin
WriteLn('プログラムが実行中...');
ExitCode := 42; // 終了コード 42 を返す
end.
2025/10/14(火) 19:14:39.90ID:QTjOk1jf
>>990
989ですが、今となっては当初デバッガが動作しなかった理由はわかりません
その後簡単なテストプログラムで問題なくエラー行は検知されました
ちなみにFree Pascalのプログラムではエラーの時に返り値を設定する以外に特に返り値の指定は不要で、
正常終了すればゼロになります
992デフォルトの名無しさん
垢版 |
2025/11/12(水) 01:21:59.39ID:oQstHhSD
Lazarus 4.4が出ました
https://forum.lazarus.freepascal.org/index.php/topic,72707.0.html
2025/11/12(水) 09:15:18.55ID:JDphJLx0
バージョンアップする必要性を感じなくなって2.2.4のまま使っている
fpcはunicode不完全対応の3.2.2でずっと変わらないし過去作成したプログラムを修正する必要が発生するかもしれないのもいやだしね
レスを投稿する

レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況