くだすれC++Builder(超初心者用)その4
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/10/23(金) 09:06:16もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。
Embarcadero Home Page
http://www.codegear.com/jp/
<過去スレ>
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/l50
くだすれC++Builder(超初心者用)その2
http://pc10.2ch.net/test/read.cgi/tech/1144308804/l50
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/
<兄妹スレ>
くだすれDelphi(超初心者用)その50
http://pc12.2ch.net/test/read.cgi/tech/1246340765/l50
0178デフォルトの名無しさん
2010/02/25(木) 17:08:05それやってみたんですが、どうやらStringGridのあれは1つしかなかったので
[0]固定でもOKじゃね?みたいな結論になりますた。
将来的にはどうなるかわからないですがばかとりあえず今はこれで大丈夫なので^^
0179デフォルトの名無しさん
2010/02/25(木) 19:39:45dynamic_cast使っているんだから戻り値がNULLだったらインデックス増やすようにすれば良いじゃん
0180デフォルトの名無しさん
2010/02/26(金) 10:16:56それちがうだろ
forで回すってことはStringGridのアレカウントが1以上あるってことなんだから
NULLが返らずにTInplaceEdit以外のポインタが来るだろJK
だからインデックスをただ増やすんじゃなくてクラスをチェックせにゃいかん
そうなったら結局forでまわしてアレするのと同じ
0181デフォルトの名無しさん
2010/02/26(金) 19:27:23TInplaceEditでdynamic_castしているのにTInplaceEdit *ieにTInplaceEdit以外のポインタが入ることがあるのか?
0182デフォルトの名無しさん
2010/02/27(土) 11:34:27自動的にTEditにフォーカスを移動して文字を入力したいと思い、以下のようにしました。これで正常に動く
のですが、TWebBrowserにフォーカスがあってIMEがオンの時のみ、例えば「ka」を入力すると「kあ」になって
しまいます。他のコントロールの場合はちゃんと変換中の下線付きで「か」になるので悩んでいます。TWebBrowser
に対してフォーカスを離させるような何かの処理が必要なのでしょうか?一応WM_KILLFOCUSを送ってみましたが
変化はありませんでした。
void __fastcall Form1::ApplicationEventsMessage(tagMSG &Msg, bool &Handled)
{
if (Msg.message == WM_KEYDOWN) {
Handled = false;
if (!Edit1->Focused()) {
Edit1->SetFocus();
Msg.hwnd = Edit1->Handle;
}
}
}
0183デフォルトの名無しさん
2010/03/01(月) 09:08:30どうやらDHTMLのkeydownイベントをフックすればよさそうな気がするんですが
TWebBrowser* からどうやってそのイベントをフックすればいいのか分かりません
documentプロパティでDHTMLオブジェクトにはアクセスできそうですが
そっから先はどうやったらいいんでしょうか?
0184デフォルトの名無しさん
2010/03/01(月) 19:26:01VC++とどちらが人口が多いのでしょうか?
あと、初心者がとっつきやすいのはどちらでしょうか?
仕事じゃなくて趣味でやる程度です
0185デフォルトの名無しさん
2010/03/02(火) 20:51:53VC++
>初心者がとっつきやすいのはどちらでしょうか?
C++Builder
0186デフォルトの名無しさん
2010/03/02(火) 20:55:280187デフォルトの名無しさん
2010/03/02(火) 22:03:200188デフォルトの名無しさん
2010/03/03(水) 00:37:27ttp://msdn.microsoft.com/en-us/library/bb508508%28VS.85%29.aspx
0189デフォルトの名無しさん
2010/03/03(水) 03:11:450190デフォルトの名無しさん
2010/03/03(水) 09:24:42Qt Creator
0191デフォルトの名無しさん
2010/03/03(水) 10:35:040192デフォルトの名無しさん
2010/03/05(金) 17:27:20これって仕方がないのでしょうか?
それと、SaveToFileをしてる間はOSごと固まってしまいます
せめて固まるのはアプリだけにしたいのですがどうしたらいいでしょうか?
0193デフォルトの名無しさん
2010/03/05(金) 18:20:231920x1080 * 4byte = 8Mbyte 程度か。
少し古い/遅い CPU を使っているとか?
OS/Driver の組み合わせだと、ディスク書き込み中に OS が反応なくなる場合があります。
もし搭載メモリに余裕があるのなら(といってもいまどき 1Gbyte 位は搭載しているだろうけど)
いったん 別のストリームへ SaveToStream で保存し、それから保存してみたら?
それでも OS が固まるなら、少し別の原因か
0194デフォルトの名無しさん
2010/03/06(土) 04:09:07SSDに載せ替えたので、インストールしなおしたところ、コンパイル時に必ず以下のメッセージが出て止まるようになってしまいました。
Windows - ディスクがありません
Exception Processing Message c0000013 Parameters 764cbf7c 4 764cbf7c 764cbf7c
ググっても常駐ソフトを見直せとかの情報しか無く、困っています。
使用許諾コードは取得してあります。
よろしくお願いします。
0195デフォルトの名無しさん
2010/03/06(土) 10:51:09.ridlファイルで基本的な情報を設定すると
xxx_TLB.cpp と xxx_TLB.hができてひな形が作られるらしい
ということはわかったのですが
そっから先にどうすれば実際のインスタンスが作れるのかが
わかりません
どなたか基本的な使い方の手順を教えてもらえないでしょうか?
0196デフォルトの名無しさん
2010/03/06(土) 12:07:35c0000013で検索した結果はちゃんと見て追試してそれでも何も問題となるようなものはない、
という状況なの?
>195
コンポーネントとしてインストールしてそれをフォームに貼ればいいんじゃない?
0197デフォルトの名無しさん
2010/03/06(土) 16:55:48なんとなく原因がわかりました
BitBlt等にBitmap->Canvas->Handleを渡してビットマップを作るとSaveToFile時に10秒くらいかかるようになってた
これSaveToFileで以前に保存したファイルをLoadFromFileしてからSaveToFileをすると
200msでくらいで終わってたんですが
なんでAPIでアレするとこんなに遅くなりますかね?
しかもOSごとって・・・
0198194
2010/03/06(土) 19:19:50物凄く不安定で、どうしたらいいのやら・・・。
セーフモードで立ち上げた後は動いたりするのですが、しばらくするとまた同じエラーが出たりします。
0199デフォルトの名無しさん
2010/03/06(土) 19:34:020200194
2010/03/06(土) 20:48:25常駐はAntiVirとSpybotとp2proxyくらいです。
0201デフォルトの名無しさん
2010/03/06(土) 22:15:510202デフォルトの名無しさん
2010/03/07(日) 10:29:34IncludeかLibのパスに存在しない場所が指定されてるんじゃない?
以前作ったプロジェクトファイルには存在した場所がSSD環境では消えているとか
0203デフォルトの名無しさん
2010/03/07(日) 10:32:37再現できた
元FDやCDのドライブ名であたってみてくれ
0205デフォルトの名無しさん
2010/03/08(月) 13:33:54同じようなアプリを作った場合
実行速度は変わらないでしょうか?
0206デフォルトの名無しさん
2010/03/08(月) 15:56:01Visual Studio 2010のベータを試してみたら
ポトペタとか簡単にできてBCBとあまり変わらない
BCBの優位ってもうないんでしょうか?
0207999
2010/03/08(月) 16:46:57Visual Studio のC++って相変わらずの原始的レベルだろ。
C丼でいいのならVisual Studio使えばイイじゃん。
0208デフォルトの名無しさん
2010/03/08(月) 17:04:50.NETならば、C++でも、出来の悪いBCBっていう感じだよ
0209999
2010/03/08(月) 18:57:13DialogEditorならC++Builderとは根本的に異なる訳だが。
ちがうのかな?
0210デフォルトの名無しさん
2010/03/08(月) 21:15:530211デフォルトの名無しさん
2010/03/08(月) 22:22:48どこがダメなの?
重いの?
0212デフォルトの名無しさん
2010/03/09(火) 08:52:43だから、C++の標準STLでさえ、STL.CLIっていう特殊なライブラリが必要なんじゃね?
ましてやboostが動作するわけないし、C/C++系のライブラリ混ぜよう、とすると頓挫でしょ。
スタンスはC丼じゃんw
0213デフォルトの名無しさん
2010/03/09(火) 09:12:37Managed型を使わなければSTLも普通に使えるし、
ネイティブにコンパイルしたobjや静的ライブラリもリンクできるぞっと。
ただWinFormまわりは完全に.NETの世界なので、
GUIを手軽に扱うことを目的にC++/CLIを使いたいなら
GUI記述専用の言語が別にあると思ったほうが早い。
0214デフォルトの名無しさん
2010/03/09(火) 10:23:03VC++は使えねーヤシwwwww
0215デフォルトの名無しさん
2010/03/09(火) 11:20:52やっぱりBCBが一番って信じていいんですね
0216デフォルトの名無しさん
2010/03/09(火) 14:58:16エラー内容は
'Debugger'の設定に失敗しました。
このエラーダイアログが出てOKボタンを押しても起動が途中で止まっていて
強制終了するしかないのですが、
これどうしたらちゃんと設定できますか?
0217デフォルトの名無しさん
2010/03/09(火) 19:10:240218デフォルトの名無しさん
2010/03/09(火) 21:50:500219デフォルトの名無しさん
2010/03/10(水) 13:39:26例えば char* p = "あ"; とするとpにはシフトJISのコードが入り
wchar_t* wp = L"あ";とするとwpにはUCS2のユニコードが入ります
後者の方は当然だと思いますが、前者の方はソースコードをUTF8で保存しても
強制的にシフトJISにされてしまいます。他のコンパイラで使っていたUTF8の
コードをコンパイルしたら出力が文字化してしまって困っています。
0220219
2010/03/10(水) 14:40:51C++コンパイラ→拡張でコードページが指定できるのですね
しかしこれだと全部のソースコードの一括指定みたいです
ソースコードごとに指定するのは無理なんでしょうか?
またはソースごとに
#pragma option -CP65001
を指定かな。
char 型のエンコーディングは独立することが C/C++ 言語規格で規定されているので、
まぁしょうがないね。
0224デフォルトの名無しさん
2010/03/10(水) 18:30:45Windows7 professional 32bitにBCB6だけど、Windows2000互換モードで動いてる
参考までに。
0225デフォルトの名無しさん
2010/03/10(水) 18:55:40項目を追加しても、リストに反映されなくて、「完了した項目を表示」のチェックをON/OFFすると
表示が更新される
To-Doリストちゃんと使えてる?
0226デフォルトの名無しさん
2010/03/14(日) 15:55:51これをカレントレコードはそのままにしておく方法はあるでしょうか?
0227デフォルトの名無しさん
2010/03/15(月) 09:44:280228デフォルトの名無しさん
2010/03/15(月) 17:22:05未だにBCB5を使っていたのですがunicodeへの対応が必須になり移行を考えています
質問なのですが現時点で購入するとすればC++Builder2010がベストなのでしょうか?
またProfessional版の場合にはVCLのソースが付属するのでしょうか?
0229デフォルトの名無しさん
2010/03/15(月) 21:12:22C++Builderなら2010だな。当然VCLのソースもついてる。ただしdbExpress/DataSnapは
Pro版ではネットワーク上にデータを流してはいけないというEULA上の制約があるので気をつけて。
0230デフォルトの名無しさん
2010/03/16(火) 09:29:21BCB6でも2010でも両方ともコンパイルできるようにしておきたい。
0231228
2010/03/16(火) 11:58:38情報ありがとう御座います、購入の方を進めてみます
長らく移行出来なかった理由の一つにLightReport2で複雑な帳票を作っていることもあるのですが
LightReport2をC++Builder2009又は2010で使用されている方はおられるでしょうか?
他言語文字がうまく印刷出来るのかどうかを知りたいです
0232デフォルトの名無しさん
2010/03/16(火) 22:19:53それがライブラリなら頑張って#ifdefで共通ソース化する。そうではなくアプリケーションなら
ソースの共通化はすっぱりあきらめる。人間諦めが肝心。
0233デフォルトの名無しさん
2010/03/20(土) 11:02:58MECSUtils
http://homepage1.nifty.com/ht_deko/tech021.html
> Delphi 2007 / 2009 / 2010 で同名の関数を使って同等の処理可能にするのが MECSUtils です。
0234デフォルトの名無しさん
2010/03/20(土) 11:28:12ソースコードの共通化にはあまり向かない。
けれど、かなり特殊なことをしない限りは、シングルソースで対応できるのでまずは移植してみたら?
と書いていて、ここは CBuilder であることに気づいたよ。
tchar の問題とかあるからなぁ。
まず、手持ちのコードを _TCHAR 使うように書き換えて ANSI のままでデバッグ。
wchar_t や tcsXXXX 関数は CBuilder だと大昔からある。
C++ で書いたコンポーネントなの?
0235デフォルトの名無しさん
2010/03/24(水) 10:57:050236デフォルトの名無しさん
2010/03/24(水) 11:00:49おまえらほんと役にたたねーゴミだなw
0237デフォルトの名無しさん
2010/03/29(月) 15:29:14TPanelのCaptionはどうやったら改行できますか?
0238デフォルトの名無しさん
2010/03/29(月) 20:50:52描画されているのだが、高さ方向が常に1行分しか確保されていないので。
0239デフォルトの名無しさん
2010/04/01(木) 16:21:39AnsiString FileName = ExtractFilePath( Application->ExeName ) + "hoge.mdb";
Variant cat = Variant::CreateObject("ADOX.Catalog");
cat.Exec(Function("Create")<<"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";");
上記のコードはC++Builder5なら問題なく動作して正常にmdbファイルが作成されるのですが
C++Builder2007で行うとcat.Execで例外が発生してしまいます。。。
両方同じPCでコンパイルしてるのでOSの問題ではないとおもいます。
2007ではどうしたら正常に動作させることができますか?
0240デフォルトの名無しさん
2010/04/02(金) 11:59:12全部選択状態になっているのですが、これを選択状態にしない方法を教えてください
0241デフォルトの名無しさん
2010/04/02(金) 16:55:560242デフォルトの名無しさん
2010/04/03(土) 13:36:090243デフォルトの名無しさん
2010/04/03(土) 13:48:360244デフォルトの名無しさん
2010/04/03(土) 14:02:03かっこいい
0245243
2010/04/03(土) 16:25:18俺の言う事には必ず従え
0246デフォルトの名無しさん
2010/04/08(木) 18:16:46DateTimePicker->Cursor =crCross;
だとコンボボックスしか変更されなかったので・・
0247デフォルトの名無しさん
2010/04/14(水) 20:36:410248デフォルトの名無しさん
2010/04/14(水) 20:38:17行挿入エラーが出るバグがあるのですが
これを回避する方法を教えてください
0249デフォルトの名無しさん
2010/04/19(月) 09:45:370250デフォルトの名無しさん
2010/04/19(月) 10:37:43どうしたら受信できますか??
0251デフォルトの名無しさん
2010/04/19(月) 12:18:120252250
2010/04/19(月) 15:45:25ただ受信さえできばいいんですが、
BytesReceivedやselectしても全然きてないんです
0253デフォルトの名無しさん
2010/04/19(月) 18:26:52もうひとつは、ファイアウォールなどでブロックされてないか調べる
0254250
2010/04/19(月) 18:27:340255デフォルトの名無しさん
2010/04/19(月) 19:10:490256デフォルトの名無しさん
2010/04/19(月) 19:13:070257250
2010/04/19(月) 19:38:51んで、逆にそのターミナルソフトから送信してやっても受信できない
ちなみにC++Builder2007
ごちゃごちゃほざいてないで、お前等もTUdpSocketで受信を試してみろ
0258デフォルトの名無しさん
2010/04/19(月) 20:03:470259デフォルトの名無しさん
2010/04/19(月) 20:35:040260デフォルトの名無しさん
2010/04/19(月) 20:44:070261250
2010/04/20(火) 11:36:58まじですか
とりあえず2007はバグって受信すらできないので
俺もBuilder5のNMUDPでやってみたんですが、やっぱ送信できても受信ができなかった。
チラっとコード教えて。
ちなみにWindowsのFWはOFFってるしPFWも入れてない。
0262260
2010/04/20(火) 11:58:58void __fastcall TADataModule::NMUDP1DataReceived(TComponent *Sender, int NumberBytes, AnsiString FromIP, int Port)
{
scoped_array<char> buf(new char[NumberBytes+1]);
int s = 0;
TNMUDP& aNMUDP = dynamic_cast<TNMUDP&>(*Sender);
aNMUDP.ReadBuffer(buf.get(), NumberBytes+1, s);
buf[s] = 0;
// ...
}
0263250
2010/04/20(火) 12:52:21あ、どうもありがとう。
むしろ、それ以前にDataReceivedイベントが入らないので
その前のポート設定とかを教えてくださ。
これってbindしなくても勝手に受信できる状態になってるんですかね?
0264260
2010/04/20(火) 13:11:15ReportLevel は 1 にしてる
それだけだよ
0265250
2010/04/20(火) 13:27:32あ、ありがとうありがとう。でけますた。
RemotePortとLocalPortの設定が逆でした馬鹿でした俺はゴミです。
2007のTUdpSocketもそれがアレで受信できなかったのかなあ
とりあえず試してみまふ
0266250
2010/04/20(火) 13:37:012007でもLocalPortとRemotePortを逆にしてやってみたりはしてたんだが
こっちの場合はRemotePortに目的のポート番号を指定しないと出力もできなくなる
だから5のNMUDPでもRemotePortに指定してたんですが・・・
ちなみに、俺は昨日から何をほざいてるかと言うと、
最初はWinsocket APIでUDPで通信していて、相手から受信してから
返答を返す時に、相手が受け取ってくれない(SNMPのアレ)
勿論こっちはちゃんと返答を返しているのはターミナルソフトやWiresharkで確認済み。
んで、WiresharkでよくよくみるとSrcポートとDstポートがどうも逆っぽいみたいな
Winsocket APIでこれを逆にできれば一番いいのだが、調べたがやり方がわからない
そこでVBのうんこコンポで試してみたらLocalPortとRemotePortがあったので
それでアレしてみたら見事にちゃんとなってくれたので
それならBuilderのコンポでやってみるかってことで、
0267250
2010/04/20(火) 13:55:15これ送信するときはLocalPort=0、RemotePort=目的ポート番号で
受信するときはLocalPort=目的ポート番号、RemotePort=0
じゃないとダメなのかこれ
つーことはこれって送信と受信したいなら2つNMUDPを使えってことか!!
なんじゃこの糞仕様はw
0268250
2010/04/20(火) 14:05:36送受信するならLocalPorとRemotePortにポート番号をぶち込めってことだったぽ。。
いろいろすまんこったい
0269250
2010/04/20(火) 14:09:05LocalとRemoteポートを同じにしたら結局APIでやてtるのと同じだこれ。
うんこしてくる
0270デフォルトの名無しさん
2010/04/20(火) 14:10:11ひとつで送受信は一応できると思う。
LocalPort : 待ち受けポート番号
RemotePort: 送信先ポート番号
っていうことで、送信元ポート番号や受信元ポート番号を
指定できない糞仕様だったと思う。
0271250
2010/04/20(火) 15:13:44VBのアレが同じLocalPort、RemotePortって名前で
向こうはしっかりとSrcポートとDstポートがアレできてたから
こっちもてっきり出来ると思っていたんですが、どうやらうんこだったようで・・・
0272260
2010/04/20(火) 15:25:32なのでググりながらwinsock使ったことあるけど
難しくはないと思うよ
0273250
2010/04/20(火) 15:30:37ええええ!!
winsockでは普通に送受信はしてたんですがー
それでSrcポートとDstポートって制御できましたか??
その辺を是非教えて頂きたいです
0274デフォルトの名無しさん
2010/04/21(水) 16:37:04解決なり時間費やすはめになる。
0275デフォルトの名無しさん
2010/04/21(水) 17:41:18マイナーかどうかは余り関係がないと思う。
それを補って余りあると考えている人間が使っているのだから
以下略
0276デフォルトの名無しさん
2010/04/26(月) 10:53:03ListView1->SortType = stData;
ってすると、stDataが曖昧だってコンパイルエラーがでます。
これどうやってキャストしたら馬鹿な2007は納得してくれますか?
0277デフォルトの名無しさん
2010/04/26(月) 10:59:51■ このスレッドは過去ログ倉庫に格納されています