【Delphi互換!?】FreePascal/Lazarus その2【GPL】
レス数が950を超えています。1000を超えると書き込みができなくなります。
>>679
これ電話番号とか入れるの嫌なんだけど。 >>679
これって2個とも同じexeじゃね?
どういうこと? まだインストールしてないけど
インストールキーで機能が決まるんじゃないかな Windows.Beep(p1, p2);
これ使えないのか? どうして?
Buttonが今日は、真っ白の文字無しで表示? 昨日までは何ともなかったのに?
分かる方教えて? >>708
Windows.beep(P1,P2)
うちでは使えてますがねえ
周辺のソース晒したら? こんちには
lazarusのwindows32bit版1.6を使っているのですが
1.codeeditorでマウスクリックすると
その位置までにスペースとかを補って文字入力カーソルを位置設定してまう機能をoffにしたい
2.タブで半角スペース4文字分インデントしたい(pascalは2文字分が伝統?)
3.行末でenterすると次の行が同じ数だけタブで補われて入力開始が出来る様にしたい
tool-option-editor
辺りにありそうな気がするのですが
適当にクリックして設定しても1.2.3.みたいに上手く設定出来ません
何処を設定すれば出来るのか教えてもらえませんでしょうか? 1.ツール→オプション→エディタ→一般→行末までスクロールをオフ
2.ツール→オプション→エディタ→一般→タブとインデント→タブ幅
3.は自動インデントの場合はタブにしたいの? 今月のTips
case 文字列型 of
文字列定数1: ほにゃらら;
文字列定数2: ほにゃらら;
文字列定数3: ほにゃらら;
end
が最新のLazarus(FPC3.0)でできるようになったって知ってた? >715さんどうもです
1.2.は言われた方法で上手くいきました
3.は715さんの言われた通りです
tab tab readln();
みたいに入力した後にenterを押した後
次の行が
tab tab 入力カーソル
みたいな状態にしたい
という事です
今はenter後の次の行が
space space space space space space space space 入力カーソル
みたいにスペースで補われてしまいます
新規行が常にタブで段落を構成するか
前の行に倣うようにしたい
という感じです
それとコンパイルエラーが出た時に表示されるmessagebox欄で
4.表示されるコンパイルエラー説明文字が切れて表示されてしまうのですが
これは環境によるみたいな感じなのでしょうか?
IDE自体は日本語設定に切り替えてフォントはMS 明朝にしているのでその辺りで上手くいって無いのでしょうか?
5.コンパイルエラー内容が切れて見えないので
エラー表示箇所にマウスカーソルを当ててツールチップでエラー内容を見るのですが
表示時間が短いので長くしたいのですが
何処かに設定が有りますか?
お願いします。 3.って「タブをスペースへ」のチェック外さないかぎり無理っぽいよな
タブキー入力したやつは全部タブ文字になるんだろうけど Lazarus 1.6.2 出たのに話題になっていないのね NewPascalがいい感じ
FreePascal/Lazarusの新機能をいち早く使えてDelphi互換を重視しているから移行もしやすい
http://newpascal.org/ 個人的にはUTF16よりもUTF8の方が使い勝手がいいかな >>723
まだよく見てないけど、何が違うのかね。 「新機能をいち早く使えて」という部分は需要あるの?
truncを自己ビルドすらできない人が不安定な開発中版を使うというのは妙な気がするのだが・・・ lazarusってバージョンアップするとき、コンポーネントを再インストールしなければならないのですか? >>727
一応検証してから採用しているんだろう
実績ある組織・人が開発に携わっているし
ジェネリクスがDelphi互換のものを独自実装しているところはありがたい
とはいえ人の褌なのはいかがなものかとは思う 本家にpull requestとかしてるなら理解できないでもないけどな。
どうなんだろ? newpascal ←人柱−本家−安定→ codetyphon
みたいな感じ?(誤解 codetyphonは本家フォーラムで相当叩かれてるけどなw Lazarusのらの字も出てこない徹底っぷりだもんなコード大糞 Youtubeで他人の作った動画をちょっと加工して再アップし
広告収入を稼ぐ人と同じ構図だもんな で、NewPascalのライセンスってFreePascal/Lazarusと同じなの?
どこにも載っていないのだが
初心者としては、正式リリースが遅いFreePascal/Lazarusより
最新機能でzip解凍だけで使えるのは魅力的なのだが >>737
truncを自ビルドすることを勉強したほうが結局は身になるよ FPC version 3.0.2 has been released! [Delphi無料] Delphi 10.1 Berlin の Starter Edition
https://www.embarcadero.com/jp/products/delphi/starter/promotional-download
姓名・メアド・パスワード等々を入力し[今すぐダウンロード]をクリック。
ダウンロードしたファイルを実行すると、登録したメールアドレスにメールが届きます。
そのメールに記載されているインストール番号を使用してインストールを進めます。 バングラディッシュ銀行を突如襲った北朝鮮ハッカーチームLazarus Lazarus Release Canditate 1 of 1.8 Lazarus Release Candidate 2 of 1.8 Lazarus Release Canditate 3 of 1.8 Laztoapkで簡単なアンドロイドアプリを作ろうとしています。
効果音をつけるためにwavファイルを再生したいのですが、
どのコンポーネントを使ってどのように記述したら良いか教えてください。 そもそもアンドロ向けのコンポとかあるのか
freepascalでさえndkラッピングしたライブラリとか無さそう Laztoapkなら一応apkを作れる
写真を表示したり、タイマーを使うくらいはできた
まあでも簡単なものしか作れない 別にLaztoapk使わなくてもdll(.so)をapkにパックするだけだよ。
つまりC++とかと同じ方法でOK。 Lazarus Release Canditate 4 of 1.8 Lazarus Release Candidate 5 of 1.8
(includes RC1 fpc 3.0.4) - October 13, 2017, 08:23:37 pm ftp%3A//ftp.freepascal.org/pub/lazarus/releases/Lazarus%20Windows%2032%20bits/Lazarus%201.8RC5/
ここね リリースされたね
Lazarus Release 1.8 (with FPC 3.0.4) - December 06, 2017, 11:10:46 pm >>758
できるよ。
AnchorDockingDsgn 0.5パッケージを入れてあとは好きなようにレイアウトすればヨロシ。 >>760
おー、ありがとう。
できるようになったような情報を見たんだけど、そんな設定どこにもないなーと思ったら
パッケージが必要だったのね。やっぱまとまってる方がいいな。
設計中のウィンドウは仕方ないか。 >>761
sparta_DockedFormEditorパッケージも入れるとFormも一緒に出来るようになるが,1.6の時にまだバクがあるとforumの書き込みにあったんであまり試してないな。 >>763
あ、こっちもあるのね。
1.6 だからやめておこうかな。1.8 にした時に試してみよう。 Lazarus Release 1.8.2 (with FPC 3.0.4) - February 28, 2018, 04:02:23 pm
いつの間にか出てた。 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
I5Q4S Lazarus Release 1.8.4 (with FPC 3.0.4) - May 22, 2018, 11:39:03 pm FPC3.0.4 引っ張るな〜
開発者が死んだとか? 数年前にくらべればリリース間隔は大分短くなってるよ
無料でやってくれてんだから文句言うもんじゃないよ ところで1.6.4以降のWinCEサポートって腐ってね?もうCEなんて誰もまともにLazarusでは使ってないかw >>772
youみたいに使ってる人がmantisに情報あげてかないと死滅するよ 旧Delphiみたいにウインドウバラバラがデフォルトなのがなあ FreePascalのメリットはLinuxで開発出来るぐらい? >>741
Community Edition出たぞ
Starter Editionはもうゴミ 最近のObjectPascal実装でそこそこ使えそうなのってこんなところ?
Delphi
FreePascal / Lazarus
Oxygene
PascalABC.NET / PascalSharp Oxygeneはいつの間にかフリーのコマンドライン版無くなったのね いつの間にやら Typhon なんてのが出てるやん。
って思ったら、2015 年にすでに話題に出てた orz
日本語情報が少ないね。 PythonのTyponかと思ったぜ
まぎらわしい Typhonは作者が基地外っぽくて常連達からは嫌われてるよ Lazarus 1.8.4でGUIアプリを作ろうとしているのですが、フォームデザイナーと実行後のアプリの大きさが違います(高さ、幅を400、400にしても600
、600くらいになります)
何故だか分かる方はいますか? .lfmを開く
HeightとWidthを希望する値に変える
保存する
Lazarus IDEをいったん閉じる ←たぶんこれ
xx.lpiまたはxx.lprをダブルクリック
構築 書き込みありがとうございます。上記試してみましたが変わりませんでした。どうもWindows10のディスプレイの拡大と関係があるみたいで、200%だとデザイナーの2倍の大きさになります。100%だとデザイナーと同じ大きさで実行されました。Lazarusのバグなんだと思います 高解像度ディスプレイで倍率を変える設定がWindowsにあってそれで色々迷惑することがある あー、それ Visual Studio でもなったな。最近のは直ってるのかな。 >>792
プロジェクトオプションのLCLスケーリング使用でデザイナーと同じ大きさで実行されました。ありがとうございます Lazarus Release Canditate 1 for 2.0 - October 14, 2018, 08:45:13 pm ネイティブコードにコンパイルできて
IDEでポトペタできて
オブジェクト指向できて
現在も開発が続いてる
無料な言語・開発環境
てFree Pascal以外にありますか? >>795
今はJavaScriptみたいなスクリプトか、
Javaみたいな仮想マシン用コンパイラが人気なので
ネィティブコードにコンパイルできる言語自体がそもそも少ないだろうな。
他の条件と合わせると、おそらくないと思う。 ネイティブコードにこだわる理由がわからない。
本当にネイティブコードが必要なシビアなことをしている人が
こんなところで尋ねるとは思えない。 >>795
Windowsに限らなければMac/IOSのObjective-C/Swiftが生き残ってる
iPhoneが流行ったのはJavaが主流だったガラケー/他社スマートフォンに比べて
高速(当時)なのも一因だぜ? 後はQtも一応そうかも
VCLや(Objective-C/Swiftの)CocoaがGUIオブジェクトをシリアライズしたリソースファイルを
アプリケーションに同梱する形式なのに対して
あっちは最終的にC++の生成コードに変換するという違いはある >>797
こんなとことは失礼な。
でも、こんだけ無料で優秀な言語やIDEが配布されている世で
Delphiの会社はよくやってられるなぁとは思う。 まぁ日本じゃMVPがあの程度のツール作って自慢するレベルだからな… >>802
RADじゃなくね?
外部ツールとしてデザイナはいくつかあるみたいではあるけど kotlin のネィティブ対応がよくなってきたらしいけど
ポトペタできるのかな?
Lazarus の kotlin 版ホスィ 型推論付きどこでも変数宣言はいつ実装されるんだろう。 Lazarus Release Candidate 2 for 2.0 - November 01, 2018, 11:00:40 am FPC3.2もそろそろ出すみたいだし、androidやiphone対応が本格化しますな AnchorDockingDsgnで我慢しろ
フォームは別ウィンドウだが sparta_DockedFormEditor でフォームもドッキングできるぞ。 Lazarus Release Candidate 3 for 2.0 - December 24, 2018, 11:32:30 am 今日、Lazarus 2.0.0 がリリースされたってよ。 昔Lazarusインストールしたらアンインストールできなくなったらから使うのやめた インストール先は 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 ファイルの格納先を個別に指定するのがおすすめ。
もちろん、インストーラが勧めてくる旧バージョンのアンインストールを実行しないこと。 --primary-config-pathはlazarus.cfgに書いてる Write once, run any architectureを目指すFree Pascalはもっと注目されていい FormatDateTimeとかでそもそも元号対応してるのWindows版だけなのな たいてい西暦しか使わないね。お役所の書類で仕方なくって感じかな。 Lazarus Release 2.0.2 - April 16, 2019, 10:34:02 am 久しぶりにLazToApkをバージョンアップしたら、ビルドの仕方が変わっていて使い方がわからず撃沈。
OldVersionもHPにないし困ったなあ。
昔のファイルがあればいいけどなあ、ハードディスク内を探してみるか。 この機会に手動ビルドを研究したほうがよい。
最近やってないけど大した手間じゃない。 巷によくある、 C++ で作った .so ファイルを apk にする手順を
Laz で作った .so ファイルと読み替えるだけ。 久々に使い始めたんだけど、ブレークした時にクラスのインスタンスの内部データって見られないんだっけ?
Integer とかの単純な変数は見られるんだけど、例えば TStringList のインスタンスに登録されてる文字列とか。
昔作ったプログラムを見てるんだけど、どうやったか覚えてない。 TpairSpitterの境界線の上に文字を置きたいのですが、どうしたら良いでしょうか。
境界線のつまみを隠したいのと文字を置きたいのが理由です。
アイデアをください。 >>835
TLabelでなくTStaticTextでとかそいうこと? >>836
labelでもpanelでもいいんだけど境界線の上に置きたい。
置こうとしても、隠れてしまって前面に出せないのでどうしたらいいかわからない。 当てずっぽうだけどParentをTpairSpitterにすれば実行時には上になる?ならないか? >>838
コンポーネントを継承してTMyPairSplitterみたいなもの作って
描画部分に手を加えたほうが応用も効くしソースもスッキリすると思う。 Lazarus 2.0.4 - July 25, 2019, 12:17:38 pm >>840
be planning やん。
be planning は便利でよく使う構文だからきっちり使えるようにしといたほうがいい >>841
ごめんなさい。寝ぼけてましたw
リリースされたと思って書き込んでしまったorz Lazarus Release 2.0.4 - August 06, 2019, 03:13:13 pm Lazrus Release 2.0.6 - November 01, 2019, 12:33:13 pm 最近Lararus使い始めたんですが、普通に使えるのでびっくりしました。
Delphiで演算子オーバーロードとか使いまくってるソースも問題ないし。
演算子オーバーロードなんて昔は「ソースが一読ではわかんなくなるから反対」なんて思ってたのに。 文字コードUTF8が標準なのでむしろDelphiより使いやすいと思いますよ。 作ったexeが20メガ超えててなんだかなぁ〜とおもた C#ですら数kbだからな
どうせ要らんもんリンクしてるんだろ C#は知ってても.NET Frameworkは知らなさそう デバッグ情報含んでるからストリップとスマートリンク有効にしろって昔からマニュアルに書いてあるぞ
UPXまでは別にやらんでもいいと思う >>849
小さくする設定もある。
コンパイルしたソフトを小さくするソフトもある。 Lazarus 側の言い分としては、最初からいろいろリンクしてるから、
これ以降機能追加してもサイズの増加は緩やかということらしいけど、
使いもしない機能リンクしないでほしいわな。 使いもしない機能はリンクしないよ。
ソースプリーズ。 >>859
書き方(翻訳の仕方?)のせいかもしれんが、使うからこそ組み込まれるのだよ。
コマンドラインアプリや、Windows API で自前のメインウィンドウだけしかないような
アプリを作って試してみればわかるが数キロバイトになる。 英語版見てみてみましたが、最新版はかなり内容が違う気がします。
英語版を参考にしたほうが良いと思います。 FPC 3.2.0 rc1 始まったで
ttps://forum.lazarus.freepascal.org/index.php/topic,49110.0.html >> 863
Free Pascal Compiler 今月新しいバージョンが出っぽいね
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) コンパイラは3.0.4のままだけどね
FreePascalのリリースがまだかかりそうだから急遽決めたようだね
本来なら次はLazarus 2.2の予定だったみたい >>855
外字って、Unicodeにも私用領域ってあるよな。まああくまでも私用領域であって
外字専用に使うための領域ってわけではないが、そう使っても良いんだよな。 画面拡大してるとHI-DPI有効にしないとダイアログがでかくなるんすね。
はまりましたわ。 しらんまにFPC3.2出てましたね。Lazarusの先っちょも3.2対応だとか! FPC3.2はDynamicArrayに大分手が入ったみたいなので、この機会に不定長のビットマップ作成の
手持ちライブラリ書き換えてみるかな。
というか素直にFCL使えって話だが、FCLってFPCのコマンドラインアプリでも使えるの? 今の1個前のバージョンでLazarus&FPCの現状はどんなもんかと以前試してみたけど
10年前のDelphiにも遠く及ばない出来だったな
コンパイル速度、デバッグモードの開始、終了が遅く(終了からIDEの切り替えが特に遅い)
フォーム無しのプログラムでメッセージダイアログを出すとコマンドプロンプト画面が出る始末
今も改善されていないんだろうなぁ ソースコードもあるし、別に本家にご注進してもいいじゃん。
なんでそこで終わらなくても良くない? 2.0.10 アナウンスはまだだけどsouceforge で公開されたね Lazarus Release 2.0.10 - July 11, 2020, 10:55:58 am
もうリリースされたって書き込まれていたけど一応。 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
になります。
正しい値を得る方法を教えていただけませんでしょうか。 SendMessage(Memo1.Handle, EM_GETRECT, 0, Longint(@R));
でよさそう >>880
ありがとうございます。
早速試してみたところ上手くいきました。 せっかくのオープンソースだし、
不具合っぽいのは本家に報告してあげるとよいよ Delphi6でさんざん書いてたのに長いことマイコンのほう(ArduinoやそのほかのC)ばっかりやってたからすっかりPascal忘れてるw
久々にPCのアプリ書こうと思っってLazarusはじめたらforやifですらあれどうだっけ?ってなってるよ TChartのチュートリアルを和訳してみたけどWikiに追加する方法がよくわからない FreePascalのXMLチュートリアル、サンプルのしょうもないミスを修正したいが
どうすりゃいいんでしょうか。
まぁPascal使うような極まりきった方々は別にミスあっても自分で修正するでしょうけど・・ マルチスレッドでレイトレーシングアプリを書いたが、LinuxでもWindowsでも
普通に動くんでビックリしましたわ。
マルチスレッド絡みだからOSとかの癖とかで差異があって大変だと思ってたので。
ちゃんとライブラリで差異を吸収してんですねぇ。 あまり大声で言うべきではないでしょうが、LazarusのGTK3サポート、
まだアルファ版というのがちょっと切ない。
自分の作るしょっぱいアプリだったらFreePascalのGTK3バインディングで
十分だろうからそっちから攻めるべきか。 ざっくり調べるとQtバインディングの方はQt6が最新でQt5はサポートしているということか。
であれば現状自分のしょっぱいLinuxアプリはQt5バインディングにしといた方が
良いかもしんないにゃー。
別にGTK2でも全く問題ないのですが・・・・ しかしGTK4が出てGTK2はEOLになった訳だが、ソースは公開されてるから永遠に使えるし、
別に自分の作るしょっぱいアプリなら見栄えとかも気にならない。
そりゃPython2が消えるのに時間かかるわけですわ。 とりあえずlazbuildでlpiファイルを指定してやればコマンドラインでビルド出来るのが
わかった。
これで素直にemacsでのコーディングにチャレンジできますな。 Lazarusからブランチされたと思しきCodeTyphon。
公式サイト見る限り、LazarusよりIDE環境は進んでそう。
https://www.pilotlogic.com/sitejoom/ Lazarusはシングルウインドウになったらええのに FAQ見るとシングルウィンドウにするんだー、だからペインドッキングのパッチは
ノーセンキューなんて書いてあるのにねー。
GTK3サポート共々今どんな塩梅なんですかね。 何を思ったかデスクトップPCをDebian/Linuxに、エディタはemacsでコーディングをしてる。
emacsのデフォルトはgnu-pascalサポートが入ってるのでObjectPascal拡張があると不便。
よくわからんまま、emacs delphi.elで検索かけてgithubにあるopacal.elを入れて
M-x opascal.elとしてみたら普通に動くようです。
そうまでしてなんでemacsで書かねばならんのかわからんのですが・・・ Lazarus Release 2.0.12 - February 24, 2021, 09:03:56 pm あ、もう出てたんですね。
リリースノート見る限りバグフィックスが主体であんまし新機能はなさ気な雰囲気ですが
使ってみた方いかがでしょうか。 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; Result^ を Result^^ にすればいいんじゃね? >>898
上手く行きました
ありがとうございました Delphiのライセンス切れてるし、Community Editionは毎回新バージョンに更新しないといけないから
これを機にFreePascalにしてみるか
貧弱なIDEはVSCodeで補えそうだし Lazarus Release 2.2.0 - January 05, 2022, 11:57:19 pm program MyProgram(input, output);
のようにプログラム名にパラメーターが付いたコードを見かけました。
Pascalの方言なのでしょうか?
それともFree Pascalでも見られるものでしょうか? >>904
質問に質問で返してすみませんが、あなたは
void int main( int argc, char *argc[])
はcの方言だと思いますか?
それともGNUCでも見られるものでしょうか void int mainってコンパイルエラーでは? Lazarus Release 2.2.2 - May 19, 2022, 09:26:08 am 本家のForum にレジストしても確認メールが届きません。
どうしたものでしょうか。
迷惑メールとかも見ましたし再送信とかも試しましたががまったく来ません。 Lazarus Release 2.2.4 - September 28, 2022, 10:08:10 am Lazarus製のアプリケーションのexeのショートカットをつくって実行時の
大きさを最小化としても最小化で起動しないのだがどうすればいいのかな >>913
Delphi ではプロジェクトファイルをごにょごにょしてたので
Lazarus では多分 .lpr ファイルにごにょごにょ
Application.CreateForm(TForm1, Form1);
//ここに↓これを入れて判断
if CmdShow = SW_MINIMIZE then Application.Minimize;
Application.Run; >>914
あいにく動作しませんでした
メインフォームのOnCreateイベントハンドラーに
case CmdShow of
SW_SHOWMINNOACTIVE: WindowState := wsMinimized;
SW_SHOWMAXIMIZED: WindowState := wsMaximized;
end;
と書いたらうまくいきました AmazonにKindle本として佐々木優という人が書いたLazurus・Free Pascalのセルフ出版の
本が何冊かのっている(読み放題のKindle Unlimited対象)
役に立つかどうかは別にして日本語の本というのはめずらしいかも >>916
応援の意味で何冊か買いました。Unlimited もいつ対象外になるかわからんし。 UbuntuでC++Builderを導入できなかったのでDelphiの本読んで勉強してます。
思い通りに動くと楽しいです。 サンプルの xmlstreaming を参考にして設定を書き出す処理を作ってます。
TComponent を継承して設定データのクラスを作ろうとしているんだけど、
その中にさらに TComponent 派生クラスを入れ子にすると、その項目が書き出されない。
入れ子のクラスを TPersistent 派生にすると書き出されるんだけど、項目名が
ドットで区切られた形でかなり違和感。
xmlstreaming の中でコメントアウトされている Form (Self) を書き出す処理を有効にしてみると、
入れ子のデータは「children」タグに囲われていい感じで出力されているんだけど、
どうやればできるんでしょうか? >>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; 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; >>921
ありがとうございます。書き出せました。
wiki のストリーミングのところ読んでもそんなこと書いてなかったけどな。
TWinControl に実装されてるから Form ならちゃんと書き出されたんですな。
人をハメようとしてるとしか思えないな。検索しても、英語の情報でも全然ないし。
とにかく、ありがとうございました。 これは壮観。過去50年以上にわたる「プログラミング言語の人気の変遷」をアニメで紹介するムービー【やじうまWatch】 - INTERNET Watch
s://internet.watch.impress.co.jp/docs/yajiuma/1463502.html
pascalって人気あったんだね インクリメンタルサーチの候補表示に TListBox を使っていて、
候補数が一定以下の場合は、数に合わせて ListBox の高さを調節したいと思っています。
Windows の場合は ItemHeight を使えばうまくいくようなのですが、Linux だと 0 が返ってきて
使えません。ほかにも ItemRect(0).Height の値も 0 ではないけど全然足りないし、
フォントの高さから計算できるかと思ったけど、同じ高さでもフォントが違うと
ListBox の項目の高さが微妙に違ったりしてこれもダメっぽい。
描画しているんだからどこかに情報があるんだと思うんですが、どこにあるんでしょう?
そもそもアプローチが間違っている? TOpenDialogのTitleプロパティがデフォルトの「ファイルを開く」のままOpenDialog1.Executeを実行すると、表示されたダイアログのキャプションが"Open existing file"と英語で表示されてしまいます。
これはLCLStrConstsユニットで rsfdOpenFile = 'Open existing file'; と定義されているのが原因のようですが、これをlclstrconsts.ja.poの「ファイルを開く」に置き換える方法を教えてください。 >>925
プロパティの設定が効かないってことかな? >>926
オブジェクトインスペクタでTitleを「画像ファイルを開く」など「ファイルを開く」以外にすればTitleがダイアログのキャプションに反映されます。
また、コードでOpenDialog1.Title := 'ファイルを開く'; を実行すればキャプションもそうなります。
ただ、コードを書かずにオブジェクトインスペクタで「ファイルを開く」を設定するだけだと「Open existing file」が表示されるというのが今回の問題です。
この症状はTDBNavigatorでも確認できていて、Hintsプロパティにはデフォルトで日本語のヒントが設定されているのにもかかわらず、実行すると英語のヒントが表示されてしまします。
その他MessageDlgのボタンが「はい」「いいえ」ではなく「Yes」「No」なのも同じ原因だと思います。 >>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ユニットの不具合のせいじゃないのかなあ >>928
ありがとうございます。
lclstrconsts.jp.poにリネームする方法で試して無事日本語で表示されました。
TDBNavigatorのヒントとMessageDlgのボタンも同様です。 Lazarus Release 2.2.6 - March 09, 2023, 10:38:09 am 軽くていいな。ゲームエンジンなんかもあるようで欧州では使い手多いのか? https://www.tiobe.com/tiobe-index/
TIOBE Indexで常に10位前後を維持してるDelphi系のPascal言語もスゴいよな
信じがたい快挙 Windowsアプリを作ったら、とても遅いような気がするんだけど、まだ改善してないのかな? >>933
どんなプログラムを書いてどの言語と比較して遅いのかを書かないと答えは無理
C++/C言語と同等の速度にはならない
スクリプト言語よりは高速 >>933
他のプログラムはサクサク動くのにお前の作ったプログラムだけが遅いという場合は、
多分お前のプログラムの何かがおかしい。 Lazarus Release Candidate 1 of 3.0 - July 03, 2023, 02:10:30 pm なんか知らんけど山下って人に金払わんでも専ブラ作っていいみたくなったらしいから
Lazarusでなんか作るチャンスなんじゃねw 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. 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. 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. >>937
Siki 以上のものをサクッと作れる気がしねー…… N. Wirth 死去 2024/1/1 89歳.R.I.P.
失踪じゃないよ.逝去だよ. Pascalの始祖が伝説になっただけで開発者はご存命 なんじゃいヴィルト死去の話やったんかいヽ(`Д´)ノ passed away(消え去った)と書いてあったのでどこへ行ったのかと思った フリーパスカルに書いてあった
http://www.freepascal.org/
The creator of the Pascal Language, Niklaus Wirth, has passed away on January 1st. passed awayは日本語でいう亡くなったみたいに、丁寧な言い方なんだな
勉強になった 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. ラズパイ上の開発なんですけど、Windows/DelphiでのPostMessageに相当するものはありますか? 自己解決しました。
winapih.inc(LCLIntf.pas)の中に定義がありました。
それとは別で、TThreadのインスタンスを作成しただけで例外でアプリごと落ちるんですが、
何か作法があるんでしょうか? 自己解決しました。
プロジェクトのソースをデフォルトから変える必要があるのかもしれません。
{$IFDEF UNIX}
cthreads,
{$ENDIF} ラズパイでというかLinux(Debian)での Lazarus ですよね?
GTK や QT ベースで普通にアプリ作れますよ。 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. レス数が950を超えています。1000を超えると書き込みができなくなります。