1 :
デフォルトの名無しさん :
04/07/09 00:05 C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは
>>2-5 あたり。
9 :
デフォルトの名無しさん :04/07/09 18:21
こんんいちw
10 :
デフォルトの名無しさん :04/07/10 01:10
10
質問です C++Builderから,Excel形式のファイルを出力できる コンポーネントってないですか?
>>12 ありがとうございます!!!
今改造しようとしてるのが,CSV吐いてExcelのVBA呼び出して・・・
という( ´Д`)なことやってるので,これで書き換えようと思います。
14 :
名無しさん@そうだ選挙に行こう :04/07/11 19:34
プログラムからCGIに値を渡すにはどうしたら良いですか? WEBフォームで送信ボタンを押したのと同じことをしたいのです。
>>14 TNMHTTPでGetかPostか決めてアクセスすればぃぃ
17 :
デフォルトの名無しさん :04/07/11 23:43
"...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 それはプロセスを終了してからやっていたのですがダメでした。
もうちょっと色々やってみます。
あちがとうございました。
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 などが使用不能に。
>>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にするのはどうすればいい? ヘルプ見たけどよくわからん
とりあえず LeftStr と RightStr で解決しますた
>神 >激しく神 >超神 >鬼神 >神の申し子 ワラタ 途中からすごくなってんのかどうかもよくわからんし
>40 TCustomControlを派生させるよろし。 ウインドウハンドルも、Canvasも付いてる。
49 :
デフォルトの名無しさん :04/07/14 00:38
装置をモニタリングするようなプログラムってやはりスレッドを起こして そのスレッドの中で無限ループをまわしているんですかね? 例えば while(1) ReadFromFA(); なんて・・・
50 :
デフォルトの名無しさん :04/07/14 02:13
>>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アプリケーション、て何ですか?
Formのクライアント領域で発生するマウスイベントを全て透過して、 下の別のアプリケーションへ送るにはどうすれば良いのでしょうか。 動作としては、SetLayeredWindowAttr で LWA_COLORKEY を指定 した時と同じようにイベントが筒抜けになるようになってほしいのです。
今BCB6使っています。 Linuxのgccでコンパイルできるようなソースを作るには、 どうすればいいですか?
GUI込みならまず不可能。 Kylixを検討したら。
>>58 windows.hをインクルードしない。
62 :
デフォルトの名無しさん :04/07/15 16:19
良いtipsサイトを紹介してください
64 :
デフォルトの名無しさん :04/07/15 18:06
66 :
デフォルトの名無しさん :04/07/15 18:18
皆さんレスありがとうございます。 プロジェクト>オプション>コンパイラ(詳細)>準拠する言語仕様>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のソースで期待通りに動くの? ものすごいことやっちゃってると思うんだけど。
>>76 BCB6 では、
>>74 の言っている通りにヘルプには書いてある。
更に BCB6 だと TTreeNodes では演算子 [] がオーバーロードされていて、
Treeview1->Items[1] で TreeNode * が取り出せるようになっている模様。
う〜ん。
>>77 と被ったか。でも言ってる事が違う…。
DelphiからHELPを移植したときのデフォルトに関する扱い 絡みのミスか?
>>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ウィンドが出てくるようになってしまいました。 こんなの見てもわからないので出ないようにしたのですが、どうすれば いいのですか?
87 :
デフォルトの名無しさん :04/07/16 09:20
ショートカットアイコンの右クリック->プロパティで表示されるダイアログボックスを表示する方法を教えてください。
Sleepをコールしようとすると、 Win32APIのものと、IdGlobal.hppのものと2つあります。 namespaceとか使って、Win32APIにリンクしたい場合にはどうしますか?
::Sleep
オォ、コンパイル通りますた>89 ::Sleep ^^^^^^^ これって、namespace指定してないように読めるんですが、どうなんでしょ。
Win32 API は namespace を持ちません。 namespace を指定されていない識別子はグローバルな名前空間に格納されます。 ::Sleep も形式的には名前空間を指定された識別子です。ただグローバルな名前空間には 名前がありません。
93 :
デフォルトの名無しさん :04/07/16 14:43
C++Builder8はいつでるの?
95 :
デフォルトの名無しさん :04/07/16 22:18
C++Builder6で開発終了ってアナウンスあったじゃん
ilink32 version 5.66の直リンキボンヌ
>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 にしても相変わらずインクリメンタルリンカでエラーがです。
じゃ、Borland にレポートしろ。 エラーです。だけじゃ誰も何も言えん。
CBuilder の ML で小躍りしていたバカがいたが、あいつの抱えていたバグはなおったんかいな。
105 :
デフォルトの名無しさん :04/07/17 17:09
BCB6にイースターエッグってあるの?
>>105 バージョン情報のダイアログには仕掛けがある
ビルド中(おそらくリンク中)にBCB6自体が応答なしになることが 頻繁に怒るのですけど、解消する方法とか知りませんか?
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
>>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自体が富豪的プログラミングだしな。 テカプレートだから型ごとにコードが膨らんでくし。
オブジェクト指向自体が富豪的プログラミングだしな。
高級言語自体が富豪的プログラミングだしな。
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 大抵質問内容が業務用アプリに関することが多いんじゃない?
〜というものを開発しているのですが・・・とか
>>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標準のソフトウェアキーボードってそうなってんのかな?
>>168 WINAPIのヘルプ見るとわかるけど、CreateMutexやOpenMutexに使う文字列に円マークは使えない。
Application->ExeName.c_str() を適当な文字列(ユニークな)に変更すればうまくいくと思う。
なんだそのショボイ間違ったtipsを公開してるサイトは?
まぁプログラミングしてるとサンプルソースが間違ってたり、ヘルプが変だったりするから慣れっこだな(´・ω・`)
そこの二重起動防止ヤバすぎ。 ReleaseMutexは普通はしないし(アプリ終了時に勝手に開放される)、 OpenMutexせずに直接CreateMutexで確かめるのが普通。 そうしないとタイミングによっては二重起動しちゃうから。
まあ金払わせるようなTipsサイトよりはマシ。
>>169 ありゃ、そうなんですか、有難うございます。
質問です。 C++BuilderのPersonal版を買おうかな?と思っていますが、 このPersonal版では、TCP/IP関連のコンポーネントは利用できるのでしょうか? なんでも、TServerSocket,TClientSocket などがあるようなのですが……。
メインアイテムにスプリット入れるのはどうやるんですか?
↑メニューアイテムの間違いです。
C++ のプログラム作ったんだけど、実行して最後まで行くと DOS窓ごと終了してしまうのってなんとかならない? エクスプローラーからの起動ならDOS窓残ってくれるんだけど。
X エクスプローラーからの起動 O DOSからの起動
>>180 とりあえずプログラム終了時にDOS窓ごと消えるのはしょうがないと思う
なので、プログラム終了前にキー入力待ちにすれば?
>180 DOS窓から実行する
↓これだと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にしておけばいい。
188 :
デフォルトの名無しさん :04/07/20 23:37
はじめてのC++を買ったんですけど、 はじめてのC++のソースサンプルを C++Builderでコンパイル&実行したいんです。 どうすれば出来ますか?
Memo1の○行目の△列目の文字を指定するのはどうやりますか?
>>188 フォームの真ん中にボタンを貼り付ける。
そのボタンをダブルクリックするとUnit1.cppに飛ぶから
その中に以下の文を書き込んで実行。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application->MessageBoxA("氏ね","氏ね",MB_OK);
}
オラ、夏のにおいがしてきたぞ
>>165-167 返答ありがとうございます。とりあえずその中で心得があるのはフックだけな
ので、その線で作ってみようと思います。
コンパイル&実行は出来た。 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
コンパイラだけあっても、初心者には無意味だろ? 初心者には実行形式がないときついと思うが・・・
>>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
お手本通り作れることと(それすら出来ないヤシもいるが) 独創的なものを作れることは全くの別能力である。 だからと言って基本はおろそかにしてはいけない。
>>230 ポインタやクラスで躓く気がするけどな。
関係ないけど、FORTRAN77しか使えないオサーンにC言語を教えたけど、
構造体の配列より普通の配列を複数用意した方が楽らしい・・・。
コンソールなら BCC+BCPadがいいんじゃない? 私はこれでコンソールの勉強させました。
みなさん、レスありがとです。 彼に勉強させようと思っているのは、計算機のごくごく基本的なことです。 2進数から始まり、構造体、配列、ポインタ、ソート、検索、リスト、木などを しっかりモノにしてもらいたいと思っています。まだまだこれから先のある奴なんで。。 ですのでWindowsアプリである必要はありません。環境を含めた(初心者にとっての)使い 勝手としてBCBがよいのでは、、、と考えていました。 だけどWin32コンソールがよさげですね。その方向で検討してみます。 ところでCのテキストは「はじめてのC」でOK?
>>216 計算機の基本を教えるなら
二進数の次はアセンブラだろ?
>>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++は好きなんだけどヘッダー問題は苦手。
244 :
Delphi厨 :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
痛いな
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
ちょっと古いんですが、BCB3でSTLPort動いた人いますか?
グループボックス内のコントロールをまとめて選択するのはどうやりますか?
Ctrl+ドラッグ
>>237 「はじめてのC」でもいいと思うけど、
これって説明書チックな書き方だから、完全な初心者だとつまづく可能性がある
気がする。
フォローしてやれる人間がいれば大丈夫だと思うけど。
馬鹿みたいに説明が丁寧な
簡単なプログラムを作ってみる系の本が一冊あってもいいかも。
BCB6 パーソナル使いです。 DelphianWorldからコンポーネント(Buider対応のもの)をダウンロードして、追加→コンパイルすると、 [リンカ エラー] 外部シンボル '__fastcall Outline::TCustomOutline::(各種メソッド)' が未解決 ((Builderのフォルダ)\LIB\BCBSMP.LIB|.\cdiroutl.cpp が参照) がぞろぞろ出ます。(上は2行だが実際は1行) アップデートしても同じです。 どうすれば解決できるでしょうか。 リンカやコンパイラは設定をいじっていません。
266 :
デフォルトの名無しさん :04/07/23 10:23
>>265 あそこにあるのってほとんどデフォでコンパイルするとエラーでるよな
>>265 コンパイルしてみるから、コンポーネント名教えてちょうだい
Form内に貼り付けたFrameの再描画のタイミングで処理をしたいのですが FrameにはOnPaintイベントが無くてどうしたらいいのかわかりません.
FrameのサイズにあわせたTPaintBoxを置くとか。
WM_PAINTで処理すればいい
>>272 WM_PAINTを捕まえる方法がわからなくて...
MLに変なのが現れた。
>>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
プリコンパイルヘッダーをコンパイルするためだけのプロジェクト作ったりすることありますか?
複数EXEのコンパイルを速くしたいんですが、 どういった手段があるでしょう。
よくわからんけど、プリコンパイルヘッダの名前をそれぞれ別にするとか?
C++自体初心者なんですが、 AnsiString *str を Memo1->Lines->Text.SubString(x,y) に指定する場合どう書きますか?
>>268 遅くなりました。「光るスピードボタン」(ShineSpeedBtn)です。
後、”DEKOのじゃんくぼっくす”というところからダウンロードした数値入力用TEditも入ってます。
BCB6Proだと、どっちも問題なくインストール/使用できた。 あとはパソナラ-の人に任せた。(@u@ .:;)ノシ
会社のアドでゴミメール撒いてる梢タソ(;゚∀゚)=зハァハァ
今日一日で10通も流れたかと思ったら全部ゴミかよ…
BinToHexの第一引数がconstじゃないのは何故? おかげで肝心な所でconst_castしないと使えなかった。
>>276 ありがとうございました,無事に目的を果たすことが出来ました.
ちなみに,Frameってどういう目的で使うコンポーネントなんでしょう?
自分は変な理由があって仕方なく使ってるのですが,
他に使ってるプログラムもあまり見ないので.
>>288 部品を組み合わせただけの自作コンポーネントのように使うんじゃない?
290 :
デフォルトの名無しさん :04/07/24 12:19
Memoの中の文字列の特定の部分だけフォントカラーを変えたりできますか?
292 :
デフォルトの名無しさん :04/07/24 17:27
AnsiPosを使ってテキスト内の順次検索をしたいのですが、どうすればよいですか?
BCB6proでTABitmap使っていたら
>>265 と同じエラーが出た。
リンカオプションの「ステートファイルを作らない」を外したらリンクできるようになったが。
>>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選択してなかったから、すんなりいったのかな。
301の補足
"プロシージャ エントリ ポイント @Idresourcestrings@_RSBindingAny がダイナミック リンク ライブラリ Indy60.bpl から見つかりませんでした。 "
と言われました
>>302 そっか、なら私もインストールしなおします
ソースのパス設定してないんじゃないの
>>304 とおっしゃいますと?
ソースも要るんですかい?
できたC6の中の*.hppを $(BCB)\include\vclの中に放り込んで動くようにしたけど、 プロジェクト|オプション|ディレクトリ/条件|のインクルードパスで設定すべきだったですね
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みたいな無料版ってあったっけ?
まあ、体験版なら
>>314 いや、マジで無くしたから慌ててここに質問に来たんですよ。
>>315 あ、C++Bはやっぱ無料じゃないんですかね?
なんかPersonalは無料っぽく書いてある気がしますが。
TMemoの○行目の文字列を得るにはどうしたらいいですか?
Memo1->Lines->Strings[○];
Memo1->Lines->Strings[♥];
>>320 はもう2度とこのスレに来ることはなかった・・・
|゚Д゚)))コソーリ!!!!
ビルドしたときのexeの名前ってプロジェクト名.exe?
そだよ
変えられませんか?
Explorerでリネーム
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を使うといいよ
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前後を見てみろ てか、同一スレくらい検索汁 >> ノータリンども
>>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
ウイルダー? 昭和の特撮ヒーローみたいだな。
ヴァンダーなら知ってるが。
ウイナー/ウイナルドなんてのもあった。
たとえば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とか
388 :
デフォルトの名無しさん :04/08/01 08:33
フックのやり方を教えてください
>>388 肘と拳は水平で手の平は下、相手の顎を狙って体の回転を利用して振りぬけ。
>>387 BCBで使えるんですね。
でも、高いなぁ。
391 :
デフォルトの名無しさん :04/08/01 16:14
393 :
デフォルトの名無しさん :04/08/01 16:18
394 :
デフォルトの名無しさん :04/08/01 17:48
395 :
デフォルトの名無しさん :04/08/01 17:51
↑ 再帰定義でつか?w
396 :
デフォルトの名無しさん :04/08/01 18:17
アッパーのやりかた教えてください。
すれ違い
フックったって種類あるやん。どれよ。
右フック
401 :
デフォルトの名無しさん :04/08/01 18:48
片腕の
404 :
デフォルトの名無しさん :04/08/01 19:25
404 名前:デフォルトの名無しさん[] 投稿日:04/08/01 19:25
>>404 超ツマンネ
406 :
デフォルトの名無しさん :04/08/01 19:47
┏┳┳┓ ハイ. ┏┳┳┓ ┏┫┃┃┃ ネタは ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ ネタ. ┣┫ . ・∀・ ┣┫. STOP!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ . ┗━━━┛
ウィンドウが画面中央で開くようにするにはどうすればいいですか?
411 :
デフォルトの名無しさん :04/08/01 22:59
ウィンドウってなんですか?
フォームのことです。すいません。
Form1->Position = poScreenCenter;
AnsiString strをSaveDialog1に渡してファイルに保存させるにはどうすればいいですか?
>>415 TSaveDialogは保存先のディレクトリとファイル名を取得するのが役目で
実際のファイル書き込みは自分でコードを書かかなあかんぞ。
TMemoとかからだとSaveToFileで簡単に渡せますが、 自分で書かにゃダメなんですか。
逆ギレですか。
なんとか自分で書きましたが、開いてる最中のファイルに保存しようとすると エラーが出てしまいます。どう対処すればいいですか?
>>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
ここに書くことは他の人にも見てもらうことになるのに。 "お前に言っても"だって。バカって損だね。
そもそもスレ違い
433 :
デフォルトの名無しさん :04/08/02 17:16
この時間は
>>431 みたいな馬鹿しかいないんですね^^
はいはい^^
ちょっと荒れているようなので、普通な質問をひとつ このツールでセーブしても「元に戻す」が使えるアドインとか無いんでしょうか セーブしたら元に戻すのに苦労するでつ・・・ (´・ω・`)
エディタオプション→一般→保存後の取り消し か? これなんでデフォルトじゃないんだろね。
ありがとうございます。 デフォルトじゃないって・・・。_| ̄|○
なんか禿しくデジャブを感じる・・・
439 :
デフォルトの名無しさん :04/08/02 19:53
それを言うなら Dejavu でしょ?w
deja vu 既に見た そのまんまやん
442 :
デフォルトの名無しさん :04/08/03 00:29
C++Builderで作られた、こりゃすげーなっていうようなアプリってある?
>>426 できます
IdHTTP1->ReadTimeout = 30000;//30秒でタイムアウト
てな具合です。
445 :
デフォルトの名無しさん :04/08/03 00:44
>>444 あれのどこがすごいのかな?
あんなの誰でも作れるぞ
>>445 なんかさー、煽るにしても
もっとムカツキ度満点!な煽りにして欲しいわけ。
そんなありきたりな言葉で煽られてもなぁ・・・
447 :
デフォルトの名無しさん :04/08/03 00:48
あの〜別に煽ってるわけじゃないんですが・・・ あおりに聞こえる初心者は黙っててね
そういやすごいソフトウェアって言われて思い浮かべると・・・・。 うーん、なかなか思い浮かばないなぁ。 便利に常用してるソフトは結構あるんだけどね。
>442 みたいな馬鹿ってまだいるんだね。
450 :
デフォルトの名無しさん :04/08/03 02:02
言うに事欠いて馬鹿と来たか・・・ 絶句しちった
一応私が言っているのは VCやDelphi含め、すべてのソフトウェアに対してです。
>>447 だれでも作れる( =自分で作れる) と思っている初心者はだまっててね。
いろいろ勉強してないと作れないよ。あれは。
すごいソフトっていうのは、別に開発環境がすごいわけじゃないから、ねぇ。
すごい勢いでage反応する
>>442 は間違いなく馬鹿だな。
最近の頭の悪いage書き込みは同一人物だろうな
最も有名なP2Pソフトが凄くないなら、何が出来たら凄いものになるんだろう。
457 :
デフォルトの名無しさん :04/08/03 10:52
Winny2は確かに凄いよ、ああすごいさ お前ら厨房には作れないから安心しとけ
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++の方がデバックしやすい ポトペタ環境なんてどうでもいいから、もうちょっと デバックしやすくして欲しい
>>467 それは意味がよくわからん。
Javaは速度を犠牲にしてVMで環境にとらわれないアプリケーションを実現している。
>アセンブラで速いプログラムかけるような奴なら、最初からJavaとかやってないっての
デバッグや保守性でアセンブラ書ける人でもJavaを選ぶ理由は十分にある
>>471 の理屈はともかく、現実は
>アセンブラで速いプログラムかけるような奴なら、最初からJavaとかやってないっての
であってるかもね(藁
ってか、未だにアセンブラで書けば最速なんて思っている馬鹿がいるんだな。 アセンブラ命令がどのように、並列実行されるかを熟知していないとコンパイラより速いコードは書けないぞ。
釣られすぎ(w
こういう部分は釣られてでもハッキリしときたいものだ
ん?
>>474 =
>>467 でしたか、ごめんごめんw
藻前裸スレ違いだから
>>475 > こういう部分は釣られてでもハッキリしときたいものだ
したくねーよ。スレ違いオナニーやめろ。
どんな開発環境でも、実行速度は同じだと思ってるアホがいるな。 なんか速度を同じにする、秘密の機能でもあるのか(w
C++Builderだともっさり動作だとか?な挙動とか ●先入観●に過ぎませんよ
483 :
デフォルトの名無しさん :04/08/04 03:08
動作よりも、サイズデカくね? VC++で作ったほうが圧倒的に小さい
BCBはDelphiのKOLみたいなのはないの?
485 :
デフォルトの名無しさん :04/08/04 03:33
BCB使いとしては、あんまいたくないけど、BCBのソフトは、たしかもっさり感はある。でも、我慢できなくない。VBのソフトなんて、色変だったし、もっさもっさ。Azureusなんか、もさもさより、どよーんとしてた。BCBはもっさより、VCLのハイソサエティという点が素晴らしい。 開発のリファリタリング・再利用・拡張・コンポに優れている。とにかく作りやすいしわかりやすい。
現在本当に実用に適する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で利用されて
いるかたいませんか?
どのように組み込めば良いのか教えて頂ければ幸いです。
よろしくお願い致します。
>>493 ここで同じ質問を2年間に3回位してきたのですが、
始めて納得のいく解凍が得られました。
ありがどうございます。
壮大なマルチだな
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 を答えやがってくださいよー
ExcelCreator
>>503 Indyにそんなものはない。
IEコンポーネントはPro以上ならBCB本体に入ってる。
PersonalならActiveXコントロールの取り込みから入れる。(その際に何故かProのIEコンポ用ヘッダが入ってるのでそれを削除)
>>502 丁寧に教えて頂き、ありがとう御座いました。m(_ _)m
お蔭様で出来ました。感謝。感謝です。
509 :
デフォルトの名無しさん :04/08/04 19:33
TListViewのあるカラムにプログレスバーを配置したいのですが どうすればいいの?
>>492 スレ違いで申し訳無いが、そんな物があるなら教えて欲しい。コントロールや
シフトキーを使わずにマウスだけで、複数の離れた位置にあるファイルを選択
してコピーできるファイラーは、どうしてもKFしか見つからなかったのだけど…
バージョンアップ間隔が年単位になってしまったから、乗り換えたいんだ。
512 :
デフォルトの名無しさん :04/08/04 22:31
Cのときによくprintfを使ってデバックしてましたが C++Builderではどうすればイイのでしょうか? ShowMessageだうざいんですが・・・
>>512 OutputDebugStringはいかが。
515 :
デフォルトの名無しさん :04/08/04 22:49
>>514 MSDNによると
現在のアプリケーションのデバッガに文字列を送信します。
らしいが、C++Builderのどのウィンドウに送信されるのですか?
>>515 イベントログ。
てゆーか自分で調べろ。
517 :
デフォルトの名無しさん :04/08/04 23:09
某のイベントログは死ぬほどパフォーマンスが悪いんだよな
無制限外せよ
>>519 そういう問題じゃない。
自作のデバッグモニタは誇張抜きでC++Builderの1000倍高速。
522 :
デフォルトの名無しさん :04/08/05 11:53
>ファイル 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ユーザーって致命的で根源的なバグを容認し 低性能なデバッガを気にせず使うのか。 そして一切の批判には蓋をする。なんかΩに似てるね。
夏はなついよね
今は都合が悪いと夏で逃げられるいい季節ですな。
>>531 一部の意見を、C++Builderユーザーって纏めるなよ夏厨。
つーかBuilder自身のバグをユーザー側で議論して意味あんのか? バグがありました。 ↓ Borlandに報告 ↓ 終了 でいいだろ。 それとも割れ物だから報告できないのか?
>>536 割れ物ではなくて俺は正規ユーザーだから報告すべきなのか?
くだんのBBSのユーザーは割れ物を使っているから報告できないのかも知れんな。
あまり期待しないで待ってろ。もしかしたらUpdate#5が出るかもしれんな。
まさかDelphiは関係ないよな?>MMルーチン
その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)
コンパイラのバク程度で騒いでいるのはガキ。 BCCは所詮バグだらけ。もちろんBCC以外のコンパイラもな。
騒ぐ必要が無いのはその通りだけど、 そもそもコンパイラのバグじゃないんだけど。 それさえ理解できないアフォはもう来なくていいよ。
>>548 字句解析時に1048575を9999999に取り違えるバグなんだよ。
VCL使ってれば関係ないのね、これ。
VCLでnew使わないのか?
別のルーチンが使われるってこと。
VCLでnewしたときとmallocしたときにバグが出ないことを確認したのかしてないのか
もちろんした。
Update #5 キタ━━━━(゚∀゚)━━━━ッ!!
すみません、Builder5.0での環境の質問なんですが、 TListBoxで 例えば 項目がItemが四つあり、 通常Itemの上で左クリックすると、その項目が選択されますが、右クリックでも同じ動作は可能でしょうか? MouseDownでItemAtPosで座標を取って、Selectedでtrueを試したところ、 MultiSelectがtrueになっていれば動作するのですが、 複数選択したくないのでfalseにすると「リストが範囲を超えていますと」エラーが出ます どなたか良い知恵お貸しいただけますでしょうか? 無知ですんませんすんません(´・ω・`) 初心者ですすみません(´・ω・`) 前レス読んでみたら、こういう質問が少ないので、もしかしたらスレ違いかしらヽ(;´д`)ノ
> MouseDownでItemAtPosで座標を取って、Selectedでtrueを試したところ これで別に問題なかったよ。どんなコード書いてるの?
ちゅうかエラーメッセージによると、単にItemAtPosの戻り値を範囲チェックしてないってだけか。
>>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;
>>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 だけどあってんの?
>>563 うは・・・ミスりましたすみません
でも結果はやはり一緒でした
クリックに限らず、ボタンですっごく単純に
ListBox2->Selected[0] = true;
これだけでも出てしまいました。
新規プロジェクトでその単純なコード試しても駄目なら、BCBがぶっ壊れてるのでは
>>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
おお、ずばりその通りでした。解決しました。 ありがとうございます。神様です。
>つーか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だと、フォルダのアイコンなどが
エクスプローラに比べてアイコンの影の部分が汚くなってしまいます。
これを綺麗にするには、どうすれば良いでしょう?
夏休みだからといって暴れてる餓鬼がいるな
こういう脊髄反射が夏ならではなんだよねえ。
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);
すみません。いろいろ試してたら、 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ってオチだったら知らん
>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はどこにありますか?
TIdIcmpClientにありますた。 pingで取れる以上の情報をとる手段を教えて欲しいで津。
ポートスキャソ
625 :
デフォルトの名無しさん :04/08/10 06:32
TXMLDocument ってどうやって使うの?
626 :
デフォルトの名無しさん :04/08/10 09:11
IndyではSubnet Maskは分かりませんか?
>URL 192.168.2.200に関する情報は見つかりませんでした。 > >URLが正しい場合は、ここから192.168.2.200を開いてみてください。 >"192.168.2.200"を含むページの検索 ↑ こんなページが開いてしまいます。 で、リンクをクリックしてやっとHTTPアプリに繋がる。 何ででしょうか。
>>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になってませんが
すみません、もう一つ教えて下さい。 >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で初期化されましたっけ?
>>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使えよ
美しさ
はあ
タイプ数
へえ
見た目
たいした理由はないってことね。
そんなに変わらないのね。
OOっぽいから
>>653 ジャブをおろそかにするボクサーみたいな態度だな
>>657 ジャブが上手かどうかなんて関係ないね。
勝てばいいのさ。
659 :
デフォルトの名無しさん :04/08/12 08:50
BCB次回作はいつごろ出ると踏んでいますか?
BCB6もバグだらけでお笑いレベルだし、 6.5とか出して欲しいな。
>>658 そういうやつが世界戦でアウトボックスに完封されるんだよ。
663 :
デフォルトの名無しさん :04/08/12 15:12
定義済みアクションの TFileOpen を登録すると、 「それは保存だろ!」と突っ込みたくなるようなアイコンになってしまうんだけど、 うちだけ?開くらしいアイコンってどこかにないかな?
664 :
デフォルトの名無しさん :04/08/12 16:29
dll
質問させてください。 1つのアプリケーションで複数のFormに不特定多数のコンポーネント を貼り付けているのですが、現在アクティブなFormとフォーカスのある コンポーネントが分かるよう、色のついた枠をつけたいのですが 良い方法見つかりません。どなたかアドバイスください。
TPanelを派生したコンテナパネルコンポーネントを作る。 自分の管理しているコンポーネントにフォーカスがきたら色表示。
>>666 たとえばListViewにフォーカスがきたときにListViewの
周りを2pixの黄色い枠で囲いたい時にTPanelに前後左右
2pix小さいTListView貼り付けてPanelの色を変える
ということですか?
ちなみにOnReturnで色付け、OnExitで色はずしって
感じでしょうか?
今家でBCB持ってないから即答出来ないな。 フォーム来るメッセージハンドラで(イベントハンドらではない)、 フォームが自分に貼り付けられてるコンポーネントを全部見てフォーカスのあるコンポーネントを探す、 なんてことは出来るだろうね。 で、コンポーネントのParentのオブジェクトを見てコンテナパネルだったら枠を書いてやるとか。 もっとスマートな方法思いついた人よろ。
超だっさい処理で良いなら。 コンテナパネルの初期処理で、 コンテナパネル自身に貼られたコンポーネントのOnEnter/OnExitイベントハンドラを設定する。 そのイベントハンドラでコンテナパネル自身のメソッドをコールしてやる、と。 で、この方式の欠点はOnEnterイベントを他に使えないことかな。
670 :
デフォルトの名無しさん :04/08/12 22:10
「モジュール'xx.exe'のアドレスxxxxxxでアドレスxxxxxxxに対する読み込 み違反がおきました」 といったメッセージが表示されたときに、xxxxxxアドレスからエラーにソースコードの位置 を知ることは可能でしょうか? コンパイル時につくったマップファイルから調べるか、デバッグでアドレスを指定するなど してみましたが、うまくいきませんでした。
>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があるじゃないか。
>>676 ノシ
うちは請負中心の零細で、お客さんも理解があるから、ほとんどのアプリがBCB6Proで開発。
VCLをスタティックリンクにしてあるから、「バイナリがでかいYO!」って言われるくらいかな。
打ち合わせのときに、お客さんが「自分でも直したいからVBかVC++で。」って言ってくることがよくあるけど、
「本当に自分で直す根性ありますかぁ?大変ですよぉ。」って言うと、たいていは尻込みする。
もちろん、ソースコードは渡しているし、わざわざBCBを買ったお客さんもいた。でも、タンスの肥やしになったようだけど(w
>>685 うちはちょっと業務が特殊なので、BCBメインです。
客にソースコード込みでアプリケーションを提供するときには(あんまり無いけど)、
「VCでもいいですけど、GUI部分の工数を余分に頂くことになります」
と言っている。
別に水増し請求してる訳じゃなくて、BCBだと安く済むってだけなんだけどね。
>>683 >
>>673 >その代わりにキャストしても元の型がわかる強力なRTTIがあるじゃないか。
そういう問題じゃない。
VCLで多重継承が使えないのはつらい。
>>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
↑大嘘
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チャンネルの皆様ならば!と思い書き込みをさせていただきました。 何卒よろしくおねがいします。
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〜〜
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型なら警告出ないな。
丸いに決まってるだろ! それともお前は時動説を信じてるのか?
じどうせつ(←何故か変換できない)
そんなこと、どーでもいいじゃん、ね☆
次回作は?(´∀`)
ミッションインポッシブル3 〜はじめてのおつかい〜
735 :
デフォルトの名無しさん :04/08/18 18:00
C++Builder初心者です。 質問なのですが、C++Builderのエディタが頻繁に、数秒固まってしまいます。 サンプルコードでも、自分で書いたコードでも、違いは無いようなのですが、仕様なのでしょうか。 何か、回避策等あれば、教えてください。 よろしくお願いします。
支援機能を全部無効にする
>>736 厨房なんで、インテレセンスは切れません。。
でもありがとうございます
>メモ: 自動機能が使用不可能になっている場合でも,〔Ctrl〕+〔Space〕を押すといつでもコード補完を起動できます。 ゜ ゜=3 ( o )
>>735 インクルードパスの中に接続が切れたネットワークパスとかが含まれてない?
>>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のサイトない? とくにクラス系について書いてあるサイト希望
749 :
デフォルトの名無しさん :04/08/19 12:02
>>748 サイト教えれつってんだって史ねよクズが
はははは、こやつめ
751 :
デフォルトの名無しさん :04/08/19 12:05
>>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
>>735 IDEが固まる〜解決報告です。自動支援機能を全OFFにしたところ、以前のように固まることは無くなりました。
支援機能自体は、キーを明示的に打つことで、自動支援がOFFでも利用できるようです。
キーのバインドは、
>代入文を入力し〔Ctrl〕+〔Space〕を押す。変数に対して有効な引数のリストが表示される。コードに入力する引数を選択する
>〔Shift〕+〔Ctrl〕+〔Space〕を押すといつでも宣言表示を起動できます。
ありがとうございました。
>>741 煩わしいということは、なくなりました。
Celeron1.4なんで、比較になるかは分かりませんが、、、
コンパイルのほうも、BCBMLでプリコンパイル一連の投稿を見て、それなりの速度になったと思います
教えてください。 JavaでいうClass.forname(String classname)みたいなことは C++でできますか? String型の配列にクラス名を入れて、for文をまわして 配列に格納されているクラス名のクラスのインスタンスを 作成したいのですが、どうすればいいかわかりません。
できません。
そうですかーありがとうございます。 fooにクラス名を入れて hoge = new foo() ってやりたかったんですけどね なにか代替案があればアドバイスください。
PrintDialogを使わずに印刷する方法を教えて下さい。
>>767 hoge = new foo(class_name);
とか、やりたいのかい・・・
DBGrid のバグ(?)報告するんでちょっと聞いてくれよ。 1.グリッドに表示されている一番下のアイテムをクリック。 2.カーソルキーの↓を押す。 ---> [*]と表示される。 3. 1.で選択されてたアイテムを再度クリック。 ---> するとクリックしたアイテムの1個うえのアイテムが選択される。 レコードの挿入をキャンセルした際、座標計算が狂うんだと 思うんですけど、解決策知ってるひと居たら教えてくれよ♥ 環境は、BCB6 Pro SP4、WINXP Pro SP1 です。
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の戻り値ちゃんとチェックしてるか?
>DBGrid のバグ(?)報告するんでちょっと聞いてくれよ。 > >レコードの挿入をキャンセルした際、座標計算が狂うんだと >思うんですけど、解決策知ってるひと居たら教えてくれよ♥ > >環境は、BCB6 Pro SP4、WINXP Pro SP1 です。 ラッキーなことにVCLのソースコードをお持ちなので、 ご自分でパッチを作って、 ボーランドや必要としている人に送ることができます。 またはDrawGridコンポーネントを継承して、 貴方好みのGridコンポーネントを創ることができます。
>>776 バージョンいくつでも良いからバグのないBCB出せや!
せめてBCB5SP1から移行可能なBCB出せ!
質問があるのですが。トランプゲーム(ブラックジャックやポーカー)レベルの作品を作るのに適した 参考書はありますでしょうか? やはり「C++Builder 6コンポーネント活用ガイド&実践プログラミング Vol.2 実践テクニック編」 を参考書に買うのがベストですか?
ゲーム限定ならこんなのもある。古本屋で見つけたらどうぞ。 『C++BuilderでWindowsゲームを作ろう!』
>>769 というか、fooにはクラス名を表す文字列を入れたいのですよ。
769さん風に書くとhoge=new class_name()という感じです。
>>786 >>787 返答ありがとうございます。取り合えず、実践テクニック編を買ってみます。
大学の講義で、仕方なくやらなきゃならないんですが、本でもみながら頑張る事にします。
また、何かあったらここに相談させて貰いますので、よろしくお願いします。
790 :
デフォルトの名無しさん :04/08/21 00:27
>>784 自分でパッチ作るなり、導出して別のクラスつくるなりすれば
問題なくね?
>自作ソフトについて、こんな事言われちゃったよ > >> インターフェイスから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形式のテキストってなに?
Canvas->FontでRichEditと同じになるようにテキストの属性を設定して Canvas->TextOutするというのは?
>>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種類があるため)
とりあえずbgd.dllの持ってるエクスポート関数をDependencyWalkerあたりで見てみると吉
>>802 DependencyWalkerはVCに付属するツールだろうが、ばかかおめー
このスレはC++Builderじゃんよ。
スレタイ嫁
>>803 単体でも配布されてるしPlatformSDKにも入ってるわけですが。
自作自演なスレッディングはここですか?
>>800 exescopeでDLLのぞいてみた
「gdImageCreate@8」
・・・見事に修飾されてるな
defファイルくらい作ればいいのに
ソースも公開されてるようだしそっちを組み込んだほうが正解か?
ありがとうございました。
そーか、修飾されてるから読めなかったんですね。
>>801-805 ワロタ。
フォーム上にWebページへのリンクを貼り付けるのはどうやりますか?
809 :
デフォルトの名無しさん :04/08/21 18:20
できません
URLを表示するラベルを貼る CursorをcrHandPointにする Font->StyleをfsUnderlineにする OnClickでShellExecuteにURLを渡す
次回作は?
813 :
デフォルトの名無しさん :04/08/21 20:44
新作を期待してる人ってワレザ? 仕事で使用してると、開発環境がヴァージョンアップするのは 非常に胡散臭いですけどね。
ワレザにきまってんじゃん
816 :
デフォルトの名無しさん :04/08/22 03:53
MLでも閑古鳥、2chで閑古鳥 終わってるなBCB
817 :
デフォルトの名無しさん :04/08/22 06:53
*.~cppや*.~h が勝手にできますよね? 止めさせることは出来ないのですか? ソースファイルが倍になるからウザイんですけど・・・
メニューの「オプション」とか「エディタ」とかの項目を眺めてれば ここで回答を待つより早く解決法が得られるような気がするけど
もう一度すいません。 関数名が修飾されていた件については、DependencyWalkerを使って 全て割り出すことができました。 ただ、実行すると、 gdImageJpeg(im, jpegout, -1); のところで「○○を参照しているうんぬん」のエラーになります。 795さんの言う通り、FILE構造体の問題のようなのですが、なにかいい解決方法はないでしょうか? (ogg関係のスレについては、ぐぐったら出てきました。対応策までは書いていなかったようです)
GDでオープンソースじゃなかったっけ? DLLからコンパイルし直したら?
TCheckListBoxってTCustomListBoxから派生してるのにSetItemData() GetItemData()を使えないのね。 なんでだろ
822 :
デフォルトの名無しさん :04/08/22 18:26
>>820 ありがとう、コンパイルしなして無事
GD使えるようになりました。
誰だぁぁぁぁぁぁぁぁ!!!!!?????
>>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
>>833 レビュー読む限りBCB proから標準でついてくるTNMFTPやらTNMHTTPとかの解説らしいので
Indyはまた別に勉強しなくちゃいけないみたい。
>>834 APIやI、ndy以外の他のコンポーネントがメインみたいですね。
という事は、Personalでもコンポーネント以外のところは実行できるかも。
>>835 APIはパーソナルでも大丈夫でしょう、たぶん。
おそらくProfessionalについてくるコンポーネントを中心にソフトウェアを構築していくような解説みたいですので
パーソナルじゃちょっと辛いかな。
BCBの標準コンポーネントに慣れてるのなら最初からIndyを独学でいけそうな気もしないでもないですが。
Printer->Canvasでピクセル単位で四角とか丸とか描画した場合、 プリンタの機種によって大きさが変わったりしますか?
PCのシリアルナンバーを取得するのはどうやりますか?
本体底面か背面に書いてあることがほとんどなのでそこを見る。
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だと質問する方にネチネチしたのが多いけどな。
>>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にそのライブラリの 記述があるので、外部のエディタで消去してみたのですが、 プロジェクトを再構築すると記述が復活してしまい、 やっぱり静的にライブラリをリンクしてしまうのですが、 どういう原因が考えられるでしょうか? なお、当該パッケージについては、テスト用の小さなプロジェクトでは、 ちゃんとプロジェクトオプションの実行時パッケージの設定で 静的にリンクすることも動的にリンクすることも可能である ことを確認しています。 長文で申し訳ありませんが、よろしくお願いします。
852 :
デフォルトの名無しさん :04/08/26 23:30
メインフォームのコンストラクタでTFrameをnewしているのですが、メインフォームが 完全に表示されるまえに(FormCreateが終わる前に)、Frameの描画処理をするとおちてしまうようです。 formcreateがおわってから、2秒間ぐらいFrameに処理をさせるといった方法にしましたが、 ほかによい方法はないでしょうか?
>Printer->Canvasでピクセル単位で四角とか丸とか描画した場合、 >プリンタの機種によって大きさが変わったりしますか? プリンタの解像度が違えば変化するはず。
857 :
デフォルトの名無しさん :04/08/27 13:16
二日も経ってからわざわざ反応するような代物じゃないよなぁ。 心当たりのある人間以外にとっては。
859 :
デフォルトの名無しさん :04/08/27 14:26
C++BuilderでNetscapeの機能を使ったブラウザーの作り方の 参考ホームページをお願いします。
860 :
デフォルトの名無しさん :04/08/27 17:42
もまいら早くBCB9を!!
っ[BCB9]
ゃったぁ、BCBQげっとしたぁ
質問者の言いたいことが良くわからないな Geckoのレンダリングをしたいのか、メニュー等のGUIを使いたいのか
>>864 両方に回答してあげてください。
お前に回答ができれば、の話ですが。
866 :
デフォルトの名無しさん :04/08/28 01:43
XML使いてー
仮想リストビューを使って画像のサムネイルを表示したい時、 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の処理をしたい
です。
まぁDelphiだがな。
BCBのプリコパイル済みヘッダについて、うまくまとまっているページを知りませんか? BCBMLの〜関連はいちおう読んだと思うのですが、普遍的に正しい使い方というか... 初心者なもんで、正しく使えてるのか、使えてないのか、それが心配です。 情報ありましたら、よろしくお願いします。
>>883 ありがとうございます。
>Why C++ Compilers are Slow
あぁ・・・ 不思議と、魅力的な響きです・・・
885 :
デフォルトの名無しさん :04/08/30 13:15
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するにはどうしたらいいですか?
メッセージを無視するにはどうしたら良いでしょう? フォームの 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 お前の説明が足りないんだけどな・・・。
○○○○使って△△△△呼ぶ方法があるけど。
お前態度悪いから教えてやらない。
態度改めるなら話は別ですが。
ぶり返すというか、蒸し返すだな。
ぶり返すって風邪の話ですか?(w
ごめん、死体に鞭打つようなマネをしてしまった。
む、むしろ私にムチをおねがいします
ン、じょ、女王さま・・・ハァハァ
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(){}; の ; もいらない。
まぁ、あってもいいんだが。
かぶった記念に age
も、もうイってもいいですか?ハァハァ
>>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のページに対応表があるから見てみたらどうでしょうか?
>>922 漏れもそう思います。boostの方は、boostの本で、件のライブラリ(ptime周り)のBCBへの対応を確認しました。
うーん・・・・
pascalユニットを使っているからでしょうか.......
>>891 DirectInput使えば可能なことくらい簡単に思いつくような気がするが・・・
Win32APIがいいならGetAsyncKeyState( VK_LBUTTON )使え
夏休みも終わったな(´−`)
>>925 そうなんですか・・・
VC6よりは、準拠してるって話を聞いていたので、安心していました。
てっか、lambda使えないんですか・・・orz
使いこなせるかは別として、おもしろいなーと思ってただけに、残念で(r
>>あれ
そうです、禿和のです。
いるんだよね〜、空気読めないヤツ。 まぁ、学校でも職場でも嫌われて、 最後は孤独の中、自殺ってことに なるんだろうね。
931 :
デフォルトの名無しさん :04/09/02 13:08
hogeクラスをアレする方法を教えろ
うん。お前みたいのはまだ消えそうにない。
うん。お前みたいなのもまだ消えそうにない。
>>933-934 うん。お前らみたいなのもまだ消えそうにない。
大学は今月いっぱい夏休みなのか?
それとも年中休みの人か?
と、こういう粘着は夏に限ったことではないと。
938 :
デフォルトの名無しさん :04/09/03 09:11
ハードディスクを検索しても、BORLANDMM.DLLが無いのですが、これはBCB6では無くなったんでしょうか? BCB5の頃は別マシンでBORLANDMM.DLLが無いと良く怒られてウザかったんですが。
borlndmm.dll のこと?
そうです。
>>939 BCB6では廃止になったんですか?
あるよ?
ハイ!ハイ!ハイハイハイ! あるある探検隊!!
一応 ×borlandmm.dll ○borlndmm.dll
サンクス
>>943 ありました。でも、プロジェクトのオプションのコンパイラタブから、
メモリマネージャを使うのオンオフが無くなってる様な。。。
次回作は?
ボツになりました。
948 :
デフォルトの名無しさん :04/09/05 15:28
つか、BCBばっかやってっとバカになるぞ VCやってた奴がBCBはなんとなく使えるが BCBやってた奴はまずVC使えない そんなやつは会社ではまずつかえないからね
>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に対応させるために コンストラクタがもう一つ生成されるみたい。
>>958 それでビンゴでした
ありがとうございました
StringGridでTextOutを使って文字の色を変えたいんですけど、 DrawCellイベントでしか実行することは出来ませんか? 別のメソッドでやりたいんですけど、色が変わらず困ってます。
965 :
デフォルトの名無しさん :04/09/07 20:13
FAQだったらごめんなさい。 BCB6で、VC6から普通に呼び出せるDLL(普通にリンクできるLIBでもいいけど)を作れるんでしょうか? もしできるなら、作り方を教えてください。
普通に呼び出せないDLLなんか作れないから、普通に作ればいいんだよ
>>961-962 そうだったですか。int 付きのコンストラクタは知りませんでした。
ありがとうございます。これから確認してみます。
>>964 無理
DrawCellから別の関数を呼び出すという意味なら可能だけど。
>>966 ありがとうございました。VCで作られたDLLをBCBで使おうとすると面倒くさいので、
逆もやっぱり面倒くさいのかと思ってました。
今手元にVC6が無いので試せなかったんですが、考えてみたら7.1なら手元にあるので、
とりあえず普通にやってみます。どうもありがとうございました。
970 :
デフォルトの名無しさん :04/09/08 14:37
TStringGridでセルが編集中かどうかを調べる方法を教えてください
>>970 EditorModeがtrueなら編集中だね。