くだすれC++Builder(超初心者用)その2
■ このスレッドは過去ログ倉庫に格納されています
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
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は関係ないだろ。
読解力の無いアホめ。
■ このスレッドは過去ログ倉庫に格納されています