くだすれC++Builder(超初心者用)その5

■ このスレッドは過去ログ倉庫に格納されています
2012/04/21(土) 13:26:14.76
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。

■C++Builder XE2 - エンバカデロ・テクノロジーズ
http://www.embarcadero.com/jp/products/cbuilder


<過去スレ>
くだすれC++Builder(超初心者用)その4
http://toro.2ch.net/test/read.cgi/tech/1256256376/
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/
くだすれC++Builder(超初心者用)その2
http://pc10.2ch.net/test/read.cgi/tech/1144308804/
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/

<兄弟スレ>
くだすれDelphi(超初心者用)その54
http://toro.2ch.net/test/read.cgi/tech/1325028195/
2012/07/03(火) 15:37:01.49
エンコードが違うのとちゃうん
181デフォルトの名無しさん
垢版 |
2012/07/03(火) 15:51:13.40
どのサイトみてもこんな感じなんですよね。
msg->SubjectをいきなりMemoにぶち込んでるだけで
これC++Builder2010のIndy10で普通に表示されます??
2012/07/03(火) 18:18:02.09
Indyって文字コード変換までしてくれるの?
してくれないならメールヘッダのContent-Typeとか見て変換しないとダメなんじゃないの?
183デフォルトの名無しさん
垢版 |
2012/07/03(火) 18:29:32.01
どのサイトもSubjectは変換してなかった
本文は変換してたけどね。
2012/07/03(火) 19:49:45.85
なんかヘッダーの日本語エンコードに対応してないらしい
Indy以外探したほうがいいかもね
185デフォルトの名無しさん
垢版 |
2012/07/04(水) 09:26:28.71
('д`)えー
186デフォルトの名無しさん
垢版 |
2012/07/04(水) 11:46:27.66
サイトでのソースは全部delphiなんだけど
C++Builderの方はバグってるのかなあ
何かそんなことかいてるサイトもあったし
だれか>>179を試してほしい・・
2012/07/04(水) 12:40:49.23
フリーじゃないのこれ
2012/07/04(水) 14:13:34.94
どっちィ
189デフォルトの名無しさん
垢版 |
2012/07/04(水) 14:21:51.41
んじゃさ、受信したSubjectとか=?ISO-2022-JP?形式なんだけど
これを変換する方法を教えて><
2012/07/04(水) 14:22:26.44
Delphiのメール送信側だけど
http://codezine.jp/article/detail/400
見るとヘッダのコード変換にjconvert.pasとか使ってるみたい
Indy10でこの状態だから他の探したほうがいいんじゃないの?
191デフォルトの名無しさん
垢版 |
2012/07/04(水) 14:43:09.12
最初jconvert使ってたんだけど・・・
どうもC++Builder2010じゃうまくいかなくて
同じコードをC++Builder5でやるとちゃんと変換されたんだけど
2010ってデフォでUnicodeになってるから?
2012/07/04(水) 14:45:44.39
多分そうだろうね
AnsiStringでやってUNICODEに後から変換するとか力技で一回やってみれば?w
193デフォルトの名無しさん
垢版 |
2012/07/04(水) 14:49:36.76
やってみたぽ・・・
とりあえずAnsiStringにぶち込んでから
Memo->Lines->Add( ConvertJCode( DecodeHeaderString( subject ), SJIS_OUT ) );
194デフォルトの名無しさん
垢版 |
2012/07/04(水) 14:50:28.10
その辺は鬼のように試したんだけど全くうまくいかない。
C++Builder5じゃちゃんと変換されるんだけどなあ
2012/07/04(水) 14:55:30.22
jconvert.pas自体がStringでビルドされてたら意味ないと思う多分
196デフォルトの名無しさん
垢版 |
2012/07/04(水) 14:57:38.42
そうなんだよね、それ気づくの遅かったアホだし俺とか
んで、諦めて、アレしたんだけど
しかし何故delphiの方はSubjectそのままぶち込んでもちゃんと表示されてんだろ
2012/07/04(水) 15:05:55.60
別物だからさ
198デフォルトの名無しさん
垢版 |
2012/07/04(水) 15:28:45.56
どうしたものか
とりあえず>>189教えてくらさ><
2012/07/04(水) 15:30:42.80
とりあえずjconvert.pasのStringをAnsiStringに置換してビルドしてみれば?
200デフォルトの名無しさん
垢版 |
2012/07/04(水) 15:33:11.48
やってみる・・・
2012/07/04(水) 15:51:02.58
やっぱりやめた・・・
202デフォルトの名無しさん
垢版 |
2012/07/04(水) 15:52:43.51
いや、根性でやったんだけどさw
まあダメだったわ、とりあえず無理やりキャストしてコンパイルが通っただけって感じだし
どうしたらいいの俺とか
2012/07/05(木) 06:03:21.10
ちょっと調べてみた
MecsUtils.pasっていうEmbarcadero Developer Networkにある文字列関係の処理用コード使ったらタイトル文字化け直ったよ
http://cc.embarcadero.com/item/26061
Yahoo Mailの1メールでしか試してないけど
この中のMecsShrinkElementっていう関数にTIdMessageのSubjectを渡すと正常に変換された
2012/07/05(木) 10:12:45.85
>>203
あああああああああああああああああああああああああ!!
ありがとうありがとう><
できましたできました!!!
自分もヤホーメール1件でしかまだ試してないですが
今までずっと試してたのが出来たのでこれでISO-2022-JPはばっちりです!!
ありがとうございました^^
2012/07/05(木) 10:23:51.58
違ったあああああああ!
=?ISO-2022-JP?B?って形式で入ってるのはダメだった〜
理由はよくわからないけどSubjectに入ってる形式で
何かわけのわからん形式ならMecsShrinkElementでOKでしたが
=?ISO-2022-JP?B?形式で入ってると変換されなかったので
これは別の関数呼べばいいんですかね??
何を呼べばいいかソースみてもわかりませんが・・・
2012/07/05(木) 10:30:57.29
ヤホーから来たメールはOKだったけど
ニフティーから来たメールはダメだったぽ・・
これプロバによってアレかあ死にたい
2012/07/05(木) 15:17:40.69
BCB6で、boost.polygon、は使えまつか?
2012/07/05(木) 21:52:36.95
コモンコントロールってWM_NOTIFYを親に送りますよね
親がコントロールだったら、そのコントロールをサブクラス化するしか
WM_NOTIFYを捕捉する術はないのでしょうか?
2012/07/05(木) 23:36:07.06
ない
210デフォルトの名無しさん
垢版 |
2012/07/06(金) 10:02:51.17
この前からIdPOP3がバグるって騒いでる基地外ですが
>>203氏のおかげで結構変換することができた
で、色々受信してたらMecsShrinkElementを通しても化けるのがあって
よくよくみてみると、MecsShrinkElementで化けるのは
最初から既にちゃんと変換されてたってのがわかったんだけど
2010のIndyのバグのせいか、ちゃんと変換されてるのと無変換で
MecsShrinkElementを通すとOKってのがあったんだけど
これを判別する方法としてCharSetがISO-2022-JPならMecsShrinkElementを使う
って事にしたら大抵OKになったけど、たまにCharSetに何も入ってないのに
MecsShrinkElementを使わないとダメなのがあって
これどうやって判別したらいいのですか・・・

2012/07/06(金) 10:04:55.02
7bit か 8bit かで区別するといいお
2012/07/06(金) 10:08:27.68
XE2なら問題ないみたいだな

2010はバグ多いな
要するにXE2は2010、XEのバグ取りとFileMonkeyを入れたってことか

XE3でclang+llvmになるらいけどまたしばらくバグに苦しむんだろうな・・・
213デフォルトの名無しさん
垢版 |
2012/07/06(金) 10:25:51.56
>>211
それダメですた、それ入ってないのがあって識別できません><

>>212
XE2迷ったけど64ビット作れないみたいだし次まで待つ事に
2012/07/06(金) 10:28:06.99
だよ
XE2はDelphiのみ64bit対応
だまされたー
215デフォルトの名無しさん
垢版 |
2012/07/06(金) 11:38:13.20
とりあえず、判断は
AttachmentEncoding、CharSet、ContentTransferEncodingでなんとかなりそうです。
で、最後に・・・
=?shift_jis?B? この形式で来るのが現在変換できなくて困ってます。
これを変換する方法を教えてください・・・
2012/07/06(金) 17:58:14.65
【中2自殺】 皇子山中学校 「韓国に対する関心を高めるため」 修学旅行は韓国へ
http://engawa.2ch.net/test/read.cgi/poverty/1341564390/

ねらい
ハングルを学ぶことによって、韓国に対する関心を寄り高める。
http://jan.2chan.net/may/b/src/1341557000217.jpg

2012/07/06(金) 18:26:14.57
皇子山って新羅の末裔らしいけどな
2012/07/08(日) 12:45:38.53
BCB5でGDI+グラフィックを使おうとしたのですが、
動いてくれません。(画像ファイルは無事使えてます)

BCB6では自身のヘッダファイルのままで、グラフィックも
動いてくれています。

GDIplus関連のヘッダをBCB6からとか、2001年頃のSDKから
持ってきてもダメでした。

諦めて素直にBCB6でやるのも、ちょっと悔しいので
何か覚えている人がいたら、教えてくださいませ。

参考にしたサイト
ttp://www.leunen.com/cbuilder/gdiplus.html
ttp://aruaru.blog.so-net.ne.jp/2009-09-28
ttp://forum.sources.ru/index.php?showtopic=152783
2012/07/08(日) 14:06:23.52
LoadLibrary
2012/07/08(日) 14:19:53.39
GDI+を使う理由がわからん
激遅なのに。

しかも、今時BCB56って
割れ?
2012/07/08(日) 17:11:27.97
>>219
遅延読み込みしないとダメだったんでした?
やってみます。

>>220
いや、正規だけど、エンバカには御布施したことないです。
何もかも今更なんだけど、GDI+もDirextX(DXライブラリ)も
触ったことなかったもので...
再描画の遅さは我慢できる使い方なんです
222デフォルトの名無しさん
垢版 |
2012/07/09(月) 11:38:57.60
=?shift_jis?B? この形式変換する方法教えてください><
それと、"=?Shift_JIS?を
とりあえずこの2つ変換できたら思い残すことはないかもしれないぽ
2012/07/09(月) 12:13:30.05
馬鹿には無理
224デフォルトの名無しさん
垢版 |
2012/07/11(水) 17:21:14.33
TListViewにExchangeメソッド無い??
行入れ替えどうやったらいいのかおしえてくらだ
2012/07/11(水) 17:42:41.81
>>222
XE2ではタイトルがそうならないみたいな気がするので分からないけど
Base64のデコードに失敗してるんだと思うので自分でデコードすればもしかしたらうまくいくのかもしれない
2012/07/11(水) 20:00:23.30
>>224
Items.AddItemかなぁ
227デフォルトの名無しさん
垢版 |
2012/07/12(木) 13:30:35.57
C++Builder2010でTImageを使って画像の回転をしたくて
TImageのヘルプをみるとRotateFlipらしきメソッドがあるんだけど
コンパイルするとこんなメソッド無いってエラーでるんだけど・・・
どうしたらコンパイルできます?
2012/07/12(木) 13:41:02.10
つ ttp://delphi.about.com/cs/adptips2001/a/bltip1201_4.htm
つ ttp://www.delphi-central.com/tutorials/RotateBitmapBitBlt.aspx
つ ttp://stackoverflow.com/questions/10546582/rotate-timage-in-delphi
2012/07/12(木) 13:42:47.28
RotateFlipはGDI+の関数だな
2012/07/12(木) 13:52:53.31
DDBとDIBSection(普通のGDI)なら自分で計算して回転してやらないといかんよ
231デフォルトの名無しさん
垢版 |
2012/07/12(木) 14:00:07.35
>>228-230
ありがとうありがとう
232デフォルトの名無しさん
垢版 |
2012/07/12(木) 14:06:38.17
何かこれ呼ぶだけで回転はOKみたいなソースどっかに転がってないかな?
2012/07/12(木) 14:54:42.71
>>232
これ俺が前に実際に使わせてもらったソースのサイトだけど

http://homepage2.nifty.com/tsugu/sotuken/rotation/

sin, cosをintに変換してから計算しているので結構速いよ
ScanLineプロパティを使うともっと速くなる

Windows Vistae以降ならDirect2Dを使って

http://code.msdn.microsoft.com/windowsdesktop/VisualC-howto-96795643

とやれば処理の大部分をGPUに放り投げられるんだけどなあ
2012/07/12(木) 15:39:41.68
>>233
ありがとうございます。
その2つのサイト参考にアレしてみます。
ありがとうございました。
2012/07/12(木) 15:52:56.04
中村御大のDHGLはできないっけ?
ttp://www.asahi-net.or.jp/~HA3T-NKMR/DGS/DownLoad.htm
2012/07/12(木) 15:59:25.96
>>235
あ、これVCLライクなコンポーネント?
XE2に入るかやってみる
2012/07/12(木) 16:48:26.40
>>235
それのRotateBitmap使ったらできましたー!!!
C++Builder2010
しかしこれパラメータ多くてとりあえず適当に入れてやってみたんだけど
回転角に90って入れても90度になってくれないなあ
たぶん他のパラメータの指定が悪いんだとおもうけど
2012/07/12(木) 16:55:15.45
>>235
ああ、すんませんできました。
パラ少ない方でやったらあっさりできました^^
239デフォルトの名無しさん
垢版 |
2012/07/12(木) 18:15:09.13
ソフトを起動した時に既に起動していたら、既に起動してるソフトに引数をわたして
後から起動されたソフトの方を終了するにはどうしたらいいですか?
よくブラウザとかそんな感じになってますが
2012/07/12(木) 19:22:40.48
mutex
2012/07/12(木) 20:25:14.74
パイプまたはメールスロットとミューテックスを組み合わせるな普通
2012/07/13(金) 02:52:10.42
>を組み合わせるな
組み合わせてはいけないのですね。わかりました
2012/07/13(金) 03:20:04.40
>>242
こらこら
具体的なソースを誰か貼ってやれ
2012/07/13(金) 12:44:40.49
自演ツマンネ
245デフォルトの名無しさん
垢版 |
2012/07/13(金) 12:57:29.09
プロジェクトソースのとこで自分のハンドルを取得してメッセージ送るのってダメ?
2012/07/13(金) 14:26:10.10
Win32の本を読むと、あるプロセスから他のプロセスにメッセージを送る方法は
大きく分けて3つあり、共有メモリを使った通信、メールスロット、名前付きパイプ
がある。前者ほど易しいが欠点も多い。後者ほど難易度が増すが、より堅牢に
なる。前者はメッセージを受け取る努力がより要求され、後者はメッセージを
より強引に送りつけるようになるとある。

ケースに応じて使い分けろと書いてある。
2012/07/13(金) 14:40:11.61
相手のハンドルが判ってれば
PostMassage
SendMassage
で桶
2012/07/13(金) 15:40:45.59
>>247
引数ってその場合
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
これだけしか送れなくない?
コマンドラインみたいのを渡す時は使えない
2012/07/13(金) 15:44:04.84
massage
2012/07/13(金) 15:46:39.50
>>248
ここリンク貼れないのなんで?
ttp://cho●kuto.if●def.jp/advanced/copydata.html
2012/07/13(金) 15:50:00.82
>>248
WM_COPYDATA
252デフォルトの名無しさん
垢版 |
2012/07/13(金) 16:24:34.59
でけた^^
253デフォルトの名無しさん
垢版 |
2012/07/18(水) 11:00:07.77
=?shift_jis?B? と "=?Shift_JIS? この形式変換する方法教えてくださあああああああ><

254デフォルトの名無しさん
垢版 |
2012/07/18(水) 11:01:49.18
あ、まちごうた
=?ISO-2022-JP?B? と =?Shift_JIS?B? ですた^^
教えてくださ
2012/07/18(水) 11:41:50.74
知ってるがお前には教えない
2012/07/19(木) 12:04:36.58
test
257デフォルトの名無しさん
垢版 |
2012/07/26(木) 14:42:59.26
C++Builder2010でjconvert.pasをコンパイルしたら
jconvert.hpp内の各関数の引数が全てAnsiStringからUnicodeStringに変わってしまって
正常に実行できなくなるのですが
これちゃんとhpp内の引数がAnsiStringのままになるようにコンパイルするにはどうしたらいいですか?
2012/07/26(木) 22:33:58.28
jconvertは2009以降に対応していないらしい
2012/07/26(木) 22:54:27.62
>>258
あ、なるほど、ありがとう。
じゃあやっぱ他の方法考えないとダメなんですね・・
260デフォルトの名無しさん
垢版 |
2012/07/27(金) 10:51:24.33
教えてください
例えば
ListView->Items->Item[i]->Data = new char[256];
↑みたいにnewした場合に
ListView->Items->Clear( );するとnewしたのも自動的にdeleteされるんですか?
それともClearする前にforで回して1つづつdeleteする必要ありますか?
2012/07/27(金) 13:13:45.46
>>259
Delphi側でString/PCharをAnsiString/PAnsiCharに書き換えるという手もあり

>>260
勝手にdeleteされることはないので、OnDeletionイベントで処理するのがお勧め
2012/07/27(金) 13:31:34.47
>>261
ありがとう
Delphi側でString/PCharをAnsiString/PAnsiCharに書き換えるというのは
jconvert.pasを自分で書き換えるって事ですよね?
2012/07/27(金) 13:40:23.53
そう
jconvert.pasのライセンス条件に注意してね(調べてないけど)
2012/07/27(金) 14:06:09.36
>>263
ありがとうやってみます。
ちなみに、個人で使うだけなので大丈夫です
2012/07/27(金) 14:38:05.17
>>263
何かうまくいかないのですが、
Charでキャストしてるのがエラーになりますが
これは何にしたらいいですかね?
2012/07/27(金) 15:11:57.11
具体的に
2012/07/27(金) 15:17:01.92
これが実際のソース
Result[k] := Char( (dbuf[0] shl 2) or (dbuf[1] shr 4) );

CharをAnsiCharでキャストしたらとりあえずコンパイルエラーは出なくなったけど
動作させても文字が化けて以前と変わらずなもので。
ちなみに、ConvertJCode関連の関数は全てAnsiStrigに変更しました
2012/07/27(金) 15:25:01.78
UnicodeStringとAnsiStringの多バイト文字列の内部表現が違うからじゃないか?
2012/07/27(金) 15:28:28.22
黙ってコンパイルするとUnicodeStringになっちゃいますが
それをAnsiStringに変更しました
2012/07/27(金) 16:12:14.96
Result, dbufの型は?
2012/07/27(金) 16:14:50.26
dbuf: array[0..3] of BYTE;
ResultはAnsiString にしました。
2012/07/27(金) 19:04:21.94
なら単に
Result[k] := AnsiChar( (dbuf[0] shl 2) or (dbuf[1] shr 4) );
でいいと思うが。
2012/07/27(金) 21:40:26.16
>>272
たしかにそれでコンパイルは通りますが
ちゃんと変換できないのはやっぱり別の箇所に原因があるんですねこれ
どこなんだろう
2012/07/28(土) 01:49:34.78
コンパイラに1バイトパッチあてるとデフォルトを ANSI に戻せるよ
2012/07/28(土) 02:45:05.50
タスクバーをクリックしてアプリケーションに戻った時に,
最後にフォーカスがあったフォームしか表示されなく
なってしまった。

ちょっと前まで,全部のフォームが表示されたのに。
何を変えちゃったのか全然分からん。
2012/07/29(日) 10:47:08.53
つ git
2012/07/30(月) 10:05:24.98
IdPOP3->Retrieveって添付ファイルまで受信しちゃってるみたいですが
これ添付ファイルは受信しない方法を教えてください
278デフォルトの名無しさん
垢版 |
2012/07/30(月) 18:18:33.29
スクロールボックスの縦、横のスクロールバーが出てるかどうかを判断する方法を教えてほしい
2012/07/30(月) 20:35:17.81
>>277
できないんじゃないかなぁ

>>278
VertScrollBar.Visibleじゃだめ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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