1 :
デフォルトの名無しさん :
2005/05/28(土) 05:24:24
2 :
◆2getr4TXt6 :2005/05/28(土) 05:52:09
2get
TMediaPlayerではmp3はサポートしていないのでしょうか? ファイルにmp3ファイルを指定したのですが再生できません。
4 :
デフォルトの名無しさん :2005/05/29(日) 16:18:38
例外をデバッガで捕捉したくないのですが、どうしたらよいのでしょうか?
ユーザー少ないのに、こんなスレ要るか?
>>3 してない。
>>4 [デバッガオプション]-[言語固有の例外]-[統合開発環境を使う]をクリア。
6 :
4 :2005/05/30(月) 11:24:56
7 :
デフォルトの名無しさん :2005/05/30(月) 13:14:53
どなたかBCB6でTCppWebBrowser使ってるかたいます? このコンポーネントでページを表示させると、ページ上の文字を コピーしてもバッファに入らないみたいなのです。同じページを IEで表示したら問題ありません。 それからtextareaで改行が入力できないという不可解な現象も あります。 このあたりどなたかご存じないでしょうか?
FAQだな OleInitializeでぐぐれ
9 :
(7) :2005/05/30(月) 13:55:35
ありがとうございます。おまじないが必要だったんですね・・・ コピーはできるようになりましたが、改行が入らないのは変わりません。 javascriptでonkeydownイベントをつかまえてみましたが、ちゃんとenter キーはブラウザに渡っているようなのですが・・・・・・・
11 :
(7) :2005/05/30(月) 16:50:39
>10 どもども。実はそのページは自分でみつけたんですが、ちょっとBCBへ トランスレートできそうになかったのです。 で,いろいろやってみてhtmlのほうを修正して回避する方法をみつけました。 今回は特定のページが表示できればよかったのでとりあえず・・・ しかしみんな困ってないのかなぁ。BCBでブラウザ作るやつなんて居ない ってことか・・・
そらBCBに移せなさそうなところが見当たらんから、誰も困らんと思うぞ。
BCB6のトライアル版を入れてみたんですが、 ヘルプが英語で読めません・・・orz 日本語に変換ってどうやるんですか?
日本語のヘルプって入ってないのかなぁ・・・('・ω・`)
16 :
デフォルトの名無しさん :2005/06/02(木) 10:33:13
Windowsのエクスプローラみたいなフォルダのツリー表示を行いたいのですが、 TTreeViewで自力で書くしかないのでしょうか? こんぽーねんとはないのでしゅか?
BCBって見た目はDelphiと似てるけどコンパイルは遅い?
遅い。
じゃあDelphiよりもBCBを選ぶ理由はC/C++の資源利用と慣れくらいのもの? 出来上がった実行ファイルの速さは同程度だよね?
そう。実行ファイルは同じ。
STLが無いのは困る
基本的には、Delphiのコンパイル速度を取るか、C/C++の資産(含慣れ)を取るかの違いしかないのだが ちょっと注意しておきたいのが、BCBだとAnsiStringが組み込み型ではない、 つまり静的なAnsiStringを作れないこと。 もちろんこれはstd::string等にもあてはまるのだが。 例えばForm1->Caption = "あいうえお";のような単純なソースだけでも コンパイラは一時オブジェクトのコンストラクタ/デストラクタに加え 例外処理コードも追加される。 (対するDelphiのコードは、ただアドレスを引数にして呼び出すだけ) こういうのが積み重なった結果、速度は遅くなり実行ファイルは巨大になる。 UI部分だけでなく、DB系やらIndyやらでも基本はAnsiStringだから ロジック部分以外の占める割合が大きい場合、Delphiの方が利点が多くなる。 まあ俺はC/C++しか書けないから関係無いが。
実行ファイルはDelphiの方が大きくなるものだと根拠なく思い込んでたよ。 BCBの方が若干分が悪いのね。 私はDelphi使いなんだけどBCB6 Star Teamの優待販売にちょっと気持ちが揺れたんだな。
インライン展開がある分BCBのほうが大きくなりそう。templateとか展開されまくるし。 その分速度はアドバンテージあるだろうけど。
どちらかと言うとファイルサイズよりも実行速度の方が重要だと思う。 Delphiも2005からはインライン展開できるんだっけ。
Delphi進化しとるな BCBいつまで6なんだ
BCBは6で終わりじゃなかった?次からはDelphiに統合されるはず。 で、Delphiはと言うと素直に進化と呼んで良いものか悩ましい。 4-6くらいが一番バランス良いと思う。
28 :
デフォルトの名無しさん :2005/06/03(金) 00:20:56
30 :
本田 :2005/06/03(金) 05:00:36
31 :
本田 :2005/06/03(金) 05:14:54
33 :
デフォルトの名無しさん :2005/06/03(金) 23:27:58
C99には対応していますか?
34 :
& ◆atpr8p5IFs :2005/06/04(土) 05:55:34
>>33 > C99には対応していますか?
未対応。
35 :
& ◆po73KQOmZk :2005/06/04(土) 05:58:03
36 :
本田 :2005/06/04(土) 05:59:22
>>33 かろうじて、long long intだけはある。
Visual C++のプロジェクトもコンパイルできるのでしょうか? MFCは使用できますか?
39 :
& ◆FC4h7F/wV6 :2005/06/05(日) 00:50:00
>>38 >Visual C++のプロジェクトもコンパイルできるのでしょうか?
VCプロジェクトをBCBに変換する機能はある、だだし不完全。
>MFCは使用できますか?
Professonalバージョンには付いてる。
40 :
デフォルトの名無しさん :2005/06/05(日) 17:21:22
BEGIN_MESSAGE_MAPのところで switchを含む関数はインライン展開できないというウォーニングが出るのですが、 どのような構文にすればよいのでしょうか?
そりゃ警告ちゅうかお知らせって感じだから気にするもんじゃないよ、無視汁。警告が邪魔なら #pragma warn -inl で消せる。 でもあんな汚いマクロを置くぐらいなら、自分でDispatchやWndProcを書いたほうがいいと思うのは俺だけすかそうすか。
>>41 やっぱり
BEGIN_MESSAGE_MAP
は使わない方がよいのでしょうか?
もっと汚くない他のやり方を教えていただけないでしょうか?
>>42 いや使わないほうがいいという事じゃなくて、激しく好みの問題。
あのマクロのおかげで行数が減って綺麗になったなぁと感じる人もいるかもしれない。
でメッセージに反応するのはWndProcをオーバーライドするだけす
void __fastcall TForm1::WndProc(TMessage& message)
{
switch (message.Msg) {
case WM_〜
:
case WM_〜
:
}
TForm::WndProc(message);
}
44 :
デフォルトの名無しさん :2005/06/06(月) 07:43:51
メッセンジャーがインストール出来ません。どなたか教えてください<(__)>
BEGIN_MESSAGE_MAP はボーランドのtipsのページにもありますが、なんで、ウォーニングが出るようなものを使っているのでしょう?
気にする必要0な警告だから。
switch使わなければ(例えばifで置き換えれば)展開されるかもしれませんよって言うアドバイスみたいなもんだ。
48 :
デフォルトの名無しさん :2005/06/07(火) 15:08:45
OnKeyUpやOnKeyDownにコードを書いて、処理しているのですが、 キーを押しっぱなしの時、入力を連続して受け付けたい場合どこにどのようなコードを描けばよいのでしょうか?
49 :
デフォルトの名無しさん :2005/06/07(火) 23:20:18
こんばんは、よろしくお願いします。 関数の本文の前にconst をつけるわけを教えていただきたいのですが、 int get_c() const{return cc}; このような文をよく見かけますが、 何を変更できないようにしているのでしょか。
50 :
デフォルトの名無しさん :2005/06/07(火) 23:32:12
>>49 です
ネットを検索していると、詳しく説明してあるところを見つけたので、
読んでみます。すみませんでした。
>>48 推しっぱなしだとオートリピート機能があるから
OnKeyDownが何度も呼ばれるんじゃないの?
>>48 最初のOnKeyDownイベントが来たらフラグをONにして
OnKeyUpが来たらフラグをOFFにするような仕組みをつくる
で、TApplication::OnIdle のイベントハンドラの中で上記のフラグを
見張っておいて、フラグがONの時にのみキー押下時の処理をする
というのはどう?
53 :
困った :2005/06/08(水) 20:56:38
はじめまして。ここで質問してよいのやら分からないのですが、 C++Builder6のデータベースデスクトップでInterBase(バージョン7) のテーブルを作成しようとしています。 テーブルの新規作成でInterBaseを指定してLONG型などはテーブル作成 できるのですがDATE型で作成しようとすると「テーブル作成要求が無効です」 というエラーがでるのですがDATE型は作成できないのでしょうか。 ヘルプによれば、できるように書いてありました。 どなたかよろしくお願い致します。
54 :
デフォルトの名無しさん :2005/06/11(土) 15:35:26
isqlやibconsoleでスクリプトから作成した方が良いと思うぞ。 それからDBに関してはinterbaseスレやfirebirdスレ(DB板)の方が レス付き易いと思うぞ。
ついでなんで、Date型に関してはdiarectの設定で挙動が変わってくるから気をつけて。
コンポーネントをインストールしてもパレットに追加されません。 どうすればいいですか?
58 :
デフォルトの名無しさん :2005/06/17(金) 06:57:47
Indyを使えばMD5は簡単に求まることがわかったのですが、 Secure Hash Algorithmを使いたい場合、何かよい方法はないでしょうか?
>>56 どういうコンポをどういう手順でインストールしたらどうなった、を書いたら誰かアドバイスしてくれかも。
>>58 MD5にしてもSHAにしてもRFCにサンプルコードが載ってるから、そのまま使えばいいんでねーの?
60 :
デフォルトの名無しさん :2005/06/23(木) 16:52:37
TPanelでIEでのHoverの様な振る舞い(つまり、マウスがコントロール内に入ったり出たりするときに反応したい)を実装するにはどのようにしたらよいのでしょうか? 入る動作はOnMouseMove内に書けば良さそうなのですが、出るときに反応する方法がわかりません。 より具体的にはJavaScriptで言うところのonMouseEnterとOnMouseLeaveイベントを実装したいのです。
>>60 Win32APIのGetCursorPos()でマウスカーソル座標見張って
パネルの占める位置と常に比較すれば?
>>60 TPanelを囲んでるコントロールのOnMouseMoveで見張るとか。
TPanelからマウスカーソルが外へ出れば、TPanelを置いてあるTFormとかに
マウスイベントが来るでしょ
出入りするときは、CM_MOUSEENTER/CM_MOUSELEAVE つーメッセージが来るけどね。 場合によって来ないケースがあったような気がしなくもない。
>>60 APIのGetCapture()で返り値がパネルのHandleのときが
マウスカーソルがパネル上にあると判断すればいいのではないでしょか?
65 :
デフォルトの名無しさん :2005/06/26(日) 03:17:53
ダブルクリック時にシングルクリックを動作させない方法を教えてください
>>65 シングルクリックのあとダブルクリックイベントが来るまでの時間
何もしないようにすればいい、ダブルクリックイベントが結局こなかったら
シングルクリックの動作を行えばいい
これだとシングルクリック時の動作開始が遅れることになるが
67 :
デフォルトの名無しさん :2005/07/09(土) 02:58:43
国際化対応尾アプリケーションを作るためにリソースDLLウィザードで 英語と日本語を選択し、ウィザードを最後まですすめ、完了したのですが、 ここから、どうやって英語版のフォームを表示するのかがわかりません。 どなたか教えていただけないでしょうか? それから、英語版Windowsに作成したプログラムを持って行けば、 自動的に英語版のフォームが選択されるのでしょうか? それとも手動で選択してやる必要があるのでしょうか?
68 :
デフォルトの名無しさん :2005/07/09(土) 16:32:18
BDEを使って、ODBC経由で空のデータベースを作成する ことは可能でしょうか?? 現在使用しているのはAccessのDriverです。 ADOとかでできるようなのですが、Builderで取り込むときに TTableあたりと名前がぶつかってだめでした。 できないようであれば他の方法を考えますが、ご存知の方が おられれば後教授お願いいたします。
69 :
age :2005/07/09(土) 18:01:27
>英語版のフォームを表示 C++Builder6に限った話ですが、この部分の機能に不具合があって、そもそも表示できなかったかも。
70 :
レイナ :2005/07/12(火) 23:44:07
Formに貼ったPanelを起動中にドラッグして動かせるようにするにはどうしたらいいですか?教えてくださいm(__)m
起動中は難しいかも。実行時なら簡単
72 :
レイナ :2005/07/13(水) 00:35:23
実行時にするにはどうしたらいいんですか?
>>70 OnMouseMoveイベントハンドラで
左ボタンが押されてるときだけ
マウス位置の移動分
Left, Topを書き換えてやる
74 :
レイナ :2005/07/13(水) 05:06:28
ポインタの静的型と、仮想関数の振る舞いについて教えてください。 struct A { virtual void f(); }; struct B { virtual void f(); }; struct C: public A, public B {}; C* pc = new C; pc->f(); // (1) A::f() と B::f() のどちらか分からないのでコンパイルエラー A* pa = pc; pa->f(); // (2) A::f() がコールされる B* pb = pc; pb->f(); // (3) B::f() がコールされる struct D: public A, public B { virtual void f(); }; D* pd = new D; pd->f(); // (4) D::f() がコールされる pa = pd; pa->f(); // (5) D::f() がコールされる pb = pd; pb->f(); // (6) D::f() がコールされる struct C の仮想関数テーブルの f() のエントリはどうなっているのでしょう? 派生クラスが仮想関数をオーバライドしない場合、このエントリは基底クラスの 関数ポインタがそのままコピーされると思います。しかし、A::f と B::f のど ちらを採用すべきかコンパイル時に決定できないはずです。 ところが上記(2)のように、動的型が struct C であっても、静的型を struct A とするとコンパイルが通り A::f() がコールされます。動的型の struct C の仮 想関数テーブルの f() のエントリは決定できていないはずなのに、何故 (2)(3) のような呼び分けができるのでしょう? 実際 struct D のように f() をオーバライドすると、静的型に関係なく動的型 の仮想関数がコールされるので、f() のエントリは1つだと思うのですが。 どういうカラクリになっているのでしょう?
>>74 多重継承するとその分だけ仮想関数テーブルが作られる。
だからstruct C/Dではstruct Aとstruct Bの両方のテーブルが存在する。
テーブルのA::fの部分にA::f()、B::fにはB::f()が入れられる。
struct DだとテーブルのA::fとB::fの両方にD::fが入れられる。
お前らネカマに釣られすぎ
77 :
デフォルトの名無しさん :2005/07/13(水) 20:17:28
mp3タグの表示・編集の方法をご存知の方、ご教授願いますm(_ _)m
Builderって64ビットネイティブコード吐けるの?
まさか
じゃあ将来、吐けるように進化する気はあるの?
ご質問です。 C++Builder6#4を使用しておりますが、全画面アプリを作成するには どのようにしたらよろしいのでしようか? FormのAlignをalClientとすると確かに全画面にはなるのですが、これではなく、 モニタの解像度を変更して全画面表示を出来ればと思います。 どうか宜しくお願い致します。
>>82 ChangeDisplaySettings
84 :
82 :2005/07/29(金) 15:27:37
>>83 ありがとうございます。
解像度の変更はできました!
int FCount = 0;
DEVMODE DevMode;
// 使用可能な解像度を調べる
while(EnumDisplaySettings(NULL, FCount, &DevMode)){
FCount++;
// 希望の解像度かどうか
if(DevMode.dmPelsWidth == 800 && DevMode.dmPelsHeight == 600){
ChangeDisplaySettings(&DevMode, CDS_FULLSCREEN);
break;
}
}
そして新たに2つの疑問がでました・・・_| ̄|○
1、全面にアプリを表示できない?
2、IMEバーが解像度につられて位置が変わる
ゲームではないのですが、ゲームで行っているような全画面表示に
したいのですが、どのようにすればよいのでしょうか?
85 :
82 :2005/07/29(金) 15:38:16
よく見たら色もなんか変だった・・・ 256色で表示されてるっぽ
>>84 全面に表示するのは
Form1->BorderStyle = bsNone;
Form1->BoundsRect = TRect(0, 0, 800, 600);
かな?
ゲームなんかは大概 DirectDraw の SetCooperativeLevel と SetDisplayMode 使ってるんでないかな。
87 :
デフォルトの名無しさん :2005/07/31(日) 16:36:04
BCB6でメイクしたら ”[リンカ 致命的エラー] Fatal: ファイル名が必要 :” って出るんですが、何がいけないのか分かりません。
要求されているファイルが存在するか否か > 87 存在するなら、BCB6 の最新のパッチを当ててからもう一度。
よくわからないエラーは、エラーメッセージをググると結構解決したりする。
>>87 BCBのインストール先や、プロジェクトを保存してるフォルダ名に"+"や"-"が入ってたりしない?
90 :
デフォルトの名無しさん :2005/07/31(日) 19:56:14
91 :
デフォルトの名無しさん :2005/07/31(日) 19:59:30
もうずっと人大杉 携帯 でのアクセスについて ■とりあえずスレッドを読むには■ 人大杉についてもっと詳しく知りたい お願い。 くれぐれもメールで問い合わせ無いようにして下さい。
>>86 (・∀・)キタヨコレ!!
亀ですみませんでした。
ひとまず
>>86 の指示通りで全面表示できました。
色についてはEnumDisplaySettings()のチェックを
// 希望の解像度かどうか
if( (DevMode.dmPelsWidth == 800) && (DevMode.dmPelsHeight == 600) &&
(DevMode.dmBitsPerPel == 32) && (DevMode.dmDisplayFrequency == 75)) {
とやった結果、32Bit色と周波数のチェックもできました。
どうやら、IMEバーについては、解像度を戻す時に
ChangeDisplaySettings(&temp, 0);
とやっているのが原因っぽかったです。
&tempは解像度変更前に保存しているステータス
何もしなくても、そのままアプリを終了させれば元に戻るんですね。
とりあえずこれで理想的なものはできそうです!
ありがとうございました。
タイトルバーにアイコンの出るプログラムを実行させようと思っています。 作業しているディレクトリには、icon1.ico、test.cpp、test.exe、test.obj、test.rc があります。 Borland C++ builder 6.0 Professionalで bcc32 -W test.c でコンパイルした後、 brc32 test.rc test.exeとリソースを実行ファイルに結合します。 リソースのコンパイル、リンクではエラーも何もなしに成功します。 test.exe で実行してみるとアイコンが表示されません。 しかし、Borlandの無料配布されているコンパイラで 同じようにコンパイルした後、リソースをbrc32 test.rc test.exeで結合 するとうまくタイトルバーにアイコンが表示されます。 Professionalで生成した実行ファイルもリソースがちゃんとリンクされていないのか ファイルサイズも小さいです。 C++ builderのbcc32のバージョンは、5.6.4です。 無料のコンパイラの方は、5.5.1です。 OS:windows XPです。
>94 93です。質問です。チラシの裏とはなんでしょうか?
>>95 それはともかく、キンタマの裏は見たことある?
93です。 質問は、borland c++ builder 6.0 Professionalのbcc32とbrc32を使って 実行ファイルにリソースのリンクがうまくできないのはなぜですか? ということです。
102 :
デフォルトの名無しさん :2005/08/15(月) 13:01:48
スレッドについて スレッドの練習なんですが、例としてForm1にLabel1とButton1を置いて //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int i; TestThread *theThread; theThread = new TestThread(true); theThread->FreeOnTerminate = true; theThread->Resume(); Label1->Caption = IntToStr(i); } //--------------------------------------------------------------------------- とし、 スレッドには //--------------------------------------------------------------------------- void __fastcall TestThread::Execute() { // TODO : スレッドとして実行したいコードを以下に記述 */ i++; } //--------------------------------------------------------------------------- として、ボタンを押すごとにiをインクリメントしてLabel1に表示したいのですが どうなおせばいいですか
頼むからスレッドの前にC/C++の基本、つまり 変数のスコープとか生存期間とか、その辺を勉強してくれ。
104 :
デフォルトの名無しさん :2005/08/15(月) 14:05:06
てゆーか、くだスレだし、 「この場合は」に限定して書いてやればヨロシ わざわざ意地悪する必要無し
106 :
デフォルトの名無しさん :2005/08/15(月) 17:28:04
次バージョンはいつでますか?
>>102 int i; なぞ使わず、LabelのCaptionプロパティそのまま使えばいいでしょ。
但しSynchronizeメソッド通しとけよ。VCLはマルチスレッド対応じゃないから。
108 :
デフォルトの名無しさん :2005/08/15(月) 17:58:12
引数渡してやれば? 或いはスレッド側でラベル読取・演算・ラベル書き換えすれば?
109 :
デフォルトの名無しさん :2005/08/16(火) 10:01:48
質問 書き間違いを"typo"と呼ぶのは何故ですか?
( ´∀`)<たいぽ
112 :
109 :2005/08/17(水) 01:21:10
AnsiStringの2次元配列、できんかねぇ
>>113 AnsiStringのポインタのポインタでシミュレートすればどう?
生成と解体が面倒だが。継承して新しいStringクラスを作る事が
できないのが痛いね。
>>117 やってみて一見何ともないようだから聞いてみたんだ。
>>118 当方問題ありでした
つまり、それぞれに異なる文字列を格納できませんでした
>>119 えー…そんなことないけど。どういうコード?
>>120 AnsiStringクラスにoperator[]が定義されているのが原因って事じゃね?
>>122 >でも
>>113-114 みると、周知の事実っぽいから気になる。
んなわけねえって。二人そろって勘違いしてるだけ。
>>119 おまえのその問題ありのコード晒せ。どうせお前が間違ってるんだ。
ダメと言ってる奴は、なぜ検証できるコードを出さないのか?
125 :
119 :2005/08/18(木) 15:51:01
帰宅したらサンプル晒すけど、 マジで二次元で文字列格納できます? 自分は一文字しか格納できんかったですよ
まどろっこしいから、さっさとBCB6で検証プログラム作ったぞ。 MemoコンポーネントをFormに2個貼り付けて以下のイベントを書いた。 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString text[2][2] = {"abcdef", "defghi", "ABCDEF", "DEFGHI"}; Memo1->Lines->Add(text[0][0]); Memo1->Lines->Add(text[0][1]); Memo2->Lines->Add(text[1][0]); Memo2->Lines->Add(text[1][1]); } 結果:ちゃんとMemo1には小文字の2つが、Memo2には大文字2つがちゃんと 文字列で表示できた。当たり前だが。
>>125 >マジで二次元で文字列格納できます?
>自分は一文字しか格納できんかったですよ
なんか無茶苦茶なことをしている御燗
128 :
119 :2005/08/18(木) 23:44:00
すいません、AnsiStringじゃなく WideStringにしたらできました 逝ってきます
>>128 質問して少なからずレスをもらったんだから
自己解決したにせよ、きちんと経緯を報告すべきだぞ。
それをしないのは単なる教えて君ってことだ。
131 :
119 :2005/08/19(金) 00:54:22
>>129 逝ったヲイラがゾンビになって戻ってきましたよ
冗談はともかく
って、あれ?
今はAnsiStringに戻してもできてしまった・・・
なぜ?
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString as[2][2];
as[0][0] = "あいうえお";
as[0][1] = "かきくけこ";
as[1][0] = "さしすせそ";
as[1][1] = "たちつてと";
int i=0;
int j=0;
while(i<2)
{
for(j=0;j<2;j++)
{
Memo1->Lines->Add(as[i][j]);
}
i++;
}
}
でした。
132 :
119 :2005/08/19(金) 00:55:47
↓は「改行が多すぎる」とおこられたので空白行は削除してあります。 で、昨日の結果(Memo1)は あ か さ た とだけ・・・ 今は あいうえお かきくけこ さしすせそ たちつてと と・・・
AnsiString as[2,2]; になってたとか。
134 :
デフォルトの名無しさん :2005/08/19(金) 08:23:55
周辺質問 文字列リストは二次元化できる? 今までタブ区切りでごまかしてきたけど いい加減面倒になったので
今このタイミングで言うのも何なんだけど... 何でStringList使わないの?
136 :
134 :2005/08/19(金) 10:13:30
>>135 携帯でアルファベット打つの億劫だから文字列「リスト」って書いたんだけど…
文字列リストってストリングリストのことじゃなかったっけ?
間違ってたらごめん
で、ストリングリストのストリング[]に更に配列が加わらないものかと
137 :
デフォルトの名無しさん :2005/08/24(水) 08:57:49
ぬるぽ
ガッ
139 :
デフォルトの名無しさん :2005/08/24(水) 22:25:39
BEGIN_MESSAGE_MAPを使うとswitchを含む関数はインライン展開できないという警告が出るのですがこれは仕様でしょうか?
>>139 クラスの宣言の中で定義された関数は、デフォルトでインライン展開の対象に
なるが、switch、for等を含むと、BCBではそういう警告が出る。
もちろんC++の規格上、インライン展開を全くしなくても違反ではないが、
ユーザの意図しないコンパイルのされ方を防止するためにそのような警告が
出るようになってる。
141 :
デフォルトの名無しさん :2005/08/26(金) 14:20:26
アプリケーションの終了値を返したいのですが、exit()で問題ないですか? なんかこう、BCBらしい終わり方があるんじゃないかと思うのですが
142 :
デフォルトの名無しさん :2005/08/26(金) 14:35:50
構造体のデータを確保した変数に入れるにはどうしたらよいのでしょうか? 確保した領域:char *pBuf = new char[30000]; 下記が構造体のデータ typedef struct __tagGRCMND { USHORTsCommandCode; USHORTsResultCode; USHORTsSize; BYTEcData[ 1 ]; }GRCMND; typedef GRCMND* LPGRCMND; 環境win2000 VC++6.0 です。よろしくお願いします。
>>142 初めからGRCMND *pGrcmnd = new GRCMND;でいいじゃんというのはさておき、
GRCMND *pGrcmnd = reinterpret_cast<GRCMND *>(pBuf);としてここへ書き込めばいいだろ。
>>142 new (pBuf) LPGRCMND;
CObjectというクラスを作り CType1 CType2・・・のようにそれぞれのクラスに継承させます アプリの起動時にCObjectとしてオブジェクトを生成し CObject* pObj = new CObject[10]; リストなどに連結させオブジェクトプールのようにして 使用時にはプールから抜き取って CType1などのオブジェクトとして使用したいのですがそのようにするには どのようにすればいいのでしょうか?
146 :
145 :2005/08/26(金) 20:12:28
補足です イメージとしては std::list<CObject> lObj; //未使用オブジェクトプール用 std::list<CObject> lType; //使用オブジェクトリスト lObjにオブジェクトプールとして連結させておいて 使用する必要ができた場合にlObjから抜き出して CType1としてlTypeに追加してCTlype1のオブジェクトとして 使用することは可能でしょうか?
>>145-146 CObjectはCType1の親で、プールされてる各インスタンスはCObjectとして生成されてる?
プールがどうこうより、CObjectとして作られたインスタンスをCType1として使っちゃ駄目だろう。
148 :
デフォルトの名無しさん :2005/08/26(金) 23:42:03
C++Builder 6 Personal を使用しているものです。(WindowsXP) 作成したexeファイルは、BuilderをインストールしていないWindowsマシン上でも動くのでしょうか?
>>148 実行時ランタイムを使用しないように指定してコンパイルすればヲケ。
具体的には
プロジェクト→オプション→パッケージ→実行時パッケージを使用して構築
→リンカ→共有 RTL DLL を使う
この両方をキャンセルする。
なお、personal版はライセンスで再配布に制限があるので注意。
150 :
デフォルトの名無しさん :2005/08/27(土) 02:36:42
次期バージョンは見捨てられましたか?
あと数ヶ月で出るつってるだろ
152 :
デフォルトの名無しさん :2005/08/27(土) 02:42:39
ありがとうございました。
153 :
デフォルトの名無しさん :2005/08/29(月) 08:56:38
FORM1のBUTTONを押したらFORM2を表示するようにしたいのですが、どのようにすればいいのでしょう?
>>153 Form2->ShowModal();
もしくは
Form2->Show();
#include "Unit2.h"を忘れずに
155 :
デフォルトの名無しさん :2005/08/29(月) 21:36:03
ある日までの残日数を表示したいのですが、やり方がわかりません。 TDateTimeやStrToDateなどでググッてはみたのですが、それらしい情報が見つかりません。 お願いします。
>>155 例えば今から2005/9/1 0:00 までの日数は
#include <DateUtils.hpp>
DaysBetween(Now(), EncodeDateTime(2005, 9, 1, 0, 0, 0, 0)); // 整数で (2日)
DaySpan(Now(), EncodeDateTime(2005, 9, 1, 0, 0, 0, 0)); // 実数で (2.084…日)
>>155 TDateTime someday, anyday; //適当に値を設定
int sub = (int)anyday - (int)someday;
>>157 日付またぐ時と、そうでない時とで1日の数え方が変わってる
あ、いや残日数の捕らえ方で変わるか
残日数というときはDaysBetweenより
>>157 の方が自然だと思ったんだけど。
まぁ、質問者がどっちの結果を望んでるかだな。
161 :
デフォルトの名無しさん :2005/08/30(火) 00:12:32
>>156-160 即レス感謝です!! Editなどに日付を入力するので、次のような形にしてみました。
なんていうか、うまいやり方が思いつきません。_| ̄|○
if(Now()<EncodeDateTime(yd,md,dd,0,0,0,0))
cntdn=DaysBetween(Now(),EncodeDateTime(yd,md,dd,0,0,0,0))+1;
else if(DaysBetween(Now(),EncodeDateTime(yd,md,dd,0,0,0,0))==0)
cntdn="今日";
else
cntdn="過ぎた";
>>161 何がしたいか日本語で明確に質問して。
使用するコンポーネント、変数の型と用途もきちんと書くべし。
>>161 何がしたいのかよく分からんが例えば
TDateTime target; //これは適当に設定する
int sub = (int)target - (int)Now(); //現在時刻からの残日数を求める
String mes;
if ( sub > 0 )
mes = Format( "あと%d日", ARRAYOFCONST((sub)) );
else if ( sub == 0 )
mes = "今日";
else
mes = "過ぎた";
ShowMessage( mes );
164 :
デフォルトの名無しさん :2005/09/01(木) 23:12:13
StringGridについて質問です。 マウスで選択したセルがどれか知るには、どうすればいいでしょうか? セルを選択した状態でボタンを押すと、Labelにセルの内容を表示みたいなことをしたいのですが。 お願いします。
printf(%s,'ヌルポ\n');
166 :
デフォルトの名無しさん :2005/09/01(木) 23:45:13
ShowMessage("ガッ");
>>164 TStringGrid::Selectionで取得。
168 :
デフォルトの名無しさん :2005/09/02(金) 01:06:39
169 :
デフォルトの名無しさん :2005/09/05(月) 12:01:56
http://homepage3.nifty.com/flare/pc/bcb/data/007.html このページを参考にしてDirectXを試してみたのですが、エラーが出て
きてしまいました。
[リンカ エラー] 外部シンボル 'DirectDrawCreate' が未解決(C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ が参照)
ここに書いてある通りにやっているとは思いますが・・・
解像度のイベントは新規プロジェクトでボタンを貼り付けただけのものでボタンのイベントに書いております。
解決するにはどのようにしたらよろしいのでしょうか?
>>169 どっかに
#pragma link "ddraw.lib"
って書いてみて
171 :
デフォルトの名無しさん :2005/09/05(月) 13:47:39
自動作成の対象ではないフォームの作成と表示の方法を教えてくだすれ
>>171 TFormHoge* hoge = new TFormHoge( Owner );
hoge->Show(); // or ShowModal()
173 :
169 :2005/09/05(月) 17:52:31
>>170 先のテストプロのUnit1.cppに書きました。
そしたら
[リンカ 致命的エラー] Fatal: ファイル DDRAW.LIB が開けません
と出てきました。
大変お手数ですが、再度教えていただけないでしょうか?
>>173 BCBをインストールしたフォルダのどっかにddraw.libがあるんで、
#pragma link のあとにそのフルパスを指定するか、
プロジェクトオプション」のライブラリパスにddraw.libのあるフォルダのパスを追加するか、
「プロジェクトに追加」でddraw.libを追加。
C++Builderはver1.0以来遠ざかっていたのですが、最近再び興味が湧いてきて
遅まきながら C++Builder Hello World Application in DeXter のデモも拝見しました。
(
ttp://www.drbob42.com/cbuilder/ )
これを見ると統合の煽りもあってか、ぱっと見C#系というかVisual Studioというか、
フォームを取り巻く環境がが随分と様変わりしているようなのですが、そうなって来ると
今この時点で単独製品としてのBCB6を押さえておく方が良いのかという気にもなってきます。
あるいはここまで来たら新製品のリリースを待つべきなのかどうか、その辺をご教授
頂けないでしょうか。
>>175 ボーランドのホームページ見たら、
8月末で現行BCB6の販売が終わったようですよ。
>>176 こらこらいいかげんなこと言わない。
>2005/8/31をもちましてC++Builder 6 StarTeam 2005 Editionの販売を終了いたしました。
他のパッケージはまだ売ってるよ。
VSライクのIDEはXGAだと作業領域が狭くなりがち 悪いところは真似しなきゃよかったのにね
179 :
176 :2005/09/05(月) 23:26:36
>>177 StarTeam付きが終了しただけなのね。
8/31付価格表pdfに載ってますね。
スマソ
>>175
180 :
173 :2005/09/06(火) 09:25:31
>>174 ありがとうございます。
ライブラリパスの設定でコンパイルは通りました。
ただ、また1点問題が…
フルスクリーン化までは成功しているのですが、解像度の変更が
出来ておりません。
当方の簡単な環境ですが、BCB6#4でディスプレイは1600x1200(32bit)です。
他に何かすることがあるのでしょうか?
>>180 いまどきのモニタなら24bitはサポートしてないでしょ。
8か32でやってみ。
183 :
180 :2005/09/06(火) 10:54:11
>>181-182 ありがとうございます。
32bitにしたところ問題無く動作しました。
モニタに依存するものでしたか・・・
>>169 で出したページより
>>181 で教えて頂いたページのほうが
エラーチェックまでしてあって良いですね。
教えて頂きました皆様、ありがとうございました。
>>175 とりあえず、BCB6は使いやすいから持っとくべし。
次バージョンはDelphiとの統合で重(ry
重(ry だけで済むといいけど
次バージョンはいつごろ(ry
187 :
デフォルトの名無しさん :2005/09/07(水) 18:54:54
くだ質ですが下記のようなエラーがでます。 class Hoge : public TForm, public Foo [C++ エラー] Hoge.h(102): E2246 Foo は、抽象およびパブリックの、 データを持たない単一の継承クラス階層ではない エラーコードをヘルプで調べたら 内部コンパイラエラー。コンパイラがクラス階層に制約を強制することがあります。 この場合,すべてのクラスは抽象クラスであり, すべてのクラスに親が 1 つだけ存在するという制約になります。 とありました。 TForm + 他のクラスのような多重継承は出来ないのでしょうか?
>>187 ヘルプより
> C++ と異なり,Object Pascal 言語は多重継承をサポートしません。
> VCL か CLX を派生元にして作成されたクラスも,この制約を継承します。
> つまり,VCL/CLX クラスから直接派生したクラスでなくても,
> VCL スタイルの C++ クラスは複数の基本クラスを使用できません。
で、エラーメッセージで抽象クラスがどうこう言ってるのは、 > C++ で多重継承を使うケースの多くは,Object Pascal コードではインターフェースで代用できます。 > 純粋仮想関数だけを持ち,データメンバーを持たないクラスがある場合, > C++Builder のコンパイラは,これを Object Pascal のインターフェースに対応するクラスとして認識します。 > このように,VCL スタイルクラスを作成して,多重継承を使用することが可能です
190 :
187 :2005/09/07(水) 23:45:57
>>188-189 ありがとうございます。
共通のインターフェースを実装することが目的だったので
助かりました。
前回は仮想関数で実装していたので純粋仮想関数にして継承させたらうまくいきました。
純粋仮想関数という機能に気づきませんでした。
191 :
デフォルトの名無しさん :2005/09/10(土) 10:20:39
192 :
名無しさん@そうだ選挙に行こう :2005/09/11(日) 18:49:41
BCBは1〜6まで使ってきましたが、Delphiほどそんなにバージョンごとの
差異は感じられませんでした。個人的には5か6で十分かなと思います。
今のうちにBCB6proを確保しておくべきです。絶対にあとで後悔するでしょう。
私はデータベース関係のアプリは作らないので、最近になって、personal版も
買いました。起動爆速、CLXなんて使いもしないライブラリがなくてすっきりです。
>>175
193 :
デフォルトの名無しさん :2005/09/12(月) 05:28:44
.strというファイルが出来たのですが、このファイルはどのような役目のファイルなのでしょうか
>>192 起動時の標準コンポーネントからCLXとDB関係を抜けばいいだけな気が‥‥
195 :
デフォルトの名無しさん :2005/09/13(火) 08:16:57
196 :
デフォルトの名無しさん :2005/09/13(火) 16:11:22
VCL は Object Pascal で書かれているんですか?
いえ、Delphi言語で書かれています。
一部アセンブラです
Delphi言語にはアセンブラ表現も可能というか含まれております
200 :
デフォルトの名無しさん :2005/09/18(日) 23:55:39
DelphiとBCBでまったく同じアプリをつくったけど、 どうしてもBCBが200KBほどデカくなる傾向にある。 サイズをできるだけ小さくする方法はないものか
MFC使うw
おーそーなんだ 200Kはでかいような、気にしないような微妙なサイズですな
MFCのスタテックリンクの方が根本的にデカイように思うが
>>199 BCBだとCとDelphiの両方のライブラリをリンクするからじゃないの?
解決法は無いと思うよ。
・基本的にDelphiで作って、Cのコードをはobjでリンクする
・圧縮実行ファイルにして誤魔化す
>>199 DOS版のTurbo Pascalの頃すでにそうだったものね
というかCP/M版でもそうだったんだろか
>>199 BCB だと *.asm が混じってたから Delphi もそうだと思ってたよ
>>205 すげえ。ダイナミックリンクしといてファイルサイズが(以下略
>>206 Turbo Pascalは某が標準PASCALを無視して万能を目指したからだろうね
組み込み屋さんのコードとか見るとasm文のオンパレード
209 :
デフォルトの名無しさん :2005/09/23(金) 07:00:16
ちゃんと動けばいいね。D2005 だってスペックは壮観だったけど、実物はひどかったし
無償版のBuilderXは有償版の奴と比べてどうなんですか
213 :
デフォルトの名無しさん :2005/09/24(土) 15:04:32
TFormのTって何? ただのFormじゃいかんの?
MFCがCで始めるのと同じで、単にTで始めたら クラスとかの型だよって事
TForm1* Form1 = new TForm1; Tがあれば型名。なければ変数名と一目で分かるようになってる。
型名だから間違いなくTypeのTだろうな。
Typという説もある(ドイツ語)。
ボーランドのことだ、Turboかもしれん。
219 :
デフォルトの名無しさん :2005/09/25(日) 11:52:00
OnMouseUpのイベントと OnMouseDownのイベントの関数を別にしたいんですが、 プロパティ画面でどちらかを変更するともうかたいっぽも同じ関数になります。 どうすればいいんでしょうか。
220 :
219 :2005/09/25(日) 12:13:57
一回両方とも空にしてから変更したら別になりました。お騒がせしました。
221 :
デフォルトの名無しさん :2005/09/25(日) 13:49:32
MFCのCは何?Cincoのこと?
Cincoってなに?
Microsoft Foundation Class
225 :
デフォルトの名無しさん :2005/09/26(月) 13:17:05
コードエディタでコードを複数列選択してまとめて字下げさせるのはどうすんの? 選択してTab押したら消えた。
>>225 Shift+Ctrl+I で字下げ
Shift+Ctrl+U で地上げ
228 :
デフォルトの名無しさん :2005/09/28(水) 23:50:14
229 :
デフォルトの名無しさん :2005/09/29(木) 17:16:33
ボタンを5つくらい並べて、どれをクリックされても Edit1->Text = (押されたボタン->Caption); って動作がしたいんだけど、上手くまとめる方法はないですかねえ?
Button2->OnClick = Button1->OnClick;
231 :
デフォルトの名無しさん :2005/09/29(木) 17:26:30
winアプリについてなんですが、エディットの背景色ってかえられないんですか?
232 :
デフォルトの名無しさん :2005/09/29(木) 17:35:01
>>230 例えばボタンが100個に変更されても、
200個に変更されても、ソースの修正点が少なくてすむような、
そんなまとめかたをしたいのです。
>>229 別に複数のコンポーネントが1つのイベントハンドラを共有していても問題ないが。
押されたボタンのキャプションはSenderから取得できる。
235 :
デフォルトの名無しさん :2005/09/29(木) 17:56:27
>>233 のSenderから取得する方法詳しくおねがいします。
>>231 プロパティのColorじゃだめなの?
if ( TButton* bttn = dynamic_cast<TButton*>( Sender ) ) Edit1->Text = bttn->Caption;
>>236 これがしたかったんです!
ありがとうございました。
…っていっても、文見てもどんな動作してるのか分からないので、
もうちょっと検索してみます。
238 :
デフォルトの名無しさん :2005/09/30(金) 00:05:23
関数をどのフォームからでも呼べるようなグローバル関数にするにはどうすれば良いのでしょうか。
>>239 アホ
>>237 まずユニットのヘッダのClass{ }の外側に
extern "C" void a(int b);
みたいに宣言する。
でその関数の実体をユニットのソースに
void a(int b){
・・・
}
みたいに書く。これでOK。
242 :
240 :2005/09/30(金) 00:56:30
書き忘れた。 その関数を呼び出すフォームで #includ "Unit〜.h" みたいにインクルードしてから呼ぶべし。
ただグローバル関数にしたいってだけなんだから、extern "C"はイランだろ。勘違いするぞ。
//ヘッダファイル hoge.h #ifndef HOGE_H #define HOGE_H #pragma link "hoge" int hoge( void ); //関数の宣言 #endif //ソースファイル hoge.cpp int hoge( void ) //関数の定義 { return 0; } そしてhoge()を使用したいフォームのソースに #include "hoge.h"を追加 …回答するやつにも超初心者がちらほらするこのスレ。
たしかに
>>244 一体そのヘッダでどんな関数が書けるのかな、1+1とかかな。ネタだよな。
>>244 で正解
ただしhoge.cppをプロジェクトに追加するか、
事前にhoge.cppのみコンパイルしておくか。
後者の場合プロジェクトに追加する必要はないが
リンカにパスが通ってる必要はある。
pragma指令にパスを含めるのでもヲケ。
248 :
デフォルトの名無しさん :2005/09/30(金) 09:45:43
win32 api を使い シリアルポート(RS-232C)の送信受信をやりたいのですが どうもうまくいきません、この手の参考書も少なく困っています 何か良い参考書またはプログラムの見本の様な物が掲載されている サイトがありましたらご教授御願いします。
>>247 プロジェクトの追加はあまりよろしくない。
この場合だとhoge.cppが絶対パスでプロジェクトに追加されるっぽい。
もしエディタ等で作成したソースをプロジェクトに組み込みたい場合は
ユニットの新規作成をして、ファイル名を追加したいものと同じにする。
んで、ファイルを上書きすればおk。
252 :
デフォルトの名無しさん :2005/09/30(金) 22:28:24
>>251 ご「教授」ありがとう御座います
何とか出来間に合いそうです感謝しています
質問です。 ServerSocketなどでマルチスレッドを使う場合、 グローバル変数の競合が発生するらしく、 TThreadListを使うと書いてあったのですが、これはあるスレッドで、 TList *pList = MyThreadList->LockList(); とすると、他のスレッドでは、 MyThreadList->UnlockList(); としない限り、 TList *pList = MyThreadList->LockList(); の*pListは無効ということですか?
複数のスレッドで、同時に一つの変数の値を変更したら、不整合が生じるから、 そのようなことがないようにロックされているときは、アンロックされるまで待つんでしょ。 他のスレッドで変更して良いのか?ロックしたスレッドがアンロックしなければ意味がないと思うが? セマフォとかも勉強したら良いんじゃね?
セマフォ ミューテックス デッドロック
>>254 ありがとうございます。
TThreadListは初めて使うので、使い方を確認したかったのです。
スレッド1でロックしてあると、
スレッド2で TList *pList = MyThreadList->LockList(); としても、
正しいポインタは帰ってこないのかなと。
257 :
デフォルトの名無しさん :2005/10/03(月) 06:50:38
リッチエディットでTEitのように切り取りや貼り付けのある普通の右クリックメニューを出すにはどうすれば良いのですか。
TPopupMenu
TOpenDialogでファイルではなくフォルダを選択させるにはどうしたら良いのでしょうか? それともTOpenDialog以外を使わなければいけないのですか?
>>259 SelectDirectory ちゅう関数でフォルダ選択ダイアログだせるよ
262 :
デフォルトの名無しさん :2005/10/03(月) 15:21:07
それってデフォフォルダを指定したらそこから上の階層に移動できなかったよね
継承元ってどうやって呼ぶんだ
ParentClassName::Method();
>>264 dクス
sparみたいなのってないのか?
ハハハ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ^∀^)< spar ( つ ⊂ ) \_________ .) ) ) (__)_) (^∀^)ゲラゲラ superダロ
269 :
デフォルトの名無しさん :2005/10/06(木) 14:34:05
TRegistryで質問ですが reg->WriteBool( "aaaa", true ); で書き込んだキーをDeleteKeyするとエラーになって消せません reg->DeleteKey( "aaaa" ); どうすれば消せるようになりますか?
>>269 それDeleteKeyじゃなくてDeleteValueじゃね?
271 :
デフォルトの名無しさん :2005/10/06(木) 15:51:57
272 :
デフォルトの名無しさん :2005/10/07(金) 00:16:04
アプリケーションの終了はメインフォームをClose();させるだけでいいんでしょうか。 確実に解放するEnd関数みたいなのは無いんでしょうか。
意図したとおりに動けば、メインフォームのCloseで確実に解放されますよ。
TApplication::Terminate
メインフォームのClosenのほうがマシ
任意の数の配列を取得し、そのグラフ(折れ線)を表示するプログラムを作成してます。 任意ですとデータ系列の追加を手動ではなく プログラム上で行う必要があるようなのですがその手法が分かりません。 どなたか教えていただけますでしょうか? 例えばhoge[100][30]とかだったらグラフを1〜100までの間で任意の数表示できるようにしたい。 ということです。
意味わかんね グラフは自分で描いてるならどうにでもなるんじゃないの
278 :
デフォルトの名無しさん :2005/10/11(火) 17:21:42
TabSheet1にGroupBox1を貼り付けてGroupBox1にGroupBox2を貼り付けて GroupBox2にPanelを貼り付けた時にPanelの最上位のParentがTabSheet1だと簡単に取得する方法はありますか?
> Panelの最上位のParentがTabSheet1だと TabSheet1 も子ウィンドウで TPageControl が親、さらにその親がフォームなわけだが
280 :
デフォルトの名無しさん :2005/10/11(火) 18:47:52
じゃあ最上位じゃなくて普通にTabSheet1を簡単に取得したい フォームはOwnerにあるからいい
じゃあ、って・・・
>>278 >Panelの最上位のParentがTabSheet1だと簡単に取得する方法
1.PanelがTabsheet1以下のコントロール群の一員であることを確認する。
2.Panelの所属しているコントロールの上位にあるはずのTTabSheet型コントロールのポインタを取得する。
どっちの意味?
283 :
デフォルトの名無しさん :2005/10/11(火) 20:10:53
じゃあ両方教えて
1.つ[ContainsControl] 2.つ[dynamic_cast]
parent の連鎖を辿っていく Delphi だとこれでうまくいく function FindParentTabSheet(ctl: TControl): TTabSheet; var oya: TWinControl; flag: Boolean; begin flag := false; repeat oya := ctl.Parent; flag := (oya is TTabSheet) or (oya = nil); ctl := oya; until flag; result := TTabSheet(oya); end; procedure TForm1.Button1Click(Sender: TObject); var ts: TTabSheet; begin ts := FindParentTabSheet(Panel1); if Assigned(ts) then Label1.Caption := ts.Name else Label1.Caption := 'not found'; end;
flag := false; これはいらんかった
くだすれでDelphiネタふるなよ。 それをC++に読み替えできるようなやつがここで質問するか?
疑似コードとして論理をしめしただけだろ。 回答できる人は翻訳ぐらいできるだろ。文句あるなら回答しめせよ。
回答は
>>284 で出てるでしょ。
そもそも、DelphiをC++に翻訳できる人間が
その程度のコード自力で書けないと思ってるわけ?
あとからでは何とでも言えるし。
そもそも
>>284 で分かるようなら、くだすれで質問しないし
>>290 先にこんな話題が出るわけないじゃん。
あとから言うのは当然。
それを後付の屁理屈みたいに貶めようとしても無駄。
質問者の態度が厨だから誰もまともに相手してないだけなんだが。
念のために言っておくと、
>>285 のコードをC++に翻訳しようとすると、
実は詰まってしまう個所がある。その答え(の1つ)が
>>284 にあるわけで、
それが見抜けないで
>>290 って言ってる様じゃ寒い罠。
いろいろ後から言っても説得力無いなぁ。
>>284 は未来予見超能力コードなのね。
いいから速く翻訳しろよ。
296 :
デフォルトの名無しさん :2005/10/11(火) 23:52:26
C++使ってる人はデルファイとか知らないよ。使う必要ないし。
今必要になったじゃないか
VCLもそうだけど世に出てるフリーソフトは結構Delphiで書かれてる。 かつDelphiで書かれてるOpenJaneとかはオープンソースだから Delphi読めるようになると結構勉強になる。
299 :
デフォルトの名無しさん :2005/10/12(水) 00:00:41
別にデルファイを非難するわけじゃないが、 C++はその百倍は資産があるよ。
確かにそうなんだがVCLを必要とするBCB特有の事情だね
C/C++のソースが読めるならDelphiのソースは読めるよ。 Delphiで書けと言われると厳しいが。 BCB使ってるとVCLのソースを読む必要に駆られることが多いから 読むだけならそのうち自然に覚えちゃう。
そういうこと。Delphiに文句言ってるとBCBで無駄に苦労する。 Delphiの上に成り立ってるんだから当然と言えば当然だけど。
倒産したんだから、どっちも将来性無し。
305 :
デフォルトの名無しさん :2005/10/12(水) 11:38:13
じゃあおしえて
なにが「じゃあ」なのかおしえて
sir知らんがな
309 :
デフォルトの名無しさん :2005/10/12(水) 16:33:44
じゃあ知らないでいいや
310 :
デフォルトの名無しさん :2005/10/13(木) 14:32:24
TListViewで指定行の背景色を変更する方法を教えてください
カスタムドロー
ガンダムとフォー?
313 :
デフォルトの名無しさん :2005/10/14(金) 12:01:06
CustomDrawSubItemで if( SubItem == 4 ) Sender->Canvas->Brush->Color = clRed; とかすると、SubItem4以降もすべてその色になってしまうんですよ
じゃ4以外でも色を設定すりゃいじゃないの
315 :
デフォルトの名無しさん :2005/10/14(金) 14:06:25
あ、書き忘れたけど if( SubItem == 4 ) Sender->Canvas->Brush->Color = clRed; else Sender->Canvas->Brush->Color = clWindow; ってやっとりますた
if( SubItem == 4 ) Sender->Canvas->Brush->Color = clRed; else if( SubItem == 5 ) Sender->Canvas->Brush->Color = clBlue; else if( SubItem == 6 ) Sender->Canvas->Brush->Color = clYellow; else if( SubItem == 7 ) Sender->Canvas->Brush->Color = clYattaro; else Sender->Canvas->Brush->Color = clWindow;
317 :
デフォルトの名無しさん :2005/10/16(日) 11:53:31
画像のラベリングのやり方や特徴を調べる方法、仕組みなど教えてください。 お願いします。
>>319 誘導されてきたようだが、残念ながらスレ違いだ。
画像処理スレあたりに逝け。
相手してもらえるかどうか判らんが。
>画像のラベリングのやり方や特徴を調べる方法、仕組みなど教えてください。 サイトのコンテンツ一つできそうだな
すみません、質問です。 BCB6 Personalなんですが、 TToolBarのMenuプロパティに ファイル(&F)->終了(&X)となっているメニューを指定し、 フォームにはTStringGridを置いています。 実行し、StringGridの上でFキーをおすと フォーカスがメニューのファイル(&F)に移動してしまいます。 OnKeyPressで処理したいのですが、FとXともにイベントが発生しません。 これをフォーカス移動しないようにできないでしょうか。 よろしくお願いします。
323 :
デフォルトの名無しさん :2005/10/18(火) 17:18:18
BCB5使いです。 ..\Borland\CBuilder5\Examples\Internet\Chat にあるサンプルプログラムで、 1台のPCで、自身のIPに接続し文字入力すると、 ローカルエコーのように入力文字を表示します。 これを別PC(IP)に接続し、2台のPCでチャット させることは可能なのでしょうか?
324 :
デフォルトの名無しさん :2005/10/18(火) 17:40:35
可能
325 :
デフォルトの名無しさん :2005/10/18(火) 17:44:41
326 :
323 :2005/10/18(火) 17:53:41
>>324 Address Name に別PCのIP(例:192.168.0.10)を設定して実験してみましたが、
Error connecting to:192.168.0.10
と表示されてしまいます。
ちなみに別PCのIPに対してpingするとtimeoutになります。
192.168.0.10のPCが見えていないようなんですが、なぜなんでしょうか・・・
ご教授ください。よろしくお願いします。
327 :
323 :2005/10/18(火) 17:56:23
ついでに・・・、
>>322 Editモードにすればよろしいかと。
329 :
323 :2005/10/18(火) 18:40:15
ご教授・・・ご教示ください。 なんですね。初めて知りました。ご指摘ありがとうございます。
330 :
322 :2005/10/18(火) 18:52:54
>>327 どもです、これなら大丈夫ですね
ただgoEditingは無効(InplaceEditorが完全に出ないよう)にしたいので
今InplaceEditorを弄ってどうにかできないかとやっています
goEditingがtrueの時にどういうことをしているか分かれば楽なんですが…
331 :
322 :2005/10/18(火) 19:19:49
何度もすみません。 GetEditTextをオーバーライドしてEditorMode = false でそれっぽく動くみたいです。 助かりました、ありがとうございます。
332 :
322 :2005/10/18(火) 20:03:29
と思ったらgoEditingがtrueだとgoRangeSelectがfalseになっちゃうんだった… orz どうにもならなかったらメニューをToolBarに置かないようにします スレ汚しすみませんでした。
333 :
323 :2005/10/18(火) 20:48:08
>>332 ALT+Fのキー操作で行くものではないのですか。知らなかった。
それとBCB5ではTToolBarにMenuプロパティがなかったりします^^
FormのOnKeyPressを使ったりするのは、スマートな方法では無いですね。
と書きながら思ったのですが、StringGridは本当にフォーカスされたんですよねぇ。
BCB5とBCB6ではえらい違ってるのかしら・・・。
334 :
322 :2005/10/18(火) 23:14:39
たびたびすみません。
>>323 通常はそうですよね。
同じフォームにあるTreeViewだと大丈夫なんですが、
StringGridにフォーカスがあるときだけ、単一キーで
OnKeyDownが呼ばれた後にメニューにフォーカスが移動します。
(FormでKeyPreview=trueにしてもFormも同じ)
それっぽい情報が見つからないので 謎です。
こういうときにソース見られるといいんですが
なかなか手がでないです…ううむ
既存のボタンやらエディットやらのコンポーネント全部何かして コンポーネントパレットに表示されなくなったんだけど、 またパレットに表示させて使うにはどうすればいいですか?
メインメニュー→コンポーネント→パレットの設定
337 :
335 :2005/10/19(水) 00:21:55
うまく元通りできるようになにましたよ。thx
で
>>323 はわからない人に教えるのはいいことなのだが、
自分の問題は解決したのか?
ひとまずpingしてtimeoutになる以上BCBのせい以前に
環境の問題だわな。
自分のIPアドレス・相手のIPアドレス・火壁・ノートン先生など
確認すべきではなかろうか。
339 :
デフォルトの名無しさん :2005/10/19(水) 11:28:53
黙れ
340 :
デフォルトの名無しさん :2005/10/19(水) 23:42:32
すみません、助けてください。 「乱数を30000個ずつ3行発生させるプログラム」がどうしても作れません…。 誰か助けてください…。
次回作は出ますか?
343 :
323 :2005/10/20(木) 12:34:49
>>338 はい
>>326 のレスで、なんとか自力で・・・と試行錯誤の据え通信が出来ました。
結果はファイヤーウォールの除外にIPをセットしてOKでした。
ただ、数万文字分のデータを一括に受信出来ないのですよ。なんでだろ。
何かのオブジェクトでリミット等が存在するのかな?
AnsiStringは2^31個まで認識可能みたいなのに・・・。
>>339 ・・・寂しい(はあと)
344 :
デフォルトの名無しさん :2005/10/20(木) 14:28:37
MDI子フォームのグローバル座標を取得する方法を教えてください
>>344 試してはいませんが、親フォームのグローバル座標と
子フォームのローカル(?)座標の関係から逆算すれば
良いかと思うのですが・・・どうでしょうか。
>345ですが、逆算ではなく・・・計算かな^^
^^^
>>344 RECT rect;
GetWindowRect( MDIChildWindow->Handle, &rect );
350 :
デフォルトの名無しさん :2005/10/21(金) 14:30:07
フォームのCreateイベントでListView->Items->Clear( )などListViewを操作しても反映されないないのですが どうやったらCreateイベントでListViewに反映されますか? ちなみに、Showではできます。
351 :
デフォルトの名無しさん :2005/10/21(金) 14:53:39
>>350 コンストラクタで、必要な初期設定をします。
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//初期設定
}
ものすごい回答だな
>>350 OnCreate内でListView->Items->Clear()する意味が分からない。
まさかと思うが、以下の点を明確にせよ。
1.ListViewが載っているフォームはメインフォームか否か。
2.操作が反映されないのはどのタイミングか。
1)フォームが最初に表示されたとき
2)フォームが2度目以降に表示されたとき
>>351-352 まぁ、「TForm::OnCreateはつかうな、コンストラクタ使え」とはヘルプに書いてある罠。
しかし、
>>350 の原因は別にありそうだ。
354 :
デフォルトの名無しさん :2005/10/22(土) 08:33:37
OnCreate イベントは,フォームを作成したときに発生します。 __property Classes::TNotifyEvent OnCreate = {read=FOnCreate, write=FOnCreate, stored =IsForm}; 説明 OnCreate イベントハンドラを記述すると,フォームが作成され, TCustomForm のコンストラクタによって呼び出されたときに 特別な処理を実行することができます。イベントハンドラを実装, あるいは TCustomForm のコンストラクタのオーバーライドのいずれかを 行う必要がありますが,両方を行ってはなりません。 OnCreate イベントで作成されたオブジェクトは OnDestroy イベントで解放する必要があります。 フォームが作成されるとき,Visible プロパティが true であれば イベントが以下の順序で発生します。 1. OnCreate 2. OnShow 3. OnActivate 4. OnPaint 注意フォームのコンストラクタとのやり取りが不良になる可能性が あるので,C++Builder で OnCreate イベントを使うことはお勧めできません(OldCreateOrder を参照)。かわりに,フォームコンストラクタをオーバーライドすることをお勧めします。
動的に生成したボタンのclickイベントのイベントハンドラー はどうやって作ればいいの?
>>355 新しく作ることは出来ないから
あるものを割り当てる
>>355 適当なクラスのメンバ関数作って、それ代入すりゃいいよ
358 :
デフォルトの名無しさん :2005/10/22(土) 19:44:47
http://www.ahris.jp/ahris/tips/bcb/bcb0005.txt ///////
実行時にコンポーネントを作成する(BCB4用)
btnNew->OnClick = btnNewOnClick; //クリックされた時に呼び出す関数
//設定できるイベントはコンポーネントに
//よって変化する。
//イベントによって呼び出される関数を作成する。
//引数が同じならば、他のコンポーネントの関数を流用する事も可能。
void __fastcall TForm1::btnNewOnClick(TObject *Sender)
{
ShowMessage("");
}
フォームのヘッダに関数の宣言を追加しておく
------
private:// ユーザー宣言
void __fastcall TForm1::btnNewOnClick(TObject *Sender);
359 :
デフォルトの名無しさん :2005/10/23(日) 20:40:11
#define hage[8] {3,4,3,3,2,3,5,3} int n = hage[0]; でエラー出るんだけどこれ使い方間違ってます?
8≠0 int≠{・・・・}
361 :
322 :2005/10/23(日) 21:48:13
const int hage[8] = {3,4,3,3,2,3,5,3};
あれ、ミスった どうしても#define使いたいんじゃなければ↑でいいかなと… それだと hage[8] と書いたのが {3,4,3,3,2,3,5,3} に置き換わるように定義してるから おかしいのはなんとなくわかる…はず
いや hage が [8] {3,4,3,3,2,3,5,3} に置き換わるべ
>>359 C++Builder と全然関係ない問題じゃん。Cの初心者スレに行ってくれ。
Cスレじゃ、さすがに相手にしてくれんだろw
366 :
デフォルトの名無しさん :2005/10/25(火) 13:42:33
StringGridの現在のセル(StringGrid->Col, StringGridRow)の座標を取得する方法を教えてください
座標? 意味わからん
CellRect とか?
369 :
デフォルトの名無しさん :2005/10/26(水) 16:04:35
意味わからん馬鹿はレスしないでください。スレが荒れます
明日のセルの座標を取得する方法を教えてください
371 :
デフォルトの名無しさん :2005/10/27(木) 10:45:33
TCanvas *Canvas; Canvas = new TCanvas( ); した時にCanvasのサイズを指定する方法を教えてください
>>371 Canvasは何らかのコントロールに貼り付けないと意味ないのでは?
で、コントロールの大きさ自身がCanvasになってる。
373 :
デフォルトの名無しさん :2005/10/27(木) 11:27:37
http://www.borland.co.jp/qanda/cbuilder/c0003051.html void __fastcall TForm1::FormCreate( TObject *Sender );
{
Graphics::TBitmap *Bitmap1; //ビットマップを保存するための一時変数
Bitmap1 = new Graphics::TBitmap; //ビットマップオブジェクトを作成します
Bitmap1->Width = 200; //幅の初期値を指定します
Bitmap1->Height = 200; //高さの初期値を指定します
//ビットマップをイメージコンポーネントに割り当てます
Image1->Picture->Graphic = Bitmap1;
}
>>371 TCanvasはただのデバイスコンテキストハンドルのラッパだからHandleにHDC入れないと全く意味のないクラス。
375 :
デフォルトの名無しさん :2005/10/27(木) 15:46:14
全角のアルファベットや数字を半角に変換する方法を教えてくだあい
378 :
デフォルトの名無しさん :2005/10/28(金) 01:36:44
mciSendString("play music NOTIFY",NULL,0,hwnd) のようにNOTIFY フラグを指定してやると、再生が終わった時に hwndウインドウにMM_MCINOTIFYメッセージが送られて来る とネットで検索して見つけたのですが、このMM_MCINOTIFYというのを どうやって受け取っていいのか分かりません、、、 というかhwndウインドウというのも理解していない状況です なんとか再生はすることは出来ているのですが、ひとつが終わったら その次を再生、みたいなことを考えています 全くの初心者ですみませんがご教授いただけたらうれしいです
>>378 TMediaPlayer使え
TMediaPlayerって何ですか? と訊き返される御燗
380 :
デフォルトの名無しさん :2005/10/28(金) 02:11:29
381 :
デフォルトの名無しさん :2005/10/28(金) 02:33:04
void __fastcall WndProc(Messages::TMessage &Message); ...... ...... }; ...... ...... void __fastcall TForm1::WndProc(Messages::TMessage &Message) { if ( Message.Msg == WM_PAINT ) { ...... ...... } TForm::WndProc( Message ); // Default. }
382 :
デフォルトの名無しさん :2005/10/28(金) 10:36:34
TOpenDialogを詳細表示で起動する方法を教えてください
>>378 TForm::WndProcをオーバーライド、またはBEGIN_MESSAGE_MAPマクロ。
あとは非ビジュアルコンポーネントのメッセージ処理に使われる、AllocateHWnd()でメッセージ捕まえる方法も。←TTimerのソース参照
TPageControlの枠の色は親FormのColorと同じになりますが、 親FormのColorを実行中に変更してもすぐに反映されません。 一度Visibleをfalseにしてから再度trueにすると反映されますが、 もうちょっとスマートな方法は無いでしょうか。
>>384 InvalidateRect(PageControl1->Handle, NULL, TRUE);
386 :
デフォルトの名無しさん :2005/10/29(土) 06:08:12
Button1Click の動作を別のところから呼び出すにはどうしたらいいですか? Button1Click(); の括弧の中にthisとか入れてみたのですが例外のエラーが発生します。 よろしくお願いいたします。
387 :
デフォルトの名無しさん :2005/10/29(土) 06:10:11
InvalidateRect() BOOL InvalidateRect(HWND hWnd , CONST RECT *lpRect , BOOL bErase); 指定された長方形を更新領域として追加する hWnd - ウィンドウのハンドルを指定。NULL の場合、全てのウィンドウを無効化します lpRect - RECT 構造体のポインタを指定。NULL の場合クライアント領域全体が対象 bErase - TRUE なら BeginPaint() 実行時に背景を消去、FALSE ならそのまま 戻り値 - 成功すれば 0 以外、失敗すれば 0
388 :
デフォルトの名無しさん :2005/10/29(土) 06:13:22
void __fastcall TForm1::Button2Click(TObject *Sender) { Button1->Click(); }
389 :
デフォルトの名無しさん :2005/10/29(土) 06:21:12
::InvalidateRect(0,0,false); //画面全体に再描画を要求
390 :
デフォルトの名無しさん :2005/10/29(土) 08:42:12
>>388 即レスありがとうございました
すごくうれしいです
391 :
デフォルトの名無しさん :2005/10/29(土) 09:58:39
TForm1::TForm1で動的(?)にエディットボックスとかをたくさん作っているのですが なんか出来かけ(?)でフォームが表示されてしまってなんとなく醜いのです コントロールが全部完全に出来るまで待ってからフォームを表示させることはできないでしょうか?
392 :
デフォルトの名無しさん :2005/10/29(土) 10:01:32
>>391 スプラッシュウィンドウ
Splash Window
Splash Screen
393 :
デフォルトの名無しさん :2005/10/29(土) 10:13:53
394 :
デフォルトの名無しさん :2005/10/29(土) 11:08:48
初歩的な質問で申し訳ないのですが、 __fastcallってmethod作成の場合使うのですがどういう意味なのですか? なかったらどうなるのですか?
>>394 C標準のスタック渡しでなく、できる限りレジスタを利用するコードになる
繰り返し実行するメソッドなどで引数の少ないものに使うと若干の性能Upに繋がる
上記で判らなければ、使わない事が吉
>>395 わかりやすい説明 dクス!
用途に応じて使ってみます。
397 :
391です :2005/10/29(土) 20:55:13
>>392-393 なんとか実現しました
とても表示がすっきりしていい感じになりました
ありがとうございました
398 :
デフォルトの名無しさん :2005/10/29(土) 21:08:52
ファンクションキーに機能を割り当てているのですが、F10で困っています。 例えば Edit1->SetFocus() を割り当てた場合、その動作自体は問題ないのですが、その後にすぐ、 メニュー(TMainMenu)をつけているフォームなので、メニューにフォーカスが入ってしまいます。 Windows標準の動作なのでこれは仕方ないのかなとも思ってはいますが、 F10を押してもメニューにフォーカスが入らないようにする方法があればご教授下さい。 よろしくお願いいたします。
>>399 ありがとうございました。
F10に割り当てるのをやめようか、どうしようか考えていたので助かりました。
VCLってUNICODEアプリケーションでも使うことできる?
402 :
デフォルトの名無しさん :2005/10/30(日) 22:44:53
メッセージボックスを画面中央ではなくって フォーム中央に表示する方法を教えてくだすれ
403 :
デフォルトの名無しさん :2005/10/30(日) 22:45:17
>>401 UNICODE用コントロール集のコンポーネントがあったはず。
Delスレで聞いて見れ
405 :
デフォルトの名無しさん :2005/10/31(月) 02:54:55
エディットボックスをマウスで選択したときに、 表示されているテキスト全部を反転させるやり方を 教しえていただけませんでしょうか?
406 :
デフォルトの名無しさん :2005/10/31(月) 06:50:43
void __fastcall TForm1::Button1Click(TObject *Sender) { Edit1->SetFocus(); }
408 :
デフォルトの名無しさん :2005/10/31(月) 13:27:50
Canvasに描画するときにmmをピクセルに変換する方法を教えてください。
Screen の PixelsPerInch から逆算する
410 :
デフォルトの名無しさん :2005/10/31(月) 14:36:51
>>410 たとえばPixelPerInchが96だとしたら
inch = mm / 25.4;
pixel = 96 * inch;
412 :
デフォルトの名無しさん :2005/10/31(月) 17:50:25
無料のbcc55を使っています。ものすごく基本的な質問なんですけど JPEGを読み込みたいんですけど<jpeg.hpp>が見つからないし、それによりTJPEGImageが使えません。 VC++の<gdiplus.h>も無いです。 JPEGを読み込む為には、BCBかVC++を買うしか無いのでしょうか? 貧乏人はおとなしくLoadImageでBMPでも読み込んでろという事でしょうか?
414 :
デフォルトの名無しさん :2005/10/31(月) 23:14:24
>>413 ここはBCBのスレですよ貧乏人さん^^
416 :
デフォルトの名無しさん :2005/10/31(月) 23:53:19
520 名前:デフォルトの名無しさん[sage] 投稿日:2005/10/31(月) 23:46:33 Win32APIでJPEGを読み込むAPIはあるんでしょうか? BMPはLoadImageで取得できるんですけどそのJPEG版みたいなみたいな奴です。 現在の開発環境は Borland C++ Compiler 5.5.1とメモ帳だけです。 よって、MFCとかは使えません。 誰か、貧乏な私に知恵を授けて下さい...
417 :
デフォルトの名無しさん :2005/11/01(火) 01:55:12
TJPEGImageを使うには、下準備が必要です。 ます、JPEGを使うユニットで”JPEG.hpp"をインクルードします。 次に#pragma link "jpeg"を追加します。 これは、TPicture::LoadFromFileを拡張して、jpegイメージを読みこめるようにするためにはFakeInitJPEGLibメソッドを呼び出して、初期化する必要があるのですが、この一行を追加する事によってBCBが初期化してくれます。 こっちの方が初期化のタイミングを考えなくて良いのでお勧めです。 これで、TPictureからも簡単にJPEGファイルを読みこめます。 #include <jpeg.hpp> #pragma link "jpeg" //Image1にimage.jpeを読みこみ表示する場合 Image1->Picture->LoadFromFile("image.jpg"); // TJEPGImageにimage.jpeを読みむ場合 // ↓の場合は初期化なしで読みこめます。 TJPEGImage* pJPEGImage = new TJPEGImage(); pJPEGImage->LoadFromFile("image.jpg"); 保存も簡単に行えます。TImageに表示されたいるグラフィックをJPEG形式で保存する場合は、TJPEGImageオブジェクトにAssignメソッドを使ってグラフィックをコピーしてSaveToFileメソッドで保存します。 その時、JPEGのクオリティーはCompressionQualityプロパティで指定できます。 //Image1の画像をクオリティー50、ファイル名”image.jpg"で保存する TJPEGImage* pJPEGImage = new TJPEGImage(); pJPEGImage->Assign(Image1->Picture->Graphic); pJPEGImage->CompressionQuality = 50; pJPEGImage->SaveToFile("image.jpg"); delete pJPEGImage;
418 :
デフォルトの名無しさん :2005/11/01(火) 09:36:02
419 :
デフォルトの名無しさん :2005/11/01(火) 11:27:38
420 :
デフォルトの名無しさん :2005/11/01(火) 11:58:52
日本語版じゃないと買ってやらないよ
>>413 gdiplus.hはPratform SDKをインストールすれば手に入る。
(インポートライブラリはそれ付属のではなく自分でimplibする必要がある)
hello, worldでたYOヽ(´ー`)ノ
424 :
デフォルトの名無しさん :2005/11/03(木) 03:38:23
425 :
デフォルトの名無しさん :2005/11/03(木) 12:24:33
426 :
デフォルトの名無しさん :2005/11/03(木) 18:34:36
dbExpressを用いたパッケージを配布したく、ヘルプの「dbExpress データベースアプリケーションの配布」を見て静的リンクを作成しようと思いますがよくわかりません。 include文で書くのか、「プロジェクト」「オプション」で組み込むのかいろいろやってみましたができません。 MySQLを使っているのでdbExpMYSQL.dcu, crtl.dcu, MidasLib.dcuが必要だと思うのですが、よろしくお願いします。 C++ Builder 6 Pro
427 :
デフォルトの名無しさん :2005/11/03(木) 21:59:57
BCB6ProでマルチスレッドやるときはTThreadクラスですか、ウィンドウズAPIですか
5年前にC++Builder5 Professionalを買って、 チュートリアルで挫折しましたorz PC-9801上とMS-DOSでのC言語なら、 少しはわかってるつもりだったんですが… 何がわかっていないのかすらよくわかりません。 まず、何から手を付けるべきでしょうか?
429 :
428 :2005/11/03(木) 22:28:06
sageてたんでageます。
>>428 どこで挫折したのか書かないと分からない希ガス。
とりあえずOOPの知識つけないと、簡単にスパゲッティコードができあがるからそのあたりかな?
>>427 _beginthreadのこともたまには思い出してあげてください
431 :
デフォルトの名無しさん :2005/11/03(木) 22:43:30
コボラーですが、Cでポインタを使うメリットを教えてください。
>>430 CreateThreadのこともたまには思い出してあげてください。
>>428 CとC++は違う
C++の勉強からはじめろ
434 :
デフォルトの名無しさん :2005/11/03(木) 23:12:18
>>425 !【緊急】開発言語PHPに“最悪”のセキュリティ・ホール,全ユーザーは今すぐ対処を
これみてさっきyumでPHPのアップデートしたのね。
そしたらセッションが保存されなくなったんだけど原因てなにが考えられる?
PHPINFOの設定は確認したけどアップデート前と同じだし、HTTPDもきちんと再起動してるしセッションがつかえなくなってかなりピンチです。
>>432 >CreateThreadのこともたまには思い出してあげてください。
どう見てもWindowsAPIです
本当にありがとうございました
436 :
428 :2005/11/03(木) 23:33:06
>>430 まず、「用語がわからん!」って一番基本的なところで…
「C++なんて、C言語に毛が生えたようなもの」とナメてました。
自分でも捜してますが、お勧めなサイトありますか?
たいていは「抽象的すぎて何のお話かわけわからん」か、
「わからない用語の解説がわからない用語でしてあるから結局わけわからん」の、
どちらかで…
437 :
428 :2005/11/03(木) 23:37:48
あぁ、リロードすれば良かった。
>>433 そうですね。やっぱりそこからですよね。
なんかこう、C言語とC++の違いを、
ソースを併記して解説してる所なんか無いでしょうか?
でもやっぱり「そんな娘としないで一から勉強し直せ」って事…ですよね?
438 :
428 :2005/11/03(木) 23:39:33
×そんな娘としないで ○そんな事しないで あぁ…なんかすんげー変な女と一発やっちゃったみたいだorz
>>437 金ケチらないで本買え。
>なんかこう、C言語とC++の違いを、
>ソースを併記して解説してる所なんか無いでしょうか?
その程度の甘い考えなら何年たっても使えるようにならん。
440 :
422 :2005/11/04(金) 01:15:35
>>423 >>424 ドモドモ♪でも来るべきスレを間違えたッス。C++Builder喪ってないんで、、アハッ
>>437 違いを簡単に言うとオブジェクト指向やジェネリックプログラミングを言語としてサポートしているかどうかだよ。
442 :
428 :2005/11/04(金) 18:48:55
>>493 BCB5を買ったときに、オフィシャルコースウェアを買いました。
まだBCB5用のオフィシャルコースウエアが出ていなかったので、
BCB4用ですが。基礎編と応用編です。
あと、後日アスキー出版の、
「C++Builder5 プログラミング入門」も買いました。
>>441 そう言う説明がちゃんと理解できないんですうぅぅ…
443 :
デフォルトの名無しさん :2005/11/04(金) 18:54:34
買って読んでないとか
445 :
デフォルトの名無しさん :2005/11/04(金) 19:27:01
買って読んではいるけど脳が動いてないとか
>>442 BCB以前のC++に対する理解が足りてないと思う。
必要なのはC++の入門本。
そ、BCBの入門書は、読者がC++を理解していることを前提としている。 それをいきなり読もうとしても428には無理無駄無意味。
448 :
428 :2005/11/04(金) 23:14:30
449 :
デフォルトの名無しさん :2005/11/06(日) 00:10:28
ハードディスクの物理ドライブのシリアル番号を 取得したいのですが、APIのGetVolumeInformation、 WMIのwin32_LogicalDriveクラス等では、 論理ドライブのシリアル番号(DOSコマンドDirで表示される値)しか取得できません。 ドライバを作成して取得するという方法があったのですが、ドライバの作成方法がわかりませんでした。 簡単に取得できる方法はないのでしょうか? よろしくお願い致します。
450 :
デフォルトの名無しさん :2005/11/06(日) 02:11:44
クラスのコンストラクタで文字配列を扱ってるのですが、 それを外に受け渡すように書き換える方法がわかりません。 例えば、今は class Test{ public: Test(); ~Test(); }; Test::Test(){ string word[]={"その1","その2","その3"}; } みたいになってるのですが、このwordの部分を外部から読み出したいのです。 そもそも、配列をクラス内のプライベートorパブリックに置く方法、という基本的なこともわかってないので、 何卒よろしくお願いします。
453 :
デフォルトの名無しさん :2005/11/06(日) 23:34:21
あ、もひとつ。 このクラスを派生させた場合の書き方も加えて教えていただければ。 ・・・初心者の質問じゃないかな? 一応C++は始めて1週間もたってません(VBとか他の言語はそれなりに触ってますが)
>>452 そうやるとwordはTest::Test()のローカル変数になる。
メンバ変数にしないといけない。(つまりclass Testの宣言の中にwordの宣言を書く必要がある。)
>>447 俺はCもC++もVCLもWindowsAPIも何も知らないでFillyにも挑戦したけど挫折した。
唯一知ってたのはポケコンのBASICだった。
そんな状況でDelphiではなくBCBを選んだ俺。
入門書もC++ではなくBCBの入門書からだった
ここはこう言うものと覚えとけとか投げやりな解説に萎えた。
今はダウンロード数数万本の適当なフリーソフトくらいは作れるようになった。
class Test{ public: Test(); ~Test(); string word[]={ } void Test(){ word }
うっかり送信しちゃった。 あってるかどうかも分からんけどもうめんどくさいからやーめた。
>>454-456 色々ありがとーです。
ちょっと挑戦しなおしてみますわ。
>>455 Filly!ずいぶんと懐かしい名前がでたな、おい。
俺、その前身のRayで作品作ったことあるよ。
>>456 むちゃくちゃだろそれ
クラス定義内で配列の初期化はできんぞ。
配列をメンバにしたいなら要素数を定数で指定する必要がある。
class Test{
string word[3];
public:
Test();
~Test();
};
Test::Test() {
word[0]="その1";
word[1]="その2";
word[2]="その3";
}
要素数を決めうち出来ないならポインタをメンバにして動的に領域を確保する
ただ、どちらにせよ配列よりvectorを使うほうを推奨するが
BCB的な解決の仕方だとこんな感じな希ガス class Test{ TStringList *word; public: Test(); ~Test() { delete word; } __property TStringList* Words = { read=word }; }; Test::Test() { word = new TStringList(); word->Add("その1"); word->Add("その2"); word->Add("その3"); } main() { Test test; std::cout << test.Words[0] << std::endl; }
>>vector?
>>460 現状専門書も買わず、ネット講座だけなんすが、やっぱまずいっすかね・・・
お勧めの本とかあります?
>>461 おー、それすっきりしてよさげ。
463 :
デフォルトの名無しさん :2005/11/07(月) 07:27:03
bmpをjpgに変換して保存する方法を教えてくだすれ
>>463 bmpを読み込み、それを何かjpegに変換するライブラリに渡すだけ。
465 :
デフォルトの名無しさん :2005/11/07(月) 09:59:53
>>463 TBitmap *bmp;
TJPEGBitmap *jpg;
jpg->Assign(bmp);
467 :
462 :2005/11/07(月) 10:14:07
追加質問。 Borland C++ CompilerですがTStringListってつかえます? VCL.hというのが必要らしいんだけど・・・ 無理なら、vectorの使い方教えてください。 やっぱ本買おうかな?
|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽ そんなエサで
_ ム::::(,,゚Д゚)::| 俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::::.:..|) 【From】ム板
ヾソ:::::::::::::::::.:ノ 【2ch歴】5年
` ー U'"U' 【お魚No.】1匹目
【釣られた回数】4回
【釣られた時の餌】
>>470
普通のアプリケーションからは、Application->ExeName で 自分自身のフルパス名が取得できますが、DLL からこれを実行 すると、「呼び出し元」のアプリケーションのフルパス名が取得 されます。「DLLファイル自身」のフルパス名を取得するためには どのようにしたらよいのでしょうか?
boostはつかえますか?
POP3サーバからUIDLを取得する方法を教えてください
476 :
デフォルトの名無しさん :2005/11/07(月) 13:41:29
TStringGridでCellsが編集されたかどうかを知る方法を教えてください
477 :
デフォルトの名無しさん :2005/11/07(月) 14:14:47
TPrintDialogでデフォルトの用紙を指定する方法を教えて下さい
やだ
480 :
462 :2005/11/07(月) 14:30:05
自己解決。 #include <iostream> #include <vector> using namespace std; class Menu{ protected: vector<string> name; public: Menu(); void func(); }; Menu::Menu(){ string list[]={"その1","その2","その3"}; for(int i=0;i<3;i++) name.push_back(list[i]); } void Menu::func(){ for (int i=0; i<3; i++) cout <<i<<":"<<name[i] << " "<< endl; } int main() { Menu p; p.func(); }
481 :
462 :2005/11/07(月) 14:32:16
ただ新たな問題がでて、派生させようと思ってポインタ使おうとすると未解決エラーが・・・ Vector使うときはポインタ設定が違うんでしょうか?
482 :
デフォルトの名無しさん :2005/11/07(月) 14:33:05
うげ
485 :
デフォルトの名無しさん :2005/11/07(月) 15:05:46
フォームの右上のXアイコンをグレーにして押せなくする方法を教えてください
>>485 そんなことが出来るソフトがあったら教えてもらいたい
487 :
デフォルトの名無しさん :2005/11/07(月) 16:50:16
>>486 馬鹿はレスするなって^^
APIでできる
インターネットを通した自動アップデートを考えているのですが、 プログラムから自分自身を置き換えるのはどのようにしてやればよいのでしょうか?
>>488 無理だからアップデートするプログラムを別にしなさい。
テンポラリフォルダにアップデートするための プログラムを展開して本体を終了時にそれを実行汁。
491 :
デフォルトの名無しさん :2005/11/07(月) 17:36:00
>>485 void __fastcall TForm1::Button1Click(TObject *Sender)
{
BorderIcons = TBorderIcons() >> biSystemMenu;
}
>>474 一部の機能が使えない(コンパイラが完全な標準に準拠してないので)
年末に米でリリース予定のDelphi/BCB/BCSB2006はboost使えるらしい。
lexical_castしか使ったこと無いな。
俺スマートポインタだけ・・・
regex、shared_ptr、string用アルゴリズム かな、俺が使ったことあるのは。まぁお約束なラインナップ。
497 :
デフォルトの名無しさん :2005/11/09(水) 00:30:52
アセンブラのコードをCのコードの中に書くにはどのようにしたらよいのですか?
__asm { mov eax,1 } とか
asm じゃなかった?
asm _asm __asm でれでもいいようだ
501 :
デフォルトの名無しさん :2005/11/09(水) 03:02:07
TImageで画像拡大時に、補完するような指定は出来ませんか?
自分で補間関数を書く。VCL にはない。
503 :
デフォルトの名無しさん :2005/11/09(水) 16:04:13
Visual C++のプロジェクトを変換ユーティリティで変換したんだけど、リソースファイルで コンパイルエラーが出る。 afxres.h がない、と怒られるのだがインクルードパスも設定してあるのに… なぜでしょうか?
504 :
デフォルトの名無しさん :2005/11/09(水) 18:35:50
ファイルのフルパスから、ファイル名だけを取り出すのには どうしたらいいのでしょうか、お願いできませんでしょうか?
ExtractFileName
ちょっとわからないので質問させてください。 Cプログラミングをしたいと思い、ボーランドのCコンパイラ5.5をインストールしたのですが、プログラムはメモ帳でも良いのでしょうか? 拡張子は.txtのままで良いのでしょうか?
>>506 少々不便かもしれないがメモ帳で出来なくもない。
Cの拡張子はcだが、C++の拡張子cppのほうが良い。
向こうのスレはタイトルにCompiler5.5を追加する必要があるよなぁ
511 :
デフォルトの名無しさん :2005/11/10(木) 07:20:11
MemoTxt = new TMemo(this); としてTMemoを非表示で使いたいのですが、 長い文字列を1行に入れたいのですが、途中(半角32文字)で 切れてしまいます 残りは次の行に入っているようなのですが、半角32文字以上の 文字列を1行に収めることはできないでしょうか?
よくわからんけど MemoTxt->WordWrap = false; じゃだめなん?
514 :
デフォルトの名無しさん :2005/11/10(木) 14:02:03
AMD Core Math Libraryは使えますか?
515 :
デフォルトの名無しさん :2005/11/10(木) 15:07:54
AnsiStringでいいんじゃね?
TPaintBoxにGraphics::TBitmapからイメージをコピーしてるんですけど どういう訳かちらつきが出てしまいます。 PaintBoxのOnPaintに Graphics::TBitmap *bmp=new Graphics::TBitmap; bmp->Width=PaintBox->Width; bmp->Height=PaintBox->Height; bmp->Canvas->Brush->Color=clInfoBk; bmp->Canvas->FillRect(Rect(0,0,bmp->Width,bmp->Height)); PaintBox->Canvas->Draw(0,0,bmp);
518 :
デフォルトの名無しさん :2005/11/12(土) 16:51:38
a(y
>>517 PaintBox の OnPaint に描画コードを書いて Refresh が正当な描画法
相対パスc:\aaa\bbb.txtを持っていて ここから、拡張子を抜いたファイル名bbb(もしくは\bbb)を得ることは可能でしょうか? ExtractFileNameなどでは、bbb.txtしか抜けませんでした
・・・なるほど、拡張子""にすればいいわけですね 気づきませんでした ありがとうございました
523 :
デフォルトの名無しさん :2005/11/12(土) 23:09:46
C++BuilderのTipsみたいなサイトでライブカメラの画像を表示する例を 2〜30行くらいのコードで紹介しているサイトがあったのですが、 ご存知の方おられませんでしょうか? いつか使おうとブックマークしていたつもりなのですが分からなくなってしまって、、、 他でもライブカメラを扱う例を紹介いただけるとありがたいです よろしくお願いいたします
525 :
デフォルトの名無しさん :2005/11/13(日) 11:20:38
>>517 #include <vcl.h>
#pragma hdrstop
Graphics::TBitmap *bmp = new Graphics::TBitmap;
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PaintBoxPaint(TObject *Sender)
{
//PaintBox->Refresh();
bmp->Width=PaintBox->Width;
bmp->Height=PaintBox->Height;
bmp->Canvas->Brush->Color=clInfoBk;
bmp->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp");
PaintBox->Canvas->Draw(0,0,bmp);
}
//------------
526 :
517 :2005/11/13(日) 18:58:13
>525 塗りつぶしを実行するようにした上で フォームのサイズを変更するとちらつくんですよ。 あれはどうにもならないんでしょうかね? でもCanvasにDrawで上書きしているわけだからPaintBoxの下の背景色が表示されるわけ無いんだけど…
527 :
デフォルトの名無しさん :2005/11/13(日) 20:53:54
当方Delphiユーザーですが….
>>517 フォームのコンストラクタかLoadedメソッドをオーバーライドして
PaintBoxの親であるコントロールのDoubleBufferedプロパティをTrueにしてみて下さい.
この場合はプロパティの名前の通り,VCLの方でダブルバッファリングの処理をしてくれますので
プログラマーがオフスクリーンビットマップを用意する必要はありません.
(PaintBoxのキャンバスに直接描画して構いません)
ちらつきの原因は親であるコントロールがPaintBoxの領域まで(親の)Colorプロパティで指定された色で塗りつぶしてしまうためみたいです.
PaintBox自体は描画に関する処理は何もしていません(OnPaintイベントハンドラがあればそれを実行するだけ).
ちなみにTBitmapのLoadFromFileメソッドは
既存の画像の上に読み込んだ画像を描画するのではなく,既存の画像を置き換えます.
よってLoadFromFileより前の幅と高さの変更は意味がありません.
529 :
デフォルトの名無しさん :2005/11/14(月) 02:36:38
良い入門書を教えてくだすれ
531 :
517 :2005/11/14(月) 04:41:12
>528 ネ申!
532 :
デフォルトの名無しさん :2005/11/14(月) 16:50:30
newしたエリアはFormのDestroyとデストラクタとどっちで開放するのがいいですか?
Destroyって「(Pascal側の)デストラクタそのもの」では…
(▼_▼メ)デストローイ
535 :
デフォルトの名無しさん :2005/11/15(火) 05:54:10
BCCからBCBに乗り換えたのですが、メモに文章を表示させる方法がわかりません。 TstringやLineのあたりが怪しいと思うのですが、付属のマニュアルにも載ってないし。 あと、BCBの良い専門書のおすすめとかありますか? 近所の本屋ではVC++のしか売ってないので、取り寄せようと思ってます。
>535 ┌─────┐ │カットシステム│[検索] └─────┘
537 :
デフォルトの名無しさん :2005/11/15(火) 08:38:54
538 :
デフォルトの名無しさん :2005/11/15(火) 10:47:00
>>535 固定文字ならオブジェクトインスペクタで。
動的に追加するならMemo1->Lines->Add( "(゚д゚)ウマー" );
539 :
デフォルトの名無しさん :2005/11/15(火) 10:48:20
C言語でボーランドから無料のって出ていませんでしたっけ?
出てるよ.BCC+が無料で使える.ただし,公式webから登録が必要
542 :
デフォルトの名無しさん :2005/11/15(火) 18:28:00
>>541 知らないならレスしないで下さい。ウザイです。荒らしですか?
543 :
デフォルトの名無しさん :2005/11/15(火) 18:34:45
リンク先見ろよバカw
544 :
デフォルトの名無しさん :2005/11/15(火) 18:45:17
答えれない人ってすぐ煽るんですよね
545 :
デフォルトの名無しさん :2005/11/15(火) 18:51:42
誰も分からないんですか?
[問題4/中級]文字列 MOJI に代入されている文字の中から、数字(0から9)だけ を取り出して、それを小さい順に表示するプログラムを作りなさい。 例えば、MOJI[]="9B2C3ADC31" ならば 12339 と表示する。 と 「問題6/上級]次の問題の中から、どれか1つを選び、プログラムを作成して答えを 求めなさい。 (問題6−1)太郎君が9歳になるまで,花子さんの年齢が太郎君の年齢の整数倍にな る年がちょうど7回ある。このとき、太郎君と花子さんの年齢差はいくつか?
>535 ヘルプ嫁。バカ。 付属のマニュアルにも載ってないし。って釣りか?
>>537 こういうやつはこの超初心者スレには不要だ
うぜろ
と、泣きながら反撃を試みるも嘲笑されて終わる 言語の初心者以前にコミュニケーション初心者な負け犬でしたとさ。 > うぜろ
おまえらつめたいな
>>535 つ SendMessage(Memo1->Handle,WM_SETTEXT,0,(LPARAM)"this is a pen");
Labelの背景を透明化させるにはどうすれば良いのですか?
Label->Reqest(背景,透明になれ);
Transparent=true;
>>554 くだすれでも教えてクンは嫌われる
という以前に、
>>550 のワビサビが判らんのだろ'うな、教えてクンにはw
TTimerの処理についてご質問です。 例えばインターバルが1000msecとして、処理に1000msec以上 かかった場合、次のイベントの扱いはどのようになるのでしょうか? 1、ぴったり1000msecで次のイベントが実行される 2、前のイベントが終わるまで待って実行される 3、イベントは無かったことになる
559 :
デフォルトの名無しさん :2005/11/16(水) 15:22:51
ここで煽ってる厨房はなんなんだ?
>>556 とかスレの趣旨がわかってない馬鹿には消えてほしいねえ
560 :
デフォルトの名無しさん :2005/11/16(水) 15:24:03
>>558 イベントから抜けてから1000ms経ってからまたイベに突入
>>535 については
>>538 と
>>541 とで回答はすんでいる。
そのあとの流れは質問者本人か偽者かは分からんが
煽りとそれに応じたネタレスばかりだな。
スレの趣旨も何もないだろ。
562 :
デフォルトの名無しさん :2005/11/16(水) 15:38:03
粘着ウザイし
>>560 ありがとうございます。
もう少し掘り下げた質問になるのですが、仮に処理が990msec
かかったとした時に、次のイベが来るのは10msec後になるか
1000msec後になるかはどちらでしょうか?
564 :
デフォルトの名無しさん :2005/11/16(水) 17:07:00
>>564 …ですね。 質問繰り返してどーすんだ漏れorz
ありがとうございました!
> イベントから抜けてから1000ms経ってからまたイベに突入 そんなことないよ。WM_TIMER がメッセージキューにあればすぐ実行される。 複数たまればひとつにまとめられる。
だから、
>>563 への回答は、イベントハンドラ抜けてから、だいたい10ms後が正しい
動作を確認していたらなんか変だ…と思いまた見に来たら
>>566-567 で訂正されているし…
やはりこういう動きになりますよね。
ということは、処理が毎回1000msec以上の場合だと無限ループに
近い状態になる、と。
まぁ強制的に次のイベントが発行されるわけではなくて安心しました。
569 :
カラス :2005/11/16(水) 20:40:29
イエータウ
Memoコンポーネントのスクロールバーを、必要なとき(文字が大量にあるとき)だけ出したいんですが ssbothを指定すると常に出てしまいます どうすればいいんでしょうか?
必要なときに ssNone と入れ換え
それって、常にMemoを監視しとかないといけない、ってこと?
何のためのOnChangeイベントだ
確かに・・・
連番の16bitのグレースケールtiff画像を読み込み輝度値を3次元配列に格納したいと考えています。 SusieプラグインにてBitmap形式で出力は出来たのですが 8bitのBitmapになっているようで16bitの輝度値を取り出せません。 どのようにしたらいいでしょうか?
>>575 自前でTIFF読むしかない。
てかTIFFって圧縮されてなければ単なるベタフォーマットだったはずだから簡単に読めるような‥‥
577 :
デフォルトの名無しさん :2005/11/24(木) 12:42:18
構造体について質問です 構造体を返り値とする関数を使う時、 構造体の宣言はどこでやればいいですか リンカ?、cppのグローバルな部分?
>>577 関数が構造体を返すということは、その関数を呼出す側は
その構造体を知っている必要があるということ。
なので、構造体の定義と関数の宣言をヘッダファイルにまとめて、
^^^^ ^^^^
その関数・構造体を利用する個々のソースファイルで
インクルードするようにするのが普通。
構造体の定義だけで独立したヘッダを使うのでももちろんヲケ。
<pre>ヘッダで private:// ユーザー宣言 struct mystruct { AnsiString Awriter; AnsiString adate; AnsiString title; AnsiString naiyou; } ; mystruct __fastcall Getwriter(AnsiString); としてあって、ソースで mystruct __fastcall TForm1::Getwriter(AnsiString strgot) { mystruct stdata; とすると、ソースで [C++ エラー] Unit1.cpp(349): E2141 宣言の構文エラー と言われるのは何故です? どうするのが正しいですか? </pre>
おっと、 [C++ エラー] Unit1.cpp(349): E2141 宣言の構文エラー が出るのは mystruct __fastcall TForm1::Getwriter(AnsiString strgot) の部分です
>>580 mystructの定義をグローバルにする(TForm1の定義から出せ)
C++の入門書読まんと、要らん苦労するばかりだぞ
↑補足 Getwriteがprivateなら TForm1::mystruct __fastcall TForm1::Getwrite(AnsiString strgot) でヲケ
584 :
デフォルトの名無しさん :2005/11/25(金) 00:23:23
585 :
デフォルトの名無しさん :2005/11/25(金) 03:13:58
int banshow(HANDLE); int Locate(HANDLE, int, int); int check_location(int, int); //すでに駒がおかれていないかどうか調べる int judge(); int stonerecord(int, int); //置いた石の位置を記録する int replay(HANDLE, int); //ゲームを再現する int comp_put(char *); //コンピュータが駒を置きます int ban[MASU][MASU]; int banshow(HANDLE);やint Locate(HANDLE, int, int);など説明がないところは、 どのように書けばよろしいでしょうか?
>>583-584 ありがとうございます
インプレスの「C++基礎講座」読んでる範囲ではわからなかった…
TForm1::mystruct __fastcall TForm1::Getwriter(AnsiString strgot) { }
>>583 common.hにmystructの宣言を放り込み
#include "common.h"して
ソースからTForm1::を取り去る
もやってみて、うまくいきました。
ありがとうございました。
用語は正確に struct hoge; //hogeの宣言 struct hoge { void foo(); /*...*/ }; // hogeの定義 void hoge::foo() { /*...*/} //hogeのメンバ関数定義
591 :
デフォルトの名無しさん :2005/11/25(金) 19:42:48
突然すみません。私はプログラム初心者です。 C言語かC++を学びはじめたいと思っています。 用途としては、数値計算をするプログラムを将来作りたいと思っています。 そこで、質問なのですがCとC++どちらを始めた方がよいですか? 誰か親切な方、教えてくれませんか?
>>591 正直どっちでもいいけど、C++をやるなら、既存のCで書かれたライブラリを呼び出すのに
extern "C" だけ忘れないようにすればよい。
どうせ数値計算ライブラリなんて、そんなに種類はない。
593 :
デフォルトの名無しさん :2005/11/28(月) 04:06:14
594 :
デフォルトの名無しさん :2005/11/28(月) 04:36:10
※Borland C++Builder/C#Builder ユーザー様へは、別途バージョンアップのご案内をお送りいたします。Delphi、C++Builder、C#Builderを複数お持ちのユーザー様は、C++Builderからのバージョンアップ価格の方が安価になる場合がありますのでご注意ください。
C#なんてつかわんのに
596 :
デフォルトの名無しさん :2005/11/29(火) 01:15:19
verup版はいくらなの?
597 :
デフォルトの名無しさん :2005/11/29(火) 01:17:50
PS2とかXBOX対応のゲームってC++で書かれているんですか? あと焼き方はなんか特殊なやつなんですよね?
∧_∧ ( ´・ω・`) ∧_∧ / \ (´∀` ) ハハハ __| | | |_ / ヽ ||\  ̄ ̄ ̄ ̄ / .| | | ||\..∧_∧ (⌒\|__./ ./ ||. . ( ) ~\_____ノ| ∧_∧. . _/ ヽ \| ( ´_ゝ`) 何だコイツ? . | ヽ \ / ヽ. . | |ヽ、二⌒) / .| | | . .| ヽ \∧_∧ (⌒\|__./ ./ ヽ、___ ( ) プッ ~\_____ノ| ∧_∧ . _/ ヽ \| (´Д` )ダセー . | ヽ \ / ヽ、 . | |ヽ、二⌒) / .| | | . .| ヽ \\ (⌒\|__./ ./ . ヽ、____ \\ ~\_____ノ|
600 :
デフォルトの名無しさん :2005/11/30(水) 18:19:51
601 :
デフォルトの名無しさん :2005/11/30(水) 23:10:07
現在、タスクトレイに常駐するランチャを作成しています。 そこで、タクストレイを右クリックしたら起動しているプログラム がすべて最小化するようにしたいのですがどのようにすれば よいでしょうか?
そのようにコーディングするだけ
603 :
デフォルトの名無しさん :2005/12/01(木) 11:26:23
>>602 知らないならレスしないでください。ウザイです。
知ってるがおまえには教えない
605 :
デフォルトの名無しさん :2005/12/01(木) 12:32:07
トレイアイコン右クリならわかるけど タスクトレイか 俺も知りたいな
606 :
601 :2005/12/01(木) 12:50:55
>>602 すいません。
googlで検索したのですが、いいキーワードがみつからなくて・・・
607 :
601 :2005/12/01(木) 12:53:38
>>605 あ、タスクトレイではなくトレイアイコンでした。
すいません。(´・ω・`)
トレイアイコン関連なら某のFAQあたりに載ってるし、最小化ならメッセージ投げるだけだろ。
>>604 役立たずの言い訳乙!
(・∀・)ニヤニヤ
610 :
デフォルトの名無しさん :2005/12/01(木) 14:40:23
>>604 みたいな奴に限って知らないんだよな(´,_ゝ`)プッ
二度書かなくてもいいのに
BDEについての質問もココでよろしいでしょうか? 複数フィールドを持つParadoxのTTableに対して 各々のフィールドの値がコレ!というレコードに移動したいのですが… whileループで回すのってダサいと思うので、瞬時に移動出来るメソッドがあれば、と。
マルチ市ね
616 :
デフォルトの名無しさん :2005/12/02(金) 05:04:02
Developer Studio 2006のIndyのバージョンを教えてください。
C++Builderを使い始めたばかりの初心者です。 グレースケールのbitmapを読み込み処理したいのですが、読み込みの部分が全くわかりません。 実際の処理または適当なサンプルが置いてある場所など教えていただけないでしょうか? 現在の超初心者スレのレベルよりさらに低い質問になってしまいますが、ご教授願えればと思っております。 よろしくお願いします。
たぶんインストールしたファイルに含まれてるから 自分のディスクから検索してごらんw
>>618 適当なTStream派生クラスにビットマップ読み込んで
TBitmap::LoadFromStream(TStream*);
TFileStreamで扱える物なら
TBitmap::LoadFromFile(AnsiString);
仮想リストビューはBuilderではどのようにすれば使えますか?
DVD-ROM 上のファイルに対して、fread() すると、まるでデタラメな ものを返してくる環境が(主に 9x で)たまにあるようなのですが、 fread() とかって、この時代にはもう使っちゃいかんものと思った方がいいのでしょうか?
TFileStreamってCloseがないけどこれってdeleteするまでは 何回オープンしても問題はないですか?
624 :
デフォルトの名無しさん :2005/12/08(木) 16:59:10
フォームにTPantBoxはりつけて絵を描いてたんですが、 ふと更新の際のちらつきが気になってダブルバッファ処理をしたくなりました。 どうやるのですか?
>>623 どうやって何回もオープンするつもりなのかそれを教えてくれ
>>625 ポインタに、何回もnewをして代入する。
629 :
デフォルトの名無しさん :2005/12/09(金) 11:55:19
ペンの端を角張らせたいときVCだとExtCreatePen(PS_GEOMETRIC | PS_SOLID | PS_ENDCAP_FLAT | PS_JOIN_MITER,・・・ などとするがBCBだとどうすんの?
631 :
デフォルトの名無しさん :2005/12/09(金) 12:12:24
>>629 自己レス
Canvas->Handle使ってExtCreatePenで描けたが
他に方法ないか?
TMemoコンポーネントの中で、一番文字列幅が長い行を探す、というのはどうすればいいんでしょうか? やっぱループでTextWidthを見ていくしかないのかなぁ 内容変わるたんびに呼んでたらやたら時間がかかっちゃいそうだけど・・・orz
>>630 FreeとCreateは呼び出すなゴルァってヘルプに書いてある
635 :
デフォルトの名無しさん :2005/12/11(日) 12:39:01
他ファイルに定義・実装したクラスをフォーム(TForm1)のクラス内で宣言しようとしたら E2303型名が必要 E2139宣言に;がない と言われました。 ちゃんと myClass o; みたいにしてるのに><
>>635 そうか、それは困ったな
で、それがどうかしたか?
637 :
635 :2005/12/11(日) 13:27:48
自己解決しました><
638 :
635 :2005/12/11(日) 13:29:39
639 :
デフォルトの名無しさん :2005/12/11(日) 16:23:40
640 :
デフォルトの名無しさん :2005/12/11(日) 18:38:25
はええええええええええええええええ
おいおい、ちゃんと「再構築」で比較してるか? 速くはなるがそこまでびっくりするほどじゃないぞw
いや、BCB再起動してみ。 コード補間めっちゃ早くなってるから。
これ、テンプレ入り確定だな。
これって裏で何をやってるんでしょうか?
ソースあるだろ! 俺は読んでないけど。
>>638 一応レスしておくが、
>>635 のどこにも疑問文がないので答えようがない、というツッコミだと思う。
>>639 に書いてある『IDECompilerSpeedFix60.bpl』が解凍しても無い漏れは負け組み?
サイトにもリドミにもこのファイルについて書いていないのだが…
bcc32pchPlugin60.bpl入れたらF9とかが効かなく… (つд⊂)エーン
>>639 の方法間違ってるよ。
サイト読めば分かる。
1.3キタ(゚∀゚)!!
>>650 だからやめろっていったのに、こんなウイルス
入れたら補完が効かなくなった
全部未確認ですが…
>>621 ・OwnerDataをTrueに(これで仮想リストになります).
・項目数が変わったら→Items.Countにデータ数を代入
・OnDataイベントハンドラ(必須)でパラメータItem.CaptionやItem.SubItemsにデータを設定.
・項目の中身が変わったら→UpdateItemsで指定範囲のインデックスの項目を再描画
みたいな感じです.
>>624 描画しているのが出来合いの画像なら>626,
そうでなければペイントボックスの親コントロールの
DoubleBufferedをTrueにするとうまくいくかも.
>>632 恐らくTextWidthでテキストの幅を調べるより
Memo1->Linesで各行のテキストを取得するのに時間がかかるでしょう.
(1行ごとにMEMOコントロールにメッセージを送り,結果が帰ってくるのを待っているため)
1行ずつLinesを参照するよりMemo1->Textを参照して丸ごと読み込んでから
(メッセージを送るのが1回になる)
1行ずつ切り出すようにすれば多少速くなるかもしれません.
(切り出しはTStringListを使うか改行コードを検索すれば良いと思います)
C++Builderはわからないのですが以下のような感じでしょうか.
TStringList sl;
new(sl);
sl -> Text = Memo1->Text;
(以下省略)
656 :
デフォルトの名無しさん :2005/12/14(水) 19:26:45
TCustomPaneから新たなコンポーネントを作ったのですが、 実行時に設定したプロパティの内容が反映されません。 何が考えられるでしょうか?
コンポーネントの実装不具合
658 :
デフォルトの名無しさん :2005/12/14(水) 23:53:30
あるフォルダ以下のファイル全て(下位フォルダはない)を他のフォルダに 全てコピーしたいんだけどそういう関数ある? ファイル1つならCopyFile関数で出来るんだが・・・ ないとしたらそのフォルダ以下のファイルパスを全部取得して 一つずつコピーすると思うんだけどその取得方法がわからない どういう風に取得させるのか教えてください
SHFileOperation
660 :
デフォルトの名無しさん :2005/12/15(木) 03:01:14
あの爆速プリコンパイルヘッダ・コンポーネントの「bcc32ide.exe」って致命的な 副作用があって駄目だな。 フォームにコンポーネントを貼り付けたり削除したりしてからメイクや再構築しても その変更がまったく反映されない・・・orz メニュー[プロジェクト(P)]配下のアドオン、CleanもDelete PCHも効き目無し。 フォームに変更を掛けたらその都度BCB再起動ののち再構築しろってことか?! これって意味がない気が・・・。 もう一方の「IDECompilerSpeedFix60.bpl」だけで様子を見てみるか。
TCppWebBrowserでスクロールバーを表示させないようにするには どうしたらいいですか? あとリソースのDLに失敗した時のイベントはありますか?
662 :
デフォルトの名無しさん :2005/12/20(火) 01:34:43
すいません、かなり初歩的なことですが教えて下さい。 Borland C++Compiler 5.5をインストールしたのですが、 コマンドプロンプトで、以下のように出てコンパイルができません。 ------------------------------------------------------------------- C:\prg\Sample\01\01>bcc32 -W 01.c 'bcc32' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ------------------------------------------------------------------- 何が足りないのでしょうか。 OS:WinXpHomeEditionです。 また、このあたりの解説が出ているHPがあれば、 教えていただけるとありがたいです。
665 :
662 :2005/12/20(火) 22:15:49
>>664 THX! 感謝です。コンパイルできました。
当分は教えていただいたとこのお世話になると思いますが。
>> 663
頑張ってしらべたのですが、力及ばす。
自分の求めてる回答までいきつきませんでした。
ご教授ありがとうございました。
666 :
デフォルトの名無しさん :2005/12/21(水) 01:50:13
TCustomControlから初めて自作コンポーネント作ろうと思うんだけど、 デストラクタつくんなくていいの?
667 :
教えてください :2005/12/21(水) 02:17:57
Visual C++ 6.0でプログラムをしていますが、 Windowsプログラムは初めてなので分らないことが多くて 困っています。教えてください。 1.レジストリにXXX.regをコピーしたいのですが簡単な方法はありますか? 今のところ、 RegCreateKeyEx RegSetValue RegCloseKey という流れで考えています。 もっと簡単な方法があれば教えてください。 2.上記処理でもCreateエラーやSetエラーなどを考えないと いけませんか? 3.HDD中のファイルを移動したいのですが、 私の知識では、 ファイルを読み込んで、 クリエイトして、、、 となってしまいますが 簡単なAPIがあれば教えてください。 よろしくお願いします。
>>667 スレタイを声に出して百回読んだ後、回線切って氏ね
久々に切れ味鋭い返しをみせてもらった。(`・ω・´)
>>661 IHTMLDocument2インタフェース取ってきてスタイルシートいじればいけるはず
671 :
デフォルトの名無しさん :2005/12/21(水) 13:48:51
class cWrdn : public TPersistent { : } class Box : public TCustomControl { private: cWrdn* FCWrdn; protected: virtual void __fastcall SetCWrdn(cWrdn* value); virtual void __fastcall Paint(); public: __property Canvas; __property Parent; __property cWrdn* CWrdn = {read=FCWrdn, write=SetCWrdn};//error __fastcall Box(TComponent* Owner); __published: __property Align; }; コンポーネント作成中のヘッダです。 errorの行が、E2040宣言が正しく終了していない と言われます。 間違いを教えて下さい><
>>667 1. RegファイルならShellExecuteやCreateProcessでregedit.exeの引数に渡せば適当に読み込んでくれる。
3. ShFileOperationあるいはMoveFile
>>673 あーわかった。
×cWrdn* FCWrdn;
○cWrdn* FCWrdn();
なんでやねん
676 :
デフォルトの名無しさん :2005/12/21(水) 22:00:03
>>673 FCWrdnはポインタで、要するにreadはダイレクトにアクセスするだけで
読みだし用メソッドは考えておりません。
なら、privateの変数をpublicで直接読み出そうとするからだろ。 確かこういう場合は読み取りメソッドを挟まないと駄目でそ?
あ、もちろん__propertyの場合の話ね。
class cWrdn : public TPersistent
{
} ←のセミコロンの抜けがただの写し忘れだとして、
>>671 のはコンパイル通るから、そのコードからじゃ分からなさそう
681 :
デフォルトの名無しさん :2005/12/21(水) 22:37:14
わかんないです><
>>666 (例によってBCB未体験ですが)
コンポーネントがオブジェクトを所有している場合,
たとえばコンポーネント内でオブジェクトを生成した場合などをのぞけば
デストラクタのオーバーライドは基本的に不要だと考えてよいと思います.
683 :
デフォルトの名無しさん :2005/12/22(木) 01:48:53
684 :
671 :2005/12/22(木) 11:49:04
cWrdnって単なるTPersistentを継承したクラスでいいの? プロパティ一個もない単なるクラスなんだけど
プログラムをいじろうとしたら赤の矢印とか四角がでてエラーになります どうすればいいですか
これはもうだめかもわからんね
AnsiString ="" とかの""内に、テキストとしての"を入れたいんですけどどうすればいいですか?
\"
689 :
デフォルトの名無しさん :2005/12/25(日) 12:30:10
>>688 あまりにストレートな回答で
687が気付かないと懸念するが如何
690 :
デフォルトの名無しさん :2005/12/26(月) 13:34:11
キーボードが押されたキーをフックする方法を教えてください
質問です。 2byteのバイナリデータを読み込んで10進数化するにはどうすればよいのでしょうか?
693 :
デフォルトの名無しさん :2005/12/26(月) 16:52:11
お願いします。 リファレンスについて質問です。 関数の仮引数の"const T&"と、(constでない)"T&"のメカニズムが分かりません。 constの場合はなぜ、T型でなくてもいい(そのような仕様にした)のでしょうか? よろしくお願いします。
694 :
デフォルトの名無しさん :2005/12/26(月) 16:53:42
>>691 すみません。
参考になるHPがあったらURLを教えてください
>>692 >2byteのバイナリデータ
16進文字列か数値か、もしくはその他かで話が違う。
>10進数化
10進文字列か数値か、もしくはその他かで話が違う。
数値入力かつ数値出力なら変数に入っている数値をプログラマがどう意識するかの違いだが。
>>695 例えば
FF 00 → 255
10 00 →16
10 0A →2576
としたいのですが、簡単な方法は無いでしょうか?
697 :
デフォルトの名無しさん :2005/12/26(月) 17:41:14
HINSTANCE hInst; HWND handle = ::FindWindow( "Notepad", "無題 - メモ帳" ); hInst = (HINSTANCE)::GetWindowLong( handle, GWL_HINSTANCE ); hMyHook = ::SetWindowsHookEx( WH_KEYBOARD, (HOOKPROC)MyHookProc, hInst, 0 ); if( !hMyHook ) ::MessageBox( Handle, "フックに失敗しました", "Error", MB_OK ); これフックに失敗するのですが、何が原因でしょうか?
>>696 BYTE 列を unsigned char b[] 、数値配列(十進と理解できるもの)を int d[] として、
for (int i = 0;i < 10;i++)
d[i] = (short &)b[i*2];
>>696 ありがとうございます。早速試してみます。
>>697 他のプロセスに対するフックの場合はフックプロシージャ(MyHookProc)はDLLに作らなくてはならず、
SetWindowsHookExの3番目の引数(hInst)は、そのDLLのハンドルでなくてはならない。
その上で特定のスレッド(メモ帳)に対してフックしたいなら、そのスレッドIDを4番目の引数で指定する。
指定しなければグローバルフックになる。
701 :
デフォルトの名無しさん :2005/12/26(月) 18:44:28
>>700 なるほど、確かに色々検索していたらDLLを作るってかいてました。
親切にありがとうごあああいmす
702 :
デフォルトの名無しさん :2005/12/26(月) 21:42:59
フォーカスを持っているコントロールが何かを知りたいのですが 教えていただけないでしょうか
>>702 TForm::ActiveControl
TScreen::ActiveControl
>>693 便利だから
逆に、非const参照を引数に取る関数は、その引数を書きかえることが前提。
それに一時オブジェクトを渡しても意味がないしバグの温床になりかねないので禁止されてる。
>>693 const T&を仮引数にするのは殆どの場合,本来Tにすべきだが効率上の都合だけでconst T&になっている。
だからconst T&がT以外でも受け付けるのは仮引数の型がTの場合と同じ挙動になるようにしているため。
という話を聞いたことがある。
706 :
デフォルトの名無しさん :2005/12/27(火) 23:46:15
特定のキーの動作を、別のキーの動作に変更することは可能でしょうか? 例えばテキストボックスの中で、テンキーの * を押すと バックスペースの変わりになるとかをしたいのです よろしくお願いします
707 :
693 :2005/12/27(火) 23:50:42
>>706 void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if (Key == '*')
Key = '\b';
}
テンキーなのでVK_MULTIPLYの方がいい
KeyPressで仮想キーコードは使えない
711 :
デフォルトの名無しさん :2005/12/28(水) 19:58:50
「プログラミング言語C++」を読んで勉強しているのですが、 電卓プログラムと称して以下の表記がありました。 program: END expr_list END expr_list: expression PRINT expression PRINT expr_list expression: expression + term expression - term term 以下略 しかし、意味がさっぱり分からなくて困っています。 詳しく説明したサイトがあったら、教えて欲しいのですが。 ドラゴンブックを読んでも、上記のような表記法は見あたりませんでした。 よろしくお願いします。
712 :
711の続き :2005/12/28(水) 20:00:23
しかし、意味がさっぱり分からなくて困っています。 詳しく説明したサイトがあったら、教えて欲しいのですが。 ドラゴンブックを読んでも、上記のような表記法は見あたりませんでした。 よろしくお願いします。
>>711 なんらかのパーサジェネレーター用のコードだろうなあ。
読み方はprogramは何も無いかexpr_listがひとつあるかどちらかで、expr_listはexpressionのあとにPRINTが続いて終わるかその後にまた同じものが続くかどちらかで…だろう。
それ以上はわからん。yaccとは違うように思える。
その本にポインタが示されて無いか?
714 :
712 :2005/12/28(水) 20:26:45
ありがとうございます。 多分BNFだと思うのですが、何でこんな表記が必要なんだろう? ポインタは示されていません。 引き続き待たせてもらいます。
完璧スレ違いという事には気づいてもらえんか
716 :
712 :2005/12/28(水) 20:36:12
すみません、きづきませんでした。 おさわがせしました。 さようなら
>>711 とりあえずそこをすっ飛ばして先を読んで、
実際に電卓プログラムを打ち込んで動作させてごらん。
なお、「プログラミング言語C++」は初心者が読む本じゃないよ。
一通りの知識とある程度の経験を蓄えて読んだほうが良い。
C++を学ぶ上では必読の本ではあるがね。
あと、微妙にスレ違いの話題だな。
今後はC++スレに行きなさい。
718 :
712 :2005/12/28(水) 20:46:50
分かりました。ありがとうございました。 C++スレに逝って来ます。
719 :
デフォルトの名無しさん :2005/12/31(土) 16:27:59
しばらく前に作ったプロジェクト(Indy 9.0.14使用)をコンパイルしようとしたら [C++ エラー] winsock2.h(109): E2238 'fd_set' の宣言が複数見つかった [C++ エラー] winsock.h(54): E2344 一つ前の 'fd_set' の定義位置 [C++ エラー] winsock2.h(112): E2146 宣言には識別子が必要 [C++ エラー] winsock2.h(153): E2238 'timeval' の宣言が複数見つかった : : : [C++ エラー] winsock2.h(625): E2228 エラーあるいは警告が多すぎる と出てコンパイルできなくなってた…(涙 どうすればいいんでしょ?
>>719 プロジェクトオプションの「条件定義」に「_WINSOCKAPI_」を追加汁
721 :
デフォルトの名無しさん :2005/12/31(土) 18:52:23
>>720 だめですた
NO_WIN32_LEAN_AND_MEAN;_WINSOCKAPI;_DEBUG
となっていますが、変化ありません
申し送れましたが、BCB6UPD#4,Win2kSP4です
>>721 _WINSOCKAPI じゃなくて
_WINSOCKAPI_
723 :
デフォルトの名無しさん :2005/12/31(土) 21:26:26
>>722 ありがとうございました
今度は
-----------------------------------------------------------------------------------
if(hThread==NULL){
if(NULL!=(hThread=CreateThread(NULL,0,CaptureThread,0,0,&ThreadId))) //←ここんとこ
}else{
TerminateThread(hThread,ThreadId);
hThread=NULL;
}
-----------------------------------------------------------------------------------
のところで
[C++ エラー] Unit1.cpp(106): E2451 未定義のシンボル CaptureThread
と言われますた
クソして回線切って引き篭もります
>>723 CaptureThreadは何か(と言ってもおそらくCreateThread)の打ち間違いではないかい?
725 :
723 :2006/01/01(日) 14:22:36
//--------------------------------------------------------------------------- unsigned long __stdcall CaptureThread(void *ArgList) { getkekka(Label4->Caption); Form1->hThread = NULL; return (0); } //---------------------------------------------------------------------------
>>725 単純にUnit1.cppの106行目の時点ではまだCaptureThreadが見えていないと予想。
727 :
デフォルトの名無しさん :2006/01/03(火) 20:19:09
C++にしかない(Cにはない)ファイルのオープン方法はないのでしょうか? #include <ifctream> が検索したら、ヒットしました。 文字通り超初心者です。よろしくお願いします。
>>727 #include <ifstream>
using namespase std;
:
:
ifstream inputFile( "data.txt" );
if (inputFile.good()) {
//読み込み処理
:
:
inputFile.close();
}
ScanLineを利用して画像を表示しています。 とりあえず画はでるようになったのですが、 ScanLineでセットした値と後からPixelsで読み出した値が異なるのですが、 ガンマ変換みたいな処理が何処かで行われているのでしょうか? 確認用にScanLineで全画素各色を0x80(全面灰色)で埋めました。 後からPixselsで読むとR=84h,G=82h,B=84hで返ってきます。 アドバイス宜しくお願いします。
>>730 画面の表示色数が16bitで、そのビットマップをフォームか何かに描画した色を読んでるとかじゃなくて?
732 :
730 :2006/01/04(水) 17:30:20
まさしくその通りでした。 有り難うございました。
733 :
デフォルトの名無しさん :2006/01/05(木) 10:40:33
BCB6でプロジェクトのオプションを変更したら、 SysInit.hppでエラーが発生する様になってしまいました。 オプションを元に戻しても直りません。 一度プロジェクトを作り直しと現象をおさまりますがオプションを変更すると再発します。 単体実行可能なEXEファイルを作ろうとオプションを変更しているだけなのですが。 [C++ エラー] SysInit.hpp(18): E2141 宣言の構文エラー [C++ エラー] SysInit.hpp(25): E2141 宣言の構文エラー 宜しくお願いします。
734 :
デフォルトの名無しさん :2006/01/07(土) 16:31:49
Editコンポーネントで数字だけが入力できるようにしたいのですが、 OnChangeイベントは変更後に来てしまっていて、変更前に 入力を拒否することは出来ないみたいです。 半角数字以外の入力を拒否できるようにならないでしょうか。
>>733 リンカオプション弄ってコンパイルエラー?なんて妙なこと言ってるようにしか読めないので
何のオプションを変えてるかも書いた方がいいと思われ
>>734 OnKeyPress
736 :
734 :2006/01/07(土) 21:26:16
>>735 出来ました!
ありがとうございました!
web上からファイルを拾ってきて、実行ファイルと同じディレクトリに保存するという プログラムを作りたいんですが、どのコンポーネントを使えばいいんですか?
739 :
デフォルトの名無しさん :2006/01/11(水) 07:37:06
http://www.cmpt.phys.tohoku.ac.jp/~genya/bcc.html 上記URLのHPからGSLをダウンロードしてプロジェクトに
数値計算用のライブラリを追加しようと考えています。
とりあえず[プロジェクト → プロジェクトへ追加]
からlibフォルダにあるgsl.libおよびgslcblas.libをプロジェクトに追加しました。
で、実際に関数を使おうと思って(例としてベッセル関数)、ヘッダファイルに
#include <gsl/gsl_sf_bessel.h>を追加してコンパイルしましたが
[C++ エラー] Unit1.h(14): E2209 インクルードファイル 'gsl/gsl_sf_bessel.h' をオープンできない
となります。なにが不味いのでしょうか?
というかC++自体初心者ですので自分がやっていることが正しいのかどうか
ほとんど分からない状況です。
よろしくお願いします。上記していること意外はなにもいじっていません
ヒント:インクルードパス
>>739 プロジェクト→オプション→ディレクトリ
インクルードパスにヘッダのディレクトリを追加
ライブラリパスにlibのディレクトリを追加
>742 君の頭も不味い。 "〜";
>>737 その程度ならURLDownloadToFile()で十分じゃん。
TCppWebBrowserに表示されてるhtmlドキュメント上のリンクなどを マウス使わずに踏むにはどうしたらいいですか?
>>745 踏みたいエレメントの _Click() を呼ぶ
TransparentBlt()を使いたいのですが、 msimg32.libをリンカにインポートするとはどういう意味ですか?
748 :
デフォルトの名無しさん :2006/01/15(日) 06:42:23
すみません、age忘れました。
>>748 あんま聞かない表現だけど、リンカに渡してやればいいんでしょ。
プロジェクトオプションの「ディレクトリ/条件」タブの「ライブラリパス」に「$(BCB)\lib\psdk」を追加して、
ソースのどっかに「#pragma link "msimg32.lib"」って書けば使えるよ。
751 :
747 :2006/01/15(日) 20:58:40
>>749 レスありがとうございます。
ですが、「ディレクトリ/条件タブ」がみつかりませんでした・・・。
すみませんがどこにあるのか教えていただけないでしょうか?
752 :
デフォルトの名無しさん :2006/01/15(日) 21:52:31
質問なんですがC++(Borlandの無料の奴)で COMポートをオープンして、ボーレートとかの設定してデータの送受信をしたいのですがどうしたらよいのでしょう? インターネットネットで調べてみたのですが超初心者の私にはさっぱりわかりませんでした。 どなたか教えて下さい。宜しくお願いします。
> #pragma link指令は普通ヘッダに書く んなこたねー
755 :
752 :2006/01/15(日) 23:13:50
>>753 さん
ありがとうございました。
誘導先で質問してみます。
756 :
747 :2006/01/16(月) 06:34:59
>>753 ありがとうございます、ですがどうもスレ違いの質問をしていたようです。
GUIで動かしてるみたいなので、
このスレはborlandの統合開発環境とかいうやつの事なんですね。
多分、僕の質問も
>>752 さんと同じ場所の内容だと思いますので、
そちらのほうで質問しなおしてみたいと思います
すみません、丁寧な説明ありがとうございました。
>>750 TCppWebBrowserからIHTMLDocument2インタフェースを取得して、そこからDOMでエレメント取得。アンカー(A)オブジェクトのclickメソッド呼び出し。
IHTMLDocument2インタフェースの取得の仕方はぐぐれば出てきたはず。
教えてもらえると嬉しいのですが。 自分で作った構造体をvectorでメモリ確保は自分でやるとして Strings->Objects[] に関連づけるとすると 構造体ポインタを無理矢理 reinterpret_cast<TObject*>(&my_struct)とキャストして 使って問題ないんでしょうか? 一応動くんですが どこかでメモリリークしてるみたいなんで やり方は間違ってないんでしょうか? リスト系の文字とデータ結びつけるのってこういう感じになるんでしょうか。 それともvectorのiteratorをそのままポインタとして使ってることに問題が..?
>>758 質問の趣旨が不明確なのであてずっぽうで言うが
99%以上の確率でお前の書いたコードに問題がある。
どこが悪いか判断できないならコードを晒せ。話はそれからだ。
>それともvectorのiteratorをそのままポインタとして使ってることに問題が..?
vectorの要素をポインタで参照したかったらこうする。
std::vector<int> hoge;
//...
int* foo = &hoge[0];
でもメモリリークの原因は別だろうな、多分。
760 :
758 :2006/01/16(月) 22:27:02
>>759 Res有り難うございます。
コードはどこに問題があるかわからないので
晒す部分を絞り込むことさえできません(アフォ)
# std::vector<int> hoge;
# //...
# int* foo = &hoge[0];
これはhoge[0]のアドレスを指してるのはわかるんですが
イテレータから各コンテナのポインタを取得したい場合は
int* a;
std::vector<int>::iterator pos;
for(pos = hoge.begin(); pos != hoge.end(); ++pos)
{
a = &(*pos); //意味無いコードです
}
という感じなんでしょうか?
ようはvectorのiteratorからコンテナのポインタを取得する方法と
後はint*型のような組込型でもTStrings->Objects[]に関連
させるためにはTObject*型みたいな大げさな型にキャスト
しなくてはいけないのか?
という2点が疑問点です。 とりとめもなく長文ですみません。
>>760 std::vectorに限っては特別で要素が連続していることになっている。
だから配列へのポインタみたいにこんなこともできる。
std::vector<int> hoge;
int *p = &hoge[0], pEnd = &hoge[0] + hoge.size();
while (p != pEnd)
... = p++;
>>760 >a = &(*pos); //意味無いコードです
それでヲケ。カッコいらんけど。
>後はint*型のような組込型でもTStrings->Objects[]に関連
>させるためにはTObject*型みたいな大げさな型にキャスト
>しなくてはいけないのか
言いたいことは
×関連
○代入
なんだろうな、多分。
TString::ObjectsはTObject*型なんだから組込み型ポインタを代入するにはキャストするしかない。
あたりまえじゃん。
763 :
758 :2006/01/16(月) 23:21:40
>>761 へえ こういうのもアリなんですね。
>>762 >>a = &(*pos); //意味無いコードです
>それでヲケ。カッコいらんけど。
a = &*pos;
ですか?なんか読みにくい...
>あたりまえじゃん。
そうですよね。なんかイメージがわかなくて。
int型のポインタというと小さい気がするんですが
TObject型ポインタといとサイズが...
と思ってsizeofで測ってみたらどっちも4byteでした
なんか,大きな勘違いをしてました。型のサイズとかは
別に持ってて,ポインタはどんな型でも開始アドレスを
示しているだけということですか。
>>763 >なんか,大きな勘違いをしてました。型のサイズとかは
>別に持ってて,ポインタはどんな型でも開始アドレスを
>示しているだけということですか。
おまえ、一から勉強しなおせ。
>>763 だからね、std::vector<int>::iteratorとbegin()とend()の代わりに
int *と&hoge[0]と&hoge[0] + hoge.size()が使える。
なぜならポインタはランダムアクセスイテレータの一種だから。
こうすれば&*と書く必要がない。
int* a;
int *pos;
for (pos = &hoge[0]; pos != &hoge[0] + hoge.size(); ++pos)
{
a = pos;
}
767 :
758 :2006/01/17(火) 00:22:25
>>766 なるほど。for文の中はシンプルになりますね。
有り難うございます。
BDSのBCBでDBのプログラムを組んでいます。 DBGridで表示中のライン数を表示したいのですがどうすればいいのか分かりません。 昔は、RowCountプロパティで求められたように記憶しているのですが、 BDSでは見当たらないのです。(記憶違いかな?) コードを書いて全件数求めるやり方しか方法はないのでしょうか? よろしくお願いいたします。
769 :
デフォルトの名無しさん :2006/01/17(火) 21:52:26
VC++2005になってGUIの作りやすさはBCB/Delphiと同じくらいになりましたか? 併用している方、教えてください!!
>>769 今までと何も変わらないよ。
強いて言えばC++/CLIがあるから
.NetフォームアプリケーションではGUIを作った後が良くなったのかもしれない。
俺はC++/CLIは使ったことはないけれど。
あとExpressではリソースエディッタがない。
771 :
デフォルトの名無しさん :2006/01/18(水) 00:10:48
>>770 ありがとうございました。
VC2003よりもVC2005はVBらしくなったと読みましたので、
少し期待したのですが違ったのですね。
VC#=VB>>>>VCという構図はそのままなんですかねぇ。
>>771 C++/CLIはC++のスーパーセットだけど、拡張部分はまんまC#だと思えば良い。
今試しにWindows Formアプリケーションを作ってみたけど、使い勝手はC#の
それと極めて類似している。
.(ドット)が->(アロー)、*が^に(マネージオブジェクト)なったと思えば。
ローカル変数ではnewしなくてもマネージオブジェクトを作れたり、 しかもそうするとスコープを抜けるときにデストラクタが呼ばれたりすることに関してはC#より上。
VC++2005 MFCついてないよね
>>773 あーそれがあったか。後、newの代わりにgcnewを使う(マネージオブジェクト)
位かな。気を付ける点は。managed C++がごちゃごちゃしていたのに対して、
本当に洗練されたね。本質は変わってないけど。
777 :
デフォルトの名無しさん :2006/01/18(水) 00:59:51
∧_∧ ( ・∀・)
>>757 TCppWebBrowser *Browser
IHTMLDocument2 *doc2;
IHTMLElementCollection *ec;
Browser->Document->QueryInterface(IID_IHTMLDocument2,(void**)&doc2);
doc2->get_links(&ec);
ここまででたぶん、ドキュメント内のリンクのエレメントコレクションを取得しました。
で、ドキュメント内にあるリンクが
<a href="link.html">リンク1</a>
<a href="link2.html">リンク2</a>
<a href="link3.html">リンク3</a>
のようなnameもidも無いものだった場合、特定のリンクを選んでclick
させることはできますか?
>>778 コレクションの走査が分からんの?
コレクションからエレメントが取れてるんなら、エレメントのouterHTML見れば<a〜/a>までの文字列が入ってるから、特定できると思うけど。
780 :
デフォルトの名無しさん :2006/01/18(水) 19:28:15
自作のデータベースから任意の検索条件で検索を行い、 検索結果を一覧で表示するプログラム をc++builder6で作成するプログラムがわかりません。 どなたか教えてください。
781 :
デフォルトの名無しさん :2006/01/19(木) 17:42:46
データベースエリアスってなんですか?
>>778 <P>
<A href="
http://www.2ch.net " id="test">2ch</A>
<script type="text/javascript">
var obj = document.getElementById("test");
document.write(obj + "<BR>");
document.write(obj.href + "<BR>");
document.write(obj.firstChild.nodeValue + "<BR>");
</script>
783 :
782 :2006/01/20(金) 09:31:27
例は面倒だから列挙しないでidから取ってるが、body以下または適当なid付きブロック要素以下のAオブジェクトを列挙。 各個にhrefプロパティやA内のテキストノードの値を調べてオブジェクトを特定、clickメソッド呼び出せばいいだけ。 面倒だからJavascriptで書いたけどC++でも同じ。
MFCを使った開発があまりにもだるいので C++Builderへの乗り換えを検討しているのですが気になることがあります 仕事で使っても安心ですか? 将来性はありますか? 最適化性能はどうですか? 良さそうならEnterprise版に相当するものを上司に提案してみようと思ってます
どれも微妙
将来性を除けば及第点じゃないかな
>>784 Pro版(激安)を上司に提案する方法がある。
とりあえず、ポトペタとC/C++系のコンパイルリンクは完璧。
コンパイル遅いだけで。
>>787 「コード補完が泣ける程遅い」ってのも入れておいてくれ。
あと気になるのが標準のVCLクラスがUnicodeに対応していないってのが‥‥
IDE SpeedFixを入れて、プリコンパイルヘッダを作成すれば、コード補完が かなり速くなるぞ。コンパイルもな。 Unicodeはねえ・・・・
>IDE SpeedFix 難だっけ、これ? >Unicodeはねえ・・・・ 自分UTF-8で処理して、コンポに渡す瞬間にUtf8ToAnsiして渡してる。 で、おk。
>MFCを使った開発があまりにもだるいので >C++Builderへの乗り換えを検討しているのですが こういう人は、起動してポトペタした瞬間乗り換えだと思う。 某サイト(U$)から、体験版落とせ。
開発環境に制限がないのにMFC使っているなら 乗り換えるべきじゃないの?
逆にVCLを研究してMFCをラッピングする独自のクラスライブラリを作ってそれを売り出せばいい。
>>790 >>794 >>639 但し、bcc32pchPlugin60.bplとIDECompilerSpeedFix60.bplは
同時に入れるなよ。前者は後者の機能を含んでいるので、両方
入れるとおかしな事になる。
なるほど、サンクス
797 :
デフォルトの名無しさん :2006/01/21(土) 01:32:30
ネット環境なくてガッコのPCでC++Builderを手に入れたんだけど、インストールしても起動方法がわかりません。やり方教えて頂けませんか?
>800 自分で作らないと使い方覚えるのが面倒だろ。 そう言うのは買うんじゃなくて自分で作るのが一番なんだよ。
>>798 BCBじゃなくてBCC5.5.1と予想
>>779 >コレクションの走査が分からんの?
遅レスですが、そうです。
idもnameも使える前提でいいので教えて下さい。
cとc++は具体的にどう違うのでしょうか? 最終的にc++を主力に覚えていきたいと思うのですが c言語の機能を網羅してからc++に移行したほうがいいですか? c++になったとき使えなくなるような機能はないのでしょうか? c++はcの完全互換ではないとかきくので
807 :
805 :2006/01/28(土) 19:16:01
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { Application->MessageBoxA("保存しますか?","終了",MB_YESNOCANCEL); } てな感じでダイアログを表示させた時、キャンセル押した時にアプリ終了を中止するのはどうやりますか?
>>808 if (Application->MessageBox("保存しますか?", "終了", MB_YESNOCANCEL) == IDCANCEL)
Action = caNone;
>>808 OnCloseQueryがそのためのイベント
>>809 ありがとう。
>>810 ウィンドウの×を押した時のCloseイベントをキャンセルしたかったので。
>>811 >ウィンドウの×を押した時のCloseイベントをキャンセルしたかったので。
だからそのためのイベントがOnCloseQuertyだってのに、この池沼
void TForm::Close() { bool CanClose = false; if (FOnQueryClose) FOnQueryClose(this, CanClose); if (!CanClose) return; if (FOnClose) FOnClose(this); }
814 :
デフォルトの名無しさん :2006/02/02(木) 09:57:56
815 :
814 :2006/02/02(木) 10:00:15
少しフォントがずれてしまいましたが、b.cpp b.h Makefile3はdir3に含まれます。 どなたか、知恵を貸してください
817 :
デフォルトの名無しさん :2006/02/03(金) 06:24:03
ステータスバーに画像とか表示できますか?
>>817 私も現在トライしてまして(ステータスバーにLEDを表示する)、
もうちょいでできそうです。
「StatusBar にアイコン表示」
あたりのキーワードでググったページを参考にしてますが、
他に参考になるところがあれば、私も紹介して頂きたいです。
>>817 ステータスバーのプロパティ「Panels」でStatusPanelを新規追加して
その新規追加したStatusPanelのプロパティをpsOwnerDrawにしてやる
ステータスバーのイベントハンドラ OnDrawPanelに描画処理を書いてやる
とできた
820 :
デフォルトの名無しさん :2006/02/04(土) 06:58:27
基本的なことで申し訳ないんですが、C++Builder6でエディタに 行番号を表示するのはどうやってやるんですか? カーソル位置の行番号は表示されるんですが、行ごとにはどうやって やるのかヘルプ見ても分かりません。
822 :
デフォルトの名無しさん :2006/02/05(日) 06:54:29
vimをインストールして、 :se nu
ある文字列があってその中からある指定語以下の文字列を 取り出すにはどうしたらいいでしょうか? 例「あいうえおかきくけこ」という文字列があり 「おか」という指定後を与えると 「おかきくけこ」という文字列が欲しいです
String s,ss; s = "あいうえおかきくけこ"; ss = s.Delete(1,s.Pos("おか"));
もとい ss = s.Delete(1,s.Pos("おか")-1); かな
俺は、そういうのはすぐにc_str()に対してstrstr()してしまう駄目人間
自分で試せよ。 エラー処理って言葉知ってる?
829 :
デフォルトの名無しさん :2006/02/07(火) 19:53:41
>>827 関数名を教わったんだから、その先は自分でヘルプ引きなよ
例外のことも書いてあるから。
そんなんじゃ進歩しないよ
830 :
デフォルトの名無しさん :2006/02/07(火) 22:07:00
JavaScriptやFlashのASくらいしか経験が無いのですが、 ゲームを作りたくてどの言語が良いのか迷ってます。 書店で見た感じではC++が多そうだったのですが、 どの言語が向いてる、とかはありますか?
2D、3Dを自分で描画するなら、ポトペタのアドバンテージはない。 つーか、ゲーム製作板池
BCBの利点はポトペタだけではないでよ。
833 :
デフォルトの名無しさん :2006/02/08(水) 10:45:46
コンポーネント?
Image上でマウスをクリック、移動させると その動きに沿って黒線が表示される、という 簡単なペイントみないなモノを作ったんですが、 印刷してみても真っ白になってしまいます。 ImageをPaintBoxに代えてみたりBitmapを考えてみたり 色々してみましたが、上手くいきません。 おそらく物凄い初歩的なミスだと思うのですが・・・ わかる方がいらしたら教えていただけないでしょうか?
>>834 そんなに難しくはないとはいえ、メソッド一発で印刷してくれるわけじゃない。
その説明で問題点を言い当てるのは不可能。
TImage に描いたものと同じものを TPrinter の Canvas に描いて、
それを出力するというのが、順当な方法(他にもある)
836 :
デフォルトの名無しさん :2006/02/09(木) 11:00:14
>>835 void __fastcall TForm1::Print1Click(TObject *Sender)
{
RichEdit1->Print(Caption);
TPrinter *Prntr = Printer();
Prntr->BeginDoc();
Prntr->Canvas->Draw(0,0, Image1->Picture->Graphic);
Prntr->EndDoc();
}
こんな感じにしているんですが・・・コレで問題点がわかりますでしょうか?
837 :
デフォルトの名無しさん :2006/02/09(木) 11:02:20
コンボボックスを使って、ペイントボックスに表示させる絵を変えたいのですが、 ビットマップファイルから読み込んで表示させることができません。 void型の値は許されない とか TCanvas*型で定義されているのでvoidは渡せない とエラーが出てしまいます。 何か別のを使うのでしょうか? 教えてください。おねがいします。 if(ComboBox1->ItemIndex==1){ PB1->Canvas->CopyRect(Rect(20,20,20+BMP->Width,20+BMP->Height), BMP->LoadFromFile("001.bmp"), Rect(0,0,BMP->Width,BMP->Height)); } else if(ComboBox1->ItemIndex==2){ PB1->Canvas->CopyRect(Rect(20,20,20+BMP->Width,20+BMP->Height), BMP->LoadFromFile("002.bmp"), Rect(0,0,BMP->Width,BMP->Height)); } else if(ComboBox1->ItemIndex==3){ PB1->Canvas->CopyRect(Rect(20,20,20+BMP->Width,20+BMP->Height), BMP->LoadFromFile("003.bmp"), Rect(0,0,BMP->Width,BMP->Height)); } else if(ComboBox1->ItemIndex==4){ PB1->Canvas->CopyRect(Rect(20,20,20+BMP->Width,20+BMP->Height), BMP->LoadFromFile("004.bmp"), Rect(0,0,BMP->Width,BMP->Height)); }
>>837 BMP->LoadFromFile("001.bmp");
PB1->Canvas->CopyRect(Rect(20,20,20+BMP->Width,20+BMP->Height),BMP,Rect(0,0,BMP->Width,BMP->Height));
でいけるんじゃないかな。
あと、switch-case の方が見通しがよくなるのと、PB1->Canvas->Draw(20,20,BMP);
の方が楽じゃね?
>>836 Image1 に対して、Lineto とか行ってる筈で、それと同じことを同時に
Prntr->Canvas に対して行う。
それが面倒で、どうしてもそのままのものを印刷したいと思ったら、
bitmap をそのまま出力する手もあるけども、これは少し難しい。
http://www.hey-to.net/ML-archive/vcppML/1999/msg10787.html
840 :
デフォルトの名無しさん :2006/02/09(木) 13:59:15
ボーランドは俺を怒らせた…
バーゲンというなのもとに糞を2005年おれにうりつけたから
842 :
836 :2006/02/09(木) 14:26:12
>>838 アドバイスありがとうございます。
なんとかぎこちないながらも印刷できるようになりました。
印刷のときとても小さく印刷されてしまうのですが、大きく印刷する方法等はあるのでしょうか?
プリンタのプロパティの出力サイズやズームをいじるとエラーが出てしまいます。
解決方法がわかるなら教えていただきたいのですが・・・。
>>842 印刷までたどりつけば、あとはヘルプと検索で自力解決できると思うよ。
小さく印刷されるなら、大きく描画すればいい。
845 :
836 :2006/02/09(木) 15:35:23
ありがとうございます。 やってみます。
846 :
デフォルトの名無しさん :2006/02/09(木) 15:44:45
>>838 ありがとうございます。
おかげで絵が表示されるようになりました!
ですが、ファイルの入出力を行うと
「ファイルが開けません」と、エラーが出て表示されなくなってしまいます。
何が間違っているのでしょう?
教えてください。お願いします。
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
Caption=OpenDialog1->FileName;
BMP->LoadFromFile("001.bpm");
PB1->Canvas->Draw(0,0,BMP);
bpm
848 :
デフォルトの名無しさん :2006/02/09(木) 16:01:35
>>846 Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
Caption=OpenDialog1->FileName;
BMP->LoadFromFile("001.bmp");
PB1->Canvas->Draw(0,0,BMP);
でした。
お願いします。
OpenDialog がカレントディレクトリを変えてるのだろう。 String path = GetCurrentDirectory() SetCurrentDirectory(path) で挟む。
850 :
デフォルトの名無しさん :2006/02/09(木) 16:24:14
>>850 ヒントは十分(というか与えすぎたことを反省してる)だから、あとは自分で考える。
852 :
デフォルトの名無しさん :2006/02/09(木) 16:30:56
853 :
836 :2006/02/09(木) 16:48:28
大きく印刷する方法、探していますがなかなかうまくいきません。 簡単な見落としがあるような気がするのですが・・・。 そう難しくないことなのでしょうか?
大きく印刷するというより、Canvas を小さくする。
あ、ちょっと適当なことをいっちゃったので訂正。 Prntr->PageWidth と、Image->Canvas->Width の比率に合わせて大きく描く。
BorlandのホームページからC++Builder 6 Personalのフリーの英語版をダウンロードしてきて、それに日本語版のアップデートを当てたら日本語化されて今のところ不具合も見られないのですが、同じようにして使っている方いますか? 何か不具合あったりするんでしょうか? VC++2005 Expressよりよさそうなので使ってみようと思うのですが
>それに日本語版のアップデートを当てたら日本語化されて 嘘はいかんよ嘘は。
858 :
デフォルトの名無しさん :2006/02/10(金) 15:08:45
それよりアクティベーションが止まらないか心配だ
BCB6とDel7の悪痴はキャンセルボタンでスルー出来るので無問題。
860 :
デフォルトの名無しさん :2006/02/10(金) 16:16:53
キージェネ持ってるし。 フヒヒスイマセン
アクティベーションをスルーすると、コンパイルして出来たexeファイルに 未承諾と書かれてしまう。
IdHTTPでproxyの設定を"インターネットオプションに従う"にするには どうすればいいですか?
865 :
デフォルトの名無しさん :2006/02/11(土) 21:41:06
862 :デフォルトの名無しさん :2006/02/10(金) 19:29:53
IdHTTPでproxyの設定を"インターネットオプションに従う"にするには
どうすればいいですか?
863 :デフォルトの名無しさん :2006/02/10(金) 19:32:40
>>862 それはガセ
フリーの開発環境の総容量やメモリ使用量などはどのぐらいになりますか?本ページに書いてないようですけど
ペンティアム2で動く メモリ256で動く
ディスク容量が400MBぐらい メモリ使用量が起動直後で20MBぐらいになってます
メモリの残容量なんか関係ない。 スワップに耐えられる精神力を持ち合わせているかどうかが鍵だ。 ディスク残容量はいらないアプリは全部消せ。いける。 と言うか、アプリは全部自前で作ろうという気合いが必要だ。 それすらも出来ないのであればActiveBasicかHSPをお薦めする。 やはり精神力が重要だ。
>>869 あほか。精神力、精神力って、体育系ですか?
スワップが嫌ならメモリ増やせばいいし、頭が悪い人にはプログラミングは出来ない。
精神力から体育系だの頭が悪いだのに繋げるような糞レスの主が 頭良いようには見えないな、とりあえず。 早朝からなに興奮してんだか。
>870 ネタにマジレスカコワルイ なーつかしーw
ケンカする暇あったら役立つコードでも張れってんだ。 void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage("ぬるぽ"); }
::SendMessage(HWND_BROADCAST, WM_NULL, 0, 0);
877 :
デフォルトの名無しさん :2006/02/13(月) 11:54:17
>>861 どこに書かれるのか教えて!
だって悪痴をスルーしてるだけで、製品2つ(日本版、英語版)も買ったもん。
878 :
大倉 :2006/02/13(月) 13:54:52
ソートアルゴリズムについておしえてください。 10個の整数を並べ替えるプログラムを書く課題なのですが・・・
>>879 たった10個ならバブルソートでもしとけば?
ググったらたくさん参考になるサイトが出てくるよ
<algorithm>のstd::sortでいいよ。
BCB4を使ってるんですがソースを変更せずに再構築するだけでexeのbinaryが変わってしまいます。 全く同じexeを作るにはどうしたらいいんでしょうか?
違うのはビルド番号のリソースとかかな
884 :
デフォルトの名無しさん :2006/02/13(月) 23:47:41
bitmapの矩形領域を別のbitmapにコピーしたいのですが、 なにか簡単な方法がありますか? scanlineで行えば良いのですが矩形領域のコピー位なら なにか便利な方法が用意されている様な気がするのですが。
CopyRect
886 :
884 :2006/02/14(火) 00:02:05
887 :
デフォルトの名無しさん :2006/02/15(水) 11:14:58
BC++ 5.02Jから職場に転がっていたBCB4に乗り換えようとしています。 さしあたっては今までBC++でできていたことがBCBでもできるか調べているところですが、 BC++のstreamable class(TStreamableBaseおよびその下位クラス)に相当するクラスはvcl には無いのでしょうか。BC++だと例えばアプリで動的に生成させたオブジェクトをディスク に書き込み、後からそのファイルを読んで保存した時点でのアプリの動作状態を復元する ことができます(オブジェクトがTStreamableBaseを継承していれば)。 ところがBCBのヘルプを探してもそれに相当するクラスの記述が見つかりません。もとから streamable classをサポートしていないのか、サポートしているなら適当なサンプルコード がどこかに無いでしょうか。
>>887 OWLもコンパイルできるんじゃね?
VCLなら、
TObject-TStreamがベースクラス、
それを派生したTResourceStreamとか、TFileStream、
TMemoryStreamとかがあるお。
889 :
デフォルトの名無しさん :2006/02/15(水) 11:55:19
自分がアイコン状態かどうかを見る方法を教えてください。 ちなみにアイコン化状態でWindowStateをみてもNormalだったので
WindowState
>>889 IsIconic(Application->Handle)
892 :
デフォルトの名無しさん :2006/02/15(水) 13:22:12
BCB6 から BDS2006 へ移行中なんですが,自作(VCL派生)コンポーネントをツールパレットに登録できずに困っています *.pas はできそうなのに *.cpp のやりかたがわからない・・・ それに,パッケージのメイク(コンパイルって言い換えもなんだかなぁ)をすると,なぜリンクしようとするの? なんだか頭が混乱してきました どなたかアドバイスをください
やめとけ
なぜ?
少佐、助けてください。登録できません。 コード取得時にエラーが発生しました。 このインストール番号ではこれ以上登録キーを発行できません。 発行数を増やすにはボーランドインフォメーションサービスセンターにお問い合わせください。
おれは、大佐だし。
じゃ、俺は人形遣い。
質問です。 下のようにフォームにボタンを設置してコードを書きました。 void __fastcall TForm1::Button1Click(TObject *Sender) { 色々処理; } 後で、このボタンを押したときの処理を違う関数でも実行したくなったのですが、 Button1->OnClick(NULL); とするか、 新しく自作関数を作り、そこに処理を書いて、2つの関数から呼び出す。 のどちらが良いと思いますか? Button1->OnClick(NULL);の方が無駄がないような気がしたのですが迷っています。
個人的には後者。 なんとなく、イベントハンドラ内はシンプルに、と考えてるから。 あとで引数を渡したくなった場合も対応しやすいし。
なるほど。 ありがとうございますm(_ _)m
903 :
デフォルトの名無しさん :2006/02/23(木) 15:10:35
Borland C++ builder6を使っていましたが、最近Borland developer studio 2006 に付属のC++ builderを使うようになりました。 以前に6で作成した計算プログラムを2006でビルドすると計算結果が違うため、デ バッグをしようとしています。6であればプロジェクト−オプション−コンパイラで デバッグボタンを押せばデバッグコードが埋め込まれてステップ実行が可能ですが、 2006でプロジェクト−ビルド設定でDebug buildを選択して適用ボタンを押しても ブレークポイントでの停止やステップ実行が出来ません。方法を教えてください。
同じソースで違う結果ですか? 大変そう・・・
BDSにBCB6以前に作られた自作コンポーネントのインストールを された方はいらっしゃいますか? 自分はまだBDSを持っていないため確認がとれないのですが、 話を聞くところによると出来ないと伺ったもので… もしインストールが行えた方がいらっしゃればその方法を お教え願いたく思います。
906 :
デフォルトの名無しさん :2006/02/24(金) 23:52:08
ド素人です。 Builder6で新規作成→その他→コンソールウィザードと、 最初に学校で習うようなc++のソースをコンパイルしたのですが、 [リンカ エラー] 外部シンボル '__InitVCL' が未解決(C:\・・・\LIB\CP32MTI.LIB|crtlvcl が参照) [リンカ エラー] 外部シンボル '__ExitVCL' が未解決(C:\・・・\LIB\CP32MTI.LIB|crtlvcl が参照) と、2つのエラーがでます。 コンソールウィザードを選んで「VCLを使う」チェックを外すと、 コンパイルできる時もあるのですが、固まってしまう時もあります。 どうすれば無事コンパイルすることができるのかご教授お願いします。
>>906 #include <vcl.h>
を消してない?
908 :
デフォルトの名無しさん :2006/02/25(土) 11:30:38
>>907 コンパイルはできるようになりました。
しかし、コンパイルできたソースのreturn (0);の前に
cin>>n;(DOS窓がすぐ消えるのを防ぐため)とかと入れてコンパイルすると
「→ int main(void)」と緑の矢印が表示されたままDOS窓が固まってしまいます。
終了させてもう一度コンパイルすると何故か正常に動きます。
何故こうなるのか教えてください。
909 :
デフォルトの名無しさん :2006/02/25(土) 14:03:03
その手のソースをコンパイルするときは bcc32を使うのは俺くらいか?
bcc32の方が圧倒的に楽だろうね。
別に普通に使ってりゃ固まるとかないんだけどな。 緑の矢印っていうから、そこでブレークしてるとかだろうけど。
912 :
デフォルトの名無しさん :2006/02/25(土) 18:50:29
目覚ましアプリつくりたいのです。 指定時刻に指定音量で指定mp3ファイルを演奏したいのです。 使うべきコンポーネントの指針を与えて下さい。
>>912 MCIかDirectShow(ActiveMovie)を直接叩く。
TMediaPlayerはMCI呼んでたと思うから行けると思うけどあのUIはいらん。
普通のWaveならsndPlaySoundとかで逝けるけど。
914 :
912 :2006/02/25(土) 22:33:27
>>913 普通にTMediaPlayerとTTimerで実装できました><
ありがとうごちそうさま
プログラムを実行したあとDOS窓を消えないようにしておく方法ってありますか?
scanf
getchar();
system("pause");
質問です。 一つのスレッドに↓のタイマーを作りました。 InitializeCriticalSection()で初期化したSectionを使っています。 void __fastcall TForm1::Timer_Draw_CanvasTimer(TObject *Sender) { EnterCriticalSection(&Section); Canvas->Draw(0, 0, Back_Screen); LeaveCriticalSection(&Section); } もう一つスレッドを作成して、↓のような動作をさせました。 void __fastcall Thread::Execute() { while(1){ EnterCriticalSection(&Section); Form1->Canvas->Draw(0, 0, Back_Screen); LeaveCriticalSection(&Section); } } そしたら、排他処理がうまくいかずに壊れて描画されなくなってしまいます。 CriticalSectionではなく、Synchronize()なら大丈夫だったのですが、 できればCriticalSectionを使いたいので、どなたか助言御願いしますm(_ _)m
すいません。 ヘルプを眺めていたらグラフィックの排他処理についてあったので、 EnterCriticalSection(&Section); を Back_Screen->Canvas->Lock(); LeaveCriticalSection(&Section); を Back_Screen->Canvas->Unlock(); としたら壊れなくなりました。 C++BuilderではCriticalSectionは使えないのかな? 失礼しましたm(_ _)m
921 :
デフォルトの名無しさん :2006/03/03(金) 07:26:32
TMediaPrayerでOgg Vorvisファイル演奏したいのですが、どうすればいいですか?(°д°)
メディアに祈る人、もとい、MediaPlayer では無理だろう。ためしてないけども。 でも、ogg vorbis の実装(.DLL を3つほど使うやつ)は中級者ならそれほど難しくない。 がんばって中級者になるのだー。
923 :
デフォルトの名無しさん :2006/03/03(金) 15:36:36
Java言語とC言語の違いは何??
927 :
デフォルトの名無しさん :2006/03/03(金) 22:15:30
C++ は国際標準
929 :
デフォルトの名無しさん :2006/03/03(金) 22:59:46
TQueryのカレントレコードのデータを全て取得したいのですが どうやれば取れるでしょうか? GetCurrentRecordを使用したらカレントレコードの1カラム目のデータしか 取れませんでした。(RecordSizeを無視して参照すれば取れましたが、 保証されていなさそうなので・・・)
FieldByNameとか, Fieldsとかかな。
931 :
デフォルトの名無しさん :2006/03/05(日) 15:05:38
932 :
デフォルトの名無しさん :2006/03/06(月) 03:33:25
マイクから入力された音の大きさがいくら以上なら分岐とかしたいんですが、 資料はどこを参照すればいいですか?
933 :
929 :2006/03/06(月) 19:28:48
>>930 TQueryのFields->Fields[フィールドの番号]を参照することで取得できました。
有り難うございました。
>>932 音の取得はマルチメディアAPIのwaveIn〜系
波形の処理は知らない。
935 :
デフォルトの名無しさん :2006/03/08(水) 20:36:18
TCppWebBrowserってプロクシ設定はどうすれば?
936 :
デフォルトの名無しさん :2006/03/09(木) 15:56:45
ExtractAssociatedIcon で 16x16サイズのアイコンを 取得する方法を教えていただけないでしょうか?
937 :
デフォルトの名無しさん :2006/03/10(金) 21:42:59
Windowsのシャットダウン(再起動)が押された時というのは なにかメッセージみたいなのがきているのでしょうか アプリケーションの×(閉じる)ボタンが押された時に FormCloseQueryで はいorいいえ ダイアログを表示させてから終了させるようにしているのですが、 シャットダウンが押された時このダイアログで止まってしまいます 使用者が×ボタンを押したのか、シャットダウンしようとしたのか判別したいのです よろしくお願いいたします
940 :
937 :2006/03/10(金) 23:46:25
お二方、ご返答ありがとうございます少し試してみたのですが、メッセージを取得するところまでは出来ました 期待の動作が出来そうです 本当にありがとうございました
941 :
デフォルトの名無しさん :2006/03/10(金) 23:56:29
PopupMenuだけど、アイコンをつけたらキャプションに&をつけてキーボードーのショートカットが出来なくなったんだけど、いっしょに使えるようにならないですか。
>>936 さん
こっちじゃだめ?
//フルパスファイル名からアイコンを取得
function GetIconForFileName(FileName: String; Large: Boolean): HICON;
var
SHFInfo: TSHFileInfo;
begin
if Large then
SHGetFileInfo(PChar(FileName),
0,
SHFInfo,
SizeOf(SHFInfo),
SHGFI_ICON or
SHGFI_LARGEICON or
SHGFI_DISPLAYNAME)
else
SHGetFileInfo(PChar(FileName),
0,
SHFInfo,
SizeOf(SHFInfo),
SHGFI_ICON or
SHGFI_SMALLICON or
SHGFI_DISPLAYNAME);
Result := SHFInfo.hIcon;
end;
>>942 さん
936です
質問で書いたExtractAssociatedIconで取得が出来ていたのでとらわれすぎていました。
実際にまだ使ってはいないのですが検索してみるとSHGetFileInfoでいけそうです。
ありがとうございました!!
944 :
デフォルトの名無しさん :2006/03/15(水) 14:19:22
メイクとビルドの違いが分かりません>< 教えて
945 :
デフォルトの名無しさん :2006/03/15(水) 16:14:42
質問です。C++Builder Ver.10(Dev. Studio 2006内蔵)で以下の ように、ヘッダで変数Radiusを定義してcppで初期化したところ、 E2451 未定義のシンボルのエラーが出ます。どこがいけないのでしょう? Unit1.h #include <vcl.h> 中略 #include <stdlib> //--------------------------------------------------------------------------- class TForm1 : public TForm{ __published:// IDE 管理のコンポーネント 中略 private:// ユーザー宣言 double Radius; 中略 }; Unit1.cpp #pragma hdrstop #include "Unit1.h" 中略 void __fastcall TMainForm::CulcButtonClick(TObject *Sender) { Radius = 0; 中略 }
TMainFormがTForm1からの継承だとすると、privateでは見えない。 継承していなければ論外。 あと計算はcalculationだが、それはいいのか?
947 :
デフォルトの名無しさん :2006/03/15(水) 21:20:14
すみません、間違えましたTMainForm じゃなく TForm1 です。 C++Builderがデフォルトで付ける名前で質問を書こうとして、 修正し損ねました。
948 :
デフォルトの名無しさん :2006/03/15(水) 21:23:55
C++Builderがデフォルトで付けるボタンの名前はButton1、 イベントハンドラは void __fastcall TForm1::Button1Click(TObject *Sender) でした。
自分なりに調べてみましたが限界が…どなたかヒントでもいただけないでしょうか。 某開発キット(静的リンク用の*.hファイルと*.libファイルのみ提供)を使いたいのですが、 これがVisualC++向けに作られているそうです(VCで開発、テストしていますとある)。 これをBuilder4で使いたいのですが、、うまくいきません。 <やってみたこと> 単純に*.libファイルをプロジェクトに追加し、*.hをインクルードしたところ、*.hの中身で文法エラー (virtual宣言の使い方に関して)が出た。 ↓ 重要な部分ではなさそうだったので、VisualC++とBuilderの文法の差異かとも考え、とりあえず その一文はコメントアウトして再コンパイルしたら、こんどは*.libの中身が不正です、というような リンカエラーが出た。すみません、エラーの詳細は会社のPCなので今は分かりません。 <分からないこと> ・静的リンクって、*.h、*.libに加えて*.dll自身も必要ではないのか??それとも*.lib自体が 動的リンクでいうところの*.dllと同じ働きをするもの? ・VisualC++用のライブラリをBuilderで使うにはそもそもどうしたら? 自分で調べた範囲だと、静的リンクでも*.libを媒介して結局は*.dllを使うように書いてあるように見える。 implibというツールを使って*.libを Builder用に変換すればよいのだろうか?? ちょっと情報がまとまって無くて申し訳ありません。一言でも助かりますので助言いただければ幸いです。
> 静的リンクって、*.h、*.libに加えて*.dll自身も必要ではないのか??それとも*.lib自体が
> 動的リンクでいうところの*.dllと同じ働きをするもの?
スタティックリンクライブラリ
http://yougo.ascii24.com/gh/07/000718.html インポートライブラリ
http://yougo.ascii24.com/gh/04/000478.html どちらのlibを持ってるかによる。
> VisualC++用のライブラリをBuilderで使うにはそもそもどうしたら?
> 自分で調べた範囲だと、静的リンクでも*.libを媒介して結局は*.dllを使うように書いてあるように見える。
> implibというツールを使って*.libを Builder用に変換すればよいのだろうか??
DLLがあるなら、implibでインポートライブラリを作って、BCBで使える。
VC用のスタティックリンクライブラリしかないなら、VCでそのライブラリをリンクしたDLLを作って
そのDLLをBCBで使う。
>>949 libファイルは本当の静的リンクを行う、中にコードの詰まったものと、
DLLをインポートするためのDLLへの参照が詰まったものと2種類ある。
お前が使いたいものはDLLが無いことから前者であるはずだ。
#ちなみにもし後者なら、たしかにimplibを使えばDLLからBCB用のlibを作れる。
lib(そしてobj)にはCOFFとOMFという2種類の形式がある。
VC++はCOFF、BCBはOMFを使っている。
だからVC用のlibは直接BCBでは使えない。
#ちなみにVC++はOMFも入力としては扱える。
そこでどうするかというと、何らかのツールでOMFへ変換する、OMFもCOFFも受け付けるリンカを使う、
或いはVC++でDLLを作ってそれをインポートするなどの方法が考えられる。
952 :
949 :2006/03/17(金) 20:20:42
>>950 ,951
知りたいことピンポイントでした。ありがとうございます。
どうやら私が持っているのはコードが入ったスタティックリンクライブラリのようです。サイズもでかいし。
リンクエラーのときに確かにOMFとCOFFの不一致、というような内容が表示されていました。
変換用にcoff2omfというようなツールもあるようですが、これはインポートライブラリ用のようですね。
とりあえずおとなしくVCで使うか、DLLを作成するしかなさそうです。
新しい方向が分かったのでまた調べて突き進みます。どうもありがとうございました。
TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
954 :
デフォルトの名無しさん :2006/03/23(木) 16:08:25
TextRectってPenPosの更新がされないのですね。 TextOutで書いた後のような座標を得るワイズストラテジーきぼん
955 :
デフォルトの名無しさん :2006/03/23(木) 20:25:17
TextRectで文字書いたら、その前に書いた文字が消えるんですが… 仕様理解してない?
TextRectは(TextOutもだけど)背景をBrushで塗り潰す。 塗り潰したくなかったら、Brush->Style = bsClearにする。
957 :
デフォルトの名無しさん :2006/03/23(木) 20:47:40
Rect指定してその左上隅より少し右から書き出したんですよ。 そしたらその少しの隙間に予め書いてあった文字が消えるんです。 bsClearにしてみたんですが…
>>957 んな事ないはずだけどな。
bsClearのあとにBrushに色とか設定したらbsSolidに変わるけど、そういう事してない?
959 :
デフォルトの名無しさん :2006/03/23(木) 21:17:21
嘘です。やっぱうまくいきました
960 :
デフォルトの名無しさん :2006/03/23(木) 22:54:51
TextRectって指定したRectをBrushの色で塗り潰しちゃうんですか? 文字書きたい場合、予定の書き込みのスペースのみを指定しろという事ですか? 余計な部分までRectに含めたらそこフラッシュアウトしちゃうよって事?
961 :
960 :2006/03/24(金) 01:54:47
試行を繰り返した結果、推測が正しいと結論づけますた。
962 :
デフォルトの名無しさん :2006/03/27(月) 11:11:56
メールヘッダーの Date: Mon, 19 Aug 2002 11:49:56 -0400 (EDT) 2002/08/20 00:49:56 +13 こんなのをTDateTimeに変換する方法を教えてください
1.文字列をパースして年・月・日・時・分・秒・時差に分解する。 2.それぞれを int に変換して EncodeDateTime にぶち込む。
MPIを使いたいのですが、インストール方法を教えてください
965 :
デフォルトの名無しさん :2006/03/28(火) 13:39:20
StrInternetToDateTimeってBCB5で使えないんですか?
966 :
デフォルトの名無しさん :2006/03/28(火) 14:35:16
NMPOP3で受信したメールのタイトル等をちゃんと読める形式に変換する方法を教えてください
きっと、NMxxxxxって誰も使っていないだろうな。 Indyあるから。 それに、NMxxxxxはバグが多すぎで・・・
968 :
デフォルトの名無しさん :2006/03/29(水) 02:58:07
インディってなんですか?
970 :
デフォルトの名無しさん :2006/03/29(水) 11:32:56
Indyってどんなことができるんですか?
971 :
デフォルトの名無しさん :2006/03/29(水) 18:09:59
972 :
デフォルトの名無しさん :2006/03/29(水) 18:29:36
イジワル><
意地悪かはビミョ Del7pro持ってる人にindyヘルプだけ貰ってみ?
ほんとにくだらない質問なんですが シリアルポート(RS-232c)にデータを送るプログラムを作っているのですが 17byteの整数を送りたいのですが 送るには複数回に分けて送るしかないのでしょうか? double型で2回+charで1回みたいに・・・ なんか良い方法ありましたらご指導をお願いします。
なんで1バイトづつ17回って考えないの?
それ以前に17バイトの整数というのが意味わからんぞ
なんでdoubleだかわからない。 お前の処理系に64ビット整数型はないのか?
978 :
デフォルトの名無しさん :2006/03/30(木) 16:07:12
Dvelopper Studio 2006に付属するC++Builder Ver.10で、 *.bplとかランタイムライブラリとかない環境で動作する 様に、全部含んだパーケージを作るにはどうすればいいの でしょう?
>*.bplとかランタイムライブラリとかない環境で動作する >様に、全部含んだパーケージを作るにはどうすればいいの プロジェクトのパッケージ設定の「実行時パッケージを使って構築」をオフにする。
980 :
to:age :2006/03/30(木) 16:42:18
//座標構造体 typedef struct { doubleX;//X座標 doubleY;//Y座標 } SCoord ; //座標構造体へのポインタ列を格納するベクタ vector<SCoord*> CoordsList; //座標構造体のインスタンスを作ってポインタを格納 for (unsigned int i=0; i<10; i++){ SCoord* pTempCoord; pTempCoord = new SCoord; CoordsList.push_back(pTempCoord); } //ここから後があると異常終了するのでコメントアウトしました。 //使用済み座標構造体のインスタンスをメモリから削除するつもり //for (unsigned int i = 0; i < CoordsList.size(); i++){ //delete CoordsList[i]; //} //ポインタ格納ベクタをクリア //CoordsList.clear(); //ベクタに格納したポインタは自動消滅するでしょうけど、 //構造体のインスタンスはプログラム終了後もメモリに残る //予感がします。コメントアウト部分で異常終了の原因はどこ?
981 :
デフォルトの名無しさん :2006/03/30(木) 17:01:26
>>979 ありがとうございました。一生懸命リンカのパッケージオプションの
ところを探してましたがターボアセンブラのパッケージのところを
探せばよかったんですね。
BCBの基本的な使い方載ってるサイトとかないですか?
984 :
デフォルトの名無しさん :2006/04/04(火) 11:37:26
メンバAnsiStringの文字列が要らなくなって解放したくなったら、 ""を代入すればいいのですか?
ほっておく
986 :
デフォルトの名無しさん :2006/04/04(火) 14:20:59
メンバなんです><
じゃ
>>984 。でも、代入前の中身が参照されなくなるだけでいつ回収されるか分からないけど。
じゃ、ローカルのAnsiStringに変えろ
989 :
デフォルトの名無しさん :2006/04/04(火) 15:48:03
はーい^^
ポインタ変数にして 使うときnewして、いらなくなったらdeleteすれ。
991 :
デフォルトの名無しさん :2006/04/04(火) 16:49:36
無難にローカルにしまーす^^
ローカルにしても、スコープ外になってから参照されなくなるだけでいつ回収されるか分からない、のは一緒だけどな。
わかるだろ。 ローカル変数はスタックに積むんだから、関数からreturnすれば必ず解放される。
てか、そんなにメモリ消費についてシビアな管理が必要なシステムなのか?
> ローカル変数はスタックに積むんだから、関数からreturnすれば必ず解放される。 AnsiString の変数はポインタ。アドレス保持してる変数は解放されるけど、文字列 そのものはヒープ。
>>996 そんなことが発生するならメモリリークしまくりだぞ。
>>996 関数からreturnしてAnsiStringのローカル変数が破棄されるときは
AnsiStringのディストラクタが呼ばれてオブジェクトを解放するに決まってるだろ。
マネージャがいるんだよ
まあ
>>996 は一度、アセンブラを生成してローカル変数がどう処理されているかを実際に見てみることだな。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。