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

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
2016/04/11(月) 23:08:16.24ID:vm/+Ir/o
>>618
ああ、ここ Linux の板じゃなかったな。
たいていサンプルがあるのって C じゃん?無理やり Pascal に書きなおすか、
なんとかしてドッキングさせたりとかそういうところ。
Windows は、最近はネイティブアプリを作ることがないな。
.NET 使うなら言語の違いは大して意味ないし。
2016/04/12(火) 07:42:12.61ID:Xft6WNxx
たいした苦労してねぇじゃんw
2016/04/12(火) 19:58:26.51ID:7vlrxoJS
そ、そうだな
(誰も苦労話なんかしてないんだが……)
2016/04/13(水) 08:12:25.93ID:phkpqyMN
俺は逆にCをPascalに移植するの好きだけどな。
変にマニュアルとか読むよりも仕様がよくわかるし
何よりもPascalの便利さがわかる。
2016/04/13(水) 08:39:28.24ID:nekRTpPK
でも1万行とか、移植しかねるけどなぁ。
2016/04/14(木) 08:09:53.69ID:PaNxRcDi
それはケースバイケースで、CでDLLを作るという手もあるよ。
いずれにせよCでできることはObjectPascalでもほぼできるわけで
慣れれば困るということはないよ。
僕の経験上で今までObjectPascalでできなかったのは
デバイスドライバ開発時のメモリアドレスの絶対指定ぐらいかな。
2016/04/14(木) 10:14:23.22ID:J0RiNZuZ
Delphi3でデバイスドライバーを作ってる人見たが
VCと混合だったかな
うろおぼえ
2016/04/23(土) 22:03:11.97ID:xOcN8gUA
ツールのDelphi Conversionで簡単なDelphiプロジェクトをLazarusに変換したんだけど
コンパイルしようとすると「プロジェクトにメインソースファイルがありません」って出ちゃう
どこをいじったらいいでしょう?
2016/04/24(日) 10:19:11.75ID:HIJpSTnw
変換前のDelphiプロジェクトはこれです
http://fast-uploader.com/file/7016973507576/
2016/04/27(水) 10:18:46.99ID:xY/IN+83
>>626
試したけどそのようなエラーは出なかったよ
2016/04/28(木) 18:14:24.74ID:5KpvszkH
>>626
コンバートで失敗はなかったけど、コンパイルする時に4つエラーが出た
lazarusにはない記述だから仕方ないけど
2016/04/29(金) 16:31:19.76ID:wdLdMMLy
>>628
>>629
レスありがとうございます
もう一度試してだめなら
手作業で変換することにします
2016/05/08(日) 13:18:08.88ID:hQ0WJbMm
Shift_JIS漢字を含む文字列をUTF-8文字列に変換したいのですが
AnsiToUtf8関数は見当違いですか?
試してみましたがうまくいきませんでした
2016/05/08(日) 15:01:22.75ID:pwQcqOb7
そりゃANSIだからな
2016/05/08(日) 15:21:32.70ID:i4zyqzbf
OSがWindowsなら見当違いじゃないよ
2016/05/08(日) 18:47:19.53ID:hQ0WJbMm
>>632
>>633
OSはWindows7 64Bitです
うまくいかないのは何かコンパイラ指示とか足りないのでしょうか
他にShift_JISからUTF-8に変換できる関数とかないでしょうか
2016/05/08(日) 19:23:38.54ID:pwQcqOb7
WindowsならAPIがあるよ
2016/05/08(日) 22:14:02.22ID:HqJeT4yF
15年ぶりぐらいでプログラミングを
Lazarus で復帰し、半年ほど前からさわってるけどこうやって変換してるよ。Ver1.6

ただしLConvertEncode Unitの半角カナの扱いにバグがありConverterEncode() で半角カナが消える。
全角とANSIなら問題ない。

LConvertEncodeのasiancodepagefunctions.inc のDBCSToUTF8() のソースコードを少し修正すればOk。



uses
LazUTF8Classes,LazUTF8,.....,LConvEncording;

中略

SL:=TStringList.Create;
try
LoadStringsFromFileUTF8(SL, filename);
for i := 0 to SL.Count - 1 do begin
if GuessEncoding(SL[i]) = 'cp932' then
Memo.Lines.Add(ConvertEncoding(SL[i], 'cp932', 'utf8')) // SJIS to UTF8コード変換
else
Memo.Lines.Add(SL[i]);
end;
finally
FreeAndNil(SL);
end;
2016/05/08(日) 22:55:56.40ID:HqJeT4yF
>>636

C:\lazarus\components\lazutils\lconvencoding.pasのConvertEncoding(SL[i], 'cp932', 'utf8')で半角カナ が消える件
asiancodepagefunctions.inc の下記ルーチンがCP932 SJISの半角カナを正しくハンドリングできていない

function DBCSToUTF8(const s: string; CodeP: integer): string;
:
:
repeat
c := Src^;
Inc(Src);
if Ord(c) < 128 then begin
if (c=#0) and (Src-PChar(s)>=len) then break;
Dest^ := c;
Inc(Dest);
end
else begin
code := Byte(c) shl 8; <---- Ord(c) > $80 の時は無条件に2Byte文字にしているのがNG
c:=Src^;
if (c=#0) and (Src-PChar(s)>=len) then break;
code := code + Byte(c);
Inc(Src);
2016/05/08(日) 23:00:44.78ID:HqJeT4yF
>>636 以下 修正したコードだけど、参考まで。
function DBCSToUTF8(const s: string; CodeP: integer): string;
:
const // 半角カナ 対応
HankakuKanaUTF8Code:array[$A1..$DF] of array[1..3] of Byte
=(($EF,$BD,$A1),($EF,$BD,$A2),($EF,$BD,$A3),($EF,$BD,$A4),($EF,$BD,$A5),($EF,$BD,$A6),($EF,$BD,$A7),($EF,$BD,$A8),
($EF,$BD,$A9),($EF,$BD,$AA),($EF,$BD,$AB),($EF,$BD,$AC),($EF,$BD,$AD),($EF,$BD,$AE),($EF,$BD,$AF),($EF,$BD,$B0),
($EF,$BD,$B1),($EF,$BD,$B2),($EF,$BD,$B3),($EF,$BD,$B4),($EF,$BD,$B5),($EF,$BD,$B6),($EF,$BD,$B7),($EF,$BD,$B8),
($EF,$BD,$B9),($EF,$BD,$BA),($EF,$BD,$BB),($EF,$BD,$BC),($EF,$BD,$BD),($EF,$BD,$BE),($EF,$BD,$BF),($EF,$BE,$80),
($EF,$BE,$81),($EF,$BE,$82),($EF,$BE,$83),($EF,$BE,$84),($EF,$BE,$85),($EF,$BE,$86),($EF,$BE,$87),($EF,$BE,$88),
($EF,$BE,$89),($EF,$BE,$8A),($EF,$BE,$8B),($EF,$BE,$8C),($EF,$BE,$8D),($EF,$BE,$8E),($EF,$BE,$8F),($EF,$BE,$90),
($EF,$BE,$91),($EF,$BE,$92),($EF,$BE,$93),($EF,$BE,$94),($EF,$BE,$95),($EF,$BE,$96),($EF,$BE,$97),($EF,$BE,$98),
($EF,$BE,$99),($EF,$BE,$9A),($EF,$BE,$9B),($EF,$BE,$9C),($EF,$BE,$9D),($EF,$BE,$9E),($EF,$BE,$9F));
// ここまで
begin
:
repeat
:
begin
if (c=#0) and (Src-PChar(s)>=len) then break;
Dest^ := c;
Inc(Dest);
end
else if (CodeP = 932) and (Ord(c) >= $A1) and (Ord(c) <= $DF) then begin // 半角カナ 対応
Dest^ := Char(HankakuKanaUTF8Code[Ord(c)][1]);
Inc(Dest);
Dest^ := Char(HankakuKanaUTF8Code[Ord(c)][2]);
Inc(Dest);
Dest^ := Char(HankakuKanaUTF8Code[Ord(c)][3]);
Inc(Dest);
end // ここまで
2016/05/09(月) 20:03:45.11ID:df1MgNYQ
>>635
ありがとうございます
APIを探してみます
>>636
>>637
>>638
サンプルコードまで書いてくれてすみません
早速試してみます
2016/05/09(月) 21:59:01.22ID:df1MgNYQ
>>636
コードページを使うってことがまったく頭にありませんでした
DelphiならAnsiToUtf8ExとかUtf8ToAnsiExあたりが使えそうですがLazarusにはなさそうで…
>>635
Win32APIを探してみたらMultiByteToWideCharというのが使えそうですね
コードページはCP_OEMCPあたりでしょうか

WideCharからUTF-8はWideStringにしてStringに代入で変換できそうですね
このあたりを使ってコードを書いて見ます
2016/05/10(火) 08:00:47.53ID:EV5/gRyu
>>640
素直に SetStringCodePage を使えば?
2016/05/10(火) 08:19:54.24ID:EV5/gRyu
>>640
あと1.6以降でのUTF16、UTF8の自動相互変換は思わぬところで嵌まることがあるので
1.4以前みたくUtf8EncodeやUtf8Decodeを噛ませておいたほうがいいよ
2016/05/10(火) 17:28:34.34ID:juYdG8tQ
>>640
636だけど良い方法分かったらレポよろしく。
10数年前にDelphi 7を使ったのが最後だったんでLazarusで半角カナ混じりのSJISテキストファイル表示するのに試行錯誤したよ。
知らなかっただけかもしれないが当時はUnix がEUC主流でUTFなんて無かったような。
2016/05/10(火) 19:02:26.62ID:CkL9FHEL
delphi7は、一応utf-8に変換する関数は用意されてるね。
基本面のみなので、サロゲートペアを適切に扱ってはくれないけど。
645640
垢版 |
2016/05/10(火) 22:51:51.91ID:ZbVjwRdt
一応こんな感じで今のところうまくいっています

1.uses節にWindowsを追加

2.varはこんな感じ
var
 SJStr, U8Str: String;
 WStr: WideString;
 Wlen: Integer;

3.ShiftJIStoUTF8内
 WLen:=MultiByteToWideChar(CP_OEMCP,MB_PRECOMPOSED,PChar(SJStr),
      Length(SJStr),PWideChar(WStr),0);
 SetLength(WStr,WLen);
 MultiByteToWideChar(CP_OEMCP,MB_PRECOMPOSED,PChar(SJStr),
      Length(SJStr),PWideChar(WStr),WLen);
U8Str:=String(WStr);
//半角Spaceを全角Space ni置き換えています


SJStrはShift_JIS String
U8StrはUTF-8 String
APIを2回Callしているのは1回目で変換後のサイズを取得して2回目で実際に変換しているからです

API出力のUTF-16をPWideChar(array of WideChar)とかで受けて
String(PWideChar(…とかするとうまく変換してくれませんでした
(コンパイルは通るけど)
String(WideString(PWideChar(…なら変換してくれました
なので最初からAPIの出力はWideStringで受けています

しばらくこんな感じで使ってみて不具合が出たらまた考えて見ます
皆さんいろいろな助言をありがとうございました
646640
垢版 |
2016/05/10(火) 23:19:26.73ID:ZbVjwRdt
テスト用のProjectです
http://yahoo.jp/box/Vl_y-O
647640
垢版 |
2016/05/10(火) 23:41:44.72ID:ZbVjwRdt
ファイルが壊れていたので再UPしました
http://yahoo.jp/box/wFfctM
2016/05/11(水) 08:48:13.55ID:dFlNvgk/
難しく考え過ぎじゃない?
LazUTF8 か SetCodePage じゃだめなの?

procedure TForm1.Button1Click(Sender: TObject);
var
s, s1, s2: string;
sl: tstringlist;
begin
s:= 'ABCDEFGあいうえおアイウエオ';

s1:= UTF8ToWinCP(s);
Label1.Caption:= LazUTF8.WinCPToUTF8(s1);

s2:= s;
SetCodePage(RawByteString(s2), 932{SJIS}, true);
Label2.Caption:= LazUTF8.WinCPToUTF8(s2);
end;
2016/05/11(水) 22:06:49.06ID:44k2tpxg
>>648
LazUTF8というのがまったくの初耳でした
WinCPToUTF8であっさりできてしまうんですね
ありがとうございます
2016/05/25(水) 00:13:49.87ID:QLrAFpkQ
>>648
slは?
2016/05/25(水) 08:41:27.50ID:ZPEsWqSz
>>650
テストでテキストファイルに書き出してたのだが
その名残り。削除し忘れた
2016/05/26(木) 00:50:04.87ID:ud38oY6v
>>651
なるほど了解
2016/05/28(土) 11:29:41.05ID:1CNQzrIS
SysUtilsのFileCreate,FileOpen,FileRead,FileWriteは使わないほうがいいですか?
Byteの動的配列をSetlengthしてFileReadに食わせたらFileReadはエラーが出ないけれど
それ以降の動的配列のアクセスすべてで例外が発生します。
2016/05/28(土) 15:04:50.57ID:bhUf6De/
>>653
こういう質問のときはエラーになるコードも書いてよ
まぁ状況から察するには
×FileRead(FileHandle, a, Count)
○FileRead(FileHandle, a[0], Count)
2016/05/28(土) 15:41:31.05ID:1CNQzrIS
>>654
すみませんでした。
まさにお察しのとおりでしたありがとうございます。
2016/05/29(日) 22:53:35.12ID:CgTmLBtG
自分で使う用にリネームツールを作ってたんだけど
もしかしてFileExistsとかRenameFileって2バイトコード対応してないのですかね?
657656
垢版 |
2016/05/29(日) 23:05:42.58ID:CgTmLBtG
「Lazarusのだと」ってことね
念の為w
2016/05/30(月) 10:19:18.03ID:CyoOVxjo
質問するならせめて用語くらいは正しく使おうよ。
2バイトコードがSJISのことだと仮定すると
(なぜならUTF8の日本語は3バイトなので)
Lazの文字コ−ドは標準がUTF8なのでUTF8-SJIS変換をかませる必要がある。
なお、Laz v1.6以降のFileExistsやRenameFileはUTF8にフル対応してる。
Laz v1.4以前は FileExistsUTF8 などを使う必要がある。
2016/05/30(月) 20:27:03.00ID:8YY6SnwS
>>658
勉強になりました
ありがとうございます
2016/06/10(金) 17:51:09.92ID:l84CA5RZ
これってdelphiで作ったプロジェクトをコンパイルできますか?
2016/06/10(金) 20:01:04.17ID:sPlWs0BN
コンバートできるものとできないものがある。
さすがに修正することが多いですね。
2016/06/10(金) 23:04:41.83ID:l84CA5RZ
>>661
ありがとう
2016/06/16(木) 00:49:42.07ID:CZxzTwBY
Ubuntu on Windowsでもlazarus動くようになったな
2016/06/23(木) 10:23:35.15ID:+E1fa5qm
>>663
Ubuntu on Windowsってbashがうごくだけじゃないの?
2016/06/24(金) 07:34:54.32ID:CuRtWnlL
ubuntu環境そのものが動くんやで
2016/06/24(金) 11:06:27.44ID:1hPX2Gux
666
2016/07/02(土) 09:01:37.43ID:rae11cGA
WideStringではまってしまった

procedure TForm1.Button8Click(Sender: TObject);
var
str: string;
wstr: widestring;
begin
str:='stringテスト';
wstr:=widestring('stringテスト');
Label22.Caption:=IntToStr(Length(widestring(str))); //9と表示された
Label23.Caption:=IntToStr(Length(widestring(wstr))); //15と表示された
end;

label23は9と表示されてほしかったのに…
2016/07/02(土) 13:16:40.19ID:PNWyJIIt
widecharですらないな
2016/07/02(土) 14:12:28.25ID:RQTJ1Rgb
予想通りの答えだと思うけど
StringをWideStringでキャストしている意図がわからない
2016/07/02(土) 16:23:02.94ID:rae11cGA
>StringをWideStringでキャストしている意図がわからない
バイト数でなく文字数を出すため

Delphi 6で試してみたところ
Length(widestring(str))
Length(widestring(wstr))
は両方とも9になった
Length('stringテスト')=12
Length(widestring('stringテスト'))=9
だった
2016/07/02(土) 20:14:25.02ID:I09L8Xiz
WideString型の値をWideStringにキャストしたら文字数が9 -> 15になったって話か。

裏で走る組み込みの型変換の関数で変換元と先が同じ型かどうかのチェックをサボってるとかかな?
2016/07/03(日) 10:24:08.28ID:0+vEtgzf
str:='stringテスト';
wstr1:='stringテスト'; //15
wstr2:=widestring('stringテスト'); //15
wstr3:=widestring(str); //9
wstr4:=widestring(wstr3); //9
だったから、リテラル→widestring が期待する動作じゃないな

const
str: string = 'stringテスト';
wstr: widestring = widestring(str);
をやってみたら、
ユニコードをAnsiStringにすることはコンパイル時にはできません
なぜなら実行時の文字コードを知らないからです
みたいなエラーが出た
widestringはansistringと同じ扱いなのか?
2016/07/03(日) 11:25:02.28ID:qCpRmwfF
文字列系は1.6(FPC3.0)で大きく変わったので
まずはバージョンを書こうぜ
2016/07/03(日) 11:28:25.67ID:qCpRmwfF
多分1.6を使ってるとして返事するけど、
1.6でも、WideString(=UnicodeUtring=UTF16)と
String(=UTF8)を相互に代入するときは1.4以前と同じく
UTF8Decode()やUTF8Encode()を噛ませたほうがいいよ。
理由は詳しくは書かないけど。
2016/07/03(日) 12:50:48.37ID:CNMZpLOO
バージョンは1.6です

いろいろ試してみたけれどやはりUTF8Decodeが確実でした

あとなぜかWidestring(PChar())のキャストも9になります
Label1.Caption:=InttoStr(Length(Widestring('stringテスト')));//15
Label2.Caption:=InttoStr(Length(Widestring(String('stringテスト'))));//15
Label3.Caption:=InttoStr(Length(Widestring(PChar('stringテスト'))));//9
Label4.Caption:=InttoStr(Length(Widestring(PWideChar('stringテスト'))));//15
Label5.Caption:=inttostr(length(UTF8Decode('stringテスト')));//9
2016/07/03(日) 13:27:23.79ID:qCpRmwfF
いずれにせよFPC3.0では
文字列のキャストはコードページ付き文字列の導入に伴って
よう分からんことになってるので
1.4以前のようにきちんと文字列型のコードページを把握しつつ
UTF8Decode UTF8Encode その他をきちんと使うのがおすすめ。

なお、UTF16のバイト長の取得は
i:=Length(UTF8Decode('あいうえお')) * 2;
でいいと思う。
2016/07/05(火) 13:06:24.30ID:C9UYDhUV
気になって、ちょっと古いけどUnicode対応のDelphi XE5で試してみた
おかしな結果にならない模様

ttps://gist.github.com/anonymous/8636175cf9340234cfa452f492b074ee
2016/07/06(水) 08:06:19.72ID:/9bisM4Q
文字列定数のコードページの初期値が違うので
違う結果になるのは当然。
文字列定数のコードページを同じにすれば同じ結果になるはず。
これ以上深入りしても無駄だと思うけど
2016/08/25(木) 11:21:40.41ID:udEjBPPq
10年ぶりにDelphi 無償版リリース!

Delphi / C++Builder 10.1 Berlin Starter Edition が無料でダウンロード可能

注意事項
・無料ダウンロードは2016年8月22日から9月9日までの期間限定
・1回の登録/申請で1ライセンス入手可能
・1つのEメールアドレス/アカウントごとに1ライセンスのみ入手可

[Delphi 10.1 Berlin Starter Edition]
https://www.embarcadero.com/jp/products/delphi/starter/promotional-download

[C++Builder 10.1 Berlin Starter Edition]
https://www.embarcadero.com/jp/products/cbuilder/starter/promotional-download
2016/08/25(木) 11:24:24.64ID:2ugLHJjt
GoodJob
2016/08/25(木) 11:34:14.78ID:udEjBPPq
>>679
全部入力したのに[今すぐダウンロード]を押してもダウンロードが開始しない場合は、
Japanを他の国(例えばJamaica)を選択して、またJapanに戻せば、
[今すぐダウンロード]を押せるようになるぞ!
2016/08/25(木) 11:40:07.60ID:2ugLHJjt
>>679 >>681
これはひどいwebフォームだな
テストくらいしてからリリース汁

firefoxだとフォームの項目が一つ少ないな
一番上の性のところでshift+tabを押すと
見えないフォームにフォーカス移動するので
適当にaとか文字打つとダウソ可能になる
2016/08/25(木) 14:00:20.22ID:udEjBPPq
>>679 >>681
無料Delphiをダウンロードできない場合は、
キャッシュをクリアしてみると良いかもしれない。

ChromeやFireFoxならシークレットウィンドウで開く。
2016/08/25(木) 14:42:11.47ID:9T4YP2MK
飛び込みでスマソ。Lazarusをダウンロードして使ってみたが、StringGridの最上部の固定行に漢字を入力すると漢字が縦書きで90度左に寝転んでしまう?

可動セルはフォントをメイリオで指定してうまくいった。 固定行のフォントがメイリオなどの横書き可のフォントが設定されていないためだと思うが、解決方法がわかる人教えてください
2016/08/25(木) 21:59:44.84ID:3G9Zap9i
>>679
gj
2016/08/26(金) 07:07:26.31ID:/D9L7gIq
>>679
DelphiとC++の2個いける?
それともどっちか1個?
2016/08/26(金) 12:01:12.58ID:WnsDsp7+
両方落とせた
firefoxはだめだった
2016/08/26(金) 12:07:43.72ID:hhb+kJJX
ワシ、Firefoxで2つ落とした
2016/08/26(金) 12:36:28.71ID:Og8WDrzm
両方一緒やろ?
儂は Iceweasel で落とした。
2016/08/27(土) 07:33:07.36ID:QNa4gh8r
>>684
プロパティのColumsで増やすと個別のフォントになってしまう
Colcountで増やせばStringgrid全体でひとつのフォントになる
2016/08/27(土) 07:55:16.20ID:QNa4gh8r
どうしてもColumsで増やしたければオブジェクトインスペクタで該当するTgridcolumnをクリックして
Titleプロパティのフォントを変えていくしかない
2016/08/27(土) 07:56:34.78ID:QNa4gh8r
画像張り忘れ
http://i.imgur.com/66N2d3H.png
2016/08/27(土) 10:04:00.85ID:scRVQuYc
>>690
さんくす

StringGrid1

Colcount =5
FixedCols =0
FixedRows =1
Font = メイリオのレギュラー

でしているが、最上部の固定行だけは、漢字が縦書きで左90度で寝転んでしまう?
StringGridの2行目以降は漢字の横書きで正常です。
2016/08/27(土) 10:04:53.20ID:scRVQuYc
>>396 続き

RowConut = 100
2016/08/27(土) 11:19:34.00ID:QNa4gh8r
>>693
TitleFontが@付になってるとか…
2016/08/27(土) 11:39:39.72ID:scRVQuYc
>>695
私の環境では、@MS Pゴシックなどの@付きのフォントを設定すると「サンプル」フォントのプレビューでで漢字横書きになってしまいますし、
2行目以降可動セルの漢字も縦書きになってしまします。

いろいろフォントを変えて試したのですが、「メイリオ」「游ゴシック」「游明朝」が2行目以降の可動セルで漢字の横書きが可能かと思われます。

Lazarusは最新バージョンの1.6です。

また、1行目の固定セルと2行目以降の可動セルのフォントを別々に設定するとは、オブジェクトインスペクタでは出来ないように思います。
2016/08/27(土) 12:58:23.77ID:scRVQuYc
訂正
フォントのプレビューでで漢字横書き → フォントのプレビューでで漢字縦書き
2016/08/27(土) 21:37:04.16ID:QNa4gh8r
>>696
自分で書いたプログラム?
OnDrawCellイベントとか使ってない?

再現する短いプログラムとかスクリーンショットとかUPしてくれないとどうも状況がつかめないんだけど…
2016/08/27(土) 22:19:06.01ID:scRVQuYc
>>698
StringGridのイベントは使ってないのですが、新規にStringGridを作ってみたら、最上部の固定行の横書きが成功しました。
Delphiで作っていたプログラムを移植しようしていたのですが、何かが悪さしているようです。

これが、うまくいっていない画像です。
http://s1.gazo.cc/up/207658.jpg

いろいろ有難うございます。解決の糸口が掴めそうです。
2016/08/27(土) 22:27:23.06ID:scRVQuYc
>>699 訂正

新規にStringGridを作ってみたら

→ 新規にStringGridだけのプログラムを作ってみたら
2016/08/28(日) 11:22:13.95ID:6leow/yK
>>679
これ電話番号とか入れるの嫌なんだけど。
2016/08/28(日) 14:33:51.11ID:ZU3e5ILB
>>701
444 444 とかで大丈夫
2016/08/28(日) 18:05:48.47ID:6leow/yK
>>679
これって2個とも同じexeじゃね?
どういうこと?
2016/08/29(月) 08:22:42.95ID:pGRksGF2
>>703
webインストーラーは共通
2016/08/29(月) 12:56:21.31ID:24WsJT8K
まだインストールしてないけど
インストールキーで機能が決まるんじゃないかな
2016/08/29(月) 14:30:07.89ID:NKz4PvZo
webインストーラーのくせにでかすぎなんだよ
2016/08/29(月) 15:38:43.62ID:24WsJT8K
http://echo.2ch.net/test/read.cgi/tech/1405783063/888
に実際インストールした人あり
2016/08/30(火) 08:40:18.90ID:GLkfzxek
Windows.Beep(p1, p2);
これ使えないのか? どうして?

Buttonが今日は、真っ白の文字無しで表示? 昨日までは何ともなかったのに?

分かる方教えて?
2016/08/30(火) 10:14:03.53ID:16/k2Vjy
>708
何の話?
2016/08/30(火) 10:35:35.41ID:GLkfzxek
>>709
Lazarus
2016/08/30(火) 10:54:35.69ID:GLkfzxek
ボタンは突然直った? よくわからん
2016/09/01(木) 12:47:21.40ID:7WkVkVVj
>>708
Windows.beep(P1,P2)
うちでは使えてますがねえ
周辺のソース晒したら?
2016/09/01(木) 17:34:08.80ID:/RLY/2xR
またおま環かよ
714sage
垢版 |
2016/10/26(水) 16:16:30.40ID:DEpqtoKx
こんちには
lazarusのwindows32bit版1.6を使っているのですが
1.codeeditorでマウスクリックすると
その位置までにスペースとかを補って文字入力カーソルを位置設定してまう機能をoffにしたい
2.タブで半角スペース4文字分インデントしたい(pascalは2文字分が伝統?)
3.行末でenterすると次の行が同じ数だけタブで補われて入力開始が出来る様にしたい

tool-option-editor
辺りにありそうな気がするのですが
適当にクリックして設定しても1.2.3.みたいに上手く設定出来ません
何処を設定すれば出来るのか教えてもらえませんでしょうか?
2016/10/28(金) 09:14:54.09ID:nEGgz1cN
1.ツール→オプション→エディタ→一般→行末までスクロールをオフ
2.ツール→オプション→エディタ→一般→タブとインデント→タブ幅

3.は自動インデントの場合はタブにしたいの?
2016/10/28(金) 10:04:32.48ID:ryzUF+6b
今月のTips

case 文字列型 of
文字列定数1: ほにゃらら;
文字列定数2: ほにゃらら;
文字列定数3: ほにゃらら;
end

が最新のLazarus(FPC3.0)でできるようになったって知ってた?
2016/11/01(火) 17:54:12.82ID:KDUKmdhn
>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.コンパイルエラー内容が切れて見えないので
エラー表示箇所にマウスカーソルを当ててツールチップでエラー内容を見るのですが
表示時間が短いので長くしたいのですが
何処かに設定が有りますか?

お願いします。
2016/11/02(水) 11:27:06.42ID:1/V1NvWb
IDEを日本語にする意味ってほとんどない気がする
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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