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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2009/12/25(金) 02:46:18
(クロス)オープンソースコンパイラ FreePascal [i386/68K/PPC/ARM/SPARC]
http://www.freepascal.org/

オープンソース開発ライブラリ等 [IDE/GUI環境 Lazarus]
http://www.lazarus.freepascal.org/

FreePascal/Lazarusのメーリングリスト(Pascalにホエロ!)
ttp://www.freeml.com/lazarus

Q:これで作ったソフトは自動的にGPLになるの?

A:制限付き LGPL だから、自分が作ったソースは GPL にする必要は無い
例え FreePascal 付属のライブラリにリンクしていても GPL にはしなくて良い
http://www.freepascal.org/faq.html#general-license

0903デフォルトの名無しさん2022/01/08(土) 18:10:12.68ID:+pfXixh3
Lazarus Release 2.2.0 - January 05, 2022, 11:57:19 pm

0904デフォルトの名無しさん2022/05/15(日) 19:08:49.28ID:/ysfaPE8
program MyProgram(input, output);
のようにプログラム名にパラメーターが付いたコードを見かけました。
Pascalの方言なのでしょうか?
それともFree Pascalでも見られるものでしょうか?

0905デフォルトの名無しさん2022/05/22(日) 12:24:51.68ID:Z7pvlCmg
>>904
質問に質問で返してすみませんが、あなたは

void int main( int argc, char *argc[])
はcの方言だと思いますか?
それともGNUCでも見られるものでしょうか

0906デフォルトの名無しさん2022/05/22(日) 13:54:17.54ID:AZNH+fge
void int mainってコンパイルエラーでは?

0907デフォルトの名無しさん2022/05/22(日) 22:03:25.27ID:Z7pvlCmg
>>906
しまった(苦笑

0908デフォルトの名無しさん2022/05/24(火) 12:07:51.00ID:/3mhcllS
Lazarus Release 2.2.2 - May 19, 2022, 09:26:08 am

0909デフォルトの名無しさん2022/05/26(木) 19:00:16.04ID:9mlaCQEY
本家のForum にレジストしても確認メールが届きません。
どうしたものでしょうか。
迷惑メールとかも見ましたし再送信とかも試しましたががまったく来ません。

0910デフォルトの名無しさん2022/05/26(木) 19:36:53.93ID:MuCsRUFl
抵抗されてるのかもね

0911デフォルトの名無しさん2022/09/30(金) 02:46:22.20ID:NV97RnvW
Lazarus Release 2.2.4 - September 28, 2022, 10:08:10 am

0912デフォルトの名無しさん2022/10/04(火) 15:58:36.29ID:i5Up1tp0
Windowsアプリの速度は改善したの?

0913デフォルトの名無しさん2022/10/18(火) 09:21:39.14ID:muJtZzp1
Lazarus製のアプリケーションのexeのショートカットをつくって実行時の
大きさを最小化としても最小化で起動しないのだがどうすればいいのかな

0914デフォルトの名無しさん2022/10/19(水) 00:06:57.42ID:imuHRl6B
>>913
Delphi ではプロジェクトファイルをごにょごにょしてたので
Lazarus では多分 .lpr ファイルにごにょごにょ

Application.CreateForm(TForm1, Form1);
//ここに↓これを入れて判断
if CmdShow = SW_MINIMIZE then Application.Minimize;
Application.Run;

0915デフォルトの名無しさん2022/10/19(水) 09:56:54.13ID:ozKA7OU5
>>914
あいにく動作しませんでした

メインフォームのOnCreateイベントハンドラーに
case CmdShow of
SW_SHOWMINNOACTIVE: WindowState := wsMinimized;
SW_SHOWMAXIMIZED: WindowState := wsMaximized;
end;
と書いたらうまくいきました

0916デフォルトの名無しさん2022/10/20(木) 08:50:49.47ID:rL6ktv6z
AmazonにKindle本として佐々木優という人が書いたLazurus・Free Pascalのセルフ出版の
本が何冊かのっている(読み放題のKindle Unlimited対象)
役に立つかどうかは別にして日本語の本というのはめずらしいかも

0917デフォルトの名無しさん2022/10/20(木) 10:06:08.31ID:7LO4Bhg7
>>916
応援の意味で何冊か買いました。Unlimited もいつ対象外になるかわからんし。

0918デフォルトの名無しさん2022/10/22(土) 14:34:30.76ID:4hbuG1Ym
UbuntuでC++Builderを導入できなかったのでDelphiの本読んで勉強してます。

思い通りに動くと楽しいです。

0919デフォルトの名無しさん2022/11/15(火) 14:25:03.73ID:ktesV7KK
サンプルの xmlstreaming を参考にして設定を書き出す処理を作ってます。
TComponent を継承して設定データのクラスを作ろうとしているんだけど、
その中にさらに TComponent 派生クラスを入れ子にすると、その項目が書き出されない。
入れ子のクラスを TPersistent 派生にすると書き出されるんだけど、項目名が
ドットで区切られた形でかなり違和感。
xmlstreaming の中でコメントアウトされている Form (Self) を書き出す処理を有効にしてみると、
入れ子のデータは「children」タグに囲われていい感じで出力されているんだけど、
どうやればできるんでしょうか?

0920デフォルトの名無しさん2022/11/15(火) 19:22:03.37ID:hFwj798Q
>>919
下記を付け加えると入れ子のデータも書き出された
読み込みが正常に行われるかは検証してない

procedure TMyComponent.GetChildren(Proc: TGetChildProc; Root: TComponent); //override;
var
i: Integer;
begin
if Self = Root then begin
for i:=0 to ComponentCount-1 do begin
Proc(Components[i]);
end;
end;
end;

0921デフォルトの名無しさん2022/11/15(火) 21:41:42.06ID:hFwj798Q
Rootってなんだろう?と思って書いてたコードが入ってた

procedure TMyComponent.GetChildren(Proc: TGetChildProc; Root: TComponent); //override;
var
i: Integer;
begin
for i:=0 to ComponentCount-1 do begin
Proc(Components[i]);
end;
end;

0922デフォルトの名無しさん2022/11/15(火) 22:24:52.25ID:1BrVYPVp
>>921
ありがとうございます。書き出せました。
wiki のストリーミングのところ読んでもそんなこと書いてなかったけどな。
TWinControl に実装されてるから Form ならちゃんと書き出されたんですな。
人をハメようとしてるとしか思えないな。検索しても、英語の情報でも全然ないし。
とにかく、ありがとうございました。

0923デフォルトの名無しさん2022/12/14(水) 20:13:02.80ID:WtdZKbBc
これは壮観。過去50年以上にわたる「プログラミング言語の人気の変遷」をアニメで紹介するムービー【やじうまWatch】 - INTERNET Watch
s://internet.watch.impress.co.jp/docs/yajiuma/1463502.html

pascalって人気あったんだね

0924デフォルトの名無しさん2022/12/31(土) 11:06:52.98ID:J7CUMtxq
インクリメンタルサーチの候補表示に TListBox を使っていて、
候補数が一定以下の場合は、数に合わせて ListBox の高さを調節したいと思っています。

Windows の場合は ItemHeight を使えばうまくいくようなのですが、Linux だと 0 が返ってきて
使えません。ほかにも ItemRect(0).Height の値も 0 ではないけど全然足りないし、
フォントの高さから計算できるかと思ったけど、同じ高さでもフォントが違うと
ListBox の項目の高さが微妙に違ったりしてこれもダメっぽい。

描画しているんだからどこかに情報があるんだと思うんですが、どこにあるんでしょう?
そもそもアプローチが間違っている?

0925デフォルトの名無しさん2023/01/07(土) 18:23:08.22ID:rN0cn1Ph
TOpenDialogのTitleプロパティがデフォルトの「ファイルを開く」のままOpenDialog1.Executeを実行すると、表示されたダイアログのキャプションが"Open existing file"と英語で表示されてしまいます。

これはLCLStrConstsユニットで rsfdOpenFile = 'Open existing file'; と定義されているのが原因のようですが、これをlclstrconsts.ja.poの「ファイルを開く」に置き換える方法を教えてください。

0926デフォルトの名無しさん2023/01/09(月) 20:44:35.21ID:uyXkOmJj
>>925
プロパティの設定が効かないってことかな?

0927デフォルトの名無しさん2023/01/10(火) 09:05:22.16ID:GH/EYK1c
>>926
オブジェクトインスペクタでTitleを「画像ファイルを開く」など「ファイルを開く」以外にすればTitleがダイアログのキャプションに反映されます。
また、コードでOpenDialog1.Title := 'ファイルを開く'; を実行すればキャプションもそうなります。
ただ、コードを書かずにオブジェクトインスペクタで「ファイルを開く」を設定するだけだと「Open existing file」が表示されるというのが今回の問題です。

この症状はTDBNavigatorでも確認できていて、Hintsプロパティにはデフォルトで日本語のヒントが設定されているのにもかかわらず、実行すると英語のヒントが表示されてしまします。
その他MessageDlgのボタンが「はい」「いいえ」ではなく「Yes」「No」なのも同じ原因だと思います。

0928デフォルトの名無しさん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ユニットの不具合のせいじゃないのかなあ

0929デフォルトの名無しさん2023/01/10(火) 19:51:57.80ID:GH/EYK1c
>>928
ありがとうございます。
lclstrconsts.jp.poにリネームする方法で試して無事日本語で表示されました。
TDBNavigatorのヒントとMessageDlgのボタンも同様です。

0930デフォルトの名無しさん2023/03/13(月) 17:17:11.04ID:0W6r0BpQ
Lazarus Release 2.2.6 - March 09, 2023, 10:38:09 am

0931デフォルトの名無しさん2023/03/17(金) 15:14:21.65ID:O04jxkPS
軽くていいな。ゲームエンジンなんかもあるようで欧州では使い手多いのか?

0932デフォルトの名無しさん2023/04/29(土) 13:16:43.69ID:SIZVO/Fn
https://www.tiobe.com/tiobe-index/

TIOBE Indexで常に10位前後を維持してるDelphi系のPascal言語もスゴいよな
信じがたい快挙

0933デフォルトの名無しさん2023/05/05(金) 03:07:31.72ID:PeDEzH1k
Windowsアプリを作ったら、とても遅いような気がするんだけど、まだ改善してないのかな?

0934デフォルトの名無しさん2023/05/07(日) 13:41:00.25ID:eh+8xa5M
>>933
どんなプログラムを書いてどの言語と比較して遅いのかを書かないと答えは無理
C++/C言語と同等の速度にはならない
スクリプト言語よりは高速

0935デフォルトの名無しさん2023/05/07(日) 15:52:40.36ID:FtrFphzu
>>933
他のプログラムはサクサク動くのにお前の作ったプログラムだけが遅いという場合は、
多分お前のプログラムの何かがおかしい。

0936デフォルトの名無しさん2023/07/12(水) 06:19:48.60ID:I6ZMSQN0
Lazarus Release Candidate 1 of 3.0 - July 03, 2023, 02:10:30 pm

0937デフォルトの名無しさん2023/07/15(土) 21:28:05.69ID:2FiMr/gw
なんか知らんけど山下って人に金払わんでも専ブラ作っていいみたくなったらしいから
Lazarusでなんか作るチャンスなんじゃねw

0938デフォルトの名無しさん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.

0939デフォルトの名無しさん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.

0940デフォルトの名無しさん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.

0941デフォルトの名無しさん2023/12/24(日) 12:29:21.36ID:CLUuqAoM
>>937
Siki 以上のものをサクッと作れる気がしねー……

0942デフォルトの名無しさん2024/02/09(金) 17:03:32.99ID:LEmbefGZ
元となったPascalの開発者が失踪したそうです

0943デフォルトの名無しさん2024/02/11(日) 15:58:19.39ID:8Y1XXxgX
マジっすか

0944デフォルトの名無しさん2024/02/13(火) 17:18:01.13ID:kntdml6t
↑誤訳

0945デフォルトの名無しさん2024/02/14(水) 17:08:51.66ID:S7FsWUpF
Pascal言語の作者が亡くなった話?

0946デフォルトの名無しさん2024/02/14(水) 18:24:17.69ID:vFlu/nl/
N. Wirth 死去 2024/1/1 89歳.R.I.P.

失踪じゃないよ.逝去だよ.

0947デフォルトの名無しさん2024/02/15(木) 13:20:05.14ID:YdqWfEse
Pascalの始祖が伝説になっただけで開発者はご存命

0948デフォルトの名無しさん2024/02/15(木) 20:39:21.53ID:mXBES2ti
なんじゃいヴィルト死去の話やったんかいヽ(`Д´)ノ

0949デフォルトの名無しさん2024/02/15(木) 21:10:08.91ID:+1FkxmBK
passed away(消え去った)と書いてあったのでどこへ行ったのかと思った

0950デフォルトの名無しさん2024/02/15(木) 21:11:56.18ID:zblp804r
>>949
どの記事?URL教えて!

0951デフォルトの名無しさん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.

0952デフォルトの名無しさん2024/02/16(金) 21:56:16.38ID:nKsaIfEz
passed awayは日本語でいう亡くなったみたいに、丁寧な言い方なんだな
勉強になった

0953デフォルトの名無しさん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.

新着レスの表示
レス数が950を超えています。1000を超えると書き込みができなくなります。
レスを投稿する