くだすれC++Builder(超初心者用)その2
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/04/06(木) 16:33:24もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
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
0002デフォルトの名無しさん
2006/04/06(木) 17:32:49Borland 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
0003デフォルトの名無しさん
2006/04/07(金) 23:12:380004デフォルトの名無しさん
2006/04/08(土) 07:23:580005デフォルトの名無しさん
2006/04/08(土) 16:27:130006デフォルトの名無しさん
2006/04/09(日) 00:58:050007デフォルトの名無しさん
2006/04/09(日) 01:03:160008デフォルトの名無しさん
2006/04/12(水) 11:04:570009デフォルトの名無しさん
2006/04/12(水) 18:10:010010デフォルトの名無しさん
2006/04/12(水) 18:31:090011なにゃ
2006/04/14(金) 02:55:290012SOURCE ◆tAo.kQ2STk
2006/04/14(金) 02:58:23よかったら、ソースファイルと何をするソフトか(大まかに)を教えてください。
2chのみんなが訂正してくれると思います。
0013デフォルトの名無しさん
2006/04/15(土) 02:07:41ソフトを解凍してから先が、説明を読んでも分かりません・・・
教えてください・・・
0014デフォルトの名無しさん
2006/04/15(土) 02:13:40スレ違い。
タダで使えるBorland C++ Part5
http://pc8.2ch.net/test/read.cgi/tech/1135127048/l50
ここで聞くべき。
0015デフォルトの名無しさん
2006/04/15(土) 03:12:230016デフォルトの名無しさん
2006/04/18(火) 09:49:29で、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;" 得意先');
となっていました。
001716
2006/04/18(火) 09:54:21ADOQueryを使ってといいながら、別な例を書いてしまいました。Orz
ADOQuery1->Connection->Execute(・・・・以下同じ)
でも、全く同じエラーメッセージが出てしまいます。
0018デフォルトの名無しさん
2006/04/19(水) 16:17:56BorCVSを導入したいのですが、最新のセットアップで
Builder6がサポートされてるはずなんですが
認識してくれません。どなたかインストールの方法を教えてもらえませんか?
0019デフォルトの名無しさん
2006/04/19(水) 19:10:46Borlandのサイトからダウンロードするのは上から三番目のCompilerでいいのでしょうか?
また、ダウンロードの前にユーザー登録のような画面で住所や電話番号などの記入を
要求されるようなのですがこれはきちんと書くべきですか?
0020デフォルトの名無しさん
2006/04/19(水) 23:21:303番目と4番目を落としとけ。
何年も前に登録したが今までトラブルには遭ってない。
0021デフォルトの名無しさん
2006/04/19(水) 23:45:24機械翻訳
-------
導入
インストーラアーカイブを実行することによって、 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 の前バージョンがあなたのシステムでインストールされるようにするなら、この新しいバージョンのインストレーションの前にそれを削除することは推奨されます。
----------
0022デフォルトの名無しさん
2006/04/20(木) 00:24:21レスを参考に手動でインストールしようとしましたが、どうやらExpertsのエントリが無いようです。
日本語のBuilderには対応して無いのか、、、、あきらめます。
有難うございました。
0023デフォルトの名無しさん
2006/04/20(木) 01:12:33俺の環境にはある。
HKEY_CURRENT_USER\Software\Borland\C++Builder\6.0\Experts
中身はデモ用の設定のみ。
Expertsキーが無いなら作っても問題無いと思う。
0024デフォルトの名無しさん
2006/04/20(木) 11:44:34最新のはうまくいかなかったから、BorCVSの最新リポジトリを落としてインストーラー込みでビルドしたらうまくいった。
手元にBCB6でビルドした奴があるけど必要だったら、うpするよ。
0025デフォルトの名無しさん
2006/04/20(木) 15:10:48が、日本語フォルダはダメなようで、私も日本語用にビルドしなおそうとしたのですが、どうやってもSTLエラー orz
是非うpおねがいします。
http://www.uploda.net/cgi/uploader4/index.php
0026デフォルトの名無しさん
2006/04/20(木) 22:47:43うpしたよん!
http://www.uploda.net/cgi/uploader2/index.php?dlpas_id=0000013880
アーカイブのbinの下にインストーラーがあるからこいつを実行。
フォームのフォント設定をMSPゴシックにしてあるから日本語もOKなはず。
今はJCLのCVS/SVN統合機能を使っているから、あまり使っていなかったりするw
そういえば、ム板用のうpろだって無いな・・・
0027デフォルトの名無しさん
2006/04/20(木) 22:52:41パスはborcvs。
ttp://www.uploda.net/cgi/uploader2/index.php?dlpas_id=0000013881
0028デフォルトの名無しさん
2006/04/21(金) 01:11:32これで二度とプロジェクト落とさないですむようになりました。本当にありがとう!!
0029デフォルトの名無しさん
2006/04/22(土) 20:35:28Canvas->PenPosに負の座標を代入したら最低0にフィックスされちゃいますか?
0030デフォルトの名無しさん
2006/04/24(月) 19:59:230031質問
2006/04/27(木) 19:18:38どのコンポーネントが楽ですか?
1レコード500バイト位で、
行って2000件程度な予定なんで、
それ程速度は求めません。
スタンドアロン環境で使用します。
蔵書管理程度と思っていただければいいかと。
宜しく御願いします
0032デフォルトの名無しさん
2006/04/27(木) 19:19:540033デフォルトの名無しさん
2006/04/27(木) 22:11:47ToolBar1->DrawingStyle=dsGradient;
と指定すると
[C++ エラー] ToolBar.cpp(106): E2015 'dsGradient' と 'Extctrls::dsGradient' の区別が曖昧
というエラーが出ます。
このエラーをとるにはどうすればいいでしょうか。
enum TTBDrawingStyle { dsNormal, dsGradient };
と定義されているのですが、列挙型を明示的に指定する方法があるのでしょうか。
0034デフォルトの名無しさん
2006/04/27(木) 22:56:12ToolBar1->DrawingStyle = Comctrls::dsGradient;
0035デフォルトの名無しさん
2006/04/27(木) 23:15:58さんくすです。
できました。
0036デフォルトの名無しさん
2006/04/28(金) 22:14:53そろそろ新しいのを買おうと思ってるんですが
最近のバージョンではアクティベーションがあるのですか?
0037デフォルトの名無しさん
2006/04/29(土) 01:28:31ないよ
コピーし放題だから安心して買え
0038デフォルトの名無しさん
2006/04/29(土) 09:03:30小さ過ぎる文字も描画時間かかるんですね
0039デフォルトの名無しさん
2006/05/01(月) 09:04:461000000000000000000000とかに対してこのメンバ関数を呼ぶとどうなりますか?
不具合が起こる場合、対処法を教えて下さい。
0040デフォルトの名無しさん
2006/05/01(月) 09:14:28EConvertError例外
IDE外では"は整数ではありません"ダイアログ。
0041デフォルトの名無しさん
2006/05/01(月) 09:42:220042デフォルトの名無しさん
2006/05/01(月) 13:52:440043デフォルトの名無しさん
2006/05/01(月) 13:56:500044デフォルトの名無しさん
2006/05/01(月) 18:21:11ヒントやキーワードをプリーズ
0045デフォルトの名無しさん
2006/05/01(月) 20:51:05Borland Answers C++Builder Q&A をGoogleに突っ込め
0046デフォルトの名無しさん
2006/05/02(火) 07:31:33???
0047デフォルトの名無しさん
2006/05/02(火) 11:50:53説明サイトとかキボン。
0048デフォルトの名無しさん
2006/05/02(火) 13:43:550049デフォルトの名無しさん
2006/05/02(火) 16:17:12BDS2006買ってC++Builder6の本見ながら勉強してます
クラスエクスプローラの画面がどうやったらでてくるかわかりません
変わってしまったんですね
それにしてもヘルプが見にくい。。。。
0050デフォルトの名無しさん
2006/05/02(火) 21:03:04ここのPDFに書いてあった
ttp://support.borland.com/entry.jspa?externalID=432
0051デフォルトの名無しさん
2006/05/02(火) 21:11:20C++Builder6のクラスエクスプローラは、BDS2006の構造ペインに相当するのでは?
でもBDS2006の構造ペインで出来ることはC++Builderのクラスエクスプローラに比べて
少ないような気がする。
0052デフォルトの名無しさん
2006/05/02(火) 23:43:150053デフォルトの名無しさん
2006/05/04(木) 13:10:270054デフォルトの名無しさん
2006/05/04(木) 15:33:11あるいは(もともとPascalはドイツ生まれなので)Typ
0055デフォルトの名無しさん
2006/05/04(木) 18:21:36有難うございました。
0056デフォルトの名無しさん
2006/05/12(金) 16:08:460057デフォルトの名無しさん
2006/05/12(金) 17:38:55ビルドは再作るんです!
0058デフォルトの名無しさん
2006/05/12(金) 18:00:45Turbo C++, Turbo Pascalからの伝統。
MSにCFormとか取られちゃったからね。
0059デフォルトの名無しさん
2006/05/12(金) 18:02:43あ、そいういうことか。
自分的には安易な「C」より某のライブラリって分かりやすいから重宝。
0060デフォルトの名無しさん
2006/05/19(金) 21:13:25AnsiPosとPosではPosの方が高速動作しますか?
0061デフォルトの名無しさん
2006/05/19(金) 21:20:120062デフォルトの名無しさん
2006/05/19(金) 21:36:560063デフォルトの名無しさん
2006/05/19(金) 22:47:18マルチバイト文字においてはPosで1バイト文字を検索してはいけませんか?
0064デフォルトの名無しさん
2006/05/20(土) 01:34:45一般にはダメ。2バイト文字の2バイト目と誤認する可能性があるから。
AnsiPos() はそこら辺をうまくやってくれる。対象文字列が2バイト文字を
含まない、と確信できるときだけ Pos() を使うことが出来る。
0065デフォルトの名無しさん
2006/05/20(土) 02:01:54AnsiPosよりPosの方が高速動作が期待できますか?
0066デフォルトの名無しさん
2006/05/20(土) 14:40:470067デフォルトの名無しさん
2006/05/20(土) 16:58:00TurboC++にはTxxxというclass名のついたライブラリが付いてたでしょ。
で、その当時はMSはC++処理系を発表して無かったよ。
0068デフォルトの名無しさん
2006/05/20(土) 17:00:27先頭のTはTurboのTではなくTypeのTだと
Borlandの人が言明している。
0069デフォルトの名無しさん
2006/05/20(土) 20:23:360070デフォルトの名無しさん
2006/05/22(月) 16:15:210071デフォルトの名無しさん
2006/05/23(火) 21:56:23onpaintイベントに書き込むと残ってしまうのですが・・・
0072デフォルトの名無しさん
2006/05/23(火) 22:32:29消去する事は一般的には出来ない
だから、再度全部描くというのが普通
0073デフォルトの名無しさん
2006/05/24(水) 22:11:36C++ 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;
}
のようなことをやってみたのですが、さっぱりです…
しかも自分でもなんだかトンチンカンなことをやっているような気がしてならないのです。
ヒントだけでも教えていただければ嬉しいです…
よろしくお願いします。
0074デフォルトの名無しさん
2006/05/25(木) 01:26:06考え方としては、フォームに描画してるBitmapをうまく位置を合わせてリストビューにも描くって感じ。
0075デフォルトの名無しさん
2006/05/25(木) 08:25:58>74
ありがとうございます!
位置を合わせて書くとは思いもよりませんでした…
さっそく試してみます。
0076デフォルトの名無しさん
2006/05/29(月) 09:26:21SQLでの検索、フィルタを使った絞込みなど、うまくうごいているのですが、
検索結果、またはフィルタリング結果が1回でも0件が出た時、FormCloseすると
「リソースリーク・・・メモリブロック(xxxxxx)が開放されていません」と表示されます(デバッグ時)
検索・フィルタリング結果が0件ではなかった時は特に問題なく終了します。
ちなみに、日付項目が空欄だった場合はADODataSetのOnGetTextイベントで無理やり" − − −"を
表示するようにしています。
回避策をご存知の方いらっしゃいましたら、ご教授ねがいたいのですがよろしくお願いいたします。
007777
2006/05/29(月) 09:27:53007876
2006/05/29(月) 09:28:590079デフォルトの名無しさん
2006/05/29(月) 13:22:090080デフォルトの名無しさん
2006/06/01(木) 01:11:23HWND hWnd=FindWindow(NULL,"これが親窓");
で得られた親窓の子ウインドウをEnumChildWindowsで列挙したいのですが、
具体的サンプルソースのあるサイトを教示願いたく。
まんまのサンプルソースを提示していただければなおありがたく。
0081デフォルトの名無しさん
2006/06/01(木) 12:36:58代わりにFindChildWindowにすれば?
0082デフォルトの名無しさん
2006/06/01(木) 13:09:40EnumWindowsなりでぐぐれば出てくるだろ
0083デフォルトの名無しさん
2006/06/01(木) 13:44:270085デフォルトの名無しさん
2006/06/01(木) 15:35:51大量に出てきたぞ。
いっぱい例付きがあるじゃん。
まったく自分では調べていないクレクレ君だな。
008681
2006/06/01(木) 16:29:36008781
2006/06/01(木) 16:31:57到底思えんかったがな
008881
2006/06/01(木) 16:32:51到底思えんがな
0089デフォルトの名無しさん
2006/06/01(木) 16:52:10あふぉかよ
0090デフォルトの名無しさん
2006/06/01(木) 19:01:08逝ってかまわない
0091デフォルトの名無しさん
2006/06/01(木) 22:46:400092デフォルトの名無しさん
2006/06/01(木) 23:00:14009380
2006/06/02(金) 01:23:04FindWindowEx
で用が足りました。
ありがとうございました。
0094デフォルトの名無しさん
2006/06/03(土) 14:12:20common.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"とか表示されるのですが、
なぜですか
どうすれば意図したように動きますか
009594
2006/06/03(土) 14:15:44long l1,l2,l3,l4;
l1 = (long)hcWnd1;
l2 = (long)hcWnd2;
l3 = (long)hcWnd3;
l4 = (long)hcWnd4;
と書いても、l1〜l4には0しか代入されませんでした。
ツールチップ式評価では"(long)hcWnd1=853578"と表示されますが、
代入先は"l1=0"にしかなりませんでした。
0096デフォルトの名無しさん
2006/06/03(土) 15:24:36TdashクラスのhcWnd1〜hcWnd4にはちゃんと値を代入しているの?
009794
2006/06/03(土) 15:54:55へ? すいません
common.hをインクルードしてあって、
その中でHWND hWnd,hcWnd1,hcWnd2,hcWnd3,hcWnd4;としてあって、
Unit1.cppで代入してあり、
Unit2.cppでツールチップ式評価に値が出ていますが、
それでもダメなん?
009894
2006/06/03(土) 17:13:33common.hはグローバル変数宣言所として使っています。
HWND hWnd,hcWnd1,hcWnd2,hcWnd3,hcWnd4; はグローバル変数のつもりです。
それぞれはメインスレッド(Unit1.cpp)の中で代入しています。
それをUnit2.cppで使用しようとしています。
Unit1とUnit2のそれぞれでcommon.hをインクルードしています。
当然、Unit1はUnit2を、Unit2はUnit1をインクルードしています。
0099デフォルトの名無しさん
2006/06/03(土) 23:22:360100デフォルトの名無しさん
2006/06/03(土) 23:25:11http://b.hatena.ne.jp/entry/http://web.archive.org/web/20050307102511/http://www.borland.co.jp/qanda/cbuilder/index.html
0101デフォルトの名無しさん
2006/06/03(土) 23:37:31HWND hWnd, …
ってcommon.hに書いてる内容そのまま?
ちゃんとextern付けて実体は1箇所で作ってる?
010294
2006/06/04(日) 01:21:43レスありがとうございます。
common.hの内容そのままです。
exturn つけていませんでした。
とりあえずそれつけてコンパイルしたら
[リンカ エラー] 外部シンボル '_hcWnd1' が未解決(D:\〜\UNIT1.OBJ が参照)
が出てしまいました。
010394
2006/06/04(日) 01:32:57//---------------------------------------------------------------------------
#ifndef commonh
#define commonh
//---------------------------------------------------------------------------
//共通
extern HWND hWnd,hcWnd1,hcWnd2,hcWnd3,hcWnd4;
//---------------------------------------------------------------------------
#endif
010494
2006/06/04(日) 01:38:23あいかわらず代入できない…
不思議不思議、なんでだろ…
0105デフォルトの名無しさん
2006/06/04(日) 02:25:09宣言と定義についてまず勉強しろよ。
コンパイルエラーだから外しましたってなんだよ一体。
0106デフォルトの名無しさん
2006/06/04(日) 02:27:07>>101が書いてくれた文章を、ちゃんと一字一句理解しろよ。
0107デフォルトの名無しさん
2006/06/04(日) 18:25:55スレタイよく読めやヴォケ
0108デフォルトの名無しさん
2006/06/04(日) 20:17:59宣言してるのは間違いなくコモンの中の一カ所だけですが
何かいけないでしょうか
0109デフォルトの名無しさん
2006/06/04(日) 21:27:53ここでもよみなはれ。
http://www.kumei.ne.jp/c_lang/intro/no_29.htm
0110デフォルトの名無しさん
2006/06/04(日) 21:32:18Unit1とUnit2に同じ名前のグローバル変数が存在するべ?
0111デフォルトの名無しさん
2006/06/05(月) 19:37:44似たような処理をするフォームを複数使うので、TForm にメソッドを追加した派生クラスを作りたいのです。
ヘルプには 「TCustomFormから派生させる」とあるのですが、手順がわかりません。
そうやって作ったFormをフォームデザイナ上で使いたいのですが。
0112デフォルトの名無しさん
2006/06/05(月) 21:13:46そしたら、新規作成→その他→フォームにそれが追加されてる。
0113デフォルトの名無しさん
2006/06/05(月) 21:32:07早速の回答ありがとうございます。
それはフォームテンプレートですよね?
メソッドを修正するときなどに親クラスを修正すれば派生クラスも修正される、
みたいにやりたかったのですが、IDE上での扱いが難しいのでしょうか。
作成したフォームを無理やり継承させてみた(TMyFormを作成し、TForm1::TForm1():TMyForm()とか)のですが、
ActiveXをはりつけるときにエラーが出たりするので正式なやりかたはないのかと思いました。
0114デフォルトの名無しさん
2006/06/06(火) 00:08:11元のフォームのメソッドを修正すれば、(もちろん子も再構築し直すけど)子も影響受けるよ?
0115デフォルトの名無しさん
2006/06/06(火) 09:38:42>継承を選んだ状態
ぎゃー!ラジオボタンがまったく見えてませんでした。
こんなに簡単だったとは・・・。ありがとうございました。
0116デフォルトの名無しさん
2006/06/08(木) 08:24:42Form2で選択した値をForm1で使用したいのですが
どのようにすればよいのでしょう?
Cではexternで値を共有してたんですが、BCB的というかC++的には
どういう風にするのが一般的なのでしょうか?
BCB6を使っています。
0117デフォルトの名無しさん
2006/06/08(木) 08:51:22Form1にForm2をexternさせる。
で、Form1のコードで、
>String Value = Form2->getValue();
とかする。
ここで、
>String Value = Form2->Text1;
なんてすると後でForm2のコンポーネント張替えしたときに困ることになる。
0118デフォルトの名無しさん
2006/06/08(木) 08:57:10Form1とForm2のオブジェクトを既に生成してあるメインルーチンがあるとする。
Form2にOnValueChangedイベントハンドラを持たせ、Form2の値が変わると自分でコールする
Form2->OnValueChanged = Event_ValueChanged; //イベントハンドラを外から渡す
Event_ValueChangedイベントの中で、
>Form1->setValue(Form2->getValue);
してやると、Form1とForm2が完全分離。
しかし初心者は、イベントハンドラを自分で呼ぶ、イベントハンドラの型定義、イベントハンドラの実体定義が無理だろうからあきらめなさい。
0119デフォルトの名無しさん
2006/06/08(木) 10:11:35Form1からForm2の値を参照するときは
Form2->xxxxx
Form2からForm1の値を参照するときは
Form1->xxxxx
じゃダメなの?
0120デフォルトの名無しさん
2006/06/08(木) 10:19:480121116
2006/06/09(金) 12:56:44レスありがとうございます。
説明不足でしたがForm2には実行ボタンがあって
それを押すとForm2は消滅するうごきとなっています。
で、Form1からForm2をShowModalすると戻り値にintを返すことが
わかりましたので、Form2でその戻り値の中に選択した内容をビットに
意味づけして返してやる方向で作成中です。
(多分、これでやりたいことはできるとおもうのですが・・)
レスいただいた内容も今後使うことがあると思いますが、
説明不足、深く謝罪いたします。ゴメンナサイ。
(Form2を表示しておいて、Form1から値が取れるとは、思いもよらなかった・・バカな制御系プログラマでして・・)
0122デフォルトの名無しさん
2006/06/12(月) 13:01:32>意味づけして返してやる方向で作成中です。
ほんとバカな制御系プログラマだぜ。
Form2をdeleteするまでは、Form2は普通に扱えるんだから、
Form2クラスに各種プロパティを付けるべきだお。
0123デフォルトの名無しさん
2006/06/12(月) 16:44:39関数の結果は戻り値でしか返せないと思っているのだから。
おそらく、Win/C++系はまったくの初心者なのだろう。
0124デフォルトの名無しさん
2006/06/12(月) 16:50:432ちゃんも初心者の単発質問厨でもう帰って来ない悪寒。
だから、>>122-123 も読まずに終了。
0125デフォルトの名無しさん
2006/06/12(月) 17:20:41「すべて選択」のショートカット(Ctrl+A)はもともとなかったでしょうか。
昔はあったような気がしたのですが今実行したら効きませんでした。
コピーとか貼り付けは普通にショートカットで実行できます。
BCB3です。
0126デフォルトの名無しさん
2006/06/14(水) 00:54:58デバッグとリリースでリンクするライブラリを変更したいのですが、
どのように設定すればいいでしょうか。
とりあえずプログラム作成途中なので、デバッグ用のライブラリを
プロジェクトマネージャに追加してビルドしています。
0127デフォルトの名無しさん
2006/06/14(水) 01:35:30$(BCB)\lib\Releaseにリリース用のライブラリを置く。
リンクするライブラリを指定する。
#pragma link "hoge.lib"
プロジェクトオプションの「リンカ」ページの
「デバッグライブラリを使う」のON/OFFでどちらを使うかを切り替えられる。
0128デフォルトの名無しさん
2006/06/14(水) 02:03:15ですがうまくいきません
------ ビルド開始: プロジェクト: 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 スキップ ==========
となってエラーになります
0129デフォルトの名無しさん
2006/06/14(水) 02:34:59うまくリンクできました。
ありがとうございます。
0130デフォルトの名無しさん
2006/06/14(水) 12:18:49スレタイ嫁
0131デフォルトの名無しさん
2006/06/14(水) 13:14:46ソース吊せ
0132デフォルトの名無しさん
2006/06/14(水) 13:32:260133デフォルトの名無しさん
2006/06/14(水) 14:32:13('A`)
| ( )
| | |
|
/ ̄ ̄ ̄ ̄
0134デフォルトの名無しさん
2006/06/14(水) 20:02:250135デフォルトの名無しさん
2006/06/19(月) 11:43:21y = ax^2,y=ax^3…y=ax^n(nは任意の数)
作成し、折れ線グラフを作成しChart1にセットごとに色を変えて表示します。
質問としては第一にChartの色指定をプログラム上でできないか?ということと
Chart1->Series[count]->AddXY(x,y,"",clRed);
(色指定はclRedしか分からずHTMLみたいに#FFFFFFみたいに色指定したい)
もう一つは
各セットごとにグラフの表示/非表示を選択できるようにしたいのですが
RadioGroupでは複数選択ができず、CheckBoxを任意の位置に表示する方法がわからないため
うまくできません。
以上教えていただけませんでしょうか?よろしくお願いいたします。
0136デフォルトの名無しさん
2006/06/21(水) 02:25:09Navigateしてから表示されるまでに時間がかかります。
ちなみに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);
だとコンパイル出来ませんでした。
0137デフォルトの名無しさん
2006/06/21(水) 02:40:53つまり君は自分が阿呆だと言いたい訳か?
tmp = Edit1->Text;
CppWebBrowser->Navigate(Edit1.Text);
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
だとコンパイル出来ませんでした。
0138136
2006/06/21(水) 02:47:30CppWebBrowser->Navigate(Edit1.Text);
↓
CppWebBrowser->Navigate(url);
つまらん煽りはいらん。
0139136
2006/06/21(水) 02:54:56CppWebBrowser->Navigate(Edit1->Text);
>つまり君は自分が阿呆だと言いたい訳か?
>tmp = Edit1->Text;
>CppWebBrowser->Navigate(Edit1.Text);
tmpは関係ないだろ。
読解力の無いアホめ。
0140デフォルトの名無しさん
2006/06/21(水) 03:20:14おまい相当知能指数が低いな。
Edit1->Text;
Edit1.Text
と並べて間違いをおまいにも理解できるようにしてやったってこともわからんのか。
0141136
2006/06/21(水) 03:42:41回答者は誰でも分かる様な分かりやすい書き方を心がけろ。
ちなみに自己解決したからもうどうでもいい。
0142デフォルトの名無しさん
2006/06/22(木) 00:34:49BDS2006に付属のBCBは
「BCB7」になるんすかね?
それとも「BCB2006」ですか?
そんなこと考えてたら仕事になりません。
0143デフォルトの名無しさん
2006/06/22(木) 00:59:00Borland(R) C++Builder(R) for Microsoft(R) WindowsTM Version 10.0
0144142
2006/06/22(木) 07:03:46長すぎね?
もちっと短く出来ぬか?
0145デフォルトの名無しさん
2006/06/22(木) 11:14:00マジレスしとくと対応するDelphiと同じバージョンになる。
Del6 = BCB6
Del7 = なし
Del8 = なし
BDS2005(Del9) = なし
BDS2006(Del10) = BDS2006(BCB10(製品名としてはBCB2006))
0146デフォルトの名無しさん
2006/06/24(土) 13:10:12を参考にしながら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 *)' に一致するものが見つからない
と言われます。
何がいけないのでしょうか・・
0147デフォルトの名無しさん
2006/06/24(土) 17:44:410148デフォルトの名無しさん
2006/06/25(日) 03:34:13new付けずにコンパイルした時
[C++ エラー] : E2459 Delphi 形式のクラスは演算子 new で構築しなければならない
と言われたものですから・・
0149デフォルトの名無しさん
2006/06/25(日) 09:26:000150146
2006/06/25(日) 10:58:08諦めてシングルウィンドウで頑張りますorz
0151デフォルトの名無しさん
2006/06/25(日) 16:23:350152デフォルトの名無しさん
2006/06/25(日) 16:36:260153146
2006/06/25(日) 17:08:460154デフォルトの名無しさん
2006/06/25(日) 23:46:28よく分からんがこれだけでいいとか
0155デフォルトの名無しさん
2006/06/26(月) 00:20:31ただのキャストだって
Child = (TIEWindow*)TabControl1->Tabs->Objects[i]);
>>148はエラーメッセージからして、一時オブジェクト作るコード書いてたんだろ
Child = TIEWindow(TabControl1->Tabs->Objects[i]);
0156デフォルトの名無しさん
2006/06/27(火) 11:00:12別なフォームを出したいと思うんですがどうすればいいんでしょうか?
今、Form1(親画面)Form2(別に構成している画面)を準備しています。
Form1のMENUの関数にどう記述すればいいんでしょうか?
それとも何か設定が必要ですか?
すみませんが教えてください。。。」
0157デフォルトの名無しさん
2006/06/27(火) 11:26:04Form2 = new TForm2(this);
// Form2->init(???); //form2に渡すものがあれば渡しておく
Form2->ShowModal();
delete Form2;
0158デフォルトの名無しさん
2006/06/27(火) 12:46:46ありがとうございます。
助かりました。
で、もう1つだけ聞きたいんですが
そのウィンドウを親の中心にくるようにしたいんですが
どうすればいいんでしょうか?
たびたびすみません。
0159デフォルトの名無しさん
2006/06/27(火) 13:24:35Form2 = new TForm2(this);
// Form2->init(???); //form2に渡すものがあれば渡しておく
Form2->Position = poMainFormCenter;
Form2->ShowModal();
delete Form2;
0160156
2006/06/27(火) 21:22:37ほんとありがとうございます。
大変助かりました。
感謝します。
0161デフォルトの名無しさん
2006/06/27(火) 23:45:16所定の時刻になるまでプロセスをスリープさせておく関数ってありますか?
0162デフォルトの名無しさん
2006/06/28(水) 02:34:590163デフォルトの名無しさん
2006/06/28(水) 08:57:09タスクスケジューラ
0164デフォルトの名無しさん
2006/06/29(木) 11:15:13CORBAのサーバアプリケーションを作ったのですが、
コイツを通常に起動する分には全く問題ないのですが、
タスクの「システム起動時」だとうんともすんともいわないのです。
ログを取るとコンストラクタすら走ってません。
「ユーザログオン時」も、ログオン後数秒のタイマをかませないとダメなんです。
何をどう調べればいいのか、ヒントだけでもお願いできないでしょうか?
0165sage
2006/06/29(木) 17:48:41bcc32とコマンドプロンプトでソースファイルをコンパイルする時
エラー E2194: ファイル 'test.c' が見つからない
と表示されます。検索してみたらディレクトリが関係してあるそうなのですが
コンパイルするときソースがあるディレクトリに移動してコンパイルしなければいけないのでしょうか?
さっきソースのあるディレクトリで試してみたら成功したのですが、これはC++Builderのパスがしっかり通ってないということでしょうか?
0166デフォルトの名無しさん
2006/06/29(木) 17:49:580167デフォルトの名無しさん
2006/06/29(木) 18:01:37>コンパイルするときソースがあるディレクトリに移動してコンパイルしなければいけないのでしょうか?
あたりまえ。
ファイル捜索順はカレントディレクトリ>環境変数PATHで指定されたディレクトリ。これで見つからなければエラー出す。
ついでにスレ違いとも言っておこう。
タダで使えるBorland C++ Part5
http://pc8.2ch.net/test/read.cgi/tech/1135127048/
0168デフォルトの名無しさん
2006/06/29(木) 22:13:410169デフォルトの名無しさん
2006/06/29(木) 22:36:390170デフォルトの名無しさん
2006/06/29(木) 22:43:35・背景色でもう一度LineTo
・描画前の画像を保存しておいて、その保存画像をもういちど描画
0171デフォルトの名無しさん
2006/06/29(木) 23:25:48ありがとうございます。
0172デフォルトの名無しさん
2006/07/05(水) 17:49:02-------------------------------------------------------
#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 が参照)
が出てコンパイルできません。
何が原因で、どう対策すればコンパイルが通るようになるか
御教示願います。
0173172
2006/07/05(水) 18:34:48プロジェクトにvclx.libを追加してエラーが出なくなりました
このやり方で正しいのでしょうか?
0174デフォルトの名無しさん
2006/07/05(水) 18:45:46ただうちはFileCtrl.hppをインクルードするだけで、勝手にbprファイルのライブラリのとこにvclx.libが追加されるけどね。
0176デフォルトの名無しさん
2006/07/08(土) 17:09:01c++勉強したいと思ってます。
C++ builder6かVC++
開発環境どうしようか考えています。
本屋とネットでどちらが勉強しようか調べてみたら
Builderの方がドキュメント少ないように思いました。
近所の結構大きい本屋では、VC++の本はたくさんあったんですが、
Builderの本は一冊もありませんでした。(ちょっとびっくり)
VC++の方が初心者にとっては勉強しやすいでしょうか?
0177デフォルトの名無しさん
2006/07/08(土) 22:04:370178デフォルトの名無しさん
2006/07/08(土) 23:27:590179デフォルトの名無しさん
2006/07/09(日) 01:28:50それはそうですね。本もその他の情報も圧倒的に VC++ が有利。
ユーザもいっぱいいるからいろいろ教えてもらえる。
BCB が便利なのは、簡単に GUI を作れることだけ。
ま、これがけっこう大きなメリットだが。
0180デフォルトの名無しさん
2006/07/09(日) 08:46:46C++の学習に必要なのはVC++やBCBの本じゃなくてC++の本。
あとBCB標準のフレームワークのVCLについてはDelphi用の書籍で事足りるし。
0181デフォルトの名無しさん
2006/07/09(日) 10:59:33VC++で決まり。情報量がまったく違うから。無料版があるしね。
Borlandにも無料のC++はあるけど。
現時点で、わざわざ金だしてBuilderを購入する必要性は皆無。
C++を理解してMFCとGUI設計に怒りを感じたら、Builder(Borland Developer Studio)を検討すればいい。
0182デフォルトの名無しさん
2006/07/09(日) 12:06:350183デフォルトの名無しさん
2006/07/09(日) 12:58:540184デフォルトの名無しさん
2006/07/09(日) 13:16:51俺が使い始めたBCB1当時はVCがかなり使いにくかったのでBCBは直感的に分かってすんなり使うことができたけどね
0185デフォルトの名無しさん
2006/07/09(日) 13:39:560186デフォルトの名無しさん
2006/07/09(日) 19:09:00言語の独自拡張積極的に使うことになるしあまり‥‥
0187デフォルトの名無しさん
2006/07/09(日) 19:37:00いきなり__fastcallとか出てくるし
文字列はAnsiStringだしね。
0188デフォルトの名無しさん
2006/07/09(日) 20:03:260189デフォルトの名無しさん
2006/07/09(日) 21:02:37ファイル->新規作成->アプリケーションして
フォームをダブルクリックして
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;
}
0190デフォルトの名無しさん
2006/07/10(月) 17:09:05AnsiStringは便利ですよ
俺なんてAnsiStringとTStringListがなかったら何もできないよ(つД`)
VC++にはそういう拡張ってないんですか?
0191デフォルトの名無しさん
2006/07/10(月) 17:22:33CStringはLPCTSTRのキャストオペレータがあるから、VCに慣れると.c_str()と書くのが非常に面倒になる。
0192デフォルトの名無しさん
2006/07/11(火) 19:41:250193デフォルトの名無しさん
2006/07/11(火) 19:42:270194デフォルトの名無しさん
2006/07/11(火) 21:16:560195デフォルトの名無しさん
2006/07/11(火) 22:40:41俺の場合文字列周りはほとんどAnsiStringで固めちゃってるから.c_str()使うのは珍しいAPI使うときくらいだな
0196デフォルトの名無しさん
2006/07/12(水) 04:16:55その節はお世話になりました。
で、入門書一冊読み終わって、次に「猫でもわかるネットワーク・・・」
買ってきたんですが、わからないクラス?が
出てきてちんぷんかんぷんです。
なんかいきなりいろいろincludeして、
なにやら使っているっぽいです。
猫でもわかるのかと思って買ったんですが、
入門書一冊だけで歯が立ちません。
猫以下の知識みたいでs
listen,connectまでは、大体同じパターンなのかなぁ。
ぐらいの感覚で、正直細かいところが全然です。
途方にくれているところなんですが、
わからない関数とか一つずつbuilderのヘルプや
ネットで調べていくしかないんでしょうか。
全部調べても次々と忘れていきそうです。
ネットワークプログラミングは、パターンが決まっていて、
コピペして、それを改造していくぐらいで大体のものは
できるんでしょうか?
なにかアドバイスお願いします。;;
0197デフォルトの名無しさん
2006/07/12(水) 09:03:100198デフォルトの名無しさん
2006/07/12(水) 10:03:36ロジックまわりはstd::stringやstd::wstring使ってるな。
0199デフォルトの名無しさん
2006/07/12(水) 13:13:43初心者でいきなりネットワークですか
まあ簡単なやつならコピペできると思うが
0200デフォルトの名無しさん
2006/07/12(水) 16:18:08今の現状ですが、
「マスタリングTCP/IP」の書籍
といろんなサイトを見て、
ネットマスクのAND計算、パケットの仕組み、
どんな風に届けられるのかなど勉強しました。
とりあえずどうしていいかわからないので、
シンプルなチャットのクライアント/サーバの
サンプルプログラムをいろいろ探してます。
何種類かダウンロードしてみて、
どんなコンポーネント使ってるとか
コードのパターンが見えてくれば、
コツがつかめるような気がしてます。
もし、ほかのお勧めの勉強方法や
先に勉強したほうが良い順番が
あればアドバイスお願いします。
0201デフォルトの名無しさん
2006/07/12(水) 16:38:35ネットワークプログラミングスレのリンクに目を通して
TClientSocketがWSAAsyncSelectを使ったソケットをラップしたものだとわかってれば
普通に何でも出来るよ。
httpとかのおしゃべりをするだけなら
Indyとかの出来合いのものを使ったほうがよっぽど楽だけどね。
0202デフォルトの名無しさん
2006/07/12(水) 17:24:33どこで質問していいのかも分からない内容なのですが
0203デフォルトの名無しさん
2006/07/12(水) 17:32:01「Winsock2プログラミング」
アマゾンでレビュー見るとよさそうな本ですね。
ちょっと値段が高いので、ネットワークスレのリンクから
勉強したいと思います。
>TClientSocketがWSAAsyncSelectを使ったソケットをラップしたもの
具体的なアドバイスすごい助かります。早速調べてみます。
ありがとうございました。
0204デフォルトの名無しさん
2006/07/13(木) 08:22:34どこで質問していいかは俺もわからないけど、ここはスレ違い。
0205デフォルトの名無しさん
2006/07/13(木) 16:07:440206デフォルトの名無しさん
2006/07/13(木) 16:40:160207デフォルトの名無しさん
2006/07/13(木) 17:41:570208デフォルトの名無しさん
2006/07/13(木) 18:03:120209デフォルトの名無しさん
2006/07/13(木) 19:06:02プロジェクトにソースを追加してメニューからメイクする。
0210デフォルトの名無しさん
2006/07/13(木) 19:09:36トンクスコ
0211デフォルトの名無しさん
2006/07/13(木) 21:08:32ソースが公開されているから自己解決できる。
情報もそれなりにある。
0212デフォルトの名無しさん
2006/07/13(木) 21:21:34http://news19.2ch.net/test/read.cgi/newsplus/1152788480/
0213デフォルトの名無しさん
2006/07/13(木) 23:11:24段々MSDNサブスクリプションに入っている意味が無くなっていくな・・・
0214デフォルトの名無しさん
2006/07/14(金) 12:41:21それはある!なんでわざわざプロパティ変えるかなーとかね。
0215デフォルトの名無しさん
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;
}
0216デフォルトの名無しさん
2006/07/24(月) 23:48:11スレッドIDならそのまんまのがメンバ変数にあるだろ
0217215
2006/07/25(火) 21:23:13すみませんがそれが分からないのです。
HELPを見たら
__property int ThreadID = {read=FThreadID, nodefault};
ってあったんですがこれを宣言するとThreadIDとして使えるって事ですか?
クラスに宣言しても、Cソースに宣言してもだめでした。
0218デフォルトの名無しさん
2006/07/25(火) 21:30:29プロパティは外からはメンバ変数として扱えるからMyThread->ThreadIDで普通に読み出せるはずだが。
0219215
2006/07/25(火) 21:58:30PostThreadMessage(MyThread->ThreadID,メッセージ,(WPARAM)NULL,(LPARAM)NULL);
作ったスレッドに↑でメッセージを送ろうとしていたのですが
何度やってもエラーで戻ってくるのでThreadIdが無効なのか?と思ってましたが
これではだめでしょうか?
0220デフォルトの名無しさん
2006/07/25(火) 22:29:17queue, or else the call to PostThreadMessage fails.
そのスレッド Window をつくってメッセージループ動かしてる?
そもそも、普通のワーカスレッドでどうやってメッセージを受け取るつもり?
0221215
2006/07/25(火) 22:48:48void __fastcall TMyThread::Execute()
の中でGetMessageループで受け取ろうかと思っています。
これじゃだめですか?
CreateThread()でID得て関数指定してやると出来るんですが
Builderではどう実現すればいいのでしょうか?
スレッドを作る→メッセージ渡す→受け取る→関数に飛ぶ
みたいな流れを作りたいんです。
0222デフォルトの名無しさん
2006/07/26(水) 02:46:320223デフォルトの名無しさん
2006/07/26(水) 19:01:580224デフォルトの名無しさん
2006/07/26(水) 19:09:230225デフォルトの名無しさん
2006/07/27(木) 00:02:150226デフォルトの名無しさん
2006/08/02(水) 22:53:58BorlandC++6に、このメソッドがどこから呼ばれてるかを表示できる機能ってありますか?
Eclipseでいうところの右クリック⇒「呼び出し階層を開く」みたいなやつ。
すみません、↓こっちでも投稿してしまいましたがすれ違いっぽいのでこっちに投稿させていただきました。
タダで使えるBorland C++ Part5
http://pc8.2ch.net/test/read.cgi/tech/1135127048/262
0227デフォルトの名無しさん
2006/08/02(水) 23:59:000228デフォルトの名無しさん
2006/08/07(月) 21:41:34TCppWebBrowserで開いたウィンドウのハンドラってどうやって取得するのでしょうか。
TCppWebBrowserそのもののハンドラはTCppWebBrowser->Handleでとれるんですが、
どうも表示しているHTMLは制御できないようで・・・
TCppWebBrowserはPageControlの中に置いています。
よろしくお願いします。
0229デフォルトの名無しさん
2006/08/07(月) 23:26:20hwnd = FindWindowEx(CppWebBrowser1->Handle, NULL, "Shell DocObject View", NULL);
hwnd = FindWindowEx(hwnd, NULL, "Internet Explorer_Server", NULL);
0230デフォルトの名無しさん
2006/08/07(月) 23:48:450231デフォルトの名無しさん
2006/08/08(火) 12:48:27ありがとうございます!!
0232デフォルトの名無しさん
2006/08/11(金) 16:57:05思っているんですがわからないことがあります。
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にすればよいでしょうか。
よろしくお願いします。
0233デフォルトの名無しさん
2006/08/11(金) 17:12:35コードすごく見づらくなってました。
ごめんなさい。
0234デフォルトの名無しさん
2006/08/12(土) 02:20:36TListはポインタしか引数に持てません。
取得したオブジェクトからポインタを取得するにはどういう記述をすればよいのでしょうか?
関数Xは、あくまでもオブジェクトしか返さない(ポインタは返さない)という前提です。
0235デフォルトの名無しさん
2006/08/12(土) 04:44:09参照演算子。てかstd::vector使えと。
>>232
自分自身と親ディレクトリ
ルートディレクトリは自分に名前付いてないし親ディレクトリも存在しない。
そしてヘルプのfaArchiveの上の行嫁
0236234
2006/08/12(土) 20:02:57TList *list = new TList();
list->Add(&getHogeObj());
こんな感じでしょうか?
0237デフォルトの名無しさん
2006/08/12(土) 20:24:18std::vector<Hoge> list;
list.push_back(getHogeObj());
0238デフォルトの名無しさん
2006/08/13(日) 04:05:11既に配置した奴はデリートして一からですか?
0239デフォルトの名無しさん
2006/08/13(日) 07:44:09オブジェクトツリー上でドラッグ
0240デフォルトの名無しさん
2006/08/13(日) 07:56:54あり^^
0241デフォルトの名無しさん
2006/08/13(日) 21:45:35「モジュール'dcc60.dllのアドレス00A3630Dでアドレス00000018に対する
読み込み違反がおきました。」
って出てしまう、、
これはどうゆうことなのでしょうか?
ttp://wblue.web.infoseek.co.jp/soft/compo/005_exifinf.htm
のEXIFを読み込むコンポーネントで使い出がありそうなんだが、、
0242デフォルトの名無しさん
2006/08/14(月) 23:39:56vector にこだわる理由ってなに?
tlist でも十分じゃね?
0243デフォルトの名無しさん
2006/08/14(月) 23:51:190244デフォルトの名無しさん
2006/08/15(火) 00:09:12ナルヘソ。
そんなあなたにお伺いしたい。
文字列系のライブラリは何を使ってますか?AnsiStringじゃないことだけは確かだが。
やっぱりstring?
0245デフォルトの名無しさん
2006/08/15(火) 00:19:39> AnsiStringじゃないことだけは確かだが。
なぜ?AnsiStringを受け取る便利関数が多いし、コンポとのやり取りにも必要だから使ってるけど。
TListみたくvectorから乗り換える必要性を感じられないものとは違う。
仕事でLinuxとの共用ソース書かくときなんかはstd::string使うけどさ。
0246デフォルトの名無しさん
2006/08/15(火) 07:46:38フィールド Length (cm)
についてSQLでSELECTしようとしたらエラーが出ます。
どういう事でしょうか
0247デフォルトの名無しさん
2006/08/16(水) 12:35:00どんなSQL文?
0248デフォルトの名無しさん
2006/08/16(水) 14:13:56エラーじゃないですが、数値を表示してくれません><
0249デフォルトの名無しさん
2006/08/17(木) 10:25:530250デフォルトの名無しさん
2006/08/18(金) 04:42:050251デフォルトの名無しさん
2006/08/18(金) 04:43:13という文字列がずらーっと表示されます><
0252デフォルトの名無しさん
2006/08/18(金) 04:45:290253デフォルトの名無しさん
2006/08/18(金) 09:13:216なら-NPスイッチ
0254デフォルトの名無しさん
2006/08/18(金) 14:02:14あり^^
0255デフォルトの名無しさん
2006/08/18(金) 14:26:23時分秒もできますか?
0256デフォルトの名無しさん
2006/08/18(金) 14:45:34http://firebird.skr.jp/wiki/%A5%AD%A5%E3%A5%E9%A5%AF%A5%BF%A5%BB%A5%C3%A5%C8%A1%A6%A5%C7%A1%BC%A5%BF%B7%BF%A1%A6%B8%A2%B8%C2#content_1_2
0257255
2006/08/18(金) 15:59:56あり^^
0258デフォルトの名無しさん
2006/08/18(金) 17:29:060259デフォルトの名無しさん
2006/08/18(金) 21:29:43でも英語の方が無難かもしれない
0260デフォルトの名無しさん
2006/08/19(土) 06:51:440261デフォルトの名無しさん
2006/08/19(土) 08:16:35一旦フォーカス入ったらマウス使わないと抜け出せない気がします
マウスフリーアプリ開発のためにもこれは死活問題です><
0262デフォルトの名無しさん
2006/08/19(土) 10:21:52DBGridのoptionsにTabの設定が在るからから確認してみたら?
0263デフォルトの名無しさん
2006/08/19(土) 16:56:49windowsでプログラムを初めてコンパイルしようとしてるのですが
libのddrawが開かないと出てコンパイルできません
何が問題なのでしょうか?
0264デフォルトの名無しさん
2006/08/22(火) 11:34:450265デフォルトの名無しさん
2006/08/23(水) 01:15:17それともiterator使ってる?
0266デフォルトの名無しさん
2006/08/23(水) 07:20:270267デフォルトの名無しさん
2006/08/23(水) 09:55:300268デフォルトの名無しさん
2006/08/23(水) 13:28:170269デフォルトの名無しさん
2006/08/23(水) 20:06:04させたいのですが
インクリメント設定は小数ではできないのでしょうか?
できれば0.1ずつインクリメントしたいんですが
整数ではないとのエラーが出てしまいます。
0.1ずつのUpDownできる方法あたら教えてください。
0270デフォルトの名無しさん
2006/08/24(木) 09:22:31アップダウン→ポジションを十で割ってエディットに入れれば?
イベントはアップダウンのチェンジかクリックでいいっしょ
0271デフォルトの名無しさん
2006/08/25(金) 00:33:27イテレータでイレースだっけ? やってもサイズは減るけどメモリは減らないのね
それで微妙なバグでた
もう for(int i=o; i<v.size(); i++) でいいと思う
front() + i かな? 先頭イテレータに+5すれば5番目だ、問題ない
0272デフォルトの名無しさん
2006/08/25(金) 01:25:49どうせコピペじゃないか
0273デフォルトの名無しさん
2006/08/25(金) 08:43:21>イテレータでイレースだっけ? やってもサイズは減るけどメモリは減らないのね
STLの仕様でつ。
メモリを開放するには、Effective STL 第17項に載ってるswap技法を使うらしい。
0274デフォルトの名無しさん
2006/08/25(金) 11:10:34一応、C、C++の文法的な部分は参考書等で理解しているつもりです。
で、VCにすべきか、C++Builderにすべきか迷っています。
VCだとMFCを理解しないと使い物にならないという話を聞いた事があるのですが、
どちらの方が簡単に移行出来るか教えて下さい。
0275デフォルトの名無しさん
2006/08/25(金) 11:16:28つVC+WTL
0276デフォルトの名無しさん
2006/08/25(金) 11:57:32そりゃ、コンポーネントを画面にベタベタするのはBCBしか無いお。
体験版落として起動した瞬間に分かる。
>VCだとMFCを理解しないと使い物にならないという話を聞いた事があるのですが、
ウィザードでMFCアプリケーションを生成してソース開いた瞬間にコケル。
生成されたソースからしてC++的に超汚い。
0277デフォルトの名無しさん
2006/08/25(金) 12:06:06もう一つ書いとくと、BCBのVCLにVB的な文字列ユニットが用意されている。
BCBで画面にペタペタ貼った後はVBコードみたいなの書いても高速安定動作するお。
C++の勉強はBCBに移行してから少しづつやれば良い。
0278デフォルトの名無しさん
2006/08/25(金) 13:52:160279デフォルトの名無しさん
2006/08/25(金) 17:06:56C++Builderまじおすすめ。
ドラッグアンドドロップで、ポトペタできる。
VBからなら、Delphiの方が入りやすいかもしれない。
0280デフォルトの名無しさん
2006/08/25(金) 17:24:47MFCだとベタベタな書き方とかWin32APIコールしまくりしか出来ない上、
トリッキーなことしないとやりたいことが出来ない仕掛けだからもっと恐ろしいお。
MFCプログラムを初めて見た人は泣きたくなると思う。
0281デフォルトの名無しさん
2006/08/25(金) 17:32:42MoveToでLineToしたあと、CPenとかHDCとかObjectの解放とか
そんな事を全部自分でやらないといけないよ。MFCは。
VCLのTCanvasサイコー!!
0282デフォルトの名無しさん
2006/08/25(金) 17:51:09プロジェクトを超えてダイアログを使いまわしできない。
0283274
2006/08/25(金) 18:15:43早速、C++Builderの体験版を入れてみました。
VBだとマニュアルなんて読まなくても、簡単な物なら即興で作れたのに、
C++Builderは、マニュアルが無いとサッパリ???
早速、本屋に走りましたが、田舎なものでC++Builderの参考書は一冊もなかったです。
VCなら2、3冊はあるのに・・・(T_T)
アマゾンで購入しようと思うので、お勧めの参考書があれば教えて下さい。
0284デフォルトの名無しさん
2006/08/25(金) 18:28:29>C++Builder 6コンポーネント活用ガイド&実践プログラミング (Vol.1)
>C++Builder6 コンポーネント活用ガイド&実践プログラミング〈Vol.2〉実践テクニック編
自分はDelphi→BCBに入ったので本読まなかった。
0285デフォルトの名無しさん
2006/08/25(金) 18:34:00VBに似てると評判なんだけど...
コンポーネントも多くて便利じゃない?
まさか、「Borland C++ 2005」(←GUIライブラリが無い)と間違えてないおね...
0286デフォルトの名無しさん
2006/08/25(金) 19:47:45そんなお前にこれをプレゼント
http://www.ne.jp/asahi/nagoya/ahomaro/builder/index.html
まぁ、ガンガレ
0287デフォルトの名無しさん
2006/08/25(金) 20:33:420288デフォルトの名無しさん
2006/08/25(金) 21:37:58C>プログラムファイル>ビルダー>サンプル
ってフォルダがあるから、コピーしていじりまくればいいお
サンプル100個ぐらいはいってなかったけ
0289デフォルトの名無しさん
2006/08/25(金) 21:56:13漏れは無敵のC++Builderって本でほぼマスターできたよ
0290デフォルトの名無しさん
2006/08/26(土) 10:46:15やっぱりファイル検索しかない?あれだと余計なのもヒットするからイマイチなんですよね
0291デフォルトの名無しさん
2006/08/26(土) 11:44:14シリアルに使うんですか?
INTEGERより適してるとかですか?
0292デフォルトの名無しさん
2006/08/26(土) 18:05:53漏れはあったらあったでウザイけどな
Ctrl+Fのプロジェクト内検索でいいんでね? あとブレークポイントで中はいるか
コード補完系って時間かかるから全部切ってるしね
んなことよりターボ君はまだか ヽ(`Д´)ノ
0293デフォルトの名無しさん
2006/08/26(土) 21:06:00RADのあるコンポーネントのバグが重大な原因となっていると判明した場合
RADメーカーに損害賠償請求ってできるの?
0294デフォルトの名無しさん
2006/08/26(土) 21:18:090295デフォルトの名無しさん
2006/08/26(土) 21:42:59使用契約よく嫁。そういう保証は一切ないはず。
0296デフォルトの名無しさん
2006/08/26(土) 23:20:06その辺もフォローするのがプロってもんでしょ
0297デフォルトの名無しさん
2006/08/26(土) 23:25:08こんな安い開発環境でガタガタ抜かすな。
Ent版だとしたら、自分の金じゃなくて会社の金だろうし。
0298デフォルトの名無しさん
2006/08/27(日) 01:23:55もし標準コンポ使ってそう言うバグが出たら知識スキルがなかった293が悪いと思います。
例えばTMemoやTRichEditのバグとか知ってるの?
0299デフォルトの名無しさん
2006/08/27(日) 01:28:310300デフォルトの名無しさん
2006/08/27(日) 03:51:23ツールのコンポーネントが気にくわないなら、
作れるんだから自分で作ればいいんじゃね?
0301デフォルトの名無しさん
2006/08/27(日) 05:04:14仕事でプログラミングしている奴だとしたら底抜け馬鹿レベルだ。
0302デフォルトの名無しさん
2006/08/27(日) 06:04:4524時間テレビのマラソン中継にて、音声のミスにより、お笑い芸人の意外な本性発覚!!
人間として言っちゃ駄目なこと言ってます!
【動画】→http://ime.nu/www.youtube.com/watch?v=O4QS7JgTlmw
0303293
2006/08/27(日) 10:13:380304デフォルトの名無しさん
2006/08/27(日) 10:27:24使ってるんだろうな。人命に関わるミッションに対する耐性を持つコンパイラ
なんて存在するんだろうか?
0305Delフサギコ ◆A6VzDeLphI
2006/08/27(日) 10:44:29∧,,∧ / 図書館いって
ミ,,゚Д゚彡 < 歴史をひもといて
ミ つ旦)~~ \ みるのもいいかも
@ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪
おもしろい発見あるかもよ。
アポロ13とか、飛行機事故とか。
医療用機器は、人命に関わる部分は
制御系のお仕事だね。
0306デフォルトの名無しさん
2006/08/27(日) 11:44:02アセンブリ言語直打
0307デフォルトの名無しさん
2006/08/27(日) 12:06:010308デフォルトの名無しさん
2006/08/27(日) 12:45:140309デフォルトの名無しさん
2006/08/27(日) 20:42:00本当の意味で再起動が許されないのは莫大な資金で打ち上げたロケットとかじゃね?
それらの制御系の応答時間はリアルタイムOSが保障。
0310デフォルトの名無しさん
2006/08/27(日) 21:45:01落ちたらバックアップのシステムが支えるようになってるのが普通だろ。
ミスをしない人間などいないからな。
肝心のバックアップシステムがちゃんと動作しなくて、銀行のオンラインが停止したなんてことが
最近起こっている訳だけどね。
ロケットなんかは、リセットが許されるシステムだろう。
リセットして正常になるならリセットだろ。
ロケットのシステムをリセットしても、慣性飛行しているときには影響ないし。
0311デフォルトの名無しさん
2006/08/27(日) 21:50:09再突入中だったらヤバい
0312デフォルトの名無しさん
2006/08/28(月) 00:40:110313デフォルトの名無しさん
2006/08/28(月) 00:50:580314デフォルトの名無しさん
2006/08/28(月) 03:23:290315デフォルトの名無しさん
2006/08/28(月) 06:16:19BLOBのテキストデータからも検索したい場合
どのような手法がポピュラーと思われますか?
0316デフォルトの名無しさん
2006/08/28(月) 21:06:11プロジェクト内検索ってw
チミは規模の大きいシステム開発をしたことないんだね
0317デフォルトの名無しさん
2006/08/28(月) 21:13:290318デフォルトの名無しさん
2006/08/28(月) 22:51:070319デフォルトの名無しさん
2006/08/28(月) 22:57:28プロジェクト分割しろよwww
w ∧_∧ w
ヽ( )ノ
. / /
ノ ̄ゝ,,,.,.,,.,.,,,.,.,,.,,,.,.,,.,.,,,.,.,,.,,,.,.,,.,.,,,.,.,,
0320デフォルトの名無しさん
2006/08/28(月) 23:34:130321デフォルトの名無しさん
2006/08/29(火) 02:33:200322デフォルトの名無しさん
2006/08/29(火) 15:40:17フォーム上に複数のコントロールがあって、それぞれにDnDしたい場合はどうすればいいのでしょうか?
0323デフォルトの名無しさん
2006/08/29(火) 15:43:49それぞれのコントロールのウィンドウハンドルで、
DragAcceptFilesすればいいじゃまいか。
0324デフォルトの名無しさん
2006/08/29(火) 23:25:43今後のCDTの完成度に期待したい。
0325デフォルトの名無しさん
2006/08/30(水) 00:25:36エンジン部分の言語とGUIを分離できればいいかもしれん
0327デフォルトの名無しさん
2006/08/30(水) 14:48:060328デフォルトの名無しさん
2006/08/31(木) 02:13:36コントロールのウィンドウハンドルを渡すとそのコントロールのウィンドウプロシージャにメッセージが飛んでくるんだぞ?
0329デフォルトの名無しさん
2006/08/31(木) 04:03:360330デフォルトの名無しさん
2006/08/31(木) 18:21:56今、bcc32の5.6.4を入手しようとしたら、どこから入手できますか?
buiderXのpersonalとかいうのは、もう落とせないみたいだし…。
期限付きのトライアルに含まれていたりします?
0331330
2006/08/31(木) 18:51:22turboC++のフリー版が出るのを待つ方がいいのかも、
という程度ですが…。
0332デフォルトの名無しさん
2006/08/31(木) 20:00:09すれ違いだ、ボケ
0333デフォルトの名無しさん
2006/09/01(金) 09:29:27一曲演奏終了すると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
0334デフォルトの名無しさん
2006/09/01(金) 09:38:22ファイル名渡す前に演奏停止させれ。
0335デフォルトの名無しさん
2006/09/01(金) 23:57:48なので、全てが重い。
0336デフォルトの名無しさん
2006/09/01(金) 23:59:07ワロタ
確かにVCL部分に話を限ればそうだな。
0337デフォルトの名無しさん
2006/09/02(土) 00:16:080338デフォルトの名無しさん
2006/09/02(土) 00:17:20DELPHIで作ったコンポーネントをBCBでも試そうと
思ったんですが、いちいちクラス名変えないとダメなんですかねぇ。
その場はいいんだけど、改めて起動すると既にありますとか
言われちゃうんだけど。
0339デフォルトの名無しさん
2006/09/02(土) 00:20:10勘違い?
回りくどいことしてるのには変わりないだろ。
0340デフォルトの名無しさん
2006/09/02(土) 00:21:58回りくどい?何か例あげてみ?
0341デフォルトの名無しさん
2006/09/02(土) 00:22:42Delphi型クラスとC++クラス両方を扱えるC++コンパイラ。
実行はDelphi/C++ともにネイティブコード。
0343デフォルトの名無しさん
2006/09/02(土) 00:24:22馬鹿だな。コンパイラの仕事は多くなり、コンパイルは実際遅いが、
それは生成された実行ファイルの速度とは別の話だろ。
0344デフォルトの名無しさん
2006/09/02(土) 00:32:43VCLがなしたって?VCL自体はDelphiでコンパイルされるが、
だからって、C++からVCLを利用するのに特別遅くなるようなコードは生成されないだろ。
マシン語レベルで見れば、例えば、関数やメソッドの呼び出しなんか、引数のPUSHとCALLだ。
DelphiだろうとC++だろうと、同じようなコードが生成される。
0345デフォルトの名無しさん
2006/09/02(土) 00:34:59画面操作とかはpDCとか触ったほうがコードは少なくてすむ。
さらにインラインでレジスタだけ渡せばもっとコンパクトになる。
それをC++記述にしたりVCLに任せるのですら、回りくどいことを
しているという人もいるけど、そんな煩わしさを無視できるからこそ
BCBの良いところだとも思う。原因不明の暴走とかのほうが煩わしい。
今はマシンパワーあるからBCBやDELPHIで充分だとも思う。
0346343
2006/09/02(土) 00:37:50341の内容を理由に重いと言ってるのかと思った。すまん。
0347345
2006/09/02(土) 00:38:35>>343
本当ですか?
なんとなくBCBはDELPHIより遅い気がするのは俺だけ?
特にマルチスレッドとか。吐くコードが明らかに違うような気がするんですが。
0348デフォルトの名無しさん
2006/09/02(土) 00:51:41>>344で言ってるコードは、VCLの提供する変数や関数へアクセスする際のコードの話。
そして関数の中に入ってしまえば、当然同じコードが走るのでDelphiとC++の差は無い。
(だからVCLがなした?と。)
それ以外の部分は、当然差はあるよ?どちらも得手不得手あるだろうし、
DelphiとC++はどちらが速いかなんて不毛な議論はするつもりはないけれど。
0349デフォルトの名無しさん
2006/09/02(土) 01:32:03コンパイラ、リンカは双方の差はない。
VCLは全く同じ仕組みということで良いのでしょうか。
ならばC++を使う分には絶対にVC++使いますけどね。
DELPHIもVC++も使えるので、BCB使う理由がないですよね。
0350デフォルトの名無しさん
2006/09/02(土) 01:33:03馬鹿はすぐになんとなく遅いとか言い出す。
そして測定すると逆の結果だったりする。
あるいは、Builderの方だけ最適化がデフォだったりとかな。
気がするとか無意味で間抜けなこと言っている暇があるなら測定すれ。奴阿呆。
0351デフォルトの名無しさん
2006/09/02(土) 01:36:17そりゃ別にいいよ。そう思うなら好きにすればいい。
0352デフォルトの名無しさん
2006/09/02(土) 02:18:440353デフォルトの名無しさん
2006/09/02(土) 11:36:36自分的にはVCLとSTLの両方が使えるBCB最強。
0354デフォルトの名無しさん
2006/09/02(土) 12:42:32おれはVCLの変な仕様が気に食わないのでそうしてるんだが。
0355デフォルトの名無しさん
2006/09/02(土) 13:52:43BCBとVC++ではBCBのほうがVBに近い感覚でポトペタプログラムが作れるから
ずっと楽だよ。
なので客先からVC++を指定されない限りBCBで開発してる。
0356デフォルトの名無しさん
2006/09/02(土) 20:12:44NMUDPで文字列の送受信を自身に対して行いたいのですが
どうにも受信出来ません。
ヘルプを参考に記述し、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");
}
}
0357デフォルトの名無しさん
2006/09/02(土) 20:51:42VCLの変な仕様って?
0358デフォルトの名無しさん
2006/09/02(土) 20:56:18大人になっていく過程で、世の中の多様性に触れて学習していく。
つまり>>354は、まだまだお子ちゃまってことだ。
0359デフォルトの名無しさん
2006/09/02(土) 23:22:470360デフォルトの名無しさん
2006/09/03(日) 00:39:12解説本で収益を得るのはおk?
0361356
2006/09/03(日) 03:34:26しかし機能してませんねこのスレ
0362デフォルトの名無しさん
2006/09/03(日) 04:36:520363デフォルトの名無しさん
2006/09/03(日) 08:22:29True/Falseで表示されるわけですが、
これをカスタマイズして例えばTrueなら"True"という文字列ではなく、
代わりに"○"を表示したい場合どうすれば良いですか?
0364デフォルトの名無しさん
2006/09/03(日) 13:26:49機能していないのではない。
君自身のせいだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
それと自己解決したら、どうやって解決したかを書くのが礼儀だ。
君は、スレ違いの上に、ただのクレクレ君だ。
もう少し自分自身を顧みなさい。
0365356
2006/09/03(日) 13:28:14むしろ雑談してる奴がスレタイ嫁って感じだ
0366デフォルトの名無しさん
2006/09/03(日) 13:46:59>356 名前:デフォルトの名無しさん 投稿日:2006/09/02(土) 20:12:44
>361 名前:356 投稿日:2006/09/03(日) 03:34:26
質問した時間帯とか考えれば、レスが付かないのは不思議ではありませんねぇ。
ここは>>356専用のなんでも相談室ではありませんよ。
0367デフォルトの名無しさん
2006/09/03(日) 16:00:070368デフォルトの名無しさん
2006/09/03(日) 17:25:22もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
0369356
2006/09/03(日) 17:26:280370363
2006/09/03(日) 19:14:170371デフォルトの名無しさん
2006/09/03(日) 19:16:050372デフォルトの名無しさん
2006/09/03(日) 22:08:430373デフォルトの名無しさん
2006/09/03(日) 23:34:490374デフォルトの名無しさん
2006/09/04(月) 00:15:56論理型フィールドの状態によってOnCalcFields内で○か×を文字として代入。
0375デフォルトの名無しさん
2006/09/04(月) 00:30:47あとTShiftStateの扱いもちんぷんかんぷんです。
解説お願いします。
0376デフォルトの名無しさん
2006/09/04(月) 06:55:370377デフォルトの名無しさん
2006/09/04(月) 07:49:330378デフォルトの名無しさん
2006/09/04(月) 08:05:57if (Shift.Contains(ssShift))
ShowMessage("Shift+Delete");
0379デフォルトの名無しさん
2006/09/04(月) 08:13:59あり^^
0380デフォルトの名無しさん
2006/09/04(月) 09:13:20AAA->SizeというようにUnkoまでをAAAに置き換えて
省略する方法があったような気がしますが忘れてしまいました。
どなたか教えていただけないでしょうか?
ソースが横に長くなりすぎて辛いです。
0381デフォルトの名無しさん
2006/09/04(月) 09:16:040382デフォルトの名無しさん
2006/09/04(月) 09:21:56申し訳ないです。C++の質問スレッドを探します。
Builderユーザーなのですが基本からやり直そうと思います(つд`)
0383デフォルトの名無しさん
2006/09/04(月) 09:29:08Unko_Type *unko = Osiri->Koumon->Unko;
荒らしてる356とその騙りは無視しとけ。
0384デフォルトの名無しさん
2006/09/04(月) 10:21:390385デフォルトの名無しさん
2006/09/04(月) 10:22:210386デフォルトの名無しさん
2006/09/04(月) 10:26:00スレ違いに答えてんじゃねーよ帰れ
0387デフォルトの名無しさん
2006/09/04(月) 11:09:580388デフォルトの名無しさん
2006/09/04(月) 11:39:500389デフォルトの名無しさん
2006/09/04(月) 14:27:58new deleteも禁止。
データベース禁止。
0390デフォルトの名無しさん
2006/09/04(月) 14:32:17newできなかったらTStringListが使えないと言う場合は
TMemo->Lines推薦。TMemoポトペタVisible=falseでよろしく。
0391デフォルトの名無しさん
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
0392デフォルトの名無しさん
2006/09/04(月) 14:58:54超初心者には無理。
別の高度なスレで質問すれば可能になる。
ヒント:プロセス。フック。メッセージ。
0393391
2006/09/04(月) 15:10:03http://www2.big.or.jp/~osamu/Delphi/builder-browse.cgi?index=017979
頂いたヒントに沿うものが、上記ulrにも書いてありました・・・。
他のところで聞いて見ます。
ありがとうございました。
0395デフォルトの名無しさん
2006/09/04(月) 19:37:29DBGrid->Columnsでフォントカラーを背景と同じ色にして文字を特大にして、
さらにTrueの場合はDBGridのOnDrawColumnCellイベントで
ハンドラとしてColumn->CanvasにTextRectで描きたいマークを上塗りする事により解決しました。
その際、フォントとキャラセットを正しく設定しないとマルチバイト文字は化けてしまう事が分かりました。
以上報告まで。
ありがとうございました。
0396デフォルトの名無しさん
2006/09/04(月) 19:38:45俺の真似しないで下さい><
0397デフォルトの名無しさん
2006/09/04(月) 20:14:02まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
0398デフォルトの名無しさん
2006/09/04(月) 20:19:09法規があっても、それが解釈の余地があるなら、
弁護人によっていかようにも解釈できてしまうからだ。
0399デフォルトの名無しさん
2006/09/05(火) 11:13:39TCartをフォームに配置して、適当な棒グラフを追加。
次にTChartコンポーネント上にTButtonを配置
それで実行したらTChart上でマウスホイールをぐるぐる回すと回した方向に棒グラフが上下するんです。
TChartコンポーネントの上にボタンをおかなければ起きなかったんですが、
何か知ってる方いませんか?
0400399
2006/09/05(火) 11:16:35BDS2006なのでBCB10、TChartはPro7.07
TComboboxでも動きました。
TLabelやTpanelでは動きません。
0401デフォルトの名無しさん
2006/09/05(火) 12:07:50スクロールするようだけど。
0402399
2006/09/05(火) 13:41:29自分か子にフォーカスがある場合、スクロール無効な処理をいれれば解決しそうですが・・・?
0403デフォルトの名無しさん
2006/09/05(火) 13:53:430404デフォルトの名無しさん
2006/09/05(火) 15:05:17OpenDialogで一度に取得できるファイルの数に制限があるのでしょうか
OpenDialog->Files->Countが1540にしかなりません。
また、コンポーネントの制限に関する記述はヘルプのどこを見れば出てきますか
BCB4では"制限""TMemo"といったキーワードで出てきたと思うのですが。
どうかよろしくお願いします。
0405デフォルトの名無しさん
2006/09/05(火) 15:45:51MSDN 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
これにひっかかりそう
0406デフォルトの名無しさん
2006/09/05(火) 16:10:49MultiSelectBufferSize = High(Word) - 16;
...
...
nMaxFile := MultiSelectBufferSize else
と書かれているので、この辺りに上限があるのでは?
0407404
2006/09/05(火) 16:25:26早速ありがとうございます。
StringListの32kB制限って、OSから来ていたんですか! 知りませんでした。
となればOpenDialog->Filesがその影響下にあるので、当然そのような制限があるということですね。
ありがとうございました。
ヘルプにはその辺の理由は無くとも、制限が如何程のものか明示して欲しいところだと思いました。
日本語と併せて勉強してきます。
0408デフォルトの名無しさん
2006/09/05(火) 16:27:150409デフォルトの名無しさん
2006/09/05(火) 17:40:42TApplication::OnMessageで、WM_MOUSEWHEELを監視して、
Chart1に来たらHandled=trueにすればいい。
0410デフォルトの名無しさん
2006/09/06(水) 00:02:05あれって要するに、C++のポリモーフィズムによって
いかようにも(その子孫達に)化けて渡せるって事ですか?
0411デフォルトの名無しさん
2006/09/06(水) 01:28:060412410
2006/09/06(水) 02:32:30久しぶりに勘が当たりました
あり^^
0413デフォルトの名無しさん
2006/09/06(水) 09:47:520414399
2006/09/06(水) 14:11:43言われたとおり、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;
}
}
0415デフォルトの名無しさん
2006/09/06(水) 17:18:59void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled)
{
if (Msg.message == WM_MOUSEWHEEL && Msg.hwnd == Chart1->Handle)
Handled = true;
}
0416399
2006/09/06(水) 17:58:40ありがとうございます。
超スマートになりました・・・。
しかし、チャートはフォーカスを持つ事がない様なので一生走りそうにありません。
Msg.hwndにはTChartの子コントロールとなっているボタンのハンドルが入ってきます。
子コントロール全てを対象にする方法は、
「指定のスレッドに関連する子ウィンドウをリストアップする」
WindowsAPIのEnumChildWindowsで、TChartを指定して〜というかんじだと思うのですが、
EnumChildWindowsのコールバックというのが意味不明です。
わかりやすく言うとどういうことですか?
0417デフォルトの名無しさん
2006/09/06(水) 18:44:14if (Msg.message == WM_MOUSEWHEEL) {
HWND hwnd = Msg.hwnd;
do {
if (hwnd == Chart1->Handle)
Handled = true;
} while ((hwnd = GetParent(hwnd)) != NULL);
}
子→親と辿った方が楽。
0418デフォルトの名無しさん
2006/09/06(水) 20:14:10VCLフォームアプリケーションとSDI・MDIフォームアプリケーションの違いって何ですか?
0419デフォルトの名無しさん
2006/09/06(水) 21:27:04VCLフォームに全部自分でポトペタ、プロパティ設定すれば何の違いもない。
0420デフォルトの名無しさん
2006/09/06(水) 22:03:35昔のようにブ厚いマニュアルが付いてないし、ヘルプは大雑把だし、
ネットで見てもユーザーが少なくて参考にならない等、苦労してます。
試行錯誤でいろいろ自力で解決しましたが、いまだに解らないのか、
イメージエディタってやっぱり昔のをコピろってことなんでしょうか?
まぁ、ファイル3つ移植するだけで済むんですけどね。
0421420
2006/09/06(水) 22:09:24アドビが可愛く見えるっす。
0422デフォルトの名無しさん
2006/09/06(水) 22:55:100423Delフサギコ ◆A6VzDeLphI
2006/09/06(水) 23:17:18∧,,∧ / >>420
ミ,,゚Д゚彡< XN Resource Editor
ミ つ□) \
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪
0424デフォルトの名無しさん
2006/09/07(木) 00:19:18BCB6使いやすすぎ
0425デフォルトの名無しさん
2006/09/07(木) 01:14:33分厚いマニュアルは、リアル紙では付属していないけど、
ちゃんとヘルプの中に入っている。
0426デフォルトの名無しさん
2006/09/07(木) 02:05:30SP1とSP2の中にな。
しかも、紙をペラペラめくる感覚でいかんだろ。
0427420
2006/09/07(木) 02:31:29お返事ありがとうございます。
苦労したおかげで、今では充分に理解していますよ。
リソースなんていくらでも編集する手段ありますし。
ただ、製品としてツールがあるのかどうかが知りたかっただけ
なんですけどね。マニュアル嫁とでも?
>>425
DELPHI(WIN32)部分じゃ全く苦労してないです。
ずっと5を駆使してきたから。
初めて使ったとして、あのあらずじしか書いてないヘルプじゃ
いきなり理解できないですよね。
関数やらを調べるのにしてもF1とかCTRLで使うとしても、
英文でしかもサンプルの無いページに飛ばされるわけですよ。
(それでも拙い読解力で頑張って読んでますけどね)
まぁ、5の分厚い日本語マニュアルでもワケがわかなかったけど...。
0428デフォルトの名無しさん
2006/09/07(木) 05:49:46同感です。
「Delphi6 プログラミングバイブル」という良本があるが、
これを商品に標準で付ければ、開発ツールとしての価値は
断然上がると思う。
Turboシリーズの日本語化の際には、ぜひ考えてほしい。
商品価格は上がってもいいから。 >ボー様
0429デフォルトの名無しさん
2006/09/07(木) 08:55:59本屋で買うかどうか決められる方がいい。
0430デフォルトの名無しさん
2006/09/07(木) 09:23:340431デフォルトの名無しさん
2006/09/07(木) 09:40:290432デフォルトの名無しさん
2006/09/07(木) 13:52:21表示したサイトに付いているボタン押下判定がしたいのですが、
TApplicationEventsを使って出来ますか?
例
WebBrowser1->Navigate("http://www.google.co.jp")
で、Googleの検索ボタンを押した!というのをフックしたいの。
TWebBrowserで表示したサイト内のコントロール全てが子ウィンドなんてことはないでしょうか
0433デフォルトの名無しさん
2006/09/07(木) 14:37:54コントロールのメッセージの監視というのは無理。
0434デフォルトの名無しさん
2006/09/07(木) 14:45:32TApplicationEventsでは無理。
DOM使うのがノーマルなやり方だろな。
0435デフォルトの名無しさん
2006/09/07(木) 14:53:25無理ですか
DOOM?(´・ω・`)
DOMについて調べてみます。
ありがとうございました。
0436デフォルトの名無しさん
2006/09/07(木) 18:33:15TEditのOnDragOverイベントを使うのでしょうか?
0437デフォルトの名無しさん
2006/09/07(木) 20:07:49具体的にはIHTMLDocument2インタフェース
JavascriptでHTMLドキュメント内の要素を自在に操作できるスキルあるなら簡単。
0438デフォルトの名無しさん
2006/09/07(木) 22:51:50クソドキュメントのせいじゃないとしたら、
普及してないせいだね。
0439デフォルトの名無しさん
2006/09/07(木) 22:56:29試すだけでも半日掛かった。
まさか、マニュアルに書いてあるとでも?
0440デフォルトの名無しさん
2006/09/07(木) 23:13:180441デフォルトの名無しさん
2006/09/07(木) 23:21:38なになにが足りませんとか言われるからそれを持ってくるだけですよ。
>>440
口ばかり達者なのはミエミエだから黙ってろ。
0442デフォルトの名無しさん
2006/09/07(木) 23:25:000443デフォルトの名無しさん
2006/09/08(金) 00:12:55自演の初心者なのが痛々しくて、そっちはどうにも見てらんない。
0444デフォルトの名無しさん
2006/09/08(金) 02:33:32ショートカットキーのCtrl + Shift + Cによるクラスのコード補完みたいなのはないんでしょうか?
0445デフォルトの名無しさん
2006/09/08(金) 03:06:090446デフォルトの名無しさん
2006/09/08(金) 03:30:31すみません、質問が悪かったです。
そのショートカットキーを教えて下さいorz
0447デフォルトの名無しさん
2006/09/08(金) 04:09:47キーはない。
しばらく待つだけ。
設定はツール→エディタプロパティ→支援機能
0448デフォルトの名無しさん
2006/09/08(金) 06:03:24うそ書いたらあかんね。
キーはある。
0449デフォルトの名無しさん
2006/09/08(金) 11:19:10ダイナミックリンクライブラリプロジェクトをつくり、1つ適当な関数
extern "C" __declspec(dllexport) int hogehoge()
{
return 666;
}
をつくり、メイクを実行してdll,libが出来ました。
次にVCLフォームアプリケーションプロジェクトをつくり、
先ほどつくったlibファイルを追加したのですが、hogehoge関数が呼び出せません。
何が足りないのでしょうか・・・。
0450デフォルトの名無しさん
2006/09/08(金) 13:37:29呼び出し側でそのhogehogeを宣言してあるか?
0451449
2006/09/08(金) 13:42:52extern "C" __declspec(dllimport) int __stdcall hogehoge();
場所は「extern PACKAGE TForm2 *Form2;」の下です。
こうではないですか?
0452デフォルトの名無しさん
2006/09/08(金) 17:26:01それでいいはず。
tpりあえずエラーメッセージ晒してみ?
0453デフォルトの名無しさん
2006/09/08(金) 17:26:400454449
2006/09/08(金) 17:52:48__declspec(dllexport)へ変えました。
が、以下のエラーがやはり出ます。
↓出ているエラー
[リンカ エラー] Error: 未解決の外部参照 'hogehoge()' が C:\BORLAND STUDIO PROJECTS\テストDLLPJ\DEBUG_BUILD\TESTPJ.OBJ から参照されました
しかし、__stdcall を消したら実行できました・・・。
ヘルプを引いてみると、
↓↓
_stdcall と __stdcall キーワードを使うと,コンパイラは標準の呼び出し規約を使って関数呼び出しを生成します。ただし,C とは違って,関数は正しい数と型の引数を渡さなければなりません。通常,C では関数の引数の数が可変でもかまいません。
このような関数は,WIN32 の引数渡しの標準規則に従います。
↑↑
と書いてありますが、さっぱりわかりません・・・。
どなたか簡単に解説していただければ幸いです。
とりあえずありがとうございました。
0455449
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に対する読み込み違反がおきました。」
と、エラーが出てしまいます。
何がおかしいのでしょうか?
0456デフォルトの名無しさん
2006/09/08(金) 18:30:410457デフォルトの名無しさん
2006/09/08(金) 20:32:44ついでにDLLからexe側のオブジェクト呼び出しってできたっけ・・
0458デフォルトの名無しさん
2006/09/08(金) 21:33:510459デフォルトの名無しさん
2006/09/08(金) 21:39:43正解ですな。
でも442も同じヤシなのは見抜けなかったというか、
手のひらの上で踊らされてますね。
0460デフォルトの名無しさん
2006/09/08(金) 22:09:16442なんてどうでもいいレスじゃん。
0461デフォルトの名無しさん
2006/09/08(金) 22:27:18Cに移植してます。
ハードウェアの制御をスレッド作って裏でやらせてるんですが、
コントロールでHintを表示させると一瞬スレッドが停止しているように
見えます。
DELPHIでは今までそんなことは起きてませんでした。
ハードのほうは特に問題なく動いてるんですが、信頼性の面で心配です。
これはメインフォームでの見かけ上の問題なのでしょうか、
それとも本当に止まってしまっているんでしょうか。
同じような経験をされた方はいらっしゃいますでしょうか?
0462460
2006/09/08(金) 22:31:03初心者相手にしてたら本当に疲れるよな。
死ねばいいのに。
0463デフォルトの名無しさん
2006/09/08(金) 22:37:210464デフォルトの名無しさん
2006/09/08(金) 22:41:43一瞬固まることがあります。
ちょっと手間は掛かるけど、ラベルなどで代用したらどうでしょう。
普段はVisible=falseにしといて、イベントかマウス座標で、trueにするとか。
もっと簡単な方法はあるかもしれませんが。
0465デフォルトの名無しさん
2006/09/08(金) 22:56:17多分、「いわゆるメインフォーム」の見掛け上の問題かと。
今試したら、スレッドの無限ループ数をカウントしてメインに
表示させたらガクンと数字が上がったので。
そもそも俺はハード使うんだったらNT系のWINはおすすめしませんけど。
0466デフォルトの名無しさん
2006/09/08(金) 23:11:03>>463
もうバカは放っておけやw
バカ相手だと疲れるだからすルーしとけやw
ここは超初心者がくるようなところじゃないんだからw
0467デフォルトの名無しさん
2006/09/09(土) 06:08:00無いのかな。前世代のQuick Reportまではヘルプも日本語だったのに・・・
0468デフォルトの名無しさん
2006/09/09(土) 08:40:520469デフォルトの名無しさん
2006/09/09(土) 11:42:05ビジネス向けの出力はどうしてんの?
0470デフォルトの名無しさん
2006/09/09(土) 11:52:42すまんが「ビジネス向けの出力」の定義が分からん
0471デフォルトの名無しさん
2006/09/09(土) 12:13:01HISAGOの帳票に出力するときとか。
0472デフォルトの名無しさん
2006/09/09(土) 12:26:12QReportなどはドットインパクトプリンタ対応してるから楽ってこと?
0473デフォルトの名無しさん
2006/09/09(土) 18:08:41>>470
明細票など帳票の類なんだけど。
まさかWin32 APIのGDI、DCでもって描画するなんて(ry
0474デフォルトの名無しさん
2006/09/09(土) 18:13:340475デフォルトの名無しさん
2006/09/09(土) 18:56:45MS-DOSみたいにプリンタに直接コマンド送りたいってこと?
はっきりしりねーな
0476デフォルトの名無しさん
2006/09/09(土) 22:10:53普通は自前でこの辺をライブラリ化しておくだろ、ってことでは。
うちではコンポーネントにしてる。DBものをやらないんで
QuickReportとかRaveみたいに凝った機能が必要ないってこともあるけど。
0477デフォルトの名無しさん
2006/09/10(日) 03:03:05みんな送り状の印刷どうしてます?
まさか手書き?
例えばドットプリンタって、まだ普及してるのかな?
0478デフォルトの名無しさん
2006/09/10(日) 04:47:370479デフォルトの名無しさん
2006/09/10(日) 06:26:350480デフォルトの名無しさん
2006/09/10(日) 09:55:05まだドットプリンタの需要はあるよ。
スーパーなどへの納品伝票などは複写紙伝票だったりするしね。
EOS化で昔ほどの印刷量ではないけど。
0481デフォルトの名無しさん
2006/09/10(日) 12:02:320482デフォルトの名無しさん
2006/09/10(日) 12:03:58C++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
0483デフォルトの名無しさん
2006/09/10(日) 13:08:25新ブランドではなかったな orz 復活したんだから・・
新製品というべきだった
0484デフォルトの名無しさん
2006/09/10(日) 15:37:540485デフォルトの名無しさん
2006/09/10(日) 16:20:05http://www.turboexplorer.com/files/jp/turbocpp_features.pdf
0486デフォルトの名無しさん
2006/09/10(日) 17:11:00昔の国民機などでやってたものをXPで使いたいときなんか困るよって話。
データベースからの帳票印刷をしたい時に、インターフェース部分を
自分で作らなきゃならないんだけど、メーカーが潰れてて資料が無かったりする。
新しいの買えと言われればそれまでの話です。
0487デフォルトの名無しさん
2006/09/10(日) 17:26:37国民機の出力と完全に同じ汁!というおバカな要望でもない限り。
0488デフォルトの名無しさん
2006/09/10(日) 18:21:13自分で出す分には妥協すればいい話だが、
企業にはとんでもないアホ上司も居るわけだw
0489デフォルトの名無しさん
2006/09/10(日) 21:38:210490デフォルトの名無しさん
2006/09/10(日) 22:14:32まぁ確かにTPrinterでできない(けれどもほかの方法ではできるような)ことは
ないけど、PC-98時代のラインプリント主体の制御方法のままでの印刷ってのは
それなりに面倒なところがあるからね。
0491デフォルトの名無しさん
2006/09/10(日) 23:53:48>>488
だんだんスレ違いになってきたのでこれ以上はやめときます。
プログラマとして皆さんどうしてるんだろうという、
素朴な疑問だったんですが、自分の今の環境がBCBなんで、
参考になるかなと思った次第です。しかも辞めた人のお下がり。
指摘されるまでもなく同感なんですよ。
簡単におっしゃるが、凄く根っこが深いんでね。
使用者(おっさん&おばちゃん)とか、インフラ全体とか全て
考えなければならなくて、どうしたものか。
それを含めて上からGOサインが出れば苦労しないんですよ。
TPrinterいいなぁ、ブツブツ...
0492デフォルトの名無しさん
2006/09/11(月) 01:44:370493デフォルトの名無しさん
2006/09/11(月) 01:55:58初心者にでもわかりやすい説明サイトを紹介していただけないでしょうか?
0494デフォルトの名無しさん
2006/09/11(月) 02:24:25http://www.turboexplorer.com/jp/
0495デフォルトの名無しさん
2006/09/11(月) 06:30:59まぁ、あなたに理解できるのはそのパートだけだったということでw
0496デフォルトの名無しさん
2006/09/11(月) 06:51:26初心者にでもわかりやすい説明サイトを紹介していただけないでしょうか?
0497デフォルトの名無しさん
2006/09/11(月) 12:13:420498デフォルトの名無しさん
2006/09/11(月) 12:23:121/6インチ改行(だっけ?)とかにも対応できる品
0499デフォルトの名無しさん
2006/09/11(月) 13:43:52初心者にでもわかりやすい説明サイトを紹介していただけないでしょうか?
0500デフォルトの名無しさん
2006/09/11(月) 23:14:46tmediaplayerには音量を調整するような所は無いのでしょうか。
0501デフォルトの名無しさん
2006/09/11(月) 23:33:07http://cyberwing.versus.jp/pg/archives/000147.shtml
0502274
2006/09/13(水) 12:56:29その節はお世話になりました。
取り合えず、
C++Builder Personal
C++Builder6コンポーネント活用ガイド&実践プログラミング (Vol.1)
C++Builder6 コンポーネント活用ガイド&実践プログラミング(Vol.2)
を買って、勉強中です。
そこで、質問があるのですが、
文字のバイト数を気にせずにプログラミング出来るように、文字列に WideString を用いている
のですが、実行速度が目茶苦茶遅いのです。
試しに同じ物をVBで作ると半分以下の速度で実行出来ます。
やはり、WideString なんて使っては駄目なのですか?
速度を優先するなら、やはり文字は Char型 で扱うべきなのでしょうか?
0503デフォルトの名無しさん
2006/09/13(水) 13:11:25それはともかく、WideStringは、参照カウントを持たず、
コピーすると実体を必ず複製するので、WideStringでの代入をしまくるとそりゃ遅い。
ちなみにAnsiStringは、参照カウントを持っている。
0504デフォルトの名無しさん
2006/09/13(水) 13:43:29Key == "C"
↑と書いたらコンパイルで「'unsigned short' 型は 'char *' 型に変換できない」といわれ
Key == 'C'
↑と書いたらコンパイルが通りました。
"と'の違いを教えてください。
0505デフォルトの名無しさん
2006/09/13(水) 13:48:41'X'・・・文字の値
0506デフォルトの名無しさん
2006/09/13(水) 13:49:41'n'は文字
0508デフォルトの名無しさん
2006/09/13(水) 14:01:08> WideStringで何をしようとしているのかくらい書けよ
どうも失礼しました。
今は、お勉強中で何を作るというのも無いのですが、
試しに、TMemo オブジェクトMemo1にかなり長い文章貼り付け、その文字列をWideString型の変数T1
に代入し、T1から一文字ずつ取り出し、「文字コードに変換し、それをまた、文字に変換し」、
WideString型の変数T2に代入して行き、最後に、T2をMemo2に表示するという単純なものです。
Memo2->Text = Memo1->Text;
では、あまりにも味気ないので、VBとの速さを試す為に作ったのですが遅さに愕然としました。
0509504
2006/09/13(水) 14:18:25ありがとうございます。
IF文で文字列を判定する場合は'xxx'でいいと思いますが、
""はどういった時に使うものなのですか?
0510デフォルトの名無しさん
2006/09/13(水) 15:29:43?
0511デフォルトの名無しさん
2006/09/13(水) 15:44:53おまいさんは根本的にC言語から勉強し直せ
BCBを使うどころではない。
0512デフォルトの名無しさん
2006/09/13(水) 17:34:04Pascalと勘違いしてない?
'xxx'とはかけないはず
0513504
2006/09/13(水) 17:59:12Cもあまり判っていません・・。
*はポインタ
&はポインタの値
WORD &Key
'a' == Key
値 == ?!?!?!?
どういうことですか
0514デフォルトの名無しさん
2006/09/13(水) 19:26:28うん、それはわざわざ言わなくても解るよ。w
>どういうことですか
何が言いたいのやらさっぱりだw
0515デフォルトの名無しさん
2006/09/13(水) 20:58:50その辺がわからんかったらしんどいよ
やはり基本はきちんと勉強せんと
0516デフォルトの名無しさん
2006/09/13(水) 22:57:59'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となることは保証されていない
0517デフォルトの名無しさん
2006/09/13(水) 22:59:00最後の例が引っかかりやすいところ。
const char* ptr1 = "X";
const char* ptr2 = "X";
ptr1とptr2が同値となる(同じアドレスが格納されている)かどうかは
仕様上は保証されていない
コンパイラの仕事次第で同値のときもあればそうでないときもある
まぁ、この辺の話が良くわからなかったらきちんとしたC/C++の入門書を読んで
勉強したほうがいい。ネットで断片的な情報を集めるだけだと中々きちんとした
理解には到達できないよ。
0518デフォルトの名無しさん
2006/09/14(木) 01:44:27printf("true");
else
printf("false");
0519デフォルトの名無しさん
2006/09/14(木) 01:46:46char b[] = "abc";
if(a == b)
printf("true");
else
printf("false");
0520デフォルトの名無しさん
2006/09/14(木) 01:48:00char *b = "abc";
if(a == b)
printf("true");
else
printf("false");
0521デフォルトの名無しさん
2006/09/14(木) 01:48:59>>519 false
>>520 true
これはどのコンパイラ実装でも保証されますか?
0522デフォルトの名無しさん
2006/09/14(木) 01:56:51>>519がfalseなのは保証される、というかaとbで別に領域取ってるんだからあたりまえ
なお、C++を使う以上、文字列リテラルを差すポインタはちゃんとconstにすべし
0523デフォルトの名無しさん
2006/09/14(木) 04:15:440524デフォルトの名無しさん
2006/09/14(木) 06:39:43がFalseになると思ってた僕にオヌヌメの本を教えて下さい。
0525デフォルトの名無しさん
2006/09/14(木) 10:10:21trueになる、Delphiおすすめ
0526デフォルトの名無しさん
2006/09/14(木) 10:28:590527デフォルトの名無しさん
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つのフォームに影響でないのでしょうか??
0528デフォルトの名無しさん
2006/09/14(木) 12:42:50Form2がグローバル変数なら問題出る気がす
0529デフォルトの名無しさん
2006/09/14(木) 13:09:59ファイルの末尾からある一定の間隔を持ちながら後ろにさかのぼる様なプログラムを書きたいです。
例えば次のようなプログラムです。うしろからdeltaバイトずつスキップしながらデータをとっていきます。
while( 1 ) {
fin.seekg(-i*delta , ios::end);
if (終了条件) {
break;
}
fin.read((char*)&data,sizeof(int));
処理
++i;
}
ファイルの「終了条件」を先頭にきたときとしたいのですが、
どうしたらいいでしょうか?
0530デフォルトの名無しさん
2006/09/14(木) 13:22:330531デフォルトの名無しさん
2006/09/14(木) 13:28:45Form2はTForm2で定義されているグローバルです。
確かに問題ありそうなんだけど、何で普通に開いたり閉じたりできるのか・・
ちなみにそれを、Form2のグローバルを使わずにForm1のprivateとかに
TForm2 frm[10];
などと、定義して、最大10フォーム各々の配列で開いたとき
frm[cnt ++] = new TForm2(this);
frm[n]が開いてるか閉じてるかはどうやってみればいいでしょうか?
0532デフォルトの名無しさん
2006/09/14(木) 13:35:43Form2Destroyは本当に呼ばれてる?
0533デフォルトの名無しさん
2006/09/14(木) 13:38:32呼ばれてますよー
Form2を呼ぶときに↓でForm2が閉じられない限り新たに作られてないですから
if( !Form2 ) Form2 = new TForm2(this);
Form2->Show( );
0534デフォルトの名無しさん
2006/09/14(木) 13:41:32そのコードからは呼ばれてなくても正しく動くとしかいえないじゃん。
ブレークポイントしかけて確かめてみろ
0535デフォルトの名無しさん
2006/09/14(木) 13:57:47Form2をNULLにしたのに、それまで作成したフォームが普通に動くのが不思議なの?
インスタンスとポインタの区別がついてないのかな?
0536デフォルトの名無しさん
2006/09/14(木) 14:08:210537デフォルトの名無しさん
2006/09/14(木) 14:54:420538デフォルトの名無しさん
2006/09/14(木) 14:57:03すでに生成したウインドウはForm2とは個別にインスタンスを持っている。
しかし、Form2はポインタで、Form2に何を代入しようが既存のウインドウは変化しないわけだ
0539デフォルトの名無しさん
2006/09/14(木) 14:59:010540デフォルトの名無しさん
2006/09/14(木) 15:41:250541デフォルトの名無しさん
2006/09/14(木) 15:58:09配列か、ヴェクターかしらんが、ポインタに入れとくべきだな。
0542デフォルトの名無しさん
2006/09/14(木) 16:09:250543デフォルトの名無しさん
2006/09/14(木) 16:11:12そんな手があるんか・・・
0544デフォルトの名無しさん
2006/09/14(木) 16:53:04それはTForm2クラスが存在するかどうかはわかるけど
違う変数で作成したときに区別がつかないとおもう。
フォームありなしなら
try{
frm->Show( );
}
catch(...){
frm = new TForm2l(this);
frm->Show( ); // ←MDIコフォームならいらない
}
どう?
0545デフォルトの名無しさん
2006/09/14(木) 17:54:24frm->Showの例外を期待するようなプログラムなんて普通しない。
0546デフォルトの名無しさん
2006/09/14(木) 17:57:57アホかw
0547デフォルトの名無しさん
2006/09/14(木) 18:10:51普通のプログラムのコードを書いてみて
0548デフォルトの名無しさん
2006/09/14(木) 18:14:23frm := TForm2.Create(self);
frm->Show( );
0549デフォルトの名無しさん
2006/09/14(木) 18:15:17if (frm == NULL)
frm = new TForm2(this);
frm->Show( );
0550デフォルトの名無しさん
2006/09/14(木) 18:42:32そのfrmはどこでNULL入れてんの?
まさかそれグローバルでForm2で入れてるって落ちじゃないよね?
0551デフォルトの名無しさん
2006/09/14(木) 18:52:16グローバル変数でも他のクラスのメンバでも何でもいいだろ。
0552デフォルトの名無しさん
2006/09/14(木) 18:57:52いやいやそれじゃーどうやって
if (frm == NULL)
を、判断させるの?
これってどこかでfrmにNULLを入れないと、1回開いて閉じたら二度と開けなくなるよ
0553デフォルトの名無しさん
2006/09/14(木) 19:02:59いや、だから、フォーム削除したときにNULL入れりゃいいじゃん。
何を悩んでるのかさっぱり伝わってこない。
0554デフォルトの名無しさん
2006/09/14(木) 19:05:570555デフォルトの名無しさん
2006/09/14(木) 19:11:47んじゃ君が言うfrmはグローバルでForm2のDestroyやデストラクタでNULLを入れるってことかい?
それならTForm2のソースに定義してあるForm2を使うのと全然変わらん。
んで、それを違う名前や配列でfrm2、frm3やfrm[n]として複数開く場合は
同じようにForm2のDestroyに全部記述するのかい?
0556デフォルトの名無しさん
2006/09/14(木) 19:31:14> それならTForm2のソースに定義してあるForm2を使うのと全然変わらん。
だから>>551で変数なんか何でもいいって言ってるだろ。
> んで、それを違う名前や配列でfrm2、frm3やfrm[n]として複数開く場合は
> 同じようにForm2のDestroyに全部記述するのかい?
全部記述ってのがわからんが、配列から自分を参照してる変数見つけてNULLにすりゃいいだろ。
0557デフォルトの名無しさん
2006/09/14(木) 19:38:59まあ、変数が何でもいいはおいとくとして
配列なら確かにforで回してアドレスが一致した奴をNULLでOKですね。
でも、各画面で個別にprivate等で宣言してるTForm2の変数で
Form2を作成するとForm2でNULLを入れることができなくなるけど
フォームを扱う場合はそういう使い方はしないのかな?
0558デフォルトの名無しさん
2006/09/14(木) 20:17:08Form2のデストラクタで呼んでもらえばいいし、そんななんとでも出来る事で何を悩むのか本当に不思議だ。
0559デフォルトの名無しさん
2006/09/14(木) 20:46:370560デフォルトの名無しさん
2006/09/14(木) 22:41:55その管理順位の考察が甘いから混乱する。
管理すべきクラスが、ちゃんと管理するようにしろ。
破棄するならそいつに知らせる。
生成するなら、そいつにインスタンスを生成させて、
インスタンスアドレスを貰う。
ちゃんと管理主体を明確にすれば、何も混乱する必要などない。
>各画面で個別にprivate等で宣言してるTForm2の変数で
アホか。
個別に適当にprivateに宣言すんな。
管理したいなら、ちゃんと管理しろ。
頭悪すぎだぞ。
0561デフォルトの名無しさん
2006/09/15(金) 01:06:00前回作成したプロジェクトと一緒になってしまうのですが
どうすれば新しいプロジェクトを作成できますか?
例えば、project1がすでにあるとして、project2を新たに新規作成し
VCLフォームアプリケーションで始めるとForm2,Unit2となって
前回のプロジェクトの続きになってしまうのです。
0562デフォルトの名無しさん
2006/09/15(金) 10:11:54君が考えてることはとっくにわかってるんだけど、そんなめんどーな方法以外にはないの?
>>559
複数で別フォームから呼ぶ話しかしてないよ
>>560
private宣言したらダメな意味がわからない。なんで?
ちゃんと管理って何?君が言うちゃんとした管理って単にグローバルにするだけなのかい?
煽ることしかできない奴のレスはいらないよ。
わかりきった事を恥かしげもなくよく書けるね。
0563デフォルトの名無しさん
2006/09/15(金) 10:55:400565デフォルトの名無しさん
2006/09/15(金) 11:09:58とりあえず、スレタイを100回読んでからレスしてくださいね。
まず、知ったかぶりをしてるだけならレスは不要です。
そしてC++Builderスレは2つあるけど、このスレの意味を理解してください。
自分でまだまだと思うなら勉強してからレスしてね。
0566デフォルトの名無しさん
2006/09/15(金) 11:15:41他の人にお願いするよ。
0567デフォルトの名無しさん
2006/09/15(金) 11:45:200568デフォルトの名無しさん
2006/09/15(金) 15:42:552chで最後まで場に立ってるのは無自覚なお馬鹿さんだからw
0569デフォルトの名無しさん
2006/09/15(金) 22:01:240570デフォルトの名無しさん
2006/09/16(土) 02:26:400571デフォルトの名無しさん
2006/09/16(土) 02:36:36利口じゃないのはお互い様としても、そのスタンスは泥沼だろうよ、と。
0572デフォルトの名無しさん
2006/09/16(土) 02:36:51スレにそれなりのスキルのある人間が少なくなっちゃった
いなくなったわけではないだろうが
0573デフォルトの名無しさん
2006/09/16(土) 10:29:57結果として石の割合が増えてる
ってことだ。某はもうダメっぽい
0574274
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;
}
//----------------------------------
0575274
2006/09/17(日) 15:40:40void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString c = "あ";
int i = AnsiAscii(c);
ShowMessage( c );
ShowMessage( (String)i );
ShowMessage( AnsiChar(i) );
}
//----------------------------------
0576デフォルトの名無しさん
2006/09/18(月) 02:07:48クイックレポートの中のQRExprで式の値をAnsiStringで取り出したいのですが、
ヘルプを見ても、(Value プロパティを使って式の値にアクセスします。)
と書いてあり、いろいろ調べましたが、意味がわかりません。
どなたか、教えていただけないでしょうか?
0577デフォルトの名無しさん
2006/09/20(水) 18:04:41このスレでは何を相談しても、バカwだのアホwだの言われて、
むかつくだけだからやめときな。
かといって、マイナー過ぎて書店に本売って無いんだよねー。
0578デフォルトの名無しさん
2006/09/21(木) 09:43:27回答する気も起きないだろ。たしかにつまらん質問だし。
0579デフォルトの名無しさん
2006/09/21(木) 19:02:10謙虚に質問してるんだから、優しくしてやる気にならんか?
こういう欠陥のあるヤシばっかりだから、576は可哀想だが
こんなとこで質問しないで、ネットで本買うなりしろや。
0580デフォルトの名無しさん
2006/09/21(木) 22:46:29どんな本でもここの回答者よりは役に立つしな。
0581デフォルトの名無しさん
2006/09/22(金) 14:51:08C++ Builderで開発する時にどの本やどのサイトで勉強するのがベストなのでしょうか?
C++ Builder 使い方
でgoogle検索しても中々いいサイトにヒットしません
ひょっとして、というかこれは当たり前のことでc++を勉強すれば自然に使えるようになるのでしょうか?
0582デフォルトの名無しさん
2006/09/22(金) 15:02:24VCLはDelphi関連のサイトや書籍で。
C++はC++の(ry
両方読んだ方がいい。
0583デフォルトの名無しさん
2006/09/22(金) 15:20:05thx
0584デフォルトの名無しさん
2006/09/22(金) 18:25:20とりあえずスタートガイド
TurboC++2006だったら‥‥Del6Perで最初の展開時に出来るディレクトリにpdfで入ってるからそれよれでも読むといい。
0585デフォルトの名無しさん
2006/09/22(金) 18:30:52サイトや書籍に書いてある簡単なDelphiのプログラムをBCBに移植する
事から初めて見ればよいかもしれない。
すぐにコツがつかめ、BCBでVCLを使ったプログラムを自由に作るには
どうすればいいかがわかると思う。
また、Object PascalはC++にはない機能がいくつかあり、それをサポート
するためにBCBのC++は拡張がなされている。またopen arrayなどC++の
拡張だけでは対応が難しいものに関してはマクロで代替えしている。
これらについてもヘッダーファイルを読む事により、徐々に分かってくる
はずです。
0586デフォルトの名無しさん
2006/09/22(金) 19:12:50Delphiを知ってるならいいが知らないなら無駄じゃないか?
>>581
現在はどんな本が出てるのか知らないが超基本の本が1、2冊あれば十分
基本が分かればあとはヘルプとML過去ログで大抵のことはできる
0587デフォルトの名無しさん
2006/09/22(金) 19:40:57まず基本的な使い方とVCLをマスターするには、カットシステムの
書籍が有効。つーか、これしか一般に流通していない。
そしてその後、本格的なシステム構築をするなら、インストールCD
に含まれているPDFドキュメントをプリントして読破する!
C/S型、分散型、Web型(CGI/Apach...)、などの構築方法について
唯一の日本語で書かれたマニュアルだ。
0588デフォルトの名無しさん
2006/09/22(金) 20:37:00> に含まれているPDFドキュメントをプリントして読破する!
Delphi10年つかってて知らなかったw
0589デフォルトの名無しさん
2006/09/22(金) 22:18:04開発者ガイドは6まで製本されて箱に入ってるぞ。分冊して欲しいような厚さで読みにくいけど。(Per/Std以外)
0590デフォルトの名無しさん
2006/09/22(金) 22:53:12でもちゃんとpdfファイルとして入っている。
サンプルプログラムがいっぱい添付されているから
どれか1個をすべて理解できるまで動かしながら読んでみるのがいいかも。
0591デフォルトの名無しさん
2006/09/22(金) 22:55:060592デフォルトの名無しさん
2006/09/22(金) 22:55:57意味不明の質問だったり、自分自身が何も理解していないで質問しているとか
情報を小出しにするとか
まあ、最低限レベルのマナーを守っていない場合だけどね。
0593デフォルトの名無しさん
2006/09/22(金) 23:00:38せめて1回はヘルプで引けば、ここで聞く必要はないとかね。
0594587
2006/09/22(金) 23:02:16つ 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版は
とうとう出なかったな。
0595デフォルトの名無しさん
2006/09/22(金) 23:55:11ttp://up.mugitya.com/img/Lv.1_up55111.jpg
ちなみに厚さはそのダンボール7枚分だと思う
0596594
2006/09/23(土) 00:23:35つまり、こういう違いがあった訳なのか・・・
-----≪
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 クイックスタート
0597デフォルトの名無しさん
2006/09/23(土) 00:42:46辞書に使うような紙使えばあんな意味もなく分厚いマニュアルに
ならなかったんだが
0598デフォルトの名無しさん
2006/09/23(土) 01:05:350599デフォルトの名無しさん
2006/09/23(土) 01:10:111/4/5部と2/3部に分冊すれば使いやすいのになぁ‥‥
0600デフォルトの名無しさん
2006/09/23(土) 17:03:100601デフォルトの名無しさん
2006/09/24(日) 23:55:30かといって、ろくなこと書いてないし、サンプルもないし。
書店で本をみればロクなこと書いてないワリにめちゃめちゃ高いし、
やっぱVCのほうがいいっすよ。
本なんて買わなくても周りに知ってる人がいくらでもいるし。
BCBはね、DELPHIやってる人のほうが詳しかったりして。
なんで今更PASCALやらDELPHI固めのGUI操作を覚えねばならぬ。
0602デフォルトの名無しさん
2006/09/25(月) 00:03:03よそでやれボケ
0603デフォルトの名無しさん
2006/09/25(月) 08:18:11禿道
0604デフォルトの名無しさん
2006/09/25(月) 08:18:350605デフォルトの名無しさん
2006/09/25(月) 08:25:050606デフォルトの名無しさん
2006/09/25(月) 09:35:51人生は短い。
0607デフォルトの名無しさん
2006/09/25(月) 09:43:190608デフォルトの名無しさん
2006/09/25(月) 20:39:540609デフォルトの名無しさん
2006/09/25(月) 20:59:22そうきたかw
0610デフォルトの名無しさん
2006/09/25(月) 21:05:080611デフォルトの名無しさん
2006/09/25(月) 21:30:33俺? 俺は趣味でプログラミングやってる開業医だが何か?w
0612デフォルトの名無しさん
2006/09/25(月) 22:09:530613デフォルトの名無しさん
2006/09/25(月) 22:10:240614デフォルトの名無しさん
2006/09/25(月) 22:50:43実際にはBCB使ったことが無くて想像で書いてみましたが何か?
0615デフォルトの名無しさん
2006/09/25(月) 22:52:07面白いねーおまいら。
0616デフォルトの名無しさん
2006/09/25(月) 23:01:18そんなんでいいのかお前。
0617デフォルトの名無しさん
2006/09/26(火) 01:03:38自爆しながら成長していくんだよ。
0618デフォルトの名無しさん
2006/09/26(火) 02:20:030619デフォルトの名無しさん
2006/09/27(水) 11:31:410620デフォルトの名無しさん
2006/09/27(水) 12:21:570621デフォルトの名無しさん
2006/09/27(水) 14:03:250622デフォルトの名無しさん
2006/09/27(水) 21:56:220623デフォルトの名無しさん
2006/09/27(水) 22:28:450624デフォルトの名無しさん
2006/09/27(水) 22:38:12DelphiのAssign(うんちゃら)は、
BCBでは単にNULLを見ればいいの?
例えばねぇ......、やっぱやめたー。
ここの住人だと、ろくな答え返ってこないね。
0625デフォルトの名無しさん
2006/09/27(水) 23:23:040626デフォルトの名無しさん
2006/09/28(木) 02:00:22こいつはDelphiスレでも相手にしてもらえないんだろうなw
0627デフォルトの名無しさん
2006/09/28(木) 19:49:380628デフォルトの名無しさん
2006/09/29(金) 03:13:44>>626みたいなヤシのこと言ってんだろうよwwwwwwwwwwwww
>>624
俺は無視してるが。
やるとすれば、NULLを見るのではなく、
コールバックなどで値が変化したかで判断するが。
0629デフォルトの名無しさん
2006/09/29(金) 03:27:160630デフォルトの名無しさん
2006/09/29(金) 03:42:52それがBor信者クオリティじゃね
0631デフォルトの名無しさん
2006/09/29(金) 09:59:560632デフォルトの名無しさん
2006/09/29(金) 11:29:070633デフォルトの名無しさん
2006/09/29(金) 18:32:39\ �U /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, {0} /¨`ヽ {0} ,ミヽ / \ /
\ / く l ヽ._.ノ ', ゝ \ < バーカ! >
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
0634デフォルトの名無しさん
2006/09/29(金) 21:13:04\ �U /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, {e} /¨`ヽ {e} ,ミヽ / \ /
\ / く l ヽ._.ノ ', ゝ \ < アホー! >
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
0635デフォルトの名無しさん
2006/09/30(土) 00:03:40>>634
初心者ですみませんが、
このAAの何が面白いのか教えてください。
あと、C++Builderのどこがいいのかもついでに。
0636デフォルトの名無しさん
2006/09/30(土) 00:41:56趣旨は違うが、>>1が言うとおりの本当に低レベルでくだらない質問だ。
くだらなすぎるから帰れ!
0637デフォルトの名無しさん
2006/09/30(土) 23:22:04どっちに過剰反応?
AA?
BCBイジメ?
どちらにしろキモイよお前。
0638デフォルトの名無しさん
2006/09/30(土) 23:23:340639637
2006/10/01(日) 01:09:59スレ違い
0640デフォルトの名無しさん
2006/10/01(日) 01:13:25すれ違いウザ杉www
0641デフォルトの名無しさん
2006/10/01(日) 03:37:350642637
2006/10/01(日) 22:39:260643デフォルトの名無しさん
2006/10/01(日) 23:57:220644デフォルトの名無しさん
2006/10/02(月) 08:29:54>このAAの何が面白いのか教えてください。
別に面白くないと思います
>あと、C++Builderのどこがいいのかもついでに。
別に良いところは無いと思います
0645デフォルトの名無しさん
2006/10/02(月) 15:28:530646デフォルトの名無しさん
2006/10/02(月) 16:38:30遅すぎて話になりません。10分以上かかっています。ディスクアクセスもしていないようです。
原因は何でしょうか?
0647デフォルトの名無しさん
2006/10/02(月) 16:43:57古いソース使おうと思ったら…
0648デフォルトの名無しさん
2006/10/02(月) 16:49:090650デフォルトの名無しさん
2006/10/02(月) 18:17:55ノートPCの環境は?
BCBのバージョンは?
0651635
2006/10/04(水) 01:20:290652デフォルトの名無しさん
2006/10/04(水) 09:36:02お前もキモイよ
0653デフォルトの名無しさん
2006/10/04(水) 10:10:580654デフォルトの名無しさん
2006/10/04(水) 10:20:190655デフォルトの名無しさん
2006/10/04(水) 13:00:00一旦閉じた後、プロジェクトを開いて実行すると
リンカエラー 外部シンボル'Form1'が未解決(C:\~が参照)
リンカエラー 外部シンボル'TForm1::'が未解決(C:\~が参照)
と出て実行できません。どうすればよいでしょうか。
0656デフォルトの名無しさん
2006/10/04(水) 13:10:09P1.hみてみ。TForm1の名前空間はちゃんと定義されているか?
Form1 は確かextern TForm1 *Form1; とかになっているから、
名前空間の問題が解決されればコンパイルできるはずだ。
0657デフォルトの名無しさん
2006/10/04(水) 13:17:41上書きされてるんじゃないかな。
unit1.cpp を変名しないか、P1 以外の名での保存でOKかと。
0658デフォルトの名無しさん
2006/10/04(水) 13:42:33すいません。名前空間の定義の方法がわかりません。
>657
ありがとうございます。P1一式の他にU1.cpp h dfm objが生成されエラーは消えました。
デフォルトでUnit1~と保存されるものとProject1~と保存されるcppは両方とも必要ということなのでしょうか。
他のアプリケーションと区別しやすくするために変名したかったのですが、ユニット用の名前とプロジェクト用の名前をわければいいのですね。
ところで>656さんの仰られた方法で解決した場合、ユニット用のcppは無いままになってしまうと思うのですが、
これは名前空間を定義しているのがU1.cppと言うことですか?
0659デフォルトの名無しさん
2006/10/04(水) 13:51:11まあ>>657さんの方法が簡単で良いかと。
0660デフォルトの名無しさん
2006/10/04(水) 15:33:00>unit1.cpp を P1.cpp で保存したものが、P1.bpr の保存の際に生成される P1.cpp で
>上書きされてるんじゃないかな。
これがビンゴ
だから名前空間をどうこうして解決する問題じゃない
>>658
>デフォルトでUnit1~と保存されるものとProject1~と保存されるcppは両方とも必要ということなのでしょうか。
"Project1"はアプリケーション
”Unit1"はフォーム
別のもの
1つのアプリケーションは複数のフォームを持つこともできるでしょ
0661デフォルトの名無しさん
2006/10/04(水) 17:05:11子フォームのサイズがオブジェクトインスペクタのものが反映されずに、実行時に変更されてしまいます。
子フォームのサイズを指定するにはどうすればいいでしょうか?
0662デフォルトの名無しさん
2006/10/04(水) 21:55:42MDIにする意味がないかぎりは。
0663デフォルトの名無しさん
2006/10/04(水) 23:26:33子フォームのTop, Left, Width, Heightを設定する
いっぺんに済ますにはBoundsRectを設定する
0664デフォルトの名無しさん
2006/10/04(水) 23:49:34当然、子フォームを表示するときね
0665デフォルトの名無しさん
2006/10/05(木) 00:45:270666デフォルトの名無しさん
2006/10/05(木) 08:50:09突然どうした?
発作か?
0667デフォルトの名無しさん
2006/10/05(木) 09:31:250668デフォルトの名無しさん
2006/10/05(木) 14:23:20本当は、「私は馬鹿なのでBCBを使いこなすことができません。」と言いたかったんだよ。
0669デフォルトの名無しさん
2006/10/05(木) 14:25:560670デフォルトの名無しさん
2006/10/05(木) 14:26:440671デフォルトの名無しさん
2006/10/05(木) 14:33:07スルー頼むよ。お願いだから。
0672デフォルトの名無しさん
2006/10/05(木) 15:16:30>671
0673665
2006/10/05(木) 23:54:03私は朝鮮人です。日本語スコシです。
私は馬鹿なのでBCBを使いこなすことができません。
あと、ファビョってます。
でもBCBマジで使えねぇー。
0674デフォルトの名無しさん
2006/10/06(金) 11:15:58CheckListBoxを使ってるんですが、CheckBoxのように文字列のクリックでチェック状態を切り替えたいのですが、
どうすればいいでしょうか?
なにもしなければ、文字列のクリックではその行が選択状態(Selected)になるだけなので困ってます。
私のつたない頭では、OnClickでSelectedされている行のCheckedを切り替える方法くらいしか思いつきません。
そうするとチェックボックス自体をクリックしたときに、チェック状態の切り替えが2回行われ元に戻ってしまいます。
0675デフォルトの名無しさん
2006/10/06(金) 12:38:51CheckListBox->Checked[CheckListBox->ItemIndex] = 1 - CheckListBox->Checked[CheckListBox->ItemIndex];
なんてのを置くけば、とりあえず、希望の動作になるような気がする。
OnClick と OnClickCheck は飛んでくる順序が決まってる(かもしれない)から
それを利用する手もあり。
0676デフォルトの名無しさん
2006/10/06(金) 13:35:48とりあえず弥縫策
//MouseUpイベントで
int n = CheckListBox1->ItemAtPos( TPoint(X,Y), true );
if ( n >= 0 && X > 16 )
CheckListBox1->Checked[n] = !CheckListBox1->Checked[n];
チェックボックスの幅はあてずっぽう
0677デフォルトの名無しさん
2006/10/06(金) 13:37:40どっちでも大差ないけど
0678674
2006/10/06(金) 14:39:19ご教授ありがとうございます。
>675のそのままのコーディングで思い通りの動作ができたんで、これを使わせてもらいました。
たまにクリックが効かなかったり、チェックマークが点滅したりしますが、部署内で使うツールなんで問題ないことにします。
0679デフォルトの名無しさん
2006/10/06(金) 15:07:47それが出ないようにしてあるのに>>676
0680デフォルトの名無しさん
2006/10/06(金) 20:11:300681デフォルトの名無しさん
2006/10/07(土) 16:44:39座標に依存しないからこっちのほうが安全かもね。
int i = CheckListBox1->ItemIndex;
0682デフォルトの名無しさん
2006/10/07(土) 16:52:140683デフォルトの名無しさん
2006/10/08(日) 00:53:120684デフォルトの名無しさん
2006/10/08(日) 01:58:32マウスクリックを拾うときは座標に基づかないとダメだよって話なのね、もともと>>676
0685デフォルトの名無しさん
2006/10/08(日) 03:05:57うん。
一応、CheckListBox1MouseDownイベントの引数で、int Xが入ってくるから
コード的には
int i = CheckListBox1->ItemIndex;
で問題ないと思う。
「座標に依存しないから〜」って発言が嘘。
0686デフォルトの名無しさん
2006/10/08(日) 03:29:41分かる?
わかんなきゃ、実際に試してみな
マウスクリック拾うときはCheckListBox::ItemIndexじゃダメなの
項目をクリックしてるのかどうか判定しないとダメなの
0687デフォルトの名無しさん
2006/10/08(日) 04:18:06リスト一番下の余白をクリックすると
青くなってるところのcheked状態が変わっちゃう。
ヘルプより
> ItemIndex プロパティは,リストボックスの項目リスト内で選択した項目の順番を表す数です。
納得です。^^;
0688デフォルトの名無しさん
2006/10/10(火) 14:29:33フォーム作成するようなアプリを、1つの実行ファイルで実現したいんですけど、
どのような方法があるでしょうか?
0689デフォルトの名無しさん
2006/10/10(火) 16:38:05ただそれだとフォームを表示している間、親プロセスとしての
コンソールアプリも生きてるからコンソールは表示され続ける
それを回避したかったら実行ファイルを別にするしかないだろ、多分
0690デフォルトの名無しさん
2006/10/10(火) 23:36:18今度は、アプリケーションを立ち上げたら、hello を表示させたいのですが、
メイン関数みたいなのはどのように書くのでしょうか。
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ShowMessage("hello");
}
この中に、ShowMessage("hello");書くとhelloが表示されました。
これがメイン関数みたいに考えれば良いでしょうか。
よろしくお願いします。
0691デフォルトの名無しさん
2006/10/10(火) 23:46:01意味不明
何がしたいのかもっと具体的かつ正確に質問すべし
>これがメイン関数みたいに考えれば良いでしょうか。
ダメです。Windowsアプリケーションの場合、メイン関数はWinMainとして別に存在します
0692デフォルトの名無しさん
2006/10/10(火) 23:56:53お返事ありがとうございます。
Project1.cpp
Unit1.cpp
あると思うんですが、ボタンを押してhelloが表示されるようにするときは
Unit1.cppの中に、ボタンのイベントを書いて表示されるようにできました。
コンパイルしたら、exeファイルできると思うんですが、
クリックしたら、helloが表示されるようにしたいです。
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
イベントが起こったら→実行
ではなくて
アプリを立ち上げたら→実行
っていうことをしたいです。
0693デフォルトの名無しさん
2006/10/11(水) 00:00:25すみません。
意味の無いコード書いてしまいました。
0694デフォルトの名無しさん
2006/10/11(水) 00:06:11いったいそれに何の意味があるのか正直分からんが
0695デフォルトの名無しさん
2006/10/11(水) 00:20:39{
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");
} //こういうのを書けばイベントの発生順序の勉強になるかな?
0696デフォルトの名無しさん
2006/10/11(水) 00:20:57OnShowイベント調べてみます。
初心者なので、いろいろなサンプルを動かしてみている
ところなのですが、イベントが起こると実行されるというサンプル
しか見かけませんでした。
それで、exeファイルをクリックしたら実行
っていうふうにするにはどうすればよいのかと疑問に思いまして。
たとえば、exeファイルクリックしたらはじめに設定ファイルを
必ず読みに行くとか、など考えられるかもです。
0697デフォルトの名無しさん
2006/10/11(水) 00:26:34コードありがとうございます。
早速動かして勉強します。
0698デフォルトの名無しさん
2006/10/11(水) 00:28:20そういう風に自分の考えている課題を最初から質問で提示すればいいんだよ。
そのほうが適切なレスがつきやすい。
>たとえば、exeファイルクリックしたらはじめに設定ファイルを
>必ず読みに行くとか、など考えられるかもです。
それはメインフォームのコンストラクタでやるのが適切。
BCBではFormのOnCreateイベントを使うのは推奨されていない。
0699デフォルトの名無しさん
2006/10/11(水) 00:34:31教えて欲しいんですが、OnCreateが推奨でない根拠ってなんでしょうか?
バグあり、みたいな話?
0700デフォルトの名無しさん
2006/10/11(水) 00:46:54>注意 フォームのコンストラクタとのやり取りが不良になる可能性があるので,
>C++Builder で OnCreate イベントを使うことはお勧めできません(OldCreateOrder を参照)。
>かわりに,フォームコンストラクタをオーバーライドすることをお勧めします。
BCB使いには常識みたいな話なんだけど
0701デフォルトの名無しさん
2006/10/11(水) 00:53:41ありがとうございます。
メインフォームのコンストラクタですか。
今いろんなサイト調べてみたんですが、
メインフォームのコンストラクタというのは、
下記のことでよかったでしょうか。
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
自身がなくて。。。
すみませんが、よろしくお願いします。
0702デフォルトの名無しさん
2006/10/11(水) 00:58:56そだよ
あんた、悪いこと言わんからBCB以前にC++の入門書読みな
あたりまえだがC++を理解してなきゃBCBは使えないよ
0703デフォルトの名無しさん
2006/10/11(水) 01:13:01しらんかったー!
0704デフォルトの名無しさん
2006/10/11(水) 12:09:55ありがとうございます。
がんばります。
0705デフォルトの名無しさん
2006/10/11(水) 20:27:48Hoge( と入力しただけで5秒くらい待たされたり、
変数などにマウスカーソルを乗せただけで、同じく5秒ほど待たされます。
BDS2006ですが、PCがクソなのでしょうか
0706デフォルトの名無しさん
2006/10/11(水) 20:34:20IDE SpeedFixを入れろ。
0707デフォルトの名無しさん
2006/10/11(水) 21:42:520708デフォルトの名無しさん
2006/10/11(水) 21:45:370709デフォルトの名無しさん
2006/10/12(木) 00:40:54入れてみましたが、コンパイルは速くなったものの、コード補完の速度は変わりませんでした。
IDEが生産したForm1があるUnit1.cpp内では速いんですが、
自分で作ったcpp内だと倍以上時間がかかります。
自分の書いたコードを疑ってみます。
0710デフォルトの名無しさん
2006/10/12(木) 00:49:38プリコンパイルヘッダを作成した後じゃないと補完は速くならないよ。
0711デフォルトの名無しさん
2006/10/12(木) 01:10:42先日DelphiからBCBにスイッチしたばかりで、よく分からなかったのですが、
vcl.hもプリコンパイルヘッダというものなのですね。
それと、#pragma hdrstopまでにPCHをincludeするということも分かりました。
DelphiのようにSysUtils.hppとかClasses.hppをincludeしてただけだったので、遅かったようです。
0712デフォルトの名無しさん
2006/10/12(木) 03:56:43自分で作ったアプリケーションの起ち上がるプロセスの個数を
制限したいのですが、どのような方法があるのでしょうか。
例えば、IE(ブラウザ)の場合、いくらでも窓を立ち上げることができます。
ctrl+alt+delでwindowsタスクマネージャを見ると、プロセスが
複数なのがわかります。
この個数を制限したいです。
よろしくお願いします。
0713デフォルトの名無しさん
2006/10/12(木) 05:17:530714デフォルトの名無しさん
2006/10/12(木) 13:53:42ありがとうございます。
セマフォ勉強します。なんか聞いたことあります。
ちょっと違う方法なのですが、
タスクマネージャのタスク一覧みたいに、現在動いているタスク一覧の取得して、
その中に、これから起動しようとしているプロセスの名前があったら
起動できない。というふうにするのはどうでしょうか。
他のアプリケーションのプロセス名と偶然名前が同じになってしまったとき、
起動しなくなってしまう場合があるかもしれないのですが、
もしこれを回避するには、アプリケーションのある場所のパスを比較
するということになりますでしょうか?
よろしくお願いします。
0715デフォルトの名無しさん
2006/10/12(木) 14:05:29エクスプローラからListViewにD&Dはできたのですが、
逆にListViewからエクスプローラにファイルをD&Dする方法を教えてください。
0716デフォルトの名無しさん
2006/10/12(木) 15:32:02単純にFMOとかの共有メモリに起動プロセス数書きこんどけば?
0717デフォルトの名無しさん
2006/10/12(木) 15:35:21DoDragDrop、IDropSourceあたりで検索。そこそこ面倒。
ただしこれが分かってれば他アプリからテキストや画像、URL情報のドラッグしてきても受け取れるようになる。
0718デフォルトの名無しさん
2006/10/12(木) 18:58:39onshowイベントの実行できないんですが、どこがおかしいのか教えていただけ無いでしょうか。
エラーは無いのですが、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;
0719デフォルトの名無しさん
2006/10/12(木) 19:08:130720デフォルトの名無しさん
2006/10/12(木) 19:25:23dfm早速調べてみます。
オブジェクトインスペクタで、OnShowイベントをダブルクリックして
書くと大丈夫でした。
builderなんとなくわかってきたかもしれません。
5時間ぐらい考えてたので泣けてきました。
でも解決してよかった。ありがとうございました。
0721デフォルトの名無しさん
2006/10/12(木) 19:31:09そうやって勉強していくもんだ。
dfmがやってることをコードで書く場合は、
this->OnShow = FormShow;
もしくは、
Form1->OnShow = FormShow;
だお。
TFormがOnShowというプロパティを持ってて、
実体はメソッドのポインタ。
VCL の Clickメソッドの中でそのプロパティがAssignされていたら実行する、
となっている。
0722デフォルトの名無しさん
2006/10/12(木) 19:33:57dfmとコードとどういう関係かっていうと、
プロパティの初期値をコードで書く代わりに、
GUI(Object Inspector)で手で設定してファイル保存したのがdfm。
Object InspectorのEventsタブに切り替えると、イベントハンドラのプロパティを目で見える。
0723デフォルトの名無しさん
2006/10/13(金) 22:53:17C++を学びたいと思い現在悪戦苦闘しています。
押されたキーコードを表示するプログラムを書いてみたのですが
キャストのところが我ながら無理矢理表示させているような気がしてなりません。
本来はどう記述するべきなのでしょうか?
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
ShowMessageFmt("%.4x", &(TVarRec)Key, 0);
}
0724デフォルトの名無しさん
2006/10/14(土) 00:14:26BCBだとVCLのFormat系使わずに、AnsiString::sprintf使うことが多いと思う。
こんな感じに。
ShowMessage(AnsiString.sprintf("%02X", Key));
0725デフォルトの名無しさん
2006/10/14(土) 02:33:47ARRAYOFCONSTマクロを使うてもある
ShowMessageFmt( "%.4x", ARRAYOFCONST((Key)) );
0726723
2006/10/14(土) 03:27:30サンクスです。
DelphiではAnsiStringはクラスではなかったのでそんなルーチンがあるとは気付いてませんでした。
また、ARRAYOFCONSTマクロはDelphiにはなかったのでこちらの方も勉強になりました。
0727デフォルトの名無しさん
2006/10/14(土) 21:51:34しょうがないので今まで使ってこなかったのですが、何が原因なのでしょうか。
0728デフォルトの名無しさん
2006/10/16(月) 00:05:05もしBDS2006ならば、BCBに限らず要らんコトしすぎだから。
メモリは1GB推奨だってさ。アフォか?
俺はコードだけEMエディタ使ってるけど。
0729デフォルトの名無しさん
2006/10/17(火) 19:42:41関数printfで標準出力が見たいんですが、方法ありますでしょうか。
dos窓でexeファイル実行すると、アプリのフレームは表示されますが
すぐに戻ってしまいます。
それか、標準出力を表示させるパーツとかないでしょうか。
0730デフォルトの名無しさん
2006/10/17(火) 20:38:25まさかエクスプローラでダブルクリックしてないだろうな?
0731デフォルトの名無しさん
2006/10/17(火) 20:43:170732デフォルトの名無しさん
2006/10/17(火) 21:22:51void __fastcall TForm1::Button1Click(TObject *Sender)
{
printf("hoge");
}
ボタン押したら、hogeって表示させようと思ってるんですが。
dos窓で、Project1.exeを入力してEnter押してます。
>>731
コマンドラインからbcc32を入力して-apを付けるんですよね。
-apってコンソールアプリケーションのことみたいですが、
作りたいのはWINアプリです。説明が下手ですみませんでした。
0733デフォルトの名無しさん
2006/10/17(火) 22:59:30IDEのプロジェクトオプションのリンクのとこに追加オプションというのがある。
エクスプローラから実行してもdos窓がでるけどフォームとかは使えるよ。
0734デフォルトの名無しさん
2006/10/18(水) 00:24:48をイベントログで見るとかそういう話じゃないの?
0735デフォルトの名無しさん
2006/10/18(水) 00:52:01バージョン6使ってますが、プロジェクトオプションにいくと
いろんなタブがあって、その中にリンカ、リンカ(詳細)とかありました。
全部のタブ見てみましたが、どこを変更すればよいかわかりません。
>>734
OutputDebugString検索してみました。
リアルタイムで表示できないってありましたが、ほぼこれをしたいです。
printfみたいにリアルタイムで表示させたいんです。
ついでにこの解説してあるページにprintfについて、
基本的にprintfはWINDOWSで使えないとありました。
MEMOに表示させるとかしか無いでしょうか。
0736デフォルトの名無しさん
2006/10/18(水) 02:12:50実際にコーディングして確かめました?
OutputDebugStringが実行されると即時表示されるのですが。
TMemoで使うならsprintfになると思うけど、、。
0737デフォルトの名無しさん
2006/10/18(水) 07:25:22やってみたところリアルタイムで出てきました。
すごい便利です。
ありがとうございました。
0738デフォルトの名無しさん
2006/10/19(木) 07:27:41できたところなんですが、フォーム外から取得する方法知りたいです。
エクスプローラから、ファイルをフォーム内に落として、
ファイル名を取得したいと思ってます。
よろしくお願いします。
0739デフォルトの名無しさん
2006/10/19(木) 07:43:43でググればいいと思うよ
0740デフォルトの名無しさん
2006/10/19(木) 09:15:02カタカナで検索したほうがよかったですか。
参考になりそうなページがいくつか出てきました。
ありがとうございました。
0741デフォルトの名無しさん
2006/10/19(木) 12:59:37逆はなんであんなに…
0742デフォルトの名無しさん
2006/10/19(木) 14:30:53拡張コンボボックスがインストできない。
[リンカ エラー] Error: 未解決の外部参照 '__fastcall Dialogs::TOpenDialog::Execute(void *)'
が C:\DOCUMENTS**** から参照されました
BDS2005
0743デフォルトの名無しさん
2006/10/20(金) 08:20:32ファイルドロップの受け入れだけOS標準のラッパーがあると考えるんだ。
0744デフォルトの名無しさん
2006/10/21(土) 18:21:53Unit1.~h Unit1.~CPPとかたくさんできるんですがなんででしょうか。
プロジェクト名とCPPファイルの名前聞いてきますが、
名前変えただけだと、リンクエラーみたいに、コンパイルできないときもあるんです。
そのうち、Project1に上書きしてしまったり。
なんかこわいです。
0745デフォルトの名無しさん
2006/10/21(土) 19:25:14それバックアップファイルだから。
BDS2006からちゃんと別フォルダに作られるようになったよ。
0746デフォルトの名無しさん
2006/10/21(土) 20:58:53つ [環境オプション]
0747774
2006/10/21(土) 22:13:460748デフォルトの名無しさん
2006/10/21(土) 23:50:22はやってんのか、それ
0749デフォルトの名無しさん
2006/10/22(日) 04:55:34お返事どもです。
バックアップファイルでしたか。
閉じるときにプロジェクトとCPPファイル聞いてくるのも
なんとなくわかりました。
0750デフォルトの名無しさん
2006/10/22(日) 09:34:23プロジェクト名とCPPファイル名を同じにすると、
WINMAINが無いとか出てくるみたいです。
これが原因だったのかなぁ。
0751デフォルトの名無しさん
2006/10/22(日) 21:12:52>>655>>657>>660
0752デフォルトの名無しさん
2006/10/22(日) 23:55:33あああ、ほんとだ。
すみませんでした。
でも、予想が当たって良かったです。
0753デフォルトの名無しさん
2006/10/24(火) 23:41:47"abc" → "000abc"
0754デフォルトの名無しさん
2006/10/25(水) 00:40:01AnsiString str = Edit1->Text;
Edit2->Text = str.StringOfChar('0', MaxLength - str.Length())+str;
0755デフォルトの名無しさん
2006/10/25(水) 20:45:15exampleの httpdemoがコンパイルできないんです。
0756デフォルトの名無しさん
2006/10/25(水) 21:25:13printfの書式?それとも文字列に出力?
http://ja.wikipedia.org/wiki/Printf
文字列バッファへの出力ならsprintf
0757デフォルトの名無しさん
2006/10/26(木) 15:19:38取得したいのですが、どうすればいいでしょう?
0758デフォルトの名無しさん
2006/10/26(木) 16:12:24CaretPos
0759デフォルトの名無しさん
2006/10/26(木) 18:07:11module.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();
よろしくお願いします。
0760デフォルトの名無しさん
2006/10/26(木) 18:16:05補足です。
say_num()関数にintの引数を取れるように
する以外で考えております。
よろしくお願いします。
0761デフォルトの名無しさん
2006/10/26(木) 19:00:15jikko.cppで、
extern int n=1;と定義
module.cppで、modu_ex.cppのnを参照するため
#include "modu_ex.cpp"
とすると、n=1が参照できるようになりました。
この処理で大丈夫でしょうか。
0762デフォルトの名無しさん
2006/10/26(木) 19:31:16基礎を書籍等で習得するべき。
掲示板の数行のやりとりで教えられる領域じゃないように見える。
0763デフォルトの名無しさん
2006/10/26(木) 20:27:02聞きたいのはメッセージフックに関してです。
通常のアプリケーションではWndProcのオーバーライトで
独自のメッセージのやり取りおよび、イベントの受け取り等は出来きたのですが、
それをコンポーネント化しようとすると、呼び出し元のWndProcを操作せねばならず
他で見かけたDelphiソースみたいに、親のWinProcアドレスを挿げ替える方法も
出来ないものかと色々ためしましたが上手く行きませんでした。
で、ローカルフック関係で色々調べて試して見たのですが、
MFC関連は結構引っかかって色々試しては見たのですが、
これもコンポーネントとして持たせようとすると上手く行かないのです。
理想は、プロパティに独自のメッセージを入れると、そのメッセージが親アプリに
送られてきた時にイベントを発生させてくれるものを作りたいのです。
お勧めのサンプルソースやHP等ありましたら宜しくお願いします。
0764763
2006/10/26(木) 20:32:01もう3日ほど試行錯誤でてんぱってるみたいです(^^;
短く書くと、ローカルフックコンポーネントを作りたいので
何処か参考になるソースやHPがありましたら宜しくお願いします。
……二行で済む話を長々書いてしまったorz
0765デフォルトの名無しさん
2006/10/26(木) 20:48:32お返事ありがとうございます。
>module.cppで、modu_ex.cppのnを参照するため
>#include "modu_ex.cpp"
すみません。ファイル名間違えてました。
>module.cppで、jikko.cppのnを参照するため
>#include "jikko.cpp"
でした。
ネットで「externで宣言したら、使いたいユニットで
その宣言したファイルをインクルードする。」
と書いてあったのでそのままインクルードしました。
手元の本見たら、ヘッダーファイルにextern宣言してました。
jikko.hを作ってそこで宣言したほうが良いってことでしょうか?
0766デフォルトの名無しさん
2006/10/27(金) 01:07:57//jikko.h
extern int n;
//jikko.cpp
int n;
//module.cpp
#include "jikko.h"
これでヲケ
ただし、ひじょ〜〜〜〜〜〜〜に不味い設計
BCBのフォーム周りは似た事してるけどさ
正解は
>say_num()関数にintの引数を取れるようにする
またはポインタないし参照をとるようにする
0767デフォルトの名無しさん
2006/10/27(金) 04:11:35詳しく解説ありがとうございます。
あんまり良く無い設計でしたか。
特別なときだけ使うようにしたいと思います。
0768デフォルトの名無しさん
2006/10/27(金) 17:15:33エクスプローラからファイルをドラッグアンドドロップして
ファイル名を取得してTEditに表示させたいのですが、
ドロップしたマウスカーソル位置がEdit1上ならファイル名はEdit1に、
同様にマウスカーソル位置がEdit2上ならファイル名はEdit2に表示させたいのです。
表示させるTEditのターゲットを切り替えたいのです。
DragAcceptFiles(Edit1->Handle, true);
DragAcceptFiles(Edit2->Handle, true);
とすべきなのでしょうか。またその場合のMESSAGE_MAPはどのように記述すべきでしょうか。
とりあえず
DragAcceptFiles(Handle, true);
とした上で、DragQueryPointで取得した座標値でターゲットの判断をしていますが、
こんなことしなくても出来るんじゃないかと思いまして。
0769デフォルトの名無しさん
2006/10/27(金) 19:52:32TEditから派生させてWindProcメソッドをオーバーライド
0770デフォルトの名無しさん
2006/10/27(金) 22:34:571つ目は、乱数の値を取得する際なんですが、どのサイトを見ても乱数の種でTime関数を
使うのを推奨してるのですが、分母が大きい場合(65536)に実行すると
時間の経過と共に徐々に取得してくる数値が大きくなってしまいます。
クリック時に乱数取得するように組んでみると…
クリック→100代 クリック→200代 クリック→300代
という風に徐々に徐々に増えていってしまいます。
逆にSRAND関数を使わない場合はちゃんとバラけた乱数を拾ってきます。
プログラムを起動しなおしても、同じ数値は拾ってきません。
これはC++BuilderのRand関数はC++などとは違い、種をリセットしない方が
良いという事なのでしょうか?
もう一つは、先ほどの分母に関してなのですが
Rand関数で返ってくる値は32768が最大なのでしょうか?
65536個の乱数を取得したいと考えているのですが、それは無理なのでしょうか?
ぜひ教えて頂ければと思います。
よろしくお願いします。
0771デフォルトの名無しさん
2006/10/27(金) 22:46:17通常、乱数ジェネレータの初期化(srand)は1回だけやればいい。
あと、0x7FFF以上の値が欲しければ_lrandを使えば0x7FFFFFFFまで取れる。
0772デフォルトの名無しさん
2006/10/27(金) 23:01:33ありがとうございました!!
_lrandで無事解決しました。
2番目の質問の方は、どうやらsrand関数にばかり目が行ってて
randomize関数を毎回呼び出していたために変な取得の仕方を
してたような感じでした。
多分これで大丈夫だと思います。助かりました!
ありがとうざいます。
0773デフォルトの名無しさん
2006/10/27(金) 23:24:56int a,b;
float c;
で宣言しておき
c = a / b;
とする場合に小数点1桁までをLabelで表示したい場合が分かりません。
ceil関数なども調べてみたのですが、小数点1桁までの切り上げが出来ませんでした。
質問ばかりで申し訳ありませんが、よろしくお願いします。
0774デフォルトの名無しさん
2006/10/28(土) 00:08:06書式付の編集で四捨五入をしてくれる
char str[100];
sprintf(str, "%5.1f", (double)a/b);
0775デフォルトの名無しさん
2006/10/28(土) 01:18:42//---
曰 void ...
│ {
│ ...;
└ }
//---
こんな感じが普通だと思うんですが、
曰 //--- //--- //---
│ void ... void ... 曰 void...
│ { 曰 { │ {
└ ...; . │ ...; . └ ...;
} │ } }
//--- . └ //--- . //---
このような風になってしまいます。
文法的には間違ってないですし、もちろんコンパイルもできます。
書き方が悪いのでしょうか。
0776デフォルトの名無しさん
2006/10/28(土) 13:16:00例えばdouble型の数値a,b,cがあって a/bの結果をcに代入してLabelで小数点1桁まで表示したい場合
double a,b,c;
c = a / b;
Label1->Caption = c;
とすると小数点以下が延々と表示されます。これを小数点1桁までの表示としたいのですが
>>774でお答え頂いたような編集式で記述するのでしょうか?
それともLabelのプロパティなどで設定出来るのでしょうか?
0777デフォルトの名無しさん
2006/10/28(土) 13:35:01Label1->Caption = str;
すればいいんでねーの?
0778デフォルトの名無しさん
2006/10/28(土) 14:53:19Label1->Caption = FormatFloat("0.0", c);
しっかし、Label1->Caption = c;が、なんでエラーにならんのだ。
AnsiStringは、数値を代入してもOKだったなんて。
今まで、Float(Int)ToStr(***)と無駄な事をしていた・・・
0779デフォルトの名無しさん
2006/10/28(土) 17:05:54っ[ AnsiStringのコンストラクタ ]
0780デフォルトの名無しさん
2006/10/29(日) 07:49:070781デフォルトの名無しさん
2006/10/30(月) 13:44:57どういう方法があるでしょうか?
0782デフォルトの名無しさん
2006/10/30(月) 14:01:16RFC嫁
0784デフォルトの名無しさん
2006/11/02(木) 14:33:46typedef 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);
}
};
0785デフォルトの名無しさん
2006/11/02(木) 15:06:08これをどうやって使えばいいでyそうか?
0786デフォルトの名無しさん
2006/11/02(木) 21:26:10( ゚ Д゚)
( つ旦O
と_)_)
_, ._
( ゚ Д゚) ガシャ
( つ O. __
と_)_) (__()、;.o:。
゚*・:.。
0787デフォルトの名無しさん
2006/11/03(金) 00:51:04まんま>>769
これの意味が分からんと言われたら
C++の入門書を読みましょうとしか答えようがないな
0788デフォルトの名無しさん
2006/11/03(金) 00:52:17↓こっちが正解
>>784
まんま>>769
これの意味が分からんと言われたら
C++の入門書を読みましょうとしか答えようがないな
0789デフォルトの名無しさん
2006/11/03(金) 07:58:19というかただ単にTApplicationEvents::OnMessageでメッセージ拾って
Edit1、Edit2とHanlde比較すればすむんじゃね?
0790デフォルトの名無しさん
2006/11/06(月) 18:12:33'-'を検索し、'-'を全て無くしても同じ結果でした。
BCB5で新規プロジェクトを作成し何も変更せずに保存したものは、BCB6でも開けます。
何かわかりますか?
0791デフォルトの名無しさん
2006/11/06(月) 19:04:23makeファイルの-オプションのところとか。
0792デフォルトの名無しさん
2006/11/06(月) 19:31:06>>791
「makeファイルの-オプションのところ」とはどこで確認するのでしょう??
なにぶん初心者なもので・・・。
メイクファイルの作成で出来た「***.mak」はテキストで開いてみたのですが、
BCB6でも開ける新規プロジェクトの「***.mak」と比較しても特にめぼしいとこはありませんでした。
また、ツール→環境オプション、プロジェクト→オプションも見たのですが特にめぼしいとこは
ありませんでした。
0793デフォルトの名無しさん
2006/11/06(月) 21:48:02解決しました。
BCB5で、プロジェクト→オプション→Pascal→構造体を境界配置 にチェックをつけたら
BCB6で開けました。理由は不明。
0794デフォルトの名無しさん
2006/11/07(火) 02:36:26int color;
};
//1番
Color* c = new Color;
//2番
Color* c2 = new Color();
1番と2番の書き方って何か意味の違いはあるのでしょうか
0795デフォルトの名無しさん
2006/11/07(火) 11:44:16BCB5→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 を見ようとしてしまうのでしょう??
0796デフォルトの名無しさん
2006/11/07(火) 15:57:21クライアント 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・・・)
アドバイスお願いします。
(接続→更新→終了までの簡単なサンプルコードを教えて頂けると助かります。
参考サイトでも構いません。)
0797デフォルトの名無しさん
2006/11/07(火) 22:38:41RichEdit1->Paragraph->LeftIndent=xx; として
RichEdit1->Lines->Add("xxxxx");
としても変化がありませぬでした。
0798デフォルトの名無しさん
2006/11/09(木) 00:42:20さらにトラックバーに対応して回転する線を描画するプログラムを
作成するってゆう宿題をやってるんですがまったくわかりません…
長さを調整することはできるのですが角度がどうすればよいのかわかりません。
プログラム自体に線の長さや位置の初期値を組み込んだのがおかしいのかな。
誰か教えてください。
0799デフォルトの名無しさん
2006/11/09(木) 15:40:17×LeftIndent
○TopIndent
0800デフォルトの名無しさん
2006/11/09(木) 23:03:53エラーになります。
あと、ヘルプのどこを探しても、TopIndent が見つかりません。
0801デフォルトの名無しさん
2006/11/10(金) 03:42:150802デフォルトの名無しさん
2006/11/10(金) 04:05:45ここのアプレットで、原点(0,0)を始点として渦巻きを外に向かってグルグルと描いていくかんじ?
トラックバーのPositionが増えるに従って渦巻きを大きくしていくかんじというか。
0803デフォルトの名無しさん
2006/11/10(金) 04:06:17http://www.sm.rim.or.jp/~shishido/sheeta.html
0805デフォルトの名無しさん
2006/11/11(土) 01:12:52Delphiのように、クラスを作る際は、TObjectから派生させるべきですか?
0806デフォルトの名無しさん
2006/11/11(土) 13:12:08ObjectPascal型クラス特有の機能(基底クラスのポインタから派生クラスの型取ってきたいとか)使うんでなければC++型クラス使うのが一般的。
0807デフォルトの名無しさん
2006/11/11(土) 16:27:020808デフォルトの名無しさん
2006/11/11(土) 17:03:090809デフォルトの名無しさん
2006/11/11(土) 21:40:48で・・・できました。
ありがとうございます。
でも、LeftIndentって何のためにあるんでしょうか?
0810デフォルトの名無しさん
2006/11/12(日) 22:17:30同一パラグラフの2行目以降のインデント幅 FirstIndentに加算される
なのでパラグラフが1行しかないと反映されない
0811デフォルトの名無しさん
2006/11/18(土) 00:51:08いや、全部TPanelから派生させるべきだよ。
0812デフォルトの名無しさん
2006/11/20(月) 03:17:24よろしくお願いします。
sndPlaySound関数を利用して二つのWAVファイルを時間差で再生するプログラム
を作りたかったのですが、sndPlaySoundでは複数のWAVファイルを重複して再生
することは出来ないようでした。
時間差と音量の組み合わせが1000種類程あるので、事前にミックスして一つの
WAVファイルにまとめるのは現実的ではありません。
というわけで、複数のWAVファイルを時間差で再生できる関数などありましたら
よろしくお願いします。
0813デフォルトの名無しさん
2006/11/20(月) 03:25:24mciSendString("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);
多分こんなかんじだったと思う多分
0814デフォルトの名無しさん
2006/11/20(月) 03:31:40ファイルの読み込みがちょっと面倒だけどね。
0815812
2006/11/20(月) 03:42:09すばやい反応本当に感謝です。
0816812
2006/11/20(月) 05:10:19MCIとDirectSoundってどっちが手軽にできますか?
色々調べてみたのですがまだ数回、builderをかじった程度の自分では
どちらも敷居が高すぎてなかなか手がつけられそうにありません。
こちらの都合で申し訳ないですが、期限が迫っており、ゆっくり勉強している時間がありません。
>>812に書いた二つのWAVファイルの時間差再生ができる最低限の機能さえ
実現できればいいのですが、どちらの方法が短時間でできるでしょうか?
あと、ベクターで
「C++Builder用 DirectSoundを(比較的)簡単に扱えるDLL(サンプル付)」
というのを発見したのですが、バージョンが違うせいか、うまく動作しませんでした。
他にこのようなライブラリをご存知でしたら、お願いします。
環境はWinXP Professional , PS2 C++Builder 5 , DirectX9.0cです。
何でも良いので、よろしくお願いします
0817デフォルトの名無しさん
2006/11/20(月) 06:02:420818デフォルトの名無しさん
2006/11/20(月) 09:44:420819デフォルトの名無しさん
2006/11/21(火) 04:28:27次から"*****"が表示されて、再入力しなくてもいいようなのあります。
あればどうすればよいのでしょうか。
テキストファイルか何かにパスワード保存しておいて、ただ読み込むだけ
ということではないですよね。
よろしくお願いします。
0820デフォルトの名無しさん
2006/11/21(火) 04:40:360821デフォルトの名無しさん
2006/11/21(火) 07:30:12Delphi用のDirectSoundコンポーネントは、いくつかあると思うが・・・
DelphianWorldとか、Toryyとか探してみた?
あとは、Quadruple Dでもできたはず
0822デフォルトの名無しさん
2006/11/21(火) 07:58:19ありがとうございます。
ttp://www.runan.net/program/tips/API/shlwapi_SHAutoComplete.shtml
ttp://mist.clueup.org/blogs/1/archive/2006/09/29/_EA81D552DC888C5B92307F4F633066307F308B30_.aspx
こういうページ見つけて、使い方はわかったんですが、
****を表示させるのがわからないです。
SHAutoComplete関数のフラグとか****が表示されるようなのがあるんでしょうか。
自分でなにかプログラミングしないといけないんでしょうか。
難しいです。
0823デフォルトの名無しさん
2006/11/21(火) 08:14:33横から失礼します。
パスワードは基本的に別のエディットボックスですので、ユーザーID用の
ボックスにEnterが入力された時点でどこかに暗号化しておいたパスを
拾いに行くようにするしかないような気がします。
IEの場合は多分NTUSER.DAT当たりに記録されているのではないかと
思うのですが・・・外れていたらすみません。
0824デフォルトの名無しさん
2006/11/21(火) 12:46:46レスありがとうございます。
オートコンプリートってちょっと違うのでしょうか。
わかりませんでした。
えっと、保存する場合は、暗号化前の生のパスワードでいいんですよね?
暗号化したパスワードを保存すると、*の数変わってしまいますし。
md5でと思ってたんですが、復号化できる暗号ロジック使えば、
暗号化したパスワードを保存しても大丈夫なんでしょうか。
それで、EditのPasswordCharを*に。
初心者なので壁が多いです。><
0825デフォルトの名無しさん
2006/11/21(火) 23:47:34クラスTBevelが見つかりませんとか言われてしまうんですが、
なんでしょうか。ブレークを無視するとエラーダイアログ連発になります。
んで、Bevelを一回剥がして貼りなおすと直ります。
面倒なんで、誰が原因を知っている人がいましたら教えてください。
BDS2006のBCBです。
0826デフォルトの名無しさん
2006/11/24(金) 21:37:36たとえばコードにブレークポイントを埋め込めるとか。
0827デフォルトの名無しさん
2006/11/25(土) 07:04:33日本語(文字化けして読めない)になってしまいます。
エラーを英語にすることはできないでしょうか?
0828デフォルトの名無しさん
2006/11/25(土) 09:44:210829デフォルトの名無しさん
2006/11/25(土) 10:43:340830デフォルトの名無しさん
2006/11/25(土) 10:49:40俺以前bcb6の環境で同じ現象が出て、プロジェクトの言語設定を英語にしようが
言語リソースを使おうが直らなかった(MessageBoxを呼んだ後のVCL内の処理で
多言語対応がされてないっぽい)。
結局『CreateMessageDialog使って一度TFormオブジェクトを生成した後、その
キャプションを無理矢理英語に書き換えて表示する』という力業で切り抜けた
記憶がある。
個人的にはBCB(とういかVCL)のバグだったと思ってるんだけど、違うのかね?
6より後のバージョンは知らないけど。
>>828
俺も参考までに是非知りたい。教えてPlz。
0831デフォルトの名無しさん
2006/11/25(土) 11:01:350832デフォルトの名無しさん
2006/11/25(土) 13:50:19たとえば日本語のプロジェクトで生成したものを英語(ENU-ENglish/Us)ロケールで実行するときは
実行ファイル名の拡張子を.ENUにした言語リソースを探して見つかればそちらのリソースを使う。
言語リソースは新規作成のリソースDLLウィザードで作る(Pro以上)。ただしこのときに
SysConst.pasにあるresourcestringまでいちいち書き換えるのは不毛なのでCD-Rにある
英語版のライブラリに切り替えてからリソースDLLウィザードを使うのが吉(そのままだと
デフォルトで生成されるresourcestringの中身が日本語になってしまう)。
0833832
2006/11/25(土) 13:51:21○ CD-ROM
0834デフォルトの名無しさん
2006/11/25(土) 23:17:48うーん・・・リソースDLLはもちろん使ったんだけど、
SysConst.pasって関係あるのかな?
例えばMessageBoxでMB_YESNOを指定した時のボタンのキャプションも
日本語で表示されてたけど(本来英語環境ではYes/No表示のところを
はい/いいえで表示しようとして化ける)、こんなところまでSysConstで
管理してないような。
英語版ライブラリの使い方も探したけど、見つからなかったんだよね。
少なくともインストールディスクには入ってなかった気がする。
全部BCB6の話ですが。
0835デフォルトの名無しさん
2006/12/01(金) 17:38:23ようなことってできますか?
開始ボタンを押したら後は矢印押すだけで内部の変数が変わるようなプログラムを
作りたいのですが。プログラムを使っている人にはその変数の値がどの程度か知られたくないのです。
あと、できれば操作中はマウスを使わなくてすむようにしたいです。
0836デフォルトの名無しさん
2006/12/03(日) 16:21:58内容を自動スクロールしたいのですが
ScrollByメソッドを使っても上手くいかないみたいです
それ以外の方法はありますでしょうか?
0837デフォルトの名無しさん
2006/12/04(月) 03:08:07TEditから入力してもらった文字列をchar型の変数に代入するにはどうしたらよいのでしょうか?
char型の変数 = Edit1->Text;
では左辺値がありませんとエラーになってしまいます。
int型の変数 = StrToInt(Edit1->Text);
は通ったので大丈夫だとおもったのですが・・・
よろしくお願いします。
0838デフォルトの名無しさん
2006/12/04(月) 07:02:12『文字列をchar型の変数に代入する』という発想が既におかしい。
C言語の基礎から勉強しなおし。
0839デフォルトの名無しさん
2006/12/04(月) 07:16:59AnsiStringで宣言すればイコールで代入できるよ。
0840デフォルトの名無しさん
2006/12/04(月) 08:53:29char* AnsiString::c_str() const;
0841デフォルトの名無しさん
2006/12/04(月) 10:54:29不可視のコントロールにフォーカスを設定はできなかったはず
開始ボタンとか必要なコントロールでOnKeyDown/Upイベントを定義すればいいんじゃないかな
0842デフォルトの名無しさん
2006/12/04(月) 14:02:19char c[256];
strcpy(c, Edit1->Text.c_str());
この方が無難じゃない?
0843デフォルトの名無しさん
2006/12/04(月) 20:15:27char c = Edit1->Text[1];
0844デフォルトの名無しさん
2006/12/06(水) 09:49:50HP等は無いでしょうか?
0845デフォルトの名無しさん
2006/12/17(日) 21:52:38このような具合にです。
TForm1::TForm1(略) {
WindowProc = MyWndProc;
}
TForm1::MyWndProc(Messages::TMessage &Message){
(処理)
}
それでWM_TIMERのwParamを拾おうとしてMessage.WParamを見ると
本来はタイムアウトになったタイマのIDが入っているはずなのですが、
常にゼロが入っています。(´;ω;`)
私の使い方が悪いのでしょうか?
0846845
2006/12/17(日) 22:09:110847デフォルトの名無しさん
2006/12/18(月) 09:43:29自クラス内でウィンドウプロシージャ弄る場合は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);
}
普通に動いているが‥‥
0848デフォルトの名無しさん
2006/12/18(月) 18:45:46とかボタンありますが、マウスのカーソル上に置くと、
なんのボタンか表す文字が出てきます。
こういうのやりたいですがわかりません。
よろしくお願いします。
0849デフォルトの名無しさん
2006/12/19(火) 14:35:57それのText(Caption)と縦座標のみ異なる複製を動的に作成したいのですが、
スマートなコーディング方法がないでしょうか
一応、newでコントロールを作成してプロパティやイベントを一個一個コピー
していくやりかたではできたのですが、数が多くてステップ数が馬鹿デカくなって困ってます。
0850デフォルトの名無しさん
2006/12/19(火) 14:53:18まさか、関数化せずに一個一個newしているわけじゃないだろうな。
0851デフォルトの名無しさん
2006/12/19(火) 15:09:49複製はTPersident::Assign()使えなかったっけ?
0852デフォルトの名無しさん
2006/12/19(火) 18:39:50やりましたよ!
オブジェクトインスペクタのHintで出来ました。
使ってるアプリいくつか見たら、同じように黄色のバックに黒文字だったので、
標準でなんかあるのかと思ったら。
HTMLでも同じ風に文字出てきますよね。
ありがとうございました。
0853デフォルトの名無しさん
2006/12/19(火) 20:10:14その際にキーボード部分をクリックした時に、アクティブな部分が変わらないよう、
常に非アクティブになるようにしたいのですが、
どうすればよろしいでしょうか・・・?
0854デフォルトの名無しさん
2006/12/20(水) 00:01:17なんて突っ込みは小学生並みだな
BCB6だろっ
0855デフォルトの名無しさん
2006/12/20(水) 00:28:27レス、ありがとうございました。
どうやら自分のSetTimerの使い方が悪かったようです。orz
ところで、SetTimerは第二引数のタイマ識別子として既存のタイマと同じものを使うと
新しい設定でタイマをつくりなおしてしまうとMSDNにありました。
VCLのTTimerはタイマの識別子を指定する仕組みではなかったので不用意に
TTimerとSetTimerを混在させると同じ識別子を使ってしまわないか心配です。
VCLのソースではSetTimerの識別子としては0か1しか使われていないように見えるのですが
いまいち自信がありません。
>>847さんはコード上で識別子に2を使われていますが、2以上ならVCLのTTimerをいっしょに
使っても重複しないものなんでしょうか?
みなさんはどうされていますか?
0856デフォルトの名無しさん
2006/12/20(水) 00:39:44TTimerは専用の不可視ウィンドウをインスタンス毎に作成してるからID重複しても問題ない。
Classes.pasのAllocateHWnd参照。
0857デフォルトの名無しさん
2006/12/20(水) 01:22:40TButtonじゃなくてTSpeedButton使ったら?
0858855
2006/12/20(水) 01:37:22なるほど。素人の取り越し苦労だったんですね…。(´ω`)
なにはともあれ感謝です。明日会社でご指摘の箇所を読んでみます。
VCLのソースは自分のプログラムのヒントになりそうなことがいっぱい書いてありそうですね。
それにしてもこんなにすぐ疑問を解決できるなんて、2chはすごいな。
0859デフォルトの名無しさん
2006/12/20(水) 02:24:34あとBorlandの一部が落ちてるような感じになってるのはいつものことなんですか?
0860デフォルトの名無しさん
2006/12/20(水) 02:31:26MinGW
とか
VisualC++ Express
とか
0861デフォルトの名無しさん
2006/12/20(水) 02:34:05C++Builde系はやっぱりないんですかね?
0862デフォルトの名無しさん
2006/12/20(水) 02:46:23Turbo C++
0863デフォルトの名無しさん
2006/12/20(水) 02:59:060864デフォルトの名無しさん
2006/12/21(木) 16:36:32文字をアクティブな部分に送るだけでよいので、
どなたかプログラムの例を挙げてもらえないでしょうか?
0865デフォルトの名無しさん
2006/12/21(木) 16:51:03x番目の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; とやる方法を考えたのですが、
もっとかっこいい方法はないものでしょうか?
0866デフォルトの名無しさん
2006/12/21(木) 17:32:59FindComponent
0867デフォルトの名無しさん
2006/12/22(金) 10:53:07ピンポイントな解答、どもです。
やりたいことがあっても、その方法がなかなか見つけられない。
いつになったら超初心者を抜け出せるんだろうか。
0868デフォルトの名無しさん
2006/12/22(金) 11:52:59・Delphi向けのリソースを活用する
・気になることがあったらVCLのソースを覗く癖をつけておく(stdやperとかでソース無い場合は新TurboはExplorerでもソース付いてるからインスコ)
0869デフォルトの名無しさん
2006/12/22(金) 21:21:090870デフォルトの名無しさん
2006/12/22(金) 23:34:21Sourceforgeなんかで、Delphiのオープソースのソフトのソースとか漁るとか。
OpenJaneとかその辺。
0871デフォルトの名無しさん
2006/12/23(土) 03:51:01同じようなこと考えてるヤツってのは他にも大抵はいる
0872デフォルトの名無しさん
2006/12/23(土) 19:09:21ググってコピーしていたのでは、いつまで経っても低レベルのままだ。
0873デフォルトの名無しさん
2006/12/25(月) 01:27:220874デフォルトの名無しさん
2006/12/25(月) 01:36:030875デフォルトの名無しさん
2006/12/25(月) 12:05:18フォーカスを奪わないようにするにはどうすればよいのでしょうか?
0876デフォルトの名無しさん
2006/12/27(水) 14:35:45描画する方法ってないでしょうか
0877自己レス
2006/12/27(水) 15:45:58DrawEdgeで直接描画する方法になるんですかね?
0878デフォルトの名無しさん
2006/12/28(木) 01:35:31OnDrawCellイベントあたりを見てみたら?
0879デフォルトの名無しさん
2006/12/28(木) 17:12:35OnDrawCellでこんな風にしました。
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 );
0880デフォルトの名無しさん
2006/12/31(日) 01:23:04わかりやすいHPなどがあれば教えてください
0881デフォルトの名無しさん
2006/12/31(日) 14:48:32implibでインポートライブラリ作成
0882デフォルトの名無しさん
2007/01/03(水) 04:50:07タイマーが動き時間になれば知らせてくれるソフトを作りたいのですが、
非アクティブ時にキーを判定→実行させる方法がわからず悩んでいます。
わかる方がいましたら教えていただけないでしょうか?
0883デフォルトの名無しさん
2007/01/03(水) 10:53:44RegisterHotKey()
SetWindowsHookEx(WH_KEYBOARD, ...)
0884デフォルトの名無しさん
2007/01/03(水) 14:25:39ラグナ厨かよ
0885デフォルトの名無しさん
2007/01/07(日) 13:59:170886デフォルトの名無しさん
2007/01/09(火) 09:18:290887デフォルトの名無しさん
2007/01/09(火) 10:41:490888デフォルトの名無しさん
2007/01/09(火) 11:31:45引数にフォームのハンドル渡しても画面中央に表示されるんだけど、何か間違ってるかな。
0889デフォルトの名無しさん
2007/01/09(火) 15:55:30面倒だがWM_NCCREATEをフックしてサブクラス化する。
MFCはこの方法でオーナーウィンドウの中央に表示されるようになってる。
0890デフォルトの名無しさん
2007/01/09(火) 18:04:570891デフォルトの名無しさん
2007/01/09(火) 18:29:210892デフォルトの名無しさん
2007/01/09(火) 18:38:100893888
2007/01/10(水) 08:25:54はい。新規に共通で使うフォームを作ることになりました。
作ってて一つ問題。フォームのCaptionがメッセージより長くなる場合、
Captionの横幅によってフォームの横幅を合わせるようににしたいのですが、
どうすればいいですか?
0894デフォルトの名無しさん
2007/01/10(水) 14:28:23int Textlen = Canvas->TextWidth(Caption);
if(Textlen > Width) Width = Textlen;
0895デフォルトの名無しさん
2007/01/10(水) 14:29:39他のPCで実行しようとするとMIDAS.dllが無いと出ます。
Delphiだと、MidasLibをusesのところに書けばmidas.dllを配らなくても良いらしいのですが、
C++Builderでもmidas.dllを使わなくても良いようにするにはどうすればいいのですか?
0896デフォルトの名無しさん
2007/01/10(水) 14:35:55用途は趣味のゲーム製作なのですが、挫折する事も考えると安価なPersonalが
魅力的です。
DirectXを使うようなゲームを作る場合、Personalでも問題ありませんか? 両
者の大きな違いとは、単に商業的に使えないという事だけでしょうか?
ちなみにBCBを選んだのは仕事でDelphiを使っているので、VCよりもとっつき
易いかかもしれないと思ったからです。
0897888
2007/01/10(水) 14:43:14最初、TextWidthがCaptionの表示幅より小さい値になってたんですが、
FormのFontのSizeを大きくしたらうまくいきました。
これでいきます。
0898888
2007/01/10(水) 16:12:48自分で作ったメッセージボックスは、アプリケーション起動時にCreateFormしないで
動的にフォームを作成、削除するようにしたいのですが、どうやればよいのでしょうか?
0899デフォルトの名無しさん
2007/01/10(水) 20:34:29まあリファレンスはCのが多いからどちみちCを読めなきゃならないけど。
0900デフォルトの名無しさん
2007/01/10(水) 22:33:08はげどう
0901デフォルトの名無しさん
2007/01/10(水) 22:38:22WinMainにあるApplication->CreateForm(__classid(Txxxx), &xxxx);を消して
必要な時にnewしたらどうだね
(xxxxはフォームのクラス名ね)
0902デフォルトの名無しさん
2007/01/11(木) 00:07:22られず困っています。
FormのButtonクリック・イベントでlex.yy.cで実装されたyylex()をコー
ルさせたいのですが、未解決の外部参照だとリンクエラーが発生します。
*.cから別の*.c内定義の関数コールはできているのですが、*.c内で定義
されたラベルを*.cppで参照するには何か特別な記述が必要なのでしょうか?
0903デフォルトの名無しさん
2007/01/11(木) 00:15:25.dcuをプロジェクトに放り込めばいけそうな気が‥‥
>>896
DirectGraphicsベースのアプリだとVCLフレームワークの大半が無意味になるからVC2005Expressでいいとおもうぞ。
取っつきやすいだけならVC#2005Express+XNA GameStudio Expressの選択肢も。
0904デフォルトの名無しさん
2007/01/11(木) 00:17:32extren "C"
0905デフォルトの名無しさん
2007/01/11(木) 00:18:44extern "C"
0906デフォルトの名無しさん
2007/01/11(木) 00:29:22ありがとうございます。
職場のPCにしか環境が無く、すぐに試せなくて申し訳ないのですが、
コードの意味を調べておいて、明日試してみます。
0907895
2007/01/11(木) 02:26:09Midaslib.dcuをプロジェクトに追加しても駄目でした。
ソースに
#pragma link "Midaslib.dcu"
と書くと、
[リンカ エラー] Error: 'MIDASLIB.DCU' に無効な OMF レコード (タイプ 0x23) が含まれています
となります。
0908896
2007/01/11(木) 10:24:25DirectXを使う場合、そのうち限界を感じるようになると知り合いに言われまし
て・・・。
>>903
なるほど。
では、VC2005Expressを試しに使ってみます。 ありがとうございました。
0909デフォルトの名無しさん
2007/01/11(木) 17:56:48現在表示中のサイトのバックグラウンドカラーや表示中のテキストを取得することは
できませんでしょうか?
0910デフォルトの名無しさん
2007/01/11(木) 19:46:29マウスでクリックした点からマウスを放したところまでの四角形や円を描きたいのですが
(↑Wordみたいに・・・)どのようなプログラムにしたらいいのでしょうか?
0911デフォルトの名無しさん
2007/01/11(木) 20:57:27TCppWebBrowser::DocumentからIHTMLDocument2インタフェース取得すればDOM使って読み書きできる
>>910
OnMouseDownで始点設定
OnMouseUpで終点設定してそれに収まる図形を描画するだけ
0912デフォルトの名無しさん
2007/01/11(木) 20:58:01開発者ガイドの「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モードにして、
前回の描画をもう一度書いて消して、新しい位置に描画
0913909
2007/01/12(金) 09:08:23ありがとうございます
IHTMLDocumentを取得してからのサンプルコードは色々見つけたんですが
肝心のTCppWebBrowser::DocumentからIHTMLDocumrntを取得する方法がわかりませn
検索でコード探したり、色々キャストしてみたんですがエラーがでます
そこのところだけでもサンプル教えていただけないでしょうか?
0914902
2007/01/12(金) 09:16:48C++の基本を質問してすみませんでした。
おかげで様で作業を進めることができました。ありがとうございました。
0915デフォルトの名無しさん
2007/01/12(金) 11:06:19void __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();
}
0916デフォルトの名無しさん
2007/01/12(金) 11:11:330918デフォルトの名無しさん
2007/01/12(金) 11:56:16ありがとうございます、さっそく試してみます
QueryInterfaceも引数いろいろいれて試してみてたんですが・・・
助かりました
0919デフォルトの名無しさん
2007/01/12(金) 16:13:02あるアプリケーションが実行中ならそのアプリケーションに
マウスの左クリックイベントを送出するというのを実現したいのですが、
実行中アプリ取得の方法と、他のアプリにイベントを送出する方法がわかりません。
どなたかご教授願います。
0920デフォルトの名無しさん
2007/01/13(土) 02:24:56・FindWindow
・SendMessage
何作るのか知らんがnProとかPBには無効ですよ
0921デフォルトの名無しさん
2007/01/19(金) 20:43:09例えば、円を3つ、四角形を5つ描いた後に、一番最初に描いた円を指定してマウスでドラックした分、その円を移動させたいのですが、どのようにしたらいいのかわかりません。
簡単なプログラム付で解説していただけると、なお助かります。
ずうずうしい質問ですが、ご教授、お願いします。
0922デフォルトの名無しさん
2007/01/19(金) 22:08:21くたばれと書いてあるのかと思ってびっくりした。
0923デフォルトの名無しさん
2007/01/19(金) 23:19:00くたばれ
0924デフォルトの名無しさん
2007/01/19(金) 23:36:33丁寧に 頼んだつもりが 赤っ恥
0925デフォルトの名無しさん
2007/01/19(金) 23:43:000926デフォルトの名無しさん
2007/01/20(土) 00:34:18別に悩むようなことじゃなかろう
マウスイベントで処理すればいいだけじゃないか
0927921
2007/01/20(土) 02:49:38申し訳ないのですが、もう少し詳しくお願い致します。
コードとかメソッドなど、何でもいいので。。。
本当に初心者で、お手数おかけします。。。
0928デフォルトの名無しさん
2007/01/20(土) 11:04:14図形を指定するやりかたがわからん?
マウスでドラッグの方法?
移動?
もしかして,設計から教えろとでもいうのか?
0929デフォルトの名無しさん
2007/01/20(土) 11:34:02現在、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つずつ増やして複数検索を出来るように
したいのですが、どうすればいいかわかりません。
もし、分かる方がいれば教えてください。
0930921
2007/01/20(土) 11:36:30かなりアバウトな質問をしてしまって、すみませんでした。
図形を指定する方法がわからんのです。。。
よろしくお願い致します。
0931デフォルトの名無しさん
2007/01/20(土) 11:52:28BCBよりSQLの領域じゃないか?
0932デフォルトの名無しさん
2007/01/20(土) 12:25:12どこから持ってきたソースか知らんけど、もし仕事なら、上司なり依頼元に『自分のスキルじゃできません』て
はっきり言うか、こんな掲示板で質問なんかしてないで、もっと基礎からちゃんと勉強した方が良いんじゃないの。
0933デフォルトの名無しさん
2007/01/20(土) 13:36:55From1->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;
としています。
ポインタの宣言の仕方が悪いと思われるのですが、
問題解決できなくて困っています。
どなたか、お手柔らかに教えていただけないでしょうか。
0934デフォルトの名無しさん
2007/01/20(土) 13:43:38Unit1
#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();
}
0935デフォルトの名無しさん
2007/01/20(土) 21:58:14TApplicationでやってるように不可視のフォーム作ってそこから制御した方がいいんじゃないか?
ちょっとメモリ余計に食うけど。
0936デフォルトの名無しさん
2007/01/21(日) 00:35:33モジュールのロード、モジュールのアンロードが延々と表示されるんですが
とめる方法はないのですか?
0937デフォルトの名無しさん
2007/01/21(日) 01:11:24自己レスです
解決しました。ウイルスバスターの迷惑メールツールバーを無効にするで出来ました。
0938デフォルトの名無しさん
2007/01/21(日) 05:58:18DBGridで、指定した列を一番左に表示するにはどうしたらよいでしょうか?
ヘルプを見るとLeftColというのがそれにあたるっと思うんですが、
DBGrid1->LeftCol = i;
とするとコンパイルでエラーになってしまって・・
よろしくお願いいたします。
0939デフォルトの名無しさん
2007/01/21(日) 12:04:50DBGrid右クリック->カラムエディタ->すべての項目追加->カラムをマウスでD&Dして順番を移動
0940938
2007/01/21(日) 20:06:44すいません。説明不足でした。
もともとの順番は変えないで、表示位置だけ左端にもって行きたいのです。
たとえば項目「A,B,C,D,E,F」があった時に、今表示されている項目が「A,B,C」だったとします。
項目の一覧を表示してあるListBoxで「D」をクリックした場合、DBGridの表示を
「D,E,F」という風に「D」から表示したいんです。
さらにListBoxで「B」をクリックすると「B,C,D」と表示することになります。
こういうことは不可能でしょうか?
0941デフォルトの名無しさん
2007/01/23(火) 07:31:25if (SetCurrentDir("\\")) {
if (RemoveDir(E:\\AAAAA\\BBBB\\CCCCC)) {
ListBox1->Items->Add("D削除完了");
} else {
ListBox1->Items->Add("D削除失敗!!");
}
}
CCCCCはフォルダです。
としていますがフォルダの削除に失敗してしまいます。フォルダの中は空です。
どうして消せないのでしょう?
0942デフォルトの名無しさん
2007/01/23(火) 07:44:13if (RemoveDir("E:\\AAAAA\\BBBB\\CCCCC")) {
0943デフォルトの名無しさん
2007/01/23(火) 09:53:580944デフォルトの名無しさん
2007/01/23(火) 14:15:49::SetFileAttributes();
SysUtils::FileSetAttr();
0945933
2007/01/23(火) 15:13:35早速の返信ありがとうございました。
遅くなってすみませんでした。
Unit2のプログラムで
TForm2 *Form2
→宣言の構文エラー
__fastcall TForm2::TForm2(TComponent* Owner)
→型限定子 'TForm2'がクラス名または名前空間名ではない
というエラーが出てしまいました。
中のプログラムが間違っているのでしょうか。
たびたび申し訳ございません。
よろしくお願いします。
>>935
早速の返信ありがとうございます。
遅くなってしまいすみません。
メモリは重たくなっても構わないのですが不可視のフォーム作成法がわかりません。。。
もし、ご面倒でなければ、教えてください。
0946933
2007/01/24(水) 19:51:57自己レスです。
無事、解決しました。
皆々様に感謝です。
0947デフォルトの名無しさん
2007/01/26(金) 16:57:470948デフォルトの名無しさん
2007/01/26(金) 17:10:270949デフォルトの名無しさん
2007/01/26(金) 20:54:250950デフォルトの名無しさん
2007/01/27(土) 02:20:17同じログラムでも仕事で作るのと趣味で作るのとは違うんだな
仕事の方はやっぱりやりたくないよorz
0951デフォルトの名無しさん
2007/01/27(土) 20:49:49ReadString("セクション","キー","");で読み込んでAnsiString型の変数mojiに格納。
文字列の範囲を指定するためif (moji >= "1" && moji <= "100")に入れた時、
moji = ”0”や
moji = "d"はガードできるのですが
moji = "1d"をガードできません。
解る方、どうか教えて下さい。
0952デフォルトの名無しさん
2007/01/27(土) 20:52:40moji == "0"
moji == "d"
moji == "1d"ですた・・・。
0953デフォルトの名無しさん
2007/01/27(土) 21:33:56数字だけなら、一回数字に変換すればらくだが・・・
0954デフォルトの名無しさん
2007/01/27(土) 23:57:25どもです。
その通りで、数字だけ、文字だけならばどうにでもなるのですが・・・。
何故ダメだかはわかるのですが、ガードする方法は思い付けません。
0955デフォルトの名無しさん
2007/01/28(日) 00:18:49その数字の代償で比較するかな。
0956デフォルトの名無しさん
2007/01/28(日) 12:41:02ありがとうございます。strtol調べてみました。
第2引数は変換出来ない文字の格納先ですか。
ifでも使ってここの値に何かが入っていれば飛ばしてやればいいって事でしょうか?
0957デフォルトの名無しさん
2007/01/28(日) 21:34:38整数と判っているのであれば最初からTRegistryIniFile::ReadInteger()で読み込むのが楽だよ。
読み込み失敗時に返す第3引数に0でも指定してやっとけば範囲制限も簡単に解決できるんじゃないかな。
int n = Ini->ReadInteger( "Window", "Left", 0 ); // 整数として評価できない場合は0を返す
if( ( 1 <= n ) && ( n <= 100 ) ){〜
文字列として受け取らざるを得ない場合はAnsiString::ToIntDef()かAnsiString::ToInt()で
intに変換してから判断。(ToInt()は変換できないとき例外を投げる点に注意)
0958デフォルトの名無しさん
2007/01/29(月) 10:55:270959デフォルトの名無しさん
2007/01/29(月) 11:15:16Application->Minimize( );
でアイコン化した時に現在アイコン化されてるかどうかを識別する方法を教えてください
0960デフォルトの名無しさん
2007/01/29(月) 11:24:580961デフォルトの名無しさん
2007/01/29(月) 14:48:10使わない方がいいんですか?
0962デフォルトの名無しさん
2007/01/29(月) 17:07:07Delphi使いは、普通につかってるよ。
0963デフォルトの名無しさん
2007/01/29(月) 21:43:350964デフォルトの名無しさん
2007/01/29(月) 22:39:53C++Builder6を買いました。
初心者にお勧めのサイトを教えてください。m(_ _)m
0965デフォルトの名無しさん
2007/01/30(火) 06:15:46薄い方のマニュアルを、最初から順番にやっていくといいよ。
これが一番わかりやすかった。
0966デフォルトの名無しさん
2007/01/30(火) 11:18:18イベントハンドラにだらだらと実装書くのはやめましょう
0967デフォルトの名無しさん
2007/01/30(火) 19:50:57じゃあどうすれば?
0968デフォルトの名無しさん
2007/01/30(火) 22:10:25必要な情報だけコントロールから取り出して、本処理は
別のルーチンに整理するのが吉。
つーか最近、保守契約が切れた外注のプログラムをデバッグする機会が
あったんだが、ソースをのぞいたら不可視のコントロールを変数代わりに
使ってて死ぬほどウザかった。
リストビューをコレクション代わりに使ってたり。
職業プログラマってこんなもんなのか?
0969デフォルトの名無しさん
2007/01/30(火) 22:13:25ほんとにコード書ける奴は一握り
0970デフォルトの名無しさん
2007/01/31(水) 00:23:39そんな人ばっかりではないけど。
普通は、しないんだから。
0971デフォルトの名無しさん
2007/01/31(水) 00:34:21ビューとモデル、果てはデータまでいっしょくたに書けちゃうしなあ
0972デフォルトの名無しさん
2007/01/31(水) 00:36:25分離するためのデータモジュールとTAction〜コンポーネント
0973デフォルトの名無しさん
2007/01/31(水) 05:34:040974デフォルトの名無しさん
2007/01/31(水) 06:18:330975974
2007/01/31(水) 06:19:160976デフォルトの名無しさん
2007/01/31(水) 07:03:39ま、似たようなもんです。
Clipboard(void) で TClipboardオブジェクトを取得して操作、が
普通だよね。
0977デフォルトの名無しさん
2007/01/31(水) 10:54:17ですが、実行時にブレークできません。
ブレークポイント設定はしているのですが、何故か赤丸の中に
バツがあるアイコンが出ます。
ヘルプではコメント,空白行,不正な宣言位置への設定だと書か
れていますが、そのような行への設定ではないのですが。。
ブレークポイント設定できない理由をご存知の方、いらっしゃいますか?
0978デフォルトの名無しさん
2007/01/31(水) 11:17:17バージョンくらいかけぼけが
ぷろじぇくとおぷしょんこんぱいら
0979デフォルトの名無しさん
2007/01/31(水) 11:41:41プロジェクト→オプションを見ましたが、バージョン情報
載ってないです。
ヘルプ→バージョン情報は以下でした。
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.
0980デフォルトの名無しさん
2007/01/31(水) 11:53:31そのソース内、どこでもブレークきかない?
0981デフォルトの名無しさん
2007/01/31(水) 11:55:590982デフォルトの名無しさん
2007/01/31(水) 11:58:51はい、どこでもダメです。C++,Cどちらにはってもブレークしてくれません。
>>981
ビルド設定はデバッグ・ビルドになっています。
0983デフォルトの名無しさん
2007/01/31(水) 23:34:20FindFirst,FindNextで、数えていくのがよいのでしょうか。
0984デフォルトの名無しさん
2007/01/31(水) 23:35:50FileListBox 使うと楽だったりする。
0985デフォルトの名無しさん
2007/02/01(木) 02:47:44D言語のリファレンス訳書いている人んところですね。
0986デフォルトの名無しさん
2007/02/01(木) 02:48:16誤爆 orz
0987デフォルトの名無しさん
2007/02/01(木) 06:14:26FileListBox使ったこと無いですが勉強します。
レスありがとうございました。
0988デフォルトの名無しさん
2007/02/01(木) 10:36:51>>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使わずにカウンタでインクリメントしてけばいいだけ
0989デフォルトの名無しさん
2007/02/02(金) 05:24:18「Linuxとのクロスプラットフォーム開発を実現する、
CLX(Component Library for Cross platform)のWindows版も収録。」
っていうのは、どういうことなんでしょうか?
・CLXを使って書いたコードを、builder6でコンパイルしてできた実行ファイル
・CLXのライブラリを使えるようにしたlinuxのパソコンに
コードを持ってきて、それをコンパイルした実行ファイル
が同じ動きするということでしょうか?
linuxのビジュアル開発ができるんだったらすごいです。
0990デフォルトの名無しさん
2007/02/02(金) 09:39:41後者。
Kylix(Linux用Delphi/BCB)でビルドすればLinux上で動作可能。
まあ、現実にはPCの性能が上がったこともあってJava使った方gゲフンゲフン
0991デフォルトの名無しさん
2007/02/02(金) 12:12:40レスありがとうございます。
Kylix Open Edition2ベクターから、ゲットしました。
ユーザー登録しないといけないみたいですが、
試用許諾コードってもう入手できないでしょうか。
インストール解説してるページ見つけて、
”このページからアンケートなどに答えて取得して”ということで飛ぶと、
HP見てももうサポートしてないってページが表示されます。
ふんむー。
0992デフォルトの名無しさん
2007/02/02(金) 13:28:40それ以前に、Borland製品の場合、規約で中古ではいかなるライセンスも認めていないから、
商用はもちろん、フリーウェア配布にも使えないよそれ。
0993デフォルトの名無しさん
2007/02/02(金) 14:05:330994デフォルトの名無しさん
2007/02/02(金) 14:12:10コンポーネントのインストールでエラーでます。
再インストールしてもこのエラー消えませんが、どうしたら良いですか?
0995デフォルトの名無しさん
2007/02/02(金) 15:16:090996デフォルトの名無しさん
2007/02/02(金) 20:02:57そんなの言わなければばれないよ
0997デフォルトの名無しさん
2007/02/02(金) 21:24:41Item = ListView1->Items->Insert(n);
単に追加ならAddで。
0998デフォルトの名無しさん
2007/02/02(金) 23:37:44シッーーーーー!!!
0999デフォルトの名無しさん
2007/02/03(土) 00:26:29とかいう間に>>999ゲット
1000デフォルトの名無しさん
2007/02/03(土) 00:27:10>>989は、製品版の新品を買うこと。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。