(クロス)オープンソースコンパイラ 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
探検
【Delphi互換!?】FreePascal/Lazarus その2【GPL】
2009/12/25(金) 02:46:18
611デフォルトの名無しさん
2016/03/14(月) 18:06:18.97ID:h2+VI+P2 >>609
自己レス。ShowMessageの問題ではないみたい。
自己レス。ShowMessageの問題ではないみたい。
612デフォルトの名無しさん
2016/03/14(月) 18:19:06.24ID:h2+VI+P2613デフォルトの名無しさん
2016/03/31(木) 09:15:03.95ID:DT+Zx2Kz >>601
UTF8String を使う場合は、ソースの先頭部付近に
{$codepage UTF8}
を加えるのがほぼ必須みたいです。
そして、copyはやはりコードページを意識しない
(要素単位固定、現在は1要素=1バイト)みたいです。
ですので s: string; とした場合と動作は変わらないみたいです。
UTF8String を使う場合は、ソースの先頭部付近に
{$codepage UTF8}
を加えるのがほぼ必須みたいです。
そして、copyはやはりコードページを意識しない
(要素単位固定、現在は1要素=1バイト)みたいです。
ですので s: string; とした場合と動作は変わらないみたいです。
614デフォルトの名無しさん
2016/04/10(日) 18:47:56.27ID:+pxFkfgJ どうして不人気なんだろう
615デフォルトの名無しさん
2016/04/10(日) 19:28:01.82ID:AbYPTdqD いや、そもそも Pascal が
616デフォルトの名無しさん
2016/04/11(月) 08:09:18.63ID:k7zVs+aP Delphiがああなっちゃったからな
617デフォルトの名無しさん
2016/04/11(月) 14:01:09.14ID:vm/+Ir/o 自分は Pascal 好きなんだけどね。
でも遊びくらいにしか使えないわなあ。
余計な苦労するだけだし。
でも遊びくらいにしか使えないわなあ。
余計な苦労するだけだし。
618デフォルトの名無しさん
2016/04/11(月) 18:04:07.15ID:byY4yMu5619デフォルトの名無しさん
2016/04/11(月) 23:08:16.24ID:vm/+Ir/o >>618
ああ、ここ Linux の板じゃなかったな。
たいていサンプルがあるのって C じゃん?無理やり Pascal に書きなおすか、
なんとかしてドッキングさせたりとかそういうところ。
Windows は、最近はネイティブアプリを作ることがないな。
.NET 使うなら言語の違いは大して意味ないし。
ああ、ここ Linux の板じゃなかったな。
たいていサンプルがあるのって C じゃん?無理やり Pascal に書きなおすか、
なんとかしてドッキングさせたりとかそういうところ。
Windows は、最近はネイティブアプリを作ることがないな。
.NET 使うなら言語の違いは大して意味ないし。
620デフォルトの名無しさん
2016/04/12(火) 07:42:12.61ID:Xft6WNxx たいした苦労してねぇじゃんw
621デフォルトの名無しさん
2016/04/12(火) 19:58:26.51ID:7vlrxoJS そ、そうだな
(誰も苦労話なんかしてないんだが……)
(誰も苦労話なんかしてないんだが……)
622デフォルトの名無しさん
2016/04/13(水) 08:12:25.93ID:phkpqyMN 俺は逆にCをPascalに移植するの好きだけどな。
変にマニュアルとか読むよりも仕様がよくわかるし
何よりもPascalの便利さがわかる。
変にマニュアルとか読むよりも仕様がよくわかるし
何よりもPascalの便利さがわかる。
623デフォルトの名無しさん
2016/04/13(水) 08:39:28.24ID:nekRTpPK でも1万行とか、移植しかねるけどなぁ。
624デフォルトの名無しさん
2016/04/14(木) 08:09:53.69ID:PaNxRcDi それはケースバイケースで、CでDLLを作るという手もあるよ。
いずれにせよCでできることはObjectPascalでもほぼできるわけで
慣れれば困るということはないよ。
僕の経験上で今までObjectPascalでできなかったのは
デバイスドライバ開発時のメモリアドレスの絶対指定ぐらいかな。
いずれにせよCでできることはObjectPascalでもほぼできるわけで
慣れれば困るということはないよ。
僕の経験上で今までObjectPascalでできなかったのは
デバイスドライバ開発時のメモリアドレスの絶対指定ぐらいかな。
625デフォルトの名無しさん
2016/04/14(木) 10:14:23.22ID:J0RiNZuZ Delphi3でデバイスドライバーを作ってる人見たが
VCと混合だったかな
うろおぼえ
VCと混合だったかな
うろおぼえ
626デフォルトの名無しさん
2016/04/23(土) 22:03:11.97ID:xOcN8gUA ツールのDelphi Conversionで簡単なDelphiプロジェクトをLazarusに変換したんだけど
コンパイルしようとすると「プロジェクトにメインソースファイルがありません」って出ちゃう
どこをいじったらいいでしょう?
コンパイルしようとすると「プロジェクトにメインソースファイルがありません」って出ちゃう
どこをいじったらいいでしょう?
627デフォルトの名無しさん
2016/04/24(日) 10:19:11.75ID:HIJpSTnw 変換前のDelphiプロジェクトはこれです
http://fast-uploader.com/file/7016973507576/
http://fast-uploader.com/file/7016973507576/
628デフォルトの名無しさん
2016/04/27(水) 10:18:46.99ID:xY/IN+83 >>626
試したけどそのようなエラーは出なかったよ
試したけどそのようなエラーは出なかったよ
629デフォルトの名無しさん
2016/04/28(木) 18:14:24.74ID:5KpvszkH630デフォルトの名無しさん
2016/04/29(金) 16:31:19.76ID:wdLdMMLy631デフォルトの名無しさん
2016/05/08(日) 13:18:08.88ID:hQ0WJbMm Shift_JIS漢字を含む文字列をUTF-8文字列に変換したいのですが
AnsiToUtf8関数は見当違いですか?
試してみましたがうまくいきませんでした
AnsiToUtf8関数は見当違いですか?
試してみましたがうまくいきませんでした
632デフォルトの名無しさん
2016/05/08(日) 15:01:22.75ID:pwQcqOb7 そりゃANSIだからな
633デフォルトの名無しさん
2016/05/08(日) 15:21:32.70ID:i4zyqzbf OSがWindowsなら見当違いじゃないよ
634デフォルトの名無しさん
2016/05/08(日) 18:47:19.53ID:hQ0WJbMm635デフォルトの名無しさん
2016/05/08(日) 19:23:38.54ID:pwQcqOb7 WindowsならAPIがあるよ
636デフォルトの名無しさん
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;
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;
637デフォルトの名無しさん
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);
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);
638デフォルトの名無しさん
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 // ここまで
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 // ここまで
639デフォルトの名無しさん
2016/05/09(月) 20:03:45.11ID:df1MgNYQ640デフォルトの名無しさん
2016/05/09(月) 21:59:01.22ID:df1MgNYQ641デフォルトの名無しさん
2016/05/10(火) 08:00:47.53ID:EV5/gRyu >>640
素直に SetStringCodePage を使えば?
素直に SetStringCodePage を使えば?
642デフォルトの名無しさん
2016/05/10(火) 08:19:54.24ID:EV5/gRyu643デフォルトの名無しさん
2016/05/10(火) 17:28:34.34ID:juYdG8tQ >>640
636だけど良い方法分かったらレポよろしく。
10数年前にDelphi 7を使ったのが最後だったんでLazarusで半角カナ混じりのSJISテキストファイル表示するのに試行錯誤したよ。
知らなかっただけかもしれないが当時はUnix がEUC主流でUTFなんて無かったような。
636だけど良い方法分かったらレポよろしく。
10数年前にDelphi 7を使ったのが最後だったんでLazarusで半角カナ混じりのSJISテキストファイル表示するのに試行錯誤したよ。
知らなかっただけかもしれないが当時はUnix がEUC主流でUTFなんて無かったような。
644デフォルトの名無しさん
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で受けています
しばらくこんな感じで使ってみて不具合が出たらまた考えて見ます
皆さんいろいろな助言をありがとうございました
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
http://yahoo.jp/box/Vl_y-O
647640
2016/05/10(火) 23:41:44.72ID:ZbVjwRdt ファイルが壊れていたので再UPしました
http://yahoo.jp/box/wFfctM
http://yahoo.jp/box/wFfctM
648デフォルトの名無しさん
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;
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;
649デフォルトの名無しさん
2016/05/11(水) 22:06:49.06ID:44k2tpxg650デフォルトの名無しさん
2016/05/25(水) 00:13:49.87ID:QLrAFpkQ >>648
slは?
slは?
651デフォルトの名無しさん
2016/05/25(水) 08:41:27.50ID:ZPEsWqSz652デフォルトの名無しさん
2016/05/26(木) 00:50:04.87ID:ud38oY6v >>651
なるほど了解
なるほど了解
653デフォルトの名無しさん
2016/05/28(土) 11:29:41.05ID:1CNQzrIS SysUtilsのFileCreate,FileOpen,FileRead,FileWriteは使わないほうがいいですか?
Byteの動的配列をSetlengthしてFileReadに食わせたらFileReadはエラーが出ないけれど
それ以降の動的配列のアクセスすべてで例外が発生します。
Byteの動的配列をSetlengthしてFileReadに食わせたらFileReadはエラーが出ないけれど
それ以降の動的配列のアクセスすべてで例外が発生します。
654デフォルトの名無しさん
2016/05/28(土) 15:04:50.57ID:bhUf6De/ >>653
こういう質問のときはエラーになるコードも書いてよ
まぁ状況から察するには
×FileRead(FileHandle, a, Count)
○FileRead(FileHandle, a[0], Count)
こういう質問のときはエラーになるコードも書いてよ
まぁ状況から察するには
×FileRead(FileHandle, a, Count)
○FileRead(FileHandle, a[0], Count)
655デフォルトの名無しさん
2016/05/28(土) 15:41:31.05ID:1CNQzrIS656デフォルトの名無しさん
2016/05/29(日) 22:53:35.12ID:CgTmLBtG 自分で使う用にリネームツールを作ってたんだけど
もしかしてFileExistsとかRenameFileって2バイトコード対応してないのですかね?
もしかしてFileExistsとかRenameFileって2バイトコード対応してないのですかね?
657656
2016/05/29(日) 23:05:42.58ID:CgTmLBtG 「Lazarusのだと」ってことね
念の為w
念の為w
658デフォルトの名無しさん
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 などを使う必要がある。
2バイトコードがSJISのことだと仮定すると
(なぜならUTF8の日本語は3バイトなので)
Lazの文字コ−ドは標準がUTF8なのでUTF8-SJIS変換をかませる必要がある。
なお、Laz v1.6以降のFileExistsやRenameFileはUTF8にフル対応してる。
Laz v1.4以前は FileExistsUTF8 などを使う必要がある。
659デフォルトの名無しさん
2016/05/30(月) 20:27:03.00ID:8YY6SnwS660デフォルトの名無しさん
2016/06/10(金) 17:51:09.92ID:l84CA5RZ これってdelphiで作ったプロジェクトをコンパイルできますか?
661デフォルトの名無しさん
2016/06/10(金) 20:01:04.17ID:sPlWs0BN コンバートできるものとできないものがある。
さすがに修正することが多いですね。
さすがに修正することが多いですね。
662デフォルトの名無しさん
2016/06/10(金) 23:04:41.83ID:l84CA5RZ >>661
ありがとう
ありがとう
663デフォルトの名無しさん
2016/06/16(木) 00:49:42.07ID:CZxzTwBY Ubuntu on Windowsでもlazarus動くようになったな
664デフォルトの名無しさん
2016/06/23(木) 10:23:35.15ID:+E1fa5qm >>663
Ubuntu on Windowsってbashがうごくだけじゃないの?
Ubuntu on Windowsってbashがうごくだけじゃないの?
665デフォルトの名無しさん
2016/06/24(金) 07:34:54.32ID:CuRtWnlL ubuntu環境そのものが動くんやで
666デフォルトの名無しさん
2016/06/24(金) 11:06:27.44ID:1hPX2Gux 666
667デフォルトの名無しさん
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と表示されてほしかったのに…
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と表示されてほしかったのに…
668デフォルトの名無しさん
2016/07/02(土) 13:16:40.19ID:PNWyJIIt widecharですらないな
669デフォルトの名無しさん
2016/07/02(土) 14:12:28.25ID:RQTJ1Rgb 予想通りの答えだと思うけど
StringをWideStringでキャストしている意図がわからない
StringをWideStringでキャストしている意図がわからない
670デフォルトの名無しさん
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
だった
バイト数でなく文字数を出すため
Delphi 6で試してみたところ
Length(widestring(str))
Length(widestring(wstr))
は両方とも9になった
Length('stringテスト')=12
Length(widestring('stringテスト'))=9
だった
671デフォルトの名無しさん
2016/07/02(土) 20:14:25.02ID:I09L8Xiz WideString型の値をWideStringにキャストしたら文字数が9 -> 15になったって話か。
裏で走る組み込みの型変換の関数で変換元と先が同じ型かどうかのチェックをサボってるとかかな?
裏で走る組み込みの型変換の関数で変換元と先が同じ型かどうかのチェックをサボってるとかかな?
672デフォルトの名無しさん
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と同じ扱いなのか?
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と同じ扱いなのか?
673デフォルトの名無しさん
2016/07/03(日) 11:25:02.28ID:qCpRmwfF 文字列系は1.6(FPC3.0)で大きく変わったので
まずはバージョンを書こうぜ
まずはバージョンを書こうぜ
674デフォルトの名無しさん
2016/07/03(日) 11:28:25.67ID:qCpRmwfF 多分1.6を使ってるとして返事するけど、
1.6でも、WideString(=UnicodeUtring=UTF16)と
String(=UTF8)を相互に代入するときは1.4以前と同じく
UTF8Decode()やUTF8Encode()を噛ませたほうがいいよ。
理由は詳しくは書かないけど。
1.6でも、WideString(=UnicodeUtring=UTF16)と
String(=UTF8)を相互に代入するときは1.4以前と同じく
UTF8Decode()やUTF8Encode()を噛ませたほうがいいよ。
理由は詳しくは書かないけど。
675デフォルトの名無しさん
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
いろいろ試してみたけれどやはり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
676デフォルトの名無しさん
2016/07/03(日) 13:27:23.79ID:qCpRmwfF いずれにせよFPC3.0では
文字列のキャストはコードページ付き文字列の導入に伴って
よう分からんことになってるので
1.4以前のようにきちんと文字列型のコードページを把握しつつ
UTF8Decode UTF8Encode その他をきちんと使うのがおすすめ。
なお、UTF16のバイト長の取得は
i:=Length(UTF8Decode('あいうえお')) * 2;
でいいと思う。
文字列のキャストはコードページ付き文字列の導入に伴って
よう分からんことになってるので
1.4以前のようにきちんと文字列型のコードページを把握しつつ
UTF8Decode UTF8Encode その他をきちんと使うのがおすすめ。
なお、UTF16のバイト長の取得は
i:=Length(UTF8Decode('あいうえお')) * 2;
でいいと思う。
677デフォルトの名無しさん
2016/07/05(火) 13:06:24.30ID:C9UYDhUV 気になって、ちょっと古いけどUnicode対応のDelphi XE5で試してみた
おかしな結果にならない模様
ttps://gist.github.com/anonymous/8636175cf9340234cfa452f492b074ee
おかしな結果にならない模様
ttps://gist.github.com/anonymous/8636175cf9340234cfa452f492b074ee
678デフォルトの名無しさん
2016/07/06(水) 08:06:19.72ID:/9bisM4Q 文字列定数のコードページの初期値が違うので
違う結果になるのは当然。
文字列定数のコードページを同じにすれば同じ結果になるはず。
これ以上深入りしても無駄だと思うけど
違う結果になるのは当然。
文字列定数のコードページを同じにすれば同じ結果になるはず。
これ以上深入りしても無駄だと思うけど
679デフォルトの名無しさん
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
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
680デフォルトの名無しさん
2016/08/25(木) 11:24:24.64ID:2ugLHJjt GoodJob
681デフォルトの名無しさん
2016/08/25(木) 11:34:14.78ID:udEjBPPq >>679
全部入力したのに[今すぐダウンロード]を押してもダウンロードが開始しない場合は、
Japanを他の国(例えばJamaica)を選択して、またJapanに戻せば、
[今すぐダウンロード]を押せるようになるぞ!
全部入力したのに[今すぐダウンロード]を押してもダウンロードが開始しない場合は、
Japanを他の国(例えばJamaica)を選択して、またJapanに戻せば、
[今すぐダウンロード]を押せるようになるぞ!
682デフォルトの名無しさん
2016/08/25(木) 11:40:07.60ID:2ugLHJjt683デフォルトの名無しさん
2016/08/25(木) 14:00:20.22ID:udEjBPPq684デフォルトの名無しさん
2016/08/25(木) 14:42:11.47ID:9T4YP2MK 飛び込みでスマソ。Lazarusをダウンロードして使ってみたが、StringGridの最上部の固定行に漢字を入力すると漢字が縦書きで90度左に寝転んでしまう?
可動セルはフォントをメイリオで指定してうまくいった。 固定行のフォントがメイリオなどの横書き可のフォントが設定されていないためだと思うが、解決方法がわかる人教えてください
可動セルはフォントをメイリオで指定してうまくいった。 固定行のフォントがメイリオなどの横書き可のフォントが設定されていないためだと思うが、解決方法がわかる人教えてください
685デフォルトの名無しさん
2016/08/25(木) 21:59:44.84ID:3G9Zap9i >>679
gj
gj
686デフォルトの名無しさん
2016/08/26(金) 07:07:26.31ID:/D9L7gIq687デフォルトの名無しさん
2016/08/26(金) 12:01:12.58ID:WnsDsp7+ 両方落とせた
firefoxはだめだった
firefoxはだめだった
688デフォルトの名無しさん
2016/08/26(金) 12:07:43.72ID:hhb+kJJX ワシ、Firefoxで2つ落とした
689デフォルトの名無しさん
2016/08/26(金) 12:36:28.71ID:Og8WDrzm 両方一緒やろ?
儂は Iceweasel で落とした。
儂は Iceweasel で落とした。
690デフォルトの名無しさん
2016/08/27(土) 07:33:07.36ID:QNa4gh8r691デフォルトの名無しさん
2016/08/27(土) 07:55:16.20ID:QNa4gh8r どうしてもColumsで増やしたければオブジェクトインスペクタで該当するTgridcolumnをクリックして
Titleプロパティのフォントを変えていくしかない
Titleプロパティのフォントを変えていくしかない
692デフォルトの名無しさん
2016/08/27(土) 07:56:34.78ID:QNa4gh8r693デフォルトの名無しさん
2016/08/27(土) 10:04:00.85ID:scRVQuYc >>690
さんくす
StringGrid1
Colcount =5
FixedCols =0
FixedRows =1
Font = メイリオのレギュラー
でしているが、最上部の固定行だけは、漢字が縦書きで左90度で寝転んでしまう?
StringGridの2行目以降は漢字の横書きで正常です。
さんくす
StringGrid1
Colcount =5
FixedCols =0
FixedRows =1
Font = メイリオのレギュラー
でしているが、最上部の固定行だけは、漢字が縦書きで左90度で寝転んでしまう?
StringGridの2行目以降は漢字の横書きで正常です。
694デフォルトの名無しさん
2016/08/27(土) 10:04:53.20ID:scRVQuYc695デフォルトの名無しさん
2016/08/27(土) 11:19:34.00ID:QNa4gh8r >>693
TitleFontが@付になってるとか…
TitleFontが@付になってるとか…
696デフォルトの名無しさん
2016/08/27(土) 11:39:39.72ID:scRVQuYc >>695
私の環境では、@MS Pゴシックなどの@付きのフォントを設定すると「サンプル」フォントのプレビューでで漢字横書きになってしまいますし、
2行目以降可動セルの漢字も縦書きになってしまします。
いろいろフォントを変えて試したのですが、「メイリオ」「游ゴシック」「游明朝」が2行目以降の可動セルで漢字の横書きが可能かと思われます。
Lazarusは最新バージョンの1.6です。
また、1行目の固定セルと2行目以降の可動セルのフォントを別々に設定するとは、オブジェクトインスペクタでは出来ないように思います。
私の環境では、@MS Pゴシックなどの@付きのフォントを設定すると「サンプル」フォントのプレビューでで漢字横書きになってしまいますし、
2行目以降可動セルの漢字も縦書きになってしまします。
いろいろフォントを変えて試したのですが、「メイリオ」「游ゴシック」「游明朝」が2行目以降の可動セルで漢字の横書きが可能かと思われます。
Lazarusは最新バージョンの1.6です。
また、1行目の固定セルと2行目以降の可動セルのフォントを別々に設定するとは、オブジェクトインスペクタでは出来ないように思います。
697デフォルトの名無しさん
2016/08/27(土) 12:58:23.77ID:scRVQuYc 訂正
フォントのプレビューでで漢字横書き → フォントのプレビューでで漢字縦書き
フォントのプレビューでで漢字横書き → フォントのプレビューでで漢字縦書き
698デフォルトの名無しさん
2016/08/27(土) 21:37:04.16ID:QNa4gh8r699デフォルトの名無しさん
2016/08/27(土) 22:19:06.01ID:scRVQuYc >>698
StringGridのイベントは使ってないのですが、新規にStringGridを作ってみたら、最上部の固定行の横書きが成功しました。
Delphiで作っていたプログラムを移植しようしていたのですが、何かが悪さしているようです。
これが、うまくいっていない画像です。
http://s1.gazo.cc/up/207658.jpg
いろいろ有難うございます。解決の糸口が掴めそうです。
StringGridのイベントは使ってないのですが、新規にStringGridを作ってみたら、最上部の固定行の横書きが成功しました。
Delphiで作っていたプログラムを移植しようしていたのですが、何かが悪さしているようです。
これが、うまくいっていない画像です。
http://s1.gazo.cc/up/207658.jpg
いろいろ有難うございます。解決の糸口が掴めそうです。
700デフォルトの名無しさん
2016/08/27(土) 22:27:23.06ID:scRVQuYc701デフォルトの名無しさん
2016/08/28(日) 11:22:13.95ID:6leow/yK >>679
これ電話番号とか入れるの嫌なんだけど。
これ電話番号とか入れるの嫌なんだけど。
702デフォルトの名無しさん
2016/08/28(日) 14:33:51.11ID:ZU3e5ILB >>701
444 444 とかで大丈夫
444 444 とかで大丈夫
703デフォルトの名無しさん
2016/08/28(日) 18:05:48.47ID:6leow/yK704デフォルトの名無しさん
2016/08/29(月) 08:22:42.95ID:pGRksGF2 >>703
webインストーラーは共通
webインストーラーは共通
705デフォルトの名無しさん
2016/08/29(月) 12:56:21.31ID:24WsJT8K まだインストールしてないけど
インストールキーで機能が決まるんじゃないかな
インストールキーで機能が決まるんじゃないかな
706デフォルトの名無しさん
2016/08/29(月) 14:30:07.89ID:NKz4PvZo webインストーラーのくせにでかすぎなんだよ
707デフォルトの名無しさん
2016/08/29(月) 15:38:43.62ID:24WsJT8K http://echo.2ch.net/test/read.cgi/tech/1405783063/888
に実際インストールした人あり
に実際インストールした人あり
708デフォルトの名無しさん
2016/08/30(火) 08:40:18.90ID:GLkfzxek Windows.Beep(p1, p2);
これ使えないのか? どうして?
Buttonが今日は、真っ白の文字無しで表示? 昨日までは何ともなかったのに?
分かる方教えて?
これ使えないのか? どうして?
Buttonが今日は、真っ白の文字無しで表示? 昨日までは何ともなかったのに?
分かる方教えて?
709デフォルトの名無しさん
2016/08/30(火) 10:14:03.53ID:16/k2Vjy >708
何の話?
何の話?
710デフォルトの名無しさん
2016/08/30(火) 10:35:35.41ID:GLkfzxek >>709
Lazarus
Lazarus
レスを投稿する
ニュース
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- ひろゆき氏 高市首相の台湾有事発言 「日本が得たものあまりない。経済的なマイナスは明確に存在」 [冬月記者★]
- 【音楽】『日本レコード大賞』各賞発表! 大賞候補にILLIT、M!LK、ふるっぱー、幾田りら、アイナ、ミセスら… 作詩賞は指原莉乃 [冬月記者★]
- 小野田紀美大臣、山上について問われピシャリと論破「テロリストには何も言うことは無い」 [856698234]
- 【すべてが】𝗮𝗺͜𝗮͉𝘇𝗼𝗻ブラックフライデーSALE総合【いいだろ!】 [194819832]
- 【ヤフコメの嫌儲化😰】ヤフコメ、なぜかアンチ高市コメントだらけになる😨😱 [718678614]
- 【悲報】秋元康「女性アイドルグループはもうオワコン。会いにいける男性アイドルグループを作る」 [455031798]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【訃報】日経平均先物逝く、円安株安債券安 [943688309]
