- 1 名前:デフォルトの名無しさん [2006/11/08(水) 02:01:27 ]
- C++Builderに関する質問・回答や議論等を行う相談室スレッド。
【前スレ】 C++Builder相談室 Part16 pc8.2ch.net/test/read.cgi/tech/1138766165/l50 過去スレ・関連サイトは>>2-7あたり。 ※Borland C++ Compiler 5.5.1についての質問は以下のスレへ タダで使えるBorland C++ Part4 pc8.2ch.net/test/read.cgi/tech/1091066805/l50 ※BDS(Borland Developer Studio)の総合スレはこちら Borland Developer Studio 2006 No.10 pc8.2ch.net/test/read.cgi/tech/1162262669/l50
- 76 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 17:22:14 ]
- >75
とりあえずDelphiだけど、文法の違いだけ気にしてみれば参考になると思う。 ttp://dn.codegear.com/article/34011
- 77 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 18:26:02 ]
- くだすれは次は立てんの??
- 78 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 10:20:49 ]
- >75
もうやっちゃったかもしれないけど、>76をBCBに書き直したソース void __fastcall TfrmMain::pbxDrawMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if ( GetKeyState(VK_LBUTTON) < 0 ){ pbxDraw->Canvas->Pen->Mode = pmCopy; pbxDraw->Canvas->Pen->Width = 5; pbxDraw->Canvas->Pen->Color = clBlack; pbxDraw->Canvas->MoveTo(preX, preY); pbxDraw->Canvas->LineTo(X, Y); bmpBuf->Canvas->Pen->Mode = pmCopy; bmpBuf->Canvas->Pen->Width = 5; bmpBuf->Canvas->Pen->Color = clBlack; bmpBuf->Canvas->MoveTo(preX, preY); bmpBuf->Canvas->LineTo(X, Y); } preX = X; preY = Y; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormCreate(TObject *Sender) { bmpBuf = NULL; bmpBuf = new Graphics::TBitmap; bmpBuf->PixelFormat = pf32bit; bmpBuf->SetSize(640,480); preX = -1; preY = -1; }
- 79 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 10:23:30 ]
- つづき DelphiのAssignedに対応する関数が分かんなかったのでちょっと変えてある
void __fastcall TfrmMain::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if ( GetKeyState(VK_LBUTTON) < 0 ){ pbxDrawMouseMove(Sender, Shift, X, Y); } } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormDestroy(TObject *Sender) { if ( bmpBuf ){ // objectがあればtrue bmpBuf->FreeImage(); delete ( bmpBuf ); } ReportMemoryLeaksOnShutdown = True; } //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormPaint(TObject *Sender) { pbxDraw->Canvas->CopyMode = cmSrcCopy; pbxDraw->Canvas->Draw(0,0,bmpBuf); }
- 80 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 10:25:16 ]
- ヘッダ
class TfrmMain : public TForm { __published:// IDE 管理のコンポーネント TScrollBox *sbxDraw; TPaintBox *pbxDraw; TXPManifest *XPManifest1; void __fastcall pbxDrawMouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall FormCreate(TObject *Sender); void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall FormDestroy(TObject *Sender); void __fastcall FormPaint(TObject *Sender); private:// ユーザー宣言 int preX; int preY; Graphics::TBitmap *bmpBuf; public:// ユーザー宣言 __fastcall TfrmMain(TComponent* Owner); };
- 81 名前:デフォルトの名無しさん [2007/02/04(日) 13:41:52 ]
- listboxでリストのインデックスが範囲を超えていますとでます
itemsの数が少ないときは出ないんだけど 20とかになるとでる なんですか あとエラーの時にでる数字はなんですか
- 82 名前:デフォルトの名無しさん [2007/02/04(日) 15:09:33 ]
- 愚問ですみません、winsock2でUDPソケット通信プログラムを作つて問題なく動作しますが
EditでIPアドレスとポート番号を変更できるようにしたいのですが、ポート番号は簡単に できましたが、IPアドレスの方が参考書どうりでも変更できなくて困っています。 何か参考になる、方法があれば教えてください。 iniファイルか読んでもいいのですが、BCB5 PRO で作っています。
- 83 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 15:37:26 ]
- >82
もうちょっと具体的に。
- 84 名前:デフォルトの名無しさん [2007/02/04(日) 17:00:47 ]
- >>83
説明不足ですいません。 addr.sin_port = htons(Edit1->Text.ToInt()); //ポート番号はEdit1 にて変更できてる addr.sin_addr.S_un.S_addr = inet_addr("192.168.1.50"); //IPアドレス 192.168.1.50 をEdit2 で変更できるようにしたい
- 85 名前:こなきじじい mailto:sage [2007/02/04(日) 17:07:02 ]
- 具体的すぎるわ
このアドレスにアクセスが殺到するぞい
- 86 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 17:15:58 ]
- >>84
ネットワークは門外漢なんだが、その例で動くんなら inet_addr(Edit2->Text.c_str());じゃできないかい?
- 87 名前:デフォルトの名無しさん [2007/02/04(日) 18:18:43 ]
- >>86
ありがとう、解決しました。
- 88 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 00:15:53 ]
- BCB初心者です。5.0を利用しています
Delphi用コンポーネント「EmbeddedWebBrowser」 (ttp://www.bsalsa.com/downloads.html) をBCBから利用したく、ダウンロードしてきました ttp://www.bsalsa.com/ewb_install_d5_d7.html にDelphiへのインストール方法が載っていたので、同じようにBCBに インストールしようと思いましたが、うまくいきません 具体的には、「dpk」ファイルを開いた後、どうしていいものかわか らなくなってしまいました 日本語、英語サイト共に色々あたってみたのですが、このコンポー ネントの情報はほとんどなく、途方にくれています わかる方がいらっしゃいましたら教えてください。
- 89 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 01:02:14 ]
- >>85
192.168.0.0/16はローカルアドレス
- 90 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 08:11:08 ]
- >>84
それ私のPCのIPアドレスです! 勝手に使わないでください><
- 91 名前:デフォルトの名無しさん [2007/02/05(月) 15:35:37 ]
- アクセスのデータベース検索で日付/時刻形式の検索方法がわからないのですが
教えていただけないでしょうか? Variant vDAO; Variant vDB; Variant vRS; AnsiString strSql; AnsiString str = DBOpenDialog->FileName; vDAO = Variant::CreateObject("DAO.DBEngine.36"); vDB = vDAO.Exec(Function("OpenDatabase") << str); strSql = "SELECT * FROM テストテーブル"; vRS = vDB.Exec(Function("Openrecordset") << strSql << dbOpenDynaset); vRS.Exec(Function("FindFirst") << buffer); //このbufferに検索条件を入れています while(!vRS.Exec(PropertyGet("NoMatch"))){ //検索結果に対する処理 vRS.Exec(Function("FindNext") << buffer); } vRS.Exec(Procedure("Close")); vDB.Exec(Procedure("Close"));
- 92 名前:デフォルトの名無しさん [2007/02/05(月) 15:47:10 ]
- グローバルIPアドレスとローカルIPアドレスを理解してますか?
- 93 名前:75 [2007/02/05(月) 15:51:34 ]
- >>76
参考になるURL教えていただき、ありがとうございました。 >>78,79,80 お忙しい中、BCBに直していただき、ありがとうございました。 さっそく、教えていただいたプログラムを参考に、自分の作っているプログラムにあてはめてみました。 多少、自分で作ったモノが悪く、エラーが出てしまいましたが、解決に向けて修正をしています。 本当に、ありがとうございました。
- 94 名前:デフォルトの名無しさん mailto:sage 有名なネタでしょ? [2007/02/05(月) 22:46:44 ]
- おかしいなぁ。そのIPアドレスはうちで使っているはずなんだけど…。
すいませんけど使わないでもらえませんかね?
- 95 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 03:18:43 ]
- つまらない
- 96 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 13:12:01 ]
- なら面白くすればいい
- 97 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 08:06:08 ]
- ファイルの選択は、OpenDialogですが、
フォルダの選択ができる部品ってないでしょうか。
- 98 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 11:09:23 ]
- >>81
抽象的過ぎて分からんがforとか使ってるなら for(int i = ListBox1->Items->Count; i >= 0; i--) として、後ろから参照する
- 99 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 11:27:18 ]
- スマン..Count - 1だったな
- 100 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 20:27:20 ]
- >>97
SelectDirectory
- 101 名前:デフォルトの名無しさん [2007/02/07(水) 23:39:03 ]
- vista で Builder5 を使ってるんだけど、いくつかトラブルあるね。
1.デバッグサービスがインストールされない。 regsvr32.exe bordbk51.dll で解決 2.OpenDialog がバグる? OpenDialog でファイル名を拾って OpenDialog->FileName の値を見ると、 変な文字が入っていることがある。再現性は低いけど、2割ぐらいの確立で起きる。 3.フォームのレイアウトが崩れる これは俺の組み方が悪いのかもしれないけど、ボタンとかが隠れちゃうことがある。 って感じ。解決法とかあればお願い。
- 102 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 00:04:48 ]
- vistaを窓から投げ捨てろ
- 103 名前:デフォルトの名無しさん [2007/02/08(木) 10:21:48 ]
- charで受け取ったコードをTColorへ移したいと思ってまして、
StringToColor関数を使ってみているのですけど、 「EConbertErrorクラスの例外を生成しました」 というメッセージが出てうまくいきません。 charで受け取ってる文字列は「#000000」みたいなものなんですけど、、 私のやり方がまずいのでしょうか?
- 104 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 10:41:55 ]
- >>103
リファレンス嫁 VCL定数の文字列表現かStrToIntで変換できるunsigned longの文字列表現
- 105 名前:デフォルトの名無しさん [2007/02/08(木) 11:29:53 ]
- >>104
そのように言われても、いまいちやり方がわからないのですけど・・ できればもうちょっと分かりやすく説明お願いします
- 106 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 11:31:55 ]
- >>105
"clBlack"とか"0xFF00FF00"。
- 107 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 11:41:41 ]
- >>105
int i; AnsiString s; s = "#000000"; i = ("0x" + s.SubString(2, 6)).ToInt(); Form1->Canvas->Pen->Color = TColor(i); Form1->Canvas->Brush->Color = TColor(i); こんな感じで逝けるのでは?
- 108 名前:デフォルトの名無しさん [2007/02/08(木) 12:17:20 ]
- >>107
あっ すみません intの変数じゃなくてTColorの変数へ返したいのですけど
- 109 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 12:56:08 ]
- しまった。
オーダーがRGBかBGRかによって処理がまた変わってくるんだった。 RGBオーダーの場合は2文字ずつ切って値を移動させないと・・・ >>108 TColor型変数への代入だったら単に TColor tcHogehoge = TColor(i); でよいのでは。
- 110 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 14:08:33 ]
- >>108
TColorは、 type TColor = -$7FFFFFFF-1..$7FFFFFFF; で定義されているから、整数型変数だ。 ソースなりマニュアルなりよく嫁。
- 111 名前:デフォルトの名無しさん [2007/02/08(木) 16:14:32 ]
- 実行時に、ボタンを押すと動的配列を使って、memoオブジェクトを数個ずらりと生成する
方法を教えてください。 void __fastcall TForm1::Button1Click(TObject *Sender) { int i = 1; while( i < 6 ) { TMemo * aMemo = new TMemo(Form1); aMemo -> Parent = Form1; aMemo -> SetBounds( 30 + i * 100 , 30, 100 , 100 ); i++; } } 上記のコードでも5個ずらりと並ぶのだがちょっと使えない void __fastcall TForm1::Button1Click(TObject *Sender) { int i = 1; while( i < 6 ) { TMemo * aMemo = new TMemo(Form1)[10]; aMemo[i] -> Parent = Form1; aMemo[i] -> SetBounds( 30 + i * 100 , 30, 100 , 100 ); i++; } } このコードも「Cannot convert 'type1' to 'type2' コンパイラメッセージ」 こんなこと言われるし 型キャストの方法 ? 誰か教えて
- 112 名前:デフォルトの名無しさん [2007/02/08(木) 17:22:28 ]
- >>111
何がしたいのかサッパリわからんけど TMemo * aMemo[10]; //大域変数 void __fastcall TForm1::Button1Click(TObject *Sender) { int i = 1; while( i < 6 ) { aMemo[i] = new TMemo(Form1); aMemo[i] -> Parent = Form1; aMemo[i] -> SetBounds( 30 + i * 100 , 30, 100 , 100 ); i++; } } こんなんじゃダメ?
- 113 名前:111 [2007/02/08(木) 18:18:13 ]
- 112さん
ありがとう!
- 114 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 02:08:48 ]
- >>100
SelectDirectory ですか。 お礼遅れました。 ありがとうございました。
- 115 名前:デフォルトの名無しさん [2007/02/09(金) 12:12:50 ]
- QuickReportを使った印刷について教えてください。
クリップボードから画像をTQRImage上に貼り付けて それを印刷する、ということをしているのですが、 Previewでは正しく画像が表示されているにもかかわらず 実際に紙に印刷すると真っ黒に塗りつぶされて 出力されてしまいます。 何か情報をお持ちの方、教えてください。 環境は C++ Builder 5 (Update済み) + Win XP SP2、 プリンタはHP Officejet 7210です。
- 116 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 12:22:27 ]
- ヒント:画像減色
- 117 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 16:14:44 ]
- >>116
ありがとうございます。 確かに PixelFormat が pfDevice になっていたので pf24bit に変更したところ、今のところうまくいくようになりました。 ただ、以前の状態でも何回かはうまくいくけどときどき 真っ黒になる、という感じだったのでもう少し様子を見てみます。
- 118 名前:デフォルトの名無しさん [2007/02/09(金) 19:52:23 ]
- TClientSocketについて質問があります。
TClientSocketでローカルポートを設定できなくて困っています。 ヘルプを見ると 『クライアントソケットは任意のローカルなポート番号を使います。ほかのソケットがクライアントソケットを見つけ出す必要はないからです。』 とあり設定できそうにありません。 どうにかローカルポートを設定できないものでしょうか?
- 119 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 02:12:39 ]
- VCLとSTLを混ぜない方がいいのかな。
std::list<AnsiString> とかダメ?
- 120 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 05:24:48 ]
- BDS2006です。
CodeGuardを使うと、fstreamファイル内で「関数に不正なファイルストリームが渡された」とでたり、 (fopenではなく)_wfopenで開いたファイルに対して、feofなどを行っても、同じエラーがでます。 CodeGuardをOFFにした際の動作は、期待通りのものであるんですが、 なぜこのようなエラーメッセージがでるのでしょうか。(自分が間違ってる可能性が高いですか?
- 121 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 01:23:03 ]
- BCB6 を使っています。
TComboBox の ->Style が csDropDown で、 ->Items が "abcde" で、 ->Text が "ab" にして実行した時に、 ▽ をクリックすると "ab" が自動的に "abcde" になりますが、 この時 OnChange が無反応です。反応したいです。 日本語でおk
- 122 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 19:58:41 ]
- BCB6でメニューを使ってMDI子フォームを表示させるのに、
Sample = new TSample(Application); としてるんだけど、なぜかnewでエラーになります・・・ フォームは自動対象から外していて、数あるメニューの 中でも、これ1つだけが突然エラーになってしまいました。 どの辺りから手をつければいいのやら・・・
- 123 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 20:18:20 ]
- >>122
なんで引数がTApplicationなんだ。 MDI Childなら普通親はMDIフレームだろ。
- 124 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 09:19:24 ]
- >>122
どんなエラーが出たか書きなさいって、お母さんいつも言ってるでしょ。
- 125 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 12:44:31 ]
- >>124
エラーは一般保護違反です。 アドレス****の****に対する書き込みがどうの・・っていう。
- 126 名前:122 mailto:sage [2007/02/15(木) 14:37:55 ]
- 大きく勘違いしてて、それに気づくのが遅かっただけですた。
レスくれたひとサンクス
- 127 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 02:35:42 ]
- TCppWebBrowserで縁を出さないようにするにはどうすればよいでしょうか?
webを読み込んでいない状態だとでないのですが、 読み込むとでてきてしまいます。 フォームなどの BorderStyle = bsNone 的なのをやりたいです。 if(CppWebBrowser1->Document){ IHTMLDocument2 *doc = NULL; CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (void **)&doc); if(doc){ IHTMLElement *elem = NULL; doc->get_body(&elem); if(elem){ IHTMLStyle *style; elem->get_style(&style); if(style){ style->put_border(TVariant(0)); } } } } とやってみましたが、全然でした。
- 128 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 19:52:14 ]
- Alt+Tabしたときのリストに表示されないようにするにはどうすればよいでしょうか?
- 129 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 15:58:20 ]
- ボタンをクリックしたところでフォームを表示させたいのですが
ボタンなどにどのようなソースを書けばいいのでしょうか?
- 130 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 16:06:20 ]
- TForm2 *Form2 = new TForm2(this);
try { Form2->init( /*必要なパラメタ。但しTForm2にinitメソッドを作っておく事!*/); Form2->ShowModal(); } __finally { delete Form2; }
- 131 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 17:03:29 ]
- >>130
うまくいきました。ありがとうございます
- 132 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 01:06:25 ]
- こういうのじゃ駄目だったっけ?
Form2=new TForm2(this); if(Form2->ShowModal()==mrOk){ //ごにょごにょ } delete Form2;
- 133 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 01:24:44 ]
- DelphiR 2007 for Win32 が発表されましたが、これのC++版 (C++Builder 2007 ??) は出るのかなぁ
誰か詳しい事情、知ってる人いる?
- 134 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 08:41:45 ]
- >>132
//ごにょごにょ があるんなら、そういうときこそtry __finallyで囲むべき。
- 135 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 11:15:05 ]
- >133
それが出たらぜひ買いたい。 出るといいなぁ。。
- 136 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 11:31:01 ]
- DelとBCBが分かれてくれたのは良いんだけど、
AJAXがEnt版だけなので、Del.EntとBCB.Entを揃えるのはきつい。 というか、買えんだろうな。 Pro版は両方揃えてまつ。
- 137 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 01:05:21 ]
- >>133
出ません
- 138 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 01:52:54 ]
- えええーーー!!
CodeGearはC++を切り捨てるつもりか! 対して手間でもないだろうに、C++を付けろ!
- 139 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 02:08:36 ]
- >>133
C++ Builder 2007も数か月内に出る。 Highlanderよりも早い時期。 >>136 スタンダードサポートに入ればおkじゃねえか? それかHighlanderまで待てば全部入りだし。
- 140 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 03:28:45 ]
- BDS2006からHighlanderへの優待コースはあるのでしょうか?
- 141 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 17:14:14 ]
- 当然あるだろ
- 142 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 17:51:04 ]
- AC版でも、ですか?
- 143 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 21:26:41 ]
- アカデミック版のこと?
買ったことないから知らない。 BDS2006の時にアップグレード価格で購入できたのなら、今回も同じじゃないのか?
- 144 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 21:44:29 ]
- アップグレードの時は、AC版も通常版と同じ値段で通常版にアップグレードできる。
- 145 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 08:52:51 ]
- >>139
それ、AJAX付き?
- 146 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 21:45:30 ]
- まだ情報が出てない。
- 147 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 08:59:31 ]
- TListView の HideSelection 的なことを TStringGrid でやりたいのですが
どうしたらいいのでしょうか? Delphiでそれらしきものを見つけたのですがナニがナニやら・・・ ttp://forum.nifty.com/fdelphi/samples/00600.html
- 148 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 23:32:04 ]
- >147
そのサンプルはDelphi上でTStringGridを継承した新しいコンポーネントを作るというもの。 それで問題なければ新規ユニット(.pas)をそのままサンプルのとおりに作ってパッケージに組み込めばいい。
- 149 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 01:21:23 ]
- TStringGridって基本的にアレだから使いたくない
|

|