X



【Delphi互換!?】FreePascal/Lazarus その2【GPL】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0774デフォルトの名無しさん
垢版 |
2018/07/04(水) 18:16:17.28ID:97Pks666
Haiku OS に出現したようだ。
0775デフォルトの名無しさん
垢版 |
2018/07/04(水) 21:45:10.13ID:gFgZc5FG
CJX
0781デフォルトの名無しさん
垢版 |
2018/07/22(日) 23:35:56.43ID:RmI5XlNT
最近のObjectPascal実装でそこそこ使えそうなのってこんなところ?
Delphi
FreePascal / Lazarus
Oxygene
PascalABC.NET / PascalSharp
0783デフォルトの名無しさん
垢版 |
2018/08/12(日) 08:56:32.18ID:01FM0bjf
いつの間にやら Typhon なんてのが出てるやん。
って思ったら、2015 年にすでに話題に出てた orz
日本語情報が少ないね。
0787デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:18:03.09ID:siwjj9vh
Lazarus 1.8.4でGUIアプリを作ろうとしているのですが、フォームデザイナーと実行後のアプリの大きさが違います(高さ、幅を400、400にしても600
、600くらいになります)
何故だか分かる方はいますか?
0788デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:30:07.42ID:TV+gvCwn
.lfmを開く
HeightとWidthを希望する値に変える
保存する
Lazarus IDEをいったん閉じる  ←たぶんこれ
xx.lpiまたはxx.lprをダブルクリック
構築
0789デフォルトの名無しさん
垢版 |
2018/08/19(日) 11:33:33.62ID:Q1IqUiGR
書き込みありがとうございます。上記試してみましたが変わりませんでした。どうもWindows10のディスプレイの拡大と関係があるみたいで、200%だとデザイナーの2倍の大きさになります。100%だとデザイナーと同じ大きさで実行されました。Lazarusのバグなんだと思います
0790デフォルトの名無しさん
垢版 |
2018/08/19(日) 17:17:53.80ID:IKSANLqZ
高解像度ディスプレイで倍率を変える設定がWindowsにあってそれで色々迷惑することがある
0793デフォルトの名無しさん
垢版 |
2018/08/20(月) 22:06:35.15ID:1lEf9bGj
>>792
プロジェクトオプションのLCLスケーリング使用でデザイナーと同じ大きさで実行されました。ありがとうございます
0795デフォルトの名無しさん
垢版 |
2018/10/17(水) 05:04:58.72ID:EXIicAKO
ネイティブコードにコンパイルできて
IDEでポトペタできて
オブジェクト指向できて
現在も開発が続いてる
無料な言語・開発環境

てFree Pascal以外にありますか?
0796デフォルトの名無しさん
垢版 |
2018/10/17(水) 07:03:04.02ID:Q2/lCz/X
>>795
今はJavaScriptみたいなスクリプトか、
Javaみたいな仮想マシン用コンパイラが人気なので
ネィティブコードにコンパイルできる言語自体がそもそも少ないだろうな。
他の条件と合わせると、おそらくないと思う。
0797デフォルトの名無しさん
垢版 |
2018/10/17(水) 08:37:31.00ID:gKk8VB97
ネイティブコードにこだわる理由がわからない。
本当にネイティブコードが必要なシビアなことをしている人が
こんなところで尋ねるとは思えない。
0798デフォルトの名無しさん
垢版 |
2018/10/17(水) 08:41:03.62ID:4yuTjZOF
>>795
Windowsに限らなければMac/IOSのObjective-C/Swiftが生き残ってる

iPhoneが流行ったのはJavaが主流だったガラケー/他社スマートフォンに比べて
高速(当時)なのも一因だぜ?
0799デフォルトの名無しさん
垢版 |
2018/10/17(水) 08:54:29.89ID:4yuTjZOF
後はQtも一応そうかも
VCLや(Objective-C/Swiftの)CocoaがGUIオブジェクトをシリアライズしたリソースファイルを
アプリケーションに同梱する形式なのに対して
あっちは最終的にC++の生成コードに変換するという違いはある
0800デフォルトの名無しさん
垢版 |
2018/10/17(水) 09:03:40.59ID:Q2/lCz/X
>>797
こんなとことは失礼な。
でも、こんだけ無料で優秀な言語やIDEが配布されている世で
Delphiの会社はよくやってられるなぁとは思う。
0804デフォルトの名無しさん
垢版 |
2018/10/18(木) 07:55:59.32ID:h8m50dIC
kotlin のネィティブ対応がよくなってきたらしいけど
ポトペタできるのかな?
Lazarus の kotlin 版ホスィ
0805デフォルトの名無しさん
垢版 |
2018/10/19(金) 12:17:07.83ID:jQ8EJjtV
>>802-803
XRCed最強
0816デフォルトの名無しさん
垢版 |
2019/02/06(水) 05:01:13.57ID:xrz7pH3/
今日、Lazarus 2.0.0 がリリースされたってよ。
0817デフォルトの名無しさん
垢版 |
2019/02/06(水) 07:31:28.76ID:2MpR9+RV
昔Lazarusインストールしたらアンインストールできなくなったらから使うのやめた
0818デフォルトの名無しさん
垢版 |
2019/02/06(水) 10:28:15.52ID:+qagyc5o
金の切れ目が縁の切れ目
0820デフォルトの名無しさん
垢版 |
2019/02/28(木) 08:21:58.12ID:J0qaWP9D
インストール先は C:\lazarus\2.0-3.2 とかにして、
起動するときは、
C:\lazarus\2.0-3.2\lazarus.exe --primary-config-path=c:\lazarus\2.0-3.2-config
としてconfig ファイルの格納先を個別に指定するのがおすすめ。

もちろん、インストーラが勧めてくる旧バージョンのアンインストールを実行しないこと。
0822デフォルトの名無しさん
垢版 |
2019/03/09(土) 22:26:05.47ID:MctiKVi6
Write once, run any architectureを目指すFree Pascalはもっと注目されていい
0828デフォルトの名無しさん
垢版 |
2019/05/07(火) 22:10:10.01ID:WYmdE2fC
久しぶりにLazToApkをバージョンアップしたら、ビルドの仕方が変わっていて使い方がわからず撃沈。
OldVersionもHPにないし困ったなあ。
昔のファイルがあればいいけどなあ、ハードディスク内を探してみるか。
0831デフォルトの名無しさん
垢版 |
2019/05/09(木) 07:23:31.91ID:riNy8fVT
この機会に手動ビルドを研究したほうがよい。
最近やってないけど大した手間じゃない。
0832デフォルトの名無しさん
垢版 |
2019/05/09(木) 07:27:45.97ID:riNy8fVT
巷によくある、 C++ で作った .so ファイルを apk にする手順を
Laz で作った .so ファイルと読み替えるだけ。
0833デフォルトの名無しさん
垢版 |
2019/06/17(月) 21:13:48.03ID:7jkihj6t
久々に使い始めたんだけど、ブレークした時にクラスのインスタンスの内部データって見られないんだっけ?
Integer とかの単純な変数は見られるんだけど、例えば TStringList のインスタンスに登録されてる文字列とか。
昔作ったプログラムを見てるんだけど、どうやったか覚えてない。
0835デフォルトの名無しさん
垢版 |
2019/07/02(火) 18:35:04.45ID:RhWJXLyF
TpairSpitterの境界線の上に文字を置きたいのですが、どうしたら良いでしょうか。
境界線のつまみを隠したいのと文字を置きたいのが理由です。
アイデアをください。
0837デフォルトの名無しさん
垢版 |
2019/07/05(金) 21:07:04.96ID:ypzj5uvi
>>836
labelでもpanelでもいいんだけど境界線の上に置きたい。
置こうとしても、隠れてしまって前面に出せないのでどうしたらいいかわからない。
0838デフォルトの名無しさん
垢版 |
2019/07/05(金) 21:28:30.42ID:BC1QPJi0
当てずっぽうだけどParentをTpairSpitterにすれば実行時には上になる?ならないか?
0839デフォルトの名無しさん
垢版 |
2019/07/06(土) 09:03:58.53ID:nIvQZNy6
>>838
コンポーネントを継承してTMyPairSplitterみたいなもの作って
描画部分に手を加えたほうが応用も効くしソースもスッキリすると思う。
0841デフォルトの名無しさん
垢版 |
2019/07/31(水) 07:36:45.82ID:KjSExRFS
>>840
be planning やん。
be planning は便利でよく使う構文だからきっちり使えるようにしといたほうがいい
0845デフォルトの名無しさん
垢版 |
2019/11/02(土) 17:36:12.44ID:zoLz180R
Lazrus Release 2.0.6 - November 01, 2019, 12:33:13 pm
0847デフォルトの名無しさん
垢版 |
2020/02/27(木) 21:04:57.36ID:re/ORI54
最近Lararus使い始めたんですが、普通に使えるのでびっくりしました。
Delphiで演算子オーバーロードとか使いまくってるソースも問題ないし。
演算子オーバーロードなんて昔は「ソースが一読ではわかんなくなるから反対」なんて思ってたのに。
0850デフォルトの名無しさん
垢版 |
2020/03/06(金) 10:30:39.19ID:50MIG5ia
C#ですら数kbだからな
どうせ要らんもんリンクしてるんだろ
0853デフォルトの名無しさん
垢版 |
2020/03/06(金) 22:00:00.90ID:3lybco/N
デバッグ情報含んでるからストリップとスマートリンク有効にしろって昔からマニュアルに書いてあるぞ
UPXまでは別にやらんでもいいと思う
0857デフォルトの名無しさん
垢版 |
2020/03/07(土) 19:47:00.25ID:zDuQOlXy
Lazarus 側の言い分としては、最初からいろいろリンクしてるから、
これ以降機能追加してもサイズの増加は緩やかということらしいけど、
使いもしない機能リンクしないでほしいわな。
0860デフォルトの名無しさん
垢版 |
2020/03/24(火) 05:32:35.18ID:oNI0kRN8
>>859
書き方(翻訳の仕方?)のせいかもしれんが、使うからこそ組み込まれるのだよ。
コマンドラインアプリや、Windows API で自前のメインウィンドウだけしかないような
アプリを作って試してみればわかるが数キロバイトになる。
0861デフォルトの名無しさん
垢版 |
2020/03/24(火) 07:50:05.21ID:oNI0kRN8
英語版見てみてみましたが、最新版はかなり内容が違う気がします。
英語版を参考にしたほうが良いと思います。
0864デフォルトの名無しさん
垢版 |
2020/03/30(月) 21:35:58.65ID:G4pdB0Ew
>> 863
Free Pascal Compiler
0866デフォルトの名無しさん
垢版 |
2020/04/03(金) 07:39:20.81ID:ZRX+L3ok
今月新しいバージョンが出っぽいね
We are planning the next release: Lazarus 2.0.8 - April 02, 2020, 10:43:37 am

The Lazarus team has scheduled
Lazarus 2.0.8 for April 2020 (estimated 14th to 20th)
0867デフォルトの名無しさん
垢版 |
2020/04/03(金) 07:51:25.94ID:hz9zQM0o
コンパイラは3.0.4のままだけどね
FreePascalのリリースがまだかかりそうだから急遽決めたようだね
本来なら次はLazarus 2.2の予定だったみたい
0870デフォルトの名無しさん
垢版 |
2020/04/18(土) 12:59:34.39ID:VYQrLT4k
>>855
外字って、Unicodeにも私用領域ってあるよな。まああくまでも私用領域であって
外字専用に使うための領域ってわけではないが、そう使っても良いんだよな。
0871デフォルトの名無しさん
垢版 |
2020/06/10(水) 17:57:11.63ID:syGP3Y23
画面拡大してるとHI-DPI有効にしないとダイアログがでかくなるんすね。
はまりましたわ。
0874デフォルトの名無しさん
垢版 |
2020/07/08(水) 16:42:25.19ID:EmKCEK3t
FPC3.2はDynamicArrayに大分手が入ったみたいなので、この機会に不定長のビットマップ作成の
手持ちライブラリ書き換えてみるかな。
というか素直にFCL使えって話だが、FCLってFPCのコマンドラインアプリでも使えるの?
0875デフォルトの名無しさん
垢版 |
2020/07/08(水) 23:32:55.82ID:Omm2EhW3
今の1個前のバージョンでLazarus&FPCの現状はどんなもんかと以前試してみたけど
10年前のDelphiにも遠く及ばない出来だったな
コンパイル速度、デバッグモードの開始、終了が遅く(終了からIDEの切り替えが特に遅い)
フォーム無しのプログラムでメッセージダイアログを出すとコマンドプロンプト画面が出る始末
今も改善されていないんだろうなぁ
0876デフォルトの名無しさん
垢版 |
2020/07/09(木) 22:35:37.41ID:vgKD2Erb
ソースコードもあるし、別に本家にご注進してもいいじゃん。
なんでそこで終わらなくても良くない?
0878デフォルトの名無しさん
垢版 |
2020/07/13(月) 19:02:02.10ID:40nMIxb+
Lazarus Release 2.0.10 - July 11, 2020, 10:55:58 am

もうリリースされたって書き込まれていたけど一応。
0879デフォルトの名無しさん
垢版 |
2020/07/25(土) 21:12:59.00ID:U1cr0g+B
TMemo の表示領域を得たいのですが

var
R: TRect;
begin
R.Left := 0; R.Top := 0; R.Right: = 0; R.Bottom : =0;
Memo1.Perform(EM_GETRECT, 0, Longint(@R));
ShowMessage(Format('Left=%d, Top=%d, Right=%d, Bottom=%d', [R.Left, R.Top, R.Right, R.Bottom]));
end;

を実行すると Delphi 7 だと正しい値が得られるのに Lazarus 2.0.10 だと
Left=0, Top=0, Right=0, Bottom=0
になります。

正しい値を得る方法を教えていただけませんでしょうか。
0881デフォルトの名無しさん
垢版 |
2020/07/26(日) 11:23:45.22ID:q3dJt1F9
>>880
ありがとうございます。
早速試してみたところ上手くいきました。
0882デフォルトの名無しさん
垢版 |
2020/07/28(火) 07:26:11.04ID:YeCqnbYl
せっかくのオープンソースだし、
不具合っぽいのは本家に報告してあげるとよいよ
0883デフォルトの名無しさん
垢版 |
2020/08/23(日) 00:18:52.03ID:BDUM7k5s
Delphi6でさんざん書いてたのに長いことマイコンのほう(ArduinoやそのほかのC)ばっかりやってたからすっかりPascal忘れてるw
久々にPCのアプリ書こうと思っってLazarusはじめたらforやifですらあれどうだっけ?ってなってるよ
0884デフォルトの名無しさん
垢版 |
2020/11/05(木) 00:09:00.98ID:8Msi6NAs
TChartのチュートリアルを和訳してみたけどWikiに追加する方法がよくわからない
0885デフォルトの名無しさん
垢版 |
2020/12/02(水) 23:28:05.83ID:r6aZV9ch
FreePascalのXMLチュートリアル、サンプルのしょうもないミスを修正したいが
どうすりゃいいんでしょうか。
まぁPascal使うような極まりきった方々は別にミスあっても自分で修正するでしょうけど・・
0886デフォルトの名無しさん
垢版 |
2020/12/02(水) 23:30:01.43ID:r6aZV9ch
マルチスレッドでレイトレーシングアプリを書いたが、LinuxでもWindowsでも
普通に動くんでビックリしましたわ。
マルチスレッド絡みだからOSとかの癖とかで差異があって大変だと思ってたので。
ちゃんとライブラリで差異を吸収してんですねぇ。
0887デフォルトの名無しさん
垢版 |
2020/12/02(水) 23:31:33.19ID:r6aZV9ch
あまり大声で言うべきではないでしょうが、LazarusのGTK3サポート、
まだアルファ版というのがちょっと切ない。
自分の作るしょっぱいアプリだったらFreePascalのGTK3バインディングで
十分だろうからそっちから攻めるべきか。
0888デフォルトの名無しさん
垢版 |
2020/12/23(水) 15:41:35.78ID:lutaimDh
ざっくり調べるとQtバインディングの方はQt6が最新でQt5はサポートしているということか。
であれば現状自分のしょっぱいLinuxアプリはQt5バインディングにしといた方が
良いかもしんないにゃー。
別にGTK2でも全く問題ないのですが・・・・
0889デフォルトの名無しさん
垢版 |
2020/12/23(水) 16:37:45.86ID:lutaimDh
しかしGTK4が出てGTK2はEOLになった訳だが、ソースは公開されてるから永遠に使えるし、
別に自分の作るしょっぱいアプリなら見栄えとかも気にならない。
そりゃPython2が消えるのに時間かかるわけですわ。
0890デフォルトの名無しさん
垢版 |
2020/12/25(金) 22:27:48.26ID:ri6ukwlu
とりあえずlazbuildでlpiファイルを指定してやればコマンドラインでビルド出来るのが
わかった。
これで素直にemacsでのコーディングにチャレンジできますな。
0893デフォルトの名無しさん
垢版 |
2021/01/19(火) 14:59:49.28ID:yIqZdVPk
FAQ見るとシングルウィンドウにするんだー、だからペインドッキングのパッチは
ノーセンキューなんて書いてあるのにねー。

GTK3サポート共々今どんな塩梅なんですかね。
0894デフォルトの名無しさん
垢版 |
2021/01/19(火) 20:51:23.69ID:yIqZdVPk
何を思ったかデスクトップPCをDebian/Linuxに、エディタはemacsでコーディングをしてる。
emacsのデフォルトはgnu-pascalサポートが入ってるのでObjectPascal拡張があると不便。
よくわからんまま、emacs delphi.elで検索かけてgithubにあるopacal.elを入れて
M-x opascal.elとしてみたら普通に動くようです。

そうまでしてなんでemacsで書かねばならんのかわからんのですが・・・
0896デフォルトの名無しさん
垢版 |
2021/02/28(日) 23:10:14.65ID:mKlp/j+j
あ、もう出てたんですね。
リリースノート見る限りバグフィックスが主体であんまし新機能はなさ気な雰囲気ですが
使ってみた方いかがでしょうか。
0897デフォルトの名無しさん
垢版 |
2021/03/09(火) 15:37:27.70ID:l78vZ82J
windows10 で lazarus 2.0.12 を利用していますが、以下のようなコードの2か所で修飾子エラーになります
{MODE Delphi} なら大丈夫なのですが {$mode objfpc} の場合、どのように変更すればよろしいのでしょうか

type
PPHashItem = ^PHashItem;
PHashItem = ^THashItem;
THashItem = record
Next: PHashItem;
Key: string;
Value: Integer;
end;
TStringHash = class
private
Buckets: array of PHashItem;
protected
function Find(const Key: string): PPHashItem;
end;

function TStringHash.Find(const Key: string): PPHashItem;
var
Hash: Integer;
begin
Hash := HashOf(Key) mod Cardinal(Length(Buckets));
Result := @Buckets[Hash];
while Result^ <> nil do
begin
if Result^.Key = Key then <--- この部分が修飾子エラー
Exit
else
Result := @Result^.Next; <--- この部分も修飾子エラー
end;
end;
0900デフォルトの名無しさん
垢版 |
2021/05/22(土) 19:39:35.52ID:WqI2sMHS
3.2.2リリースage
0902デフォルトの名無しさん
垢版 |
2021/10/26(火) 21:43:41.35ID:8mnatHSz
Delphiのライセンス切れてるし、Community Editionは毎回新バージョンに更新しないといけないから
これを機にFreePascalにしてみるか
貧弱なIDEはVSCodeで補えそうだし
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でも見られるものでしょうか
0909デフォルトの名無しさん
垢版 |
2022/05/26(木) 19:00:16.04ID:9mlaCQEY
本家のForum にレジストしても確認メールが届きません。
どうしたものでしょうか。
迷惑メールとかも見ましたし再送信とかも試しましたががまったく来ません。
0910デフォルトの名無しさん
垢版 |
2022/05/26(木) 19:36:53.93ID:MuCsRUFl
抵抗されてるのかもね
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対象)
役に立つかどうかは別にして日本語の本というのはめずらしいかも
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の「ファイルを開く」に置き換える方法を教えてください。
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のボタンも同様です。
0931デフォルトの名無しさん
垢版 |
2023/03/17(金) 15:14:21.65ID:O04jxkPS
軽くていいな。ゲームエンジンなんかもあるようで欧州では使い手多いのか?
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
他のプログラムはサクサク動くのにお前の作ったプログラムだけが遅いという場合は、
多分お前のプログラムの何かがおかしい。
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
マジっすか
0946デフォルトの名無しさん
垢版 |
2024/02/14(水) 18:24:17.69ID:vFlu/nl/
N. Wirth 死去 2024/1/1 89歳.R.I.P.

失踪じゃないよ.逝去だよ.
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を超えると書き込みができなくなります。

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