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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。

Borland Home Page
http://www.borland.co.jp/


<前スレ>
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/l50


<兄弟スレ>
くだすれDelphi(超初心者用)その31
http://pc8.2ch.net/test/read.cgi/tech/1142594051/l50
2デフォルトの名無しさん:2006/04/06(木) 17:32:49
<関連スレ>
Borland Developer Studio 2006 No.03
http://pc8.2ch.net/test/read.cgi/tech/1142507650/l50

C++Builder相談室 Part16
http://pc8.2ch.net/test/read.cgi/tech/1138766165/l50

【Delphi】 Indyコンポーネント 【C++Builder】
http://pc8.2ch.net/test/read.cgi/tech/1093654251/l50
3デフォルトの名無しさん:2006/04/07(金) 23:12:38
4デフォルトの名無しさん:2006/04/08(土) 07:23:58
5デフォルトの名無しさん:2006/04/08(土) 16:27:13
6デフォルトの名無しさん:2006/04/09(日) 00:58:05
調
7デフォルトの名無しさん:2006/04/09(日) 01:03:16
オhルスレ
8デフォルトの名無しさん:2006/04/12(水) 11:04:57
保守点検
9デフォルトの名無しさん:2006/04/12(水) 18:10:01
入力の画面で全角の文字がかけません、コンパイラーの設定を間違えたのでしょうか?教えてください。
10デフォルトの名無しさん:2006/04/12(水) 18:31:09
せめてどのクラスを使っているかぐらい書け
11なにゃ:2006/04/14(金) 02:55:29
コンパイラーをダウンロードしたのですがコンパイル出来ないのは何でですか?
12SOURCE ◆tAo.kQ2STk :2006/04/14(金) 02:58:23
ソースが悪いからか、あるいは環境が整ってなくてコンパイルに必要な条件がそろってないからだと思います。>>11
よかったら、ソースファイルと何をするソフトか(大まかに)を教えてください。
2chのみんなが訂正してくれると思います。
13デフォルトの名無しさん:2006/04/15(土) 02:07:41
PorlandのC++で5.5のフリーのコンパーラーをダウンロードしたんですが
ソフトを解凍してから先が、説明を読んでも分かりません・・・
教えてください・・・
14デフォルトの名無しさん:2006/04/15(土) 02:13:40
>>13

スレ違い。

タダで使えるBorland C++ Part5
http://pc8.2ch.net/test/read.cgi/tech/1135127048/l50

ここで聞くべき。
15デフォルトの名無しさん:2006/04/15(土) 03:12:23
どうもすみませんでした・・・
16デフォルトの名無しさん:2006/04/18(火) 09:49:29
ADOQueryを使ってDBGridに表示させています。(BDSを使っています)
で、DBGridに表示している情報をexcel形式にエクスポートしたいのです。
とりあえず1つのテーブルをエクスポートしてみましたがうまくいきません。
あるDelphiの本を参考にしてみたのですが・・

DataModule1->ADOConnection1->Execute('SELECT * INTO SEEK_01 ' +
' IN "顧客.xls" "Excel 8.0;" FROM T_顧客売掛 ');
これで
[C++ エラー] Unit1.cpp(954): E2129 文字列定数が長すぎるか、または長さが0
というエラーが出ます。
なにがいけないのでしょう?

ちなみに参考にしたDelphiの本はDelphi6用のもので
ADOConnection1->Execute('SELECT * INTO CUSTOMERS ' +
'IN "Northwind.xls" "Excel 8.0;" 得意先');
となっていました。
1716:2006/04/18(火) 09:54:21
すいません。
ADOQueryを使ってといいながら、別な例を書いてしまいました。Orz
ADOQuery1->Connection->Execute(・・・・以下同じ)
でも、全く同じエラーメッセージが出てしまいます。
18デフォルトの名無しさん:2006/04/19(水) 16:17:56
http://borcvs.sourceforge.net/
BorCVSを導入したいのですが、最新のセットアップで
Builder6がサポートされてるはずなんですが
認識してくれません。どなたかインストールの方法を教えてもらえませんか?
19デフォルトの名無しさん:2006/04/19(水) 19:10:46
自分はフリーソフトのCPadを使ってC言語を独習してみようと思っているのですが、
Borlandのサイトからダウンロードするのは上から三番目のCompilerでいいのでしょうか?
また、ダウンロードの前にユーザー登録のような画面で住所や電話番号などの記入を
要求されるようなのですがこれはきちんと書くべきですか?
20デフォルトの名無しさん:2006/04/19(水) 23:21:30
>>19
3番目と4番目を落としとけ。
何年も前に登録したが今までトラブルには遭ってない。
21デフォルトの名無しさん:2006/04/19(水) 23:45:24
>>18
機械翻訳

-------
導入

インストーラアーカイブを実行することによって、 BorCVS のバイナリのバージョンはインストールされます。
それはインストレーションのために Microsoft Windows Installer を使います。

後に BorCVS フォルダーで見いだされた setup.exe プログラムを使うことによって、あなたは種々の開発環境から plugin をインストールするか、あるいは取り去ることができます。

手作業でそれをインストールすることは同じく可能です。
最初 BorCVS.dll ファイルはいずれかのディレクトリにコピーされるべきです。
それから、 CVS バイナリが必要とされます。
インストーラは CVS NT1.11.1を含みます、しかしもしあなたがすでに1つを
インストールしたなら、あなたはそれを使うことが可能であるべきです。
しかしながら、 BorCVS に付いて来る CVS バイナリを使うことは推奨されます。
ただパスをプリファランスダイアログに入力してください。
最終のステップはボーランド IDE で plugin を登録することです、そしてそれは、レジストリにキーを加えることによって、なされます。
添付されるアプリケーション(setup.exe)を使うか、あるいはレジストリエディタを使って、キー Software\Borland\_IDE_\5.0\Experts (_IDE_ は C++Builder あるいは Delphi のどこか)に行って、そして BorCVS という名前のストリング値を加えてください。
その項目の値は BorCVS.dll ファイルのフルパスであるべきです。
もしあなたがDelphiを使うなら、そしてもし C++ Builderがそのマシンの上にインストールされていないなら、あなたは同じく DLL CC3250MT.DLL を必要とします。
それはインストーラによってシステムディレクトリにコピーされます。

次のスタートにおいて IDE は BorCVS コマンドを含む "CVS" と呼ばれる新しいメニュー項目を示すべきです。

もしあなたがすでに BorCVS の前バージョンがあなたのシステムでインストールされるようにするなら、この新しいバージョンのインストレーションの前にそれを削除することは推奨されます。
----------
22デフォルトの名無しさん:2006/04/20(木) 00:24:21
レス有難うございます。
レスを参考に手動でインストールしようとしましたが、どうやらExpertsのエントリが無いようです。
日本語のBuilderには対応して無いのか、、、、あきらめます。
有難うございました。
23デフォルトの名無しさん:2006/04/20(木) 01:12:33
>>22
俺の環境にはある。

HKEY_CURRENT_USER\Software\Borland\C++Builder\6.0\Experts

中身はデモ用の設定のみ。

Expertsキーが無いなら作っても問題無いと思う。
24デフォルトの名無しさん:2006/04/20(木) 11:44:34
>>18
最新のはうまくいかなかったから、BorCVSの最新リポジトリを落としてインストーラー込みでビルドしたらうまくいった。
手元にBCB6でビルドした奴があるけど必要だったら、うpするよ。
25デフォルトの名無しさん:2006/04/20(木) 15:10:48
>>23 有難うございます。レジストリを追加したら何とかインストールできました。

が、日本語フォルダはダメなようで、私も日本語用にビルドしなおそうとしたのですが、どうやってもSTLエラー orz
是非うpおねがいします。

http://www.uploda.net/cgi/uploader4/index.php
26デフォルトの名無しさん:2006/04/20(木) 22:47:43
>>25
うpしたよん!
http://www.uploda.net/cgi/uploader2/index.php?dlpas_id=0000013880

アーカイブのbinの下にインストーラーがあるからこいつを実行。
フォームのフォント設定をMSPゴシックにしてあるから日本語もOKなはず。
今はJCLのCVS/SVN統合機能を使っているから、あまり使っていなかったりするw

そういえば、ム板用のうpろだって無いな・・・
27デフォルトの名無しさん:2006/04/20(木) 22:52:41
パスを付け忘れたので再うp
パスはborcvs。

ttp://www.uploda.net/cgi/uploader2/index.php?dlpas_id=0000013881

28デフォルトの名無しさん:2006/04/21(金) 01:11:32
有難うございます!バッチリです(*´д`*)
これで二度とプロジェクト落とさないですむようになりました。本当にありがとう!!
29デフォルトの名無しさん:2006/04/22(土) 20:35:28
ひょっとして
Canvas->PenPosに負の座標を代入したら最低0にフィックスされちゃいますか?
30デフォルトの名無しさん:2006/04/24(月) 19:59:23
されない
31質問:2006/04/27(木) 19:18:38
mdbファイルとやり取りするには、
どのコンポーネントが楽ですか?
1レコード500バイト位で、
行って2000件程度な予定なんで、
それ程速度は求めません。
スタンドアロン環境で使用します。
蔵書管理程度と思っていただければいいかと。
宜しく御願いします
32デフォルトの名無しさん:2006/04/27(木) 19:19:54
api
33デフォルトの名無しさん:2006/04/27(木) 22:11:47
TToolBarで
ToolBar1->DrawingStyle=dsGradient;
と指定すると
[C++ エラー] ToolBar.cpp(106): E2015 'dsGradient' と 'Extctrls::dsGradient' の区別が曖昧
というエラーが出ます。
このエラーをとるにはどうすればいいでしょうか。
enum TTBDrawingStyle { dsNormal, dsGradient };
と定義されているのですが、列挙型を明示的に指定する方法があるのでしょうか。
34デフォルトの名無しさん:2006/04/27(木) 22:56:12
>>33
ToolBar1->DrawingStyle = Comctrls::dsGradient;
35デフォルトの名無しさん:2006/04/27(木) 23:15:58
>>34
さんくすです。
できました。
36デフォルトの名無しさん:2006/04/28(金) 22:14:53
古いバージョン(BCB4)を持っていて
そろそろ新しいのを買おうと思ってるんですが
最近のバージョンではアクティベーションがあるのですか?
37デフォルトの名無しさん:2006/04/29(土) 01:28:31
>>36
ないよ
コピーし放題だから安心して買え
38デフォルトの名無しさん:2006/04/29(土) 09:03:30
TextOutしてて思ったのですが、でかい文字は勿論のこと、
小さ過ぎる文字も描画時間かかるんですね
39デフォルトの名無しさん:2006/05/01(月) 09:04:46
AnsiStringのToInt()について
1000000000000000000000とかに対してこのメンバ関数を呼ぶとどうなりますか?
不具合が起こる場合、対処法を教えて下さい。
40デフォルトの名無しさん:2006/05/01(月) 09:14:28
>>39
EConvertError例外
IDE外では"は整数ではありません"ダイアログ。
41デフォルトの名無しさん:2006/05/01(月) 09:42:22
あり^^
42デフォルトの名無しさん:2006/05/01(月) 13:52:44
RS232Cを扱うには、どのライブラリが良いでつか?
43デフォルトの名無しさん:2006/05/01(月) 13:56:50
API直接が一番使い易いよ
44デフォルトの名無しさん:2006/05/01(月) 18:21:11
Excelファイルの読み書きはどのようにすれば?
ヒントやキーワードをプリーズ
45デフォルトの名無しさん:2006/05/01(月) 20:51:05
>>44
Borland Answers C++Builder Q&A をGoogleに突っ込め
46デフォルトの名無しさん:2006/05/02(火) 07:31:33
>>45
???
47デフォルトの名無しさん:2006/05/02(火) 11:50:53
>>43

説明サイトとかキボン。
48デフォルトの名無しさん:2006/05/02(火) 13:43:55
CreateFile
49デフォルトの名無しさん:2006/05/02(火) 16:17:12
ここできいていいのかな
BDS2006買ってC++Builder6の本見ながら勉強してます
クラスエクスプローラの画面がどうやったらでてくるかわかりません
変わってしまったんですね
それにしてもヘルプが見にくい。。。。
50デフォルトの名無しさん:2006/05/02(火) 21:03:04
>>44
ここのPDFに書いてあった
ttp://support.borland.com/entry.jspa?externalID=432
51デフォルトの名無しさん:2006/05/02(火) 21:11:20
>>49
C++Builder6のクラスエクスプローラは、BDS2006の構造ペインに相当するのでは?
でもBDS2006の構造ペインで出来ることはC++Builderのクラスエクスプローラに比べて
少ないような気がする。
52デフォルトの名無しさん:2006/05/02(火) 23:43:15
JETサイコー、DAOバンザイ、
53デフォルトの名無しさん:2006/05/04(木) 13:10:27
TFormなどの頭のTはThreadの文字の略ですか?
54デフォルトの名無しさん:2006/05/04(木) 15:33:11
Type
あるいは(もともとPascalはドイツ生まれなので)Typ
55デフォルトの名無しさん:2006/05/04(木) 18:21:36
分かりました。
有難うございました。
56デフォルトの名無しさん:2006/05/12(金) 16:08:46
メイクとビルドの違いが分かりません
57デフォルトの名無しさん:2006/05/12(金) 17:38:55
名句は作るんです!
ビルドは再作るんです!
58デフォルトの名無しさん:2006/05/12(金) 18:00:45
>>53
Turbo C++, Turbo Pascalからの伝統。
MSにCFormとか取られちゃったからね。
59デフォルトの名無しさん:2006/05/12(金) 18:02:43
>MSにCFormとか取られちゃったからね。

あ、そいういうことか。
自分的には安易な「C」より某のライブラリって分かりやすいから重宝。
60デフォルトの名無しさん:2006/05/19(金) 21:13:25
AnsiString
AnsiPosとPosではPosの方が高速動作しますか?
61デフォルトの名無しさん:2006/05/19(金) 21:20:12
機能が違うんだから速度比較しても意味なし
62デフォルトの名無しさん:2006/05/19(金) 21:36:56
どちらを使ってもいい場合、どちらを使うべきですか?
63デフォルトの名無しさん:2006/05/19(金) 22:47:18
僕は的外れな質問をしたのですか?
マルチバイト文字においてはPosで1バイト文字を検索してはいけませんか?
64デフォルトの名無しさん:2006/05/20(土) 01:34:45
> マルチバイト文字においてはPosで1バイト文字を検索してはいけませんか?

一般にはダメ。2バイト文字の2バイト目と誤認する可能性があるから。
AnsiPos() はそこら辺をうまくやってくれる。対象文字列が2バイト文字を
含まない、と確信できるときだけ Pos() を使うことが出来る。
65デフォルトの名無しさん:2006/05/20(土) 02:01:54
ではシングルバイト文字と確信できる時は
AnsiPosよりPosの方が高速動作が期待できますか?
66デフォルトの名無しさん:2006/05/20(土) 14:40:47
期待できるね、真相はしらんけど
67デフォルトの名無しさん:2006/05/20(土) 16:58:00
>>58-59
TurboC++にはTxxxというclass名のついたライブラリが付いてたでしょ。
で、その当時はMSはC++処理系を発表して無かったよ。
68デフォルトの名無しさん:2006/05/20(土) 17:00:27
あと、当時のCマガだかの記事で、
先頭のTはTurboのTではなくTypeのTだと
Borlandの人が言明している。
69デフォルトの名無しさん:2006/05/20(土) 20:23:36
Delphi ユーザにはそれ常識
70デフォルトの名無しさん:2006/05/22(月) 16:15:21
Metroworks とか Symbian とかも Thogehoge だしね。
71デフォルトの名無しさん:2006/05/23(火) 21:56:23
Canvasにrectangleなどで描画した後に、それを消去したい場合はどうすればよいのですか?
onpaintイベントに書き込むと残ってしまうのですが・・・
72デフォルトの名無しさん:2006/05/23(火) 22:32:29
XOR演算で書いたものを再度XORで書くといった手法はあるけど
消去する事は一般的には出来ない

だから、再度全部描くというのが普通
73デフォルトの名無しさん:2006/05/24(水) 22:11:36

C++ Builder 6 を使用して Window XP でプログラムを
作成しています。

質問なんですが、画像(bitmap)を描画したフォーム上にリストビューを配置、
そのリストビューの背景を半透明(または完全に透明)にしたいのですがどうしたらいいのでしょうか?

フォームのcanvasをコピーしてリストビューの背景色と
ごにょごにょやればできるかと思い、OwnerDrawプロパティをtrueにして
CustomDrawイベントで、

  void __fastcall TfrMain::ListView1CustomDraw(TCustomListView *Sender,const TRect &ARect, bool &DefaultDraw)
  {
   Sender->Canvas->Brush->Style = bsClear;
   Sender->Canvas->CopyMode = cmSrcAnd;
   Sender->Canvas->CopyRect(ARect,this->Canvas,this->GetClientRect());
   DefaultDraw = false;
  }

のようなことをやってみたのですが、さっぱりです…
しかも自分でもなんだかトンチンカンなことをやっているような気がしてならないのです。

ヒントだけでも教えていただければ嬉しいです…
よろしくお願いします。
74デフォルトの名無しさん:2006/05/25(木) 01:26:06
フォームのCanvasからリストビューの下のフォームに描かれてる絵を取得するのは無理。というか描かれていない。
考え方としては、フォームに描画してるBitmapをうまく位置を合わせてリストビューにも描くって感じ。
75デフォルトの名無しさん:2006/05/25(木) 08:25:58

>74

ありがとうございます!
位置を合わせて書くとは思いもよりませんでした…
さっそく試してみます。
76デフォルトの名無しさん:2006/05/29(月) 09:26:21
ADOConnection+ADODataSet+DBGridでアプリを作成しています。
SQLでの検索、フィルタを使った絞込みなど、うまくうごいているのですが、
検索結果、またはフィルタリング結果が1回でも0件が出た時、FormCloseすると
「リソースリーク・・・メモリブロック(xxxxxx)が開放されていません」と表示されます(デバッグ時)
検索・フィルタリング結果が0件ではなかった時は特に問題なく終了します。
ちなみに、日付項目が空欄だった場合はADODataSetのOnGetTextイベントで無理やり" − − −"を
表示するようにしています。
回避策をご存知の方いらっしゃいましたら、ご教授ねがいたいのですがよろしくお願いいたします。
7777:2006/05/29(月) 09:27:53
あ、バージョン書き忘れましたがBDSでBuilder使用しています。(OSはXP SP2)
7876:2006/05/29(月) 09:28:59
スイマセン・・77は76の誤りです。orz
79デフォルトの名無しさん:2006/05/29(月) 13:22:09
78は77じゃないのか
80デフォルトの名無しさん:2006/06/01(木) 01:11:23
BCB6Proです。
HWND hWnd=FindWindow(NULL,"これが親窓");
で得られた親窓の子ウインドウをEnumChildWindowsで列挙したいのですが、
具体的サンプルソースのあるサイトを教示願いたく。
まんまのサンプルソースを提示していただければなおありがたく。
81デフォルトの名無しさん:2006/06/01(木) 12:36:58
>>80
代わりにFindChildWindowにすれば?
82デフォルトの名無しさん:2006/06/01(木) 13:09:40
>>80
EnumWindowsなりでぐぐれば出てくるだろ
83デフォルトの名無しさん:2006/06/01(木) 13:44:27
ちなみに自アプリならTWinControl::Controlsプロパティに子ウィンドウが格納されてる。
8481:2006/06/01(木) 14:39:45
>>82
あるか?
俺は見つけられなかったんで代替案を提示したんだが。
多分ぐぐるくらいはしていると思われ。
85デフォルトの名無しさん:2006/06/01(木) 15:35:51
EnumChildWindows の検索結果のうち 日本語のページ 約 548 件中 1 - 10 件目 (0.23 秒)
大量に出てきたぞ。
いっぱい例付きがあるじゃん。
まったく自分では調べていないクレクレ君だな。
8681:2006/06/01(木) 16:29:36
そりゃ出るφやぶいびぃだろ
8781:2006/06/01(木) 16:31:57
くだスレに書くような初心者が他言語読めるとは、
到底思えんかったがな
8881:2006/06/01(木) 16:32:51
くだスレに書くような初心者が他言語読めるとは、
到底思えんがな
89デフォルトの名無しさん:2006/06/01(木) 16:52:10
C++って多言語なのかよ。
あふぉかよ
90デフォルトの名無しさん:2006/06/01(木) 19:01:08
グーグルダンスを想定できない池沼は
逝ってかまわない
91デフォルトの名無しさん:2006/06/01(木) 22:46:40
キモい展開だな
92デフォルトの名無しさん:2006/06/01(木) 23:00:14
>>81はぐぐった先頭しか見ないのか。
9380:2006/06/02(金) 01:23:04
すいません、結局よくわからなくて、
FindWindowEx
で用が足りました。
ありがとうございました。
94デフォルトの名無しさん:2006/06/03(土) 14:12:20
BCB6のスレッドとグローバル変数について質問です

common.hにて
HWND hWnd,hcWnd1,hcWnd2,hcWnd3,hcWnd4;
を宣言してあって、これらの値をメモに書き出そうとしています。
hcWnd1〜hcWnd4はhWndの子窓のハンドルです。

メインスレッドからは
//---------------------------------------------------------------------------
void __fastcall TForm1::reme()
{
Memo1->Lines->Add((long)hcWnd1);
Memo1->Lines->Add((long)hcWnd2);
Memo1->Lines->Add((long)hcWnd3);
Memo1->Lines->Add((long)hcWnd4);
}
//---------------------------------------------------------------------------
とすればメモに書き出せるのですが
スレッドから下記コードで書き出だそうとすると、0が並びます。
//---------------------------------------------------------------------------
void __fastcall Tdash::reme()
{
Form1->Memo1->Lines->Add((long)hcWnd1);
Form1->Memo1->Lines->Add((long)hcWnd2);
Form1->Memo1->Lines->Add((long)hcWnd3);
Form1->Memo1->Lines->Add((long)hcWnd4);
}
//---------------------------------------------------------------------------
ツールチップ式評価では"(long)hcWnd1=853578"とか表示されるのですが、
なぜですか
どうすれば意図したように動きますか
9594:2006/06/03(土) 14:15:44
上記はスレッドのUnit2.cpp内で

long l1,l2,l3,l4;
l1 = (long)hcWnd1;
l2 = (long)hcWnd2;
l3 = (long)hcWnd3;
l4 = (long)hcWnd4;

と書いても、l1〜l4には0しか代入されませんでした。
ツールチップ式評価では"(long)hcWnd1=853578"と表示されますが、
代入先は"l1=0"にしかなりませんでした。
96デフォルトの名無しさん:2006/06/03(土) 15:24:36
>>94
TdashクラスのhcWnd1〜hcWnd4にはちゃんと値を代入しているの?
9794:2006/06/03(土) 15:54:55
>>96
へ? すいません
common.hをインクルードしてあって、
その中でHWND hWnd,hcWnd1,hcWnd2,hcWnd3,hcWnd4;としてあって、
Unit1.cppで代入してあり、
Unit2.cppでツールチップ式評価に値が出ていますが、
それでもダメなん?
9894:2006/06/03(土) 17:13:33
言葉(説明)足りないことに気付きました、すいません
common.hはグローバル変数宣言所として使っています。
HWND hWnd,hcWnd1,hcWnd2,hcWnd3,hcWnd4; はグローバル変数のつもりです。

それぞれはメインスレッド(Unit1.cpp)の中で代入しています。
それをUnit2.cppで使用しようとしています。
Unit1とUnit2のそれぞれでcommon.hをインクルードしています。
当然、Unit1はUnit2を、Unit2はUnit1をインクルードしています。
99デフォルトの名無しさん:2006/06/03(土) 23:22:36
100デフォルトの名無しさん:2006/06/03(土) 23:25:11
101デフォルトの名無しさん:2006/06/03(土) 23:37:31
>>98
HWND hWnd, …
ってcommon.hに書いてる内容そのまま?
ちゃんとextern付けて実体は1箇所で作ってる?
10294:2006/06/04(日) 01:21:43
>>101
レスありがとうございます。
common.hの内容そのままです。
exturn つけていませんでした。

とりあえずそれつけてコンパイルしたら
[リンカ エラー] 外部シンボル '_hcWnd1' が未解決(D:\〜\UNIT1.OBJ が参照)
が出てしまいました。

10394:2006/06/04(日) 01:32:57
恥ずかしながら、↓がcommon.hの全文です

//---------------------------------------------------------------------------
#ifndef commonh
#define commonh
//---------------------------------------------------------------------------
//共通
extern HWND hWnd,hcWnd1,hcWnd2,hcWnd3,hcWnd4;

//---------------------------------------------------------------------------
#endif
10494:2006/06/04(日) 01:38:23
externつけてるとコンパイル通らない為、externを外しました。

あいかわらず代入できない…
不思議不思議、なんでだろ…
105デフォルトの名無しさん:2006/06/04(日) 02:25:09
おまえ、externが必要な理由がわからないなら
宣言と定義についてまず勉強しろよ。

コンパイルエラーだから外しましたってなんだよ一体。
106デフォルトの名無しさん:2006/06/04(日) 02:27:07
それと
>>101が書いてくれた文章を、ちゃんと一字一句理解しろよ。
107デフォルトの名無しさん:2006/06/04(日) 18:25:55
>>105
スレタイよく読めやヴォケ
108デフォルトの名無しさん:2006/06/04(日) 20:17:59
>>106
宣言してるのは間違いなくコモンの中の一カ所だけですが
何かいけないでしょうか
109デフォルトの名無しさん:2006/06/04(日) 21:27:53
>>108
ここでもよみなはれ。
http://www.kumei.ne.jp/c_lang/intro/no_29.htm
110デフォルトの名無しさん:2006/06/04(日) 21:32:18
Unit1とUnit2の#includeの位置にcommon.hコピペしてみ?#includeと同じ事だから。
Unit1とUnit2に同じ名前のグローバル変数が存在するべ?
111デフォルトの名無しさん:2006/06/05(月) 19:37:44
TFormで質問です。

似たような処理をするフォームを複数使うので、TForm にメソッドを追加した派生クラスを作りたいのです。

ヘルプには 「TCustomFormから派生させる」とあるのですが、手順がわかりません。
そうやって作ったFormをフォームデザイナ上で使いたいのですが。
112デフォルトの名無しさん:2006/06/05(月) 21:13:46
元になるフォームを作ったら、フォームを右クリックして「リポジトリに追加」するだけだよ。
そしたら、新規作成→その他→フォームにそれが追加されてる。
113デフォルトの名無しさん:2006/06/05(月) 21:32:07
>>112
早速の回答ありがとうございます。
それはフォームテンプレートですよね?

メソッドを修正するときなどに親クラスを修正すれば派生クラスも修正される、
みたいにやりたかったのですが、IDE上での扱いが難しいのでしょうか。

作成したフォームを無理やり継承させてみた(TMyFormを作成し、TForm1::TForm1():TMyForm()とか)のですが、
ActiveXをはりつけるときにエラーが出たりするので正式なやりかたはないのかと思いました。
114デフォルトの名無しさん:2006/06/06(火) 00:08:11
ん?リポジトリからフォーム選択するとき、継承を選んだ状態は望みの動作じゃないの?
元のフォームのメソッドを修正すれば、(もちろん子も再構築し直すけど)子も影響受けるよ?
115デフォルトの名無しさん:2006/06/06(火) 09:38:42
>>114
>継承を選んだ状態

ぎゃー!ラジオボタンがまったく見えてませんでした。
こんなに簡単だったとは・・・。ありがとうございました。
116デフォルトの名無しさん:2006/06/08(木) 08:24:42
すごく初歩的な質問なんですが、
Form2で選択した値をForm1で使用したいのですが
どのようにすればよいのでしょう?
Cではexternで値を共有してたんですが、BCB的というかC++的には
どういう風にするのが一般的なのでしょうか?
BCB6を使っています。
117デフォルトの名無しさん:2006/06/08(木) 08:51:22
●Form1とForm2を分離しなくて良い場合
Form1にForm2をexternさせる。
で、Form1のコードで、
>String Value = Form2->getValue();
とかする。
ここで、
>String Value = Form2->Text1;
なんてすると後でForm2のコンポーネント張替えしたときに困ることになる。
118デフォルトの名無しさん:2006/06/08(木) 08:57:10
●Form1とForm2を分離しなければならない場合
Form1とForm2のオブジェクトを既に生成してあるメインルーチンがあるとする。

Form2にOnValueChangedイベントハンドラを持たせ、Form2の値が変わると自分でコールする
Form2->OnValueChanged = Event_ValueChanged; //イベントハンドラを外から渡す

Event_ValueChangedイベントの中で、
>Form1->setValue(Form2->getValue);
してやると、Form1とForm2が完全分離。

しかし初心者は、イベントハンドラを自分で呼ぶ、イベントハンドラの型定義、イベントハンドラの実体定義が無理だろうからあきらめなさい。
119デフォルトの名無しさん:2006/06/08(木) 10:11:35
単に
Form1からForm2の値を参照するときは
Form2->xxxxx
Form2からForm1の値を参照するときは
Form1->xxxxx
じゃダメなの?
120デフォルトの名無しさん:2006/06/08(木) 10:19:48
ヒント:OOP、抽象化
121116:2006/06/09(金) 12:56:44
>117-118
レスありがとうございます。
説明不足でしたがForm2には実行ボタンがあって
それを押すとForm2は消滅するうごきとなっています。
で、Form1からForm2をShowModalすると戻り値にintを返すことが
わかりましたので、Form2でその戻り値の中に選択した内容をビットに
意味づけして返してやる方向で作成中です。
(多分、これでやりたいことはできるとおもうのですが・・)

レスいただいた内容も今後使うことがあると思いますが、
説明不足、深く謝罪いたします。ゴメンナサイ。
(Form2を表示しておいて、Form1から値が取れるとは、思いもよらなかった・・バカな制御系プログラマでして・・)
122デフォルトの名無しさん:2006/06/12(月) 13:01:32
>わかりましたので、Form2でその戻り値の中に選択した内容をビットに
>意味づけして返してやる方向で作成中です。

ほんとバカな制御系プログラマだぜ。
Form2をdeleteするまでは、Form2は普通に扱えるんだから、
Form2クラスに各種プロパティを付けるべきだお。
123デフォルトの名無しさん:2006/06/12(月) 16:44:39
C++の基本的なことを理解していないんでしょ。
関数の結果は戻り値でしか返せないと思っているのだから。
おそらく、Win/C++系はまったくの初心者なのだろう。
124デフォルトの名無しさん:2006/06/12(月) 16:50:43
>バカな制御系プログラマ

2ちゃんも初心者の単発質問厨でもう帰って来ない悪寒。
だから、>>122-123 も読まずに終了。
125デフォルトの名無しさん:2006/06/12(月) 17:20:41
TMemo にはじめからあるショートカットで
「すべて選択」のショートカット(Ctrl+A)はもともとなかったでしょうか。
昔はあったような気がしたのですが今実行したら効きませんでした。
コピーとか貼り付けは普通にショートカットで実行できます。
BCB3です。

126デフォルトの名無しさん:2006/06/14(水) 00:54:58
Builder6です。
デバッグとリリースでリンクするライブラリを変更したいのですが、
どのように設定すればいいでしょうか。
とりあえずプログラム作成途中なので、デバッグ用のライブラリを
プロジェクトマネージャに追加してビルドしています。
127デフォルトの名無しさん:2006/06/14(水) 01:35:30
$(BCB)\lib\Debugにデバッグ用、
$(BCB)\lib\Releaseにリリース用のライブラリを置く。

リンクするライブラリを指定する。
#pragma link "hoge.lib"

プロジェクトオプションの「リンカ」ページの
「デバッグライブラリを使う」のON/OFFでどちらを使うかを切り替えられる。
128デフォルトの名無しさん:2006/06/14(水) 02:03:15
C言語をやろうと思い導入しました
ですがうまくいきません

------ ビルド開始: プロジェクト: C, 構成: Debug Win32 ------
コンパイルしています...
Cプラス.cpp
.\Cプラス.cpp(4) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
ビルドログは "file://d:\My document\Visual Studio 2005\Projects\C\C\Debug\BuildLog.htm" に保存されました。
C - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

となってエラーになります
129デフォルトの名無しさん:2006/06/14(水) 02:34:59
>>127
うまくリンクできました。
ありがとうございます。
130デフォルトの名無しさん:2006/06/14(水) 12:18:49
>>128
スレタイ嫁
131デフォルトの名無しさん:2006/06/14(水) 13:14:46
>>128
ソース吊せ
132デフォルトの名無しさん:2006/06/14(水) 13:32:26
吊るすのかよ
133デフォルトの名無しさん:2006/06/14(水) 14:32:13
       ‖
      ('A`)
   |   ( ) 
   |    | |
   |
  / ̄ ̄ ̄ ̄
134デフォルトの名無しさん:2006/06/14(水) 20:02:25
イ`
135デフォルトの名無しさん:2006/06/19(月) 11:43:21
y = ax(x=0〜30,a=0〜10)を1セットとして
y = ax^2,y=ax^3…y=ax^n(nは任意の数)
作成し、折れ線グラフを作成しChart1にセットごとに色を変えて表示します。
質問としては第一にChartの色指定をプログラム上でできないか?ということと

Chart1->Series[count]->AddXY(x,y,"",clRed);
(色指定はclRedしか分からずHTMLみたいに#FFFFFFみたいに色指定したい)

もう一つは
各セットごとにグラフの表示/非表示を選択できるようにしたいのですが
RadioGroupでは複数選択ができず、CheckBoxを任意の位置に表示する方法がわからないため
うまくできません。
以上教えていただけませんでしょうか?よろしくお願いいたします。


136デフォルトの名無しさん:2006/06/21(水) 02:25:09
CppWebBrowserでブラウザの機能を実現しようとしているのですが、
Navigateしてから表示されるまでに時間がかかります。
ちなみにDelphiのTWebBrowserで同じように作ったものでは直ぐに表示されます。

[Delphi]表示されるまで2秒
WebBrowser.Navigate(Edit1.Text);

[C++Builder]表示されるまで10秒
WideString tmp;
BSTR url;

tmp = Edit1->Text;
url = BSTR(tmp);
CppWebBrowser->Navigate(url);

C++の方では
CppWebBrowser->Navigate(Edit1.Text);
だとコンパイル出来ませんでした。
137デフォルトの名無しさん:2006/06/21(水) 02:40:53
>>136
つまり君は自分が阿呆だと言いたい訳か?
tmp = Edit1->Text;
CppWebBrowser->Navigate(Edit1.Text);
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
138136:2006/06/21(水) 02:47:30
ミス
CppWebBrowser->Navigate(Edit1.Text);

CppWebBrowser->Navigate(url);

つまらん煽りはいらん。
139136:2006/06/21(水) 02:54:56
何か勘違いしてた
CppWebBrowser->Navigate(Edit1->Text);

>つまり君は自分が阿呆だと言いたい訳か?
>tmp = Edit1->Text;
>CppWebBrowser->Navigate(Edit1.Text);

tmpは関係ないだろ。
読解力の無いアホめ。

140デフォルトの名無しさん:2006/06/21(水) 03:20:14
>>139
おまい相当知能指数が低いな。
Edit1->Text;
Edit1.Text
と並べて間違いをおまいにも理解できるようにしてやったってこともわからんのか。

141136:2006/06/21(水) 03:42:41
だったら最初からそう書けよ。
回答者は誰でも分かる様な分かりやすい書き方を心がけろ。
ちなみに自己解決したからもうどうでもいい。
142デフォルトの名無しさん:2006/06/22(木) 00:34:49
プログラムの話ではないんですが
BDS2006に付属のBCBは
「BCB7」になるんすかね?
それとも「BCB2006」ですか?
そんなこと考えてたら仕事になりません。
143デフォルトの名無しさん:2006/06/22(木) 00:59:00
>>142
Borland(R) C++Builder(R) for Microsoft(R) WindowsTM Version 10.0
144142:2006/06/22(木) 07:03:46
>143
長すぎね?
もちっと短く出来ぬか?
145デフォルトの名無しさん:2006/06/22(木) 11:14:00
Borland® C++Builder® for Microsoft® Windows™ Version 10.0

マジレスしとくと対応するDelphiと同じバージョンになる。
Del6 = BCB6
Del7 = なし
Del8 = なし
BDS2005(Del9) = なし
BDS2006(Del10) = BDS2006(BCB10(製品名としてはBCB2006))
146デフォルトの名無しさん:2006/06/24(土) 13:10:12
ttp://delphi.sakura.vg/lesson25.html
を参考にしながらC++Builderでタブブラウザ作りに挑戦しているのですが・・

var
Child:TIEWindow;
:
:
Child := TIEWindow(TabControl1.Tabs.Objects[i]);



TIEWindow *Child;
:
:
Child = new TIEWindow(TabControl1->Tabs->Objects[i]);

としても
[C++ エラー] : E2285 'TIEWindow::TIEWindow(TObject *)' に一致するものが見つからない
と言われます。
何がいけないのでしょうか・・
147デフォルトの名無しさん:2006/06/24(土) 17:44:41
そこnewじゃなくてキャストだべ
148デフォルトの名無しさん:2006/06/25(日) 03:34:13
キャストって型変換ですか?

new付けずにコンパイルした時
[C++ エラー] : E2459 Delphi 形式のクラスは演算子 new で構築しなければならない
と言われたものですから・・
149デフォルトの名無しさん:2006/06/25(日) 09:26:00
キャストのしかた間違ってんだべ
150146:2006/06/25(日) 10:58:08
申し訳ないですがさっぱりです・・
諦めてシングルウィンドウで頑張りますorz
151デフォルトの名無しさん:2006/06/25(日) 16:23:35
TIEWindowっていうフォーム名にしていないに1ペリカ
152デフォルトの名無しさん:2006/06/25(日) 16:36:26
TIE-Windowと脳内解釈してTIE-Fighterの新種かとオモタ
153146:2006/06/25(日) 17:08:46
MDI子ウィンドウのNameはIEWindowにしてありますよ
154デフォルトの名無しさん:2006/06/25(日) 23:46:28
Child = new TIEWindow;
よく分からんがこれだけでいいとか
155デフォルトの名無しさん:2006/06/26(月) 00:20:31
元コードと違うだろw
ただのキャストだって
Child = (TIEWindow*)TabControl1->Tabs->Objects[i]);

>>148はエラーメッセージからして、一時オブジェクト作るコード書いてたんだろ
Child = TIEWindow(TabControl1->Tabs->Objects[i]);
156デフォルトの名無しさん:2006/06/27(火) 11:00:12
Builder6.0で親フォームのメニューから何かを押した際に、
別なフォームを出したいと思うんですがどうすればいいんでしょうか?
今、Form1(親画面)Form2(別に構成している画面)を準備しています。
Form1のMENUの関数にどう記述すればいいんでしょうか?
それとも何か設定が必要ですか?
すみませんが教えてください。。。」
157デフォルトの名無しさん:2006/06/27(火) 11:26:04
TForm2 *Form2;
Form2 = new TForm2(this);
// Form2->init(???); //form2に渡すものがあれば渡しておく
Form2->ShowModal();
delete Form2;
158デフォルトの名無しさん:2006/06/27(火) 12:46:46
>>157
ありがとうございます。
助かりました。
で、もう1つだけ聞きたいんですが
そのウィンドウを親の中心にくるようにしたいんですが
どうすればいいんでしょうか?
たびたびすみません。
159デフォルトの名無しさん:2006/06/27(火) 13:24:35
TForm2 *Form2;
Form2 = new TForm2(this);
// Form2->init(???); //form2に渡すものがあれば渡しておく
Form2->Position = poMainFormCenter;
Form2->ShowModal();
delete Form2;
160156:2006/06/27(火) 21:22:37
>>159
ほんとありがとうございます。
大変助かりました。
感謝します。
161デフォルトの名無しさん:2006/06/27(火) 23:45:16
一定時間置きにスクリプトを自動的に実行させたいのですが、
所定の時刻になるまでプロセスをスリープさせておく関数ってありますか?
162デフォルトの名無しさん:2006/06/28(水) 02:34:59
Sleep
163デフォルトの名無しさん:2006/06/28(水) 08:57:09
>>161
タスクスケジューラ
164デフォルトの名無しさん:2006/06/29(木) 11:15:13
タスクスケジューラが出てきたのでついでにクレクレしちゃいますが…

CORBAのサーバアプリケーションを作ったのですが、
コイツを通常に起動する分には全く問題ないのですが、
タスクの「システム起動時」だとうんともすんともいわないのです。
ログを取るとコンストラクタすら走ってません。
「ユーザログオン時」も、ログオン後数秒のタイマをかませないとダメなんです。
何をどう調べればいいのか、ヒントだけでもお願いできないでしょうか?
165sage:2006/06/29(木) 17:48:41
コンパイルの質問です。
bcc32とコマンドプロンプトでソースファイルをコンパイルする時
エラー E2194: ファイル 'test.c' が見つからない
と表示されます。検索してみたらディレクトリが関係してあるそうなのですが
コンパイルするときソースがあるディレクトリに移動してコンパイルしなければいけないのでしょうか?
さっきソースのあるディレクトリで試してみたら成功したのですが、これはC++Builderのパスがしっかり通ってないということでしょうか?
166デフォルトの名無しさん:2006/06/29(木) 17:49:58
すみません、間違えて名前欄にサゲ記入してしまいました...
167デフォルトの名無しさん:2006/06/29(木) 18:01:37
>>165
>コンパイルするときソースがあるディレクトリに移動してコンパイルしなければいけないのでしょうか?
あたりまえ。

ファイル捜索順はカレントディレクトリ>環境変数PATHで指定されたディレクトリ。これで見つからなければエラー出す。

ついでにスレ違いとも言っておこう。

タダで使えるBorland C++ Part5
http://pc8.2ch.net/test/read.cgi/tech/1135127048/
168デフォルトの名無しさん:2006/06/29(木) 22:13:41
Canvas->LineTo(x,y)で書いた線を、消す方法って何がありますか?
169デフォルトの名無しさん:2006/06/29(木) 22:36:39
書く前の状態を保存しておくとか、XOR で書いて XOR で消すとか。
170デフォルトの名無しさん:2006/06/29(木) 22:43:35
>>168
・背景色でもう一度LineTo
・描画前の画像を保存しておいて、その保存画像をもういちど描画
171デフォルトの名無しさん:2006/06/29(木) 23:25:48
>>169,170
ありがとうございます。
172デフォルトの名無しさん:2006/07/05(水) 17:49:02
BCB6において、
-------------------------------------------------------
#include <FileCtrl.hpp>

AnsiString Directory;
SelectDirectory("フォルダを選択してください","\\",Directory);
-------------------------------------------------------
を"実行時パッケージを使って構築(&B)"のチェックを外してコンパイルすると
[リンカ エラー] 外部シンボル '__fastcall Filectrl::SelectDirectory(const System::AnsiString, const System::WideString, System::AnsiString&)' が未解決(C:\DOCUMENTS AND SETTINGS\hoge\UNIT1.OBJ が参照)
が出てコンパイルできません。
何が原因で、どう対策すればコンパイルが通るようになるか
御教示願います。
173172:2006/07/05(水) 18:34:48
とりあえず解決しました
プロジェクトにvclx.libを追加してエラーが出なくなりました

このやり方で正しいのでしょうか?
174デフォルトの名無しさん:2006/07/05(水) 18:45:46
別にいいんでない?
ただうちはFileCtrl.hppをインクルードするだけで、勝手にbprファイルのライブラリのとこにvclx.libが追加されるけどね。
175172:2006/07/05(水) 19:52:07
>>174
うん、それが不思議
今までこんなこと無かったんだけどな…
176デフォルトの名無しさん:2006/07/08(土) 17:09:01
Perlを一通り勉強し終わって、
c++勉強したいと思ってます。

C++ builder6かVC++
開発環境どうしようか考えています。

本屋とネットでどちらが勉強しようか調べてみたら
Builderの方がドキュメント少ないように思いました。
近所の結構大きい本屋では、VC++の本はたくさんあったんですが、
Builderの本は一冊もありませんでした。(ちょっとびっくり)
VC++の方が初心者にとっては勉強しやすいでしょうか?
177デフォルトの名無しさん:2006/07/08(土) 22:04:37
builderやるなら本なんて要らない
178デフォルトの名無しさん:2006/07/08(土) 23:27:59
Builderはしばらくver up止まってたから
179デフォルトの名無しさん:2006/07/09(日) 01:28:50
> VC++の方が初心者にとっては勉強しやすいでしょうか?

それはそうですね。本もその他の情報も圧倒的に VC++ が有利。
ユーザもいっぱいいるからいろいろ教えてもらえる。

BCB が便利なのは、簡単に GUI を作れることだけ。
ま、これがけっこう大きなメリットだが。
180デフォルトの名無しさん:2006/07/09(日) 08:46:46
てか開発環境依存の本はいらない気がするが‥‥
C++の学習に必要なのはVC++やBCBの本じゃなくてC++の本。
あとBCB標準のフレームワークのVCLについてはDelphi用の書籍で事足りるし。
181デフォルトの名無しさん:2006/07/09(日) 10:59:33
C/C++をまったく知らないのなら、GUI設計とかは当面関係ないだろうから
VC++で決まり。情報量がまったく違うから。無料版があるしね。
Borlandにも無料のC++はあるけど。
現時点で、わざわざ金だしてBuilderを購入する必要性は皆無。
C++を理解してMFCとGUI設計に怒りを感じたら、Builder(Borland Developer Studio)を検討すればいい。
182デフォルトの名無しさん:2006/07/09(日) 12:06:35
C++Builderで携帯アプリを作るのは可能でしょうか?
183デフォルトの名無しさん:2006/07/09(日) 12:58:54
点を左から右に移動させるだけの簡単なプログラムの作り方教えてください
184デフォルトの名無しさん:2006/07/09(日) 13:16:51
BCBスレでVC勧めるのもどうかと思うがなあ
俺が使い始めたBCB1当時はVCがかなり使いにくかったのでBCBは直感的に分かってすんなり使うことができたけどね
185デフォルトの名無しさん:2006/07/09(日) 13:39:56
C++Builderで携帯アプリを作るのは可能でしょうか?
186デフォルトの名無しさん:2006/07/09(日) 19:09:00
でもC++初学者にBCB薦めるのはなぁ‥‥
言語の独自拡張積極的に使うことになるしあまり‥‥
187デフォルトの名無しさん:2006/07/09(日) 19:37:00
イベントハンドラ作ろうとすると
いきなり__fastcallとか出てくるし
文字列はAnsiStringだしね。
188デフォルトの名無しさん:2006/07/09(日) 20:03:26
呼び出し規約はどうでもいいけど__closureは。
189デフォルトの名無しさん:2006/07/09(日) 21:02:37
>>183
ファイル->新規作成->アプリケーションして
フォームをダブルクリックして
double px,py,vx,vy;
int x,y;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
py=Height/2;
px=10;vx=3;vy=-0.5;
x=-1;
}
タイマーを配置、Interval を20とかに変更 。そのタイマーをダブルクリックして

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
px+=vx;
py+=vy;
if(px>=Width-10 ||px<10) {vx=-vx;px+=vx;};
if(py>=Height-10||py<10) {vy=-vy;py+=vy;};
Canvas->Pen->Mode=pmNot;
if(x>0) Canvas->Ellipse(x-5,y-5,x+5,y+5);
x=px;
y=py;
Canvas->Ellipse(x-5,y-5,x+5,y+5);
vy+=0.02;
}
190デフォルトの名無しさん:2006/07/10(月) 17:09:05
>>186
AnsiStringは便利ですよ
俺なんてAnsiStringとTStringListがなかったら何もできないよ(つД`)

VC++にはそういう拡張ってないんですか?
191デフォルトの名無しさん:2006/07/10(月) 17:22:33
VCにはCStringとCStringListがあるぞ。
CStringはLPCTSTRのキャストオペレータがあるから、VCに慣れると.c_str()と書くのが非常に面倒になる。
192デフォルトの名無しさん:2006/07/11(火) 19:41:25
まずはC言語を勉強しようと思ってるんですが、C++BuilderでC言語で書いたコードをコンパイルできるでしょうか?
193デフォルトの名無しさん:2006/07/11(火) 19:42:27
すみませんC++Builder Personalです
194デフォルトの名無しさん:2006/07/11(火) 21:16:56
できる
195デフォルトの名無しさん:2006/07/11(火) 22:40:41
>>191
俺の場合文字列周りはほとんどAnsiStringで固めちゃってるから.c_str()使うのは珍しいAPI使うときくらいだな
196デフォルトの名無しさん:2006/07/12(水) 04:16:55
builder か VCで迷ってたものなんですが、builderにしました。
その節はお世話になりました。

で、入門書一冊読み終わって、次に「猫でもわかるネットワーク・・・」
買ってきたんですが、わからないクラス?が
出てきてちんぷんかんぷんです。
なんかいきなりいろいろincludeして、
なにやら使っているっぽいです。

猫でもわかるのかと思って買ったんですが、
入門書一冊だけで歯が立ちません。
猫以下の知識みたいでs

listen,connectまでは、大体同じパターンなのかなぁ。
ぐらいの感覚で、正直細かいところが全然です。

途方にくれているところなんですが、
わからない関数とか一つずつbuilderのヘルプや
ネットで調べていくしかないんでしょうか。
全部調べても次々と忘れていきそうです。

ネットワークプログラミングは、パターンが決まっていて、
コピペして、それを改造していくぐらいで大体のものは
できるんでしょうか?

なにかアドバイスお願いします。;;
197デフォルトの名無しさん:2006/07/12(水) 09:03:10
indy使えばイインジャネーノ?
198デフォルトの名無しさん:2006/07/12(水) 10:03:36
>>195
ロジックまわりはstd::stringやstd::wstring使ってるな。
199デフォルトの名無しさん:2006/07/12(水) 13:13:43
>>196
初心者でいきなりネットワークですか
まあ簡単なやつならコピペできると思うが
200デフォルトの名無しさん:2006/07/12(水) 16:18:08
>>199
今の現状ですが、
「マスタリングTCP/IP」の書籍
といろんなサイトを見て、
ネットマスクのAND計算、パケットの仕組み、
どんな風に届けられるのかなど勉強しました。

とりあえずどうしていいかわからないので、
シンプルなチャットのクライアント/サーバの
サンプルプログラムをいろいろ探してます。

何種類かダウンロードしてみて、
どんなコンポーネント使ってるとか
コードのパターンが見えてくれば、
コツがつかめるような気がしてます。

もし、ほかのお勧めの勉強方法や
先に勉強したほうが良い順番が
あればアドバイスお願いします。
201デフォルトの名無しさん:2006/07/12(水) 16:38:35
Winsock2.0プログラミング読んで
ネットワークプログラミングスレのリンクに目を通して
TClientSocketがWSAAsyncSelectを使ったソケットをラップしたものだとわかってれば
普通に何でも出来るよ。

httpとかのおしゃべりをするだけなら
Indyとかの出来合いのものを使ったほうがよっぽど楽だけどね。
202デフォルトの名無しさん:2006/07/12(水) 17:24:33
c++.netのご相談をさせて頂いてもよろしいでしょうか?
どこで質問していいのかも分からない内容なのですが
203デフォルトの名無しさん:2006/07/12(水) 17:32:01
>>201
「Winsock2プログラミング」
アマゾンでレビュー見るとよさそうな本ですね。
ちょっと値段が高いので、ネットワークスレのリンクから
勉強したいと思います。
>TClientSocketがWSAAsyncSelectを使ったソケットをラップしたもの
具体的なアドバイスすごい助かります。早速調べてみます。

ありがとうございました。
204デフォルトの名無しさん:2006/07/13(木) 08:22:34
>>202
どこで質問していいかは俺もわからないけど、ここはスレ違い。
205デフォルトの名無しさん:2006/07/13(木) 16:07:44
Indyってバグだらけじゃん
206デフォルトの名無しさん:2006/07/13(木) 16:40:16
魔宮の伝説
207デフォルトの名無しさん:2006/07/13(木) 17:41:57
C言語で作ったソースのコンパイル方法をご教示ください
208デフォルトの名無しさん:2006/07/13(木) 18:03:12
Indy って便利だけど、バージョン間でのコード互換性が微妙
209デフォルトの名無しさん:2006/07/13(木) 19:06:02
>>207
プロジェクトにソースを追加してメニューからメイクする。
210デフォルトの名無しさん:2006/07/13(木) 19:09:36
>>209
トンクスコ
211デフォルトの名無しさん:2006/07/13(木) 21:08:32
バグのないプログラムなど無い。
ソースが公開されているから自己解決できる。
情報もそれなりにある。
212デフォルトの名無しさん:2006/07/13(木) 21:21:34
【IT】Microsoft、「Virtual PC 2004」の無償提供を開始
http://news19.2ch.net/test/read.cgi/newsplus/1152788480/
213デフォルトの名無しさん:2006/07/13(木) 23:11:24
Vistaのベータも普通にダウンロードできるようになったみたいだし、
段々MSDNサブスクリプションに入っている意味が無くなっていくな・・・
214デフォルトの名無しさん:2006/07/14(金) 12:41:21
>>208
それはある!なんでわざわざプロパティ変えるかなーとかね。
215デフォルトの名無しさん:2006/07/24(月) 20:28:08
今、スレッドを学習しているのですが
宣言から、フォーム閉じるで終了まで以下で正しいでしょうか?
何か足りなければ教えてください。

また、
MyThread = new TMyThread(true);で宣言したスレッドのThreadIDを
得るのはどうしたらいいでしょうか?
PostThreadMessageを使いたいのでThreadIDが必要なんです。

TMyThread *MyThread;

void __fastcall TForm1::FormCreate(TObject *Sender)
{
MyThread = new TMyThread(true);
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if(MyThread->Suspended == true)
MyThread->Resume();
MyThread->Terminate();
}
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
MyThread->WaitFor();
delete MyThread;
}
216デフォルトの名無しさん:2006/07/24(月) 23:48:11
>>215
スレッドIDならそのまんまのがメンバ変数にあるだろ
217215:2006/07/25(火) 21:23:13
>>216
すみませんがそれが分からないのです。
HELPを見たら
__property int ThreadID = {read=FThreadID, nodefault};
ってあったんですがこれを宣言するとThreadIDとして使えるって事ですか?
クラスに宣言しても、Cソースに宣言してもだめでした。
218デフォルトの名無しさん:2006/07/25(火) 21:30:29
>>217
プロパティは外からはメンバ変数として扱えるからMyThread->ThreadIDで普通に読み出せるはずだが。
219215:2006/07/25(火) 21:58:30
>>218
PostThreadMessage(MyThread->ThreadID,メッセージ,(WPARAM)NULL,(LPARAM)NULL);
作ったスレッドに↑でメッセージを送ろうとしていたのですが
何度やってもエラーで戻ってくるのでThreadIdが無効なのか?と思ってましたが
これではだめでしょうか?
220デフォルトの名無しさん:2006/07/25(火) 22:29:17
The thread to which the message is posted must have created a message
queue, or else the call to PostThreadMessage fails.

そのスレッド Window をつくってメッセージループ動かしてる?
そもそも、普通のワーカスレッドでどうやってメッセージを受け取るつもり?
221215:2006/07/25(火) 22:48:48
>>220
void __fastcall TMyThread::Execute()
の中でGetMessageループで受け取ろうかと思っています。
これじゃだめですか?
CreateThread()でID得て関数指定してやると出来るんですが
Builderではどう実現すればいいのでしょうか?
スレッドを作る→メッセージ渡す→受け取る→関数に飛ぶ
みたいな流れを作りたいんです。
222デフォルトの名無しさん:2006/07/26(水) 02:46:32
ウィンドウ作らないとメッセージキューができないのでは? よくしらんが。
223デフォルトの名無しさん:2006/07/26(水) 19:01:58
そんなことはない
224デフォルトの名無しさん:2006/07/26(水) 19:09:23
そうなの?
225デフォルトの名無しさん:2006/07/27(木) 00:02:15
1回空打ちすればOK
226デフォルトの名無しさん:2006/08/02(水) 22:53:58

BorlandC++6に、このメソッドがどこから呼ばれてるかを表示できる機能ってありますか?
Eclipseでいうところの右クリック⇒「呼び出し階層を開く」みたいなやつ。

すみません、↓こっちでも投稿してしまいましたがすれ違いっぽいのでこっちに投稿させていただきました。
タダで使えるBorland C++ Part5
http://pc8.2ch.net/test/read.cgi/tech/1135127048/262
227デフォルトの名無しさん:2006/08/02(水) 23:59:00
Eclipseのがどんなんか知らないけど、表示→デバッグ→呼び出し履歴でたどれる。
228デフォルトの名無しさん:2006/08/07(月) 21:41:34
BCB6
TCppWebBrowserで開いたウィンドウのハンドラってどうやって取得するのでしょうか。
TCppWebBrowserそのもののハンドラはTCppWebBrowser->Handleでとれるんですが、
どうも表示しているHTMLは制御できないようで・・・
TCppWebBrowserはPageControlの中に置いています。
よろしくお願いします。
229デフォルトの名無しさん:2006/08/07(月) 23:26:20
HWND hwnd;
hwnd = FindWindowEx(CppWebBrowser1->Handle, NULL, "Shell DocObject View", NULL);
hwnd = FindWindowEx(hwnd, NULL, "Internet Explorer_Server", NULL);
230デフォルトの名無しさん:2006/08/07(月) 23:48:45
C++Builderのショートカット一覧みたいなのって無いですか?
231デフォルトの名無しさん:2006/08/08(火) 12:48:27
>>229
ありがとうございます!!
232デフォルトの名無しさん:2006/08/11(金) 16:57:05
超初心者です。lsコマンドみたいなことしようと
思っているんですがわからないことがあります。

TSearchRec SearchRec;
if( FindFirst( "C:\\hoge\\*.*",faAnyFile,SearchRec)==0 ){
printf("FileName=(%s) FileCapacty=(%d) Attr=(%d)\n",SearchRec.Name.c_str(),SearchRec.Size,SearchRec.Attr);
while(FindNext(SearchRec)==0){
printf("FileName=(%s) FileCapacty=(%d) Attr=(%d)\n",SearchRec.Name.c_str(),SearchRec.Size,SearchRec.Attr);
}
}else{
printf("エラーだよ\n");
}
--出力--
FileName=(.) FileCapacty=(0) Attr=(16)//16はfaDirectory(ディレクトリファイル)
FileName=(..) FileCapacty=(0) Attr=(16)
FileName=(hoge1) FileCapacty=(0) Attr=(32)//32はfaArchive(アーカイブ)
FileName=(hoge2) FileCapacty=(0) Attr=(32)
 ・・・
--おわり--

@FileName=(.)、FileName=(..)
この2つってなんのことでしょうか?
自分と自分より上のディレクトリのことかと思ったのですがなんでしょう。
検索するpathを"c:\\*.*"にしたら無くなりました。

Aディレクトリのファイルの検索だけしたかったら
faArchiveにすればよいでしょうか。

よろしくお願いします。
233デフォルトの名無しさん:2006/08/11(金) 17:12:35
232です。
コードすごく見づらくなってました。
ごめんなさい。
234デフォルトの名無しさん:2006/08/12(土) 02:20:36
オブジェクトを返す関数Xで取得したオブジェクトをTListにAddしたいのですが、
TListはポインタしか引数に持てません。
取得したオブジェクトからポインタを取得するにはどういう記述をすればよいのでしょうか?
関数Xは、あくまでもオブジェクトしか返さない(ポインタは返さない)という前提です。
235デフォルトの名無しさん:2006/08/12(土) 04:44:09
>>234
参照演算子。てかstd::vector使えと。

>>232
自分自身と親ディレクトリ
ルートディレクトリは自分に名前付いてないし親ディレクトリも存在しない。
そしてヘルプのfaArchiveの上の行嫁
236234:2006/08/12(土) 20:02:57
>>235

TList *list = new TList();
list->Add(&getHogeObj());

こんな感じでしょうか?
237デフォルトの名無しさん:2006/08/12(土) 20:24:18
>>236

std::vector<Hoge> list;
list.push_back(getHogeObj());
238デフォルトの名無しさん:2006/08/13(日) 04:05:11
既に配置したコンポーネントを、コンポーネント内包可能なコンポーネントにつっこみたい時はどうしますか?
既に配置した奴はデリートして一からですか?
239デフォルトの名無しさん:2006/08/13(日) 07:44:09
>>238
オブジェクトツリー上でドラッグ
240デフォルトの名無しさん:2006/08/13(日) 07:56:54
>>239
あり^^
241デフォルトの名無しさん:2006/08/13(日) 21:45:35
パスカルで書かれたVCLをインストールしたいんだが
「モジュール'dcc60.dllのアドレス00A3630Dでアドレス00000018に対する
読み込み違反がおきました。」
って出てしまう、、
これはどうゆうことなのでしょうか?

ttp://wblue.web.infoseek.co.jp/soft/compo/005_exifinf.htm
のEXIFを読み込むコンポーネントで使い出がありそうなんだが、、
242デフォルトの名無しさん:2006/08/14(月) 23:39:56
>>237
vector にこだわる理由ってなに?
tlist でも十分じゃね?
243デフォルトの名無しさん:2006/08/14(月) 23:51:19
いちいちnewで作るとか、取り出すのにキャスト必要とかダサー
244デフォルトの名無しさん:2006/08/15(火) 00:09:12
>>243
ナルヘソ。
そんなあなたにお伺いしたい。
文字列系のライブラリは何を使ってますか?AnsiStringじゃないことだけは確かだが。
やっぱりstring?
245デフォルトの名無しさん:2006/08/15(火) 00:19:39
>>244
> AnsiStringじゃないことだけは確かだが。
なぜ?AnsiStringを受け取る便利関数が多いし、コンポとのやり取りにも必要だから使ってるけど。
TListみたくvectorから乗り換える必要性を感じられないものとは違う。
仕事でLinuxとの共用ソース書かくときなんかはstd::string使うけどさ。
246デフォルトの名無しさん:2006/08/15(火) 07:46:38
BCDEMOSのbiolife.dbをSQL Explorerで開いて、
フィールド Length (cm)
についてSQLでSELECTしようとしたらエラーが出ます。
どういう事でしょうか
247デフォルトの名無しさん:2006/08/16(水) 12:35:00
>>246
どんなSQL文?
248デフォルトの名無しさん:2006/08/16(水) 14:13:56
SELECT 'Length (cm)' FROM biolife;
エラーじゃないですが、数値を表示してくれません><
249デフォルトの名無しさん:2006/08/17(木) 10:25:53
じゃぁ,何を表示するの?
250デフォルトの名無しさん:2006/08/18(金) 04:42:05
数値です><
251デフォルトの名無しさん:2006/08/18(金) 04:43:13
Length (cm)
という文字列がずらーっと表示されます><
252デフォルトの名無しさん:2006/08/18(金) 04:45:29
IDE起動する度にダミーみたいなフォームが出て来るのをやめさせたいのですが。
253デフォルトの名無しさん:2006/08/18(金) 09:13:21
>>252
6なら-NPスイッチ
254デフォルトの名無しさん:2006/08/18(金) 14:02:14
>>253
あり^^
255デフォルトの名無しさん:2006/08/18(金) 14:26:23
InterBaseのDate型は年月日は格納できますが、
時分秒もできますか?
256デフォルトの名無しさん:2006/08/18(金) 14:45:34
257255:2006/08/18(金) 15:59:56
>>256
あり^^
258デフォルトの名無しさん:2006/08/18(金) 17:29:06
paradox7 フィールド名は日本語より英語を使った方が望ましいですか?
259デフォルトの名無しさん:2006/08/18(金) 21:29:43
日本語で使ってるがそれが原因と思われる問題には遭遇したことがない
でも英語の方が無難かもしれない
260デフォルトの名無しさん:2006/08/19(土) 06:51:44
あり^^
261デフォルトの名無しさん:2006/08/19(土) 08:16:35
DBGridって他のコンポにフォーカス遷せないの?
一旦フォーカス入ったらマウス使わないと抜け出せない気がします

マウスフリーアプリ開発のためにもこれは死活問題です><
262デフォルトの名無しさん:2006/08/19(土) 10:21:52
Tabで抜け出せないって事?
DBGridのoptionsにTabの設定が在るからから確認してみたら?
263デフォルトの名無しさん:2006/08/19(土) 16:56:49
C++Builderをはじめて使う・・・・といより
windowsでプログラムを初めてコンパイルしようとしてるのですが
libのddrawが開かないと出てコンパイルできません
何が問題なのでしょうか?
264デフォルトの名無しさん:2006/08/22(火) 11:34:45
ビシブローカーってなんですか?
265デフォルトの名無しさん:2006/08/23(水) 01:15:17
ループ使うとき for で i++な回し方してる?
それともiterator使ってる?
266デフォルトの名無しさん:2006/08/23(水) 07:20:27
while使ってる
267デフォルトの名無しさん:2006/08/23(水) 09:55:30
goto使ってる
268デフォルトの名無しさん:2006/08/23(水) 13:28:17
根性で書いてる
269デフォルトの名無しさん:2006/08/23(水) 20:06:04
UpDownコンポーネントをEditにAssociateして数値をアップダウン
させたいのですが
インクリメント設定は小数ではできないのでしょうか?
できれば0.1ずつインクリメントしたいんですが
整数ではないとのエラーが出てしまいます。
0.1ずつのUpDownできる方法あたら教えてください。
270デフォルトの名無しさん:2006/08/24(木) 09:22:31
アソシエートしないで、
アップダウン→ポジションを十で割ってエディットに入れれば?
イベントはアップダウンのチェンジかクリックでいいっしょ
271デフォルトの名無しさん:2006/08/25(金) 00:33:27
>>265
イテレータでイレースだっけ? やってもサイズは減るけどメモリは減らないのね
それで微妙なバグでた
もう for(int i=o; i<v.size(); i++) でいいと思う
front() + i かな? 先頭イテレータに+5すれば5番目だ、問題ない
272デフォルトの名無しさん:2006/08/25(金) 01:25:49
>>268
どうせコピペじゃないか
273デフォルトの名無しさん:2006/08/25(金) 08:43:21
>>271
>イテレータでイレースだっけ? やってもサイズは減るけどメモリは減らないのね

STLの仕様でつ。

メモリを開放するには、Effective STL 第17項に載ってるswap技法を使うらしい。
274デフォルトの名無しさん:2006/08/25(金) 11:10:34
これまでVB6でプログラムを作成して来たのですが、C++に移行したいと考えています。
一応、C、C++の文法的な部分は参考書等で理解しているつもりです。

で、VCにすべきか、C++Builderにすべきか迷っています。
VCだとMFCを理解しないと使い物にならないという話を聞いた事があるのですが、
どちらの方が簡単に移行出来るか教えて下さい。
275デフォルトの名無しさん:2006/08/25(金) 11:16:28
>>274
つVC+WTL
276デフォルトの名無しさん:2006/08/25(金) 11:57:32
>これまでVB6でプログラムを作成して来たのですが、C++に移行したいと考えています。

そりゃ、コンポーネントを画面にベタベタするのはBCBしか無いお。
体験版落として起動した瞬間に分かる。

>VCだとMFCを理解しないと使い物にならないという話を聞いた事があるのですが、

ウィザードでMFCアプリケーションを生成してソース開いた瞬間にコケル。
生成されたソースからしてC++的に超汚い。
277デフォルトの名無しさん:2006/08/25(金) 12:06:06
>これまでVB6でプログラムを作成して来たのですが、C++に移行したいと考えています。

もう一つ書いとくと、BCBのVCLにVB的な文字列ユニットが用意されている。
BCBで画面にペタペタ貼った後はVBコードみたいなの書いても高速安定動作するお。
C++の勉強はBCBに移行してから少しづつやれば良い。
278デフォルトの名無しさん:2006/08/25(金) 13:52:16
OOP理解してないとあっという間にメンテ不能のスパゲッティが完成するけどな
279デフォルトの名無しさん:2006/08/25(金) 17:06:56
>>274
C++Builderまじおすすめ。
ドラッグアンドドロップで、ポトペタできる。
VBからなら、Delphiの方が入りやすいかもしれない。
280デフォルトの名無しさん:2006/08/25(金) 17:24:47
>>278
MFCだとベタベタな書き方とかWin32APIコールしまくりしか出来ない上、
トリッキーなことしないとやりたいことが出来ない仕掛けだからもっと恐ろしいお。
MFCプログラムを初めて見た人は泣きたくなると思う。
281デフォルトの名無しさん:2006/08/25(金) 17:32:42
いちいち線を描画するのにCPenを宣言して、HDCを取得してして…
MoveToでLineToしたあと、CPenとかHDCとかObjectの解放とか
そんな事を全部自分でやらないといけないよ。MFCは。
VCLのTCanvasサイコー!!
282デフォルトの名無しさん:2006/08/25(金) 17:51:09
MFCサイアクなのは、ダイアログが1リソースファイルに入っちゃって、
プロジェクトを超えてダイアログを使いまわしできない。
283274:2006/08/25(金) 18:15:43
皆さんレスどうも有難う御座います。
早速、C++Builderの体験版を入れてみました。

VBだとマニュアルなんて読まなくても、簡単な物なら即興で作れたのに、
C++Builderは、マニュアルが無いとサッパリ???

早速、本屋に走りましたが、田舎なものでC++Builderの参考書は一冊もなかったです。
VCなら2、3冊はあるのに・・・(T_T)

アマゾンで購入しようと思うので、お勧めの参考書があれば教えて下さい。
284デフォルトの名無しさん:2006/08/25(金) 18:28:29
うちにはこの本があるようだ。

>C++Builder 6コンポーネント活用ガイド&実践プログラミング (Vol.1)
>C++Builder6 コンポーネント活用ガイド&実践プログラミング〈Vol.2〉実践テクニック編

自分はDelphi→BCBに入ったので本読まなかった。

285デフォルトの名無しさん:2006/08/25(金) 18:34:00
>>283

VBに似てると評判なんだけど...

コンポーネントも多くて便利じゃない?
まさか、「Borland C++ 2005」(←GUIライブラリが無い)と間違えてないおね...
286デフォルトの名無しさん:2006/08/25(金) 19:47:45
>283
そんなお前にこれをプレゼント
http://www.ne.jp/asahi/nagoya/ahomaro/builder/index.html
まぁ、ガンガレ
287デフォルトの名無しさん:2006/08/25(金) 20:33:42
コンポの作り方が良く分かりません><
288デフォルトの名無しさん:2006/08/25(金) 21:37:58
ビルダー初めてなら
C>プログラムファイル>ビルダー>サンプル
ってフォルダがあるから、コピーしていじりまくればいいお
サンプル100個ぐらいはいってなかったけ
289デフォルトの名無しさん:2006/08/25(金) 21:56:13
>>283
漏れは無敵のC++Builderって本でほぼマスターできたよ
290デフォルトの名無しさん:2006/08/26(土) 10:46:15
C++builderってさ、指定したメソッドが参照されてる場所をリストで表示してくれる機能ってないの?
やっぱりファイル検索しかない?あれだと余計なのもヒットするからイマイチなんですよね
291デフォルトの名無しさん:2006/08/26(土) 11:44:14
paradoxのフィールド型の、カウンタ型ってなんですか?
シリアルに使うんですか?
INTEGERより適してるとかですか?
292デフォルトの名無しさん:2006/08/26(土) 18:05:53
>>290
漏れはあったらあったでウザイけどな
Ctrl+Fのプロジェクト内検索でいいんでね? あとブレークポイントで中はいるか
コード補完系って時間かかるから全部切ってるしね

んなことよりターボ君はまだか ヽ(`Д´)ノ
293デフォルトの名無しさん:2006/08/26(土) 21:06:00
RADツールで開発したアプリを商品として売り出してバグが出たとする

RADのあるコンポーネントのバグが重大な原因となっていると判明した場合

RADメーカーに損害賠償請求ってできるの?
294デフォルトの名無しさん:2006/08/26(土) 21:18:09
paradoxのメモ型データは検索してもらえないのですか?
295デフォルトの名無しさん:2006/08/26(土) 21:42:59
>>293
使用契約よく嫁。そういう保証は一切ないはず。
296デフォルトの名無しさん:2006/08/26(土) 23:20:06
>>293
その辺もフォローするのがプロってもんでしょ
297デフォルトの名無しさん:2006/08/26(土) 23:25:08
>>293
こんな安い開発環境でガタガタ抜かすな。
Ent版だとしたら、自分の金じゃなくて会社の金だろうし。
298デフォルトの名無しさん:2006/08/27(日) 01:23:55
>293の言うようなことは殆ど無いから。
もし標準コンポ使ってそう言うバグが出たら知識スキルがなかった293が悪いと思います。
例えばTMemoやTRichEditのバグとか知ってるの?
299デフォルトの名無しさん:2006/08/27(日) 01:28:31
>>293(´・ω・`)カワイソス。ボロクソに罵られてるなw
300デフォルトの名無しさん:2006/08/27(日) 03:51:23
>>293
ツールのコンポーネントが気にくわないなら、
作れるんだから自分で作ればいいんじゃね?
301デフォルトの名無しさん:2006/08/27(日) 05:04:14
>>293レベルの質問をするってことは、夏休みの学生だろ。
仕事でプログラミングしている奴だとしたら底抜け馬鹿レベルだ。
302デフォルトの名無しさん:2006/08/27(日) 06:04:45
【板倉】インパ板倉がアンガ山根を中傷【姿慎めよ】
24時間テレビのマラソン中継にて、音声のミスにより、お笑い芸人の意外な本性発覚!!
人間として言っちゃ駄目なこと言ってます!
【動画】→http://ime.nu/www.youtube.com/watch?v=O4QS7JgTlmw
303293:2006/08/27(日) 10:13:38
俺(′・ω・)カワイソス
304デフォルトの名無しさん:2006/08/27(日) 10:27:24
医療用の機器とか航空機に入ってるプログラムは、どんなコンパイラを
使ってるんだろうな。人命に関わるミッションに対する耐性を持つコンパイラ
なんて存在するんだろうか?
305Delフサギコ ◆A6VzDeLphI :2006/08/27(日) 10:44:29
          >>304さん
   ∧,,∧   / 図書館いって
  ミ,,゚Д゚彡 <  歴史をひもといて
   ミ つ旦)~~ \ みるのもいいかも
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪

おもしろい発見あるかもよ。
アポロ13とか、飛行機事故とか。

医療用機器は、人命に関わる部分は
制御系のお仕事だね。


306デフォルトの名無しさん:2006/08/27(日) 11:44:02
ハーバードやMITやカルテック主席卒の奴らが
アセンブリ言語直打
307デフォルトの名無しさん:2006/08/27(日) 12:06:01
首席
308デフォルトの名無しさん:2006/08/27(日) 12:45:14
(///)
309デフォルトの名無しさん:2006/08/27(日) 20:42:00
医療機器なんて最悪の場合停止したら再起動でしょ。結構PC用Winが使われてたりする。

本当の意味で再起動が許されないのは莫大な資金で打ち上げたロケットとかじゃね?

それらの制御系の応答時間はリアルタイムOSが保障。
310デフォルトの名無しさん:2006/08/27(日) 21:45:01
いわゆる落ちることが許されないシステムは、
落ちたらバックアップのシステムが支えるようになってるのが普通だろ。
ミスをしない人間などいないからな。
肝心のバックアップシステムがちゃんと動作しなくて、銀行のオンラインが停止したなんてことが
最近起こっている訳だけどね。
ロケットなんかは、リセットが許されるシステムだろう。
リセットして正常になるならリセットだろ。
ロケットのシステムをリセットしても、慣性飛行しているときには影響ないし。
311デフォルトの名無しさん:2006/08/27(日) 21:50:09
>>310
再突入中だったらヤバい
312デフォルトの名無しさん:2006/08/28(月) 00:40:11
ステータスバーコンポーネントって縦書きできないの?
313デフォルトの名無しさん:2006/08/28(月) 00:50:58
オーナドローにすると画像でもなんでも表示できる。だから、自力で縦書きするといい。
314デフォルトの名無しさん:2006/08/28(月) 03:23:29
paradoxの(MEMO)データって検索できないの?
315デフォルトの名無しさん:2006/08/28(月) 06:16:19
paradoxの
BLOBのテキストデータからも検索したい場合
どのような手法がポピュラーと思われますか?
316デフォルトの名無しさん:2006/08/28(月) 21:06:11
>>292
プロジェクト内検索ってw
チミは規模の大きいシステム開発をしたことないんだね
317デフォルトの名無しさん:2006/08/28(月) 21:13:29
延べ人数300人予算55億円のシステム開発くらいしかしたことないな。
318デフォルトの名無しさん:2006/08/28(月) 22:51:07
小さすぎ
319デフォルトの名無しさん:2006/08/28(月) 22:57:28
>>316
プロジェクト分割しろよwww
    w ∧_∧ w
    ヽ(   )ノ  
.     /  /
    ノ ̄ゝ,,,.,.,,.,.,,,.,.,,.,,,.,.,,.,.,,,.,.,,.,,,.,.,,.,.,,,.,.,,
320デフォルトの名無しさん:2006/08/28(月) 23:34:13
てかBCBでそんな規模の開発すること自体がナンセンス
321デフォルトの名無しさん:2006/08/29(火) 02:33:20
BLOBテキストデータを検索対象にしたい時はどうしますか?
322デフォルトの名無しさん:2006/08/29(火) 15:40:17
エクスプローラからファイル名をDnDで取得するのにDragAcceptFilesの方法は判るのですが、
フォーム上に複数のコントロールがあって、それぞれにDnDしたい場合はどうすればいいのでしょうか?
323デフォルトの名無しさん:2006/08/29(火) 15:43:49
>>322
それぞれのコントロールのウィンドウハンドルで、
DragAcceptFilesすればいいじゃまいか。
324デフォルトの名無しさん:2006/08/29(火) 23:25:43
eclipse覚えたらC++Builderがウンチに思えてきますた
今後のCDTの完成度に期待したい。
325デフォルトの名無しさん:2006/08/30(水) 00:25:36
スクリプトGUIが増えればな〜
エンジン部分の言語とGUIを分離できればいいかもしれん
326322:2006/08/30(水) 13:44:19
>>323
DragAcceptFilesにはFormのHandleを渡さないとダメみたいなんですけど…。
327デフォルトの名無しさん:2006/08/30(水) 14:48:06
そんなことはない
328デフォルトの名無しさん:2006/08/31(木) 02:13:36
>>326
コントロールのウィンドウハンドルを渡すとそのコントロールのウィンドウプロシージャにメッセージが飛んでくるんだぞ?
329デフォルトの名無しさん:2006/08/31(木) 04:03:36
DBGridコンポーネントはViewを表示できないのですか?
330デフォルトの名無しさん:2006/08/31(木) 18:21:56
bcc5.5.1を使ってるんですが、
今、bcc32の5.6.4を入手しようとしたら、どこから入手できますか?
buiderXのpersonalとかいうのは、もう落とせないみたいだし…。
期限付きのトライアルに含まれていたりします?
331330:2006/08/31(木) 18:51:22
すみません、微妙に自己解決しました。

turboC++のフリー版が出るのを待つ方がいいのかも、
という程度ですが…。
332デフォルトの名無しさん:2006/08/31(木) 20:00:09
>>331
すれ違いだ、ボケ
333デフォルトの名無しさん:2006/09/01(金) 09:29:27
Listboxに曲名を表示してそれをダブルクリックすると再生
一曲演奏終了するとListBoxの次の曲を再生という風にしたいのですが

void __fastcall TForm1::MediaPlayer1Notify(TObject *Sender)
{
ListBox1->ItemIndex=ListBox1->ItemIndex+1;
Play();
}
//----------------------------------------------------
void __fastcall TForm1::Play()
{
TIniFile *ini;
ini = new TIniFile(ChangeFileExt(Application->ExeName, ".ini"));
tora=ListBox1->ItemIndex+1;
MediaPlayer1->FileName = ini->ReadString("a",tora,"hoge");

Label2->Caption=MediaPlayer1->FileName;
Label2->Hint=MediaPlayer1->FileName;

MediaPlayer1->FileName=CDirectoryOutline1->Directory+"\\"+MediaPlayer1->FileName;

delete ini;

MediaPlayer1->Close();
MediaPlayer1->Open();
MediaPlayer1->Play();
}


この状態だと最初に何か曲名をダブルクリックしてその曲の演奏が終了したあと次の曲は再生されるのですが、演奏中に別な曲名をダブルクリックするとエラーが帰ってきます。
演奏中に他の曲をダブルクックしたらその曲を演奏して、またその曲の演奏が終了したら次の曲を演奏という風にしたいのですが…どこをどう直せばいいのでしょうか。
詳しい方教えてくださいm(__)m
334デフォルトの名無しさん:2006/09/01(金) 09:38:22
>>333
ファイル名渡す前に演奏停止させれ。
335デフォルトの名無しさん:2006/09/01(金) 23:57:48
BCBは、C++記述で動くDELPHIエミュレーター。
なので、全てが重い。
336デフォルトの名無しさん:2006/09/01(金) 23:59:07
>>335
ワロタ
確かにVCL部分に話を限ればそうだな。
337デフォルトの名無しさん:2006/09/02(土) 00:16:08
すげー勘違いだな。別に何かラップしてるわけじゃないのに。
338デフォルトの名無しさん:2006/09/02(土) 00:17:20
BDSのお試し版でいろいろやってます。
DELPHIで作ったコンポーネントをBCBでも試そうと
思ったんですが、いちいちクラス名変えないとダメなんですかねぇ。
その場はいいんだけど、改めて起動すると既にありますとか
言われちゃうんだけど。
339デフォルトの名無しさん:2006/09/02(土) 00:20:10
>>337
勘違い?
回りくどいことしてるのには変わりないだろ。
340デフォルトの名無しさん:2006/09/02(土) 00:21:58
>>339
回りくどい?何か例あげてみ?
341デフォルトの名無しさん:2006/09/02(土) 00:22:42
>>339
Delphi型クラスとC++クラス両方を扱えるC++コンパイラ。
実行はDelphi/C++ともにネイティブコード。
342339:2006/09/02(土) 00:23:40
>>340
VCL。
頭がよければ、こんだけでわかんだろ。
343デフォルトの名無しさん:2006/09/02(土) 00:24:22
>>341
馬鹿だな。コンパイラの仕事は多くなり、コンパイルは実際遅いが、
それは生成された実行ファイルの速度とは別の話だろ。
344デフォルトの名無しさん:2006/09/02(土) 00:32:43
>>342
VCLがなしたって?VCL自体はDelphiでコンパイルされるが、
だからって、C++からVCLを利用するのに特別遅くなるようなコードは生成されないだろ。

マシン語レベルで見れば、例えば、関数やメソッドの呼び出しなんか、引数のPUSHとCALLだ。
DelphiだろうとC++だろうと、同じようなコードが生成される。
345デフォルトの名無しさん:2006/09/02(土) 00:34:59
コード書く人は楽だけど、コンパイラの手数は増えるってことで、
画面操作とかはpDCとか触ったほうがコードは少なくてすむ。
さらにインラインでレジスタだけ渡せばもっとコンパクトになる。
それをC++記述にしたりVCLに任せるのですら、回りくどいことを
しているという人もいるけど、そんな煩わしさを無視できるからこそ
BCBの良いところだとも思う。原因不明の暴走とかのほうが煩わしい。
今はマシンパワーあるからBCBやDELPHIで充分だとも思う。
346343:2006/09/02(土) 00:37:50
あーごめん。341は340にレスしてると見まちがえた。
341の内容を理由に重いと言ってるのかと思った。すまん。
347345:2006/09/02(土) 00:38:35
>>341
>>343
本当ですか?
なんとなくBCBはDELPHIより遅い気がするのは俺だけ?
特にマルチスレッドとか。吐くコードが明らかに違うような気がするんですが。
348デフォルトの名無しさん:2006/09/02(土) 00:51:41
>>347
>>344で言ってるコードは、VCLの提供する変数や関数へアクセスする際のコードの話。
そして関数の中に入ってしまえば、当然同じコードが走るのでDelphiとC++の差は無い。
(だからVCLがなした?と。)

それ以外の部分は、当然差はあるよ?どちらも得手不得手あるだろうし、
DelphiとC++はどちらが速いかなんて不毛な議論はするつもりはないけれど。
349デフォルトの名無しさん:2006/09/02(土) 01:32:03
>>348
コンパイラ、リンカは双方の差はない。
VCLは全く同じ仕組みということで良いのでしょうか。

ならばC++を使う分には絶対にVC++使いますけどね。
DELPHIもVC++も使えるので、BCB使う理由がないですよね。
350デフォルトの名無しさん:2006/09/02(土) 01:33:03
>>347
馬鹿はすぐになんとなく遅いとか言い出す。
そして測定すると逆の結果だったりする。
あるいは、Builderの方だけ最適化がデフォだったりとかな。
気がするとか無意味で間抜けなこと言っている暇があるなら測定すれ。奴阿呆。
351デフォルトの名無しさん:2006/09/02(土) 01:36:17
>>349
そりゃ別にいいよ。そう思うなら好きにすればいい。
352デフォルトの名無しさん:2006/09/02(土) 02:18:44
ポトペタは急ぎの用事の時重宝
353デフォルトの名無しさん:2006/09/02(土) 11:36:36
その通り。DelとVC++を使いたいならそうしなさい。

自分的にはVCLとSTLの両方が使えるBCB最強。
354デフォルトの名無しさん:2006/09/02(土) 12:42:32
BCBを使ってQtとかwx開発してる人っている?
おれはVCLの変な仕様が気に食わないのでそうしてるんだが。
355デフォルトの名無しさん:2006/09/02(土) 13:52:43
>>349
BCBとVC++ではBCBのほうがVBに近い感覚でポトペタプログラムが作れるから
ずっと楽だよ。
なので客先からVC++を指定されない限りBCBで開発してる。
356デフォルトの名無しさん:2006/09/02(土) 20:12:44
流れぶった切って質問を・・
NMUDPで文字列の送受信を自身に対して行いたいのですが
どうにも受信出来ません。
ヘルプを参考に記述し、SendBufferに関する公式FAQも参照しました。
void __fastcall TForm1::BSendClick(TObject *Sender)
{
 char buff[10];
 strcpy(buff, "hoge");
 NMUDP1->RemoteHost = "127.0.0.1";
 NMUDP1->ReportLevel = Status_Basic;
 NMUDP1->LocalPort = 7743;
 NMUDP1->RemotePort = 7743;
 NMUDP1->SendBuffer(buff, sizeof(buff), strlen(buff)+1);
}
void __fastcall TForm1::NMUDP1DataReceived(TComponent *Sender,
int NumberBytes, AnsiString FromIP, int Port)
{
 char buff[10];
 int i;

 if(NumberBytes <= 10){
  NMUDP1->ReadBuffer(buff, sizeof(buff), i);
  Memo1->Lines->Add(*buff+": received "+IntToStr(i)+" bytes from "
   +FromIP+" on port "+IntToStr(Port));
 }else{
  Memo1->Lines->Add(IntToStr(i)+" bytes incoming, buffer too small");
 }
}

357デフォルトの名無しさん:2006/09/02(土) 20:51:42
>>354
VCLの変な仕様って?
358デフォルトの名無しさん:2006/09/02(土) 20:56:18
人間ってのは、はじめて触れた物が当たり前で、それ以外は変なものと思いこむクセがある。
大人になっていく過程で、世の中の多様性に触れて学習していく。
つまり>>354は、まだまだお子ちゃまってことだ。
359デフォルトの名無しさん:2006/09/02(土) 23:22:47
Personal版は配布などに関して、非営利であることが要件でしたっけ?
360デフォルトの名無しさん:2006/09/03(日) 00:39:12
非営利目的ですごいフリーソフト作って
解説本で収益を得るのはおk?
361356:2006/09/03(日) 03:34:26
自己解決しました。
しかし機能してませんねこのスレ
362デフォルトの名無しさん:2006/09/03(日) 04:36:52
全部俺一人のせい
363デフォルトの名無しさん:2006/09/03(日) 08:22:29
DBGridコンポーネントで論理型をフィールドとして表示する場合、
True/Falseで表示されるわけですが、
これをカスタマイズして例えばTrueなら"True"という文字列ではなく、
代わりに"○"を表示したい場合どうすれば良いですか?
364デフォルトの名無しさん:2006/09/03(日) 13:26:49
>>361
機能していないのではない。
君自身のせいだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
それと自己解決したら、どうやって解決したかを書くのが礼儀だ。
君は、スレ違いの上に、ただのクレクレ君だ。
もう少し自分自身を顧みなさい。
365356:2006/09/03(日) 13:28:14
くだらねー質問スレでしょ?
むしろ雑談してる奴がスレタイ嫁って感じだ
366デフォルトの名無しさん:2006/09/03(日) 13:46:59
夏休みは終わったのに>>356みたいな馬鹿が湧いているようですね。
>356 名前:デフォルトの名無しさん 投稿日:2006/09/02(土) 20:12:44
>361 名前:356 投稿日:2006/09/03(日) 03:34:26
質問した時間帯とか考えれば、レスが付かないのは不思議ではありませんねぇ。
ここは>>356専用のなんでも相談室ではありませんよ。
367デフォルトの名無しさん:2006/09/03(日) 16:00:07
質問するくらいならプログラムなんてやめちまえ!
368デフォルトの名無しさん:2006/09/03(日) 17:25:22
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
369356:2006/09/03(日) 17:26:28
Delphiくだスレのほうが圧倒的に雰囲気いいですね^^;;;;;;
370363:2006/09/03(日) 19:14:17
それで…その…教えて下さいませんか?
371デフォルトの名無しさん:2006/09/03(日) 19:16:05
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
372デフォルトの名無しさん:2006/09/03(日) 22:08:43
勇気を持って書き込んだのに酷い><
373デフォルトの名無しさん:2006/09/03(日) 23:34:49
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
374デフォルトの名無しさん:2006/09/04(月) 00:15:56
TTable、TQueryに計算フィールドを作り、
論理型フィールドの状態によってOnCalcFields内で○か×を文字として代入。
375デフォルトの名無しさん:2006/09/04(月) 00:30:47
Shift+Del の検知法が分かりません><

あとTShiftStateの扱いもちんぷんかんぷんです。

解説お願いします。
376デフォルトの名無しさん:2006/09/04(月) 06:55:37
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
377デフォルトの名無しさん:2006/09/04(月) 07:49:33
勇気を持って書き込んだのに酷い><
378デフォルトの名無しさん:2006/09/04(月) 08:05:57
if (Key == VK_DELETE)
if (Shift.Contains(ssShift))
ShowMessage("Shift+Delete");
379デフォルトの名無しさん:2006/09/04(月) 08:13:59
>>378
あり^^
380デフォルトの名無しさん:2006/09/04(月) 09:13:20
Osiri->Koumon->Unko->Sizeを
AAA->SizeというようにUnkoまでをAAAに置き換えて
省略する方法があったような気がしますが忘れてしまいました。
どなたか教えていただけないでしょうか?
ソースが横に長くなりすぎて辛いです。
381デフォルトの名無しさん:2006/09/04(月) 09:16:04
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
382デフォルトの名無しさん:2006/09/04(月) 09:21:56
>>381
申し訳ないです。C++の質問スレッドを探します。
Builderユーザーなのですが基本からやり直そうと思います(つд`)
383デフォルトの名無しさん:2006/09/04(月) 09:29:08
単に一時変数に代入するだけだろ。
Unko_Type *unko = Osiri->Koumon->Unko;

荒らしてる356とその騙りは無視しとけ。
384デフォルトの名無しさん:2006/09/04(月) 10:21:39
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
385デフォルトの名無しさん:2006/09/04(月) 10:22:21
勇気を持って書き込んだのに酷い><
386デフォルトの名無しさん:2006/09/04(月) 10:26:00
>>383
スレ違いに答えてんじゃねーよ帰れ
387デフォルトの名無しさん:2006/09/04(月) 11:09:58
つまんねって。
388デフォルトの名無しさん:2006/09/04(月) 11:39:50
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
389デフォルトの名無しさん:2006/09/04(月) 14:27:58
このスレって超初心者用だからポインタ禁止。
new deleteも禁止。
データベース禁止。
390デフォルトの名無しさん:2006/09/04(月) 14:32:17
オーバライドもオーバーロードも禁止。

newできなかったらTStringListが使えないと言う場合は
TMemo->Lines推薦。TMemoポトペタVisible=falseでよろしく。
391デフォルトの名無しさん:2006/09/04(月) 14:34:57
質問させてください。

下の様なプロジェクトがあり、
Project1.Unit1からProject2.Unit2を呼び出す場合(.Show)、どの様なコードを書けばよいのでしょうか?

#include "Unit3.h"をしただけでは「未解決の外部参照'_Form2'がC:\\~~から参照されました。」とエラーが出てしまいます。

ProjectGroup1
+-Project1.exe
|├Project1.cpp
|├Project1.res
|+-Unit1.cpp
|├Unit1.cpp
|├Unit1.dfm
|└Unit1.h
+-Project2.exe
├Project2.cpp
├Project2.res
+-Unit2.cpp
├Unit2.cpp
├Unit2.dfm
└Unit2.h
392デフォルトの名無しさん:2006/09/04(月) 14:58:54
超初心者相手なので簡単に言ってしまうとできない。
超初心者には無理。

別の高度なスレで質問すれば可能になる。
ヒント:プロセス。フック。メッセージ。
393391:2006/09/04(月) 15:10:03
>>392
http://www2.big.or.jp/~osamu/Delphi/builder-browse.cgi?index=017979
頂いたヒントに沿うものが、上記ulrにも書いてありました・・・。
他のところで聞いて見ます。
ありがとうございました。
394333:2006/09/04(月) 18:15:47
>>334
なんとか解決できました。ありがとうございました。
395デフォルトの名無しさん:2006/09/04(月) 19:37:29
>>374
DBGrid->Columnsでフォントカラーを背景と同じ色にして文字を特大にして、
さらにTrueの場合はDBGridのOnDrawColumnCellイベントで
ハンドラとしてColumn->CanvasにTextRectで描きたいマークを上塗りする事により解決しました。
その際、フォントとキャラセットを正しく設定しないとマルチバイト文字は化けてしまう事が分かりました。

以上報告まで。

ありがとうございました。
396デフォルトの名無しさん:2006/09/04(月) 19:38:45
>>385
俺の真似しないで下さい><
397デフォルトの名無しさん:2006/09/04(月) 20:14:02
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
398デフォルトの名無しさん:2006/09/04(月) 20:19:09
弁護士が社会に必要な事がよくわかる。
法規があっても、それが解釈の余地があるなら、
弁護人によっていかようにも解釈できてしまうからだ。
399デフォルトの名無しさん:2006/09/05(火) 11:13:39
TChartについての質問はここでも大丈夫かな・・・

TCartをフォームに配置して、適当な棒グラフを追加。
次にTChartコンポーネント上にTButtonを配置

それで実行したらTChart上でマウスホイールをぐるぐる回すと回した方向に棒グラフが上下するんです。
TChartコンポーネントの上にボタンをおかなければ起きなかったんですが、
何か知ってる方いませんか?
400399:2006/09/05(火) 11:16:35
すみません、環境忘れていました。
BDS2006なのでBCB10、TChartはPro7.07

TComboboxでも動きました。
TLabelやTpanelでは動きません。
401デフォルトの名無しさん:2006/09/05(火) 12:07:50
自分や子にフォーカスがあると、WM_MOUSEWHEELに反応して
スクロールするようだけど。
402399:2006/09/05(火) 13:41:29
スクロールさせたくないのです。
自分か子にフォーカスがある場合、スクロール無効な処理をいれれば解決しそうですが・・・?
403デフォルトの名無しさん:2006/09/05(火) 13:53:43
フォーカスもらわない SpeedButton するといいのでは
404デフォルトの名無しさん:2006/09/05(火) 15:05:17
BCB6のOpenDialogについて質問します。
OpenDialogで一度に取得できるファイルの数に制限があるのでしょうか
OpenDialog->Files->Countが1540にしかなりません。

また、コンポーネントの制限に関する記述はヘルプのどこを見れば出てきますか
BCB4では"制限""TMemo"といったキーワードで出てきたと思うのですが。

どうかよろしくお願いします。
405デフォルトの名無しさん:2006/09/05(火) 15:45:51
OS による制限

MSDN GetOpenFileName Function より

Note, when selecting multiple files, the total character limit
for the file names depends on the operating system and the
version of the function.


Windows 95/98/Me: (only ANSI is supported) no restriction
Microsoft Windows NT4 and earlier: 32k limit
Windows 2000/XP: (ANSI) 32k limit, (Unicode) no restriction


いまどきなら

Windows 2000/XP: (ANSI) 32k limit

これにひっかかりそう
406デフォルトの名無しさん:2006/09/05(火) 16:10:49
VCLのソースコードを見ると、OPENFILENAME構造体のnMaxFileメンバが
MultiSelectBufferSize = High(Word) - 16;
...
...
nMaxFile := MultiSelectBufferSize else
と書かれているので、この辺りに上限があるのでは?
407404:2006/09/05(火) 16:25:26
>>405,406
早速ありがとうございます。
StringListの32kB制限って、OSから来ていたんですか! 知りませんでした。
となればOpenDialog->Filesがその影響下にあるので、当然そのような制限があるということですね。
ありがとうございました。

ヘルプにはその辺の理由は無くとも、制限が如何程のものか明示して欲しいところだと思いました。

日本語と併せて勉強してきます。
408デフォルトの名無しさん:2006/09/05(火) 16:27:15
DelphiとかBuilderのMLって死んだの?
409デフォルトの名無しさん:2006/09/05(火) 17:40:42
>>402
TApplication::OnMessageで、WM_MOUSEWHEELを監視して、
Chart1に来たらHandled=trueにすればいい。
410デフォルトの名無しさん:2006/09/06(水) 00:02:05
イベントハンドラのSenderってTObjectで宣言されてますが
あれって要するに、C++のポリモーフィズムによって
いかようにも(その子孫達に)化けて渡せるって事ですか?
411デフォルトの名無しさん:2006/09/06(水) 01:28:06
そのとおり
412410:2006/09/06(水) 02:32:30
また電波かって言われると思ってた
久しぶりに勘が当たりました
あり^^
413デフォルトの名無しさん:2006/09/06(水) 09:47:52
やるじゃん
414399:2006/09/06(水) 14:11:43
>>409
言われたとおり、ApplicationEvents1Message内に以下を書いたのですが、
Chartの上に配置したボタンにフォーカスがあるとうまくいきません。
GetClassNameはフォーカスのあるコントロール名が返ってくるようなので、
Chartから見た「子」全て識別する必要があるのでしょうか・・・?

AnsiString w_char = "";
char w_ccc[100];

if (Msg.message == WM_MOUSEWHEEL) {
GetClassName(Msg.hwnd,w_ccc,100);
for (int i = 0; i <= 99; i++) {
w_char = w_char + w_ccc[i];
}

this->Caption = w_char;

if (w_char == "TChart"){
this->Caption = "チャートキター";
Handled = true;
}
}
415デフォルトの名無しさん:2006/09/06(水) 17:18:59
>>414
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled)
{
  if (Msg.message == WM_MOUSEWHEEL && Msg.hwnd == Chart1->Handle)
    Handled = true;
}
416399:2006/09/06(水) 17:58:40
>>415
ありがとうございます。
超スマートになりました・・・。
しかし、チャートはフォーカスを持つ事がない様なので一生走りそうにありません。
Msg.hwndにはTChartの子コントロールとなっているボタンのハンドルが入ってきます。
子コントロール全てを対象にする方法は、
「指定のスレッドに関連する子ウィンドウをリストアップする」
WindowsAPIのEnumChildWindowsで、TChartを指定して〜というかんじだと思うのですが、
EnumChildWindowsのコールバックというのが意味不明です。
わかりやすく言うとどういうことですか?
417デフォルトの名無しさん:2006/09/06(水) 18:44:14
>>416
if (Msg.message == WM_MOUSEWHEEL) {
  HWND hwnd = Msg.hwnd;

  do {
    if (hwnd == Chart1->Handle)
      Handled = true;

  } while ((hwnd = GetParent(hwnd)) != NULL);
}

子→親と辿った方が楽。
418デフォルトの名無しさん:2006/09/06(水) 20:14:10
Turbo C++入れてみたんですけど
VCLフォームアプリケーションとSDI・MDIフォームアプリケーションの違いって何ですか?
419デフォルトの名無しさん:2006/09/06(水) 21:27:04
SDIとMDIはそれぞれコンポーネント配置済みの定型フォームが作成されるだけ。
VCLフォームに全部自分でポトペタ、プロパティ設定すれば何の違いもない。
420デフォルトの名無しさん:2006/09/06(水) 22:03:35
ひょんなことからDELPHI5からBDS2006に変えたのですが、
昔のようにブ厚いマニュアルが付いてないし、ヘルプは大雑把だし、
ネットで見てもユーザーが少なくて参考にならない等、苦労してます。

試行錯誤でいろいろ自力で解決しましたが、いまだに解らないのか、
イメージエディタってやっぱり昔のをコピろってことなんでしょうか?
まぁ、ファイル3つ移植するだけで済むんですけどね。
421420:2006/09/06(水) 22:09:24
あと、起動までにイライラするのはやっぱし我慢あるのみ?
アドビが可愛く見えるっす。
422デフォルトの名無しさん:2006/09/06(水) 22:55:10
苦労してください。
423Delフサギコ ◆A6VzDeLphI :2006/09/06(水) 23:17:18
          _________
   ∧,,∧   / >>420
  ミ,,゚Д゚彡<  XN Resource Editor
   ミ つ□)  \ 
 〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪

424デフォルトの名無しさん:2006/09/07(木) 00:19:18
BDS2006を買って思いました










BCB6使いやすすぎ
425デフォルトの名無しさん:2006/09/07(木) 01:14:33
>>420
分厚いマニュアルは、リアル紙では付属していないけど、
ちゃんとヘルプの中に入っている。
426デフォルトの名無しさん:2006/09/07(木) 02:05:30
>>425
SP1とSP2の中にな。
しかも、紙をペラペラめくる感覚でいかんだろ。
427420:2006/09/07(木) 02:31:29
>>422
お返事ありがとうございます。
苦労したおかげで、今では充分に理解していますよ。
リソースなんていくらでも編集する手段ありますし。
ただ、製品としてツールがあるのかどうかが知りたかっただけ
なんですけどね。マニュアル嫁とでも?

>>425
DELPHI(WIN32)部分じゃ全く苦労してないです。
ずっと5を駆使してきたから。
初めて使ったとして、あのあらずじしか書いてないヘルプじゃ
いきなり理解できないですよね。
関数やらを調べるのにしてもF1とかCTRLで使うとしても、
英文でしかもサンプルの無いページに飛ばされるわけですよ。
(それでも拙い読解力で頑張って読んでますけどね)
まぁ、5の分厚い日本語マニュアルでもワケがわかなかったけど...。
428デフォルトの名無しさん:2006/09/07(木) 05:49:46
>427
同感です。

「Delphi6 プログラミングバイブル」という良本があるが、
これを商品に標準で付ければ、開発ツールとしての価値は
断然上がると思う。

Turboシリーズの日本語化の際には、ぜひ考えてほしい。
商品価格は上がってもいいから。 >ボー様
429デフォルトの名無しさん:2006/09/07(木) 08:55:59
反対。毎回付けるのは無駄。その分、価格が上がるのは許せない。
本屋で買うかどうか決められる方がいい。
430デフォルトの名無しさん:2006/09/07(木) 09:23:34
ヒント:標準添付なら著者が儲かる
431デフォルトの名無しさん:2006/09/07(木) 09:40:29
ヒント:ドキュメント不足を本がないことのせいにするな
432デフォルトの名無しさん:2006/09/07(木) 13:52:21
TWebBrowserについて質問

表示したサイトに付いているボタン押下判定がしたいのですが、
TApplicationEventsを使って出来ますか?


WebBrowser1->Navigate("http://www.google.co.jp")
で、Googleの検索ボタンを押した!というのをフックしたいの。
TWebBrowserで表示したサイト内のコントロール全てが子ウィンドなんてことはないでしょうか
433デフォルトの名無しさん:2006/09/07(木) 14:37:54
WebBrowser内のコントロール(エレメント)は、ウィンドウじゃないので、
コントロールのメッセージの監視というのは無理。
434デフォルトの名無しさん:2006/09/07(木) 14:45:32
>>432
TApplicationEventsでは無理。
DOM使うのがノーマルなやり方だろな。
435デフォルトの名無しさん:2006/09/07(木) 14:53:25
>>433,434
無理ですか
DOOM?(´・ω・`)

DOMについて調べてみます。
ありがとうございました。
436デフォルトの名無しさん:2006/09/07(木) 18:33:15
TEditからテキストエディタ(メモ帳等)に値をドラッグ可能にしたいのですが、
TEditのOnDragOverイベントを使うのでしょうか?
437デフォルトの名無しさん:2006/09/07(木) 20:07:49
>>435
具体的にはIHTMLDocument2インタフェース
JavascriptでHTMLドキュメント内の要素を自在に操作できるスキルあるなら簡単。
438デフォルトの名無しさん:2006/09/07(木) 22:51:50
>>431
クソドキュメントのせいじゃないとしたら、
普及してないせいだね。
439デフォルトの名無しさん:2006/09/07(木) 22:56:29
昔、DLLやパッケージで何を配布すればよいのかを、
試すだけでも半日掛かった。
まさか、マニュアルに書いてあるとでも?
440デフォルトの名無しさん:2006/09/07(木) 23:13:18
そんな簡単なことは書いてないだろ
441デフォルトの名無しさん:2006/09/07(木) 23:21:38
>>439
なになにが足りませんとか言われるからそれを持ってくるだけですよ。

>>440
口ばかり達者なのはミエミエだから黙ってろ。
442デフォルトの名無しさん:2006/09/07(木) 23:25:00
超初心者用スレなので。
443デフォルトの名無しさん:2006/09/08(金) 00:12:55
>>439=441はBCBの初心者なのはまぁスレ的にいいとしても
自演の初心者なのが痛々しくて、そっちはどうにも見てらんない。
444デフォルトの名無しさん:2006/09/08(金) 02:33:32
BCBには、DelphiのProfessional版以上についてくる、
ショートカットキーのCtrl + Shift + Cによるクラスのコード補完みたいなのはないんでしょうか?
445デフォルトの名無しさん:2006/09/08(金) 03:06:09
ある
446デフォルトの名無しさん:2006/09/08(金) 03:30:31
>>445
すみません、質問が悪かったです。
そのショートカットキーを教えて下さいorz
447デフォルトの名無しさん:2006/09/08(金) 04:09:47
>>446
キーはない。
しばらく待つだけ。

設定はツール→エディタプロパティ→支援機能
448デフォルトの名無しさん:2006/09/08(金) 06:03:24
>>447
うそ書いたらあかんね。
キーはある。
449デフォルトの名無しさん:2006/09/08(金) 11:19:10
作ったdllを静的リンクさせる方法を教えてください。
ダイナミックリンクライブラリプロジェクトをつくり、1つ適当な関数
extern "C" __declspec(dllexport) int hogehoge()
{
return 666;
}
をつくり、メイクを実行してdll,libが出来ました。
次にVCLフォームアプリケーションプロジェクトをつくり、
先ほどつくったlibファイルを追加したのですが、hogehoge関数が呼び出せません。
何が足りないのでしょうか・・・。
450デフォルトの名無しさん:2006/09/08(金) 13:37:29
>>449
呼び出し側でそのhogehogeを宣言してあるか?
451449:2006/09/08(金) 13:42:52
xxx.hに以下のようにかいてあります
extern "C" __declspec(dllimport) int __stdcall hogehoge();

場所は「extern PACKAGE TForm2 *Form2;」の下です。
こうではないですか?
452デフォルトの名無しさん:2006/09/08(金) 17:26:01
>>451
それでいいはず。
tpりあえずエラーメッセージ晒してみ?
453デフォルトの名無しさん:2006/09/08(金) 17:26:40
っとヘッダのほうもexport
454449:2006/09/08(金) 17:52:48
>>452
__declspec(dllexport)へ変えました。
が、以下のエラーがやはり出ます。
↓出ているエラー
[リンカ エラー] Error: 未解決の外部参照 'hogehoge()' が C:\BORLAND STUDIO PROJECTS\テストDLLPJ\DEBUG_BUILD\TESTPJ.OBJ から参照されました

しかし、__stdcall を消したら実行できました・・・。
ヘルプを引いてみると、
↓↓
_stdcall と __stdcall キーワードを使うと,コンパイラは標準の呼び出し規約を使って関数呼び出しを生成します。ただし,C とは違って,関数は正しい数と型の引数を渡さなければなりません。通常,C では関数の引数の数が可変でもかまいません。
このような関数は,WIN32 の引数渡しの標準規則に従います。
↑↑
と書いてありますが、さっぱりわかりません・・・。
どなたか簡単に解説していただければ幸いです。
とりあえずありがとうございました。
455449:2006/09/08(金) 18:22:10
違う問題が出てきたので質問します。
引数が無いhogehoge関数は正常に値が帰ってくるのですが、
新たに以下の様な関数をDLLに追加しました。
>>DLL
extern "C" __declspec(dllexport) int ShowMessageExclamationYesNo(char msg,char caption)
{
char w_msg = w_msg;
char w_caption = caption;
int w_flags = MB_ICONEXCLAMATION | MB_YESNO;
int w_int;

w_int = Application->MessageBox(PChar(w_msg),PChar(w_caption),w_flags);
return w_int;
}
これをDLLを呼んでいるtestpj.hに
extern "C" __declspec(dllexport) int ShowMessageExclamationYesNo(char msg,char caption);
でプロトタイプ宣言?し、testpj.cppのbutton2clickイベントで呼ばせる様、以下のようにコーディングしたのですが・・・
void __fastcall TForm2::Button2Click(TObject *Sender)
{
char ww_msg[5] = {'1','5','3','6','9'};
char ww_caption[6] = {'a','b','c','d','e','f'};

ShowMessageExclamationYesNo(ww_msg,ww_caption);
}
コンパイルは通り、いざボタン2を押すと
「モジュール'USER32.dll'のアドレス77D0204Fでアドレス00000010に対する読み込み違反がおきました。」
と、エラーが出てしまいます。
何がおかしいのでしょうか?
456デフォルトの名無しさん:2006/09/08(金) 18:30:41
とりあえず引数の型がめちゃくちゃだな
457デフォルトの名無しさん:2006/09/08(金) 20:32:44
よくコンパイルが通ったもんだ。

ついでにDLLからexe側のオブジェクト呼び出しってできたっけ・・
458デフォルトの名無しさん:2006/09/08(金) 21:33:51
できない。
459デフォルトの名無しさん:2006/09/08(金) 21:39:43
>>440=443
正解ですな。
でも442も同じヤシなのは見抜けなかったというか、
手のひらの上で踊らされてますね。
460デフォルトの名無しさん:2006/09/08(金) 22:09:16
ということにしたいのですね。
442なんてどうでもいいレスじゃん。
461デフォルトの名無しさん:2006/09/08(金) 22:27:18
今C環境に移行させようと、今まで作ってきたものをDELPHIから
Cに移植してます。
ハードウェアの制御をスレッド作って裏でやらせてるんですが、
コントロールでHintを表示させると一瞬スレッドが停止しているように
見えます。
DELPHIでは今までそんなことは起きてませんでした。
ハードのほうは特に問題なく動いてるんですが、信頼性の面で心配です。
これはメインフォームでの見かけ上の問題なのでしょうか、
それとも本当に止まってしまっているんでしょうか。

同じような経験をされた方はいらっしゃいますでしょうか?
462460:2006/09/08(金) 22:31:03
そんなことどうでもいいじゃん。
初心者相手にしてたら本当に疲れるよな。
死ねばいいのに。
463デフォルトの名無しさん:2006/09/08(金) 22:37:21
何で俺を騙ってんだろこのバカw
464デフォルトの名無しさん:2006/09/08(金) 22:41:43
>>Hintを表示させると...
一瞬固まることがあります。
ちょっと手間は掛かるけど、ラベルなどで代用したらどうでしょう。
普段はVisible=falseにしといて、イベントかマウス座標で、trueにするとか。
もっと簡単な方法はあるかもしれませんが。
465デフォルトの名無しさん:2006/09/08(金) 22:56:17
>>461
多分、「いわゆるメインフォーム」の見掛け上の問題かと。
今試したら、スレッドの無限ループ数をカウントしてメインに
表示させたらガクンと数字が上がったので。
そもそも俺はハード使うんだったらNT系のWINはおすすめしませんけど。
466デフォルトの名無しさん:2006/09/08(金) 23:11:03
>>460
>>463
もうバカは放っておけやw
バカ相手だと疲れるだからすルーしとけやw
ここは超初心者がくるようなところじゃないんだからw
467デフォルトの名無しさん:2006/09/09(土) 06:08:00
Turbo C++を入れてみたが、、、Rave Reportsの日本語解説書って
無いのかな。前世代のQuick Reportまではヘルプも日本語だったのに・・・
468デフォルトの名無しさん:2006/09/09(土) 08:40:52
冷静になってみるとリポートツールなんて不要だよね
469デフォルトの名無しさん:2006/09/09(土) 11:42:05
>>468
ビジネス向けの出力はどうしてんの?
470デフォルトの名無しさん:2006/09/09(土) 11:52:42
>>469
すまんが「ビジネス向けの出力」の定義が分からん
471デフォルトの名無しさん:2006/09/09(土) 12:13:01
>>470
HISAGOの帳票に出力するときとか。
472デフォルトの名無しさん:2006/09/09(土) 12:26:12
>>471
QReportなどはドットインパクトプリンタ対応してるから楽ってこと?
473デフォルトの名無しさん:2006/09/09(土) 18:08:41
>>468
>>470
明細票など帳票の類なんだけど。

まさかWin32 APIのGDI、DCでもって描画するなんて(ry
474デフォルトの名無しさん:2006/09/09(土) 18:13:34
ビジネス系のC++開発で某の出る幕ってあるのか?
475デフォルトの名無しさん:2006/09/09(土) 18:56:45
>>473
MS-DOSみたいにプリンタに直接コマンド送りたいってこと?
はっきりしりねーな
476デフォルトの名無しさん:2006/09/09(土) 22:10:53
>473
普通は自前でこの辺をライブラリ化しておくだろ、ってことでは。
うちではコンポーネントにしてる。DBものをやらないんで
QuickReportとかRaveみたいに凝った機能が必要ないってこともあるけど。
477デフォルトの名無しさん:2006/09/10(日) 03:03:05
帳票に反応ですが、
みんな送り状の印刷どうしてます?
まさか手書き?
例えばドットプリンタって、まだ普及してるのかな?
478デフォルトの名無しさん:2006/09/10(日) 04:47:37
PrintTool32はもう無いもんなぁ。
479デフォルトの名無しさん:2006/09/10(日) 06:26:35
送り状の印刷をプログラム組んでやっている馬鹿はいないだろ。
480デフォルトの名無しさん:2006/09/10(日) 09:55:05
>>477
まだドットプリンタの需要はあるよ。
スーパーなどへの納品伝票などは複写紙伝票だったりするしね。
EOS化で昔ほどの印刷量ではないけど。
481デフォルトの名無しさん:2006/09/10(日) 12:02:32
つまらない質問で申し訳ないのですが、C++Builder と Turbo C++ って、どう違うんでしょう?
482デフォルトの名無しさん:2006/09/10(日) 12:03:58
Turbo C++ とは、BDS 2006 Professionalの
C++Builderとほぼ同等の機能を持つBorland(DevCo)の新ブランド


Borlandの説明サイト
http://bdn.borland.com/ja/article/33666
Turboのブランド復活
http://www.itmedia.co.jp/enterprise/articles/0608/08/news056.html

Turbo Explorerは、Webサイトからダウンロードして入手のほか、
雑誌や書籍等の付録CD-ROMとしても提供する計画とか。
Turbo Professionalは、9月19日より出荷を開始予定。

http://www.turboexplorer.com/jp/
http://www.borland.com/downloads/download_turbo.html
483デフォルトの名無しさん:2006/09/10(日) 13:08:25
>>482
新ブランドではなかったな orz 復活したんだから・・
新製品というべきだった
484デフォルトの名無しさん:2006/09/10(日) 15:37:54
485デフォルトの名無しさん:2006/09/10(日) 16:20:05
486デフォルトの名無しさん:2006/09/10(日) 17:11:00
>>479
昔の国民機などでやってたものをXPで使いたいときなんか困るよって話。
データベースからの帳票印刷をしたい時に、インターフェース部分を
自分で作らなきゃならないんだけど、メーカーが潰れてて資料が無かったりする。
新しいの買えと言われればそれまでの話です。
487デフォルトの名無しさん:2006/09/10(日) 17:26:37
送り状だろうがなんだろうがTPrinter使えば印刷できるわけだが。
国民機の出力と完全に同じ汁!というおバカな要望でもない限り。
488デフォルトの名無しさん:2006/09/10(日) 18:21:13
>>487
自分で出す分には妥協すればいい話だが、
企業にはとんでもないアホ上司も居るわけだw
489デフォルトの名無しさん:2006/09/10(日) 21:38:21
イミフメ。TPrinter でできないことないよ。
490デフォルトの名無しさん:2006/09/10(日) 22:14:32
>489
まぁ確かにTPrinterでできない(けれどもほかの方法ではできるような)ことは
ないけど、PC-98時代のラインプリント主体の制御方法のままでの印刷ってのは
それなりに面倒なところがあるからね。
491デフォルトの名無しさん:2006/09/10(日) 23:53:48
>>487
>>488
だんだんスレ違いになってきたのでこれ以上はやめときます。
プログラマとして皆さんどうしてるんだろうという、
素朴な疑問だったんですが、自分の今の環境がBCBなんで、
参考になるかなと思った次第です。しかも辞めた人のお下がり。
指摘されるまでもなく同感なんですよ。
簡単におっしゃるが、凄く根っこが深いんでね。
使用者(おっさん&おばちゃん)とか、インフラ全体とか全て
考えなければならなくて、どうしたものか。
それを含めて上からGOサインが出れば苦労しないんですよ。
TPrinterいいなぁ、ブツブツ...
492デフォルトの名無しさん:2006/09/11(月) 01:44:37
結局、愚痴言いたかっただけか
493デフォルトの名無しさん:2006/09/11(月) 01:55:58
先日、C++Builder6を購入しました。
初心者にでもわかりやすい説明サイトを紹介していただけないでしょうか?
494デフォルトの名無しさん:2006/09/11(月) 02:24:25
無知って恐いね。>493
http://www.turboexplorer.com/jp/
495デフォルトの名無しさん:2006/09/11(月) 06:30:59
>>492
まぁ、あなたに理解できるのはそのパートだけだったということでw
496デフォルトの名無しさん:2006/09/11(月) 06:51:26
先日、C++Builder4を購入しました。
初心者にでもわかりやすい説明サイトを紹介していただけないでしょうか?
497デフォルトの名無しさん:2006/09/11(月) 12:13:42
ネタはネタすれでやれ
498デフォルトの名無しさん:2006/09/11(月) 12:23:12
単位をMM_TWIPSにすれば国民機の
1/6インチ改行(だっけ?)とかにも対応できる品
499デフォルトの名無しさん:2006/09/11(月) 13:43:52
8年前、C++Builderを購入しました。
初心者にでもわかりやすい説明サイトを紹介していただけないでしょうか?
500デフォルトの名無しさん:2006/09/11(月) 23:14:46
音量の調整をするためには何からいじればいいんでしょうか。
tmediaplayerには音量を調整するような所は無いのでしょうか。
501デフォルトの名無しさん:2006/09/11(月) 23:33:07
502274:2006/09/13(水) 12:56:29
以前、VCかC++Builderかで質問させてもらった者です。
その節はお世話になりました。

取り合えず、
C++Builder Personal
C++Builder6コンポーネント活用ガイド&実践プログラミング (Vol.1)
C++Builder6 コンポーネント活用ガイド&実践プログラミング(Vol.2)
を買って、勉強中です。

そこで、質問があるのですが、
文字のバイト数を気にせずにプログラミング出来るように、文字列に WideString を用いている
のですが、実行速度が目茶苦茶遅いのです。
試しに同じ物をVBで作ると半分以下の速度で実行出来ます。

やはり、WideString なんて使っては駄目なのですか?
速度を優先するなら、やはり文字は Char型 で扱うべきなのでしょうか?
503デフォルトの名無しさん:2006/09/13(水) 13:11:25
WideStringで何をしようとしているのかくらい書けよ

それはともかく、WideStringは、参照カウントを持たず、
コピーすると実体を必ず複製するので、WideStringでの代入をしまくるとそりゃ遅い。
ちなみにAnsiStringは、参照カウントを持っている。
504デフォルトの名無しさん:2006/09/13(水) 13:43:29
とあるコントロールのKeyDownイベントで
Key == "C"
↑と書いたらコンパイルで「'unsigned short' 型は 'char *' 型に変換できない」といわれ
Key == 'C'
↑と書いたらコンパイルが通りました。
"と'の違いを教えてください。
505デフォルトの名無しさん:2006/09/13(水) 13:48:41
"XXX" ・・・ 文字列の先頭ポインタ

'X'・・・文字の値
506デフォルトの名無しさん:2006/09/13(水) 13:49:41
"n"は文字列
'n'は文字
507500:2006/09/13(水) 13:52:26
>>501
ありがとうございます。m(__)m
ググってもなかなか分からなかったので助かりました。
508デフォルトの名無しさん:2006/09/13(水) 14:01:08
>>503
> WideStringで何をしようとしているのかくらい書けよ

どうも失礼しました。
今は、お勉強中で何を作るというのも無いのですが、

試しに、TMemo オブジェクトMemo1にかなり長い文章貼り付け、その文字列をWideString型の変数T1
に代入し、T1から一文字ずつ取り出し、「文字コードに変換し、それをまた、文字に変換し」、
WideString型の変数T2に代入して行き、最後に、T2をMemo2に表示するという単純なものです。

Memo2->Text  =  Memo1->Text;

では、あまりにも味気ないので、VBとの速さを試す為に作ったのですが遅さに愕然としました。
509504:2006/09/13(水) 14:18:25
>>505-506
ありがとうございます。
IF文で文字列を判定する場合は'xxx'でいいと思いますが、
""はどういった時に使うものなのですか?
510デフォルトの名無しさん:2006/09/13(水) 15:29:43
>IF文で文字列を判定する場合は'xxx'でいいと思いますが

?
511デフォルトの名無しさん:2006/09/13(水) 15:44:53
>>509
おまいさんは根本的にC言語から勉強し直せ
BCBを使うどころではない。
512デフォルトの名無しさん:2006/09/13(水) 17:34:04
>>509
Pascalと勘違いしてない?
'xxx'とはかけないはず
513504:2006/09/13(水) 17:59:12
あれ!?(・ω・;)
Cもあまり判っていません・・。
*はポインタ
&はポインタの値
WORD &Key
'a' == Key
値 == ?!?!?!?
どういうことですか
514デフォルトの名無しさん:2006/09/13(水) 19:26:28
>Cもあまり判っていません・・。
うん、それはわざわざ言わなくても解るよ。w

>どういうことですか
何が言いたいのやらさっぱりだw
515デフォルトの名無しさん:2006/09/13(水) 20:58:50
>>513
その辺がわからんかったらしんどいよ
やはり基本はきちんと勉強せんと
516デフォルトの名無しさん:2006/09/13(水) 22:57:59
>504氏
'X'は文字リテラル サイズは1バイト
"X"文字列リテラル 文字列リテラルの末尾には自動的に'\0'が
挿入されるのでサイズは2バイト

注意が必要なのはこれらが式の中に現れた場合。
文字リテラルはそのまま文字として評価されるが、
文字列リテラルはその先頭文字へのポインタとして評価される。

char chr = 'X'; //chrの値は'X'
const char* ptr = "X" //ptrの値は"X"の先頭アドレス

んで、

if ( chr == 'X' ) ... ; // true
if ( ptr == 'X' ) ... ; // 文字とポインタの比較 不可
if ( ptr == "X" ) ... ; // ポインタ同士の比較なのでコンパイルエラーにはならない
             // しかしtrueとなることは保証されていない
517デフォルトの名無しさん:2006/09/13(水) 22:59:00
<つづき>

最後の例が引っかかりやすいところ。

const char* ptr1 = "X";
const char* ptr2 = "X";

ptr1とptr2が同値となる(同じアドレスが格納されている)かどうかは
仕様上は保証されていない
コンパイラの仕事次第で同値のときもあればそうでないときもある

まぁ、この辺の話が良くわからなかったらきちんとしたC/C++の入門書を読んで
勉強したほうがいい。ネットで断片的な情報を集めるだけだと中々きちんとした
理解には到達できないよ。
518デフォルトの名無しさん:2006/09/14(木) 01:44:27
if ("abc" == "abc")
printf("true");
else
printf("false");
519デフォルトの名無しさん:2006/09/14(木) 01:46:46
char a[] = "abc";
char b[] = "abc";
if(a == b)
printf("true");
else
printf("false");
520デフォルトの名無しさん:2006/09/14(木) 01:48:00
char *a = "abc";
char *b = "abc";
if(a == b)
printf("true");
else
printf("false");
521デフォルトの名無しさん:2006/09/14(木) 01:48:59
>>518 true
>>519 false
>>520 true

これはどのコンパイラ実装でも保証されますか?
522デフォルトの名無しさん:2006/09/14(木) 01:56:51
>>518>>520 は実質同じで無保証
>>519がfalseなのは保証される、というかaとbで別に領域取ってるんだからあたりまえ

なお、C++を使う以上、文字列リテラルを差すポインタはちゃんとconstにすべし
523デフォルトの名無しさん:2006/09/14(木) 04:15:44
>>518がtrueにならないのは違和感ありますね
524デフォルトの名無しさん:2006/09/14(木) 06:39:43
>>520
がFalseになると思ってた僕にオヌヌメの本を教えて下さい。
525デフォルトの名無しさん:2006/09/14(木) 10:10:21
>>523
trueになる、Delphiおすすめ
526デフォルトの名無しさん:2006/09/14(木) 10:28:59
>>518のは重複文字列の単一化ってオプションで、どっちにも出来る。
527デフォルトの名無しさん:2006/09/14(木) 11:43:38
ちょっと質問ですが

フォームを開く際に同じフォームを複数ひらかないために以下のように呼び出し
if( !Form2 ) Form2 = new TForm2(this);
Form2->Show( );

Form2のDestroyで以下のようにForm2変数をNULLにしています
void __fastcall TForm2::Form2Destroy(TObject *Sender)
{
 Form2 = NULL;
}

これを複数開けるように呼び出し側で
Form2 = new TForm2(this);
Form2->Show( );
としてForm2DestroyでForm2 = NULL;をしても
複数開いて閉じたりしても特に普通に動作するのですが・・・
例えば、3つ開いてそのうち1つを閉じた時にForm2の値はNULLになるので
残りの2つのフォームに影響でないのでしょうか??
528デフォルトの名無しさん:2006/09/14(木) 12:42:50
>>527
Form2がグローバル変数なら問題出る気がす
529デフォルトの名無しさん:2006/09/14(木) 13:09:59
ifstreamをつかってバイナリファイルを読み込んでいます。
ファイルの末尾からある一定の間隔を持ちながら後ろにさかのぼる様なプログラムを書きたいです。
例えば次のようなプログラムです。うしろからdeltaバイトずつスキップしながらデータをとっていきます。

while( 1 ) {
 fin.seekg(-i*delta , ios::end);
if (終了条件) {
  break;
 }
 fin.read((char*)&data,sizeof(int));
 処理
 ++i;
}

ファイルの「終了条件」を先頭にきたときとしたいのですが、
どうしたらいいでしょうか?
530デフォルトの名無しさん:2006/09/14(木) 13:22:33
C++スレと間違えました・・・スミマセン
531デフォルトの名無しさん:2006/09/14(木) 13:28:45
>>528
Form2はTForm2で定義されているグローバルです。
確かに問題ありそうなんだけど、何で普通に開いたり閉じたりできるのか・・

ちなみにそれを、Form2のグローバルを使わずにForm1のprivateとかに
TForm2 frm[10];
などと、定義して、最大10フォーム各々の配列で開いたとき
frm[cnt ++] = new TForm2(this);
frm[n]が開いてるか閉じてるかはどうやってみればいいでしょうか?
532デフォルトの名無しさん:2006/09/14(木) 13:35:43
>>531
Form2Destroyは本当に呼ばれてる?
533デフォルトの名無しさん:2006/09/14(木) 13:38:32
>>532
呼ばれてますよー
Form2を呼ぶときに↓でForm2が閉じられない限り新たに作られてないですから
if( !Form2 ) Form2 = new TForm2(this);
Form2->Show( );
534デフォルトの名無しさん:2006/09/14(木) 13:41:32
>533
そのコードからは呼ばれてなくても正しく動くとしかいえないじゃん。
ブレークポイントしかけて確かめてみろ
535デフォルトの名無しさん:2006/09/14(木) 13:57:47
何が疑問なのかよく分からんのだけども。
Form2をNULLにしたのに、それまで作成したフォームが普通に動くのが不思議なの?
インスタンスとポインタの区別がついてないのかな?
536デフォルトの名無しさん:2006/09/14(木) 14:08:21
質問する時間帯がまずかったか・・
537デフォルトの名無しさん:2006/09/14(木) 14:54:42
一部のコードだけ見せられてエスパーしてやってんのになんだそのいいぐさわ
538デフォルトの名無しさん:2006/09/14(木) 14:57:03
ああ、そっかw
すでに生成したウインドウはForm2とは個別にインスタンスを持っている。
しかし、Form2はポインタで、Form2に何を代入しようが既存のウインドウは変化しないわけだ
539デフォルトの名無しさん:2006/09/14(木) 14:59:01
賢くなったね>>538
540デフォルトの名無しさん:2006/09/14(木) 15:41:25
フォームが既にあるか無いかの識別は?
541デフォルトの名無しさん:2006/09/14(木) 15:58:09
管理指定なら、インスタンスを宙ぶらりんにせずに、
配列か、ヴェクターかしらんが、ポインタに入れとくべきだな。
542デフォルトの名無しさん:2006/09/14(木) 16:09:25
Screen->Forms
543デフォルトの名無しさん:2006/09/14(木) 16:11:12
>>542
そんな手があるんか・・・
544デフォルトの名無しさん:2006/09/14(木) 16:53:04
>>542
それはTForm2クラスが存在するかどうかはわかるけど
違う変数で作成したときに区別がつかないとおもう。

フォームありなしなら
try{
 frm->Show( );
}
catch(...){
 frm = new TForm2l(this);
 frm->Show( );   // ←MDIコフォームならいらない
}

どう?
545デフォルトの名無しさん:2006/09/14(木) 17:54:24
区別したいならちゃんと変数をどこかに保持しておくべきで、
frm->Showの例外を期待するようなプログラムなんて普通しない。
546デフォルトの名無しさん:2006/09/14(木) 17:57:57
>>544
アホかw
547デフォルトの名無しさん:2006/09/14(木) 18:10:51
>>545
普通のプログラムのコードを書いてみて
548デフォルトの名無しさん:2006/09/14(木) 18:14:23
 if (frm = nil) then
  frm := TForm2.Create(self);

 frm->Show( );
549デフォルトの名無しさん:2006/09/14(木) 18:15:17
あ、やべ、Delスレと間違えた。

 if (frm == NULL)
  frm = new TForm2(this);

 frm->Show( );
550デフォルトの名無しさん:2006/09/14(木) 18:42:32
>>549
そのfrmはどこでNULL入れてんの?
まさかそれグローバルでForm2で入れてるって落ちじゃないよね?
551デフォルトの名無しさん:2006/09/14(木) 18:52:16
別にForm2のインスタンスが削除されても一緒に消えなけりゃ
グローバル変数でも他のクラスのメンバでも何でもいいだろ。
552デフォルトの名無しさん:2006/09/14(木) 18:57:52
>>551
いやいやそれじゃーどうやって
if (frm == NULL)
を、判断させるの?
これってどこかでfrmにNULLを入れないと、1回開いて閉じたら二度と開けなくなるよ
553デフォルトの名無しさん:2006/09/14(木) 19:02:59
>>562
いや、だから、フォーム削除したときにNULL入れりゃいいじゃん。
何を悩んでるのかさっぱり伝わってこない。
554デフォルトの名無しさん:2006/09/14(木) 19:05:57
今時MDIかよ
555デフォルトの名無しさん:2006/09/14(木) 19:11:47
>>553
んじゃ君が言うfrmはグローバルでForm2のDestroyやデストラクタでNULLを入れるってことかい?
それならTForm2のソースに定義してあるForm2を使うのと全然変わらん。
んで、それを違う名前や配列でfrm2、frm3やfrm[n]として複数開く場合は
同じようにForm2のDestroyに全部記述するのかい?
556デフォルトの名無しさん:2006/09/14(木) 19:31:14
>>555
> それならTForm2のソースに定義してあるForm2を使うのと全然変わらん。
だから>>551で変数なんか何でもいいって言ってるだろ。

> んで、それを違う名前や配列でfrm2、frm3やfrm[n]として複数開く場合は
> 同じようにForm2のDestroyに全部記述するのかい?
全部記述ってのがわからんが、配列から自分を参照してる変数見つけてNULLにすりゃいいだろ。
557デフォルトの名無しさん:2006/09/14(木) 19:38:59
>>556
まあ、変数が何でもいいはおいとくとして
配列なら確かにforで回してアドレスが一致した奴をNULLでOKですね。
でも、各画面で個別にprivate等で宣言してるTForm2の変数で
Form2を作成するとForm2でNULLを入れることができなくなるけど
フォームを扱う場合はそういう使い方はしないのかな?
558デフォルトの名無しさん:2006/09/14(木) 20:17:08
別にprivateでも、Form2が削除された事を通知してもらうpublicメソッドなりメッセージなり用意して、
Form2のデストラクタで呼んでもらえばいいし、そんななんとでも出来る事で何を悩むのか本当に不思議だ。
559デフォルトの名無しさん:2006/09/14(木) 20:46:37
複数同時表示させたくないときはNULL入れりゃいいし、それ以外のときは関係ない話じゃないのか?
560デフォルトの名無しさん:2006/09/14(木) 22:41:55
誰がフォームの存在を管理しているのか、
その管理順位の考察が甘いから混乱する。

管理すべきクラスが、ちゃんと管理するようにしろ。
破棄するならそいつに知らせる。
生成するなら、そいつにインスタンスを生成させて、
インスタンスアドレスを貰う。
ちゃんと管理主体を明確にすれば、何も混乱する必要などない。

>各画面で個別にprivate等で宣言してるTForm2の変数で
アホか。
個別に適当にprivateに宣言すんな。
管理したいなら、ちゃんと管理しろ。
頭悪すぎだぞ。
561デフォルトの名無しさん:2006/09/15(金) 01:06:00
Turbo C++ なんですが、新しいプロジェクトを作成しても
前回作成したプロジェクトと一緒になってしまうのですが
どうすれば新しいプロジェクトを作成できますか?

例えば、project1がすでにあるとして、project2を新たに新規作成し
VCLフォームアプリケーションで始めるとForm2,Unit2となって
前回のプロジェクトの続きになってしまうのです。
562デフォルトの名無しさん:2006/09/15(金) 10:11:54
>>558
君が考えてることはとっくにわかってるんだけど、そんなめんどーな方法以外にはないの?
>>559
複数で別フォームから呼ぶ話しかしてないよ
>>560
private宣言したらダメな意味がわからない。なんで?
ちゃんと管理って何?君が言うちゃんとした管理って単にグローバルにするだけなのかい?
煽ることしかできない奴のレスはいらないよ。
わかりきった事を恥かしげもなくよく書けるね。
563デフォルトの名無しさん:2006/09/15(金) 10:55:40
544みたいなコード書く奴が何をわかってんだか
564560:2006/09/15(金) 10:56:21
>>562
お、効果的な煽りだ。
一瞬むっとしたw

俺もまだまだだなぁ。w
565デフォルトの名無しさん:2006/09/15(金) 11:09:58
>>563-564
とりあえず、スレタイを100回読んでからレスしてくださいね。
まず、知ったかぶりをしてるだけならレスは不要です。
そしてC++Builderスレは2つあるけど、このスレの意味を理解してください。
自分でまだまだと思うなら勉強してからレスしてね。
566デフォルトの名無しさん:2006/09/15(金) 11:15:41
ああ、お前みたいな面倒な奴の相手はもう御免だ。
他の人にお願いするよ。
567デフォルトの名無しさん:2006/09/15(金) 11:45:20
えらそうに言ってる奴に限って突っ込まれると答えれなくて逃げ出すww
568デフォルトの名無しさん:2006/09/15(金) 15:42:55
普通の掲示板ならそうだけど、
2chで最後まで場に立ってるのは無自覚なお馬鹿さんだからw
569デフォルトの名無しさん:2006/09/15(金) 22:01:24
経験者は語る、か・・・
570デフォルトの名無しさん:2006/09/16(土) 02:26:40
前は2chも玉石混交だと思ってたけど最近は文字通りゴミばっかりになった希ガス
571デフォルトの名無しさん:2006/09/16(土) 02:36:36
無根拠を粘着性でカバーしようとする奴が増えたからね。
利口じゃないのはお互い様としても、そのスタンスは泥沼だろうよ、と。
572デフォルトの名無しさん:2006/09/16(土) 02:36:51
Borland系スレが寂れちゃったからね
スレにそれなりのスキルのある人間が少なくなっちゃった
いなくなったわけではないだろうが
573デフォルトの名無しさん:2006/09/16(土) 10:29:57
絶対数が減れば、玉の数も減る。しかし、玉ほど他へ移行するのが簡単だから
結果として石の割合が増えてる

ってことだ。某はもうダメっぽい
574274:2006/09/17(日) 15:39:52
先日はお世話になりました。
あれから、VBより速くする為に、WideString から AnsiString に改良しているのですが、
下のコードならうまく行くのですが、AnsiAscii( AnsiString& str )にすると上位バイト(-126)しか
取得出来ません。この様な時はどのようにすれば、WideString を使わずに処理出来るのでしょうか?
色々本やネットでも調べたのですが、判りませんでした。

すみませんが、よろしくお願いします。

             vvvvvvvvv
int TForm1::AnsiAscii( WideString& str )
{
wchar_t buf[1];
swprintf(buf,L"%d",str[1]);
return String(buf).ToInt();
}
//----------------------------------


AnsiString TForm1::AnsiChar( int& str )
{
wchar_t buf[1];
swprintf(buf,L"%c",StrToInt(str));
return (AnsiString)buf;
}
//----------------------------------
575274:2006/09/17(日) 15:40:40
続きです。


void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString c = "あ";
int i = AnsiAscii(c);

ShowMessage( c );
ShowMessage( (String)i );
ShowMessage( AnsiChar(i) );
}
//----------------------------------

  
576デフォルトの名無しさん:2006/09/18(月) 02:07:48
すみません、つまらない質問ですが、
クイックレポートの中のQRExprで式の値をAnsiStringで取り出したいのですが、
ヘルプを見ても、(Value プロパティを使って式の値にアクセスします。)
と書いてあり、いろいろ調べましたが、意味がわかりません。
どなたか、教えていただけないでしょうか?
577デフォルトの名無しさん:2006/09/20(水) 18:04:41
>>576
このスレでは何を相談しても、バカwだのアホwだの言われて、
むかつくだけだからやめときな。
かといって、マイナー過ぎて書店に本売って無いんだよねー。
578デフォルトの名無しさん:2006/09/21(木) 09:43:27
質問者自身が「つまらない質問ですが」って言ってるんだから、
回答する気も起きないだろ。たしかにつまらん質問だし。
579デフォルトの名無しさん:2006/09/21(木) 19:02:10
それは、玄人にとってはつまらんと言ってるんだろ。
謙虚に質問してるんだから、優しくしてやる気にならんか?
こういう欠陥のあるヤシばっかりだから、576は可哀想だが
こんなとこで質問しないで、ネットで本買うなりしろや。
580デフォルトの名無しさん:2006/09/21(木) 22:46:29
ここは回答する側が初心者なスレだから、
どんな本でもここの回答者よりは役に立つしな。
581デフォルトの名無しさん:2006/09/22(金) 14:51:08
先生質問です
C++ Builderで開発する時にどの本やどのサイトで勉強するのがベストなのでしょうか?
C++ Builder 使い方
でgoogle検索しても中々いいサイトにヒットしません
ひょっとして、というかこれは当たり前のことでc++を勉強すれば自然に使えるようになるのでしょうか?
582デフォルトの名無しさん:2006/09/22(金) 15:02:24
>>581
VCLはDelphi関連のサイトや書籍で。
C++はC++の(ry

両方読んだ方がいい。
583デフォルトの名無しさん:2006/09/22(金) 15:20:05
>>582
thx
584デフォルトの名無しさん:2006/09/22(金) 18:25:20
>>581
とりあえずスタートガイド
TurboC++2006だったら‥‥Del6Perで最初の展開時に出来るディレクトリにpdfで入ってるからそれよれでも読むといい。
585デフォルトの名無しさん:2006/09/22(金) 18:30:52
>>581
サイトや書籍に書いてある簡単なDelphiのプログラムをBCBに移植する
事から初めて見ればよいかもしれない。

すぐにコツがつかめ、BCBでVCLを使ったプログラムを自由に作るには
どうすればいいかがわかると思う。

また、Object PascalはC++にはない機能がいくつかあり、それをサポート
するためにBCBのC++は拡張がなされている。またopen arrayなどC++の
拡張だけでは対応が難しいものに関してはマクロで代替えしている。

これらについてもヘッダーファイルを読む事により、徐々に分かってくる
はずです。
586デフォルトの名無しさん:2006/09/22(金) 19:12:50
>>585
Delphiを知ってるならいいが知らないなら無駄じゃないか?

>>581
現在はどんな本が出てるのか知らないが超基本の本が1、2冊あれば十分
基本が分かればあとはヘルプとML過去ログで大抵のことはできる
587デフォルトの名無しさん:2006/09/22(金) 19:40:57
>>581
まず基本的な使い方とVCLをマスターするには、カットシステムの
書籍が有効。つーか、これしか一般に流通していない。

そしてその後、本格的なシステム構築をするなら、インストールCD
に含まれているPDFドキュメントをプリントして読破する!
C/S型、分散型、Web型(CGI/Apach...)、などの構築方法について
唯一の日本語で書かれたマニュアルだ。
588デフォルトの名無しさん:2006/09/22(金) 20:37:00
> インストールCD
> に含まれているPDFドキュメントをプリントして読破する!

Delphi10年つかってて知らなかったw
589デフォルトの名無しさん:2006/09/22(金) 22:18:04
>>587
開発者ガイドは6まで製本されて箱に入ってるぞ。分冊して欲しいような厚さで読みにくいけど。(Per/Std以外)
590デフォルトの名無しさん:2006/09/22(金) 22:53:12
BDS2006では、あの分厚い紙マニュアルは付かなくなった。
でもちゃんとpdfファイルとして入っている。
サンプルプログラムがいっぱい添付されているから
どれか1個をすべて理解できるまで動かしながら読んでみるのがいいかも。
591デフォルトの名無しさん:2006/09/22(金) 22:55:06
log2を使うにはどうすればいいの?log10は使えるけど
592デフォルトの名無しさん:2006/09/22(金) 22:55:57
あと、質問して罵倒される人は、日本語自体がまともでないとか
意味不明の質問だったり、自分自身が何も理解していないで質問しているとか
情報を小出しにするとか
まあ、最低限レベルのマナーを守っていない場合だけどね。
593デフォルトの名無しさん:2006/09/22(金) 23:00:38
あとは、自分ではまったく調べようとしない人とかね。
せめて1回はヘルプで引けば、ここで聞く必要はないとかね。
594587:2006/09/22(金) 23:02:16
>>588
つ DISK2
  └ \Documentation
    ├ qs.pdf ……………… クイック.スタート         102頁
    ├ dg.pdf ……………… 開発者ガイド          1294頁
    ├ oplg.pdf  …………… Object Pascal言語ガイド    246頁
    ├ bcb6vclposter.pdf … VCL OBJECT HIERARCHY    1頁 
    └ bcb6clxposter.pdf … CLX OBJECT HIERARCHY    1頁

>>589
えーっ?! 俺のC++Builder 6 Professional版StarTeam Editionに
同梱されている製本マニュアルは
 ・クイックスタート
 ・VCL OBJECT HIERARCHY
 ・CLX OBJECT HIERARCHY
 ・ダミーな7枚の段ボールの切れっぱしw
だけだったぞ。(怒)
C++Builder 3の頃はStandard版でも開発者ガイド、その他数冊
が入っていたのに・・・。

絶版の「Delphi6プログラミングバイブル」のC++Builder版は
とうとう出なかったな。
595デフォルトの名無しさん:2006/09/22(金) 23:55:11
>>594
ttp://up.mugitya.com/img/Lv.1_up55111.jpg
ちなみに厚さはそのダンボール7枚分だと思う
596594:2006/09/23(土) 00:23:35
>>595
つまり、こういう違いがあった訳なのか・・・

-----≪
Borland C++Builder 6 Professional 通常版 ≫------
■ CD-ROM (4枚)
  Borland C++Builder 6 Professional (2枚組)
  Borland C++Builder 6 Companion Tools
  Borland Enterprise Server Web Edition
             ・
             ・
             ・
■ マニュアル (3冊)
  Borland C++Builder 6 クイックスタート
  Borland C++Builder 6 開発者ガイド
  BorlandEnterprise Server インストールガイド


--≪ Borland C++Builder6 Professional StarTeam Edition ≫--
■ CD-ROM (6枚)
  Borland C++Builder 6 Professional (2枚組)
  Borland C++Builder 6 Companion Tools
  Borland InterBase 7.1 Development Edition
  Borland StarTeam 6 Windows Edition (2枚組)
             ・
             ・
             ・
■ マニュアル (1冊)
  Borland C++Builder 6 クイックスタート
597デフォルトの名無しさん:2006/09/23(土) 00:42:46
棒は無駄に厚い紙使ってたからなぁ >開発者ガイド
辞書に使うような紙使えばあんな意味もなく分厚いマニュアルに
ならなかったんだが
598デフォルトの名無しさん:2006/09/23(土) 01:05:35
InterBaseのバージョンも違うのね。(通常版は6.5)
599デフォルトの名無しさん:2006/09/23(土) 01:10:11
>>597
1/4/5部と2/3部に分冊すれば使いやすいのになぁ‥‥
600デフォルトの名無しさん:2006/09/23(土) 17:03:10
hello worldすら出力できなくて挫折した
601デフォルトの名無しさん:2006/09/24(日) 23:55:30
自分が調べたいことをパラパラと探せないし、
かといって、ろくなこと書いてないし、サンプルもないし。
書店で本をみればロクなこと書いてないワリにめちゃめちゃ高いし、
やっぱVCのほうがいいっすよ。
本なんて買わなくても周りに知ってる人がいくらでもいるし。
BCBはね、DELPHIやってる人のほうが詳しかったりして。
なんで今更PASCALやらDELPHI固めのGUI操作を覚えねばならぬ。
602デフォルトの名無しさん:2006/09/25(月) 00:03:03
>>601
よそでやれボケ
603デフォルトの名無しさん:2006/09/25(月) 08:18:11
>>601
禿道
604デフォルトの名無しさん:2006/09/25(月) 08:18:35
予言するがおまえにはVCも無理だろうな
605デフォルトの名無しさん:2006/09/25(月) 08:25:05
いや、VC はもう使って10年近く飯を食ってるが
606デフォルトの名無しさん:2006/09/25(月) 09:35:51
じゃあ浮気なんかせずそのまま食ってきなさい。
人生は短い。
607デフォルトの名無しさん:2006/09/25(月) 09:43:19
デジタル土方暦10年。一生うだつの上がらない人生。
608デフォルトの名無しさん:2006/09/25(月) 20:39:54
悲惨だな、BCB厨の人生。
609デフォルトの名無しさん:2006/09/25(月) 20:59:22
>>608
そうきたかw
610デフォルトの名無しさん:2006/09/25(月) 21:05:08
悲惨すぎ、BCB厨の人生。
611デフォルトの名無しさん:2006/09/25(月) 21:30:33
プログラミングで飯を食ってる時点でお前ら似たようなもんだろw

俺? 俺は趣味でプログラミングやってる開業医だが何か?w
612デフォルトの名無しさん:2006/09/25(月) 22:09:53
ひまな医者だな・・・
613デフォルトの名無しさん:2006/09/25(月) 22:10:24
BCB で飯食えるの?
614デフォルトの名無しさん:2006/09/25(月) 22:50:43
601を書いたものですが反応が面白いですな。
実際にはBCB使ったことが無くて想像で書いてみましたが何か?
615デフォルトの名無しさん:2006/09/25(月) 22:52:07
あと、正直に白状するとVCも使ったことありましぇん。
面白いねーおまいら。
616デフォルトの名無しさん:2006/09/25(月) 23:01:18
完全に雑魚キャラのセリフじゃねーか。
そんなんでいいのかお前。
617デフォルトの名無しさん:2006/09/26(火) 01:03:38
最初は釣りも煽りもこんなもんじゃね?
自爆しながら成長していくんだよ。
618デフォルトの名無しさん:2006/09/26(火) 02:20:03
壮絶に釣りだったわけか・・・和良
619デフォルトの名無しさん:2006/09/27(水) 11:31:41
10でたんか?
620デフォルトの名無しさん:2006/09/27(水) 12:21:57
10で短歌?
621デフォルトの名無しさん:2006/09/27(水) 14:03:25
10で炭化?
622デフォルトの名無しさん:2006/09/27(水) 21:56:22
10で単価?
623デフォルトの名無しさん:2006/09/27(水) 22:28:45
10で簡単??
624デフォルトの名無しさん:2006/09/27(水) 22:38:12
あまり期待はしないで質問するが、
DelphiのAssign(うんちゃら)は、
BCBでは単にNULLを見ればいいの?
例えばねぇ......、やっぱやめたー。
ここの住人だと、ろくな答え返ってこないね。
625デフォルトの名無しさん:2006/09/27(水) 23:23:04
そう
626デフォルトの名無しさん:2006/09/28(木) 02:00:22
>>624
こいつはDelphiスレでも相手にしてもらえないんだろうなw
627デフォルトの名無しさん:2006/09/28(木) 19:49:38
おまえと一緒だな
628デフォルトの名無しさん:2006/09/29(金) 03:13:44
>ここの住人だと、ろくな答え返ってこないね。
>>626みたいなヤシのこと言ってんだろうよwwwwwwwwwwwww
>>624
俺は無視してるが。
やるとすれば、NULLを見るのではなく、
コールバックなどで値が変化したかで判断するが。
629デフォルトの名無しさん:2006/09/29(金) 03:27:16
ほんとにろくな答え返ってこないや。
630デフォルトの名無しさん:2006/09/29(金) 03:42:52
>ほんとにろくな答え返ってこない
それがBor信者クオリティじゃね
631デフォルトの名無しさん:2006/09/29(金) 09:59:56
つうか、>624みたいな書き方したらどこのスレでもまともな答えは返ってこんと思うが。
632デフォルトの名無しさん:2006/09/29(金) 11:29:07
>>624は荒らしだろ
633デフォルトの名無しさん:2006/09/29(金) 18:32:39
\               U         /
  \             U        /
             / ̄ ̄ ヽ,
            /        ',      /     _/\/\/\/|_
    \    ノ//, {0}  /¨`ヽ {0} ,ミヽ    /     \          /
     \ / く l   ヽ._.ノ   ', ゝ \       <   バーカ!  >
     / /⌒ リ   `ー'′   ' ⌒\ \    /          \
     (   ̄ ̄⌒          ⌒ ̄ _)    ̄|/\/\/\/ ̄
      ` ̄ ̄`ヽ           /´ ̄
           |            |  
  −−− ‐   ノ           |
          /            ノ        −−−−
         /           ∠_
  −−   |    f\      ノ     ̄`丶.
        |    |  ヽ__ノー─-- 、_   )    − _
.        |  |            /  /
         | |          ,'  /
    /  /  ノ           |   ,'    \
      /   /             |  /      \
   /_ノ /              ,ノ 〈           \
    (  〈              ヽ.__ \        \
     ヽ._>              \__)
634デフォルトの名無しさん:2006/09/29(金) 21:13:04
\               U         /
  \             U        /
             / ̄ ̄ ヽ,
            /        ',      /     _/\/\/\/|_
    \    ノ//, {e}  /¨`ヽ {e} ,ミヽ    /     \          /
     \ / く l   ヽ._.ノ   ', ゝ \       <   アホー!  >
     / /⌒ リ   `ー'′   ' ⌒\ \    /          \
     (   ̄ ̄⌒          ⌒ ̄ _)    ̄|/\/\/\/ ̄
      ` ̄ ̄`ヽ           /´ ̄
           |            |  
  −−− ‐   ノ           |
          /            ノ        −−−−
         /           ∠_
  −−   |    f\      ノ     ̄`丶.
        |    |  ヽ__ノー─-- 、_   )    − _
.        |  |            /  /
         | |          ,'  /
    /  /  ノ           |   ,'    \
      /   /             |  /      \
   /_ノ /              ,ノ 〈           \
    (  〈              ヽ.__ \        \
     ヽ._>              \__)
635デフォルトの名無しさん:2006/09/30(土) 00:03:40
>>633
>>634
初心者ですみませんが、
このAAの何が面白いのか教えてください。
あと、C++Builderのどこがいいのかもついでに。
636デフォルトの名無しさん:2006/09/30(土) 00:41:56
>>635
趣旨は違うが、>>1が言うとおりの本当に低レベルでくだらない質問だ。
くだらなすぎるから帰れ!
637デフォルトの名無しさん:2006/09/30(土) 23:22:04
>>636
どっちに過剰反応?
AA?
BCBイジメ?
どちらにしろキモイよお前。
638デフォルトの名無しさん:2006/09/30(土) 23:23:34
>>637 ごちゃごちゃ言うなら、>>635 に回答してみろよ
639637:2006/10/01(日) 01:09:59
>>638
スレ違い
640デフォルトの名無しさん:2006/10/01(日) 01:13:25
>>633-637 と639
すれ違いウザ杉www
641デフォルトの名無しさん:2006/10/01(日) 03:37:35
負け戦でage続けた639の完敗だな。
642637:2006/10/01(日) 22:39:26
キモイに過剰反応?wwwww
643デフォルトの名無しさん:2006/10/01(日) 23:57:22
637キモイ
644デフォルトの名無しさん:2006/10/02(月) 08:29:54
>>637
>このAAの何が面白いのか教えてください。
別に面白くないと思います

>あと、C++Builderのどこがいいのかもついでに。
別に良いところは無いと思います
645デフォルトの名無しさん:2006/10/02(月) 15:28:53
>>637ってVB使ってる厨房とみた。
646デフォルトの名無しさん:2006/10/02(月) 16:38:30
プロジェクトファイルやソースをデスクトップからノートPCに一式コピーしてコンパイルしたのですが
遅すぎて話になりません。10分以上かかっています。ディスクアクセスもしていないようです。
原因は何でしょうか?
647デフォルトの名無しさん:2006/10/02(月) 16:43:57
int__64ってどこへ行っちゃったの?
古いソース使おうと思ったら…
648デフォルトの名無しさん:2006/10/02(月) 16:49:09
__int64のことですか
649647:2006/10/02(月) 17:43:27
>>648
逝ってきます

てか、この古いソースって出元はなんなんだ?
650デフォルトの名無しさん:2006/10/02(月) 18:17:55
>>646
ノートPCの環境は?
BCBのバージョンは?
651635:2006/10/04(水) 01:20:29
なんか、637のせいで酷い言われようだな。欝だ。
652デフォルトの名無しさん:2006/10/04(水) 09:36:02
>>651
お前もキモイよ
653デフォルトの名無しさん:2006/10/04(水) 10:10:58
まだ粘着してるw
654デフォルトの名無しさん:2006/10/04(水) 10:20:19
粘着してる奴は朝鮮人だろ。日本人のメンタリティではないな。
655デフォルトの名無しさん:2006/10/04(水) 13:00:00
新規作成でアプリケーションを選択して、すぐに全て保存でP1.cppとP1.bprとしました。
一旦閉じた後、プロジェクトを開いて実行すると

リンカエラー 外部シンボル'Form1'が未解決(C:\~が参照)
リンカエラー 外部シンボル'TForm1::'が未解決(C:\~が参照)

と出て実行できません。どうすればよいでしょうか。
656デフォルトの名無しさん:2006/10/04(水) 13:10:09
>>655
P1.hみてみ。TForm1の名前空間はちゃんと定義されているか?

Form1 は確かextern TForm1 *Form1; とかになっているから、
名前空間の問題が解決されればコンパイルできるはずだ。
657デフォルトの名無しさん:2006/10/04(水) 13:17:41
unit1.cpp を P1.cpp で保存したものが、P1.bpr の保存の際に生成される P1.cpp で
上書きされてるんじゃないかな。

unit1.cpp を変名しないか、P1 以外の名での保存でOKかと。
658デフォルトの名無しさん:2006/10/04(水) 13:42:33
>656
すいません。名前空間の定義の方法がわかりません。

>657
ありがとうございます。P1一式の他にU1.cpp h dfm objが生成されエラーは消えました。

デフォルトでUnit1~と保存されるものとProject1~と保存されるcppは両方とも必要ということなのでしょうか。
他のアプリケーションと区別しやすくするために変名したかったのですが、ユニット用の名前とプロジェクト用の名前をわければいいのですね。

ところで>656さんの仰られた方法で解決した場合、ユニット用のcppは無いままになってしまうと思うのですが、
これは名前空間を定義しているのがU1.cppと言うことですか?
659デフォルトの名無しさん:2006/10/04(水) 13:51:11
名前空間はhで定義されてるよ。
まあ>>657さんの方法が簡単で良いかと。
660デフォルトの名無しさん:2006/10/04(水) 15:33:00
>>657
>unit1.cpp を P1.cpp で保存したものが、P1.bpr の保存の際に生成される P1.cpp で
>上書きされてるんじゃないかな。
これがビンゴ
だから名前空間をどうこうして解決する問題じゃない

>>658
>デフォルトでUnit1~と保存されるものとProject1~と保存されるcppは両方とも必要ということなのでしょうか。
"Project1"はアプリケーション
”Unit1"はフォーム
別のもの
1つのアプリケーションは複数のフォームを持つこともできるでしょ
661デフォルトの名無しさん:2006/10/04(水) 17:05:11
まっさらなフォームを二つ作ってfsMDIFormとfsMDIChildで親フォーム子フォームにしたのですが、
子フォームのサイズがオブジェクトインスペクタのものが反映されずに、実行時に変更されてしまいます。

子フォームのサイズを指定するにはどうすればいいでしょうか?
662デフォルトの名無しさん:2006/10/04(水) 21:55:42
俺なら、あえて子フォームにしない。
MDIにする意味がないかぎりは。
663デフォルトの名無しさん:2006/10/04(水) 23:26:33
>>661
子フォームのTop, Left, Width, Heightを設定する
いっぺんに済ますにはBoundsRectを設定する
664デフォルトの名無しさん:2006/10/04(水) 23:49:34
↑書き忘れた
当然、子フォームを表示するときね
665デフォルトの名無しさん:2006/10/05(木) 00:45:27
やっぱBCB使えねぇな。
666デフォルトの名無しさん:2006/10/05(木) 08:50:09
>>665
突然どうした?
発作か?
667デフォルトの名無しさん:2006/10/05(木) 09:31:25
恐らく朝鮮人がファビョったんでしょう。
668デフォルトの名無しさん:2006/10/05(木) 14:23:20
>665は日本語が不自由なだけだよ。
本当は、「私は馬鹿なのでBCBを使いこなすことができません。」と言いたかったんだよ。
669デフォルトの名無しさん:2006/10/05(木) 14:25:56
670デフォルトの名無しさん:2006/10/05(木) 14:26:44
日本語喋れないんなら祖国に帰れよ>>665
671デフォルトの名無しさん:2006/10/05(木) 14:33:07
>>666-670 Except 669
スルー頼むよ。お願いだから。
672デフォルトの名無しさん:2006/10/05(木) 15:16:30
>>671
>671
673665:2006/10/05(木) 23:54:03
正直にカミングアウトします
私は朝鮮人です。日本語スコシです。
私は馬鹿なのでBCBを使いこなすことができません。
あと、ファビョってます。

でもBCBマジで使えねぇー。
674デフォルトの名無しさん:2006/10/06(金) 11:15:58
仕事でいきなりちょっとしたアプリをBCB6で作るようにいわれたVC系初心者です。
CheckListBoxを使ってるんですが、CheckBoxのように文字列のクリックでチェック状態を切り替えたいのですが、
どうすればいいでしょうか?
なにもしなければ、文字列のクリックではその行が選択状態(Selected)になるだけなので困ってます。
私のつたない頭では、OnClickでSelectedされている行のCheckedを切り替える方法くらいしか思いつきません。
そうするとチェックボックス自体をクリックしたときに、チェック状態の切り替えが2回行われ元に戻ってしまいます。
675デフォルトの名無しさん:2006/10/06(金) 12:38:51
エレガントではないかもしんないけども OnClick と OnClickCheck の両方に

CheckListBox->Checked[CheckListBox->ItemIndex] = 1 - CheckListBox->Checked[CheckListBox->ItemIndex];

なんてのを置くけば、とりあえず、希望の動作になるような気がする。

OnClick と OnClickCheck は飛んでくる順序が決まってる(かもしれない)から
それを利用する手もあり。
676デフォルトの名無しさん:2006/10/06(金) 13:35:48
>>674
とりあえず弥縫策

//MouseUpイベントで
int n = CheckListBox1->ItemAtPos( TPoint(X,Y), true );
if ( n >= 0 && X > 16 )
 CheckListBox1->Checked[n] = !CheckListBox1->Checked[n];

チェックボックスの幅はあてずっぽう
677デフォルトの名無しさん:2006/10/06(金) 13:37:40
↑あ、MouseDownだった
どっちでも大差ないけど
678674:2006/10/06(金) 14:39:19
>675,676
ご教授ありがとうございます。
>675のそのままのコーディングで思い通りの動作ができたんで、これを使わせてもらいました。
たまにクリックが効かなかったり、チェックマークが点滅したりしますが、部署内で使うツールなんで問題ないことにします。
679デフォルトの名無しさん:2006/10/06(金) 15:07:47
>たまにクリックが効かなかったり、チェックマークが点滅したりしますが、
それが出ないようにしてあるのに>>676
680デフォルトの名無しさん:2006/10/06(金) 20:11:30
テケトウでOK ってことだろ
681デフォルトの名無しさん:2006/10/07(土) 16:44:39
> int n = CheckListBox1->ItemAtPos( TPoint(X,Y), true );

座標に依存しないからこっちのほうが安全かもね。
int i = CheckListBox1->ItemIndex;

682デフォルトの名無しさん:2006/10/07(土) 16:52:14
あ、なんかウソ書いた。ゴメソ
683デフォルトの名無しさん:2006/10/08(日) 00:53:12
Turbo C++に移らないのか?
684デフォルトの名無しさん:2006/10/08(日) 01:58:32
>>681
マウスクリックを拾うときは座標に基づかないとダメだよって話なのね、もともと>>676
685デフォルトの名無しさん:2006/10/08(日) 03:05:57
>>684
うん。
一応、CheckListBox1MouseDownイベントの引数で、int Xが入ってくるから
コード的には
int i = CheckListBox1->ItemIndex;
で問題ないと思う。
「座標に依存しないから〜」って発言が嘘。
686デフォルトの名無しさん:2006/10/08(日) 03:29:41
あのさー、CheckListBoxで項目のない余白部分をクリックしたらどうなる?
分かる?
わかんなきゃ、実際に試してみな

マウスクリック拾うときはCheckListBox::ItemIndexじゃダメなの
項目をクリックしてるのかどうか判定しないとダメなの
687デフォルトの名無しさん:2006/10/08(日) 04:18:06
あーなるほど。
リスト一番下の余白をクリックすると
青くなってるところのcheked状態が変わっちゃう。

ヘルプより
> ItemIndex プロパティは,リストボックスの項目リスト内で選択した項目の順番を表す数です。

納得です。^^;
688デフォルトの名無しさん:2006/10/10(火) 14:29:33
通常はコンソールアプリとして動作して、引数にオプション入れて起動したときに
フォーム作成するようなアプリを、1つの実行ファイルで実現したいんですけど、
どのような方法があるでしょうか?
689デフォルトの名無しさん:2006/10/10(火) 16:38:05
コンソールアプリからフォームを生成表示することは普通に出来る
ただそれだとフォームを表示している間、親プロセスとしての
コンソールアプリも生きてるからコンソールは表示され続ける

それを回避したかったら実行ファイルを別にするしかないだろ、多分
690デフォルトの名無しさん:2006/10/10(火) 23:36:18
ボタンを押して、hello を表示させることはできました。
今度は、アプリケーションを立ち上げたら、hello を表示させたいのですが、
メイン関数みたいなのはどのように書くのでしょうか。

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
    ShowMessage("hello");
}
この中に、ShowMessage("hello");書くとhelloが表示されました。
これがメイン関数みたいに考えれば良いでしょうか。
よろしくお願いします。
691デフォルトの名無しさん:2006/10/10(火) 23:46:01
>>690
意味不明
何がしたいのかもっと具体的かつ正確に質問すべし


>これがメイン関数みたいに考えれば良いでしょうか。
ダメです。Windowsアプリケーションの場合、メイン関数はWinMainとして別に存在します
692デフォルトの名無しさん:2006/10/10(火) 23:56:53
>>691
お返事ありがとうございます。

Project1.cpp
Unit1.cpp
あると思うんですが、ボタンを押してhelloが表示されるようにするときは
Unit1.cppの中に、ボタンのイベントを書いて表示されるようにできました。

コンパイルしたら、exeファイルできると思うんですが、
クリックしたら、helloが表示されるようにしたいです。
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
イベントが起こったら→実行
ではなくて
アプリを立ち上げたら→実行
っていうことをしたいです。
693デフォルトの名無しさん:2006/10/11(水) 00:00:25
>>692
すみません。
意味の無いコード書いてしまいました。
694デフォルトの名無しさん:2006/10/11(水) 00:06:11
それならフォームのOnShowイベントでShowMessage()すればよし

いったいそれに何の意味があるのか正直分からんが
695デフォルトの名無しさん:2006/10/11(水) 00:20:39
__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
{
       ShowMessage("TForm1");
}
void __fastcall TForm1::FormShow(TObject *Sender)
{
       ShowMessage("FormShow");
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
       ShowMessage("FormCreate");
}
void __fastcall TForm1::FormPaint(TObject *Sender)
{
       ShowMessage("FormPaint");
} //こういうのを書けばイベントの発生順序の勉強になるかな?
696デフォルトの名無しさん:2006/10/11(水) 00:20:57
>>694
OnShowイベント調べてみます。

初心者なので、いろいろなサンプルを動かしてみている
ところなのですが、イベントが起こると実行されるというサンプル
しか見かけませんでした。

それで、exeファイルをクリックしたら実行
っていうふうにするにはどうすればよいのかと疑問に思いまして。
たとえば、exeファイルクリックしたらはじめに設定ファイルを
必ず読みに行くとか、など考えられるかもです。
697デフォルトの名無しさん:2006/10/11(水) 00:26:34
>>695
コードありがとうございます。
早速動かして勉強します。
698デフォルトの名無しさん:2006/10/11(水) 00:28:20
>>696
そういう風に自分の考えている課題を最初から質問で提示すればいいんだよ。
そのほうが適切なレスがつきやすい。

>たとえば、exeファイルクリックしたらはじめに設定ファイルを
>必ず読みに行くとか、など考えられるかもです。

それはメインフォームのコンストラクタでやるのが適切。
BCBではFormのOnCreateイベントを使うのは推奨されていない。
699デフォルトの名無しさん:2006/10/11(水) 00:34:31
>>698さん
教えて欲しいんですが、OnCreateが推奨でない根拠ってなんでしょうか?
バグあり、みたいな話?
700デフォルトの名無しさん:2006/10/11(水) 00:46:54
BCBのヘルプから引用
>注意 フォームのコンストラクタとのやり取りが不良になる可能性があるので,
>C++Builder で OnCreate イベントを使うことはお勧めできません(OldCreateOrder を参照)。
>かわりに,フォームコンストラクタをオーバーライドすることをお勧めします。

BCB使いには常識みたいな話なんだけど
701デフォルトの名無しさん:2006/10/11(水) 00:53:41
>>698
ありがとうございます。
メインフォームのコンストラクタですか。
今いろんなサイト調べてみたんですが、
メインフォームのコンストラクタというのは、
下記のことでよかったでしょうか。
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
自身がなくて。。。
すみませんが、よろしくお願いします。
702デフォルトの名無しさん:2006/10/11(水) 00:58:56
>>701
そだよ

あんた、悪いこと言わんからBCB以前にC++の入門書読みな
あたりまえだがC++を理解してなきゃBCBは使えないよ
703デフォルトの名無しさん:2006/10/11(水) 01:13:01
>>700さん
しらんかったー!
704デフォルトの名無しさん:2006/10/11(水) 12:09:55
>>702
ありがとうございます。
がんばります。
705デフォルトの名無しさん:2006/10/11(水) 20:27:48
C++はDelphiにくらべてコード補完などが遅いのですか?

Hoge( と入力しただけで5秒くらい待たされたり、
変数などにマウスカーソルを乗せただけで、同じく5秒ほど待たされます。

BDS2006ですが、PCがクソなのでしょうか
706デフォルトの名無しさん:2006/10/11(水) 20:34:20
>>705
IDE SpeedFixを入れろ。
707デフォルトの名無しさん:2006/10/11(水) 21:42:52
708デフォルトの名無しさん:2006/10/11(水) 21:45:37
あ、ちなみにBDS2006にはBCB6用ではなくBCB10用な。
709デフォルトの名無しさん:2006/10/12(木) 00:40:54
ありがとうございます。

入れてみましたが、コンパイルは速くなったものの、コード補完の速度は変わりませんでした。
IDEが生産したForm1があるUnit1.cpp内では速いんですが、
自分で作ったcpp内だと倍以上時間がかかります。
自分の書いたコードを疑ってみます。
710デフォルトの名無しさん:2006/10/12(木) 00:49:38
>>709
プリコンパイルヘッダを作成した後じゃないと補完は速くならないよ。
711デフォルトの名無しさん:2006/10/12(木) 01:10:42
速くなりました。ありがとうございます。
先日DelphiからBCBにスイッチしたばかりで、よく分からなかったのですが、
vcl.hもプリコンパイルヘッダというものなのですね。
それと、#pragma hdrstopまでにPCHをincludeするということも分かりました。
DelphiのようにSysUtils.hppとかClasses.hppをincludeしてただけだったので、遅かったようです。
712デフォルトの名無しさん:2006/10/12(木) 03:56:43
OSはwindowsです。
自分で作ったアプリケーションの起ち上がるプロセスの個数を
制限したいのですが、どのような方法があるのでしょうか。

例えば、IE(ブラウザ)の場合、いくらでも窓を立ち上げることができます。
ctrl+alt+delでwindowsタスクマネージャを見ると、プロセスが
複数なのがわかります。
この個数を制限したいです。
よろしくお願いします。
713デフォルトの名無しさん:2006/10/12(木) 05:17:53
個数制限の場合はmutexじゃなくてセマフォだな。
714デフォルトの名無しさん:2006/10/12(木) 13:53:42
>>713
ありがとうございます。
セマフォ勉強します。なんか聞いたことあります。

ちょっと違う方法なのですが、
タスクマネージャのタスク一覧みたいに、現在動いているタスク一覧の取得して、
その中に、これから起動しようとしているプロセスの名前があったら
起動できない。というふうにするのはどうでしょうか。

他のアプリケーションのプロセス名と偶然名前が同じになってしまったとき、
起動しなくなってしまう場合があるかもしれないのですが、
もしこれを回避するには、アプリケーションのある場所のパスを比較
するということになりますでしょうか?
よろしくお願いします。
715デフォルトの名無しさん:2006/10/12(木) 14:05:29
すみません、教えてください。
エクスプローラからListViewにD&Dはできたのですが、
逆にListViewからエクスプローラにファイルをD&Dする方法を教えてください。
716デフォルトの名無しさん:2006/10/12(木) 15:32:02
>>714
単純にFMOとかの共有メモリに起動プロセス数書きこんどけば?
717デフォルトの名無しさん:2006/10/12(木) 15:35:21
>>715
DoDragDrop、IDropSourceあたりで検索。そこそこ面倒。
ただしこれが分かってれば他アプリからテキストや画像、URL情報のドラッグしてきても受け取れるようになる。
718デフォルトの名無しさん:2006/10/12(木) 18:58:39
c++builder6使っています。
onshowイベントの実行できないんですが、どこがおかしいのか教えていただけ無いでしょうか。
エラーは無いのですが、onshowイベントが起こらないで、そのままウィンドウが表示されてしまいます。
ヘッダーファイルの書き方が違うんでしょうか。
よろしくお願いします。

includeなど省略してます。
○unit1.cpp
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
void __fastcall TForm1::FormShow(TObject *Sender)
{
        ShowMessage("hello");
}
○unit1.h
class TForm1 : public TForm
{
__published:// IDE 管理のコンポーネント
        void __fastcall FormShow(TObject *Sender);
private:// ユーザー宣言

public:// ユーザー宣言
        __fastcall TForm1(TComponent* Owner);

};
extern PACKAGE TForm1 *Form1;
719デフォルトの名無しさん:2006/10/12(木) 19:08:13
ヒント:dfm
720デフォルトの名無しさん:2006/10/12(木) 19:25:23
>>719
dfm早速調べてみます。

オブジェクトインスペクタで、OnShowイベントをダブルクリックして
書くと大丈夫でした。
builderなんとなくわかってきたかもしれません。

5時間ぐらい考えてたので泣けてきました。
でも解決してよかった。ありがとうございました。
721デフォルトの名無しさん:2006/10/12(木) 19:31:09
>5時間ぐらい考えてたので泣けてきました。
そうやって勉強していくもんだ。

dfmがやってることをコードで書く場合は、

this->OnShow = FormShow;
もしくは、
Form1->OnShow = FormShow;
だお。

TFormがOnShowというプロパティを持ってて、
実体はメソッドのポインタ。

VCL の Clickメソッドの中でそのプロパティがAssignされていたら実行する、
となっている。
722デフォルトの名無しさん:2006/10/12(木) 19:33:57
>dfmがやってることをコードで書く場合は、

dfmとコードとどういう関係かっていうと、
プロパティの初期値をコードで書く代わりに、
GUI(Object Inspector)で手で設定してファイル保存したのがdfm。

Object InspectorのEventsタブに切り替えると、イベントハンドラのプロパティを目で見える。
723デフォルトの名無しさん:2006/10/13(金) 22:53:17
いままでDelphiを使っていましたが、Turbo C++が出たのをきっかけに
C++を学びたいと思い現在悪戦苦闘しています。
押されたキーコードを表示するプログラムを書いてみたのですが
キャストのところが我ながら無理矢理表示させているような気がしてなりません。
本来はどう記述するべきなのでしょうか?

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
 ShowMessageFmt("%.4x", &(TVarRec)Key, 0);
}
724デフォルトの名無しさん:2006/10/14(土) 00:14:26
>>723
BCBだとVCLのFormat系使わずに、AnsiString::sprintf使うことが多いと思う。
こんな感じに。

ShowMessage(AnsiString.sprintf("%02X", Key));
725デフォルトの名無しさん:2006/10/14(土) 02:33:47
>>723
ARRAYOFCONSTマクロを使うてもある

 ShowMessageFmt( "%.4x", ARRAYOFCONST((Key)) );
726723:2006/10/14(土) 03:27:30
>>724-725
サンクスです。
DelphiではAnsiStringはクラスではなかったのでそんなルーチンがあるとは気付いてませんでした。
また、ARRAYOFCONSTマクロはDelphiにはなかったのでこちらの方も勉強になりました。
727デフォルトの名無しさん:2006/10/14(土) 21:51:34
TActionManagerなどのTAction〜系を貼り付けると、コードエディタがものすごく重たくなります。
しょうがないので今まで使ってこなかったのですが、何が原因なのでしょうか。
728デフォルトの名無しさん:2006/10/16(月) 00:05:05
>>727
もしBDS2006ならば、BCBに限らず要らんコトしすぎだから。
メモリは1GB推奨だってさ。アフォか?
俺はコードだけEMエディタ使ってるけど。
729デフォルトの名無しさん:2006/10/17(火) 19:42:41
BCB6使ってます。
関数printfで標準出力が見たいんですが、方法ありますでしょうか。
dos窓でexeファイル実行すると、アプリのフレームは表示されますが
すぐに戻ってしまいます。
それか、標準出力を表示させるパーツとかないでしょうか。
730デフォルトの名無しさん:2006/10/17(火) 20:38:25
>>729
まさかエクスプローラでダブルクリックしてないだろうな?
731デフォルトの名無しさん:2006/10/17(火) 20:43:17
リンカの追加オプションに-apを付けてみるとどうだろう
732デフォルトの名無しさん:2006/10/17(火) 21:22:51
>>730
void __fastcall TForm1::Button1Click(TObject *Sender)
{
printf("hoge");
}
ボタン押したら、hogeって表示させようと思ってるんですが。
dos窓で、Project1.exeを入力してEnter押してます。

>>731
コマンドラインからbcc32を入力して-apを付けるんですよね。
-apってコンソールアプリケーションのことみたいですが、
作りたいのはWINアプリです。説明が下手ですみませんでした。
733デフォルトの名無しさん:2006/10/17(火) 22:59:30
>>732
IDEのプロジェクトオプションのリンクのとこに追加オプションというのがある。
エクスプローラから実行してもdos窓がでるけどフォームとかは使えるよ。
734デフォルトの名無しさん:2006/10/18(水) 00:24:48
OutputDebugString("hoge");
をイベントログで見るとかそういう話じゃないの?
735デフォルトの名無しさん:2006/10/18(水) 00:52:01
>>733
バージョン6使ってますが、プロジェクトオプションにいくと
いろんなタブがあって、その中にリンカ、リンカ(詳細)とかありました。
全部のタブ見てみましたが、どこを変更すればよいかわかりません。

>>734
OutputDebugString検索してみました。
リアルタイムで表示できないってありましたが、ほぼこれをしたいです。
printfみたいにリアルタイムで表示させたいんです。
ついでにこの解説してあるページにprintfについて、
基本的にprintfはWINDOWSで使えないとありました。
MEMOに表示させるとかしか無いでしょうか。
736デフォルトの名無しさん:2006/10/18(水) 02:12:50
>>735
実際にコーディングして確かめました?
OutputDebugStringが実行されると即時表示されるのですが。

TMemoで使うならsprintfになると思うけど、、。
737デフォルトの名無しさん:2006/10/18(水) 07:25:22
>>736
やってみたところリアルタイムで出てきました。
すごい便利です。
ありがとうございました。
738デフォルトの名無しさん:2006/10/19(木) 07:27:41
フォーム内で、ドラッグ&ドロップするのは開発者ガイド見て
できたところなんですが、フォーム外から取得する方法知りたいです。

エクスプローラから、ファイルをフォーム内に落として、
ファイル名を取得したいと思ってます。
よろしくお願いします。
739デフォルトの名無しさん:2006/10/19(木) 07:43:43
C++Builder ドラッグ ドロップ
でググればいいと思うよ
740デフォルトの名無しさん:2006/10/19(木) 09:15:02
>>739
カタカナで検索したほうがよかったですか。
参考になりそうなページがいくつか出てきました。
ありがとうございました。
741デフォルトの名無しさん:2006/10/19(木) 12:59:37
D&Dは他から持ってくるのは簡単なんだけどねえ
逆はなんであんなに…
742デフォルトの名無しさん:2006/10/19(木) 14:30:53
ttp://www.mahoroba.ne.jp/~makkie7/BCB/index.htmlの
拡張コンボボックスがインストできない。

[リンカ エラー] Error: 未解決の外部参照 '__fastcall Dialogs::TOpenDialog::Execute(void *)'
が C:\DOCUMENTS**** から参照されました

BDS2005
743デフォルトの名無しさん:2006/10/20(金) 08:20:32
>>741
ファイルドロップの受け入れだけOS標準のラッパーがあると考えるんだ。
744デフォルトの名無しさん:2006/10/21(土) 18:21:53
かれこれ一ヶ月ぐらいBCB6使ってますが、チルダ付きのファイル名
Unit1.~h Unit1.~CPPとかたくさんできるんですがなんででしょうか。

プロジェクト名とCPPファイルの名前聞いてきますが、
名前変えただけだと、リンクエラーみたいに、コンパイルできないときもあるんです。
そのうち、Project1に上書きしてしまったり。
なんかこわいです。
745デフォルトの名無しさん:2006/10/21(土) 19:25:14
>>744
それバックアップファイルだから。
BDS2006からちゃんと別フォルダに作られるようになったよ。
746デフォルトの名無しさん:2006/10/21(土) 20:58:53
>>774
つ [環境オプション]
747774:2006/10/21(土) 22:13:46
呼んだか?
748デフォルトの名無しさん:2006/10/21(土) 23:50:22
>747
はやってんのか、それ
749デフォルトの名無しさん:2006/10/22(日) 04:55:34
>>745 >>746
お返事どもです。
バックアップファイルでしたか。
閉じるときにプロジェクトとCPPファイル聞いてくるのも
なんとなくわかりました。
750デフォルトの名無しさん:2006/10/22(日) 09:34:23
749です。
プロジェクト名とCPPファイル名を同じにすると、
WINMAINが無いとか出てくるみたいです。
これが原因だったのかなぁ。
751デフォルトの名無しさん:2006/10/22(日) 21:12:52
752デフォルトの名無しさん:2006/10/22(日) 23:55:33
>>751
あああ、ほんとだ。
すみませんでした。

でも、予想が当たって良かったです。
753デフォルトの名無しさん:2006/10/24(火) 23:41:47
文字列を0詰めする方法を教えてください。

"abc" → "000abc"
754デフォルトの名無しさん:2006/10/25(水) 00:40:01
const int MaxLength = 8;
AnsiString str = Edit1->Text;
Edit2->Text = str.StringOfChar('0', MaxLength - str.Length())+str;
755デフォルトの名無しさん:2006/10/25(水) 20:45:15
builder 6 pro には fastnet は付属してないんですか?
exampleの httpdemoがコンパイルできないんです。
756デフォルトの名無しさん:2006/10/25(水) 21:25:13
>753
printfの書式?それとも文字列に出力?
http://ja.wikipedia.org/wiki/Printf
文字列バッファへの出力ならsprintf
757デフォルトの名無しさん:2006/10/26(木) 15:19:38
TMemo上でマウスがクリックされたとき、カーソルが何行目にあるかを
取得したいのですが、どうすればいいでしょう?
758デフォルトの名無しさん:2006/10/26(木) 16:12:24
>>757
CaretPos
759デフォルトの名無しさん:2006/10/26(木) 18:07:11
初歩的な質問ですが、よろしくお願いします。
module.cppに、モジュールの関数を定義しました。
void __fastcall TDataModule::say_num(){
    //数字を表示するだけです
    printf("%d\n",n);
}

この関数を使う方のファイルjikko.cpp(ジッコウ)
でグローバル変数int nを定義しました。
グローバル変数なのでそのまま使えると思ったのですが、
コンパイルすると、[C++ エラー] module.cpp: E2451 未定義のシンボル n
と出てしまいます。確かにmodule.cppでは、定義してないんです。
どのようにすると、jikko.cppのnをモジュールmodule.cppのnに渡せるのでしょうか。

jikko.cppのコードですが、int nを定義して下記のように呼び出しているだけです。
DataModule->say_num();

よろしくお願いします。
760デフォルトの名無しさん:2006/10/26(木) 18:16:05
>>759 です。
補足です。
say_num()関数にintの引数を取れるように
する以外で考えております。
よろしくお願いします。
761デフォルトの名無しさん:2006/10/26(木) 19:00:15
>>759です

jikko.cppで、
extern int n=1;と定義

module.cppで、modu_ex.cppのnを参照するため
#include "modu_ex.cpp"

とすると、n=1が参照できるようになりました。
この処理で大丈夫でしょうか。
762デフォルトの名無しさん:2006/10/26(木) 19:31:16
根本からダメっぽいので、残念ながら、大丈夫とはいえないな。

基礎を書籍等で習得するべき。
掲示板の数行のやりとりで教えられる領域じゃないように見える。
763デフォルトの名無しさん:2006/10/26(木) 20:27:02
超初心者的な話じゃないかもしれませんが宜しくお願いします。
聞きたいのはメッセージフックに関してです。

通常のアプリケーションではWndProcのオーバーライトで
独自のメッセージのやり取りおよび、イベントの受け取り等は出来きたのですが、
それをコンポーネント化しようとすると、呼び出し元のWndProcを操作せねばならず
他で見かけたDelphiソースみたいに、親のWinProcアドレスを挿げ替える方法も
出来ないものかと色々ためしましたが上手く行きませんでした。

で、ローカルフック関係で色々調べて試して見たのですが、
MFC関連は結構引っかかって色々試しては見たのですが、
これもコンポーネントとして持たせようとすると上手く行かないのです。
理想は、プロパティに独自のメッセージを入れると、そのメッセージが親アプリに
送られてきた時にイベントを発生させてくれるものを作りたいのです。

お勧めのサンプルソースやHP等ありましたら宜しくお願いします。
764763:2006/10/26(木) 20:32:01
すいません、ちとへんな文章になってますね。
もう3日ほど試行錯誤でてんぱってるみたいです(^^;

短く書くと、ローカルフックコンポーネントを作りたいので
何処か参考になるソースやHPがありましたら宜しくお願いします。

……二行で済む話を長々書いてしまったorz
765デフォルトの名無しさん:2006/10/26(木) 20:48:32
>>762
お返事ありがとうございます。
>module.cppで、modu_ex.cppのnを参照するため
>#include "modu_ex.cpp"
すみません。ファイル名間違えてました。
>module.cppで、jikko.cppのnを参照するため
>#include "jikko.cpp"
でした。

ネットで「externで宣言したら、使いたいユニットで
その宣言したファイルをインクルードする。」
と書いてあったのでそのままインクルードしました。

手元の本見たら、ヘッダーファイルにextern宣言してました。
jikko.hを作ってそこで宣言したほうが良いってことでしょうか?
766デフォルトの名無しさん:2006/10/27(金) 01:07:57
>>765

//jikko.h
extern int n;

//jikko.cpp
int n;

//module.cpp
#include "jikko.h"

これでヲケ
ただし、ひじょ〜〜〜〜〜〜〜に不味い設計
BCBのフォーム周りは似た事してるけどさ

正解は
>say_num()関数にintの引数を取れるようにする
またはポインタないし参照をとるようにする
767デフォルトの名無しさん:2006/10/27(金) 04:11:35
>>766

詳しく解説ありがとうございます。
あんまり良く無い設計でしたか。
特別なときだけ使うようにしたいと思います。
768デフォルトの名無しさん:2006/10/27(金) 17:15:33
Form上にTEditを2つ貼り付けます。仮にEdit1, Edit2とします。
エクスプローラからファイルをドラッグアンドドロップして
ファイル名を取得してTEditに表示させたいのですが、
ドロップしたマウスカーソル位置がEdit1上ならファイル名はEdit1に、
同様にマウスカーソル位置がEdit2上ならファイル名はEdit2に表示させたいのです。
表示させるTEditのターゲットを切り替えたいのです。

DragAcceptFiles(Edit1->Handle, true);
DragAcceptFiles(Edit2->Handle, true);
とすべきなのでしょうか。またその場合のMESSAGE_MAPはどのように記述すべきでしょうか。

とりあえず
DragAcceptFiles(Handle, true);
とした上で、DragQueryPointで取得した座標値でターゲットの判断をしていますが、
こんなことしなくても出来るんじゃないかと思いまして。
769デフォルトの名無しさん:2006/10/27(金) 19:52:32
>>768
TEditから派生させてWindProcメソッドをオーバーライド
770デフォルトの名無しさん:2006/10/27(金) 22:34:57
すみません、2つだけ質問させて下さい。

1つ目は、乱数の値を取得する際なんですが、どのサイトを見ても乱数の種でTime関数を
使うのを推奨してるのですが、分母が大きい場合(65536)に実行すると
時間の経過と共に徐々に取得してくる数値が大きくなってしまいます。
クリック時に乱数取得するように組んでみると…

クリック→100代 クリック→200代 クリック→300代 

という風に徐々に徐々に増えていってしまいます。
逆にSRAND関数を使わない場合はちゃんとバラけた乱数を拾ってきます。
プログラムを起動しなおしても、同じ数値は拾ってきません。
これはC++BuilderのRand関数はC++などとは違い、種をリセットしない方が
良いという事なのでしょうか?

もう一つは、先ほどの分母に関してなのですが
Rand関数で返ってくる値は32768が最大なのでしょうか?
65536個の乱数を取得したいと考えているのですが、それは無理なのでしょうか?

ぜひ教えて頂ければと思います。
よろしくお願いします。
771デフォルトの名無しさん:2006/10/27(金) 22:46:17
>>770
通常、乱数ジェネレータの初期化(srand)は1回だけやればいい。
あと、0x7FFF以上の値が欲しければ_lrandを使えば0x7FFFFFFFまで取れる。
772デフォルトの名無しさん:2006/10/27(金) 23:01:33
>>771
ありがとうございました!!
_lrandで無事解決しました。

2番目の質問の方は、どうやらsrand関数にばかり目が行ってて
randomize関数を毎回呼び出していたために変な取得の仕方を
してたような感じでした。
多分これで大丈夫だと思います。助かりました!
ありがとうざいます。
773デフォルトの名無しさん:2006/10/27(金) 23:24:56
何度もすみません。もう一つ質問をお願いします。

int a,b;
float c;
で宣言しておき

c = a / b;

とする場合に小数点1桁までをLabelで表示したい場合が分かりません。
ceil関数なども調べてみたのですが、小数点1桁までの切り上げが出来ませんでした。
質問ばかりで申し訳ありませんが、よろしくお願いします。
774デフォルトの名無しさん:2006/10/28(土) 00:08:06
>>773
書式付の編集で四捨五入をしてくれる

char str[100];
sprintf(str, "%5.1f", (double)a/b);
775デフォルトの名無しさん:2006/10/28(土) 01:18:42
BDS2006ですが、コードのアウトラインがうまく表示されていません。
    //---
 曰 void ...
 │ {
 │  ...;
 └ }
    //---

こんな感じが普通だと思うんですが、

 曰 //---        //---          //---
 │ void ...        void ...     曰 void...
 │ {          曰 {          │ {
 └  ...;    .    │  ...;    .    └  ...;
    }          │ }            }
    //---    .   └ //---    .     //---

このような風になってしまいます。
文法的には間違ってないですし、もちろんコンパイルもできます。
書き方が悪いのでしょうか。
776デフォルトの名無しさん:2006/10/28(土) 13:16:00
773の者ですが、回答ありがとうございます。

例えばdouble型の数値a,b,cがあって a/bの結果をcに代入してLabelで小数点1桁まで表示したい場合

double a,b,c;
c = a / b;

Label1->Caption = c;
とすると小数点以下が延々と表示されます。これを小数点1桁までの表示としたいのですが
>>774でお答え頂いたような編集式で記述するのでしょうか?
それともLabelのプロパティなどで設定出来るのでしょうか?
777デフォルトの名無しさん:2006/10/28(土) 13:35:01
sprintf実行後に
Label1->Caption = str;
すればいいんでねーの?
778デフォルトの名無しさん:2006/10/28(土) 14:53:19
VCL使うなら
Label1->Caption = FormatFloat("0.0", c);

しっかし、Label1->Caption = c;が、なんでエラーにならんのだ。
AnsiStringは、数値を代入してもOKだったなんて。
今まで、Float(Int)ToStr(***)と無駄な事をしていた・・・
779デフォルトの名無しさん:2006/10/28(土) 17:05:54
>>778

っ[ AnsiStringのコンストラクタ ]
780デフォルトの名無しさん:2006/10/29(日) 07:49:07
POP3サーバからUIDLを取得する方法を教えてください。
781デフォルトの名無しさん:2006/10/30(月) 13:44:57
外部のコンソールアプリを起動して、その標準出力をとりこみたいのですが、
どういう方法があるでしょうか?
782デフォルトの名無しさん:2006/10/30(月) 14:01:16
>>780
RFC嫁
783768:2006/11/02(木) 13:54:36
>>769
すみません。サンプルのソースとか頂けないでしょうか…
784デフォルトの名無しさん:2006/11/02(木) 14:33:46
>>783

typedef void __fastcall (__closure *TDropFileEvent)(System::TObject *Sender, std::vector<AnsiString> Files);
class TMyEdit : public TEdit
{
public:
 __fastcall TMyEdit(HWND ParentWindow) : TEdit(ParentWindow) { DragAcceptFiles(Handle, TRUE); }
__published:
 __property OnDropFile = { read=FDropFileEvent, write=FDropFileEvent };
private:
 TDropFileEvent FDropFileEvent;
protected:
 virtual void __fastcall WndProc(Messages::TMessage &Message) {
  if (Message.Msg == WM_DROPFILES)
  {
   std::vector<AnsiString> files;
   // filesにファイル名格納
   FDropFileEvent(this, files);
  }
  TEdit::WndProc(Message);
 }
};
785デフォルトの名無しさん:2006/11/02(木) 15:06:08
>>784
これをどうやって使えばいいでyそうか?
786デフォルトの名無しさん:2006/11/02(木) 21:26:10
    _, ._
  ( ゚ Д゚)
  ( つ旦O
  と_)_)

    _, ._
  ( ゚ Д゚)   ガシャ
  ( つ O. __
  と_)_) (__()、;.o:。
          ゚*・:.。
787デフォルトの名無しさん:2006/11/03(金) 00:51:04
>>783

まんま>>769
これの意味が分からんと言われたら
C++の入門書を読みましょうとしか答えようがないな
788デフォルトの名無しさん:2006/11/03(金) 00:52:17
↑レス番違った
↓こっちが正解
>>784

まんま>>769
これの意味が分からんと言われたら
C++の入門書を読みましょうとしか答えようがないな
789デフォルトの名無しさん:2006/11/03(金) 07:58:19
>>768
というかただ単にTApplicationEvents::OnMessageでメッセージ拾って
Edit1、Edit2とHanlde比較すればすむんじゃね?
790デフォルトの名無しさん:2006/11/06(月) 18:12:33
BCB5で作成したプロジェクトをBCB6で開く時に、「'-'は整数ではありません」で開けません。
'-'を検索し、'-'を全て無くしても同じ結果でした。
BCB5で新規プロジェクトを作成し何も変更せずに保存したものは、BCB6でも開けます。
何かわかりますか?

791デフォルトの名無しさん:2006/11/06(月) 19:04:23
数値があるべきところに - があるんじゃね?
makeファイルの-オプションのところとか。
792デフォルトの名無しさん:2006/11/06(月) 19:31:06
790です
>>791
「makeファイルの-オプションのところ」とはどこで確認するのでしょう??
なにぶん初心者なもので・・・。

メイクファイルの作成で出来た「***.mak」はテキストで開いてみたのですが、
BCB6でも開ける新規プロジェクトの「***.mak」と比較しても特にめぼしいとこはありませんでした。
また、ツール→環境オプション、プロジェクト→オプションも見たのですが特にめぼしいとこは
ありませんでした。

793デフォルトの名無しさん:2006/11/06(月) 21:48:02
790です

解決しました。
BCB5で、プロジェクト→オプション→Pascal→構造体を境界配置 にチェックをつけたら
BCB6で開けました。理由は不明。
794デフォルトの名無しさん:2006/11/07(火) 02:36:26
class Color{
int color;
};

//1番
Color* c = new Color;
//2番
Color* c2 = new Color();

1番と2番の書き方って何か意味の違いはあるのでしょうか
795デフォルトの名無しさん:2006/11/07(火) 11:44:16
790で質問した者です。
BCB5→BCB6 移行の続きなのですが、今度はリンクの所で下記エラーになります。
 
 [リンカ致命的エラー]Fatal:ファイル VCLE50.LIBが開けません。

検索するとBCB5のフォルダ((BCB)\Lib\Debug/Release)には有り、BCB6のフォルダには無し。
コピーしたら、リンクは出来たのですがVCLE50.LIBはBCB5のファイルですよね?
VCLE.LIBがBCB6のフォルダにはあるのですが・・・。
プロジェクトファイルの下記部分を確認するような事が書いてあったので、確認してみましたが
VCLE50.LIB は書いてませんでした。
<SPARELIBS value="rtl.lib vcl.lib"/>
<PACKAGES value="vcl.bpi rtl.bpi"/>

なぜ、VCLE50.LIB を見ようとしてしまうのでしょう??


796デフォルトの名無しさん:2006/11/07(火) 15:57:21
使用OS サーバー Windows 2003 Server
  クライアント WindowsXP
DB   SQL Server2005
開発環境 Borland C++Builder6.0 Pro

上記環境でアプリを作成するのですが、SQL Serverへのアクセスは何が一番最適でしょうか?

SQL Server2005の文献を読む限り、「.NET Framework Data Provider for SQL Server」の利用が
推奨と書いてあり調査したがどうもBorland C++ は.NETに対応していない?ようで、SQL Native Clientを使用する?ようなのですが、
どのコンポーネントを使えば良いか分かりません。(TADO***,TSQL***,TDatabase・・・)

アドバイスお願いします。
(接続→更新→終了までの簡単なサンプルコードを教えて頂けると助かります。
参考サイトでも構いません。)
797デフォルトの名無しさん:2006/11/07(火) 22:38:41
TRichEditで左にマージンを入れる方法がわかりません。教えてください。
RichEdit1->Paragraph->LeftIndent=xx; として
RichEdit1->Lines->Add("xxxxx");
としても変化がありませぬでした。
798デフォルトの名無しさん:2006/11/09(木) 00:42:20
イメージコンポーネントにトラックバーに対応して長さがかわり、
さらにトラックバーに対応して回転する線を描画するプログラムを
作成するってゆう宿題をやってるんですがまったくわかりません…
長さを調整することはできるのですが角度がどうすればよいのかわかりません。
プログラム自体に線の長さや位置の初期値を組み込んだのがおかしいのかな。
誰か教えてください。
799デフォルトの名無しさん:2006/11/09(木) 15:40:17
>>797
×LeftIndent
○TopIndent
800デフォルトの名無しさん:2006/11/09(木) 23:03:53
>>799
エラーになります。
あと、ヘルプのどこを探しても、TopIndent が見つかりません。
801デフォルトの名無しさん:2006/11/10(金) 03:42:15
つ[FirstIndent]
802デフォルトの名無しさん:2006/11/10(金) 04:05:45
>>798
ここのアプレットで、原点(0,0)を始点として渦巻きを外に向かってグルグルと描いていくかんじ?
トラックバーのPositionが増えるに従って渦巻きを大きくしていくかんじというか。
803デフォルトの名無しさん:2006/11/10(金) 04:06:17
804デフォルトの名無しさん:2006/11/10(金) 06:52:47
>>802>>803
なんとかなりそう!サンクス!
805デフォルトの名無しさん:2006/11/11(土) 01:12:52
DelphiからBCBにスイッチしました。
Delphiのように、クラスを作る際は、TObjectから派生させるべきですか?
806デフォルトの名無しさん:2006/11/11(土) 13:12:08
>>805
ObjectPascal型クラス特有の機能(基底クラスのポインタから派生クラスの型取ってきたいとか)使うんでなければC++型クラス使うのが一般的。
807デフォルトの名無しさん:2006/11/11(土) 16:27:02
TObjectから派生すると、静的利用ができないのが面倒だな
808デフォルトの名無しさん:2006/11/11(土) 17:03:09
Ctrl + Shift + C による補完はできないんですか?
809デフォルトの名無しさん:2006/11/11(土) 21:40:48
>>801
で・・・できました。
ありがとうございます。
でも、LeftIndentって何のためにあるんでしょうか?
810デフォルトの名無しさん:2006/11/12(日) 22:17:30
>>809
同一パラグラフの2行目以降のインデント幅 FirstIndentに加算される
なのでパラグラフが1行しかないと反映されない
811デフォルトの名無しさん:2006/11/18(土) 00:51:08
>>805
いや、全部TPanelから派生させるべきだよ。
812デフォルトの名無しさん:2006/11/20(月) 03:17:24
WinAPIの質問(?)になってしまうかも知れないんですけど、
よろしくお願いします。

sndPlaySound関数を利用して二つのWAVファイルを時間差で再生するプログラム
を作りたかったのですが、sndPlaySoundでは複数のWAVファイルを重複して再生
することは出来ないようでした。

時間差と音量の組み合わせが1000種類程あるので、事前にミックスして一つの
WAVファイルにまとめるのは現実的ではありません。

というわけで、複数のWAVファイルを時間差で再生できる関数などありましたら
よろしくお願いします。
813デフォルトの名無しさん:2006/11/20(月) 03:25:24
MCIとか。

mciSendString("open A.wav type waveaudio alias A", NULL, 0, NULL);
mciSendString("open B.wav type waveaudio alias B", NULL, 0, NULL);
mciSendString("play A", NULL, 0, NULL); // ここからA.wavが鳴る
一定の時間後
mciSendString("play B", NULL, 0, NULL); // ここからB.wavが鳴る
・・・
鳴り終わったら後始末を忘れずに
mciSendString("close A", NULL, 0, NULL);
mciSendString("close B", NULL, 0, NULL);

多分こんなかんじだったと思う多分
814デフォルトの名無しさん:2006/11/20(月) 03:31:40
同時に複数のwavを鳴らしたいならDirectSoundでできる。
ファイルの読み込みがちょっと面倒だけどね。
815812:2006/11/20(月) 03:42:09
ありがとうございます。調べてみます。
すばやい反応本当に感謝です。
816812:2006/11/20(月) 05:10:19
度々、すいません。
MCIとDirectSoundってどっちが手軽にできますか?
色々調べてみたのですがまだ数回、builderをかじった程度の自分では
どちらも敷居が高すぎてなかなか手がつけられそうにありません。

こちらの都合で申し訳ないですが、期限が迫っており、ゆっくり勉強している時間がありません。
>>812に書いた二つのWAVファイルの時間差再生ができる最低限の機能さえ
実現できればいいのですが、どちらの方法が短時間でできるでしょうか?

あと、ベクターで
「C++Builder用 DirectSoundを(比較的)簡単に扱えるDLL(サンプル付)」
というのを発見したのですが、バージョンが違うせいか、うまく動作しませんでした。
他にこのようなライブラリをご存知でしたら、お願いします。
環境はWinXP Professional , PS2 C++Builder 5 , DirectX9.0cです。
何でも良いので、よろしくお願いします
817デフォルトの名無しさん:2006/11/20(月) 06:02:42
私の知る限り、MCIでは同時再生はできなかったはず。
818デフォルトの名無しさん:2006/11/20(月) 09:44:42
TTreeViewに於いて、TListBox::MultiSelectみたいなことって出来ないのでしょうか?
819デフォルトの名無しさん:2006/11/21(火) 04:28:27
よくパスワードを保存する□チェックがあって、チェックをすると
次から"*****"が表示されて、再入力しなくてもいいようなのあります。
あればどうすればよいのでしょうか。
テキストファイルか何かにパスワード保存しておいて、ただ読み込むだけ
ということではないですよね。
よろしくお願いします。
820デフォルトの名無しさん:2006/11/21(火) 04:40:36
SHAutoComplete()
821デフォルトの名無しさん:2006/11/21(火) 07:30:12
>>816
Delphi用のDirectSoundコンポーネントは、いくつかあると思うが・・・
DelphianWorldとか、Toryyとか探してみた?
あとは、Quadruple Dでもできたはず
822デフォルトの名無しさん:2006/11/21(火) 07:58:19
>>820
ありがとうございます。
ttp://www.runan.net/program/tips/API/shlwapi_SHAutoComplete.shtml
ttp://mist.clueup.org/blogs/1/archive/2006/09/29/_EA81D552DC888C5B92307F4F633066307F308B30_.aspx
こういうページ見つけて、使い方はわかったんですが、
****を表示させるのがわからないです。
SHAutoComplete関数のフラグとか****が表示されるようなのがあるんでしょうか。
自分でなにかプログラミングしないといけないんでしょうか。
難しいです。
823デフォルトの名無しさん:2006/11/21(火) 08:14:33
>>822
横から失礼します。
パスワードは基本的に別のエディットボックスですので、ユーザーID用の
ボックスにEnterが入力された時点でどこかに暗号化しておいたパスを
拾いに行くようにするしかないような気がします。

IEの場合は多分NTUSER.DAT当たりに記録されているのではないかと
思うのですが・・・外れていたらすみません。
824デフォルトの名無しさん:2006/11/21(火) 12:46:46
>>823
レスありがとうございます。
オートコンプリートってちょっと違うのでしょうか。
わかりませんでした。

えっと、保存する場合は、暗号化前の生のパスワードでいいんですよね?
暗号化したパスワードを保存すると、*の数変わってしまいますし。
md5でと思ってたんですが、復号化できる暗号ロジック使えば、
暗号化したパスワードを保存しても大丈夫なんでしょうか。
それで、EditのPasswordCharを*に。

初心者なので壁が多いです。><
825デフォルトの名無しさん:2006/11/21(火) 23:47:34
稀に今まで動いていたものを、忘れた頃に動かすと
クラスTBevelが見つかりませんとか言われてしまうんですが、
なんでしょうか。ブレークを無視するとエラーダイアログ連発になります。
んで、Bevelを一回剥がして貼りなおすと直ります。
面倒なんで、誰が原因を知っている人がいましたら教えてください。

BDS2006のBCBです。
826デフォルトの名無しさん:2006/11/24(金) 21:37:36
デバッグしながらコードを修正していくとブレークポイントがずれていくのですがこれをずれないようにする方法はありますか。
たとえばコードにブレークポイントを埋め込めるとか。
827デフォルトの名無しさん:2006/11/25(土) 07:04:33
日本語環境で作成したプログラムを英語版Windowsに持って行くと、エラーが発生したときのダイアログが
日本語(文字化けして読めない)になってしまいます。
エラーを英語にすることはできないでしょうか?
828デフォルトの名無しさん:2006/11/25(土) 09:44:21
できる
829デフォルトの名無しさん:2006/11/25(土) 10:43:34
やり方を教えてください
830デフォルトの名無しさん:2006/11/25(土) 10:49:40
>>827
俺以前bcb6の環境で同じ現象が出て、プロジェクトの言語設定を英語にしようが
言語リソースを使おうが直らなかった(MessageBoxを呼んだ後のVCL内の処理で
多言語対応がされてないっぽい)。
結局『CreateMessageDialog使って一度TFormオブジェクトを生成した後、その
キャプションを無理矢理英語に書き換えて表示する』という力業で切り抜けた
記憶がある。
個人的にはBCB(とういかVCL)のバグだったと思ってるんだけど、違うのかね?
6より後のバージョンは知らないけど。

>>828
俺も参考までに是非知りたい。教えてPlz。
831デフォルトの名無しさん:2006/11/25(土) 11:01:35
5あたりは各国語用のリソースDLLあったような‥‥
832デフォルトの名無しさん:2006/11/25(土) 13:50:19
C++Builderは使ってないんでよくわからんけど、多言語対応は入っているはず。
たとえば日本語のプロジェクトで生成したものを英語(ENU-ENglish/Us)ロケールで実行するときは
実行ファイル名の拡張子を.ENUにした言語リソースを探して見つかればそちらのリソースを使う。
言語リソースは新規作成のリソースDLLウィザードで作る(Pro以上)。ただしこのときに
SysConst.pasにあるresourcestringまでいちいち書き換えるのは不毛なのでCD-Rにある
英語版のライブラリに切り替えてからリソースDLLウィザードを使うのが吉(そのままだと
デフォルトで生成されるresourcestringの中身が日本語になってしまう)。
833832:2006/11/25(土) 13:51:21
× CD-R
○ CD-ROM
834デフォルトの名無しさん:2006/11/25(土) 23:17:48
>>832
うーん・・・リソースDLLはもちろん使ったんだけど、
SysConst.pasって関係あるのかな?
例えばMessageBoxでMB_YESNOを指定した時のボタンのキャプションも
日本語で表示されてたけど(本来英語環境ではYes/No表示のところを
はい/いいえで表示しようとして化ける)、こんなところまでSysConstで
管理してないような。
英語版ライブラリの使い方も探したけど、見つからなかったんだよね。
少なくともインストールディスクには入ってなかった気がする。
全部BCB6の話ですが。
835デフォルトの名無しさん:2006/12/01(金) 17:38:23
ボタンをクリックしたら、スクロールバー(Visibleがfalse)に選択が移る
ようなことってできますか?

開始ボタンを押したら後は矢印押すだけで内部の変数が変わるようなプログラムを
作りたいのですが。プログラムを使っている人にはその変数の値がどの程度か知られたくないのです。
あと、できれば操作中はマウスを使わなくてすむようにしたいです。
836デフォルトの名無しさん:2006/12/03(日) 16:21:58
RitchEditでフォーカスが別のボタンなどが選ばれている時に
内容を自動スクロールしたいのですが
ScrollByメソッドを使っても上手くいかないみたいです
それ以外の方法はありますでしょうか?
837デフォルトの名無しさん:2006/12/04(月) 03:08:07
本当に基本的なことで申し訳ないのですが、
TEditから入力してもらった文字列をchar型の変数に代入するにはどうしたらよいのでしょうか?

char型の変数 = Edit1->Text;

では左辺値がありませんとエラーになってしまいます。

int型の変数 = StrToInt(Edit1->Text);

は通ったので大丈夫だとおもったのですが・・・

よろしくお願いします。
838デフォルトの名無しさん:2006/12/04(月) 07:02:12
>>837
『文字列をchar型の変数に代入する』という発想が既におかしい。
C言語の基礎から勉強しなおし。
839デフォルトの名無しさん:2006/12/04(月) 07:16:59
Edit1->TextはcharじゃなくてAnsiStringだろ。
AnsiStringで宣言すればイコールで代入できるよ。
840デフォルトの名無しさん:2006/12/04(月) 08:53:29
>>837
char* AnsiString::c_str() const;
841デフォルトの名無しさん:2006/12/04(月) 10:54:29
>835
不可視のコントロールにフォーカスを設定はできなかったはず
開始ボタンとか必要なコントロールでOnKeyDown/Upイベントを定義すればいいんじゃないかな
842デフォルトの名無しさん:2006/12/04(月) 14:02:19
>>840
char c[256];
strcpy(c, Edit1->Text.c_str());

この方が無難じゃない?
843デフォルトの名無しさん:2006/12/04(月) 20:15:27
>>837

char c = Edit1->Text[1];
844デフォルトの名無しさん:2006/12/06(水) 09:49:50
Variant型のExec内で使えるプロパティ、メソッド等のリストを見られる
HP等は無いでしょうか?
845デフォルトの名無しさん:2006/12/17(日) 21:52:38
本日、初めてVCLのTControl::WindowProcに自分関数を設定してみました。
このような具合にです。

TForm1::TForm1(略) {
WindowProc = MyWndProc;
}

TForm1::MyWndProc(Messages::TMessage &Message){
(処理)
}

それでWM_TIMERのwParamを拾おうとしてMessage.WParamを見ると
本来はタイムアウトになったタイマのIDが入っているはずなのですが、
常にゼロが入っています。(´;ω;`)

私の使い方が悪いのでしょうか?
846845:2006/12/17(日) 22:09:11
ageちゃえ。
847デフォルトの名無しさん:2006/12/18(月) 09:43:29
>>845
自クラス内でウィンドウプロシージャ弄る場合はWndProcメソッドをオーバーライドしる

void __fastcall TForm1::WndProc(TMessage& message)
{
 if (message.Msg == WM_TIMER)
 {
  OutputDebugString(AnsiString().sprintf("Message: %08X WPARAM: %08X LPARAM: %08X", message.Msg, message.WParam, message.LParam).c_str());
  KillTimer(Handle, message.WParam);
 }
 TForm::WndProc( message);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 SetTimer(Handle, 0x2, 100, NULL);
}

普通に動いているが‥‥
848デフォルトの名無しさん:2006/12/18(月) 18:45:46
ブラウザのIEのツールバーに、戻る、中止、更新、ホーム
とかボタンありますが、マウスのカーソル上に置くと、
なんのボタンか表す文字が出てきます。

こういうのやりたいですがわかりません。
よろしくお願いします。
849デフォルトの名無しさん:2006/12/19(火) 14:35:57
TEditやTButtonコントロールがフォーム上にあるとして、
それのText(Caption)と縦座標のみ異なる複製を動的に作成したいのですが、
スマートなコーディング方法がないでしょうか

一応、newでコントロールを作成してプロパティやイベントを一個一個コピー
していくやりかたではできたのですが、数が多くてステップ数が馬鹿デカくなって困ってます。
850デフォルトの名無しさん:2006/12/19(火) 14:53:18
>>849
まさか、関数化せずに一個一個newしているわけじゃないだろうな。
851デフォルトの名無しさん:2006/12/19(火) 15:09:49
>>849
複製はTPersident::Assign()使えなかったっけ?
852デフォルトの名無しさん:2006/12/19(火) 18:39:50
848です。

やりましたよ!
オブジェクトインスペクタのHintで出来ました。
使ってるアプリいくつか見たら、同じように黄色のバックに黒文字だったので、
標準でなんかあるのかと思ったら。

HTMLでも同じ風に文字出てきますよね。
ありがとうございました。
853デフォルトの名無しさん:2006/12/19(火) 20:10:14
CBC6でソフトウェアキーボードを作りたいのですが、
その際にキーボード部分をクリックした時に、アクティブな部分が変わらないよう、
常に非アクティブになるようにしたいのですが、
どうすればよろしいでしょうか・・・?
854デフォルトの名無しさん:2006/12/20(水) 00:01:17
CBC6って何だ?
なんて突っ込みは小学生並みだな
BCB6だろっ
855デフォルトの名無しさん:2006/12/20(水) 00:28:27
>>847
レス、ありがとうございました。
どうやら自分のSetTimerの使い方が悪かったようです。orz

ところで、SetTimerは第二引数のタイマ識別子として既存のタイマと同じものを使うと
新しい設定でタイマをつくりなおしてしまうとMSDNにありました。
VCLのTTimerはタイマの識別子を指定する仕組みではなかったので不用意に
TTimerとSetTimerを混在させると同じ識別子を使ってしまわないか心配です。
VCLのソースではSetTimerの識別子としては0か1しか使われていないように見えるのですが
いまいち自信がありません。

>>847さんはコード上で識別子に2を使われていますが、2以上ならVCLのTTimerをいっしょに
使っても重複しないものなんでしょうか?
みなさんはどうされていますか?
856デフォルトの名無しさん:2006/12/20(水) 00:39:44
>>855
TTimerは専用の不可視ウィンドウをインスタンス毎に作成してるからID重複しても問題ない。
Classes.pasのAllocateHWnd参照。
857デフォルトの名無しさん:2006/12/20(水) 01:22:40
>>853
TButtonじゃなくてTSpeedButton使ったら?
858855:2006/12/20(水) 01:37:22
>>856
なるほど。素人の取り越し苦労だったんですね…。(´ω`)
なにはともあれ感謝です。明日会社でご指摘の箇所を読んでみます。
VCLのソースは自分のプログラムのヒントになりそうなことがいっぱい書いてありそうですね。

それにしてもこんなにすぐ疑問を解決できるなんて、2chはすごいな。
859デフォルトの名無しさん:2006/12/20(水) 02:24:34
これからC言語を始めようと思ってるんですが、XPでフリーで使えるコンパイラありますか?
あとBorlandの一部が落ちてるような感じになってるのはいつものことなんですか?
860デフォルトの名無しさん:2006/12/20(水) 02:31:26
>>859
MinGW
とか
VisualC++ Express
とか
861デフォルトの名無しさん:2006/12/20(水) 02:34:05
ありがとうございます
C++Builde系はやっぱりないんですかね?
862デフォルトの名無しさん:2006/12/20(水) 02:46:23
>>859
Turbo C++
863デフォルトの名無しさん:2006/12/20(水) 02:59:06
ありがとうございました。この中から選んで頑張ろうと思います
864デフォルトの名無しさん:2006/12/21(木) 16:36:32
C++Builderの"SendInput"の使い方がよく分かりません。
文字をアクティブな部分に送るだけでよいので、
どなたかプログラムの例を挙げてもらえないでしょうか?
865デフォルトの名無しさん:2006/12/21(木) 16:51:03
フォームにボタンがButton1〜Button100まであって、
x番目のButtonのEnabledを変更するような場合、
if(x == 1)Button1->Enabled = false;
else if(x == 2)Button2->Enabeld =false;
else ・・・・・・・・・・・・・・・・・・
の、ようなことせずにxからボタンのアドレスを直接取得するような方法はないでしょうか?
とりあえず、TListにAdd(Button1);Add(Button2);・・・・・・Add(Button100);ってやっておいて、
TButton *btn=(TButton *)List->items[x]; btn->Enabeld = false; とやる方法を考えたのですが、
もっとかっこいい方法はないものでしょうか?
866デフォルトの名無しさん:2006/12/21(木) 17:32:59
>>865
FindComponent
867デフォルトの名無しさん:2006/12/22(金) 10:53:07
>>866
ピンポイントな解答、どもです。
やりたいことがあっても、その方法がなかなか見つけられない。
いつになったら超初心者を抜け出せるんだろうか。
868デフォルトの名無しさん:2006/12/22(金) 11:52:59
>>867
・Delphi向けのリソースを活用する
・気になることがあったらVCLのソースを覗く癖をつけておく(stdやperとかでソース無い場合は新TurboはExplorerでもソース付いてるからインスコ)
869デフォルトの名無しさん:2006/12/22(金) 21:21:09
基本的なアルゴリズムの本を最低3回は繰り返し読んで、手本となる見通しの良いソースを1本読みこなせば、相当レベルは上がる。
870デフォルトの名無しさん:2006/12/22(金) 23:34:21
ソース見るのは、いいよ。
Sourceforgeなんかで、Delphiのオープソースのソフトのソースとか漁るとか。
OpenJaneとかその辺。
871デフォルトの名無しさん:2006/12/23(土) 03:51:01
ソース見るのもいいけど多少敷居が高い場合もあるし、基本的にはググるのが最強じゃない?
同じようなこと考えてるヤツってのは他にも大抵はいる
872デフォルトの名無しさん:2006/12/23(土) 19:09:21
多少敷居が高いというか負荷があるくらいのソースを読めばレベルアップする。
ググってコピーしていたのでは、いつまで経っても低レベルのままだ。
873デフォルトの名無しさん:2006/12/25(月) 01:27:22
これをxpで使ってる香具師いる?
874デフォルトの名無しさん:2006/12/25(月) 01:36:03
AthlonXPで使ってますが
875デフォルトの名無しさん:2006/12/25(月) 12:05:18
FormやButton部分をクリックしたときに、それまでフォーカスされていた所から、
フォーカスを奪わないようにするにはどうすればよいのでしょうか?
876デフォルトの名無しさん:2006/12/27(水) 14:35:45
TStringGridで、選択している行のグリッド(一番左の列)をボタンがへこんだような状態に
描画する方法ってないでしょうか
877自己レス:2006/12/27(水) 15:45:58
ちょっと調べましたが、CellRect( 0, Row)で選択行の0列目のrectを取得して
DrawEdgeで直接描画する方法になるんですかね?
878デフォルトの名無しさん:2006/12/28(木) 01:35:31
>877
OnDrawCellイベントあたりを見てみたら?
879デフォルトの名無しさん:2006/12/28(木) 17:12:35
>878、どもです
OnDrawCellでこんな風にしました。
if( ACol == 0 && ARow == StringGrid1->Row ){
 DrawEdge(StringGrid1->Canvas->Handle,&Rect,BDR_SUNKEN,BF_RECT);
 StringGrid1->DefaultDrawing = false;
}else{
 StringGrid1->DefaultDrawing = true;
}
あと、選択行がわかったときに上記で描画した固定セルを元に戻す処理を
StringGridのMouseDownイベントで行う必要があるんですが、
CellRectで取得した固定セルのRectに対して、DefaultDrawingがtrueの時の描画を
再現しようとDrawEdgeを使っていろいろやったんですがうまくいきませんでした。
結局下のように自分で線を引いたりして再現させたのですが、他に方法がなかったのかな?と思ってます。
TRect R = StringGrid1->CellRect( 0, OldRow );
DrawEdge( StringGrid1->Canvas->Handle, &R, BDR_RAISEDINNER, BF_BOTTOMRIGHT);
DrawEdge( StringGrid1->Canvas->Handle, &R, BDR_RAISEDINNER, BF_TOPLEFT);
StringGrid1->Canvas->Pen->Color = clBtnFace;
StringGrid1->Canvas->MoveTo( R.Right-1, R.Top+1 );
StringGrid1->Canvas->LineTo( R.Left+1, R.Top+1 );
StringGrid1->Canvas->LineTo( R.Left+1, R.Bottom );
880デフォルトの名無しさん:2006/12/31(日) 01:23:04
VC6で作られたDLLを使いたいんですが、
わかりやすいHPなどがあれば教えてください
881デフォルトの名無しさん:2006/12/31(日) 14:48:32
>>880
implibでインポートライブラリ作成
882デフォルトの名無しさん:2007/01/03(水) 04:50:07
設定しておいたキー(F1等)が押されたときに(アクティブ、非アクティブに関わらず)
タイマーが動き時間になれば知らせてくれるソフトを作りたいのですが、
非アクティブ時にキーを判定→実行させる方法がわからず悩んでいます。

わかる方がいましたら教えていただけないでしょうか?
883デフォルトの名無しさん:2007/01/03(水) 10:53:44
>>882
RegisterHotKey()
SetWindowsHookEx(WH_KEYBOARD, ...)
884デフォルトの名無しさん:2007/01/03(水) 14:25:39
>>882
ラグナ厨かよ
885デフォルトの名無しさん:2007/01/07(日) 13:59:17
グローバルフックだからDLLからフック仕掛けるように。
886デフォルトの名無しさん:2007/01/09(火) 09:18:29
親フォームの中央に表示するメッセージボックスってないですか?
887デフォルトの名無しさん:2007/01/09(火) 10:41:49
親フォームのハンドル使えばよくね?
888デフォルトの名無しさん:2007/01/09(火) 11:31:45
ハンドルを渡すメッセージボックスっていうと、Win32APIのMessageBox?
引数にフォームのハンドル渡しても画面中央に表示されるんだけど、何か間違ってるかな。
889デフォルトの名無しさん:2007/01/09(火) 15:55:30
>>888
面倒だがWM_NCCREATEをフックしてサブクラス化する。
MFCはこの方法でオーナーウィンドウの中央に表示されるようになってる。
890デフォルトの名無しさん:2007/01/09(火) 18:04:57
新規フォーム使うのが楽だなw
891デフォルトの名無しさん:2007/01/09(火) 18:29:21
親フォームの位置を調べて、中央に移動させればいいだけじゃん。
892デフォルトの名無しさん:2007/01/09(火) 18:38:10
フォームを画面の中央に配置してから、MessageBoxを呼べば良い。
893888:2007/01/10(水) 08:25:54
>890
はい。新規に共通で使うフォームを作ることになりました。
作ってて一つ問題。フォームのCaptionがメッセージより長くなる場合、
Captionの横幅によってフォームの横幅を合わせるようににしたいのですが、
どうすればいいですか?
894デフォルトの名無しさん:2007/01/10(水) 14:28:23
>>893
int Textlen = Canvas->TextWidth(Caption);
if(Textlen > Width) Width = Textlen;
895デフォルトの名無しさん:2007/01/10(水) 14:29:39
プロジェクトオプションで、RTLを使わない、実行時パッケージを使わないにしたのですが、
他のPCで実行しようとするとMIDAS.dllが無いと出ます。
Delphiだと、MidasLibをusesのところに書けばmidas.dllを配らなくても良いらしいのですが、
C++Builderでもmidas.dllを使わなくても良いようにするにはどうすればいいのですか?
896デフォルトの名無しさん:2007/01/10(水) 14:35:55
BCB6PersonalかProfessional購入で迷っています。
用途は趣味のゲーム製作なのですが、挫折する事も考えると安価なPersonalが
魅力的です。
DirectXを使うようなゲームを作る場合、Personalでも問題ありませんか? 両
者の大きな違いとは、単に商業的に使えないという事だけでしょうか?

ちなみにBCBを選んだのは仕事でDelphiを使っているので、VCよりもとっつき
易いかかもしれないと思ったからです。
897888:2007/01/10(水) 14:43:14
>>894 どもです。
最初、TextWidthがCaptionの表示幅より小さい値になってたんですが、
FormのFontのSizeを大きくしたらうまくいきました。
これでいきます。
898888:2007/01/10(水) 16:12:48
たびたび質問すみません。
自分で作ったメッセージボックスは、アプリケーション起動時にCreateFormしないで
動的にフォームを作成、削除するようにしたいのですが、どうやればよいのでしょうか?
899デフォルトの名無しさん:2007/01/10(水) 20:34:29
使い慣れたDelphiでゲームを作ればいいのに、と思うのは俺だけ?

まあリファレンスはCのが多いからどちみちCを読めなきゃならないけど。
900デフォルトの名無しさん:2007/01/10(水) 22:33:08
>>899
はげどう
901デフォルトの名無しさん:2007/01/10(水) 22:38:22
>>898
WinMainにあるApplication->CreateForm(__classid(Txxxx), &xxxx);を消して
必要な時にnewしたらどうだね

(xxxxはフォームのクラス名ね)
902デフォルトの名無しさん:2007/01/11(木) 00:07:22
VCLフォームアプリケーションで、Flexで生成したlex.yy.cをリンクさせ
られず困っています。
FormのButtonクリック・イベントでlex.yy.cで実装されたyylex()をコー
ルさせたいのですが、未解決の外部参照だとリンクエラーが発生します。

*.cから別の*.c内定義の関数コールはできているのですが、*.c内で定義
されたラベルを*.cppで参照するには何か特別な記述が必要なのでしょうか?
903デフォルトの名無しさん:2007/01/11(木) 00:15:25
>>895
.dcuをプロジェクトに放り込めばいけそうな気が‥‥

>>896
DirectGraphicsベースのアプリだとVCLフレームワークの大半が無意味になるからVC2005Expressでいいとおもうぞ。
取っつきやすいだけならVC#2005Express+XNA GameStudio Expressの選択肢も。
904デフォルトの名無しさん:2007/01/11(木) 00:17:32
>>902
extren "C"
905デフォルトの名無しさん:2007/01/11(木) 00:18:44
スペルミス
extern "C"
906デフォルトの名無しさん:2007/01/11(木) 00:29:22
>>905
ありがとうございます。
職場のPCにしか環境が無く、すぐに試せなくて申し訳ないのですが、
コードの意味を調べておいて、明日試してみます。
907895:2007/01/11(木) 02:26:09
>>903
Midaslib.dcuをプロジェクトに追加しても駄目でした。
ソースに
#pragma link "Midaslib.dcu"
と書くと、
[リンカ エラー] Error: 'MIDASLIB.DCU' に無効な OMF レコード (タイプ 0x23) が含まれています
となります。
908896:2007/01/11(木) 10:24:25
>>899>>900
DirectXを使う場合、そのうち限界を感じるようになると知り合いに言われまし
て・・・。

>>903
なるほど。
では、VC2005Expressを試しに使ってみます。 ありがとうございました。

909デフォルトの名無しさん:2007/01/11(木) 17:56:48
CppWebBrowserを使用しているんですが
現在表示中のサイトのバックグラウンドカラーや表示中のテキストを取得することは
できませんでしょうか?
910デフォルトの名無しさん:2007/01/11(木) 19:46:29
C++Builder6を使用しているのですが。。。
マウスでクリックした点からマウスを放したところまでの四角形や円を描きたいのですが
(↑Wordみたいに・・・)どのようなプログラムにしたらいいのでしょうか?
911デフォルトの名無しさん:2007/01/11(木) 20:57:27
>>909
TCppWebBrowser::DocumentからIHTMLDocument2インタフェース取得すればDOM使って読み書きできる

>>910
OnMouseDownで始点設定
OnMouseUpで終点設定してそれに収まる図形を描画するだけ
912デフォルトの名無しさん:2007/01/11(木) 20:58:01
>>907
開発者ガイドの「dbExpress データベースアプリケーションの配布」の所には、
Midaslib.dcuを含めろ的なことが書いてあるようだが、よくわからんな。
dcuってデルファイ版のobjファイルみたいのか。
C++Builderからdcuのリンクってできるんか?
分かる奴教えてやれ。

>>909
COMインターフェイス理解できんと分からんと思うから、初心者には敷居高いと思われ。

>>910
LBUTTONDOWN、LBUTTONUP、MOUSEMOVEメッセージを補足
WM_LBUTTONDOWNとUPはBuilder標準のイベントにないから、BEGIN_MESSAGE_MAPで補足。
onLButtonDownで始点を記録
onLButtonUpで終点としてCanvas->FrameRect(円ならElipse)で描画
途中の状態を表示したかったら、onMouseMoveでCanvasのBrushをXORモードにして、
前回の描画をもう一度書いて消して、新しい位置に描画
913909:2007/01/12(金) 09:08:23
>>911>>912
ありがとうございます
IHTMLDocumentを取得してからのサンプルコードは色々見つけたんですが
肝心のTCppWebBrowser::DocumentからIHTMLDocumrntを取得する方法がわかりませn
検索でコード探したり、色々キャストしてみたんですがエラーがでます
そこのところだけでもサンプル教えていただけないでしょうか?
914902:2007/01/12(金) 09:16:48
>>905
C++の基本を質問してすみませんでした。
おかげで様で作業を進めることができました。ありがとうございました。
915デフォルトの名無しさん:2007/01/12(金) 11:06:19
>>913
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 IHTMLDocument2* html = NULL;
 www->Document->QueryInterface(IID_IHTMLDocument2, (void**)&html);

 IHTMLElement* elem;
 html->get_body(&elem);
 wchar_t *text = new wchar_t[10000];
 if (S_OK == elem->get_innerHTML(&text))
  ShowMessage(AnsiString(text));
 delete [] text;
 elem->Release();
 html->Release();
}
916デフォルトの名無しさん:2007/01/12(金) 11:11:33
目的のelementの探し方とかは基本的にDocumentObjectModelの領域なのでPlatformSDK読むなりWeb製作板のJavascriptスレとかで聞くとよろし。
917910:2007/01/12(金) 11:24:10
>>911 >>912
ありがとうございました。
無事、問題解決し、次の過程にすすめました。
918デフォルトの名無しさん:2007/01/12(金) 11:56:16
>>915
ありがとうございます、さっそく試してみます
QueryInterfaceも引数いろいろいれて試してみてたんですが・・・
助かりました
919デフォルトの名無しさん:2007/01/12(金) 16:13:02
実行中の他のアプリケーションを取得して、
あるアプリケーションが実行中ならそのアプリケーションに
マウスの左クリックイベントを送出するというのを実現したいのですが、
実行中アプリ取得の方法と、他のアプリにイベントを送出する方法がわかりません。
どなたかご教授願います。
920デフォルトの名無しさん:2007/01/13(土) 02:24:56

・FindWindow
・SendMessage

何作るのか知らんがnProとかPBには無効ですよ
921デフォルトの名無しさん:2007/01/19(金) 20:43:09
実行すると、いくつもの円や四角形を描画できるプログラムを作成しています。
例えば、円を3つ、四角形を5つ描いた後に、一番最初に描いた円を指定してマウスでドラックした分、その円を移動させたいのですが、どのようにしたらいいのかわかりません。
簡単なプログラム付で解説していただけると、なお助かります。
ずうずうしい質問ですが、ご教授、お願いします。
922デフォルトの名無しさん:2007/01/19(金) 22:08:21
くだすれか。
くたばれと書いてあるのかと思ってびっくりした。
923デフォルトの名無しさん:2007/01/19(金) 23:19:00
>>921
くたばれ
924デフォルトの名無しさん:2007/01/19(金) 23:36:33
ご 教 授 お 願 い し ま す

丁寧に 頼んだつもりが 赤っ恥
925デフォルトの名無しさん:2007/01/19(金) 23:43:00
別に教授だろうが教示だろうが間違いじゃないんだぞなもし
926デフォルトの名無しさん:2007/01/20(土) 00:34:18
>>921
別に悩むようなことじゃなかろう
マウスイベントで処理すればいいだけじゃないか
927921:2007/01/20(土) 02:49:38
>>926
 申し訳ないのですが、もう少し詳しくお願い致します。
 コードとかメソッドなど、何でもいいので。。。
 本当に初心者で、お手数おかけします。。。
928デフォルトの名無しさん:2007/01/20(土) 11:04:14
なにを知りたいのかがわからん
図形を指定するやりかたがわからん?
マウスでドラッグの方法?
移動?
もしかして,設計から教えろとでもいうのか?
929デフォルトの名無しさん:2007/01/20(土) 11:34:02
BCB6を使って検索システムを作っています。
現在、Comboboxで検索項目を選び、Editで検索語を入力する
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TQuery *theQuery=DataModule2->Query1;
DataModule2->DataSource1->DataSet=theQuery;

AnsiString sqlStmt="SELECT * FROM ファイル名.db WHERE "+kensaku+" LIKE";
AnsiString whereStmt=Edit1->Text;
theQuery->SQL->Text=sqlStmt+"'%"+whereStmt+"%'";
theQuery->Active=true;

このようなプログラムで中間一致検索できるようになっています。
さらにここからComboboxとEditを1つずつ増やして複数検索を出来るように
したいのですが、どうすればいいかわかりません。
もし、分かる方がいれば教えてください。
930921:2007/01/20(土) 11:36:30
>>928
 かなりアバウトな質問をしてしまって、すみませんでした。
 図形を指定する方法がわからんのです。。。
 よろしくお願い致します。
931デフォルトの名無しさん:2007/01/20(土) 11:52:28
>>929
BCBよりSQLの領域じゃないか?
932デフォルトの名無しさん:2007/01/20(土) 12:25:12
つーか>>929自身、そのプログラムに書いてある内容が全然わかってないんじゃない?
どこから持ってきたソースか知らんけど、もし仕事なら、上司なり依頼元に『自分のスキルじゃできません』て
はっきり言うか、こんな掲示板で質問なんかしてないで、もっと基礎からちゃんと勉強した方が良いんじゃないの。
933デフォルトの名無しさん:2007/01/20(土) 13:36:55
現在、Unit1.cpp内でBitBtnをクリックすると
 From1->Hide();
From2->Show();
が行われ、Unit2.cpp内でN1をクリックすると
 Form1->show();
Form2->Close();
ということを行いたいのですが、それぞれのFormの宣言の仕方がわかりません。
Unit1には
 #include "Unit1.h"
 #include "Unit2.h"
TForm1 *Form1;
TForm1 *Form2;
Unit2には
 #include "Unit1.h"
 #include "Unit2.h"
TForm2 *Form1;
TForm2 *Form2;
としています。
ポインタの宣言の仕方が悪いと思われるのですが、
問題解決できなくて困っています。
どなたか、お手柔らかに教えていただけないでしょうか。
934デフォルトの名無しさん:2007/01/20(土) 13:43:38
ヘッダincludeしてるのに何で重複宣言するの?

Unit1
 #include "Unit1.h"
 #include "Unit2.h"
TForm1 *Form1;

Unit2
 #include "Unit1.h"
TForm2 *Form2;
------------------
Unit1
void __fastcall TForm1::BitBtnClick(TObject *Sender){
Form1->Hide();
Form2->Show();
}

Unit2
void __fastcall TForm2::N1Click(TObject *Sender){
Form1->Show();
Form2->Close();
}
935デフォルトの名無しさん:2007/01/20(土) 21:58:14
>>933
TApplicationでやってるように不可視のフォーム作ってそこから制御した方がいいんじゃないか?
ちょっとメモリ余計に食うけど。
936デフォルトの名無しさん:2007/01/21(日) 00:35:33
BDS2006使ってるんですがアプリを実行しマウスを動かすと
モジュールのロード、モジュールのアンロードが延々と表示されるんですが
とめる方法はないのですか?
937デフォルトの名無しさん:2007/01/21(日) 01:11:24
>>936
自己レスです
解決しました。ウイルスバスターの迷惑メールツールバーを無効にするで出来ました。
938デフォルトの名無しさん:2007/01/21(日) 05:58:18
BDSのBCBを使っています。
DBGridで、指定した列を一番左に表示するにはどうしたらよいでしょうか?
ヘルプを見るとLeftColというのがそれにあたるっと思うんですが、
DBGrid1->LeftCol = i;
とするとコンパイルでエラーになってしまって・・
よろしくお願いいたします。
939デフォルトの名無しさん:2007/01/21(日) 12:04:50
>>938
DBGrid右クリック->カラムエディタ->すべての項目追加->カラムをマウスでD&Dして順番を移動
940938:2007/01/21(日) 20:06:44
>939
すいません。説明不足でした。
もともとの順番は変えないで、表示位置だけ左端にもって行きたいのです。
たとえば項目「A,B,C,D,E,F」があった時に、今表示されている項目が「A,B,C」だったとします。
項目の一覧を表示してあるListBoxで「D」をクリックした場合、DBGridの表示を
「D,E,F」という風に「D」から表示したいんです。
さらにListBoxで「B」をクリックすると「B,C,D」と表示することになります。
こういうことは不可能でしょうか?
941デフォルトの名無しさん:2007/01/23(火) 07:31:25
BDS2006+UP2でC++Builderを使っています。

if (SetCurrentDir("\\")) {
if (RemoveDir(E:\\AAAAA\\BBBB\\CCCCC)) {
   ListBox1->Items->Add("D削除完了");
} else {
   ListBox1->Items->Add("D削除失敗!!");
}
}

CCCCCはフォルダです。
としていますがフォルダの削除に失敗してしまいます。フォルダの中は空です。
どうして消せないのでしょう?
942デフォルトの名無しさん:2007/01/23(火) 07:44:13
>if (RemoveDir(E:\\AAAAA\\BBBB\\CCCCC)) {

if (RemoveDir("E:\\AAAAA\\BBBB\\CCCCC")) {
943デフォルトの名無しさん:2007/01/23(火) 09:53:58
フォルダの属性を変更することってできますか?
944デフォルトの名無しさん:2007/01/23(火) 14:15:49
system("attrib〜");
::SetFileAttributes();
SysUtils::FileSetAttr();
945933:2007/01/23(火) 15:13:35
>>934
 早速の返信ありがとうございました。
 遅くなってすみませんでした。
Unit2のプログラムで
  TForm2 *Form2
  →宣言の構文エラー
  __fastcall TForm2::TForm2(TComponent* Owner)
  →型限定子 'TForm2'がクラス名または名前空間名ではない
 というエラーが出てしまいました。
 中のプログラムが間違っているのでしょうか。
 たびたび申し訳ございません。
 よろしくお願いします。

>>935
 早速の返信ありがとうございます。
 遅くなってしまいすみません。
 メモリは重たくなっても構わないのですが不可視のフォーム作成法がわかりません。。。
 もし、ご面倒でなければ、教えてください。 
946933:2007/01/24(水) 19:51:57
>>945
 自己レスです。
 無事、解決しました。
 皆々様に感謝です。
947デフォルトの名無しさん:2007/01/26(金) 16:57:47
マジデ趣味以外でプログラムやってる奴って馬鹿だろ
948デフォルトの名無しさん:2007/01/26(金) 17:10:27
仕事でやってますが何か?
949デフォルトの名無しさん:2007/01/26(金) 20:54:25
趣味で金稼ぐってのも悪くない
950デフォルトの名無しさん:2007/01/27(土) 02:20:17
それがそうでもない
同じログラムでも仕事で作るのと趣味で作るのとは違うんだな
仕事の方はやっぱりやりたくないよorz
951デフォルトの名無しさん:2007/01/27(土) 20:49:49
.iniの情報(文字列)を
ReadString("セクション","キー","");で読み込んでAnsiString型の変数mojiに格納。
文字列の範囲を指定するためif (moji >= "1" && moji <= "100")に入れた時、
moji = ”0”や
moji = "d"はガードできるのですが
moji = "1d"をガードできません。
解る方、どうか教えて下さい。
952デフォルトの名無しさん:2007/01/27(土) 20:52:40

moji == "0"
moji == "d"
moji == "1d"ですた・・・。
953デフォルトの名無しさん:2007/01/27(土) 21:33:56
>>951
数字だけなら、一回数字に変換すればらくだが・・・
954デフォルトの名無しさん:2007/01/27(土) 23:57:25
>>953
どもです。
その通りで、数字だけ、文字だけならばどうにでもなるのですが・・・。
何故ダメだかはわかるのですが、ガードする方法は思い付けません。
955デフォルトの名無しさん:2007/01/28(日) 00:18:49
俺なら、strtolでも使って全部が数字の文字列であるか判定した後(第2引数を利用)
その数字の代償で比較するかな。
956デフォルトの名無しさん:2007/01/28(日) 12:41:02
>>955
ありがとうございます。strtol調べてみました。
第2引数は変換出来ない文字の格納先ですか。
ifでも使ってここの値に何かが入っていれば飛ばしてやればいいって事でしょうか?
957デフォルトの名無しさん:2007/01/28(日) 21:34:38
>>956
整数と判っているのであれば最初からTRegistryIniFile::ReadInteger()で読み込むのが楽だよ。
読み込み失敗時に返す第3引数に0でも指定してやっとけば範囲制限も簡単に解決できるんじゃないかな。

int n = Ini->ReadInteger( "Window", "Left", 0 ); // 整数として評価できない場合は0を返す
if( ( 1 <= n ) && ( n <= 100 ) ){〜


文字列として受け取らざるを得ない場合はAnsiString::ToIntDef()かAnsiString::ToInt()で
intに変換してから判断。(ToInt()は変換できないとき例外を投げる点に注意)
958デフォルトの名無しさん:2007/01/29(月) 10:55:27
フォームがアイコン化されたメッセージを取得する方法を教えてください
959デフォルトの名無しさん:2007/01/29(月) 11:15:16
すみません。フォームじゃないですねたぶん
Application->Minimize( );
でアイコン化した時に現在アイコン化されてるかどうかを識別する方法を教えてください
960デフォルトの名無しさん:2007/01/29(月) 11:24:58
IsIconicつーAPIはある
961デフォルトの名無しさん:2007/01/29(月) 14:48:10
自分で作ったクラスに、__propertyとか使いますか?
使わない方がいいんですか?
962デフォルトの名無しさん:2007/01/29(月) 17:07:07
Borlander(コアなBorlandファン)なら使うべきじゃない?
Delphi使いは、普通につかってるよ。
963デフォルトの名無しさん:2007/01/29(月) 21:43:35
__closure愛用してるから__propertyも平気で使ってる。
964デフォルトの名無しさん:2007/01/29(月) 22:39:53
いままでVB6使ってたんだけど、このままじゃだめだなと思い
C++Builder6を買いました。
初心者にお勧めのサイトを教えてください。m(_ _)m
965デフォルトの名無しさん:2007/01/30(火) 06:15:46
>>964
薄い方のマニュアルを、最初から順番にやっていくといいよ。
これが一番わかりやすかった。
966デフォルトの名無しさん:2007/01/30(火) 11:18:18
>>964
イベントハンドラにだらだらと実装書くのはやめましょう
967デフォルトの名無しさん:2007/01/30(火) 19:50:57
>>966
じゃあどうすれば?
968デフォルトの名無しさん:2007/01/30(火) 22:10:25
データ操作処理とGUI処理はキッチリ分けた方が管理し易い。
必要な情報だけコントロールから取り出して、本処理は
別のルーチンに整理するのが吉。

つーか最近、保守契約が切れた外注のプログラムをデバッグする機会が
あったんだが、ソースをのぞいたら不可視のコントロールを変数代わりに
使ってて死ぬほどウザかった。
リストビューをコレクション代わりに使ってたり。
職業プログラマってこんなもんなのか?
969デフォルトの名無しさん:2007/01/30(火) 22:13:25
そんなもん
ほんとにコード書ける奴は一握り
970デフォルトの名無しさん:2007/01/31(水) 00:23:39
ビューとモデルをごっちゃにする人はいるね、たまに。
そんな人ばっかりではないけど。

普通は、しないんだから。
971デフォルトの名無しさん:2007/01/31(水) 00:34:21
まあ、DelphiやBCBやVBやVC#やその他ポトペタ開発環境の多くが、
ビューとモデル、果てはデータまでいっしょくたに書けちゃうしなあ
972デフォルトの名無しさん:2007/01/31(水) 00:36:25
>>971
分離するためのデータモジュールとTAction〜コンポーネント
973デフォルトの名無しさん:2007/01/31(水) 05:34:04
クリップボードのデータ持ってくるのにTEditやTRichEdit使っちゃうのはダメですか
974デフォルトの名無しさん:2007/01/31(水) 06:18:33
Clipbrd をusesに加えて、Clipboard.AsTextで取得・設定
975974:2007/01/31(水) 06:19:16
Delphiスレと勘違いしてた。スマソ
976デフォルトの名無しさん:2007/01/31(水) 07:03:39
>>975
ま、似たようなもんです。
Clipboard(void) で TClipboardオブジェクトを取得して操作、が
普通だよね。
977デフォルトの名無しさん:2007/01/31(水) 10:54:17
VCLフォームアプリケーション(Cソース含む)を作っているの
ですが、実行時にブレークできません。
ブレークポイント設定はしているのですが、何故か赤丸の中に
バツがあるアイコンが出ます。
ヘルプではコメント,空白行,不正な宣言位置への設定だと書か
れていますが、そのような行への設定ではないのですが。。

ブレークポイント設定できない理由をご存知の方、いらっしゃいますか?
978デフォルトの名無しさん:2007/01/31(水) 11:17:17
>>977
バージョンくらいかけぼけが
ぷろじぇくとおぷしょんこんぱいら
979デフォルトの名無しさん:2007/01/31(水) 11:41:41
>>978
プロジェクト→オプションを見ましたが、バージョン情報
載ってないです。

ヘルプ→バージョン情報は以下でした。
Borland(R) C++Builder(R) for Microsoft(R) WindowsTM
Version 10.0.2288.42451 Update 2
Copyright (C) 2005 BorlandR Software Corporation.
All Rights Reserved.
980デフォルトの名無しさん:2007/01/31(水) 11:53:31
>>977
そのソース内、どこでもブレークきかない?
981デフォルトの名無しさん:2007/01/31(水) 11:55:59
リリースビルドなだけじゃねーの
982デフォルトの名無しさん:2007/01/31(水) 11:58:51
>>980
はい、どこでもダメです。C++,Cどちらにはってもブレークしてくれません。
>>981
ビルド設定はデバッグ・ビルドになっています。
983デフォルトの名無しさん:2007/01/31(水) 23:34:20
フォルダの中に、いくつのファイルがあるか知りたいんですが、
FindFirst,FindNextで、数えていくのがよいのでしょうか。
984デフォルトの名無しさん:2007/01/31(水) 23:35:50
>>983
FileListBox 使うと楽だったりする。
985デフォルトの名無しさん:2007/02/01(木) 02:47:44
ごめん、どこっていうのも恥ずかしいところでした。

D言語のリファレンス訳書いている人んところですね。
986デフォルトの名無しさん:2007/02/01(木) 02:48:16
>>985
誤爆 orz
987デフォルトの名無しさん:2007/02/01(木) 06:14:26
>>984
FileListBox使ったこと無いですが勉強します。
レスありがとうございました。
988デフォルトの名無しさん:2007/02/01(木) 10:36:51
>>987
>>968

てか個数数えるだけならFindNextのループでカウントとるだけな気が‥‥

const AnsiString dir = "C:\";
TSerchRec find_data;
std::vector<TSerchRec> files;
if(FindFirst(dir, faAnyFile, &find_data) == 0)
{
 do
 {
  files.push_back(find_data);
 } while(FindNext(&find_data) == 0)
}

ShowMessage(AnsiString().sprintf("%s内のディレクトリを含むファイルの数は%d個", dir, files.size()));

ファイル名とか取る必要ないならvector使わずにカウンタでインクリメントしてけばいいだけ
989デフォルトの名無しさん:2007/02/02(金) 05:24:18
中古のbuilder6買ったばかりなんですが、
「Linuxとのクロスプラットフォーム開発を実現する、
CLX(Component Library for Cross platform)のWindows版も収録。」
っていうのは、どういうことなんでしょうか?

・CLXを使って書いたコードを、builder6でコンパイルしてできた実行ファイル

・CLXのライブラリを使えるようにしたlinuxのパソコンに
コードを持ってきて、それをコンパイルした実行ファイル

が同じ動きするということでしょうか?
linuxのビジュアル開発ができるんだったらすごいです。
990デフォルトの名無しさん:2007/02/02(金) 09:39:41
>>989
後者。
Kylix(Linux用Delphi/BCB)でビルドすればLinux上で動作可能。

まあ、現実にはPCの性能が上がったこともあってJava使った方gゲフンゲフン
991デフォルトの名無しさん:2007/02/02(金) 12:12:40
>>990
レスありがとうございます。
Kylix Open Edition2ベクターから、ゲットしました。

ユーザー登録しないといけないみたいですが、
試用許諾コードってもう入手できないでしょうか。

インストール解説してるページ見つけて、
”このページからアンケートなどに答えて取得して”ということで飛ぶと、
HP見てももうサポートしてないってページが表示されます。

ふんむー。
992デフォルトの名無しさん:2007/02/02(金) 13:28:40
>>989
それ以前に、Borland製品の場合、規約で中古ではいかなるライセンスも認めていないから、
商用はもちろん、フリーウェア配布にも使えないよそれ。
993デフォルトの名無しさん:2007/02/02(金) 14:05:33
ナ、ナンダッテー
994デフォルトの名無しさん:2007/02/02(金) 14:12:10
>[Linker Error] Unresolved external '__fastcall Outline::TCustomOutline::~TCustomOutline()' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\BCBSMP.LIB|.\cdiroutl.cpp

コンポーネントのインストールでエラーでます。
再インストールしてもこのエラー消えませんが、どうしたら良いですか?
995デフォルトの名無しさん:2007/02/02(金) 15:16:09
TListViewで行の挿入方法を教えてください
996デフォルトの名無しさん:2007/02/02(金) 20:02:57
>>992
そんなの言わなければばれないよ
997デフォルトの名無しさん:2007/02/02(金) 21:24:41
>995
Item = ListView1->Items->Insert(n);
単に追加ならAddで。
998デフォルトの名無しさん:2007/02/02(金) 23:37:44
>>992
シッーーーーー!!!
999デフォルトの名無しさん:2007/02/03(土) 00:26:29
へ?

とかいう間に>>999ゲット
1000デフォルトの名無しさん:2007/02/03(土) 00:27:10
>>1000なら、
>>989は、製品版の新品を買うこと。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。