C++Builder相談室 Part10

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-5あたり。
<Tipsなど>
C++Builderのお部屋(Tips系)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/
C++Builderによるプログラミング(Tips系)
http://www.geocities.co.jp/SiliconValley/7201/
Delphian World(コンポーネントライブラリ)
http://home1.infonia.ne.jp/~delphian/delphi/
Borland C++Builder最新リンク2004(リンク集)
http://www2.famille.ne.jp/~akio1998/l_cpb.html

<参考図書>
C++Builder 6コンポーネント活用ガイド&実践プログラミング
Vol.1
http://www.amazon.co.jp/exec/obidos/ASIN/4877830618
Vol.2 実践テクニック編
http://www.amazon.co.jp/exec/obidos/ASIN/4877830626
Vol.3 データベーステクニック編
http://www.amazon.co.jp/exec/obidos/ASIN/4877830634
Vol.4 インターネット編(1)
http://www.amazon.co.jp/exec/obidos/ASIN/4877831061
Vol.5 インターネット編2
http://www.amazon.co.jp/exec/obidos/ASIN/4877831088

※BCBの定番解説書。BCBを購入したけど何から勉強したら良いか
 判らないという人は取り合えずVol2から読みましょう。
※データベースやインターネット関連はDelphiの解説書も役に立ちます。
<ツール/コンポーネント>
<<フリー>>
フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/software/nonfreecursor.htm
GExperts−IDE拡張
http://www.gexperts.org/
BorCVS - IDEにCVSを統合
http://borcvs.sourceforge.net/
Indy
http://www.indyproject.org/index.html
JCL
http://homepages.borland.com/jedi/jcl/
JVCL
http://homepages.borland.com/jedi/jvcl/
TurboPower
http://sourceforge.net/users/tpsfadmin/
<<有料>>
TMS Component Studio
http://www.tmssoftware.com/
LMD-Tools(ただし、Special Editionはフリー)
http://www.ceberus.com/lmd/index.php3
<関連サイト>
公式サイト
http://www.borland.com/cbuilder/
http://www.borland.co.jp/cppbuilder/

builder-ML 過去ログブラウザ
http://leed.issp.u-tokyo.ac.jp/~takeuchi/builder/browse.cgi
http://www.sfdata.jp/ML/cbuilder/newlog.php?ml=cbuilder

C++Builder メーリングリスト
再登録が必要
http://www.sfdata.jp/ML/menu.php?ml=cbuilder


<Update>
BCB6/US SP1 は BCB6/JP 製品版に含まれています。

C++Builder 6 Update4 日本語版
ftp://ftp.borland.co.jp/pub/cbuilder/
<関連スレ>
BorlandBorland C++ BuilderX
http://pc5.2ch.net/test/read.cgi/tech/1065260556/l50
タダで使えるBorland C++ Part3
http://pc5.2ch.net/test/read.cgi/tech/1054390397/l50

<VCL兄貴のDelphiスレ>
くだすれDelphi(超初心者用)その15
http://pc5.2ch.net/test/read.cgi/tech/1087823906/l50
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その12
http://pc5.2ch.net/test/read.cgi/tech/1084397575/l50
Delphi相談室(上級者用)その12
http://pc5.2ch.net/test/read.cgi/tech/1064766880/l50
Delphi相談室(中級者以上)その12
http://pc5.2ch.net/test/read.cgi/tech/1064420818/l50
Delphi初心者】今から始めるDelphi Part01
http://pc5.2ch.net/test/read.cgi/tech/1062422335/l50
前スレ忘れた・・・
C++Builder相談室 Part9
http://pc5.2ch.net/test/read.cgi/tech/1080541814/l50
>>1
9デフォルトの名無しさん:04/07/09 18:21
こんんいちw
10デフォルトの名無しさん:04/07/10 01:10
10
質問です

C++Builderから,Excel形式のファイルを出力できる
コンポーネントってないですか?

>>11
前スレが落ちてるのでこぴぺ。
>>ttp://pc5.2ch.net/test/read.cgi/tech/1080541814/785
>ここ見れ。Excelに吐き出す方法が載っている。別に何か買う必要はなし。
>ttp://www.wwlnk.com/boheme/delphi/techdoc/dad0070.html

>ポイントはDBGridを何とかすることではなく、DBGridの基になるDataSetからなんとかすること。
>コンポーネントだったらここにある
>ttp://www.maxcomponents.net/ (Excel)
>http://www.korzh.com/delphi/ (CSV, TXT)
1311:04/07/11 07:23
>>12
ありがとうございます!!!

今改造しようとしてるのが,CSV吐いてExcelのVBA呼び出して・・・
という( ´Д`)なことやってるので,これで書き換えようと思います。

14名無しさん@そうだ選挙に行こう:04/07/11 19:34
プログラムからCGIに値を渡すにはどうしたら良いですか?
WEBフォームで送信ボタンを押したのと同じことをしたいのです。
>>14
CGIへの値の渡し方による。
まずそのCGIの渡し方を見極めろ。
http://tohoho.wakusei.ne.jp/wwwcgi3.htm#CgiParameter
>>14
TNMHTTPでGetかPostか決めてアクセスすればぃぃ
17デフォルトの名無しさん:04/07/11 23:43
HOARDというメモリーアロケーターはちょっと凄そうなのだが、
BCBからうまくリンクできますか?
ttp://www.cs.umass.edu/~emery/hoard/
できた人、情報アップ求む
"...if you'll be running on multiprocessor machines,
... use Emery Berger's excellent Hoard multiprocessor memory management code.
It's a drop-in replacement for the C and C++ memory routines
and is very fast on multiprocessor machines."
Debugging Applications for Microsoft .NET and Microsoft Windows, Microsoft Press, 2003

マルチプロセッサで効果発揮?
FrameにFormのようにLineで線を引くにはどうしたらよいのでしょう?
20デフォルトの名無しさん:04/07/12 11:00
>>12
Excelは起動するのですが、ワークシートが作成されません。
環境はBCB5proで、Excel2000、XPです
21デフォルトの名無しさん:04/07/12 11:17
ExcelWorksheet1.ConnectTo( ExcelWorkbook1.Worksheets['Sheet1'] as _Worksheet);
ExcelWorksheet1.Range['A1','A1'].Value := Edit1.Text;
上記の2つをC++Builderではどのように表現すればいいのでしょうか?
こうかな
ExcelWorksheet1->ConnectTo(ExcelWorkbook1->Worksheets->get_Item(TVariant("Sheet1")));
ExcelWorksheet1->Range[TVariant("A1")][TVariant("A1")]->set_Value(TVariant(Edit1->Text));

なんかItemやValueのプロパティが用意されてないね
23デフォルトの名無しさん:04/07/12 14:51
>>22

ありがとうございます。

ExcelApplication->Connect( );
ExcelApplication->Visible[0] = true;
ExcelWorkbook->ConnectTo( ExcelApplication->Workbooks->Add( NULL, 0 ) );
上の2行でエクセルを表示することはできたのですが
その下の行を実行するとエラーになってしまいます。
どのように記述すればいいのでしょうか?
こうかな
ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add(TNoParam(), 0));
25デフォルトの名無しさん:04/07/12 15:15
>>24
激しく神
ほんとうにありがとうございます。
しかしその行を実行するとエクセルは起動するのですが途中で止まってしまいます。
(タイトルバー&ツールバーが表示されてその下のビュー画面が表示されていない状態)
BCB5をインスコする時にオフィスは2000を指定してエクセルも2000を使っています。
何が原因なのでしょうか?
>>25
タスクマネージャ見たら、Excel.exeのプロセスが残ってない?
エラーとかで異常終了したら、残ることがあるもより。そのせいだと思う。
27デフォルトの名無しさん:04/07/12 15:30
>>26
それはプロセスを終了してからやっていたのですがダメでした。
もうちょっと色々やってみます。
あちがとうございました。
そか…俺も同じ事があったけど、いろいろしてたら直ってた。プロセスは関係なかったか。
ちなみに↓によると、Visble[0]のとこは Visible[LOCALE_SYSTEM_DEFAULT] らしい。
http://www.borland.co.jp/cppbuilder/papers/servers/servers2.html
29デフォルトの名無しさん:04/07/12 15:55
>>26
超神
Excel.exeを1つ終了して油断していたらもう1つ存在していました。
それを終了してやったら見事にできました!

ちなみに>>22で教えて頂いた↓
ExcelWorksheet1->Range[TVariant("A1")][TVariant("A1")]->set_Value(TVariant(Edit1->Text));
を行うと、
[C++ エラー] Unit1.cpp(27): E2316 'Range' は 'TExcelWorksheet' のメンバーではない
というコンパイルエラーが出てしまいました。
TExcelWorksheetをヘルプで見てもTOleServerのヘルプしかでないもので・・
BCB5のだとヘッダ見る限り、Get_Range(TVariant("A1"), TVariant("A1")) かな。
BCB5入れてないから、コンパイルして確認は出来ないけど。

> TExcelWorksheetをヘルプで見てもTOleServerのヘルプしかでないもので・・

そういう時は、ヘッダでTExcelWorksheetの定義を調べたり、
コード補完でどんなメソッドやプロパティがあるか見てみると分かるよ。
31デフォルトの名無しさん:04/07/12 17:05
>>30
鬼神
なにからなにまでありがとうございました。
ExcelWorksheet1->Get_Range[TVariant("A1")][TVariant("A1")]->set_Value(TVariant(Edit1->Text));
↑で[C++ エラー] Unit1.cpp(27): E2235 メンバー関数は呼び出すかそのアドレスをとらなければならない
というコンパイルエラーがでました・・
(と[
>>32
神の申し子
ありがとうございました。
これでやりたいことができました!本当に感謝です。
34デフォルトの名無しさん:04/07/12 19:26
COMを用いたプログラムを作っていて,
COMにhwnd(Handle)を渡す必要があるのですが,
VCLのImageを使っていて,Imageのcanvas->handleはHDC(デバイスコンテキストハンドル?)のために
期待した動作をしてくれません.
Imageのhwndを取得することは可能でしょうか?
なんか、ジャンプの格闘マンガみたいだな。
BCB5で、ソースからライブラリを作って
そのライブラリを「プロジェクトに追加」で追加したにもかかわらず
リンカエラーで外部シンボルが見つかりませんになります。
何がおかしいかわかる方いらっしゃいますでしょうか?
-prとか
>>34
TImageはグラフィックコントロールで、
グラフィックコントロールは、ウィンドウに描かれた絵でしかないので、
ウィンドウハンドルは持ってない。
まあ親ウィンドウのハンドルが、そうと言えばそうかもしれないけど…。

どんなプログラムかわからないけど、TPanelとかで代用できる希ガスるね。
異常終了のタイミングでコンポーネントパレットが壊れちゃうことがあるのですが、
このあたりを手で直すには、どうすればいいのでしょう? 単純なファイル上書きではダメみたいで。
うちの場合、必ず Win3.1 の中が空になって、TDrivfeComboBox などが使用不能に。
4034:04/07/13 03:27
>>38
そうですね,Panelですとhandleが取得できると思うのですが,
PanelだとCanvasが用意されていないなど点が今後のプログラムの中で面倒になり
Imageを使いたかったのですが.
PanelでもGetDCで描画できるようなので試行錯誤してみます.
41デフォルトの名無しさん:04/07/13 08:36
フォルダ選択ダイアログを出すにはどうしたらよいのでしょうか?
>>41
ディレクトリ ダイアログボックスでヘルプ検索しる
SelectDirectory
44デフォルトの名無しさん:04/07/13 11:50
BCB5ProでTTableのDataTypeをftFloatにしてテーブルを作成し作成したテーブルを読み返すとDataTypeがftSmallintになってしまいます。
これをftFloatと認識させるにはどうすればいいのでしょうか?
データベースドライバはMicrosoft Access Driver (*.mdb)で.mdbファイルです。
!!hogehoge!!
!!hogehogehoge!!
↑こんな感じで先頭と末尾に!!が付いてる文字列から
!!を除いてhogehogeにするのはどうすればいい?
ヘルプ見たけどよくわからん
4645:04/07/13 16:42
とりあえず LeftStr と RightStr で解決しますた
>神
>激しく神
>超神
>鬼神
>神の申し子
ワラタ
途中からすごくなってんのかどうかもよくわからんし
>40
TCustomControlを派生させるよろし。
ウインドウハンドルも、Canvasも付いてる。
49デフォルトの名無しさん:04/07/14 00:38
装置をモニタリングするようなプログラムってやはりスレッドを起こして
そのスレッドの中で無限ループをまわしているんですかね?
例えば
while(1) ReadFromFA();
なんて・・・
50デフォルトの名無しさん:04/07/14 02:13
>>49
外部割り込みをフェッチするんでない?
>>49
外から信号が来るなら>>50のような感じで、

こっちからキックするなら、タイマー使って時間が来たらイベント起こす。
たとえばTimer1を置いて、Intervalを1000とかにしておいて、
OnTimer( ) の中で計測処理。という感じじゃだめでしょうか。
TListにTObjectから派生させたクラスを動的に作ってTListに収納していっています。
TObjectはAnsiStringのFileNameとAnsiStringのIDの二つが入っています。
んでTListにどんどんどんどんファイル情報を蓄えていって。その後それをファイルか
何かに保存するのはどうしたらよいでしょうか?
アプリケーションが終了しても次回起動時読み出して再利用したいのです。

どなたかおしえてください
>>TObjectはAnsiStringのFileNameとAnsiStringのIDの二つが入っています。
TObjectから派生させたクラスには
AnsiStringのFileNameとAnsiStringのIDの二つが入っています。
の間違いですごめんなさい
>>52
VCLで処理するならTStringListを使うのがお手軽っしょ。

//書出し処理
//ホントは例外に対応する要あり
 //TList* list;
 TStringList* file = new TStringList;
 TStringList* line = new TStringList;
 for ( int i=0; i<list->Count; ++i ) {
  line->Clear();
  line->Add( list->Items[i]->FileName );
  line->Add( list->Items[i]->ID );
  file->Add( line->CommaText );
 }
 file->SaveToFile( "save_file.csv" );
 delete file;
 delete line;

読込みは書出しを逆にすればいい。これは宿題にしましょ(w
algorithmを使う方がC++的のような気もするが、そっちは自分で勉強してちょ。
新規作成のプロジェクト選択で、Win2000ロゴアプリケーション、とか、Win95/98アプリケーション、て何ですか?
つ[ ttp://www.microsoft.com/japan/windowsserver2003/partners/isvs/cfw.mspx ]
簡単に解説しとくと、MicrosoftにDesined for Windows ってロゴをもらうためのもの

たしか、ステータスバーがあるとかメニューバーのFileからセーブロードがあるとか
メニューバーに編集があるとかいくつか条件が並んでて
そのプロジェクトを選択すると、最低限必要なものは最初から
全部組み込まれたテンプレートが読み込まれる
Formのクライアント領域で発生するマウスイベントを全て透過して、
下の別のアプリケーションへ送るにはどうすれば良いのでしょうか。

動作としては、SetLayeredWindowAttr で LWA_COLORKEY を指定
した時と同じようにイベントが筒抜けになるようになってほしいのです。

今BCB6使っています。
Linuxのgccでコンパイルできるようなソースを作るには、
どうすればいいですか?
GUI込みならまず不可能。
Kylixを検討したら。
>>58
windows.hをインクルードしない。
>>19
TShape
>>45
StringReplace
62デフォルトの名無しさん:04/07/15 16:19
良いtipsサイトを紹介してください
64デフォルトの名無しさん:04/07/15 18:06
>>60
vcl.h
はいいのかしらん?
駄目にキマットルだろ、ボケ。>>64
66デフォルトの名無しさん:04/07/15 18:18
ボケにキマットルだろ、ボケ。>>65
6758:04/07/15 18:34
皆さんレスありがとうございます。
プロジェクト>オプション>コンパイラ(詳細)>準拠する言語仕様>ANSIやUnix V
にしてもだめ?では失礼します。
>>67
どんなプラットフォームで動くどんなアプリを作りたいんだよ。
69デフォルトの名無しさん:04/07/15 21:34
newについてよく分からないんですけど、
newについて分かりやすく書いてあるサイトはありませんか?
Builderの質問ですらないよな。
>>69
それはC++の基本です。
それが判らないレベルなら、サイトで勉強するんじゃなくて
きちんとしたC++の入門書を読んだ方が良い。
その方が結果的には確実で理解も早いよ。
具体的な書名は推薦図書スレを見ましょう。
72デフォルトの名無しさん:04/07/15 22:22
newの実装が知りたいのですが・・・
Builderの?
74デフォルトの名無しさん:04/07/15 22:45
TTreeView::Itemsのヘルプを見ると

> たとえばツリービューの 2 番目の項目にアクセスするには次のようなコードを使います。
> MyTreeNode = TreeView1->Items[1];

と、ありますがコンパイルすると、
[C++ エラー] Unit1.cpp(23): E2034 'TTreeNodes' 型は 'TTreeNode *' 型に変換できない
と、出ます。TreeView1->Items[x]という使い方はできないのでしょうか。
すみません解決しますた。↓でできました。
MyTreeNode = (*TreeView1->Items)[1];
ヘルプのミスかな…
>75
ヘルプ、
MyTreeNode = TreeView1->Items->Item[1];
じゃないのかい?うちのはBCB5だけど。。。

Items(TTreeNodes)とItem(TTreeNode)は違う。
ややこしいけど、前者はノードの塊を指し、
後者は一個一個のノードを指している。
こんなところがバージョンで変わってるとは思えないんだが。

ていうか、>75のソースで期待通りに動くの?
ものすごいことやっちゃってると思うんだけど。
>>74-76
BCB6のヘルプを確認したところ、>>74になってます。
とんでもない誤記ですな。
当然、>>76が正しいのですよ。>74氏
>>76
BCB6 では、>>74 の言っている通りにヘルプには書いてある。
更に BCB6 だと TTreeNodes では演算子 [] がオーバーロードされていて、
Treeview1->Items[1] で TreeNode * が取り出せるようになっている模様。
7978:04/07/16 00:21
う〜ん。>>77 と被ったか。でも言ってる事が違う…。
DelphiからHELPを移植したときのデフォルトに関する扱い
絡みのミスか?
8177:04/07/16 00:47
>>78
TTreeNodes::operator[]( int )があるので
 (*TreeView1->Items)[1];
これが使えると。
でも
 Treeview1->Items[1];
はだめでしょ。
↑でも TTreeNodes::operator[](int)なんてしらんかったよ(w
DelphiはC++みたくメンバ参照でインスタンスとポインタを区別しないからだな。
84デフォルトの名無しさん:04/07/16 03:58
C++Builder5でIDEのメニューバー「実行」→「実行」を
クリックすると必ずCPUウィンドが出てくるようになってしまいました。
こんなの見てもわからないので出ないようにしたのですが、どうすれば
いいのですか?
>>84
再インスト。
ttp://www.borland.com/products/downloads/download_cbuilder.html

2004/07/13 - C++Builder 6 Linker Update
ilink32 version 5.66

大きなオブジェクトをリンクするときにおきるアクセスバイオレーションを修正。
87デフォルトの名無しさん:04/07/16 09:20
ショートカットアイコンの右クリック->プロパティで表示されるダイアログボックスを表示する方法を教えてください。
Sleepをコールしようとすると、
Win32APIのものと、IdGlobal.hppのものと2つあります。

namespaceとか使って、Win32APIにリンクしたい場合にはどうしますか?
::Sleep
オォ、コンパイル通りますた>89

::Sleep
^^^^^^^

これって、namespace指定してないように読めるんですが、どうなんでしょ。
>>90
グローバル
Win32 API は namespace を持ちません。
namespace を指定されていない識別子はグローバルな名前空間に格納されます。
 ::Sleep
も形式的には名前空間を指定された識別子です。ただグローバルな名前空間には
名前がありません。
93デフォルトの名無しさん:04/07/16 14:43
C++Builder8はいつでるの?
出ない>>93




ttp://www.drbob42.com/cbuilder/index.htm
2004/05/13 - C++Builder version 9?
95デフォルトの名無しさん:04/07/16 22:18
C++Builder6で開発終了ってアナウンスあったじゃん
ilink32 version 5.66の直リンキボンヌ
>>95
ソースは?
9876:04/07/16 23:57
>77-83
勉強になりますた。
99デフォルトの名無しさん:04/07/17 00:04
>>97
/usr/src/linux
にあると思います
改行が含まれるデータ(例: str="うんこ\nまんこ")を、
改行が反映されるようにMemoに書き加えるにはどうしたらいいですか?

Memo1->Lines->Text = Memo1->Lines->Text + "ヽ( ・∀・)ノウンコー\nウンコーヽ(・∀・ )ノ";
ilink32 v5.66 にしても相変わらずインクリメンタルリンカでエラーがです。
103376:04/07/17 14:50
じゃ、Borland にレポートしろ。
エラーです。だけじゃ誰も何も言えん。
CBuilder の ML で小躍りしていたバカがいたが、あいつの抱えていたバグはなおったんかいな。
105デフォルトの名無しさん:04/07/17 17:09
BCB6にイースターエッグってあるの?
>>105
バージョン情報のダイアログには仕掛けがある
ビルド中(おそらくリンク中)にBCB6自体が応答なしになることが
頻繁に怒るのですけど、解消する方法とか知りませんか?
>>107
リセットボタン
109デフォルトの名無しさん:04/07/18 00:46
つか、CBuilder の ML ってばかばっかw
>>109
お前はさぞ利口なんだろうな

おっと、利口なやつは2ちゃんねるなんかに来ないか 失敬
C++BuilderXに入っているilink.jpnをC++Builderのbinフォルダに放り込むと、
ilink.exeを5.66にしてもエラーメッセージが日本語になる、ってガイシュツ?
112デフォルトの名無しさん:04/07/18 13:25
TStringGridでControl-Cが押されたのを捕まえたいのですが、
どんなメッセージをキャッチすればいいのですか?
5年前はC++BuilderMLの流量が1日20〜40通。
現在は1日平均3通くらい
BCBの廃れ具合が良く分かりますね。
ほとんど過去ログで済むからじゃねーの?
あれ、BCBMLって移転した?
登録してあるはずなのにぜんぜんメール来ないぞw
116デフォルトの名無しさん:04/07/18 17:13
でも、本当なんでだろう?
BCBとVC++比べたら圧倒的にBCBの方が楽なのに
なんでVC++がメジャーなのかな???
商用として耐えうるデバイスドライバなんて書いてる人なんて極少数
じゃないの?
AutoCADが操作性クソなのに業界標準みたいなもんかなぁ
作るのは楽かもしれないけど,ソース読むのは苦痛だなぁ。
.cppファイルだけみても,どこから呼ばれるのか分からなくて
慣れるまで苦労したよ。

C++知らないやつが書いたソースだとさらに最悪。
なんで全てグローバル変数にするのかと小一時間・・・

>>118
>.cppファイルだけみても,どこから呼ばれるのか分からなくて
>慣れるまで苦労したよ。
それはVCLを理解してないから。

>C++知らないやつが書いたソースだとさらに最悪。
>なんで全てグローバル変数にするのかと小一時間・・・
それはBCBの問題じゃない。

ただし「COBOLer にいきなりC++やらせるな」と
言いたいなら、激しく同意。
120デフォルトの名無しさん:04/07/18 18:39
漏れもそうだが、BCB使ってる奴ってVC++に挫折した奴が
多くない?
>>119
イベントハンドラが,.cppでなくて,フォームの中に記述してあるじゃないですか。
.cppと.hppだけを,エディタ(emacs)で追いたいわけなんです。
IDEのエディタも,書くときは . か -> を入力したとたんに使用できるメソッドが
表示されて,書く人には楽でしょうけど,読むにはタグジャンプもなくてつらくて。

(以下愚痴)
今改造させられてるソースが,すべてグローバル変数 & 関数が全て
void hoge(void) の形式なんです。
原作者はCOLOLerでなく,C経験者なんですけどね( ´Д`)
122デフォルトの名無しさん:04/07/18 18:49
>119
イベントハンドラが,.cppでなくて,フォームの中に記述してあるじゃないですか。
↑意味不明なのですが・・・
すんません,
イベントハンドラの『定義』です

124デフォルトの名無しさん:04/07/18 18:53
>>120
VC++知らずにいきなりBCBなんだが…
だめ?
125デフォルトの名無しさん:04/07/18 18:56
>>124
別にだめじゃないけど・・・
試しにVC++やってみなよ。
10秒で挫折すること必至!w
126119:04/07/18 18:59
>>125
そう?
漏れは,VC++のSDKのソースの方が理解しやすいな・・・
ハード屋なんで,中身が見えないとなんか不安で。

まちがい,118です
128デフォルトの名無しさん:04/07/18 19:02
SDK、はぁ?
SDKならBCBでも同じじゃん
VC++の難しさはappウィザードが吐き出す大量のコードと
doc/viewアーキテクチャだと思うよ
そうなんだ
漏れ,ドライバしか扱ったことないからわからんかった

doc/viewアーキテクチャが分からなかったら
Strutsなんて使えないだろうな。MVCだし。
131デフォルトの名無しさん:04/07/18 19:10
理解しようとするから挫折するんだよ
MFCのDoc/Viewを読み解くには
C++に相当精通した上で、ソフトウェア工学についての知識も
必要になるのでまず無理です。
ほとんどの人、俺もそうだがあまり深く考えずに”こういうもんだ”と
おもっていれば問題ないことが多いよ
ここはBuilderスレです。
BCBではTMainFormのpublicに変数全部置いておけばOK。
>>132
スマソ,話そらしてしまって。
逝ってくる。

134デフォルトの名無しさん:04/07/18 19:36
>>132
BCBの場合、良くも悪くもそれで問題ないことが多いですねw
135デフォルトの名無しさん:04/07/18 20:01
Document/Viewなんてとっくの昔にオプション選択できるようになったじゃん。
あれをわざわざ苦しみながら使う必要なんて、もうないんだよ。
>>121
読む時は Grep & Doxygen。
Cの文法がある程度解っていれば、とりあえず動くモノは作れるな

ヘタに素人に作らせると、メンテで泣くことになるかもしれんが
>120


VCも勉強しようとは思っているが
使い慣れたCで、簡単にとりあえず動く物を作れるのはうれしい。

弱点はBCB自体がちょっと不安定な所か。
entityは標準ライブラリでガシガシ書いて
BCBでUIをポトリペタリ作るってのは少数派なのかな?
それやるとexe膨らみまくるから少数派だろう
141デフォルトの名無しさん:04/07/19 11:58
>>140
HDDも無駄に大容量化してるし、ブロードバンドも普及し、
リムーバブルなメディアも数百円程度の時代にコンパクトな実行ファイルなんて
なんの意味があるの?
でも普通VCL使うよね。
TListとかTStringListとかAnsiStringとかあるし。
143デフォルトの名無しさん:04/07/19 12:18
>>141
禿同
組み込みならいざ知らず、PC向けのアプリケーションなら
実行速度に問題がなければサイズなんて何の意味もない
AnsiString使わないでstd::string使ってるの?
VCLに渡す時に一次オブジェクト生成するから時間かかっちゃうよ?
145デフォルトの名無しさん:04/07/19 17:45
>>144
情報源は?VCLのソースのどの部分みて言ってんの?
生兵法は怪我の元やで、しかし!
146デフォルトの名無しさん:04/07/19 17:48
>145
AnsiStringのソースはdstring.cppだけど、
そんなもの見なくてもstd::string->const char*->AnsiStringの変換が必要になるから、
AnsiStringの一時オブジェクトが生成されるのは分かるよね?
それと、const char*にはAnsiStringと違って長さ情報が無いから、
LStrFromPCharを呼んでるよね。これも余計な時間がかかる原因。
その程度の事ならなんでも無いよ。
そもそもRAD自体が富豪的プログラミングの典型だからね。
速いプログラムが書きたければBCBなんて使うべきでは無いよ。
STL自体が富豪的プログラミングだしな。
テカプレートだから型ごとにコードが膨らんでくし。
オブジェクト指向自体が富豪的プログラミングだしな。
高級言語自体が富豪的プログラミングだしな。
>>1-1000
nasmでも使ってろよ
Windows自体がそうじゃん。
そんなに気になるならVRAMに直接書き込めばイイ
154デフォルトの名無しさん:04/07/19 18:37
>>153
はぁ、?VRAM?
なに言ってんの、このボンクラは?
155デフォルトの名無しさん:04/07/19 18:52
ぶっちゃけ、仕事でC++Builder使ってる人いる?
漏れの職場はほぼVC++、漏れも最初は抵抗あったが
慣れてくるとBCBのポトペタ環境なんてどうでもよくなった。
BuilderMLから会社ドメインのメルアドの人検索すれば分かるよ
157デフォルトの名無しさん:04/07/19 19:03
>>155
会社ドメインのメルアドでBuilderMLにメールを出すことと
仕事でC++Builderを使うことにどんな因果関係があるの?
>>157
大抵質問内容が業務用アプリに関することが多いんじゃない?
〜というものを開発しているのですが・・・とか
>>155
ノシ
>>139
俺もそうだよ。少数派の一人かもしれんが。
組み込み用の処理を、Builderで書いたテスト環境に
放り込むとかよくやるんでね。


>>105
シフト、コントロール両キーを押したままBuilder起動で
スプラッシュが変わるよ。

Builder5では某ジラの絵(数種類あり)になって
おまけに鳴き声まで出るので、最初偶然見たときはPCが
病原菌に感染したかと焦ったな。
>>160
BCB5の某ジラは見たことあるが
BCB6は見たことないなぁ。
ちなみにShift+Ctrlでは出なかった。>BCB6
>>162
スマソ。BCB6ではShift+Ctrl+Alt起動だったかな?
6は手元にないのでうろ覚え。
>>162
あー、ごめん。BCB6もShift+Ctrlでヲケだ。
オレの押すタイミングが悪かっただけだ。
スマン。

あと、BCB6でもバージョン情報で
 alt+"gungla"
も生きてる模様。
164デフォルトの名無しさん:04/07/20 09:53
現在、ソフトウェアキーボードを作ろうとしているのですが、BCB6でボタンを押されても
キーボードのウィンドウにフォーカスを移すことなく、入力イベントだけ受け取るようなプ
ログラムは可能なのでしょうか?
キーフックですかね
キーフックに不可能は無いが、工数かかりまくりになりやすい。

コンポーネントを派生とか組み合わせてキーボードコンポーネントを自作するのがデフォでしょ。
MouseActivateとかその辺の返り値をいじくったらよかったのかな。
ボタンを配置しなくてFormのCanvasにキー描画しないといけないぽいけど。
Win標準のソフトウェアキーボードってそうなってんのかな?
ここ↓のソースコピペしても普通に二重起動できてしまいます。
どうしたらいいですか?
ttp://www.geocities.co.jp/SiliconValley/4805/bcbtips/bcbtips002.htm
>>168
WINAPIのヘルプ見るとわかるけど、CreateMutexやOpenMutexに使う文字列に円マークは使えない。
Application->ExeName.c_str() を適当な文字列(ユニークな)に変更すればうまくいくと思う。
なんだそのショボイ間違ったtipsを公開してるサイトは?
まぁプログラミングしてるとサンプルソースが間違ってたり、ヘルプが変だったりするから慣れっこだな(´・ω・`)
そこの二重起動防止ヤバすぎ。
ReleaseMutexは普通はしないし(アプリ終了時に勝手に開放される)、
OpenMutexせずに直接CreateMutexで確かめるのが普通。
そうしないとタイミングによっては二重起動しちゃうから。
まあ金払わせるようなTipsサイトよりはマシ。
二重起動防止は、 ttp://www.kobira.co.jp/sakura/d_system.htm の TMainInstance を使うべき。

画面に貼るだけで良いし、
2度目の起動を止めるだけでなくさらに既に起動しているプログラムをアクティブにしてくれる。
>>169
ありゃ、そうなんですか、有難うございます。
質問です。

C++BuilderのPersonal版を買おうかな?と思っていますが、
このPersonal版では、TCP/IP関連のコンポーネントは利用できるのでしょうか?

なんでも、TServerSocket,TClientSocket などがあるようなのですが……。
メインアイテムにスプリット入れるのはどうやるんですか?
↑メニューアイテムの間違いです。
>>177
Captionを「-」にする
C++ のプログラム作ったんだけど、実行して最後まで行くと
DOS窓ごと終了してしまうのってなんとかならない?
エクスプローラーからの起動ならDOS窓残ってくれるんだけど。
181180:04/07/20 20:50
X エクスプローラーからの起動
O DOSからの起動
>>180
とりあえずプログラム終了時にDOS窓ごと消えるのはしょうがないと思う
なので、プログラム終了前にキー入力待ちにすれば?
>180
DOS窓から実行する
184180:04/07/20 21:11
>>182
getch() で待てせて見まふ

>>183
(;´Д`)
185リア工:04/07/20 22:14
↓これだとMessageDlgが出る時にSaveDialogが閉じてしまいます。どこを変えればいいですか?
 
 if(SaveDialog1->Execute()){
   if (FileExists(SaveDialog1->FileName)){
     if(MessageDlg("同じファイル名が存在します。\n上書きしますか?",
      mtConfirmation,TMsgDlgButtons() << mbYes << mbCancel, 0) == mrYes){
      Memo1->Lines->SaveToFile(SaveDialog1->FileName);
     }
   }
   else{
      Memo1->Lines->SaveToFile(SaveDialog1->FileName);
   }
 }
そらExecuteが終わった時点で閉じてるからな。
上書き確認したいなら、SaveDialog1->OptionsのofOverwritePromptをtrueにしておけばいい。
187リア工:04/07/20 22:26
>>186
解決しました。ありがとうございました
188デフォルトの名無しさん:04/07/20 23:37
はじめてのC++を買ったんですけど、
はじめてのC++のソースサンプルを
C++Builderでコンパイル&実行したいんです。
どうすれば出来ますか?
189リア工:04/07/20 23:45
Memo1の○行目の△列目の文字を指定するのはどうやりますか?
>>188
フォームの真ん中にボタンを貼り付ける。
そのボタンをダブルクリックするとUnit1.cppに飛ぶから
その中に以下の文を書き込んで実行。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application->MessageBoxA("氏ね","氏ね",MB_OK);

}
オラ、夏のにおいがしてきたぞ
192164:04/07/21 00:04
>>165-167
返答ありがとうございます。とりあえずその中で心得があるのはフックだけな
ので、その線で作ってみようと思います。
193188:04/07/21 00:27
コンパイル&実行は出来た。
DOS窓がすぐ消えて結果が見えない、
作成したexeファイルもすぐ消える
結果を見るためにはどうすればよいのでしょうか?
>>193
>>180から始まるレスを読みなさい。
ってか質問する前にざっと過去ログに目を通しなさい。


>作成したexeファイルもすぐ消える
そら嘘だろ。
195デフォルトの名無しさん:04/07/21 00:37
誤記、作成したexeファイルを実行しても(ry

>>194さん、ありがとうございます
188さん、純粋にサンプルのコンパイルを試したいのであれば、こっちを落として
使った方が良いかもしれないです。
ttp://www.borland.co.jp/cppbuilder/freecompiler/

「はじめてのC++」は、あくまで言語そのものの解説書で、CUIベースでの
解説なので、C++ Builderでそのまま試すには向いていないと思います。
もし、C++言語の習得だけが目的なのではなく、Builderを使いこなしたい
というのであれば、Builder専用の解説書を買ってくることをお勧めします。
>>196
別にBCB入ってるならわざわざ入れんでも・・
まあ、コンソールベースでの練習ならIDE使わずに直接bcc32.exe叩いた方が早い。

なんとなく、気になったのですが、
VCと比べるとコンパイルが遅いと思うのですが
VC並みに速くコンパイルする方法はあるのでしょうか?

VCLを使わないとか
古いBuilderはコンパイル速いよ。
BCB6はコンパイル遅いよね。
サンクスです。
なるほど、ですね。マシンのせいかもしれませんが、ちょっとソースが増えると
あっという間に5分ぐらい平気でかかってくれますね。(´・ω・`)
作り方に問題があるかもしれません。
>>199
使わないで出来れば良いんですが、使わざるを得ないもので、トホホ・・・
ちょっとソース増えて5分は異常すぎやしないかい
includeし過ぎじゃないかな。
includeは一旦展開されるみたい。
それとか、ActiveXの取り込みヘッダーなんかに巨大なものがあったり。

コンパイル状況表示させて何万行に展開されるか行数見てみたら?
メモリを増やすと良いかも。
> ActiveXの取り込みヘッダーなんかに巨大なものがあったり

取り込みにえらい時間かかるなぁと思ったら、18MBぐらいのヘッダが出来てた事あってビビッタ。
依存関係減らせよ。クラスの先行宣言ですむ所でincludeしたりしてないか?
プリコンパイルヘッダはちゃんと有効活用してるか?
STLとかboostとか不変のActiveXのヘッダとかはちゃんとプリコンパイルヘッダに入るようにしろよ。
それとpimplとかちゃんと使えよ。
ラジオグループの中の特定のラジオボタンだけEnable=faultにするにはどうしますか?
RadioGroup1->Controls[0]->Enabled = false;
208デフォルトの名無しさん:04/07/21 19:02
プリコンパイルヘッダにいれるってどうすればいいの?
気合いで
AnsiString str;に整数が入ってるかどうか判定するのはどうやりますか?
StrToInt
TryStrToInt
ToIntしてみてEConvertError吐かなかったら整数
文字コードを一つ一つ
214デフォルトの名無しさん:04/07/21 19:35
>>208
>>209は馬鹿ですw
#pragma hdrstop
より、上にincludeを書けばOKですよ
補足すると
#hdrstopより上は、全ソースで同じにしないと複数回プリコンパイルヘッダが作成されてしまい遅い。
プロジェクトソースも忘れずに…。
216デフォルトの名無しさん:04/07/21 21:14
質問です。

知り合いの息子がCを覚えたいというのでCBuilderを勧めてあげようと思うのですが
おすすめの書籍ってどんな感じでしょ?

しばらくはCのお勉強なので、CBuilderに関してはエディット、コンパイル、ランとごく簡単な
コンポーネントの使い方が判ればいいのですが。

C言語のテキストは 「はじめてのC」を考えています。
CBuilder本は C++Builder 6コンポーネント活用ガイド&実践プログラミングVol.2 でOKですか?
そのほかにお薦めがあればお願いします。

学生なので出来れば各1冊で当分使える本が希望です。
>>216
単にCの勉強だけしたいならBCC5.5.1なりVCTk2003なりのコンパイラだけあれば十分な気が‥‥
BCBはDel互換こ関係で独自の方言や縛りも結構あるし。
218デフォルトの名無しさん:04/07/21 21:45
コンパイラだけあっても、初心者には無意味だろ?
初心者には実行形式がないときついと思うが・・・
219216:04/07/21 21:57
>>217
BCCってWindowsからDOSのアプリ作れるんでしたっけ?

OWLでソフト作りしていたことはあるのですが、当然Windowsでしたし。
Windowsの環境から void main( void ) {} から走るソフトが作れるならそれが
当然一番よいのですが。でもそうするとDOS窓で実行結果を見るのか。。。
DOSアプリでなければOWLとかMFCとかが必須ですよね?それは絶対無理ほ

DOSの環境でエディット・コンパイルなどという苦行は勧められないし。。。

217さんがおっしゃったのはどんなイメージです?
こりゃびっくりするほどユートピアだな
221デフォルトの名無しさん:04/07/21 22:04
DOSで動作するプログラムはBCCでは作れません。
222デフォルトの名無しさん:04/07/21 22:08
では初心者にOWLから入れと ((;°Д°))アワワワワ
>>219
DOSじゃなくてWin32コンソールアプリなら作れる。というかスイッチ付けないとコンソールアプリとしてビルドする。
ちなみにBCBでもDOSアプリは作れない。ちなみに現行バージョンにはOWLは付いてこない。

WindowsのGUIアプリまで作りたいならBCBのほうがいいとは思うが。


勘違いしてる可能性があるので行っておくがBCC5.5.1はC++Builder5のコンパイラ+周辺ツール。
当然Win32環境専用
コマンドプロンプトをフルスクリーンで動かすようなことをしない限り普通にWindowsのエディタで編集できるし
コンパイルなんてbcc32 source0.cpp source1.cppでいいわけだし
やるんであれば、DOSアプリっていうか、
Windowsのコマンドプロンプト上で動作する
コンソールアプリならmainから始まるプログラムが作れる。
けど、その場合BCBは大してお勧めではない。
フリーのコンパイラで十分じゃないかな。
ぶっちゃけると、Cからプログラミングを始めるのも、
今の状況ではどうかと思う。

ついでに言うとOWLやMFCを使わなくてもWindowsアプリは
作れる。大変だけど。
225デフォルトの名無しさん:04/07/21 22:40
>>224
>ついでに言うとOWLやMFCを使わなくてもWindowsアプリは
>作れる。大変だけど。
サンプルプログラムを動かして、自己満足する程度しかできません。

市販ソフトやネット上でも有名なソフトと張り合おうとすると
MFC,OWL,ATL等のクラスライブラリを使いこなさないとまず、無理
>>224-225
んなもん、これからCを覚えようとかそういうレベルで心配するこっちゃ無いだろ…
ライブラリにしたって、買わなきゃいけないわけでもなくて、wxその他フリーのもあるし
やってみて、こりゃ手に負えないとなってから、財布と相談しても遅くないだろ

つーわけで、今の段階で気にしなくていいと思われ。
本人が必要と感じたらその時本人が「買って欲しい」って言うでしょ
C++ BuilderでWindowsアプリ作るのが目標なら、
CよりC++から入った方がいいんじゃない?
何にも知らん初心者がいきなりC++は無謀だろ。
生活かかってるならまだしも、お遊び程度なら、間違いなく挫折する。
win32コンソールならBuilderX無償版もありますよ
230デフォルトの名無しさん:04/07/22 00:22
>>228
そうかぁ〜?
C++言語自体はたいした事ないよ。1週間あれば余裕
>>230
プログラミング未経験者だとまず無理かと
条件分岐すら知らないわけだし
BCBは入門に適してると思うけどナ。
233デフォルトの名無しさん:04/07/22 05:26
>>232
禿同
ショボイのしか作れないもんねw
お手本通り作れることと(それすら出来ないヤシもいるが)
独創的なものを作れることは全くの別能力である。
だからと言って基本はおろそかにしてはいけない。
>>230
ポインタやクラスで躓く気がするけどな。

関係ないけど、FORTRAN77しか使えないオサーンにC言語を教えたけど、
構造体の配列より普通の配列を複数用意した方が楽らしい・・・。
コンソールなら BCC+BCPadがいいんじゃない?
私はこれでコンソールの勉強させました。
237216:04/07/22 08:28
みなさん、レスありがとです。

彼に勉強させようと思っているのは、計算機のごくごく基本的なことです。
2進数から始まり、構造体、配列、ポインタ、ソート、検索、リスト、木などを
しっかりモノにしてもらいたいと思っています。まだまだこれから先のある奴なんで。。

ですのでWindowsアプリである必要はありません。環境を含めた(初心者にとっての)使い
勝手としてBCBがよいのでは、、、と考えていました。

だけどWin32コンソールがよさげですね。その方向で検討してみます。

ところでCのテキストは「はじめてのC」でOK?
>>216
計算機の基本を教えるなら
二進数の次はアセンブラだろ?
>>216
じゃなかった
>>237
すまん
>>238
アセンブラ教えるには計算機のシステムについて勉強しないといけないだろ・・。
レジスタとかアキュムレータとか
241デフォルトの名無しさん:04/07/22 11:17
これらのエラーはどう対処したら良いでつか?

コンパイル
[C++ エラー] oleidl.h(185): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] oleidl.h(185): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] servprov.h(59): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] servprov.h(59): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] msxml.h(280): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] msxml.h(280): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] urlmon.h(254): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] urlmon.h(254): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] propidl.h(78): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] propidl.h(78): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] objsafe.h(59): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] objsafe.h(59): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] ocidl.h(293): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
[C++ エラー] ocidl.h(293): E2015 'size_t' と 'Httpd::size_t' の区別が曖昧
普通ならnamespaceを明示するところだけれども、ヘッダの中でエラーは起きているようなので、
とりあえず#includeの順番を変えたりしてみては?
サンクス>>242
ActiveX側をIndyよりも上にしたら直ったっぽいでつ。

C++は好きなんだけどヘッダー問題は苦手。
244Delphi厨:04/07/22 12:55
C++Builder6の国際化リソースDLL作成で困ってます。フォームがプロジェクトに追加されてくれません。
Builder5やDelphi6ではうまく行くんですが…
どうしたらよいでしょうか?どなたか教えて頂けないでしょうか?
245デフォルトの名無しさん:04/07/22 14:07
Delphiで作ったソースをリンクしてますが、
TOleControlをnil(NULLポインタ)で初期化して、

if OleControl = nil then
で比較しています。(=が一個なのはpascalだから)

delphiではtrueで動作するのに、BCBではfalseになってしまいます。

TOleControlが空っぽかどうかはどう判定するんでしょうか。
>>245
cpp側で変数をNULLで初期化して、pas側の関数に渡してnilかどうか判定してるということ?
247デフォルトの名無しさん:04/07/22 15:00
pas内でnil設定してて、pas内でnil判定してます。

Delphiのテストプログラムではtrue判定なのに、
BCBにユニット組み込むとfalse判定になってしまいます。
(・3・) エェーならないYO
249デフォルトの名無しさん:04/07/22 15:36
TComboBox文字列リスト各々に数値を割り当てるにはどうしたらいいですか?
意味不明
ComboBox->Items->Objects[0] = reinterpret_cast<TObject*>(249);
ComboBox->Items->AddObject(">>249のIQ", reinterpret_cast<TObject*>(3));
>>249
TComboBox::Items->Strings[n]のことかナ?
254デフォルトの名無しさん:04/07/22 16:21
>>253
それのことです。
ぶっちゃけそのStrings[n]ってAnsiStringだけど、さらにItems->Value[n]みたいにできないかなとVBみたいに
255デフォルトの名無しさん:04/07/22 16:23
逆レスすまそ
>>250
ほかの人はちゃんと理解してますよはははー
>>251-252
オブジェクトの配列になんかするってことですかあ
痛いな
BuilderX で、GUI だとビルドできたので、hoge.cbx のかわりの
hoge.mak を作らせて、シェルに向かって make -f hoge.mak したら
「make: *** No rule to make target `foo/bar.cc', needed by `solaris/Debug_Build/bar.o'. Stop.」
とか言われます。なんでだ世 (;´Д`)ハァハァ Stop.
258デフォルトの名無しさん:04/07/22 17:32
>>256
すんんません>>250さん
ちょっと古いんですが、BCB3でSTLPort動いた人いますか?
グループボックス内のコントロールをまとめて選択するのはどうやりますか?
Ctrl+ドラッグ
>>237
「はじめてのC」でもいいと思うけど、
これって説明書チックな書き方だから、完全な初心者だとつまづく可能性がある
気がする。
フォローしてやれる人間がいれば大丈夫だと思うけど。
馬鹿みたいに説明が丁寧な
簡単なプログラムを作ってみる系の本が一冊あってもいいかも。
Borland(R) C++BuilderTM / bcc の不可思議現象
http://magnus.at.infoseek.co.jp/bcbfix/index.shtml

漏れ用メモ
BCB6 パーソナル使いです。

DelphianWorldからコンポーネント(Buider対応のもの)をダウンロードして、追加→コンパイルすると、

[リンカ エラー] 外部シンボル '__fastcall Outline::TCustomOutline::(各種メソッド)' が未解決
((Builderのフォルダ)\LIB\BCBSMP.LIB|.\cdiroutl.cpp が参照)

がぞろぞろ出ます。(上は2行だが実際は1行)
アップデートしても同じです。
どうすれば解決できるでしょうか。
リンカやコンパイラは設定をいじっていません。
266デフォルトの名無しさん:04/07/23 10:23
>>265
あそこにあるのってほとんどデフォでコンパイルするとエラーでるよな
267257:04/07/23 10:45
>>263
サンクス子 (っ´∀`)っI
>>265
コンパイルしてみるから、コンポーネント名教えてちょうだい
Form内に貼り付けたFrameの再描画のタイミングで処理をしたいのですが
FrameにはOnPaintイベントが無くてどうしたらいいのかわかりません.
FrameのサイズにあわせたTPaintBoxを置くとか。
WM_PAINTで処理すればいい
273270:04/07/23 17:21
>>272
WM_PAINTを捕まえる方法がわからなくて...
MLに変なのが現れた。
>>274
実況を・・・・(*´д`*)
>>273
WndProcをオーバーライドするだけだよ。メッセージマップマクロでもいいけど。

void __fastcall TFrame1::WndProc(TMessage& m)
{
  TFrame::WndProc(m);

  if (m.Msg == WM_PAINT) {
    // 処理
  }
}
>>275
RS232Cコンポくれという内容だが、同じメールを5連投。それだけ。
37796も書いてる途中でメール出しちゃった感があっていいね。
279デフォルトの名無しさん:04/07/23 18:39
プリコンパイルヘッダーをコンパイルするためだけのプロジェクト作ったりすることありますか?
280279:04/07/23 18:59
複数EXEのコンパイルを速くしたいんですが、
どういった手段があるでしょう。
よくわからんけど、プリコンパイルヘッダの名前をそれぞれ別にするとか?
C++自体初心者なんですが、
AnsiString *str を Memo1->Lines->Text.SubString(x,y) に指定する場合どう書きますか?
283265:04/07/23 21:31
>>268
遅くなりました。「光るスピードボタン」(ShineSpeedBtn)です。
後、”DEKOのじゃんくぼっくす”というところからダウンロードした数値入力用TEditも入ってます。
BCB6Proだと、どっちも問題なくインストール/使用できた。
あとはパソナラ-の人に任せた。(@u@ .:;)ノシ
会社のアドでゴミメール撒いてる梢タソ(;゚∀゚)=зハァハァ
今日一日で10通も流れたかと思ったら全部ゴミかよ…
BinToHexの第一引数がconstじゃないのは何故?
おかげで肝心な所でconst_castしないと使えなかった。
288270:04/07/24 02:34
>>276
ありがとうございました,無事に目的を果たすことが出来ました.
ちなみに,Frameってどういう目的で使うコンポーネントなんでしょう?
自分は変な理由があって仕方なく使ってるのですが,
他に使ってるプログラムもあまり見ないので.
>>288
部品を組み合わせただけの自作コンポーネントのように使うんじゃない?
290デフォルトの名無しさん:04/07/24 12:19
Memoの中の文字列の特定の部分だけフォントカラーを変えたりできますか?
質問です。
ttp://www.asahi-net.or.jp/~HA3T-NKMR/tips006.htm
このサイトで紹介されている,標準出力を TMemo に割り当てるということを
C++Builder でやりたいのですが,解説しているところが見つかりませんでした。
ご存じの方いらっしゃいましたら,教えていただけないでしょうか。

292デフォルトの名無しさん:04/07/24 17:27
AnsiPosを使ってテキスト内の順次検索をしたいのですが、どうすればよいですか?
BCB6proでTABitmap使っていたら>>265と同じエラーが出た。
リンカオプションの「ステートファイルを作らない」を外したらリンクできるようになったが。
>>291
質問文からてっきりコンソールアプリのフロントエンドみたいに、
子プロセスの出力をTMemoに取り込みたいのかと思ったんだけど、
リンク先を流し読みしたところ違うのかな?
残念ながらリンク先のBuilder版は寡聞にして知らない。

ただGUIアプリでは標準出力が使えないので…のように
説明されているけどWin32API使えば
 AllocConsole() で標準出力用コンソールを開いて、
 SetConsoleTitle() でキャプションを設定して、
 SetConsoleTextAttribute() で文字色を設定して、
 WriteConsole() でテキストを出力して、
 FreeConsole() でコンソールを閉じる。
なかんじで簡単に実現できるわけで、これで充分な気も。

TMemoを持つログをとるアプリが常駐しててそいつにテキスト渡したい
というのなら、WM_COPYDATAで投げるなり、パイプかメールスロットか
ソケットで流すなりお好きな方法で。

コンソールアプリの出力取り込みが希望なら
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/creating_a_child_process_with_redirected_input_and_output.asp
ttp://www5.wisnet.ne.jp/~mercury/download/dosexec/dosexec.html
C++のソースあり
DosExecDlg.cpp内CDosExecDlg::ExecChildProcess()が
子プロセスの出力を取り込む処理なので、listOutput->Print()の処理を
TMemo::Add()とかに置き換える。
処理に時間が掛かるようなものはスレッド起こすなりなんなり。

(´・ω・)アチー
295291:04/07/24 20:53
>>294
レスありがとうございます。
デバッグウィンドウを出して (TMemoで),printf() デバッグをやりたいなと思ってました。
Delphiとベースが同じだから,簡単に実現できるかと思ったけどそうでもないのですね。

教えて頂いたとおり,コンソールを開いてデバッグ出力に使おうと思います。
どうもありがとうございました。
296デフォルトの名無しさん:04/07/24 23:15
TMemoの特定の文字列だけフォントの色を変えることはできますか?
TMemoじゃ無理。TRichEditならできる。
やり方はMLの過去ログ見てくれ。
298デフォルトの名無しさん:04/07/24 23:55
BCB6Proなんですが、
Indy 9.0.14 のインストール方法を解説していただけませんでしょうか
ManualInstall.txtにあったBCB5までの方法では不足らしいです。
よろしくお願いします。
>>297
そうですかー。
でもRichEditじゃ数万行とかの文字列扱うにはちょっと重いですね。
仕方がないので諦めます。
>>298
・Fullc6.batを実行する。
・出来たbplを「パッケージのインストール」で追加してやる。

こんだけ
301デフォルトの名無しさん:04/07/25 01:05
>>300
すんません
>・Fullc6.batを実行する。
やりました、\C6\ができました

>・出来たbplを「パッケージのインストール」で追加してやる。
デレクトリごとD:\Program Files\Borland\CBuilder6\C6に置いて、
パッケージのインストールで元のIndyを外し
D:\Program Files\Borland\CBuilder6\C6のをインストールしようとするとエラー出ます
俺はBCBインストールするとき、Indy選択してなかったから、すんなりいったのかな。
303298:04/07/25 01:47
301の補足
"プロシージャ エントリ ポイント @Idresourcestrings@_RSBindingAny がダイナミック リンク ライブラリ Indy60.bpl から見つかりませんでした。 "
と言われました

>>302
そっか、なら私もインストールしなおします
ソースのパス設定してないんじゃないの
305298:04/07/25 02:21
>>304
とおっしゃいますと?
ソースも要るんですかい?
306298:04/07/25 03:01
できたC6の中の*.hppを
$(BCB)\include\vclの中に放り込んで動くようにしたけど、
プロジェクト|オプション|ディレクトリ/条件|のインクルードパスで設定すべきだったですね
307298:04/07/25 03:05
>>300>>302>>304様、ありがとうございました
308デフォルトの名無しさん:04/07/25 23:09
Control+Cを捕まえたいのですが、なんてメッセージを捕まえればいいの?
WM_????????
WM_KEYDOWN
310デフォルトの名無しさん:04/07/25 23:50
あっそ
無償版をDLしたいのですが、C++Builder6とC++BuilderXのどっちを
DLすればよいですか?
C++Builder6
>>312
そうですか。
ところで今5.0Profesionalを使っていてCDは紛失してるんですが、
6.0Personal落としてタダで使えますかね?
更にPersonalだと機能的に何が劣るんですかね?
割厨イクナイ
CD紛失するかよ。
BCBにD6Perみたいな無料版ってあったっけ?
まあ、体験版なら
317313:04/07/26 19:02
>>314
いや、マジで無くしたから慌ててここに質問に来たんですよ。
>>315
あ、C++Bはやっぱ無料じゃないんですかね?
なんかPersonalは無料っぽく書いてある気がしますが。
TMemoの○行目の文字列を得るにはどうしたらいいですか?
Memo1->Lines->Strings[○];
Memo1->Lines->Strings[♥];
>>319
即レス感謝です
>>320はもう2度とこのスレに来ることはなかった・・・
|゚Д゚)))コソーリ!!!!
ビルドしたときのexeの名前ってプロジェクト名.exe?
そだよ
326324:04/07/26 20:21
変えられませんか?
Explorerでリネーム
328324:04/07/26 20:28
orz
プロジェクトオプションで変更できなかったっけ?
コンパイラ(詳細)の命令セットや実数の扱いはどう設定すればパフォーマンスが
上がりますか?
C++B用の優れたテキストエディタコンポーネントは無いですか?
TEditorEx
333デフォルトの名無しさん:04/07/27 10:15
ねえおまえら、早くC++Builder9出してくれよ
Builder6じゃ困るの?
(´-`).。oO( プロジェクト EXE… )
(´-`).。oO( ニンニキニキニキ…? )
(´-`).。oO( 天竺ぅ… )
(´-`).。oO( Builder6ってバージョンアップしないの? )
Update4+LinkerUpdateまで出てるよ
340デフォルトの名無しさん:04/07/28 13:08
プログラムからメールソフトを経由せずにメールを送信するのはどうやったらいいんですか?
TIdSMTPを使うといいよ
342340:04/07/28 13:25
Indyのコンポーネントですね。調べてみます
2ちゃんブラウザは殆どIndyだね。というかDelphi&BCBが多くを占めてる。
BCBってIndyコンポーネント入ってました?
NMHTTPとかいうのと違うのかな
>>344
BCB6 pro なら入ってるぞ。
Indyはオプソだから、入ってなきゃネットから落として入れることも可能。
>>345
thx BCB6から入ったのかな
当方BCB5、アップグレードする気は・・・ないや
ネットから探してきます。   
>>346
どのみちBCB6のIndyはバージョンがやや古いから6使ってても入れ直してる
>>347
自分はBCB6/Indyのバージョンアプしてないんだけど、大きく変わってる?
349デフォルトの名無しさん:04/07/28 14:40
select aaa,max(bbb) from Table group by aaa
上記のSQLをTQueryのSQLで行うとbbbがありませんとエラーがでてしまいます。
この場合はどう表現すればエラーはでなくなるのでしょうか?
>>348
FTP鯖コンポとか追加されてる。

FTP鯖のpass忘れたときに便利(゚∀。)
FTP鯖コンポ見つからない、無いんだ?、とかオモテタンダ。アプすべきか。

>FTP鯖のpass忘れたときに便利(゚∀。)
いまいち意味分からん。
自作のFTP鯖をコンポーネントで適当に作って、FTPクライアントに保存された ****** のパスワードを見るために
自作のFTP鯖にクライアントを繋げると・・・ (・∀・)
******* がみたいならそういうソフトがあるが。
探すより書いた方が早い気がする
一時期探したときあったんだけど、2000未対応だったり結構時間かかった・・。
確かに書いたほうが早い希ガスね
356デフォルトの名無しさん:04/07/28 17:17
上記のレスを見て、FTP 鯖コンポーネント欲しいと思い、
BCB6 + SP4 に Indy 9.0.14 を入れようとしたんだけど、
パッケージの追加のところで

プロシージャ エントリ ポイント @Idresoucestring@_RSBindingAny がダイナミック リンク ライブラリ Indy60.bpl から見つかりませんでした。

と出てパッケージを追加できません。何ででしょう?

Indy のコンポーネントの入れ替えは初めてなんで、
どう対処していいか分かりません。
>>356
/binディレクトリ内のIndy60.bpl(添付のIndy)をどこかに待避させないとダメだった気がする
Indyの件
300前後を見てみろ
てか、同一スレくらい検索汁 >> ノータリンども
359356:04/07/29 02:01
>>358
あぁ、ほんまや。そのものズバリやん。
スマソ
make のこと
やろうとすると C0W32.OBJ が見つかりませんとか
C0D32.OBJ が見つかりませんとか出るんですが
どうすればいいでしょう?
>>360
ilink32の代わりにbcc32を使う。
すまん /L 指定直したら出来ました
TListBoxに水平スクロール機能を付けるにはどうすればいいのでしょうか?
教えて!エロい人!
TScrollBarでやってもいいのですが、それにしてもやり方が判らないのです。
ScrollWidthプロパティに、スクロールさせたい幅を入れる
365デフォルトの名無しさん:04/07/31 02:02
C++BとDelphiで同じアプリ作ったら、
どっちが処理速度早いですか?
作り方による
C++B ?
uilder
ウイルダー?
昭和の特撮ヒーローみたいだな。
ヴァンダーなら知ってるが。
ウイナー/ウイナルドなんてのもあった。
>>371
プレゼントフロムレモンなら知ってる。
たとえばCheckBox1〜10があって、いずれもクリックイベントが
CheckBox1Click(TObject *Sender)な場合。

チェック数の上限を5個にしたいので、6個目をチェックしようとしても
無効にしたいのですが、6個目にチェックしようとしたCheckBoxを
取得するのはどうやりますか?
6個目のチェックか確認すればいいだけだろ。
>>374
いや、例えばCheckBox8が6回目にチェックされたとしたら、
CheckBox1Clickイベント内でどうやってCheckBox8をfalseにするのかなと。
>>373
static変数でチェックされている数を数えれば?
なんぼでも方法はあるよな。
たとえば、メンバ変数に10個のチェック状態の変数作る。
チェックイベント内でその変数を毎回更新する。
さすれば、今変更されたのがどこだかもわかる。
たかが、10個くらいのチェック、毎回ループさせても処理的には問題ないだろう。
>>377
ありゃ、やっぱそんな方法しか無いんですか・・
どうもです。
最後にチェックされた(外れた)のは、Sender->Checkedでわかるだろ。
Form1::CheckBoxClick(TObject *Sender)
{
 TCheckBox *box = (TObject *)Sender;
 if (box->Checked && this->checkCount <= MAX_CHECKCOUNT)
  this->checkCount++;
 else
  box->Checked = false;
}
検証も何も全くしてない思いつきコード
>>380
TCheckBox *box = (TCheckBox *)Sender;
にしたらできました。どうもです。
>>381
カウンタのデクリメントはやってないからそれ書かないとダメよ
C++Builder で使えるプロファイラってありますか?
もっと実行速度早くしたいので。
前スレだかその前のスレでプロファイラもどきは紹介されてな。
とりあえずぐぐってみ。
AQtimeとか
386383:04/08/01 00:11
>>384
レスありがとうございます。
ttp://village.infoweb.ne.jp/~fwhk9290/gimite/index.htm
これですね。
埋め込み式なのがマンドクサイですけど、
ほかにないならこれ試してみようと思います。

>>386
AQtime はぐぐってみましたが、
.net 専用っぽいんですが、bcb でもokなんですか?
388デフォルトの名無しさん:04/08/01 08:33
フックのやり方を教えてください
>>388
肘と拳は水平で手の平は下、相手の顎を狙って体の回転を利用して振りぬけ。
390383:04/08/01 16:02
>>387
BCBで使えるんですね。
でも、高いなぁ。
391デフォルトの名無しさん:04/08/01 16:14
>>389
超ツマンネ
>>391
超ツマンネ
393デフォルトの名無しさん:04/08/01 16:18
>>392
超ツマンネ
394デフォルトの名無しさん:04/08/01 17:48
>>394
超ワラタ
395デフォルトの名無しさん:04/08/01 17:51

再帰定義でつか?w
396デフォルトの名無しさん:04/08/01 18:17
>>395
超ツマンネ
アッパーのやりかた教えてください。
すれ違い
フックったって種類あるやん。どれよ。
右フック
401デフォルトの名無しさん:04/08/01 18:48
>>400
超ツマンネ
>>401
超ツマンネ
片腕の
404デフォルトの名無しさん:04/08/01 19:25
>>403
超ツマンネ
404 名前:デフォルトの名無しさん[] 投稿日:04/08/01 19:25
>>404
超ツマンネ
406デフォルトの名無しさん:04/08/01 19:47
>>405
超ツマンネ

>>407
超ツマンネ
>>407
超ツマンネ
>>1-1000
超ツマンネ
  ┏┳┳┓     ハイ.     ┏┳┳┓
┏┫┃┃┃     ネタは   ┃┃┃┣┓
┃┃┃┃┣┓   ここまで ┏┫┃┃┃┃
┃      ┃┃┏━━━┓┃┃      ┃
┃ ネタ.   ┣┫ . ・∀・ ┣┫. STOP!┃
┗━━━━┛┗┳━┳┛┗━━━━┛
            ┏┻┓┃
        ┏━┛  ┣┻┓
        ┗━━━┫  ┗━┓
.             ┗━━━┛
ウィンドウが画面中央で開くようにするにはどうすればいいですか?
411デフォルトの名無しさん:04/08/01 22:59
ウィンドウってなんですか?
フォームのことです。すいません。
Form1->Position = poScreenCenter;
>>413
どもです
AnsiString strをSaveDialog1に渡してファイルに保存させるにはどうすればいいですか?
>>415
TSaveDialogは保存先のディレクトリとファイル名を取得するのが役目で
実際のファイル書き込みは自分でコードを書かかなあかんぞ。
TMemoとかからだとSaveToFileで簡単に渡せますが、
自分で書かにゃダメなんですか。
逆ギレですか。
419415:04/08/02 00:40
なんとか自分で書きましたが、開いてる最中のファイルに保存しようとすると
エラーが出てしまいます。どう対処すればいいですか?
>>417
念のために言うとくと、TMemo::SaveToFile()だって
TSaveDialogに何物も渡してないぞ。
TSaveDialogの仕事はファイルパスを取得するだけ。

AnsiStringはSaveToFileメソッドは持ってないので
自分で手当てする必要がある。
自分で考える気0ですか。
>>419
エラーが出て当然です。理由は考えれば判ると思いますが?
共有モードで開いたら当然じゃないけどな
Builderから入るとコレだから困るね。
C++から勉強しなおして来い
426デフォルトの名無しさん:04/08/02 11:30
Indyをバージョンアップすれば、
TIdHTTPでGetメソッドのタイムアウトなんかを設定できるようになりますか?
>>363
static int getmaxstrlength(TListBox* lboxp)
{
int strlen(0);
for (int i(0), j(lboxp->Items->Count); i < j; ++i)
strlen = std::max(strlen, lboxp->Canvas->TextWidth(lboxp->Items->Strings[i]));
return strlen;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox1Enter(TObject *Sender)
{
TListBox* lboxp(dynamic_cast<TListBox*>(Sender));
if (lboxp != NULL)
lboxp->Perform(LB_SETHORIZONTALEXTENT, getmaxstrlength(lboxp) + 3, 0);
}
//---------------------------------------------------------------------------
428デフォルトの名無しさん:04/08/02 14:25
SHFileOperationでエラーになります。
ファイル名はちゃんとダブルNULLターミネートにしてます。
なにがげんいんかおしえて
>428
君がバカだから。
どこでどんなエラーになるかくらい書け、ボケ
430デフォルトの名無しさん:04/08/02 15:43
>>429
お前に言っても無駄だから言わない
ここに書くことは他の人にも見てもらうことになるのに。
"お前に言っても"だって。バカって損だね。
そもそもスレ違い
433デフォルトの名無しさん:04/08/02 17:16
この時間は>>431みたいな馬鹿しかいないんですね^^
はいはい^^
ちょっと荒れているようなので、普通な質問をひとつ
このツールでセーブしても「元に戻す」が使えるアドインとか無いんでしょうか
セーブしたら元に戻すのに苦労するでつ・・・ (´・ω・`)
エディタオプション→一般→保存後の取り消し
か?
これなんでデフォルトじゃないんだろね。

ありがとうございます。

デフォルトじゃないって・・・。_| ̄|○

なんか禿しくデジャブを感じる・・・
439デフォルトの名無しさん:04/08/02 19:53
それを言うなら
Dejavu
でしょ?w
deja vu
既に見た

そのまんまやん
>>426 もお願い。
442デフォルトの名無しさん:04/08/03 00:29
C++Builderで作られた、こりゃすげーなっていうようなアプリってある?
>>426
できます
IdHTTP1->ReadTimeout = 30000;//30秒でタイムアウト
てな具合です。
>>442
winny2
445デフォルトの名無しさん:04/08/03 00:44
>>444
あれのどこがすごいのかな?
あんなの誰でも作れるぞ
>>445
なんかさー、煽るにしても
もっとムカツキ度満点!な煽りにして欲しいわけ。
そんなありきたりな言葉で煽られてもなぁ・・・
447デフォルトの名無しさん:04/08/03 00:48
あの〜別に煽ってるわけじゃないんですが・・・
あおりに聞こえる初心者は黙っててね
そういやすごいソフトウェアって言われて思い浮かべると・・・・。
うーん、なかなか思い浮かばないなぁ。
便利に常用してるソフトは結構あるんだけどね。
>442 みたいな馬鹿ってまだいるんだね。
450デフォルトの名無しさん:04/08/03 02:02
言うに事欠いて馬鹿と来たか・・・
絶句しちった
451448:04/08/03 02:40
一応私が言っているのは VCやDelphi含め、すべてのソフトウェアに対してです。
>>447
だれでも作れる( =自分で作れる) と思っている初心者はだまっててね。
いろいろ勉強してないと作れないよ。あれは。
すごいソフトっていうのは、別に開発環境がすごいわけじゃないから、ねぇ。
すごい勢いでage反応する>>442は間違いなく馬鹿だな。
最近の頭の悪いage書き込みは同一人物だろうな
最も有名なP2Pソフトが凄くないなら、何が出来たら凄いものになるんだろう。
457デフォルトの名無しさん:04/08/03 10:52
Winny2は確かに凄いよ、ああすごいさ
お前ら厨房には作れないから安心しとけ
>>457
お前が一番無理っぽいけどな。
459デフォルトの名無しさん:04/08/03 14:17
パッケージからIndy外して、また設定し直したらエラーが出るようになりますた。

コンポーネント→パッケージのインストール→追加(A)→CBuilder\Bin\indy60.bpl を選択。

このとき、
「パッケージ: C:〜\indy60.bplを登録できませんでした。このパッケージは設計時には使えません。.」エラーになります。
>>459
BCBのインストーラーを起動して、コンポーネントの選択(だっかたな?)でIndyを削除してみたら?
さもなくば、BCBを一度アンインストールしてIndyをインストールしないで再インストール。

おれは、後者の方法でIndyを入れ替えたことあるよ。

了解。>>460

やりたいことはIndyの再登録だけど、とりあえず、CDからやってみまつ。
インストーラ(C:\Program Files\BORLAND\CBuilder6\Borland C++Builder 6.msi)で一旦Indyを削除したらなんかスムーズに出来ました。

再登録できなかった理由は、dclindy60.bplを選ぶべきところをindy60.bplを選んだからみたいでつ。

インストーラで再度indyを設定するとき、dclindy60.bplファイルを尋ねてきたのでわかりました。
463デフォルトの名無しさん:04/08/03 22:12
TListItemのDataにboost::shared_ptrを格納したいのですが、
どうやればできますか。
464デフォルトの名無しさん:04/08/03 22:45
ソフトのすごさと、プログラムのすごさって、違うよな。
Irvine愛用してて、ソフト的には気に入ってる。
プログラム的には、もっさり動作とか?な挙動とか、うーんて感じ。
アイデアとかそのままで、開発環境変えて欲しい。
Delphi6 だっけ? ま、VBや.NETやJavaよりはましか(w
VCにしたら早くなるなんて考えてる香具師は包茎野郎
環境変えれば速くなるとか、夢見てるだけだろ。
Javaのプログラムを、VC++に移植したら速くなるとか
VC++のプログラムを、アセンブラで書き直したら速くなるとか、現実にはありえない妄想だよな
アセンブラで速いプログラムかけるような奴なら、最初からJavaとかやってないっての
言語の使い分けかた知らない奴もいるみたいだな。
C++のソフトをアセンブラに書き直しても、速くなるとは限らないね。
C++Builderで書かれたソフトをVC++で書き直しても速くなるとは限らないね。
Delphiで書かれたソフトをVC++で書き直しても速くなるとは限らないね。
469デフォルトの名無しさん:04/08/04 00:37
C++Builderって統合開発環境としてみると糞
間違いなくVC++の方がデバックしやすい

ポトペタ環境なんてどうでもいいから、もうちょっと
デバックしやすくして欲しい
>>469
具体的には、どういう点が?
>>467
それは意味がよくわからん。
Javaは速度を犠牲にしてVMで環境にとらわれないアプリケーションを実現している。
>アセンブラで速いプログラムかけるような奴なら、最初からJavaとかやってないっての
デバッグや保守性でアセンブラ書ける人でもJavaを選ぶ理由は十分にある
>>471 の理屈はともかく、現実は
>アセンブラで速いプログラムかけるような奴なら、最初からJavaとかやってないっての
であってるかもね(藁
ってか、未だにアセンブラで書けば最速なんて思っている馬鹿がいるんだな。
アセンブラ命令がどのように、並列実行されるかを熟知していないとコンパイラより速いコードは書けないぞ。
釣られすぎ(w
こういう部分は釣られてでもハッキリしときたいものだ











ん? >>474=>>467でしたか、ごめんごめんw
藻前裸スレ違いだから
ん? >>474=>>467=>>476でしたか、ごめんごめんwww
>>475
> こういう部分は釣られてでもハッキリしときたいものだ
したくねーよ。スレ違いオナニーやめろ。
ara? >>474=>>467=>>476=>>478でしたか、ごめんごめんwwwwwwwwwww
どんな開発環境でも、実行速度は同じだと思ってるアホがいるな。
なんか速度を同じにする、秘密の機能でもあるのか(w
でへへ >>474=>>467=>>476=>>478=>>480でしたか Happy New Year!!!
C++Builderだともっさり動作だとか?な挙動とか
●先入観●に過ぎませんよ
483デフォルトの名無しさん:04/08/04 03:08
動作よりも、サイズデカくね?
VC++で作ったほうが圧倒的に小さい
BCBはDelphiのKOLみたいなのはないの?
485デフォルトの名無しさん:04/08/04 03:33
BCB使いとしては、あんまいたくないけど、BCBのソフトは、たしかもっさり感はある。でも、我慢できなくない。VBのソフトなんて、色変だったし、もっさもっさ。Azureusなんか、もさもさより、どよーんとしてた。BCBはもっさより、VCLのハイソサエティという点が素晴らしい。
開発のリファリタリング・再利用・拡張・コンポに優れている。とにかく作りやすいしわかりやすい。
>>485
同意!!!
>>485
句読点の魔術師
現在本当に実用に適するOSは、ほぼマイクロソフト社の独占です。
さてこのOSに付き合う時に必須の究極的情報源とも思われるものが、米国の英語版MSDNサブスクリプションSUPERへの加入です。
MSDNへの登録即ちSUBSCRIPTION戦略は、
従来のMS社の秘密主義を大幅に変更した、知識公開主義への転換の意味で
大変革命的なものだと言えます。

ですが、アマチュア学習者にとってこのサ-ビスは余りにも高価過ぎます。
これを最終目標とする一番経済的な方法を考えました。

1.BORLAND社のC++ BUILDERあるいはDELPHI PERSONAL版に第一に付き合う。
2.次に、Microsoft Windows MSDN DeLuxe 優待版を申し込む。
 この製品は、プログラムの学習・テスト走行・デバッグなど、アマチュア・ハッカ-の必需OSです、
しばらくの間は、OS自体に対するハッキング・解析・研究、 操作性の実験、不満点の列挙などをやってみましょう。
 どんな暇つぶしパズルより面白い頭の体操が出来ます。
 真剣にOSと付き合うつもりならば、DOSのコマンドラインに親しむ必要があ るでしょう。

 さて、生のコマンドライン環境に付き合うなどもっての他、ぜひ超おすすめのシェアウェア「二画面ファイラ-KF」を駆使しましょう。

OSの解剖についての参考文献には
 日経BP社出版のマイクロソフト公式解説書中にある
 「ア-キテクチャ徹底解説WINDOWS2000」
 「.NET & WINDOWSプログラマのためのデバッグ徹底解説」などがGOOD! 

 このような内部情報を公開するなんて、MS社も変われば変わるもんだ!
さて、近頃の高級言語一辺倒の風潮への苦言:
 どんな高級プログラム言語を使おうが、最終的に知能指数ゼロの馬鹿CPUが 実行するのは機械語です、
 機械語と人間とのコミュニケ-ションに最低レベルで折り合うのがアセンブリ-言語、これを忘れてはいけません。

 C言語は、なには隠そうアセンブラ言語の進化形なんですから。
 MS社の持つ特許は何は隠そう独自の圧縮法ですが、これは、機会語に
 熟練した人物のプラグマチックな作品です。
 テキスト・エディタ-で覗くと全く読めないwindowsの.HLPファイルをいかにして読めるように戻すか、この演習は非常に手ごわいのですが、

やる価値を保証します。近年流行の諸圧縮ユ-ティリティも、
つまりは機械語レベルで考えたからこそベストセラ-になっているのですから。

 一度アセンブラ言語のソ-スコ-ドを読むかあるいは、機械語の暗号解読ディスアセンブル作業をやってみて下さい。
 「解体新書」を翻訳した幕末の蘭学者の苦労の心境がよ---くわかります。

 さてそれからC言語のソ-スコ-ドに付き合うならば、アセンブラ言語での苦労から見ればまるで極楽、

 ゆめゆめ受動的学習本に振り回されて、C言語の解説書などに振り回されないように。
ソ-スコ-ドを多読・精読する事こそプログラマへの最短コ-ス
 人間の使う自然言語の学習と全く同じ事:
 どうして多く聞き、多く読まないで外国語に上達出来ますか。
DOSコマンドラインに付き合う意外な効用は、ブロ-クンな英語をいつの間にか駆使しているという事

 もう一つ、PCと付き合う際には、略語のフルスペルに常に注意する事
 この習慣をつける事は、暗号のような略語を駆使して自分でなんとなくわかった顔をしている、我が日本人の悪習を断ち切る良いチャンスになります。

 ここで、もう一つの苦言:

 長い人なら小学校から大学まで14年、少なくても中高の6年英語に付き合っ ていながら英語がマスタ-出来ない不思議な人種:日本人、
 その原因は、言葉を学習の対象として、常に受動的だったから、
 言葉は単なる道具にしか過ぎません、めためたに使いまくりましょう、
 能動的に英語を使う良いチャンスは、PCのプログラミング!

これはと思う良い教科書を見つけたならば、和訳書を二冊購入し、
 一冊は白紙のまま、もう一冊はノ-トに使い書き込みをしまくりましょう。
 それと同時に、英語の原書を購入してこれを読む。

 文学書は非常に難解な場合が多いのですが、技術書は、至って簡単、

 同じ術語・用語が頻出するので、たちまちわかる所ばかりが増えてきて、いつの間にかすっかりわかるようになっています。
和訳本があるという事実の意外な効用は、
 その原書の重要性を示している所にあります。
 英語の辞書にある単語の頻用度のマ-クに匹敵するのが和訳書の存在です。 和訳書だけ読んでくれぐれも満足しない事、

 言葉を翻訳する事ほど本来の意味が薄れるものはありません、
 元来簡単な概念が、日本語に訳される事で難解になってしまいます、
 また致命的誤訳が往々にして紛れ込む事があります。
 最終的には英語の技術文献に付き合うことにしましょう。
 英語に付き合うなんぞ、PC言語あるいは機械語に付き合う苦労からすれば
 至って軽い、軽い、か--るい!

3.自学自習/生涯教育を志す人物は、自分ながらの「図書館の司書」の役割
 即ち教師の役割も果たす必要があります。
 情報源に常に注目して、知識のあり場所をしっかり把握する事
 「どこに必要な情報があるかそのアクセス方法を知っている人は、
 問題の半分を解いているのに同じ」
 この意味で、MSDN(Microsoft Developer's Network)へのアクセス可能性 の所有は大きいでしょう。公開ソ-スコ-ドもどっさりありますよ------。
えーと…
要するにKFの宣伝か?
今となってはもっといいファイラーがいくらでもあるだろうに
>>463
shared_ptrが普通のポインタと同じサイズの保証は無いので、
shared_ptrそのものをnewして、shared_ptr*として格納すればいい

shared_ptr*そのものの解放は、OnDeletionで行えば忘れずにすむ
目から鱗
すいません。教えて下さい。

Tnt Delphi Unicode Controls
ttp://tnt.ccci.org/delphi_unicode_controls

なのですが、C++Builder6でTntUnicode_6.bpgを読み込もうとすると
「インタフェースはサポートされていません。・・・」と言うエラーで
パッケージを取り込むことができません。

どなたか、Tnt Delphi Unicode ControlsをC++Builder6で利用されて
いるかたいませんか?
どのように組み込めば良いのか教えて頂ければ幸いです。

よろしくお願い致します。
496463:04/08/04 09:08
>>493
ここで同じ質問を2年間に3回位してきたのですが、
始めて納得のいく解凍が得られました。
ありがどうございます。
壮大なマルチだな
前回のです。これは質問の仕方があまり良くなかったかも
http://pc5.2ch.net/test/read.cgi/tech/1045542179/540

前々回はもう2chにログが残ってないみたいです。
499デフォルトの名無しさん:04/08/04 11:40
BCB5 proでプロジェクトのオプションのアプリケーションタブで
アプリケーションの設定のところでなぜかアイコンが選択できない状態になっています
これアイコンを設定させるにはどこを設定すればいいのでしょうか?
>>498
前回のだったら、何をしたいのかを推測してあげるのが面倒くさいので、「おかしくなります」と答えただろうなぁ。
501デフォルトの名無しさん:04/08/04 13:53
C++Builderのサンプルコードが沢山あるサイトしらない?
VC++だと海外に沢山あるが・・・
>>495
TntUnicode_6.bpgはDel6用。BCB6用のはBCB6ってフォルダにあるでそ?
で、コンパイルしてみた。

TntLibR.bpkをコンパイルする。
〜.libが開けないというリンカエラーが出たら、オプションソースを開いて
<SPARELIBS>からそのライブラリを削除して再びコンパイルする。
TntLibD.bpkも同様にコンパイルする。
TntThemeManager.bpkは、別のコンポーネントをインストールしておく必要があるっぽくて面倒なので無視。

後は普通に
「コンポーネント」-「パッケージのインストール」でTntLibD.bplを追加する。(たぶん$(BCB)\Projects\Bplにある)
「ツール」-「環境オプション」-「ライブラリ」で、ライブラリパスにTnt〜のソースのパスを追加する。

これでできるはず。
503デフォルトの名無しさん:04/08/04 15:07
あれ、Indyにはブラウザコンポ無いの?
504デフォルトの名無しさん:04/08/04 15:10
なあうじ虫どもよー
さっさと>>11を答えやがってくださいよー
TExcelApplication>>504
ExcelCreator
>>503
Indyにそんなものはない。
IEコンポーネントはPro以上ならBCB本体に入ってる。
PersonalならActiveXコントロールの取り込みから入れる。(その際に何故かProのIEコンポ用ヘッダが入ってるのでそれを削除)
>>502
丁寧に教えて頂き、ありがとう御座いました。m(_ _)m
お蔭様で出来ました。感謝。感謝です。
509デフォルトの名無しさん:04/08/04 19:33
TListViewのあるカラムにプログレスバーを配置したいのですが
どうすればいいの?
>>499
それコンソールアプリってことはない?
>>492
スレ違いで申し訳無いが、そんな物があるなら教えて欲しい。コントロールや
シフトキーを使わずにマウスだけで、複数の離れた位置にあるファイルを選択
してコピーできるファイラーは、どうしてもKFしか見つからなかったのだけど…
バージョンアップ間隔が年単位になってしまったから、乗り換えたいんだ。
512デフォルトの名無しさん:04/08/04 22:31
Cのときによくprintfを使ってデバックしてましたが
C++Builderではどうすればイイのでしょうか?

ShowMessageだうざいんですが・・・
>>512
Memoでもはっつけてそこに出力
>>512
OutputDebugStringはいかが。
515デフォルトの名無しさん:04/08/04 22:49
>>514
MSDNによると
現在のアプリケーションのデバッガに文字列を送信します。
らしいが、C++Builderのどのウィンドウに送信されるのですか?
>>515
イベントログ。
てゆーか自分で調べろ。
517デフォルトの名無しさん:04/08/04 23:09
>>516
おめーうぜーな
屑にはきいてねーよ
某のイベントログは死ぬほどパフォーマンスが悪いんだよな
無制限外せよ
某BBSにて盛り上がっている話ですが、BCB系のmalloc()にはバグがあります。

ttp://www3.realint.com/cgi-bin/tarticles.cgi?pointc2+2388

1MB付近のメモリをmalloc()やnew(内部的にmalloc()を呼び出している)で
確保すると正しくメモりが解放されないサイズ範囲があります。
こんな致命的なバグいつまで放っておくんだ〜!
>>519
そういう問題じゃない。
自作のデバッグモニタは誇張抜きでC++Builderの1000倍高速。
522デフォルトの名無しさん:04/08/05 11:53
>>521
じゃあいいなそれで
>ファイル C:\Program Files\Borland\CBuilder6\Bin\bcb.dmt を作成できません.

エラーはほっといても良いでつか?
何のエラーだろ。
524デフォルトの名無しさん:04/08/05 14:21
>>520
バグレポート出さない限り永遠にほったらかしだと思う。
パティングだってあるんだし、
1MB-1〜1MB-3までの容量をちょうど確保する事なんて
普通に使ってる分には滅多にないと思うが。
google
パディング…7200
パティング…238
>>525
その意見ではIntelがバグ付きPentiumを出した時と同じ言い訳になるぞ。
バグがあるとわかりきっているものを仕事に使う事はできない。
>>522
いいわけ無いだろ。

C++Builderでデバッグする限り他のモニタツールは使えないんだよ。
>>527
じゃおまえの作ったソフトは仕事で使えないな。
>>528
C++Builderでデバッグしないか我慢すればいいじゃん。この話題終了。
C++Builderユーザーって致命的で根源的なバグを容認し
低性能なデバッガを気にせず使うのか。
そして一切の批判には蓋をする。なんかΩに似てるね。
夏はなついよね
今は都合が悪いと夏で逃げられるいい季節ですな。
>>533
夏厨って良い言葉だよね。
>>531
一部の意見を、C++Builderユーザーって纏めるなよ夏厨。
つーかBuilder自身のバグをユーザー側で議論して意味あんのか?
バグがありました。

Borlandに報告

終了
でいいだろ。
それとも割れ物だから報告できないのか?
>>536
割れ物ではなくて俺は正規ユーザーだから報告すべきなのか?
くだんのBBSのユーザーは割れ物を使っているから報告できないのかも知れんな。
あまり期待しないで待ってろ。もしかしたらUpdate#5が出るかもしれんな。
まさかDelphiは関係ないよな?>MMルーチン
>>538
知らんけど試してみな。
そのBBSめちゃ頭の悪いやり取りして無いか?
RTLってリビルドできるんだね。
誰かどう修正すればいいか教えて♥ (他人任せ
#define malloc(size) malloc((size==1048575)?1048576:size)
1048575限定だっけ?
こうだろ
#define malloc(size) malloc((((size)==1048575) || ((size)==1048574) || ((size)==1048573)))?1048576:(size))
malloc(size) malloc((size+15)&0xfffffff0)
>>545
ええー?
コンパイラのバク程度で騒いでいるのはガキ。
BCCは所詮バグだらけ。もちろんBCC以外のコンパイラもな。
騒ぐ必要が無いのはその通りだけど、
そもそもコンパイラのバグじゃないんだけど。
それさえ理解できないアフォはもう来なくていいよ。
>>548
字句解析時に1048575を9999999に取り違えるバグなんだよ。
VCL使ってれば関係ないのね、これ。
VCLでnew使わないのか?
別のルーチンが使われるってこと。
VCLでnewしたときとmallocしたときにバグが出ないことを確認したのかしてないのか
もちろんした。
Update #5 キタ━━━━(゚∀゚)━━━━ッ!!
一応釣られてやるか。マンドクセ。
http://community.borland.com/cgi-bin/surveys/thanx.cgi?cb6reg_updates_down
すみません、Builder5.0での環境の質問なんですが、
TListBoxで 例えば 項目がItemが四つあり、
通常Itemの上で左クリックすると、その項目が選択されますが、右クリックでも同じ動作は可能でしょうか?

MouseDownでItemAtPosで座標を取って、Selectedでtrueを試したところ、
MultiSelectがtrueになっていれば動作するのですが、
複数選択したくないのでfalseにすると「リストが範囲を超えていますと」エラーが出ます

どなたか良い知恵お貸しいただけますでしょうか?
無知ですんませんすんません(´・ω・`)
初心者ですすみません(´・ω・`)

前レス読んでみたら、こういう質問が少ないので、もしかしたらスレ違いかしらヽ(;´д`)ノ
> MouseDownでItemAtPosで座標を取って、Selectedでtrueを試したところ

これで別に問題なかったよ。どんなコード書いてるの?
ちゅうかエラーメッセージによると、単にItemAtPosの戻り値を範囲チェックしてないってだけか。
560557:04/08/05 20:39
>>558
レスありがとうございます
コードは、めっちゃ簡略化すると

void __fastcall TForm1::ListBox2MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Button == mbRight){
int Index = ListBox1->ItemAtPos(Point(X,Y), true);
ListBox2->Selected[Index] = true;
}
}

こんな感じです
やはりMultiSelect = True の場合でしか動作しません。

初心者でごめんなさいごめんなさい
ItemAtPosは何も無いところでは-1を返す(第2引数がfalseなら項目数を返す)ので、
↓こうする

if (index >= 0 && index < ListBox1->Count)
  ListBox1->Selected[index] = true;
562557:04/08/05 20:56
>>561さんを元にして修正しました
書き忘れましたが、ListBox2のItems内には、






と入れておいています


if (Button == mbRight){
  int Index = ListBox1->ItemAtPos(Point(X,Y), true);
  if (Index >= 0 && Index < ListBox2->Items->Count )
   ListBox2->Selected[Index] = true;
}


ここで、 「 い 」を右クリックすると、「リストのインデックスが範囲を超えています(1)」

・・・(´・ω・`)

私もプログラム的に自信をもって挑んだので、ほんと原因不明なんです
MultiSelect = Trueにすると正常動作するし・・・(´・ω・`)

trueにして、Index以外のリストをfalseにするとか、アホなことしようかすぃら
>int Index = ListBox1->ItemAtPos(Point(X,Y), true);
ここは ListBox1 で、

>if (Index >= 0 && Index < ListBox2->Items->Count )
>ListBox2->Selected[Index] = true;
こっちは ListBox2 だけどあってんの?
564557:04/08/05 21:16
>>563
うは・・・ミスりましたすみません
でも結果はやはり一緒でした

クリックに限らず、ボタンですっごく単純に

  ListBox2->Selected[0] = true;

これだけでも出てしまいました。

新規プロジェクトでその単純なコード試しても駄目なら、BCBがぶっ壊れてるのでは
566557:04/08/05 21:25
>>565
や、やっぱりその結論に至りますよね・・・

どうもご迷惑おかけしました(´・ω・`)
ありがとうございます
ヘルプファイルってどうやって作るんですか?
568デフォルトの名無しさん:04/08/06 00:15
TPageControlのタブの部分の色は変えられないのですか?
TTabSheet->Brush->Color
570デフォルトの名無しさん:04/08/06 00:24
TCustomGrid::Paintはヘルプに
Paint メソッドは,グリッドが Windows 描画メッセージを受け取ったとき呼び出されます。
とありますが、この日本語相当するソースはVCLソースのどの部分のですか?
すいません、タブっていうかキャプションの部分です。
TTabSheet->Font->Color
すいません、キャプション部分の背景のことです。
OwnerDrawで
575デフォルトの名無しさん:04/08/06 00:44
新規作成でUnitを作って、そこに新しいクラスを定義しても、
エクスプローラバーみたいなやつ(ツリービューでクラスとか関数とかが表示されるやつ)に
すぐに反映されません。

すでに表示されているクラス内で、ヘッダをincludeしてやると表示されますが、
意味なくinclude文を書いて消すのは面倒です。

何か良さげな方法を知りませんか?
576デフォルトの名無しさん:04/08/06 01:10
クラスを定義する場合にはUnitを作らずに手作業で.hと.cppを
作るのが定石だよ
>>512

本スレ>>294 に既出だが単にprintfデバッグしたいだけなら
これで充分でないの?実行PCに開発環境を入れておく必要もないし

__fastcall TForm1::TForm1( TComponent* Owner) : TForm( Owner )
{
  ::AllocConsole();
}

void __fastcall TForm1::FormMouseDown( TObject*, TMouseButton,
  TShiftState, int nX, int nY )
{
  HANDLE hStdout = ::GetStdHandle( STD_OUTPUT_HANDLE );
  if( hStdout != INVALID_HANDLE_VALUE ){
    TCHAR Message[ 1024 ];
    DWORD dwLength = (DWORD)::wsprintf( Message, TEXT("%d, %d\n"), nX, nY );
    DWORD dwLengthWritten;
    ::WriteConsole( hStdout, Message, dwLength, &dwLengthWritten, NULL );
  }
}
578デフォルトの名無しさん:04/08/06 01:28
>>577
printfデバッグするだけでそれだけコード書かなきゃいけないんでうすか?

そうとうめんどうですね

VC++のASSERT等を期待していたのですが、所詮BCBですねw
VC++を使ったらいいのでは?
>>578
おいおい、これは実装例だってば。
表示処理部分を自前printf関数にすりゃすむ問題でしょ
これなら1行
freopen("debug.log", "a", stdout);
582デフォルトの名無しさん:04/08/06 13:36
C++ Builder 5.0 Update pack 1 を使い始めた者です。(VC++は慣れているが、BCBは初めてです。)
クイックスタートのTextEditorチュートリアルの作成から始めてみようと思いましたが、いきなりつまづきました。
コンポーネントパレットの表示がStandardページだけしかなく、しかも左上向きの矢印とFramesコンポーネントしかありません。
クイックスタートの図のように、多数のコンポーネントが機能別にグループ化されて並んでいるようにするにはどうしたら良いでしょうか。
どなたか教えて下さい。

インストールユーザとログインユーザが違うとそうなる。

CDからレジストリのインストールをすると直る。
584デフォルトの名無しさん:04/08/06 14:07
おお、ずばりその通りでした。解決しました。
ありがとうございます。神様です。
585本田:04/08/06 15:08
>つーかBuilder自身のバグをユーザー側で議論して意味あんのか?

ある。

>バグがありました。
>Borlandに報告
>終了
>でいいだろ。
>それとも割れ物だから報告できないのか?

malloc()みたいなランタイムライブラリのバグなら、
ソースコードを持ってる人は自分でパッチつくって、
ボーランドや必要としている人にに送るといい。
>>585
> malloc()みたいなランタイムライブラリのバグなら、
> ソースコードを持ってる人は自分でパッチつくって、
> ボーランドや必要としている人にに送るといい。
議論じゃねえじゃん。
必要だよ
話題に上っていればパッチを作るだけのスキルを持った人の目に付く可能性が増える
589デフォルトの名無しさん:04/08/07 01:57
個人レベルで対応できるならパッチ等の作り方を
議論するのは必要な人にとって意味のあることでは.
スキルのある人が指導してくれればなおさら.

590デフォルトの名無しさん:04/08/07 10:01
TListViewにエクスプローラみたいにローカルにあるファイルの
アイコンを表示するものを作ってます。

TCustomImageList* imageList = new TCustomImageList(32,32);
TIcon* ico = new TIcon;

(HICON)SHGetFileInfo(fn.c_str(), att, &shfi, sizeof(SHFILEINFO), flg);
ico->Handle = shfi.hIcon;

imageList->AddIcon(ico);

delete ico;

ってな感じで、TCustomImageListに追加していって
TListViewのLargeImagesに指定しています。

http://up.isp.2ch.net/up/60d0659d3b4e.gif
ところが↑のように、Windows XPだと、フォルダのアイコンなどが
エクスプローラに比べてアイコンの影の部分が汚くなってしまいます。
これを綺麗にするには、どうすれば良いでしょう?
夏休みだからといって暴れてる餓鬼がいるな
>>591
お前みたいのがな。
こういう脊髄反射が夏ならではなんだよねえ。
with Sender.Canvas do
if Assigned(Font.OnChange) then Font.OnChange(Font);

ってC++Builderではどういうふうに書けばよいのですか?
TFont* font = Sender->Canvas->Font;
if (font->OnChange)
 font->OnChange(font);
596590:04/08/07 18:32
すみません。いろいろ試してたら、

imageList->BkColor = clWindow;

というふうに背景色設定すれば綺麗になりました。
597デフォルトの名無しさん:04/08/07 23:09
TStringGridのセルを点滅させることはできますか?
とりあえず、TThredで0.1秒ごとに再描画させてDrawCellで色をかえる
といった処理をしています。
>>597
ただそれだけのためにスレッドを作るの!?
かなり非効率でしょ…

Timerで直接TStringGridのCanvasに色を塗ったら?
QuorityCentrulにメモリエラーのレポート出しといたけど
あれは英語しかつかえない専用プログラムになってしまってようだね?
初めて使ったよ。
と言う訳で本当にバグレポートを送れたかどうか怪しいけど
一応出しといた。英語も適当だし上手く行ったか分らんけど。

そりゃBorlandにいるのは外人なんだから英語で書かなきゃ意味無いだろ
601デフォルトの名無しさん:04/08/08 02:58
#include <iostream>
using namespace std;
int main()
{
AnsiString a = "a";
return 0;
}
をコマンドラインからコンパイルしたい
bcc32 hoge.cpp
なにをincludeすればイイのですか?
よく覚えてないけど
コンソール(VCL使用)用のプロジェクトを作ってみて
それを真似したら?
>>601
vcl.hもしくはsystem.hpp
さらにrtl.libをリンクする必要がある。

//includeディレクトリをgrepすれば必要なヘッダはわかるはず。
//そのままdstring.hをインクルードするとsystem.hpp使えと怒られるが(゚∀゚)
>>603
追加
iostreamを先にincludeすること
そうしないと
AnsiString str = "hoge";
std::cout << str << std::endl;
でエラーになる
605デフォルトの名無しさん:04/08/08 12:56
>>604
BCB5を使っているのですが、rtl.libがありません。

BCB6ではあるのですか?
>>605
6しか持ってないからわからないが./Lib/Releaseか./Lib/Debugに入ってないか?
BCB5じゃなくてBCC5.5.1ってオチだったら知らん
607本田:04/08/08 19:26
>BCB5を使っているのですが、rtl.libがありません。
少なくともBCB6と同じディレクトリには見つからない。

>BCB6ではあるのですか?
ある。

608デフォルトの名無しさん:04/08/09 10:02
TCppWebBrowserを使い、HTTPアプリと接続してみたところ、
あるマシンではググルのページ検索サービスにつながってしまいます。

これはどうしたことでしょう。
609デフォルトの名無しさん:04/08/09 10:16
あらまあ。どうしたことでしょう。
あらあら奥さん。お気の毒ですわね〜
HTTPアプリと接続ってどゆこと?
>>611
HTTPサーバみたいなアプリで、HTML文書をリターンする。
それをNavigateしたらぐぐるのページが表示されたとゆうことかな
>>613
ググルのページですが、ググルのIPサーチページみたいな。

XXX.XXX.XXX.XXX ページを探しましたが見つかりませんでした、みたいな。
で、直リンテキストみたいなのが貼ってあって、それをクリックするとHTTPアプリにやっと接続する。
意味和漢ねー
キャプチャしてうぷろだにでもうぷしろよ
>>614
ふむふむ。

いやもう僕にはさっぱりですな '`,、(´∀`) '`,、
617デフォルトの名無しさん:04/08/09 13:31
BCB9は?
618デフォルトの名無しさん:04/08/09 14:15
TNMPOP3で新着メールの判断方法を教えてください
やだ
620いなむらきよし:04/08/09 16:05
僕、奇形(*^_^*)
621デフォルトの名無しさん:04/08/09 17:57
夏だねぇ〜
622デフォルトの名無しさん:04/08/09 18:49
IndyのPingはどこにありますか?
623622:04/08/09 19:07
TIdIcmpClientにありますた。
pingで取れる以上の情報をとる手段を教えて欲しいで津。
ポートスキャソ
625デフォルトの名無しさん:04/08/10 06:32
TXMLDocument
ってどうやって使うの?
626デフォルトの名無しさん:04/08/10 09:11
IndyではSubnet Maskは分かりませんか?
627608:04/08/10 13:09
>URL 192.168.2.200に関する情報は見つかりませんでした。
>
>URLが正しい場合は、ここから192.168.2.200を開いてみてください。
>"192.168.2.200"を含むページの検索

こんなページが開いてしまいます。
で、リンクをクリックしてやっとHTTPアプリに繋がる。
何ででしょうか。
単に"http://192.168.2.200/"と指定すればいいんじゃないの?
>>628
その入力結果が >>627 でつ。
IEコンポーネントだけでなく、IE本体でも同じ結果でした。
ということは、回避策は無いのか?
630デフォルトの名無しさん:04/08/10 17:40
MemoryStream を String にセットするにはどうしますか?
char *buf = new char[MemoryStream->Size+2];
buf[MemoryStream->Size+1] = '\0';
MemoryStream->Read(buf, MemoryStream->Size);
std::string str(buf);
delete[] buf;
ありがとう。>>631

AnsiString buf; として、
buf.SetLength(MemoryStream->Size);
MemoryStream->Read(buf.c_str(), MemoryStream->Size);

てのもOKですか?
「buf.c_str()」が一時的なバッファのポインタ返したらアウトだけど。
なんか戻り値はconstになってますが、c_str()は書込に使わない方がいいです。
newしたくないなら
std::vector<char> buf;
buf.resize(MemoryStream->Size);
MemoryStream->Read(&buf[0], MemoryStream->Size);
AnsiString str(&buf[0], MemoryStream->Size);
×constになってますが
○constになってませんが
度々ありがとうございました。>>633-634
すみません、もう一つ教えて下さい。
>std::string str(buf);
または、
>std::string str;
>str.assign(buf);
と書くとき、
このとき、bufの途中にNULL文字が入ってても大丈夫なんですよね?
駄目です。NULL文字が入ってるならこうやって下さい。
std::vector<char> buf;
buf.resize(MemoryStream->Size);
MemoryStream->Read(&buf[0], MemoryStream->Size);
std::string str(buf.begin(), buf.end());
>>637
うゎ、そうでしたか。
stringの使い方が分かるようになりました。
639デフォルトの名無しさん:04/08/10 19:20
ポインタのグローバル変数ってNULLで初期化されましたっけ?
>>639
される。
>>629
アドレスに変な文字が入っていて検索ページに飛ばされているんじゃないの?
それかIEがおかしいか。
鯖側がまともに動いてるのか激しく疑問。
>>641-642
実はIE単体で使用しても同じ現象なのでIEの問題ポイでつ。
ググルのリンクをクリックすると鯖に繋がるので鯖はOKポイでつ。
TMemoの任意の行にスクロールさせるのはどうやりますか?
int targetLine = 任意の行;
int firstLine = SendMessage(Memo1->Handle, EM_GETFIRSTVISIBLELINE, 0, 0);

SendMessage(Memo1->Handle, EM_LINESCROLL, 0, targetLine - firstLine);

一発で飛べるメッセージとかあるかもしれないけど、一応これででけた。
SendMessageよりもPerform使えよ
>>646
なんで?
美しさ
はあ
タイプ数
へえ
見た目
たいした理由はないってことね。
そんなに変わらないのね。
OOっぽいから
>>653
ジャブをおろそかにするボクサーみたいな態度だな
>>657
ジャブが上手かどうかなんて関係ないね。
勝てばいいのさ。
659デフォルトの名無しさん:04/08/12 08:50
BCB次回作はいつごろ出ると踏んでいますか?
BCB6もバグだらけでお笑いレベルだし、
6.5とか出して欲しいな。
>>658
お前じゃ勝てないな
>>658
そういうやつが世界戦でアウトボックスに完封されるんだよ。
663デフォルトの名無しさん:04/08/12 15:12
定義済みアクションの TFileOpen を登録すると、
「それは保存だろ!」と突っ込みたくなるようなアイコンになってしまうんだけど、
うちだけ?開くらしいアイコンってどこかにないかな?
664デフォルトの名無しさん:04/08/12 16:29
dll
質問させてください。

1つのアプリケーションで複数のFormに不特定多数のコンポーネント
を貼り付けているのですが、現在アクティブなFormとフォーカスのある
コンポーネントが分かるよう、色のついた枠をつけたいのですが
良い方法見つかりません。どなたかアドバイスください。
TPanelを派生したコンテナパネルコンポーネントを作る。
自分の管理しているコンポーネントにフォーカスがきたら色表示。
667665:04/08/12 18:55
>>666

たとえばListViewにフォーカスがきたときにListViewの
周りを2pixの黄色い枠で囲いたい時にTPanelに前後左右
2pix小さいTListView貼り付けてPanelの色を変える
ということですか?

ちなみにOnReturnで色付け、OnExitで色はずしって
感じでしょうか?
668666:04/08/12 19:12
今家でBCB持ってないから即答出来ないな。

フォーム来るメッセージハンドラで(イベントハンドらではない)、
フォームが自分に貼り付けられてるコンポーネントを全部見てフォーカスのあるコンポーネントを探す、
なんてことは出来るだろうね。
で、コンポーネントのParentのオブジェクトを見てコンテナパネルだったら枠を書いてやるとか。

もっとスマートな方法思いついた人よろ。
669666:04/08/12 19:21
超だっさい処理で良いなら。

コンテナパネルの初期処理で、
コンテナパネル自身に貼られたコンポーネントのOnEnter/OnExitイベントハンドラを設定する。
そのイベントハンドラでコンテナパネル自身のメソッドをコールしてやる、と。

で、この方式の欠点はOnEnterイベントを他に使えないことかな。
670デフォルトの名無しさん:04/08/12 22:10
「モジュール'xx.exe'のアドレスxxxxxxでアドレスxxxxxxxに対する読み込
み違反がおきました」
といったメッセージが表示されたときに、xxxxxxアドレスからエラーにソースコードの位置
を知ることは可能でしょうか?

コンパイル時につくったマップファイルから調べるか、デバッグでアドレスを指定するなど
してみましたが、うまくいきませんでした。
671本田:04/08/13 13:48
>BCB次回作はいつごろ出ると踏んでいますか?

WindowXPの64Bit版が遅れてるので、来年後半にずれ込むと思う。
>>670
CodeGuardをONにしれ。出てきたログファイルを読めば大抵わかる。
Personalではあいにくと付いてないけど。
673デフォルトの名無しさん:04/08/15 19:11
多重継承できないってどういうこと?
つかえね
VCLがだろ?
まあいいやん。
Delphi側はimplementsで委譲で多重継承モドキができるんだが、C++B側に対応する機能は無いの?
676デフォルトの名無しさん:04/08/15 22:18
つか、職業プログラマでBCB使ってる人っている?
漏れの部署ではVC++しか使うことはない
677デフォルトの名無しさん:04/08/16 00:37
VCLオブジェクト(TObjectから派生してるオブジェクト)をXMLでシリアライズ/デシリアライズ
したいんだけど、どうすればいいの?
678デフォルトの名無しさん:04/08/16 05:31
現在のBCBの最新版は6でいいんだよね?
そうです。んで次は9という話。
>>677
TWriterの必要なメソッドはvirtualになってないし、
ObjectBinaryToTextを参考にObjectBinaryToXMLみたいなのを作る、ぐらいかなあ…
既にあるような気もするけど。

COMオブジェクトにしてしまうのは無しですよね
6から飛んで9なんですか。
6・7は何処にいったんでしょうね〜
インターネットプロトコルと同じさ
>>675
__interfaceあたりくらいしか思いつかん。

>>673
その代わりにキャストしても元の型がわかる強力なRTTIがあるじゃないか。
>>681
6なら今あるけど。
>>676
ノシ

うちは請負中心の零細で、お客さんも理解があるから、ほとんどのアプリがBCB6Proで開発。
VCLをスタティックリンクにしてあるから、「バイナリがでかいYO!」って言われるくらいかな。

打ち合わせのときに、お客さんが「自分でも直したいからVBかVC++で。」って言ってくることがよくあるけど、
「本当に自分で直す根性ありますかぁ?大変ですよぉ。」って言うと、たいていは尻込みする。

もちろん、ソースコードは渡しているし、わざわざBCBを買ったお客さんもいた。でも、タンスの肥やしになったようだけど(w

>>685
うちはちょっと業務が特殊なので、BCBメインです。
客にソースコード込みでアプリケーションを提供するときには(あんまり無いけど)、
「VCでもいいですけど、GUI部分の工数を余分に頂くことになります」
と言っている。
別に水増し請求してる訳じゃなくて、BCBだと安く済むってだけなんだけどね。
>>683
>>673
>その代わりにキャストしても元の型がわかる強力なRTTIがあるじゃないか。
そういう問題じゃない。
VCLで多重継承が使えないのはつらい。
688685:04/08/16 23:21
>>686
> 「VCでもいいですけど、GUI部分の工数を余分に頂くことになります」
> と言っている。
> 別に水増し請求してる訳じゃなくて、BCBだと安く済むってだけなんだけどね。

これ、俺も同じ。(w
そしてよくあるのが、打ち合わせの時に「Excelのような表形式でデータ入力がしたい。」と言われる。
だから、BCB5のデモ版でTStrinigGridを試してからBCBに乗り換えた。
あと、ADOExpressが使えるから、AccessのDBをデータファイルとして使って、レポートが定義してある
別のAccessDBにテーブルをエクスポートして帳票印刷したりしたこともある。

その前はGUIをVB、内部処理をVC++のDLLで作ったり、MSHFlexGridをインポートしていたんだけど、
デバッグが面倒すぎた。特に、GUIをVBで作っていたときはIDEごとコケたりするし。
689デフォルトの名無しさん:04/08/16 23:29
VCでUIつくるのそんなに面倒か?
慣れだろ?
690デフォルトの名無しさん:04/08/16 23:32
TStringGridでもExcelのように入力を期待されると結局自前で作るしかないし
つか、BCBが用意しているコンポーネントは業務でそのまま使えることは
極めて稀
結局VC使うのとほぼ同じ
そう思うならVC使ってりゃいいんだよ。
俺はBCBで簡単に出来るときはBCBで作ってるね。
>TStringGridでもExcelのように入力を期待されると結局自前で作るしかないし
難しくなりそうになったらVCにしてる。

BCB使うときは基本的にUIがポトペタですむときが多いね、中身のロジックは
純粋にC++で作るのでVCとかBCBとか関係ない。
で、VCLを自分ではほとんど作らないんだけど
>VCLで多重継承が使えないのはつらい。
この辺はどうなんでしょうか? VCLを多重継承するときってどんなとき?
693デフォルトの名無しさん:04/08/16 23:45
まともに多重継承を使いこなせてるのは極少数のハッカーだけだと思うが・・・
C++Builder1に対応するDelphi2は、単一継承だけだったんだけどね
Delphi3でinterface,Delphi4でimplementsと、Delphi側がその後委譲多重継承とでも言うべき
C++とは噛み合わない独自の多重継承の方法を作り上げてしまった

で、C++Builder側がおいてけぼりをくらってる、と
>>683
__interfaceって何だろうと思ったら、
#define __interface class
だったw

> 純粋仮想関数だけを持ち,データメンバーを持たないクラスがある場合,
> C++Builder のコンパイラは,これを Object Pascal の
> インターフェースに対応するクラスとして認識します。
> このように,VCL スタイルクラスを作成して,多重継承を使用することが可能です,

こんな機能もあったのね。まあ漏れがお世話になることは無いかもしれないけど。
696デフォルトの名無しさん:04/08/17 01:26
↑大嘘
>>696
ナニが?
698デフォルトの名無しさん:04/08/17 01:41
漏れがお世話になることは無いかもしれないけど。
はぁ
アフォな突っ込みするヤシって大抵アゲなんだよね
自分のアフォぶりを晒したいんだろうな( ´Д`)
>>695
純粋〜だけのクラスからは多重継承できる、ってのは、ver5か6からの機能だった気がする。
これで多重継承についてはJavaと同レベルになったから、まあいいかなと思ってる。結構使ってる。
でもDelphiのは知らない。Javaとは違うの?
>>702
Delphiのは、Javaのモデルに加えて、interfaceのメソッド(一部でも全部でも)を、
プロパティとして持ってるメンバに任せることができる。
メンバ(ポインタ)が指す先を取り替えたら
interfaceのディスパッチ先も変わるというプロトタイプベース言語もびっくりの柔軟仕様
>>700
お前みたいにsageで書く奴もいるけどね。
>>704
ワロティングwwwwwwwwwwwwwwwwwwwwwwwwwww
706デフォルトの名無しさん:04/08/17 10:32
詳しく書いて下さい。サンプルコード希望。>>703
知らないからいつもインターフェースのスーパークラスわざわざツクテタヨ!
>interfaceのディスパッチ先も変わるというプロトタイプベース言語もびっくりの柔軟仕様

これが本当ならクラスベースOnlyのC#はゴミってことかよ!
709デフォルトの名無しさん:04/08/17 10:50
InterBaseを使用したwindowsアプリを作成したんだけど、InterBaseをインストールしていない
PCで動作させるにはどうすればよいの?
>>709
Firebirdのembedded版を使う
C++BuilderでC++を始めたいと思っている者ですがお金があまりありません。
安くでC++Builderを入手できる方法があれば教えて頂けないでしょうか。
コードの質問でなくてすいませんが何卒よろしくお願いします。
ありがとうございます
英語苦手ですが読んでみます
714デフォルトの名無しさん:04/08/17 13:56
自作でAnsiStringの機能を持つクラスを作りたいのですが、
いまいちよくわかりません。
コンストラクタをcharやintで分けて作るというところまでは分かるのですが…
肝心のコンストラクタの中身をどうしていいかわからず(−−;
ちなみに、コンストラクタはAnsiStringと同じものをすべて、
オペレーターは = と + のみでよいという設定です。
2チャンネルの皆様ならば!と思い書き込みをさせていただきました。
何卒よろしくおねがいします。
>>714
っ[ Cの標準ライブラリ ]
716デフォルトの名無しさん:04/08/17 14:09
>>715
っ[ Cの標準ライブラリ ]??
それはどういうことでしょうか?
717デフォルトの名無しさん:04/08/17 15:02
質問です。
Pascalで記述したクラスのメンバ関数で、引数にHWND型を取る物を利用しようと思ったのですが、リンクの段階でエラーが発生してしまいます。
試行錯誤というか力技で、解決したように思うのですが、何か邪道な感じというか、もっとスマートな方法があるんじゃないかと考えています。
Pascalソースは、プロジェクトに追加>ユニットのコンパイルという手順を踏んで、生成された.hppファイルを、メインフォームcpp(という呼称でいいのかは不明です。TMainForm::FormCreateとかが自動生成される先)からIncludeし、メンバ関数を利用しようとしました。
インスタンスの生成や、呼び出し位置のスコープ等は間違ってないように思います。
エラー内容としては、関数(void *)の実体が定義されていない〜という物です。
BCBでのHWNDの型定義がvoid *で、本来のPascalソースからのオーバーロード関数として解釈されてんじゃないかと踏んで、本来のPascalソースで引数の型(HWND)をLogWord(windows.pasから)で定義しなおしたところ、コンパイルも動作も、確認できました。
動作してるならいいじゃねーかって感じですが、すごくFAQな感じがします。
いちおう検索してみたのですが、2chのBCBスレで「Pascalソースの関数内でAPIを呼んでる香具師は使えない」とかそんな感じの書き込みくらいしか、情報を得られませんでした。
よろしくお願いします。

最初、Delスレ書き込んだのですが、スレ違いくさかったので、こちらに移民してきました
なんですかその長いレスは
>>717
Delphi側のソースをTHandleにしとけば、BCB側を(unsigned int)キャストでとりあえずリンクできる。

>何か邪道な感じというか、もっとスマートな方法
普通はTFormなどのコンポーネント単位でやり取り。
ウィンドウハンドルを扱うのは邪道なんだろうね。
>>714
class NullpoString {
private:
  AnsiString Str;
public:
  __fastcall NullpoString(int Value){
    Str=AnsiString(Value);
  }
};

とか

class NullpoString:public AnsiString{
(略)
};

とか

typedef AnsiString NullpoString;

とか
721デフォルトの名無しさん:04/08/17 15:37
>>719
なるほど、THandleですか
ありがとうございます。そちらの方が、抽象度が高い感じがして、よさげな印象ですね
HWNDがそのまま通ってくれればなー..
ありがとうございました
Delphiのis演算子はC++Builderはどのようにかけばよいのでしょう?

if E is EThread then〜〜
>>722
dynamic_castで。
724本田:04/08/17 21:42
>VCLオブジェクト(TObjectから派生してるオブジェクト)をXMLでシリアライズ/デシリアライズ
したいんだけど、どうすればいいの?

ttp://www.simdesign.nl/xml.html?googleadwords
725デフォルトの名無しさん:04/08/17 23:07
Xerces
超おすすめ
726デフォルトの名無しさん:04/08/18 00:28
buffer = new Byte (length);
lengthバイトのバッファを確保してるつもり!
ヘッダ,ソースで230ファイル程度のプロジェクトだったため
見つけるのに丸い一日掛かった・・・
buffer = new Byte (length);

「どうせ警告を無視してるんだろ」と思ったが
もし、lengthがByte型なら警告出ないな。
>>726
一日が丸いのか!?
丸いに決まってるだろ!
それともお前は時動説を信じてるのか?
じどうせつ(←何故か変換できない)
そんなこと、どーでもいいじゃん、ね☆
次回作は?(´∀`)
ミッションインポッシブル3
〜はじめてのおつかい〜
734本田:04/08/18 13:46
>VCLオブジェクト(TObjectから派生してるオブジェクト)をXMLで
>シリアライズ/デシリアライズしたいんだけど、どうすればいいの?

ttp://codecentral.borland.com/codecentral/ccweb.exe/listing?id=18939
735デフォルトの名無しさん:04/08/18 18:00
C++Builder初心者です。
質問なのですが、C++Builderのエディタが頻繁に、数秒固まってしまいます。
サンプルコードでも、自分で書いたコードでも、違いは無いようなのですが、仕様なのでしょうか。
何か、回避策等あれば、教えてください。
よろしくお願いします。
支援機能を全部無効にする
737735:04/08/18 18:14
>>736
厨房なんで、インテレセンスは切れません。。
でもありがとうございます
738735:04/08/18 18:15
>メモ: 自動機能が使用不可能になっている場合でも,〔Ctrl〕+〔Space〕を押すといつでもコード補完を起動できます。
゜ ゜=3 ( o )
>>735
インクルードパスの中に接続が切れたネットワークパスとかが含まれてない?
740735:04/08/18 20:02
>>739
含まれては無いと思います。
CD挿入しっぱなしなので、読みにいってる可能性ありますね。
CD取り出して、様子見てみます。
ありがとうございます
>メモ: 自動機能が使用不可能になっている場合でも,〔Ctrl〕+〔Space〕を押すといつでもコード補完を起動できます。
゜ ゜=3 ( o )

ヘェー それじゃ俺切っておこう
CPU450MHz じゃきつい。そうでなくてもそれなり煩いみたいだけど
742デフォルトの名無しさん:04/08/19 06:50
自作ソフトについて、こんな事言われちゃったよ

> インターフェイスからBCコンポーネント臭さを一掃してほしい。
> コンポーネント使っている=低級
> というパブリックイメージがあるように思うから。

なんか悔しい〜(。><)
743デフォルトの名無しさん:04/08/19 07:17
パブリックイメージ( ´,_ゝ`)
テメエのイメージがパブリックだと思うなとでも言っとけ
自分はVC++6やOffice2000なんかのソフトが立ち上がると、
うわ、MFC系の凡庸モッサリMDI嫌い、サイズ固定ダイアログワールドダサい、
長々ウィザードしんどい、と拒否反応なんだが。
746デフォルトの名無しさん:04/08/19 10:54
VC使って喜んでる奴は自己満足房なんだろうな
747デフォルトの名無しさん:04/08/19 11:38
どこか初心者でも分かるようなC++Builderのサイトない?
とくにクラス系について書いてあるサイト希望
>>747
コンポーネント集の本買え
749デフォルトの名無しさん:04/08/19 12:02
>>748
サイト教えれつってんだって史ねよクズが
はははは、こやつめ
751デフォルトの名無しさん:04/08/19 12:05
>>734
落とせねーじゃんよ、史ねよクズが
>>751
   ∧_∧    / ̄ ̄ ̄ ̄ ̄
    (ω・ )ゝ < なんだって?
.  ノ/  /     \_____
  ノ ̄ゝ
753デフォルトの名無しさん:04/08/19 12:21
IQが80以下だと落とせないらしいよ。
754デフォルトの名無しさん:04/08/19 12:26
IQが20程度しかないけど、やっぱ無理?
LAME.dllを使ってmp3エンコできる簡単なツール作りたいんですが資料が見つかりません。
なにかいいものありませんか?
gogo.dllイクナイ
758デフォルトの名無しさん:04/08/19 12:48
>>754
その質問が>>753のあとに出るということは、
20が80より多いか少ないかもわからないということですよね?

当然無理です、そんなんじゃ。
759デフォルトの名無しさん:04/08/19 13:37
おまいらだからVC使ってる厨房に馬鹿にされんだよ
760デフォルトの名無しさん:04/08/19 14:18
tu-ka、VCからみたらBCBなんて糞以下だよね
761デフォルトの名無しさん:04/08/19 15:36
ほら馬鹿なVC信者が釣れただろ?
>>716
「っ」を、手に見立てて、Cの標準ライブラリをどうぞ、という意味だと思われます
要するにstd::string見ろと
763デフォルトの名無しさん:04/08/19 16:12
( ´∀`)っI
764735:04/08/19 16:22
>>735
IDEが固まる〜解決報告です。自動支援機能を全OFFにしたところ、以前のように固まることは無くなりました。
支援機能自体は、キーを明示的に打つことで、自動支援がOFFでも利用できるようです。
キーのバインドは、
>代入文を入力し〔Ctrl〕+〔Space〕を押す。変数に対して有効な引数のリストが表示される。コードに入力する引数を選択する
>〔Shift〕+〔Ctrl〕+〔Space〕を押すといつでも宣言表示を起動できます。
ありがとうございました。

>>741
煩わしいということは、なくなりました。
Celeron1.4なんで、比較になるかは分かりませんが、、、
コンパイルのほうも、BCBMLでプリコンパイル一連の投稿を見て、それなりの速度になったと思います
教えてください。
JavaでいうClass.forname(String classname)みたいなことは
C++でできますか?

String型の配列にクラス名を入れて、for文をまわして
配列に格納されているクラス名のクラスのインスタンスを
作成したいのですが、どうすればいいかわかりません。
できません。
767765:04/08/19 17:17
そうですかーありがとうございます。

fooにクラス名を入れて
hoge = new foo()
ってやりたかったんですけどね

なにか代替案があればアドバイスください。
PrintDialogを使わずに印刷する方法を教えて下さい。
>>767
hoge = new foo(class_name);
とか、やりたいのかい・・・
770本田:04/08/20 00:01
>PrintDialogを使わずに印刷する方法を教えて下さい。

Delphi用だけど参考になるかな?
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=31
DBGrid のバグ(?)報告するんでちょっと聞いてくれよ。

1.グリッドに表示されている一番下のアイテムをクリック。
2.カーソルキーの↓を押す。  ---> [*]と表示される。
3. 1.で選択されてたアイテムを再度クリック。
---> するとクリックしたアイテムの1個うえのアイテムが選択される。

レコードの挿入をキャンセルした際、座標計算が狂うんだと
思うんですけど、解決策知ってるひと居たら教えてくれよ♥

環境は、BCB6 Pro SP4、WINXP Pro SP1 です。
>>771
仕様です。
773デフォルトの名無しさん:04/08/20 09:34
TLabel* をstd::vectorに入れて
std::sortできないんだけ、どうすればいいのかしらん?
sort()に、比較関数か比較関数オブジェクトを渡す。
こんな感じ(試してないけど)

struct compare {
 bool operator()(const TLabel *lhs, const TLabel *rhs) const {
  return lhs->Caption < rhs->Caption;
 }
};

std::sort(v.begin(), v.end(), compare);
BCB6で、GDライブラリを動的リンクして使おうと思ったんですが、

#include "gd.h"
#include <stdio.h>

typedef gdImagePtr __stdcall (*Proc1)(int,int);


{
HINSTANCE handleDLL = LoadLibrary("bgd.dll");
Proc1 gdImageCreate = (Proc1)GetProcAddress(handleDLL,"gdImageCreate");


gdImagePtr im;
FILE *jpegout;
int black white;

im = gdImageCreate(64, 64);
black = gdImageColorAllocate(im, 0, 0, 0);
white = gdImageColorAllocate(im, 255, 255, 255);
gdImageLine(im, 0, 0, 63, 63, white);
jpegout = fopen("test.jpg", "wb");
gdImageJpeg(im, jpegout, -1);
fclose(jpegout);
gdImageDestroy(im);

FreeLibrary( handleDLL );
}

実行すると、アドレス0〜でアドレス0〜に対する読み込み違反が起きました、と出て実行できません。
GDライブラリを使ってる人はどうやって実装したんでしょうか。教えて下さい。
776デフォルトの名無しさん:04/08/20 15:52
おまいら早くBCB9を出してください
っ[BCB9]
778デフォルトの名無しさん:04/08/20 16:59
そんなんじゃ満足しません
っ[BCB10]
つ[BCBX]
>>774
LoadLibraryとGetProcAddreessの戻り値ちゃんとチェックしてるか?
>>775だった・・
783本田:04/08/20 22:30
>DBGrid のバグ(?)報告するんでちょっと聞いてくれよ。
>
>レコードの挿入をキャンセルした際、座標計算が狂うんだと
>思うんですけど、解決策知ってるひと居たら教えてくれよ♥
>
>環境は、BCB6 Pro SP4、WINXP Pro SP1 です。

ラッキーなことにVCLのソースコードをお持ちなので、
ご自分でパッチを作って、
ボーランドや必要としている人に送ることができます。

またはDrawGridコンポーネントを継承して、
貴方好みのGridコンポーネントを創ることができます。
>>776
バージョンいくつでも良いからバグのないBCB出せや!
せめてBCB5SP1から移行可能なBCB出せ!
質問があるのですが。トランプゲーム(ブラックジャックやポーカー)レベルの作品を作るのに適した
参考書はありますでしょうか?
やはり「C++Builder 6コンポーネント活用ガイド&実践プログラミング Vol.2 実践テクニック編」
を参考書に買うのがベストですか?
>>785
ベストです。
ゲーム限定ならこんなのもある。古本屋で見つけたらどうぞ。
『C++BuilderでWindowsゲームを作ろう!』
788765:04/08/20 23:44
>>769
というか、fooにはクラス名を表す文字列を入れたいのですよ。
769さん風に書くとhoge=new class_name()という感じです。
789785:04/08/20 23:48
>>786
>>787
返答ありがとうございます。取り合えず、実践テクニック編を買ってみます。

大学の講義で、仕方なくやらなきゃならないんですが、本でもみながら頑張る事にします。
また、何かあったらここに相談させて貰いますので、よろしくお願いします。
790デフォルトの名無しさん:04/08/21 00:27
>>784
自分でパッチ作るなり、導出して別のクラスつくるなりすれば
問題なくね?
791本田:04/08/21 00:40
>自作ソフトについて、こんな事言われちゃったよ
>
>> インターフェイスからBCコンポーネント臭さを一掃してほしい。
>> コンポーネント使っている=低級
>> というパブリックイメージがあるように思うから。
>
>なんか悔しい〜(。><)

自作コンポーネントでアプリケーションを構築すればいいのでは?
BCBはコンポーネントを使うのは天国で、創るのは地獄だから。
792デフォルトの名無しさん:04/08/21 00:45
そう?
コンポーネント作るの簡単じゃん
なんかパッケージにインスコとかしなきゃなんなくて面倒じゃん
794デフォルトの名無しさん:04/08/21 04:54
別にパッケージにインスコしなければいけないこともないんですが・・・
>>775

gdImageJpeg関数にFILE*渡してるけどこのDLLってBuilder用なの?
以前ogg関係のスレでFILE構造体に起因する問題の書き込み見た記憶が
たしかBuilderとVCではFILE構造体に互換性がないんじゃなかったかな

違ったらスマソ
BCB6personal初心者ユーザーです。
RichEdit形式のテキストをCanvasオブジェクトの任意の位置に貼り付ける方法
を教えていただきたけませんでしょうか?

やりたいことは、プリンターにbitmap形式の画像とRichEdit形式で作成された
文章を同時に印刷したいのです(画像上半分で、RichEdit形式のキャプションが
つく感じ)。

よろしくおねがいします。
797デフォルトの名無しさん:04/08/21 11:42
RichEdit形式のテキストってなに?
>>797
金色の文字も表現できるもの。
Canvas->FontでRichEditと同じになるようにテキストの属性を設定して
Canvas->TextOutするというのは?
800775:04/08/21 13:29
>>781
GetProcAddreessの戻り値がNULLでしたorz
その前のLoadLibraryの方はNULLではなかったので、ここまではうまく行っているようです
「bgd.dllは見つかったけど、関数gdImageCreateが見つからない」ってことでいいんですよね?

……どうやったらちゃんと見つかるんだ(泣)

>>795
すいません。FILE構造体以前の問題でした。
このDLLはbuilder用ではないです。これです。→http://www.boutell.com/gd/
最近GIFのライセンスが切れたとかでGIFを使えるようになったので、GIFをアプリで作成したいなと。
ここのWindows DLL .zip (NOT CURRENTLY FOR PHP)をDLして、その中のbgd.dllを使いました。

どなたか、これ使ってことある人、います?
>>800
実際には関数名に装飾付いてるとか。

ちなみにWin32APIの場合はソース上でMessageBox呼び出しても実際に呼ばれるのはMessageBoxAだったりする。
(ANSIのMessageBoxAとUnicodeのMessageBoxWの2種類があるため)
802801:04/08/21 13:41
とりあえずbgd.dllの持ってるエクスポート関数をDependencyWalkerあたりで見てみると吉
803801:04/08/21 14:28
>>802
DependencyWalkerはVCに付属するツールだろうが、ばかかおめー
このスレはC++Builderじゃんよ。
スレタイ嫁
804801:04/08/21 14:33
>>803
単体でも配布されてるしPlatformSDKにも入ってるわけですが。
自作自演なスレッディングはここですか?
806795:04/08/21 16:12
>>800
exescopeでDLLのぞいてみた

「gdImageCreate@8」

・・・見事に修飾されてるな
defファイルくらい作ればいいのに


ソースも公開されてるようだしそっちを組み込んだほうが正解か?
807775:04/08/21 17:21
ありがとうございました。
そーか、修飾されてるから読めなかったんですね。

>>801-805
ワロタ。
フォーム上にWebページへのリンクを貼り付けるのはどうやりますか?
809デフォルトの名無しさん:04/08/21 18:20
できません
URLを表示するラベルを貼る
CursorをcrHandPointにする
Font->StyleをfsUnderlineにする
OnClickでShellExecuteにURLを渡す
>>810
できました、ありがとう。
次回作は?
813デフォルトの名無しさん:04/08/21 20:44
新作を期待してる人ってワレザ?
仕事で使用してると、開発環境がヴァージョンアップするのは
非常に胡散臭いですけどね。
ワレザにきまってんじゃん
815本田:04/08/22 00:12
>やりたいことは、プリンターにbitmap形式の画像とRichEdit形式で作成された文章を同時に印刷したいのです
>(画像上半分で、RichEdit形式のキャプションがつく感じ)。

こんなコンポーネントを使えばできるかも。
http://www.trichview.com/?FromGoogleAd
816デフォルトの名無しさん:04/08/22 03:53
MLでも閑古鳥、2chで閑古鳥

終わってるなBCB
817デフォルトの名無しさん:04/08/22 06:53
*.~cppや*.~h
が勝手にできますよね?
止めさせることは出来ないのですか?

ソースファイルが倍になるからウザイんですけど・・・
メニューの「オプション」とか「エディタ」とかの項目を眺めてれば
ここで回答を待つより早く解決法が得られるような気がするけど
819775:04/08/22 14:09
もう一度すいません。
関数名が修飾されていた件については、DependencyWalkerを使って
全て割り出すことができました。

ただ、実行すると、
gdImageJpeg(im, jpegout, -1);
のところで「○○を参照しているうんぬん」のエラーになります。
795さんの言う通り、FILE構造体の問題のようなのですが、なにかいい解決方法はないでしょうか?
(ogg関係のスレについては、ぐぐったら出てきました。対応策までは書いていなかったようです)
GDでオープンソースじゃなかったっけ?
DLLからコンパイルし直したら?
TCheckListBoxってTCustomListBoxから派生してるのにSetItemData() GetItemData()を使えないのね。
なんでだろ
822デフォルトの名無しさん:04/08/22 18:26
>>820
ありがとう、コンパイルしなして無事
GD使えるようになりました。
823775:04/08/22 21:23
誰だぁぁぁぁぁぁぁぁ!!!!!?????

>>820
BCB用にコンパイルしなおす、ってことでしょうか?
824デフォルトの名無しさん:04/08/22 21:26
もういい加減自作自演止めろよ
うぜーんだよ
825デフォルトの名無しさん:04/08/22 22:39
外注が提出してきたソースに

void (*((**Comp)[10]))(int*,int*,int);

なんて表現があるのですが、なんですか、これ?
うはwwwwwwwwwwwwwwwwwwおkwwwwwwwwwwwwwwwwwww
関数テーブルへのポインタへのポインタ・・・かな?

なにしてるプログラムなの?それ。

Comp という名前からして、Compute か Compare だと思うので、
比較関数か、計算用の関数を切り替えて使うって感じだとは
思うけど。

ってか、それ BCB のソースなの?
C++ だったら、そういう書き方しないような気がするんだけど。
(C++ でも C としてしか使えないプログラマは一杯いるけどさ)
828デフォルトの名無しさん:04/08/22 23:22
void (*[10])(int *,int *,int)へのポインタへのポインタだから827で正解だな。
.exe ファイルを ボタン(クリック)一発で
実行できるようにしたいのですが、何か方法ありますか?
エクスプローラのメニューからツール→フォルダオプション→全般→クリック方法

ここで質問するということは、こういう事では無いかw
マジレスするとCreateProcessとかShellExecuteとかを聞きたいのではないかと。
>>831
解決できました。ありがとうございました。
833デフォルトの名無しさん:04/08/23 21:29
Vol.4 インターネット編(1)
http://www.amazon.co.jp/exec/obidos/ASIN/4877831061
Vol.5 インターネット編2
http://www.amazon.co.jp/exec/obidos/ASIN/4877831088

上記の本の内容は、C++BuilderのPersonal+Indyで実行できるのでしょうか?
それともProfessionalでないと無理でしょうか?
>>833
レビュー読む限りBCB proから標準でついてくるTNMFTPやらTNMHTTPとかの解説らしいので
Indyはまた別に勉強しなくちゃいけないみたい。
835833:04/08/23 21:55
>>834
APIやI、ndy以外の他のコンポーネントがメインみたいですね。
という事は、Personalでもコンポーネント以外のところは実行できるかも。
>>835
APIはパーソナルでも大丈夫でしょう、たぶん。
おそらくProfessionalについてくるコンポーネントを中心にソフトウェアを構築していくような解説みたいですので
パーソナルじゃちょっと辛いかな。
BCBの標準コンポーネントに慣れてるのなら最初からIndyを独学でいけそうな気もしないでもないですが。
Printer->Canvasでピクセル単位で四角とか丸とか描画した場合、
プリンタの機種によって大きさが変わったりしますか?
PCのシリアルナンバーを取得するのはどうやりますか?
本体底面か背面に書いてあることがほとんどなのでそこを見る。

>>839
簡潔で的確。感動した。
841デフォルトの名無しさん:04/08/25 13:34
C++ Builder からの mdb利用について教えて下さい

Database Explorer で、MSACCESSで作成して
DATABASE NAMEに、フルパスで mdb ファイルを設定して
開こうとすると
「BDEのエラー:8458 IDAPIサービスライブラリをロードできません
 ファイル:MSJT3032.DLL」
というのが発生します

また、BDEアドミニストレータで
DLL32 を IDDAO32.DLL から IDDA3532.DLL に変更して
同じことをやってみると
「BDEのエラー:13059 一般SQLエラーです -2147221164」が発生してやはり駄目です

何をどうすればいいのかわかりません
ご教示よろしくお願いします
842デフォルトの名無しさん:04/08/25 16:36
>>841
質問です。
なぜ、そんなマジな質問を2chでするのですか?
まともな回答が欲しければMLのほうがいいと思うのですが・・・
MLだとメールアドレスとか名前晒さなければならないから嫌なのです。
ネチネチしたのもいるし。
2chだと質問する方にネチネチしたのが多いけどな。
845841:04/08/25 22:57
>>842
迷ったんです。。。MLにマルチポストしていいっすか?(;_;)

ちなみに
IDDAO32.DLLはAccess97
IDDA3552.DLLはAccess2000
みたいですね

んで、2000なんでもDAO3.5が必要とかいう
英語情報があったりして。。。
ネイティブアクセスじゃないんすか?>Borlandさん

DAO3.5の配布条件とか利用条件とかダウンロード先とか
まだまだ調べる事がありそうです
846デフォルトの名無しさん:04/08/25 23:08
>>845
そのほうがいいんじゃない?
ここは煽るのだけはいっちょうまえで、低レベルな人たちばっかですから!

ざんねん!
847デフォルトの名無しさん:04/08/25 23:54
*.tdsファイルってなに?
さくせいされないような設定って出来るの?
ヘルプによると、デバッグ情報ファイル
DLLにして出力するにはどうすれば良いですか?
ライブラリのリンクについて質問させてください。

設計時・実行時両方使用可能なパッケージを使う場合、
プロジェクトオプションで、「実行時パッケージを使う」をチェックして、
そのパッケージ名を書いているにも拘わらず、そのパッケージが
静的にリンクされてしまいます。

BPRファイルのLIBRARIESやSPARELIBSにそのライブラリの
記述があるので、外部のエディタで消去してみたのですが、
プロジェクトを再構築すると記述が復活してしまい、
やっぱり静的にライブラリをリンクしてしまうのですが、
どういう原因が考えられるでしょうか?

なお、当該パッケージについては、テスト用の小さなプロジェクトでは、
ちゃんとプロジェクトオプションの実行時パッケージの設定で
静的にリンクすることも動的にリンクすることも可能である
ことを確認しています。

長文で申し訳ありませんが、よろしくお願いします。
>>849
えっと新規作成からDLL?
852デフォルトの名無しさん:04/08/26 23:30
メインフォームのコンストラクタでTFrameをnewしているのですが、メインフォームが
完全に表示されるまえに(FormCreateが終わる前に)、Frameの描画処理をするとおちてしまうようです。
formcreateがおわってから、2秒間ぐらいFrameに処理をさせるといった方法にしましたが、
ほかによい方法はないでしょうか?
>>852
OnIdleでフラグ立てるとか
854本田:04/08/27 00:24
>Printer->Canvasでピクセル単位で四角とか丸とか描画した場合、
>プリンタの機種によって大きさが変わったりしますか?

プリンタの解像度が違えば変化するはず。

855本田:04/08/27 03:36
>ネイティブアクセスじゃないんすか?>Borlandさん

そんなことは無い。
http://www.borland.co.jp/cppbuilder/cb5/cb5boxes.html

>DAO3.5の配布条件とか利用条件とかダウンロード先とか
>まだまだ調べる事がありそうです

VBで創ったソフトウエアはDAOと供に配布できるみたい。
856本田:04/08/27 04:41
-----------------------------------------
>C++ Builder からの mdb利用について教えて下さい

Delphi用だけど理解できるかな?
98番。
http://pc3.2ch.net/tech/kako/1028/10284/1028436692.html
857デフォルトの名無しさん:04/08/27 13:16
>>844
お前がな
二日も経ってからわざわざ反応するような代物じゃないよなぁ。
心当たりのある人間以外にとっては。
859デフォルトの名無しさん:04/08/27 14:26
C++BuilderでNetscapeの機能を使ったブラウザーの作り方の
参考ホームページをお願いします。
860デフォルトの名無しさん:04/08/27 17:42
もまいら早くBCB9を!!
っ[BCB9]
ゃったぁ、BCBQげっとしたぁ
863本田:04/08/27 21:59
>C++BuilderでNetscapeの機能を使ったブラウザーの作り方の
>参考ホームページをお願いします。

これもDelphi用の話題だけど参考になるかな?
http://www.iol.ie/~locka/mozilla/control.htm
質問者の言いたいことが良くわからないな
Geckoのレンダリングをしたいのか、メニュー等のGUIを使いたいのか
>>864
両方に回答してあげてください。
お前に回答ができれば、の話ですが。
866デフォルトの名無しさん:04/08/28 01:43
XML使いてー
868本田:04/08/28 06:25
>XML使いてー

http://www.borland.co.jp/cppbuilder/cb6/features.html
BCB6PRO,BCB6ENTにアップグレードするか。

これはMSXMLをつかっているそうなので、自分でコンポーネントを作るか。
http://msdn.microsoft.com/xml/

>C++Builder で XML パーサ Xerces-C++ を使う
http://www.kcat.zaq.ne.jp/takao/documents/bcb/10_xerces-c.html

約2年前のlibxml2はBCB5でコンパイルできました。
現在のものはスクリプトが替わって失敗しました。
http://www.xmlsoft.org/
>>868
libxml2はbcb6でビルドできるよ。(ただし、要iconvのWin32バイナリ)

1. ttp://www.kaoriya.net/からiconvのWin32バイナリをダウン&展開。
2. iconvを展開したフォルダでコマンドプロンプトを開いて
  "implib -a iconvomf.lib iconv.dll"を実行。
3. libxmlのソースを展開したフォルダの下のwin32でコマンドプロンプトを開いて
  "cscript configure.js compiler=bcb include=$iconv lib=$iconv"を実行。
  $iconvはiconvを展開したフォルダ。
4. make

ビルドが面倒ならばttp://www.zlatkovic.com/libxml.en.htmlから
libxml2のWin32のバイナリをダウンしてimplib使ってインポートライブラリを作ってもOK。
仮想リストビューを使って画像のサムネイルを表示したい時、
OnDataでImageListを生成し直すしか無いのですか?
全部のサムネイル画像をImageListに入れると、画像データが増えてくると
なぜか表示できなくなってしまうみたいですし。
FAQっぽい気がしますが、質問です。
TScrollBoxのスクロールバーで、TMemoのスクロールバーみたく
バーのドラッグと同期してスクロールボックス内もスクロールさせる方法を教えてください。
うへ、Trackingをtrueにするだけだった・・・
20個あるチェックボックスのうち9個以上がtrueになっていたら
8個になるようにチェックをいくつかはずしたいのですが、

X=trueになっているCheckBoxの数

if(X>8){
 for(int i=0;i<20;i++){
   TCheckBox *chk=(TCheckBox*)CheckList->Items[i];
   if(chk->Checked==true){
    chk->Checked=false;
    X--;
   }
   if(X<=8)break;
 }
}

の式だと全部チェックがはずれてしまいます。なんでですか?
チェックボックスのCheckedを変更すると、OnClickイベントが発生するわけだけど、
それと関係あるかな?
ブレークポイントとか設定してX<=8のときにちゃんとbreakされてるのかチェックしたのか?
>>874
ああ、この場合もイベントが発生しちゃうんですか!
そりゃ気付かなかった・・・
というわけで原因がわかりました。どうもです。
878デフォルトの名無しさん:04/08/29 13:44
>>863 :本田さん、ありがとう。
項目を読んだだけですが広範囲に渡っていてよさげです。
特に「Porting from IE to Mozilla」に興味があります。
IE用はネットにいくらでもあるのでそれを試しにMozillaに変更して
理解しようと思います。
879デフォルトの名無しさん:04/08/29 14:00
>>864さん、やりたいのは
- 2chリーダーみたいなを作りたい
- Javascriptの処理をしたい
です。
880878 :04/08/29 17:04
本田さんのURLからDelphy用ですが
http://www.paranoia.clara.net/articles/taming_the_lizard_with_delphi.html
を見つけました。
MFCは全く知らないので、と言ってもDelphyもよく知りませんがBCBに移植できる
かと思ってDelphy用の手順でがんばってみます。
まぁDelphiだがな。
BCBのプリコパイル済みヘッダについて、うまくまとまっているページを知りませんか?
BCBMLの〜関連はいちおう読んだと思うのですが、普遍的に正しい使い方というか...
初心者なもんで、正しく使えてるのか、使えてないのか、それが心配です。
情報ありましたら、よろしくお願いします。
>>882
http://www.bcbdev.com/articles/pch.htm
英語だけどうまくまとまってます。
884882:04/08/30 11:51
>>883
ありがとうございます。
>Why C++ Compilers are Slow
あぁ・・・ 不思議と、魅力的な響きです・・・
885デフォルトの名無しさん:04/08/30 13:15
http://clootie.narod.ru/index.html

DirectX 9.0 SDK Summer 2004対応キタ━━━━━━(゚∀゚)━━━━━━ !!
886デフォルトの名無しさん:04/08/30 17:49
下記のコードでTPanelの移動はできたのですが、これをTShapeでやると移動してくれません。
void __fastcall TForm1::Panel1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
  ReleaseCapture();
  ((TPanel *)Sender)->Perform( WM_SYSCOMMAND, 0xF012, 0 );
}
TShapeをマウスでD&Dするにはどうしたらいいですか?
>>886
↓こういうクラスを作って、
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=209&fi=no

↓みたいにShapeのOnStartDragでそのインスタンスを渡してやれば、そんな感じのことは出来るよ
void __fastcall TForm1::Shape1StartDrag(TObject *Sender, TDragObject *&DragObject)
{
DragObject = new TMyDragObject(Shape1);
}
メッセージを無視するにはどうしたら良いでしょう?

フォームの WindowProc に下記のような関数を

void __fastcall TForm1::MyWndProc(Messages::TMessage & Message)
{
if(Message.Msg == WM_WINDOWPOSCHANGING){
// なにもしない
}else{
WndProc(Message);
}
}

書いてみたのですが、フォームは移動してしまいます。
特定のメッセージを無視する方法で、SetWindowsHookEx を
使わない方法がありましたら、教えてください。



>>888
それは単に、WM_WINDOWPOSCHANGINGを無視したところで、
ウィンドウの移動を抑制できるわけじゃないって事でそ。無視は出来てると思うよ。

移動を禁止するとしたらこうかな
if (m.Msg == WM_WINDOWPOSCHANGING) {
  ((WINDOWPOS*)m.LParam)->flags |= SWP_NOMOVE;
} else〜
>>887
ありがとうございます。さっそくやってみます。
891デフォルトの名無しさん:04/08/31 22:45
マウスの左ボタンがクリックされたことWM_のウィンドウメッセージからではなく
知りたいのですが、可能でしょうか?
オブジェクトインスペクタのイベントタブになんかあんだろ
893デフォルトの名無しさん:04/09/01 01:20
だからウィンドウメッセージからじゃなくて・・・
本当頭悪いんだから・・・
イベントではなくて、物理的な状態を知りたいんだね?
あったかもしれないけど、頭が悪いから忘れちゃったよ!
>>893
可能に決まってるだろ
でなきゃそのウィンドウメッセージが発生するわきゃねぇ
少しはその悪い頭デバッグしてからこいや
896デフォルトの名無しさん:04/09/01 01:33
だったら、どうやんだよ
答えれねーんじゃねーのw
897デフォルトの名無しさん:04/09/01 01:45
やっぱり、答えらんねーかow
答えられないよ。ばいばい。
899デフォルトの名無しさん:04/09/01 01:50
やっぱりね、2は屑ばっかだねMLで聞くよ
もういないかな?
>>899
MLで聞くって、あんた、ここでさんざん厨ぶり
さらしておいて、今さらどのツラ下げてMLに
顔出すのよ?

同じ人間だと分からないような質問にしとけよw
まぁまぁ、礼儀も知らないリアル厨房は答えもらえなくて当然ですよ。
いいじゃん。このスレの人間はわからないから答えられない、ってことでさ。
さ、次の質門どーぞ。
>>893
お前の説明が足りないんだけどな・・・。

○○○○使って△△△△呼ぶ方法があるけど。

お前態度悪いから教えてやらない。

態度改めるなら話は別ですが。

>>904
もう、話をぶり返すなよ。
ぶり返すというか、蒸し返すだな。
907905:04/09/01 11:46
>>906
ごめん。日本語が不自由だった。
ぶり返すって風邪の話ですか?(w
909908:04/09/01 11:47
ごめん、死体に鞭打つようなマネをしてしまった。
む、むしろ私にムチをおねがいします
>>910
お前は放置プレイだ。
912けろたん:04/09/01 12:53
ン、じょ、女王さま・・・ハァハァ
913デフォルトの名無しさん:04/09/01 13:29
>>912
放置されている恥ずかしい姿をみんなに見てもらうんだよ!age
classの定義で、public:指定子より前に、private:指定子を盛ってきたらダメですか?
class a
{
private:
int b;
public
a(){};
};
とか。
>>914
平気だけど、そのコードはpublicに : がついていないよ。
>>914
細かいことだけど、a(){}の後のセミコロン要らないよ。
>>914
privateとかprotectedとかpublicはclass宣言内で何回使っても許される。
もちろん順番は関係ない。
>>915
きっと public 型を返す a という関数なんだよ。
とか言ってみる。(コンパイルエラーになりますが)

ついでに、a(){}; の ; もいらない。
まぁ、あってもいいんだが。
919918:04/09/01 13:52
かぶった記念に age
も、もうイってもいいですか?ハァハァ
921914:04/09/01 15:15
>>915-918
問題無しということで、ありがとうございました。
実は、独習用にアプリを組んでいるのですが、終了時にEAccessViolation吐いて困っていました。
IDEでは、listのclearメソッドでエラーが出ているようなのですが・・・
原因不明でした。
力技というか、いろいろいじっている間に、
1.hogeにコンストラクタがあるとヤバイ
2.hogeのコンストラクタの本体は、ヘッダに記述すればOK
3.private部を消すと平気
4.private部がpublic部より先に来てるとヤバイ
という感じで、対処療法的に修正していきました。
....で、public等の位置は関係ないとのことで、再度、privateを前に持ってきて見ると、今度は問題無く.... orz
同じコードから完全に同じバイナリが生成されるかはわかりませんが、エラーが出たり出なかったりというのは、致命的な気がします。
コンパイル時、Boostライブラリのコンパイルでこける時もあります。
BCBは、こういう事がよくあるのでしょうか。
また、FAQ的な何かがあるのでしょうか。

よろしくお願いします。
>>921
BCBのバグかもしれないけど、90%の確率で君のコードがおかしいんだと思うよ。
boostについては、boostのページに対応表があるから見てみたらどうでしょうか?
923914:04/09/01 15:31
>>922
漏れもそう思います。boostの方は、boostの本で、件のライブラリ(ptime周り)のBCBへの対応を確認しました。
うーん・・・・
pascalユニットを使っているからでしょうか.......
>>891
DirectInput使えば可能なことくらい簡単に思いつくような気がするが・・・
Win32APIがいいならGetAsyncKeyState( VK_LBUTTON )使え

夏休みも終わったな(´−`)
>>921
BCB6でboostを使う場合はもっと簡単なプログラムを書いてコケないかどうか
確かめておいた方がいいよ。相当boostへの準拠度が低いから。

boost::lambdaとかboost::spirit、boost::phytonなどは絶望的だから。boostの
本ってあれだろ?秀○の。ちゃんと公式のドキュメント読んだ方がいいよ。
↓こことか。
ttp://www.meta-comm.com/engineering/boost-regression/developer/summary.html
926914:04/09/01 17:32
>>925
そうなんですか・・・
VC6よりは、準拠してるって話を聞いていたので、安心していました。
てっか、lambda使えないんですか・・・orz
使いこなせるかは別として、おもしろいなーと思ってただけに、残念で(r
>>あれ
そうです、禿和のです。
>>924
話をブリ返すなYO!!
>>924
空気読め!
いるんだよね〜、空気読めないヤツ。
まぁ、学校でも職場でも嫌われて、
最後は孤独の中、自殺ってことに
なるんだろうね。
930本田:04/09/02 05:34
>コンパイル時、Boostライブラリのコンパイルでこける時もあります。
>BCBは、こういう事がよくあるのでしょうか。
>また、FAQ的な何かがあるのでしょうか。

http://www.boost.org/more/getting_started.html#Tools
http://www.boost.org/tools/build/v1/borland-tools.html
931デフォルトの名無しさん:04/09/02 13:08
hogeクラスをアレする方法を教えろ
932924:04/09/02 13:14
>>928-929
まだ夏は終わっていなかったのか(´−`)
うん。お前みたいのはまだ消えそうにない。
うん。お前みたいなのもまだ消えそうにない。
>>933-934
うん。お前らみたいなのもまだ消えそうにない。
大学は今月いっぱい夏休みなのか?
それとも年中休みの人か?
と、こういう粘着は夏に限ったことではないと。
937本田:04/09/02 20:47
>ilink32 Version 5.66 Update for C++ Customers - by Troy Kitch

http://bdn.borland.com/article/0,1410,32448,00.html
938デフォルトの名無しさん:04/09/03 09:11
ハードディスクを検索しても、BORLANDMM.DLLが無いのですが、これはBCB6では無くなったんでしょうか?

BCB5の頃は別マシンでBORLANDMM.DLLが無いと良く怒られてウザかったんですが。
borlndmm.dll のこと?
そうです。>>939
BCB6では廃止になったんですか?
あるよ?
ハイ!ハイ!ハイハイハイ!
あるある探検隊!!
一応
×borlandmm.dll
○borlndmm.dll
サンクス>>943
ありました。でも、プロジェクトのオプションのコンパイラタブから、
メモリマネージャを使うのオンオフが無くなってる様な。。。
>>944
お前は騒ぐ前によく調べろ。マジで。
次回作は?
ボツになりました。
948デフォルトの名無しさん:04/09/05 15:28
つか、BCBばっかやってっとバカになるぞ
VCやってた奴がBCBはなんとなく使えるが
BCBやってた奴はまずVC使えない

そんなやつは会社ではまずつかえないからね
949本田:04/09/05 19:15
>VCやってた奴がBCBはなんとなく使えるが
>BCBやってた奴はまずVC使えない

できあいのVCLコンポーネントを使うのはMFCプログラミングと比べてはるかに簡単だけど、
VCL用コンポーネントを書くのとMFCプログラミングは大差ないよ。
BCB/Delphi は幅広い層のユーザが利用できるってことだな。
NO_WIN32_LEAN_AND_MEANを定義されたプロジェクトで、Indyを使うと
winsoc.hとwinsock2.hの両方が読み込まれるらしく定義が重複してエラーになってしまうのですが、
なにか回避する方法はないでしょうか?
外部プログラムを起動するにはどうしたらいいですか?
>>951
条件定義に_WINSOCKAPI_ (winsock.hのインクルードガード)を入れるとか。
winsock2.hもそうやってwinsock.hがインクルードされるのを防いでるから、いいんでないかな。

>>952
ShellExecute とか CreateProcess とか system
ありがとうございます。ShellExecuteでうまくいきました
ヘッダファイルで宣言して、
コンストラクタでnewで作成したTListのオブジェクトを、
同じクラスのメソッドで使用したいのですが使えません。

何か方法ありますか?
956デフォルトの名無しさん:04/09/06 15:15
リッチテキストに300kB2000行程度のTStringsのTextを貼りたいのですが、AssignでもTextをそのまま渡しても一行ずつ書き込んでも同じくらい遅いのですが
早くできる方法はありませんか
>>955

hoge.h

class hoge
{
TList *hogeList;
hoge OnCreate();
hoge myfunc();
}

hoge::OnCreate
{hogeList = new.......}

hoge::hogefunc
{hogeList->hogehogefunction}

こんな感じでいいのかな?
>>956
1行ずつ書くのと同じくらい遅いってことは、
RichEdit->Lines->Text = strings->Text;
こういう書き方?

RichEdit->Text = strings->Text
こうは?
959デフォルトの名無しさん:04/09/07 00:46
質問です

自動生成をしない設定の TDataModule のコンストラクタに
const int の引数を 1 つ加えると、new した時に
コンストラクタが再帰呼び出しになってスタック・オーバーフローにならない?

BCB5 Pro と BCB6 Pro で確認したんだが、どちらでも発生する模様。

探してみたんだが、それらしいものが見当たらないのだけど、
上記の件に関してどこかに情報ない?
960デフォルトの名無しさん:04/09/07 00:48
TServerSocketでServerTypeをstThreadBlockingにする理由ってなんですか?
どう考えてもstNonBlockingにほうが簡単なのに・・・

使い分ける指標を教えてください
>>959
親クラスにもTComponent*とintを受け取るコンストラクタがあるから、
そっち呼ばないとそうなるみたいね。
>959,>961
確かFormにも引数int一つのコンストラクタがあったはず。
以前それではまった。

いろいろ眺めてみたら、
DelphiのCreateとCreateNewに対応させるために
コンストラクタがもう一つ生成されるみたい。
963956:04/09/07 11:01
>>958
それでビンゴでした
ありがとうございました
StringGridでTextOutを使って文字の色を変えたいんですけど、
DrawCellイベントでしか実行することは出来ませんか?
別のメソッドでやりたいんですけど、色が変わらず困ってます。
965デフォルトの名無しさん:04/09/07 20:13
FAQだったらごめんなさい。

BCB6で、VC6から普通に呼び出せるDLL(普通にリンクできるLIBでもいいけど)を作れるんでしょうか?
もしできるなら、作り方を教えてください。
普通に呼び出せないDLLなんか作れないから、普通に作ればいいんだよ
967959:04/09/07 23:16
>>961-962

そうだったですか。int 付きのコンストラクタは知りませんでした。
ありがとうございます。これから確認してみます。
>>964
無理
DrawCellから別の関数を呼び出すという意味なら可能だけど。
>>966
ありがとうございました。VCで作られたDLLをBCBで使おうとすると面倒くさいので、
逆もやっぱり面倒くさいのかと思ってました。
今手元にVC6が無いので試せなかったんですが、考えてみたら7.1なら手元にあるので、
とりあえず普通にやってみます。どうもありがとうございました。
970デフォルトの名無しさん:04/09/08 14:37
TStringGridでセルが編集中かどうかを調べる方法を教えてください
>>970
EditorModeがtrueなら編集中だね。