くだすれ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
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オブジェクトツリー上でドラッグ
■ このスレッドは過去ログ倉庫に格納されています