X



くだすれDelphi(超初心者用)その57 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2016/10/13(木) 13:21:54.84ID:7i5E+q2+
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、もしくは
質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。

Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。

■Delphi XE6 Professional/Enterprise/Ultimate/Architect エディション(トライアル版有)
64bit Windows、Mac OS XからiOS、Androidのアプリも開発可能。ライブラリのソースコード付き。アカデミックライセンス有り。
旧バージョン(XE6/5/4/3/2/XE/2010/2009/2007/Delphi 7)のライセンス取得とダウンロードが可能。(アカデミック不可)
ttp://www.embarcadero.com/jp/products/delphi

■Delphi XE6 Starter エディション
個人/5人以下の企業・組織向け。年間売上1000US$以内の商用開発可。
(※)Delphi、Visual Studio等の有償/無償の開発ツールユーザーが対象。インストール確認は特に行わない。
ttp://www.embarcadero.com/jp/products/delphi/starter

■Embarcadero RAD Studio XE6 (Delphi、C++Builder、HTML5 Builder等を含むビジュアル開発スイート)
ttp://www.embarcadero.com/jp/products/rad-studio

<前スレ>
くだすれDelphi(超初心者用)その56
http://echo.2ch.net/test/read.cgi/tech/1405783063/

<過去スレ>
DelWiki (Delphi 関連の過去スレッド)※行方不明
ttp://delwiki.info/?
0201デフォルトの名無しさん
垢版 |
2017/01/04(水) 23:55:57.26ID:07zJ2hFc
ごめん

post-/sendmessageにはwm_closeみたいな表示するメッセージはなかった

独自のメッセージを定義して受け取った側でshowするか
showwindow(async)を使うかだね
0202デフォルトの名無しさん
垢版 |
2017/01/05(木) 00:45:48.42ID:sWl9IbhJ
>>199
TThread.Synchronizeで、メインスレッドに切り替えてから、引数で渡されたコールバックメソッド(手続き)でサブフォームを表示させるとか
0203194
垢版 |
2017/01/05(木) 06:34:16.06ID:KgVZC7r0
>>198
エラーが消えて無事に動きました。
ありがとうございます。

こういうのはIDEが教えてくれるのかと思って
いましたが、有料版だとそういう機能は
あるんでしょうかねー
0204デフォルトの名無しさん
垢版 |
2017/01/05(木) 07:19:36.75ID:DrifgVvY
>>203
関数や手続きが定義されていないってエラーが出たときはその関数などのヘルプを見て
そこに書いてあるユニット名が自分のプログラムのuses節に書かれているか調べるといいよ。
0205199
垢版 |
2017/01/05(木) 09:38:01.68ID:u8XERnLo
>>200,202
ありがとうございます。
教えてもらった方法を調べながらやってみます。
0206デフォルトの名無しさん
垢版 |
2017/01/08(日) 16:20:11.76ID:lAdNqeO/
TShellCtrlコンポーネントって、デモに含まれるものなんだよね なんでVCLに含めなかった??
0208デフォルトの名無しさん
垢版 |
2017/01/10(火) 11:27:52.10ID:D5z5IiVv
マルチスレッドが終了したかどうか確認するのに、フラグで確認してるんだけど、
なんかもっとスマートな方法ってありませんか?
ググったらWaitForが出て来たのですが、hoge.WaitForとしてもハンドルエラーとか出て使えませんでした。
宜しくお願いします。
0211デフォルトの名無しさん
垢版 |
2017/01/10(火) 17:41:03.73ID:9hDOaePS
>>208
hogeってTThread?
そんだったらTThread.FreeOnTerminateをTrueにしてるから、
スレッドが終了してFreeされてるから、ハンドルエラーと出てくるんだろう。
FreeOnTerminiateをFalseにすればOK(そのかわりTThreadの破棄は自分でやる必要がある)。
0212デフォルトの名無しさん
垢版 |
2017/01/10(火) 18:11:59.83ID:uT10hEea
終了したか確認するのにWaitForしたら確認じゃなく待機しちゃってダメじゃないのかと思うけど。
FreeOnTerminiate:=true;で OnTerminateイベントでフラグ立てるので良くないかい?
あとはメインフォームに終了通知としてメッセージ送るとか。
Win32API使うのOKなら FreeOnTerminiate:=false; にして
スレッドハンドルに対して WaitForSingleObject (タイムアウトは0に設定)使い
WAIT_OBJECT_0が返るかWAIT_TIMEOUTが返るか確認する。
もしくはGetExitCodeThread関数を使うとかかな。
0217デフォルトの名無しさん
垢版 |
2017/01/11(水) 08:27:35.32ID:7+b9GoiT
ああOnTerminate 内はメインスレッドか。
なら簡単だわ。メンゴ。
昔はOnTerminateイベント無かった希ガス
0218208
垢版 |
2017/01/11(水) 08:51:02.04ID:jn+AzvnI
おはようございます。
皆さん、ありがとうございます。
フラグがやはり良さげなんですね。

もう1つ教えて下さい。
スレッドの中で
try
stringlist:=TStringList.Create;
while not Terminete do
begin
何かの処理
end;
finally
stringlist.free;
End;
とした時に、TermineteをTrueにして終了するとfinallyの処理をしてくれません。
異常終了した時はfinallyの処理をしてくれます。
stringlistの解放はOnTermineteでするのが普通なのでしょうか?
0221デフォルトの名無しさん
垢版 |
2017/01/11(水) 14:43:08.49ID:mOqhfYH5
>とした時に、TermineteをTrueにして終了するとfinallyの処理をしてくれません。
んなわけない。ちゃんとfinallyの処理するはずだからもっとしっかり確認しよう。

>フラグがやはり良さげなんですね。
もうちょっと具体的にスレッド終わった後何したいのかとか書いてくれんと答えようがねぇ。
0222デフォルトの名無しさん
垢版 |
2017/01/11(水) 17:34:02.96ID:y79IyYLw
>>220
ホントだtryはあった...でも
最近のdelphiは仕様が変わったのか...

念のため例外処理入れてみたら?

list=:tstringlist.create;
try try
while not terminated do begin ...end;
// ここで正常処理終了のフラグをセット
except....end;
finally list.free; end;
0223デフォルトの名無しさん
垢版 |
2017/01/11(水) 18:26:26.78ID:tCuecbSb
>>218
>TermineteをTrueにして終了するとfinallyの処理をしてくれません。
どうやって確認したの?
あとTThreadの派生クラスならTerminateはメソッドとTerminatedプロパティが使える。

>stringlistの解放はOnTermineteでするのが普通なのでしょうか?
そんなことはない。
0224デフォルトの名無しさん
垢版 |
2017/01/11(水) 18:29:24.22ID:+wq8yOB3
昔昔、QuadrupleDを使ってやってたサウンドの再生を最新のDelphiでやりたいんですが、使えるライブラリを探してます。

・複数のwaveファイルをマルチチャネルで読み込んでそれぞれ別個に再生したい
・チャネル単位でループ再生、ピッチ変更、音量変更がしたい

あるかな…(´・ω・`)
0225デフォルトの名無しさん
垢版 |
2017/01/11(水) 21:03:36.27ID:go3Ym2g4
ブレーク入れてね
ステップで見るときブレーク入れないと
見かけ飛ばすから
0226デフォルトの名無しさん
垢版 |
2017/01/12(木) 06:31:56.17ID:a5xM53E0
フラグの排他制御は簡単だと思うが。
boolean変数一個なら読み書きは1命令で、割り込まれることはないだろうし
書く前に消されちゃうようなコードを書かなければいいだけ。
0228デフォルトの名無しさん
垢版 |
2017/01/13(金) 08:37:54.09ID:ZuNdbFdt
フラグをグローバルやメインフォームなどに
持たせるのはなんか古臭いという気持ちはある
0230デフォルトの名無しさん
垢版 |
2017/01/14(土) 13:25:01.19ID:h3eR+GmF
>>229
元号とか使わないか
自力で変換

OSの機能を使ってるんだったら大丈夫か
ただvistaも今春でサポート終了するけど
0232デフォルトの名無しさん
垢版 |
2017/01/18(水) 13:40:10.70ID:YhLwefSp
string、ansichar、pansicharの型キャストってどうやるの?
暗黙の型キャストの警告を消したいんだけど、ググってstrpcopyとかのサンプルを実行しても消えない。
0235デフォルトの名無しさん
垢版 |
2017/01/27(金) 12:59:02.17ID:/S2JEwyl
Konopkaコンポーネントのアンインストール方法を教えて下さい。
インストール中に異常終了したのでアンインストールしたいのですが、
アンインストールも途中終了してしまって、行き詰ってしまいました。
よろしくお願いします。
0236デフォルトの名無しさん
垢版 |
2017/01/27(金) 14:49:41.44ID:5OkJm/3R
>>235
マイドキュメント\Embarcadero\Studio\18.0\CatalogRepositoryにあるKonopkaのフォルダと
パブリックのドキュメント\Embarcadero\Studio\18.0\CatalogRepositoryにあるKonopkaの
リポジトリデータを削除すればよかったと思う。(心配ならバックアップとっといてね)

konopka、インストール失敗するとアンインストールもできなくなるんだよね。
0237235
垢版 |
2017/01/27(金) 22:35:47.30ID:/S2JEwyl
>>236
ありがとうございます。
助かりました。
0238デフォルトの名無しさん
垢版 |
2017/02/01(水) 09:20:48.68ID:5qzbuLNZ
入力の支援機能で出て来た候補にカーソルを合わせて、
ピリオド打ったら選んだ候補が入力される設定ってどこにありますか?
ベルリンのup2を入れたのですが、最初は良かったのにいつの間にかピリオドで選択されなくなってしまいました。
0239デフォルトの名無しさん
垢版 |
2017/02/06(月) 19:05:34.17ID:xOrt0AYX
StringGridのセルをデータの合わせて塗りつぶすことをしています。
タイマーイベントで0.2秒毎にデータに変化がなくても一旦デフォルト色にしてから他の色を塗っています。
そのせいだと思うのですがセルの選択ができません。
セルをランダムに色を塗りつつ、セルの選択もできるようにするにはどうしたらいいでしょうか?
0241デフォルトの名無しさん
垢版 |
2017/02/06(月) 20:38:57.75ID:U9v8FdBr
TSringGridのOnDrawCellイベントの引数で渡されるTGridDrawStateで、選択されたかどうか判断できる。
選択されてないときだけ、色を変更するよろし。
0242239
垢版 |
2017/02/06(月) 22:36:47.54ID:xOrt0AYX
>>240.241
ありがとうございます。
まだ、試してませんがどういうコードを書けば良いか案が浮かびました。
0243デフォルトの名無しさん
垢版 |
2017/02/07(火) 04:11:46.40ID:odr3U2KT
タイマーで200ミリ秒ずつやってるところが壮絶にまぬけっぽい 小学生以下の知能
0244デフォルトの名無しさん
垢版 |
2017/02/07(火) 07:48:29.48ID:uL0lBsbg
Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、もしくは
質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。

Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
0245239
垢版 |
2017/02/07(火) 14:14:09.54ID:vf4YiH1/
昨日はありがとうございました。
TSringGridの特定のセルに数値を書き込むのにDrawTextを使って右寄せで書き込んでいます。
この書き込んだ数値を後から取得することってできますか?
セルにHintみたいに埋め込めたら簡単なんですけどググっても分かりませんでした。

>>243
シーケンサーの信号状態を監視するんで手っ取り早くタイマー使ってます。
0246デフォルトの名無しさん
垢版 |
2017/02/07(火) 21:01:48.32ID:qgMFF5pP
その「数値」はどこにしまってあるの? それは自分で世話するしかない。
DrawTextは文字列を描画するだけで、何書いたかなんてどこにも覚えていないよ。
0247デフォルトの名無しさん
垢版 |
2017/02/07(火) 22:53:48.58ID:GEF3mu7C
StringGridなんだから、Cellsプロパティを通して、文字列として各セルにでも入れときゃいいんでね?(ハナホジ
0250デフォルトの名無しさん
垢版 |
2017/02/26(日) 22:21:06.30ID:S5w82ICF
vs2015アンインスコしたらDel10.1でコンパイルできなくなった。
Del再インスコするしかない?
0253デフォルトの名無しさん
垢版 |
2017/03/14(火) 14:46:39.28ID:SzM2z6wx
スレッド1で変数aの値を読み書きしていてスレッド2では変数aを読み込みしかしない場合って干渉対策って必要?
0255253
垢版 |
2017/03/14(火) 22:26:02.83ID:M7D1b0oM
ありがとうございます。
干渉対策じゃなくて排他処理っていうんですね。
失礼しました。
各スレッドで共有する変数を集めたUnitに変数aを宣言して使っています。
この変数aを複数のスレッドからアクセスする場合、Synchronizeを使うのでしょうか?
SynchronizeはスレッドからVCLを描画する場合に使うと書いてあったので、フラグを立てるとかして
排他処理をするのでしょうか?
0256デフォルトの名無しさん
垢版 |
2017/03/14(火) 23:05:45.72ID:137tpMLx
クリティカルセクションでも使えばいい、どっかで
CS := TCricalSection.Create()で作っておいて、

同時にアクセスされたら困るところで
CS.Enter();
try
 共有リソースの変数Aにアクセスなど
finally
 CS.Leave();
end;
0257デフォルトの名無しさん
垢版 |
2017/03/14(火) 23:07:46.72ID:137tpMLx
まぁ、他にもSyncObjs.pasにTInterlockedとかあるけど、
そこは自分で頑張ってくれ
0258デフォルトの名無しさん
垢版 |
2017/03/15(水) 07:56:13.67ID:OMQXGO2Q
>>255
Synchronize内の処理はメインスレッドでの処理となるから
同時アクセスがありえなくなるということらしいよ
0259253
垢版 |
2017/03/16(木) 09:51:28.35ID:IMOOaoXR
皆さん、ありがとうございます。
これから調べて確認しようと思うのですが、最後に1つ教えて下さい。
シンクロナイズを使い過ぎるとマルチスレッドの意味が無くなるとヘルプに書いてありました。
クリティカルセクション等は使い過ぎてもメインフォームの反応が悪くなるとかそういう事が無くなる、若しくは低減されるとかあるのでしょうか?
もし、それならクリティカルセクション等を推奨すると思うので使い過ぎはやはりダメとは思いますがどうなんでそょう?
0260デフォルトの名無しさん
垢版 |
2017/03/16(木) 17:53:22.67ID:Xe646fvV
どこからが使いすぎだと思う?
0261デフォルトの名無しさん
垢版 |
2017/03/16(木) 18:29:10.53ID:vq3uRAd1
>>259
ウインドウ描画などしているスレッドが「メインVCLスレッド」。
要するにメッセージループが動作しているスレッド。
Synchronizeはこのメッセージループに「渡したプロシージャの処理を任せる」ため
Synchronizeを多用すると「メインフォームの反応が悪くなる」という状況を生む。
Synchronizeはあくまで変数のアクセスと言った軽い処理に限定すればいい。
この場合、メッセージループがウィンドウメッセージを処理する合間に変数へのアクセスを処理する程度なので
その程度で「メインフォームの反応が悪くなる」ということはないだろう。
ただ、もし重たい処理を任せてしまうと、フォームのイベントで処理するのと同じになってしまう。
(フォームなどコンポーネントのイベントはメインVCLスレッドで動作している)
この場合メインフォームの反応が悪くなる。

クリティカルセクションはメッセージループとか関係ないので、それによってメインフォームの反応が悪くなるということはない。
ただ例外として、メインVCLスレッドでクリティカルセクションを使うと、
他のスレッドが使用中はメインVCLスレッドは待機してしまうのでメインフォームの反応が悪くなることはある。
0262デフォルトの名無しさん
垢版 |
2017/03/17(金) 07:45:46.44ID:88SBOT8h
>>259
問題は「使い過ぎ」の定義だと思うけど
僕は1つ1つの処理の長さが長くなってしまった場合をいってるのではないかと思う。
同時処理といっても現実は短い処理が交互に行われるのをスレッドと称しているだけであって
それを否定するようなプログラミングはもはやスレッドではないということではないかと。
0263デフォルトの名無しさん
垢版 |
2017/03/17(金) 09:01:04.72ID:88SBOT8h
あ、もしかしたら質問に答えてなかったかな?
つまりsyncronizeだろうがcsだろうが
占有状態が長くなるようなロジックになるなら同じことだ
0265デフォルトの名無しさん
垢版 |
2017/03/18(土) 10:42:58.16ID:TEQZ8ThN
>>264
そういう御仁が現れるだろうなとは思ってた。
申し訳ないがマルチコアなどの詳細な仕組みが現話題の結論に
影響を与えるものではないので無視させてもらいます。
0266デフォルトの名無しさん
垢版 |
2017/03/18(土) 11:15:40.91ID:uhuX0RUO
OSのタスクスケジューリングやスレッド、Delphiのメインスレッドの話がごっちゃ混ぜになっててカオスカオス
0268デフォルトの名無しさん
垢版 |
2017/03/18(土) 17:26:39.99ID:qhwfKSm6
>マルチコアなどの詳細な仕組みが現話題の結論に影響を与えるものではない

今の話題においてこれは正しいと思う。

>同時処理といっても現実は短い処理が交互に行われるのをスレッドと称しているだけであって
この話も同じく、“現話題の結論に影響を与えるものではない”
0269デフォルトの名無しさん
垢版 |
2017/03/18(土) 17:42:46.56ID:uhuX0RUO
中途半端に説明するからややこしくなる
SynchronizeにしろCriticalSectionにしろDelphiのメインスレッドが処理待ちになる状況ができれば反応は悪化する

くらいでイナフ
0271デフォルトの名無しさん
垢版 |
2017/03/19(日) 10:14:13.46ID:pPSf+p35
>>269
メインに限らないっしょ。同期されたサブスレッド間でも片方が長い処理すれば片方は待ちになるわけだし。
0272デフォルトの名無しさん
垢版 |
2017/03/19(日) 10:31:00.81ID:Zac56zGn
>>271
メインスレッドを待機が発生するスレッドと置き換えて考えたら良いだけの話であってそのあたりは柔軟に考えてくだちい

まー、サブスレッド同士が待機しあって停滞しててもメインスレッドがそこに巻き込まれてなければ(見かけ上は)レスポンスの悪化とかは無いけどね
0273デフォルトの名無しさん
垢版 |
2017/03/19(日) 12:59:15.63ID:pPSf+p35
結局「スレッド」という英単語が同いう意味かってだけだね。
あと例えば一度にたくさんのログインがあるサーバーなんかは
スレッドたくさん作ることによるメモリの圧迫が指摘されてて
メッセージ処理型に回帰してるよね。
つまり同時(的な)処理においてスレッドが万能ってわけじゃない
ことも知ってたほうがよいよね。
0278デフォルトの名無しさん
垢版 |
2017/03/23(木) 17:32:52.95ID:0AhE1jWZ
10.2tokyo入れて見たんだけど、10.1でgetitから入れたコンパーネントが入れられなくてプロジェクト開けられない。
エンバカ何なんだ?
0280デフォルトの名無しさん
垢版 |
2017/03/25(土) 07:13:02.05ID:Hlan26fq
StarterのBerlinをTokyoにするんだけど
いったんBerlinをアンインストールするんだっけ?
0281デフォルトの名無しさん
垢版 |
2017/03/28(火) 04:59:23.66ID:by30piXi
StarterのBerlinをインストールしたままTokyoをインストール出来ましたし、同時に起動出来ました。

公式ブログには逆の順番(Tokyo→Berlin)でのインストールは、
お勧めしませんって書いてました。
0283デフォルトの名無しさん
垢版 |
2017/03/31(金) 10:26:45.88ID:SnNLRdP6
2007からXEにあげるのに、いまさらながらユニコードに取り組むんですが、
・フォーム上で入力されるのはUTF-16
・UnicodeStringで保持するのはUTF-16
・ソースはUTF-8
の違いがあるようなのですが、ソースでリテラルで記述したUFT-8の文字を
コンポーネントのテキストやUnicodeStringに代入したりするとごちゃ混ぜに
なってしまうんですか?
0284283
垢版 |
2017/03/31(金) 10:42:53.79ID:SnNLRdP6
文字コードを確認してみたのですが
var
c: Char;
begin
c := 'あ';
ShowMessage(Format('%x',[(Ord(c))]);

のソースで、ソースをバイナリエディタで見てみると、'あ'の部分
のコードはUTF-8ですが、Ord(c)はUTF-16のコードでした。
これは、勝手に文字コードの変換が掛かるのですか?
0285デフォルトの名無しさん
垢版 |
2017/03/31(金) 11:27:56.20ID:tBgePiep
こう言うとアレだけど
普通に使うときはユニコードとか
意識する必要ないんじゃない?
0286283
垢版 |
2017/03/31(金) 11:48:21.75ID:SnNLRdP6
>>285
例えば、

s := Edit1.Text + 'が入力文字列';

のような場合だと、sにUTF-8の文字コードとUTF-16の文字コードが混在して
まずいような気がするのですが、プログラム動かしてみると、コンパイル時に
ソースコードでの文字列はUTF-16に変換してるのかな?と思ったのですが。
0287デフォルトの名無しさん
垢版 |
2017/03/31(金) 12:08:45.28ID:YNGnrt5P
便乗失礼します。
2009以降
・ShowMessageの内部では、UnicodeStringとして表示する文字列を処理します。
ってことだったと思うのでUTF-16変換されてるのかと

異なるコード間では暗黙の変換される
でよかったでしょうか?
どこまで変換されるのかは確認してないのと、
Chr関数とか文字数、Byte数を数えるときに気をつけて考えておく、くらいでしか認識してないのですが

https://edn.embarcadero.com/jp/article/38783
https://edn.embarcadero.com/jp/article/38791
0288283
垢版 |
2017/03/31(金) 12:14:44.98ID:SnNLRdP6
>>287
リンク先を読んでみると、文字列の代入時に変換してるみたいですね。
ありがとうございます。
0289デフォルトの名無しさん
垢版 |
2017/03/31(金) 12:27:36.02ID:tBgePiep
>>286
大丈夫
ソースファイルがutf8とか意識しないほうがいいよ

文字列リテラルもstring変数もunicodeだよ
0290デフォルトの名無しさん
垢版 |
2017/03/31(金) 12:33:03.27ID:tBgePiep
>>288
内部でどう処理してるのか知らないけど
このケースだと代入時(実行時)に変換してるのかな?

実行ファイルの最後に定数が保存されてたと思うけど
すでにunicodeになってたような気がする
0293デフォルトの名無しさん
垢版 |
2017/04/01(土) 14:47:04.87ID:MIBbFxu2
>>288
リンク先を読んでみると、「すでにUnicodeとして扱われている」ってのが分かると思うんだが。

>Delphi 2009で、内部的に大きく変わっています。Delphi 2009では、Unicodeを標準文字列型として採用しているために、このコードで使われている文字列はすべてUnicodeです。
>Sに代入している ‘Hello, World.’ は、Unicodeです。

ソースの文字コードがなんであれ、リテラル文字列の扱いはUnicode。

C++Builderで扱う場合はLが付いているかいないかでリテラル文字列の扱いが変わると思う。
0294デフォルトの名無しさん
垢版 |
2017/04/01(土) 16:29:34.25ID:xnSlrZsr
てか簡単なサンプル作って試せば済むことじゃん

昔のバージョンのdelphiで
文字コードを意識する必要があるケース以外
最近のバージョンのdelphiでも
unicodeであることは考えなくていいんじゃない
0295デフォルトの名無しさん
垢版 |
2017/04/01(土) 21:40:45.92ID:JcotD4lU
真に気を付けないといけないのは1文字に複数文字が入ってるサロゲートペア

見た目が同じだからハマる

「ば」と「ば」が違う文字とかわっかんねーよ
0297デフォルトの名無しさん
垢版 |
2017/04/02(日) 09:38:21.10ID:WSPdqmkD
>>295
最後の行は「ば」?
これってサロゲートペアなのか?
それとも別の文字が化けた?

それと
内部の文字列がunicodeになった話と
unicode文字列を処理する話は
微妙に違う話だぞ?
0299デフォルトの名無しさん
垢版 |
2017/04/02(日) 10:43:02.23ID:3chV0onz
>>297
2chだと化ける可能性あるから両方サロゲートペアじゃないよ

入力ソフトによってはかな入力するとサロゲートペアになるんよ
んでUTF16の入力を受け付けるもんだからそのままDBに格納したりしてあとで検索にひっかからないとか
コードの仕様で言うならIF条件すり抜けたりとか

おかげでEditのTextとか必ずUTF8Stringに代入する癖がついてしまった
■ このスレッドは過去ログ倉庫に格納されています

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