C++Builder相談室 Part6

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-10あたり。


<過去スレ>

C++Builder相談室
http://piza2.2ch.net/tech/kako/969/969458279.html
新C++Builder相談室(C++Builder相談室 Part2)
http://pc.2ch.net/tech/kako/997/997074601.html
C Builder相談室 Part3
http://pc3.2ch.net/tech/kako/1016/10160/1016065855.html
C++Builder相談室 Part4
http://pc2.2ch.net/tech/kako/1035/10355/1035596146.html
C++Builder相談室 Part5(前スレ)
http://pc2.2ch.net/test/read.cgi/tech/1045542179/
<Tipsなど>
C++Builderのお部屋(Tips系)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/
C++Builderによるプログラミング(Tips系)
http://market.agr.tottori-u.ac.jp/ken/
Delphian World(コンポーネントライブラリ)
http://home1.infonia.ne.jp/~delphian/delphi/
C++Builder Bugs
http://www2.justnet.ne.jp/~tyche/bcbbugs/index.html
Borland C++Builder最新リンク2001(リンク集)
http://www2.famille.ne.jp/~akio1998/l_cpb.html
ビギナー向けtips
http://www.yukibow.com/bcb/index.html
<関連サイト>
公式サイト
http://www.borland.com/cbuilder/
http://www.borland.co.jp/cppbuilder/

builder-ML 過去ログブラウザ
http://leed.issp.u-tokyo.ac.jp/~takeuchi/builder/browse.cgi
http://www.sfdata.jp/ML/cbuilder/newlog.php?ml=cbuilder

C++Builder メーリングリスト
再登録が必要
http://www.sfdata.jp/ML/menu.php?ml=cbuilder

<Update>
BCB6/US SP1 は BCB6/JP 製品版に含まれています。

C++Builder 6 Update4 日本語版
ftp://ftp.borland.co.jp/pub/cbuilder/
5ぼるじょあ ◆yEbBEcuFOU :03/05/30 16:59
(・3・) アルェー 新スレだNE
6デフォルトの名無しさん:03/05/30 17:36
>>1
7デフォルトの名無しさん:03/05/30 17:42
VCLはDelphiで作られているんだから関連スレとしてDelphiも入れておこう。
もしよければDelphiに乗り換えてもいいぞ。

ミ,,゚Д゚彡フサギコとモナーのDelphi質問相談談話室
http://pc2.2ch.net/test/read.cgi/tech/1052312038/l50
8デフォルトの名無しさん:03/05/30 19:14
アプリケーションの新規作成を行うと以下のようなエラーがでるようになってしまい実行ファイルが作成できません

[リンカ エラー] 外部シンボル '_CG_DESC' が未解決(D:\CBUILDER5\アプリケーション\その他\PROJECT1.OBJ が参照)
[リンカ エラー] 外部シンボル '_CG_DTORTHIS' が未解決(D:\CBUILDER5\アプリケーション\その他\PROJECT1.OBJ が参照)
[リンカ エラー] 外部シンボル '_CG_A_BP' が未解決(D:\CBUILDER5\アプリケーション\その他\PROJECT1.OBJ が参照)
[リンカ エラー] 外部シンボル '_CG_GDA_EGY' が未解決(D:\CBUILDER5\アプリケーション\その他\PROJECT1.OBJ が参照)
[リンカ エラー] 外部シンボル '_CG_THIS' が未解決(D:\CBUILDER5\アプリケーション\その他\UNIT1.OBJ が参照)
[リンカ エラー] 外部シンボル '_CG_DA_EPY' が未解決(D:\CBUILDER5\アプリケーション\その他\UNIT1.OBJ が参照)

因みに既存のプロジェクトは普通にコンパイル&リンクは通ります。
解決法を教えてください。
宜しくお願いします。
9デフォルトの名無しさん:03/05/30 19:15
>>8
あ、間違い。
アプリケーションの新規作成をしてからコンパイルすると>>8のエラーが出ます
10デフォルトの名無しさん:03/05/30 19:37
>>9
何かライブラリを参照してないと思われ
12デフォルトの名無しさん:03/05/31 17:02
http://pc2.2ch.net/test/read.cgi/tech/1052625846/708-

BCBのwchar_tは、UCS-2でしょうか?UTF-16でしょうか?
>>12
UCS-2 / 伝統的 UNICODE です。

1412:03/05/31 17:05
あ、UCS-2の方が伝統的なんだー。
2バイトきっかりで便利だよね!
HTMLでUTFが使われてるようだけど、そちらが新種か。
1512:03/05/31 17:06
で、DBに入れるときには、UTFの方が良いのかな?????
元スレッドに有るように、データをもらって Win32 API に渡すだけなら、UTF-16 データを
乗っけられる。1バイトのことしか考慮していないアプリで UTF8 が(見かけ上)扱えるのと
同じ程度にね
1712:03/05/31 17:09
thanx!>>16
をぉ、結局どれも利点があって、
UTF8,UTF16,UCS-2のどれが良いか分からないぞ。
>>17
UNICODE にしたからといってすべてが解決するわけではありません。
単なるエンコーディング規則。

UTF8/UTF16/UCS-2 の相互変換は簡単かつ完全なので、状況に応じて使い分けるように。

ただね。UTF16 の UCS-2 からの拡張部分を使うことができる OS は限られているし、
そこに定義されている文字を使う人、文書はすぐには現れない。

glib のように一気に4バイト系 / UCS-4 にいってしまうというのも一つの見識。
Win32 API がサポートしてないのが最大の問題だが。
>で、DBに入れるときには、UTFの方が良いのかな
良い、悪い。じゃないの。C/C++ の基礎知識があるとして...

UCS-2 表現だと、それを1バイトごとに並び替えてバイトストリームとして処理すると、
* バイトオーダーの問題(リトル/ビッグエンディング)
* ストリーム中に 0x00 が現れることに対する対応。
この二つが出てくる。後者は、ストリーム処理をバイトからワードに書き換えるか、または
(MBCS 処理のように)1 バイト先読みする必要が起きる。
で、unix 畑の連中が、バイトオーダーの問題を持たず、データ中に 0x00 が現れない UNICODE 表現を
作ったのが UTF8.

少し偏見交じりにいえば、UTF8 しかサポートしていないアプリ/DB は、内部処理 UNICODE 化されていない
コードを元にしているのだろう。と。
UCS2 サポートするためには、各種文字/文字列処理関数が w_char サポートした処理系で
かかれているのであろう。と思われる。ってところ。
2017:03/05/31 17:29
じゃぁ、OSの種類がイパーイ(Win/DOS/Linux/ITRON)ある場合、
UCS2にしといて、世の中のOSがUCS4になったら一気にコンバートすれば良さげ。

それともUTF8しとけば色んなOSのASCIIコード部分は保証されるのかな。。
2117:03/05/31 17:31
>>19
げ、怖いですね。

UTF8だと、色んなOSに対応できますかねぇ。
UTF8 が US-ASCII と同一のバイト表現を得られる。ってのがアメリカ人にとっては
心地よいんだろうね。その代わり、ヨーロッパを含む多くの国にしわ寄せが。
UNICODE としては同じだから、どれを使っても大差ないよ。
抱える問題も同じ。
2317:03/05/31 17:36
そうでつか。>>22
今までASCIIコードしか対応してなかったので、UTF8にしとけば拡張となるので良さそうです。
でも、String/WideStringで処理して、UTF8円コードでDBに入れることにしまつ。

超初心者質問ですが、UTF8のAからZはASCIIコードと同じなんですかね。(呆れないでNE!)
24デフォルトの名無しさん:03/05/31 21:25
めっちゃ困ってて、ポストしまする。

現在DLLを制作しているのですが、特別なプログレスウィンドウが必要でDLL側で
VCLを使いたいのですが、showmodalなウィンドウ以外はエラーで落ちてしまいます。

親ウィンドウハンドルを使って、formを生成したりするマネって出来ないんでしょうか?
出来ますよ。
出来るけど、プログレス程度ならやらない方がいいように思うけどな。
理由は DLLが肥大する
DLL呼び出し側でVCL使って DLLでも使うなら同じコードが個所にある事になって気持ち悪い。

プログレスならダイアログリソース作ってやった方がいいんじゃないの
C++Builder 4をWindows2000 SP3で使っています
用意されてるコントロールを並べてちょっとコードを書くような簡単なプログラムなのですが
コンパイルして実行する時にリンクするところでハングアップしてしまいます
こんな時ってどんなことが考えられるのでしょうか
>>27
そういう時は、
1、必要なパスの設定を忘れている
2、ライブラリがどこか壊れている
3、中間ファイルが壊れている
などが考えられます。
1,2は自分で修理できないならコンパイラを再インストールすると良いでしょう
3は、自分のプロジェクトフォルダから不要ファイルを消すとよいでしょう
>>27
漏れは似たようなことになったことがあるが
BCBを再インスコしたら直った。
質問なんですが、
C++Builder6は動作環境が98/2000/xpということになってますが、
MEだとやっぱり不具合が起こるんでしょうか?
Meだと BCBでなくとも不具合おこりまくり・・・ よくもまあこんなもの商品として出したもんだM$
そんなに不具合が起こるんですか・・・。
それじゃMEの人は買えませんね。
そうだね。 Meだと 98に戻すか 2000にするか・・・でも2000に出来ないのも多いしね。
BCBはcatch(...)は使っちゃいけないんでしたっけ?
catch(Exception &e)ってやらないと
確かデストラクタが呼ばれなくてメモリリークするんですよね。
>>34
4がそうだったのは知ってる。
今はどうなのか知らん。

一応検索してみた↓
------------------------------------------------------------------------------------
catch節にて例外を処理すると、メモリーリークが発生する。

BCB 1.0〜3.01の場合
例外オブジェクトの型がObject Pascalで定義されているクラスの場合、例外をcatch節で処理すると、
メモリーリークが発生する。

BCB 4.0の場合
例外オブジェクトの型がObject Pascalで定義されたクラスで、かつcatch(...)で例外を処理すると、 メ
モリーリークが発生する。
-------------------------------------------------------------------------------------

対処方法は>>34
36デフォルトの名無しさん:03/06/01 16:51
BCB6Proでcatch( ... )使ったけど別にリークしてないよ
ループの中に入れて無理やり例外出してcatchしたけど平気だたーよ
(タスクマネージャで見る限り)
単に ME ではテストしていない。ってこと。
あれは Win98 に常駐プログラムを追加しただけのものだから。
各種リソースに余裕が無く、そんなに大きくないプロジェクトを読み込ますだけでも
リソースが足りなくなる。

38デフォルトの名無しさん:03/06/01 18:09
あのさー .lib ファイルを.dllにしたいんだけど、どうすればいいの?
DLLにすればいいよ。
4027:03/06/01 18:44
27です
>>28>>29
再インストールは何度かやってますがダメでした。
中間ファイルを削除してみると通る時もあるけど、たいていは固まります。
パスはインストールしたそのままです。
中間ファイルを削除するバッチを教えて
del *.obj
del *.li*
del *.csm
del *.~*
del *.#*
動作が変な時は思い切って

del *.tds
del *.dsk
del *.res <-- これはまあ注意してね
44デフォルトの名無しさん:03/06/02 13:46
MFCプロジェクトをコンバートして、MFCのダイアログの編集はどうやるんですか。
ImageEditorでリソース編集する方法しかないですか?

ま、最終的に全面的にDFM/XFMに置き換えるのは当然として、その前段階として。
MFC のダイアログって?
なにか特殊なファイル形式がありましたっけ?

..ってところから調査すれば分かるでしょ。
4644:03/06/02 15:07
というか、リソースファイルになってるのも知ってるし、
VC++だとリソース編集画面とクラスウィザード(これらがダサダサなんだけど)開きますよね。
それを、BCBでどうするのかを他人から聞かれたんです。

自分は、ほぼBCB/Delphiだし、MFCのクラスウィザードをどうしても使うときは泣き泣き使ってまつ。
リソースワークショップって入ってない? WorkShopで検索してみたら?
4844:03/06/02 16:43
BCBの画面から直接編集画面を出せないですか?

どんな場合でも、 BCB > VC++ と言えた方が今後の導入が楽なので。
BC++ 5なら出来たんだけどねえ ツールのところにリソースワークショップ入れるくらいしかないかもね
5044:03/06/02 17:16
>>49
え”!スペックダウン?
某め。
いやスペックダウンっていうか BC5 は そもそもDOS〜Win32迄開発出来る環境だからさ
44はBCB5と勘違いしている悪寒
Delphi 1 か 2 (もしかしたら3?)あたりまでは ダイアログリソースの DFM への変換ツールが
ついていたと思ったんだけど。単にデザインだけ持ってくるツールですが。

Dialog がコンポーネントを使っていない(使えない)以上、縦横情報以上のものを持ってくることは
難しいと思われ。べつのものなんだから。

54デフォルトの名無しさん:03/06/03 12:05
TRichEditなのですがLines->Addで追加したときに
自動的にスクロールして一番下の行を見えるようにするにはどうしたらいいのでしょうか?
宜しくお願いします
55たぶん:03/06/03 12:38
キャレットを一番下に持っていって
RichEdit1->Perform(EM_SCROLLCARET, 0, 0);
56デフォルトの名無しさん:03/06/03 17:20
CreateThreadに自分で作ったクラスのメソッドっていうか関数を与えるには
どうしたらいいのでしょうか?
57デフォルトの名無しさん:03/06/03 21:12
メモリリークしているとかしていないかとかは
どうやって調べて行けばいいのでしょうか?

タスクマネージャのメモリ使用値とにらめっこするわけじゃないですよね?
>>56
俺も直接クラスのメンバを呼ぶ事ができなかった。

そこで、どのクラスにも属さない関数 foo() を作り、
それをクラス bar のフレンドにして、

CreateThread(
 セキュリティ設定 (NULL),
 スタック (0),
 foo へのポインタ,
 bar クラスのオブジェクトへのポインタ,
 作成フラグ (0),
 スレッド ID 受け取り変数へのポインタ)

で CreateThread() してるよ。

そうすると、foo() の引数に
bar クラスのオブジェクトへのポインタが入ってくるので、
そこから目的のメンバ関数をコールしている。

foo() からクラスの非公開部分にアクセスしないなら、
foo() を bar クラスのフレンドにしなくてもいい…と思うよ。

長文スマソ。
>>58

class ThreadProcedure{
protected:
 virtual void execute(){}
public:
 static DWORD __stdcall execute(void* data){
  ((ThreadProcedure*)data)->execute();
 }
};

こうすれば綺麗。
あと、C/C++ライブラリ使うならCreateThreadより_beginthreadの方が良い。
60デフォルトの名無しさん:03/06/04 10:08
BeginThreadはどうでしょうか?
61デフォルトの名無しさん:03/06/04 11:07
すみませんちょっと素人的質問なのですが
class aaa : public bbbb
としたときに、bbbbを初期化するデフォルトコンストラクタが見つからない
とエラーが出るのですが、これはどうやって定義すればいいのでしょうか?
62デフォルトの名無しさん:03/06/04 13:55
>>58-60
お答えありがとうございます。
色々探していたらTThreadって便利なものあったので
これを利用しようと思って色々やっていたのですが、
class MyThread : public TThread
などとして、MyThreadクラスを作成したのですが
このクラスのデストラクタを定義するとリンカーエラーになってしまいます。
何がいけないのでしょうか?
>>61,>>62
詳しいソースキボンヌ
>>62
>色々探していたらTThreadって便利なものあったので
ワラタヨ。すげえ釣りだったな。
65デフォルトの名無しさん:03/06/04 15:24
いやいや釣ってないし
ファイルパスを表示した ListView から他のアプリへドラッグ&ドロップして
ファイルパスを渡す処理を作成したのですが、自分のフォーム外にドラッグした
時はドロップ禁止(crNoDrop )のマウスカーソルになってしまいます。
一応ファイルパスの引渡しは出来ているので処理的には問題ないのですが、
やはり見た目でドラッグ(crDrag)のカーソルを表示させたいと思い
いろいろ調べてはみたのですが、カーソルの変更方法が全くわかりません。
エクスプローラからメモ帳へテキストファイルをドラッグ&ドロップする時のように
カーソルも変化させたいのですが、どのように処理すれば良いのでしょうか?。
67デフォルトの名無しさん:03/06/04 22:02
C++ Builder や Delphi を使ってスレッドを実装したい場合、TThread を使うのが普通。
ヘルプファイルで TThread とタイプすれば例まで載っているし、
もっと詳しいサンプルがほしければ Google にいけ
C++Builderの場合TThreadはメモリリークします。
( ´_ゝ`)
70デフォルトの名無しさん:03/06/05 00:31
すいません初心者です
C++Builder 6でOnDeactivateイベントを使いたいのですが
アプリ内で別のフォームに行く場合は使えるのですが
他のアプリケーションに行くと実行されません
何かいい方法はないでしょうか?
宜しくお願いいたします
TApplicationのOnDeactivateを使いなはれ >>70
72デフォルトの名無しさん:03/06/05 01:07
>>71さん
ありがとうございました
無事できました
助かりました
>>68
正確には、TThreadで作成したスレッド内で、C/C++ライブラリの一部を
使うと、スレッド終了時に解放されないメモリが残る。
_adopt_thread使えばいいんじゃないの?
74デフォルトの名無しさん:03/06/06 00:04
TPageControlとTTabSheetとTPanelを利用し動的にコンポーネントを作成しているのですが
以下のことができなくて困っています

動的に生成するコンポーネントのイベントは設定できてるのですが
動的に生成されたコンポーネントから親のコンポーネントの参照方法がわからないのです
親コンポーネントの関数を呼び出したりできるのでしょうか?

アドバイスおながいします。
Parent
環境はWin2k+IE6(LAN接続)にCB5なんですが、
余ってたPCを一気に最新にUpdateしつつインストールしたら
シャットダウンするまでの時間がすごく遅くなりました。

原因がIE6のUpdateによるものなのか、CB5の
「Drワトソン〜COM+デバッグ〜」とかメッセージでインストールされる
ツールによるものなのか情報ありましたら教えて下さい。

原因の確認には再インストールするのが最善なのでしょうが、
対処法の知識がないもので.....
7774:03/06/06 11:01
>>75
TFormのEditBoxの値を変更したりするときは

TPanelのParentがTTabSheet
TTabSheetのParentがTPageControl
TPageControlのParentがTForm
だから


Panelhoge->Parent->Parent->Parent->Edithogee->text = "hoge";
ってやるってことでしょうか?

ちょっと今環境がないのでテストできないので
あとでやってみます
7976:03/06/06 13:57
>>78
プリンタ スプーラを停止して解決しました。
ありがとうございます。
80デフォルトの名無しさん:03/06/06 14:59
BCB6のパレットに登録されているVCLの詳細説明が書いてあるHPを教えて下さい
81直リン:03/06/06 15:13
82デフォルトの名無しさん:03/06/06 15:40
エクスプローラで右クリで出てくるポップアップメニューに追加するには
どうしてらいいのでしょうか?
83_:03/06/06 15:52
84デフォルトの名無しさん:03/06/06 16:06
●●●川崎オールスター選出運動●●●

現在マスコミでも話題になってる活動です。
2ちゃんねらーの力で現在40万票以上の票が集まっています。
現在セ・リーグ投手部門2位。もう一息だ!
2ちゃんねらーの力で川崎投手に復活の舞台を!

投票ページ  http://allstar.sanyo.co.jp/
セ・リーグ先発投手部門はドラゴンズ川崎投手(D20)へ。
投票途中経過 http://allstar.sanyo.co.jp/result/detail.html
投票は1名義につき5票まで有効です。


川  崎  投  手  に  最  高  の  復  活  の  舞  台  を  !

85デフォルトの名無しさん:03/06/06 16:15
☆★☆★♪大人の玩具激安販売店♪ ☆★☆★
ピンクローター190円から〜
オリジナル商品や新商品をどこの店よりも早く発売いたします!!
イスラエル軍も使用している本物ガスマスク!!
バイブ、ローター何でも大安売り!! 下着やコスプレなども大安売り!!
個人データも秘密厳守!!偽名で購入OK!
郵便局止め、営業所止めOK!
http://www.king-one.com/
>>80-81
ワロタ
>>86==>>81 自演
なわけねーだろ(嘲笑激藁
89デフォルトの名無しさん:03/06/06 18:05
90  :03/06/07 21:15
伝説のプログラマー47氏がC++Builderを激賞!

http://www.geocities.co.jp/SiliconValley/2949/

なお、β4でまたGUI周辺が大幅に変わる予定です。いいかげんこの手のGUIだとVisual C++ & MFCでは
開発効率悪くて仕方がないので、開発環境を変えてBorland C++Builderの方で作り直し中です。

とりあえず通信部の移植は終了しましたが、GUI周りがまだ半分です
(といっても通信周りができてしまえばGUI側はBCBものすごーく楽なので直ぐにできるかと)

91デフォルトの名無しさん:03/06/07 21:43
初心者です
Canvas->Rectangleなどで書いた図形を
CADなどみたいにオブジェクトとして扱えるのでしょうか?
宜しくお願いいたします
92_:03/06/07 21:47
>>91
自分でそういうのを管理するクラスを作るか、TShapeを使えばいいんじゃない?
94たぶん:03/06/07 22:30
>>91
丁度死滅スレで出てたコードだけどさ、

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1004530597_1/MyDraw.pas

こんなふうな処理が必要だよ。
9591:03/06/07 22:38
>>93さん
>>94さん
ありがとうございます
私には難しそうです(泣
一歩ずつがんばっていきます
96  :03/06/07 22:39
割れ厨の味方47氏がC++Builderを激賞!

http://www.geocities.co.jp/SiliconValley/2949/

なお、β4でまたGUI周辺が大幅に変わる予定です。いいかげんこの手のGUIだとVisual C++ & MFCでは
開発効率悪くて仕方がないので、開発環境を変えてBorland C++Builderの方で作り直し中です。

とりあえず通信部の移植は終了しましたが、GUI周りがまだ半分です
(といっても通信周りができてしまえばGUI側はBCBものすごーく楽なので直ぐにできるかと)
Me使ってるので買います
9874:03/06/08 03:10
>>77の方法で試してみたのですが
親フォームがFormMainで
PageControlにTTabSheetを動的生成し
その上にPanelを生成しています

パネル内のイベントから
path = this->Parent->Parent->Parent->Name;
親フォームのName等のプロパティ情報は取得できたのですが

FromMainの中のコントロールを参照したり
FromMainのメンバ関数を実行する方法が見あたりません
どなたかご教授願えないでしょうか?
99直リン:03/06/08 03:13
           _________
   ∧,,∧   / 2タン系ツールは
  ミ,,゚Д゚彡 <  某で湿られてきてますね。
   ミ つ旦)~~ \ 
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪


     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉





>>98
ParentをFormMainにキャストすればいい
こういうRAD開発ツールって、
MVCを前提としたクラス設計になってない気がするんだけど、
どうするの?
フォームクラスに処理詰め込んじゃうの?
Mに相当するクラスを勝手に作ればいいだけでしょ。
VC++ with MFCみたいにCDocumentも雛形吐いてくれないとだめかい?
GUI系の場合はVCを一緒にするパターンが普通。
そうじゃなくて独立したCなのが例えばTActionとかだね。
Mについては>>104の言うとおり。
まあなんといっても VisualClassLibだからね。
RADを使うと、委譲をフォームに行ってしまうけど、別に委譲先クラスを作ってそこに委譲してもいいわけで
そこは手作業になるけどね
夜になってからつっこむのもあれだが…Visual Component Library
108デフォルトの名無しさん:03/06/09 11:04
>>106
Borlandのアレはそうだな
109デフォルトの名無しさん:03/06/09 11:05
あー、アンカー間違いだがいいか
110デフォルトの名無しさん:03/06/09 19:05
自分のソフトからエクスプローラにD&Dする方法教えて
>>110
ttp://www.kh.rim.or.jp/~maruoka/Builder/MyProg.shtml
>TFileDnDro
 OLEを使ったドラッグ&ドロップをサポートします。
 外のアプリへDnDしたい場合は、Linesプロパティにファイル名を追加してからStartDrag()メソッドを呼び出します。
>>98
Panelのイベントを設定したいって事?

OnClickなら下みたいな関数(引数はOnClickイベントと同じ)をつくって、
void __fastcall panelClick(TObject *Sender);

TPanel* pl = new TPanel(this);
pl->OnClick = panelClick;

とすればよいはず。
11374:03/06/10 00:21
>>112
いや動的生成したオブジェクトのイベントは設定できているんですが
その動的生成したオブジェクトの中から親のフォーム内のコントロールの情報を書き換えたり
親のフォームのメソッドを叩きたいんです’

何を作っているというと
タブ型のファイラーを作っているのですが
ツリーのクリック時に親フォームのアドレスバーを書き換えたり
ツリーのポップアップメニューで新しいタブを開らきたいのです。

今困ってるのは
102さんのアドバイスを元に
動的生成したPanelのParentをTFormMainにキャスト死体のですが

UnitMain.cpp // これはメインのフォーム TFromMain
tabsheet.cpp // タブに張り付けられるパネル TFrameSheet

UnitMainからtabsheetをインクルードしているのですが
tabsheetからUnitMainに記述されている親フォーム(TFormMain)
にキャストしてやらないといけないのですが
tabsheetの方にUnitMainをインクルードすると
E2451 未定義のシンボル TFrameSheet
っていうふうになってインクルードできません
相互にインクルードはできないものなのでしょうか?

>>113
インクルードの順番を逆にする。
115デフォルトの名無しさん:03/06/11 11:22
>>111
それコンポーネント化しないとダメなんですかね?
作者のHPみても掲示版等ないから質問もできないし
ふつうにプロジェクトに追加してやってみるとCodeGuardエラーが多発しますねこれ
サンプルのソースもあれれぇ?とか思うところが何箇所かあるし・・
ソフトを起動させたときにある一定のところへマウスカーソルを移動させておきたいのですが
マウスカーソルの位置を指定するにはどうすればいいのでしょうか?
>>115
自分はコンポーネントを使うのが嫌だったのでソースを見て流用してみて
一応は動いたのですが、よくわからない部分もあったので別の方法を採用。
手持ちの参考書を調べたら「Windows95 API パワフルテクニック大全集」に
WM_DROPFILES をドロップしたいウィンドウにポストする方法が紹介されて
いたので、試してみたところ問題なくドラッグ&ドロップできました。
ネットで調べた時は OLE を利用する方法ばかり紹介されていたのですが
WM_DROPFILES メッセージによる方法では OLE を使ってないのかな?。
よくわからないけど割とスッキリとコーディングできたし結果オーライで。
詳しいコーディングについては書籍を見てください。(今も売ってるかな?)
119116:03/06/11 15:38
>>118
ありがとうがざいます!
調べ方が悪いらしくて途方にくれていました。
早速みてみます。ではでは。
120100人に1人:03/06/11 17:21
◎人の嫌がることをズケッと言うのはこんな奴!
<アスペルガー症候群(自閉症スペクトラム)←脳の機能的疾患(遺伝が要因)>
●変化を嫌う
http://web.kyoto-inet.or.jp/org/atoz3/kado/book1/Williams-Asp.htm

●接し方のルールがわからず無邪気に周囲の人に対して迷惑なことをしてしまうことがある。人を傷つけるということには鈍感(相手の立場に立って考えられない)。
●パターン的行動、生真面目すぎて融通が利かない
 毎朝の通学電車では同じホームの同じ場所から、同じ時間の同じ号車に乗ることに決めていたりする。パターンを好むということは反復を厭わないことでもある。
●アスペルガー症候群の子どもは(大人も)感覚刺激に対して敏感。敏感さは聴覚、視覚、味覚、嗅覚、温痛覚などのいずれの感覚の敏感さもありえる(特に視覚が敏感)。
●アスペルガー症候群の子ども(大人も)は予測できないことや変化に対して苦痛を感じることが多い。
http://www.autism.jp/l-02-03-aspe3.htm

●独り言を言うことが多い(考えていることを口に出す)
●物事をいつまでも同じにしておこうとする欲求が強く、そうでないと非常に不安。いわゆる「こだわり」。
●自発的に行動することが少なく、興味の幅が狭い
●物まねをしているような不自然な言語表現
●自閉症スペクトラム全体としては一万人に91人(およそ100人に1人)。
http://www.ypdc.net/asuperugar.htm

★自閉症スペクトラムの考え方(アスペルガーに至らない気質の偏りもある(遺伝性))
http://www.imaizumi-web.com/030413.html  
   
★アスペルガー症候群(自閉症スペクトラム)かどうかのテスト
http://twitwi.s10.xrea.com/psy/add.htm 
http://www.geocities.co.jp/Beautycare/5917/as/marksheetmake.html


121_:03/06/11 17:22
122デフォルトの名無しさん:03/06/11 17:27
>システムエラー。コード127.
>指定されたプロシージャが見つかりません。

こういうエラーが出ますが、AnsiToUtf8みたいな関数使ってると、WinXPでしか動作しない、
みたいなことありますか?
123デフォルトの名無しさん:03/06/11 17:37
よろしく
124122:03/06/11 18:48
やっぱ、IBXが関係しているみたいでつ。
IBXの配布方法きぼん。
(・∀・)ニヤニヤ
>>117さん
すごいっすね。OLEDI&Dのコンポーネント利用するしか
頭になかった。
127デフォルトの名無しさん:03/06/12 03:35
Animateコンポーネントを使ってAVIファイルの再生は出来るのですが、
tフレーム目の (x, y) 座標のRGB値を取得する方法はありますか?
128デフォルトの名無しさん:03/06/12 10:52
>>117
うおおおお!!!
それマジっすか?
ソースきぼんぬ!
129デフォルトの名無しさん:03/06/12 10:54
あれれ?
WM_DROPFILESで自作アプリ→エクスプローラにD&Dできるの?
そうか。 >>110 はエクスプローラに D&D したかったんですね。
自分の場合はテキストエディタ等のアプリに D&D したかったので
エクスプローラでは確認してませんでした。
確かに >>129 の言うとおりエクスプローラへは D&D できないみたいですね。
受取るアプリ側で WM_DROPFILES を処理してないとダメってことなのでしょうね。
WM_DROPFILES の受取り処理をしているらしいファイラー等ならファイルの
コピー等もできるのですが・・・。
まぁ必要に応じて OLE or WM_DROPFILES のどちらで処理するかは使い分けかな?。
でも OLE で処理した方が確実なのでしょうね。
131デフォルトの名無しさん:03/06/12 11:40
OLEで>>110を行う方法を教えて下さい。
>>131
方法1: >>111 のコンポーネントを利用
方法2: >>111 のコンポーネントのソースを流用
方法3: 自分でOLEのD&D方法を調べてコーディング
133デフォルトの名無しさん:03/06/12 11:59
>>133
DelphianWorld行け。
2個くらいあったはず。
135デフォルトの名無しさん:03/06/12 19:55
C++Builderをダウンロードしたけど使い方がわかんない
exeファイルをクリックしてもすぐ閉じちゃうし、fconvert.exeと言うファイルはクリックしてもすぐに終了はしないけど
何なのかが分らないし
136デフォルトの名無しさん:03/06/12 20:11
>>135
体験版か?まずは英和辞典を用意しろ。
もしくは日本語版を買え。
>>135
Borland C++ Compiler ≠ Borland C++ Builder
すいません、VCからの乗り換え考えてるんですが、
VCみたくエディタ内での、
関数のパラメータ表示、マクロの定義表示、構造体メンバ表示、型ガイド表示などの
ナビゲーション機能はありますか?
140デフォルトの名無しさん:03/06/13 10:18
>>139
BCBはVCみたいなうんこじゃないからそんなの必要ないと思うけどなぁ
俺は逆にVCやって勝手にメンバ表示されてウザかったが
CPUファンの回転数を知るにはどうすればいいのですか?
マザボによって違うというのはわかるので、とりあえず intelの
マザーボードの場合を調べようと思い intelのページに行ってみたのですが、
載ってませんでした。
>>139
ある。
けど、俺は切ってる。うざいから。
143デフォルトの名無しさん:03/06/13 19:21
#include <stdlib.h>
#include <time.h>
とかって敢えて定義しなくてもいい?
144デフォルトの名無しさん:03/06/14 08:18
Fri, 13 Jun 2003 20:34:41 +0900
って形式を
yyyy mm dd hh:mm:ss の書式に変換するライブラリってVCLにある?
>>140 >>142
VC、BCBは遅いのでうざい。
>>144
あるよ
>>146
まじデスか!?
見つからなかったから作っちゃったYO..
148デフォルトの名無しさん:03/06/14 17:46
delphiとBCBのどちらかを極めて神になりたいのですが
どちらが神レベルまでなりやすいでしょうか

自分はC言語の多少とPascalの多少を知っているのみです。

明日どちらかを買う予定です。
>>148
HSP
150148:03/06/14 20:36
>149

耳糞つまってません?
151デフォルトの名無しさん:03/06/14 21:00
>>150
目糞じゃないの?
>>148
BCBのベースはDelphiだし、資料が豊富だし
やっぱDelphiじゃないですか?
とか言ってる漏れはヘッポコBCB使いなわけですが
> 資料が豊富だし
正確には、VCLに関しての資料。
ライブラリ、アルゴリズムなどの重要な資料はC++の方が多い。
> BCBのベースはDelphiだし
正確には、BCBで使用しているVCLのベース。
155152:03/06/14 21:37
>>153-154
仰るとおりです、ご指摘・訂正ありがとです
156デフォルトの名無しさん:03/06/16 00:56
2画像の差分画像の作成をしたいのですが
うまくいきません。
どこが間違っているのかご指摘いただけないでしょうか?
環境はC++Builder6Proです。


for(int y=0;y<bmp->Height;y++){
BYTE *line_a = (BYTE*)bmp_a->ScanLine[y];
BYTE *line_b = (BYTE*)bmp_b->ScanLine[y];

//差分処理
*line = BYTE(*line_a) - BYTE(*line_b);
line_a++;
line_b++;
}
PixelFormat と言おうとしたのだけど、そのコードじゃ左端の1ラインしか
とれないっつう問題ではないか?
158デフォルトの名無しさん:03/06/16 01:43
間違ってるほうのソースを出してしまいました^^;
コンパイルは通るのですが、
実行すると差分のとこでエラーが出て止まってしまいます。


for(int y=0;y<bmp->Height;y++){
BYTE *line_a = (BYTE*)bmp_a->ScanLine[y];
BYTE *line_b = (BYTE*)bmp_b->ScanLine[y];


for( int x = 0; bmp->Width * 3; x++ ){
*line_a = BYTE(*line_a) - BYTE(*line_b); //ここで止まる
line_a++;
line_b++;
}
}
Image3->Picture->Assign(bmp);
大きく間違ってないから、もう少し足掻いてみれ。足掻くことが重要。
160デフォルトの名無しさん:03/06/16 02:00
足を掻く?詳しくってことでしょうか?とりあえず、ソースすべて出しますね

Graphics::TBitmap *bmp = new Graphics::TBitmap();
Graphics::TBitmap *bmp1 = new Graphics::TBitmap();

try{
bmp->Assign(Image1->Picture);
bmp->PixelFormat = pf24bit;
bmp->HandleType = bmDIB;
bmp1->Assign(Image2->Picture);
bmp1->PixelFormat = pf24bit;
bmp1->HandleType = bmDIB;

for(int y=0;y<bmp->Height;y++){
BYTE *line = (BYTE*)bmp->ScanLine[y];
BYTE *line1 = (BYTE*)bmp1->ScanLine[y];

for( int x = 0; bmp->Width * 3; x++ ){
*line = BYTE(*line) - BYTE(*line1);
line++;
line1++;
}
}
Image3->Picture->Assign(bmp);
__finally{
delete bmp;
delete bmp1;
}

> 足を掻く?
ワロタ 天然か
162デフォルトの名無しさん:03/06/16 02:07
足掻く
あがくって読むんですね〜
知らなかった^^;

一瞬、何が悪いのか気付かなかった…
超ケアレスミスじゃん!>for文
めっちゃワロタガナ
>>164
いやいや、明日は我が身と思わなくては・・・
166 :03/06/16 06:28
VCのTRACEみたいなデバック用の出力文みたいのないの?
>>166
あるよ
オーバーフロー
169 :03/06/16 13:33
>>167
名前を教えてください。
170113:03/06/16 15:25
>>113なんですが
手が空いている時に試しているのでですが
>>114さんのアドバイスのインクルードの順番を変更しているのですが
全然うまくいきません

ヘッダの部分を上げてみますので
どなたかアドバイスもらえませんか?
171113:03/06/16 15:27
// こっちがメインのフォーム

#ifndef UnitMainH
#define UnitMainH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <ComCtrls.hpp>
#include <ToolWin.hpp>
#include <Buttons.hpp>
#include "tabsheet.h"
//---------------------------------------------------------------------------
class TFormMain : public TForm
{
__published:// IDE 管理のコンポーネント
TPanel *PanelBottom;
TPanel *PanelTop;
TPageControl *PageControlMain;
TEdit *EditBar;

private:// ユーザー宣言
vector<TFrameSheet*> FrameSheet;
vector<TTabSheet*> TabSheet;
int tabCnt;

public:// ユーザー宣言
__fastcall TFormMain(TComponent* Owner);
AnsiString createTab(AnsiString path);
};
172113:03/06/16 15:27
// こっちがタブシートに張り付けられるパネル

#include <vcl.h>
#pragma hdrstop
#include "tabsheet.h"
#include "UnitMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFrameSheet *FrameSheet;
//---------------------------------------------------------------------------
__fastcall TFrameSheet::TFrameSheet(TComponent* Owner)
: TFrame(Owner)
{
}
tabsheet.hでUnitMain.hをインクルードしてるんじゃないの。
174デフォルトの名無しさん:03/06/16 16:12
動画処理をしているのですが、AVIファイルの各フレームごとの
x座標・y座標のRGBデータを取得する関数はあるのでしょうか?
175デフォルトの名無しさん:03/06/17 00:14
Builder 6 で
MFCのCStringtとかCFileとか
使うにはどうすればいいですか?

http://www.borland.co.jp/qanda/cbuilder/c0009332.html
これやっても、

[リンカ 致命的エラー] Fatal: ファイル ADVAPI32.LIB が開けません

言われます。
プロジェクトに、追加したり
#pragma comment(lib,"Psdk/ADVAPI32.LIB")
しても、駄目ぽ。
>>174
俺は、DirectShowでがんばった。
177175:03/06/17 00:36
自己完結。

パスに
$(BCB)\lib\Psdk
追加でできた。
>>174
Video for Windowsで簡単にできるよ
179113:03/06/17 10:01
>>173
> tabsheet.hでUnitMain.hをインクルードしてるんじゃないの。

hでインクルードしているのがまずいかと思って
cppファイルでインクルードしてみたけどだめです
型名が必要っていうコンパイルエラーが消えません
180デフォルトの名無しさん:03/06/17 10:33
メモ帳を作ってみてるんですけど、ドラッグアンドドロップがうまくいきません。
1.MessageDlg関数で、なぜか最後面にいってしまう。
  (他のウィンドウの後ろに隠れてしまう)
2.Show関数が働かず、最前面にきてくれない。
アドバイスよろしくお願いします。
181180:03/06/17 10:33
class TMainForm : public TForm
{
  ...
BEGIN_MESSAGE_MAP
  MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles)
END_MESSAGE_MAP(TForm)
  ...
};

void __fastcall TMainForm::FormCreate(TObject *Sender)
{
  ...
  ::DragAcceptFiles(Handle, true);
}
182180:03/06/17 10:34
void __fastcall TMainForm::WMDropFiles(TWMDropFiles &msg)
{
  if ( Memo->Modified ) {
    int res = MessageDlg(g_strFileName + " は更新されています。保存しますか?",
        mtWarning, TMsgDlgButtons() << mbYes << mbNo << mbCancel, 0);  // 質問1
    ...
  }

  char filepath[MAX_PATH];
  ::DragQueryFile((HDROP)msg.Drop, 0, filepath, MAX_PATH);
  g_strFilePath = filepath;
  g_strFileName = ExtractFileName(g_strFilePath);
  Memo->Lines->LoadFromFile(g_strFilePath);
  SetAppTitle();
  ::DragFinish((HDROP)msg.Drop);

  Show();   // 質問2
}
183180:03/06/17 10:36
環境書き忘れてました。
・Win98
・C++Builder 5
です。
184デフォルトの名無しさん:03/06/18 16:50
age
185113:03/06/18 18:16
113のインクルードの問題は一応解決できました。
動的生成したコンポーネントの中から
親コンポーネントのメソッドを叩くことが出来ました。

ただヘッダファイルででTFrameSheetを使用するとどうがんがってもコンパイル出来ません
cppで使用するのは可能なのですが

vector<TFrameSheet*> FrameSheet;
vector<TTabSheet*> TabSheet;

↓こうするとOK

//vector<TFrameSheet*> FrameSheet;
vector<TTabSheet*> TabSheet;

ヘッダの中では使用できないのでしょうか?
んなこたない。がんがりすぎて、おかしな事になってるんじゃないか。

とりあえず、vector<TFrameSheet*> FrameSheet; の前のどこかに
class TFrameSheet; って書いておけば、コンパイルは通るようになるだろうけど。
187デフォルトの名無しさん:03/06/18 21:26
TQuery->RequestLiveってのがありますよね。
TIBQueryではどのプロパティが該当しますか?
188デフォルトの名無しさん:03/06/18 21:49
例えば↓こんな感じでプログラムからシステムコマンドを呼び出す時に
system("dir > out.txt");
コンソールウィンドウを表示しないでコマンドを実行させる方法ってある?

189デフォルトの名無しさん:03/06/18 22:27
> コンソールウィンドウを表示しないでコマンドを実行させる

#include <stdio.h>
FILE *_popen (const char *command, const char *mode);
popen ではなく _popen です。

FILE *pf;
char buf[256];
char *p;

pf = _popen("dir","rt");
if (pf == NULL) return MISS;
while ((p = fgets(buf, sizeof(buf), pf)) != NULL) {
;
}
_pclose(pf);




190113:03/06/19 09:59
>>186
感謝
できますた!!
もうちょっと基礎を学びます
191デフォルトの名無しさん:03/06/19 22:00
質問です。
BCB6Pro で Examples\DBTasks\LookUp のフォルダに収められている、
lookupex プロジェクトというのがあります。

このプロジェクトをコンパイルして実行します。

このサンプルの Customer 列を編集しようとすると、
コンボボックスが出てくるのですが、
この仕掛けがどのように実現されているのかわかりません。

DMMain っていうデータモジュール上の CustomerSource が
絡んでいる…と踏んだのですが、DBGrid 上の Customer 列と
連動させているような部分をソースから見つける事ができませんでした。

どこをどういじればあのような動作になるのか、
識者の方々ご教授頂けないでしょうか。
192デフォルトの名無しさん:03/06/20 10:02
フォームをnewで作成した場合、deleteとReleaseで削除する方法がある
のですが、両者の違いがよく分かりません。deleteでエラーが出る場合
はReleaseを使えという説明を目にしたのですがdeleteよりReleaseを使った
ほうがいいんでしょうか?
>>192
ヘルプのTForm::~TForm
Releaseは、自分自身にPostMessageして、そこでdeleteするので、
フォームを消したいけれど、呼び出しもとがreturn後もフォームに触るので
即座にdeleteするとアクセス例外が出るような時に使えます。
(逆に、即座に消したい時はdelete)

まあ、よくわからなければReleaseでいいかと。
Closeして、OnCloseでcaFreeって手もあるけど。
195デフォルトの名無しさん:03/06/20 20:49
int brk;
double a = 216.1;
double b = 2161;

if( a < (b/10) ){

brk = 1;
}

以上のような処理をボタンのイベント処理で
実行させると brk = 1 のところの処理を通ってしまいます。
b/10 をdouble c などに代入して if( a < c )
とすると正常に動作します。。 
なぜ?
教えて君で申し訳ありませんが、どなたか教えてください。
環境はBuilder5 です。
196_:03/06/20 20:50
197デフォルトの名無しさん:03/06/20 20:57
C++BuilderとVC++
C++BuilderとDelphiでは速度はどちらが速いのですか?
>>195
0.1は、二進数でキッチリ現わせないから誤差が出る。
0.5=1/2=0x0.1 とか、 0.75=3/4=0x0.11 とかならOKかな?(試して無いよ
199192:03/06/20 21:03
>>193,194
回答有難うございます。いつもはdelete使っていたのでReleaseを使わないと
まずい事があるのかなと思ったもので。
200デフォルトの名無しさん:03/06/20 21:46
>>197
よく出る質問だけど、その質問はどういう意味なの?

 BCB/VC++と BCB/Delphiで同じコードをコンパイルしたらどっちが速いかという意味なら、
  それぞれのコンパイラには得意・苦手があり、必ずこうという事は言えない。
  スポット的な最適化能力はVC++が上だけど、それが実際に速いかどうかは場合によりけり。
  実感としては同じ程度だね。
  BCBとDelphiは共通でコンパイル出来るコードはPascalで、それは同じコンパイラを使うので同じ結果になるだろう。

コンパイラのコンパイル速度なら圧倒的にDelphiだ。
例えば
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1050452299

こういうコードならDelphiが最速になるよ
C++のコードとDelphiのコードを比べたら大概C++の方が速いけどね。
>>187
このプロパティ、ヘルプ読んでも意味不明で萎えたが、
SELECT した結果を編集したい、ってこと?
それなら TIBDataSet 使えばいいんじゃない? 自前で UPDATE 文を用意する必要はあるが。
>>202
不思議だね。自分が書いたら何故かDelphiの方が速い事が多い。
205デフォルトの名無しさん:03/06/21 15:47
BuilderでMFC使えないの?
CStringの
operator= (LPCSTR)
のやつが、うまくく認識されずに
コンパイルエラー

どうやったらいいですか?
>>204
もっとC++を勉強しろ。
>>205
どういうコードで、なんていうエラー?
208205:03/06/21 16:13
うほっ
なんかしらないけど、
うまくいけた。

>>204
>>206
コンパイラの得手不得手があるんで一概には言えんだろ。
たまたま204の書くコードが、dcc32の最適化と上手くハマってるってことじゃないか?

bcc32の方は、-k-を指定しても、__fastcall以外はpush ebp; mov ebp, espされてしまうし…
全部espで操作するコードを期待してるのに
210デフォルトの名無しさん:03/06/21 17:30
これからBuilder6入れようと思うんだけど、
ハードディスク何メガぐらい取られますか?
>>210
箱の裏に書いて無いか?
いや。落とすから箱は無い。
213210:03/06/21 18:08
アップグレードで申し込んだから
箱といっても地味なダンボールですが
漏れは400MBぐらい。
>>213
ウソコケ
アップグレードで買ったが正規版の箱で送られてきたぞ
それとも俺が優待でアップグレードしたからだってのか?
216210:03/06/21 18:52
>>214
ありがとう

>>215
粘着ですね。
毎回真っ白い箱で届きますよ。
>>215
あー、わかったわかった。
500MB超えてるなー
>>216=210
便乗で粘着するが俺のアップグレードもあの青い箱がきたぞ。
人によって違うのか?
で、その箱には 650MB 以上必要と書いてある(Pro版)。
オレもアップグレードだけど店頭で売っているのと同じ青い箱だったよ。
バージョン5までは素っ気無い白い箱で届いてたのでちょっと嬉しかった。
221215:03/06/21 23:38
>>216
本件に関して初カキコなのに粘着などと、どういう了見かな?
>>221
そういう追及をするところが粘着という了見なわけだが
俺もPRO6アップグレード青箱で来た。白箱の人もいたのだろうか。
でも >>216 の「粘着ですね。」も失礼な言いぐさだな。
>>210 以外で白い箱だった人っているの?。
聞いた事ないな。
白と青の二通りがあるなら、ずっと前にMLで話題になってるんじゃねえ?
>>224
丁寧な言い回しではないかw
227215:03/06/22 01:06
>>222
言われっぱなしで泣き寝入りしろと?

 フ ザ ケ ル ナ
( ´,_ゝ`)プッ

 フ ザ ケ ル ナ

だって
リキむとミがでるぞ
フ ザ ケ ル ナ

ライジング・サンを思い出した
231デフォルトの名無しさん:03/06/22 01:33
いちいち突っ込む奴全員粘着ケテーイ(w
┐(´ー`)┌
>>227
いや、いくらなんでも泣き寝入りしなくてもいいんじゃないか
>>210 が本当に C++Builder6 を持っているかどうかも怪しいもんだな。
大体持っているならあんな質問するかねぇ。買う前なら考えられなくもないが
箱が仮に白いヤツだったとしてもマニュアルとか見れば書いてあるだろうし。
多分過去にはアップグレードしたことがあって、同じと思い「白い箱」とか
書いてしまったとか?。どういうつもりだったのかは理解し難いが・・・。

まぁ どうでもいいや。w
>>224
Builder持ってないし、ちゃちゃを入れると面白いと思って書いてるだけだけど、
>>220を見る限り古いバージョンでは白い箱があったようなので
確実に、>>210が嘘とも言い切れない予感
まぁ、何で某に電話して聞かないのか、不思議ではあるけど…
画面写真等がかかれているのは「化粧箱」
「化粧箱」にはいろいろ書かれているけれど、誤字や記述の変更などでさし変わる可能性もある。
だから内箱と化粧箱を分離するのですね。
化粧箱は製品ごと、種別(Pro とか Personalとか)でも別になるし、カラー印刷でコストもかかっているから
会社としては少しでも節約したいわけだ。
化粧箱は宣伝も兼ねているし、ショップに置く場合には必須。
アップグレード/DM ユーザーは、内容に同意の上でお金を払っているのだから化粧箱は必要なし。

けど、化粧箱をほしがるユーザーが多かったし、節約といっても全体に比べれば
たいした額ではなく、ユーザーの心情を考えるとあまり得策ではない。ということで

Delphi6あたりから、直販ユーザーに対しても化粧箱付で提供し始めた。

というのが真相。
237名無し~3.EXE:03/06/22 04:25
BCB6で作成したアプリケーションは初期のWin95などでも問題なく動きますか?

今BCB4使っててWin95/98/Me/NT4/2000/XPで動くアプリが問題なく作れているので
アップグレードしてもしなくても構わないんですが、
定義されてないAPIや定数がボチボチ出てきて自前で代替ロジック組むのもいい加減アレなので、
アップグレードしようかなーと。
>初期のWin95
は DCOM がらみで最新の COM ライブラリが提供されていないため、MS 自身が切り捨てているからねぇ。
VCL、より厳密には Delphi の RTL を使わなければ問題なく動くはず。
Delphi ではアップデートの途中で Win95 に存在しない API を使ってしまったけど、D6 RTL Update3
(通称 Variant パッチ)で修正され、某としては保証はしないけど初代 Win95 で動作するようにした。
BCB6/Update4 に D6 RTL Update を混ぜることができるのならやってみてもよいと思うけど?
なんちゃってプログラマなんでアレだけど、IE5 以上を入れないと
動かないとか言われることが多くなったので、どうしても W95 を対象に
するなら、そのまま 4 を使った方がよさそうな気がする。
240デフォルトの名無しさん:03/06/22 14:49
int brk;
double a = 216.1;
double b = 2161;

if( a < (b/10) ){

brk = 1;
}

以上のような処理をボタンのイベント処理で
実行させると brk = 1 のところの処理を通ってしまいます。
b/10 をdouble c などに代入して if( a < c )
とすると正常に動作します。。 
なぜ?
教えて君で申し訳ありませんが、どなたか教えてください。
環境はBuilder5 です。
なんかデジャブ
なんか、何度も何度も見たような・・・

BCBとDelphiでは計算は long double (delphiの Extended) でするから b/10 と 比較はlong double でされる。



0.1 は2進数では 無限小数になるから
 (double) 1/3 < (long double) 1/3 が真になるようn
 (double) 0.1 < (long double) 0.1 が真となる
243205:03/06/22 16:35
やっぱりエラーが出る

[リンカ エラー] 外部シンボル 'CString::operator const char *() const' が未解決(C:\[DEVELOP]\PACKAGE\FORM\MAINFORM_.OBJ が参照)
こんな、感じ

コードは以下
BOOL TMainForm::AddFile(const char* lpszFilePath,const char* lpszKeyName)
{
TListItem* pItem;
CFile file(lpszFilePath,0);
CFileStatus filestate;
//
file.SetFilePath(lpszFilePath);
file.GetStatus(filestate);
//
pItem = m_lstFile->Items->Add();
pItem->Caption = (AnsiString)file.GetFileName();

return TRUE;
}
void __fastcall TMainForm::ToolButton5Click(TObject *Sender)
{
if(OpenDialog1->Execute()) {
AddFile(OpenDialog1->FileName.c_str(),"");
}
}
>>243
#pragma link "nafxcwd.lib"
をどっかに足す。
245205:03/06/22 21:07
>>244
うほっ
いけたです。

あんた神だ。

ありがとうございます。
遅レスでスマソ

>180
void __fastcall TMainForm::WMDropFiles(TWMDropFiles &msg)
{
  Application->BringToFront () ; // 追加

  if ( Memo->Modified ) {
以下略

で、だめかな?
247デフォルトの名無しさん:03/06/23 11:28
5を使っているんだが、
コンパイルして実行するとたまにあるはずのコントロールが消えてることがある
んでオブジェクトインスペクタでそのコントロールをみると、Left、Top、Width、Heightが
とんでおmない値になってることが結構あるんだが、これ完全にバグだが
対処法ってあるんですかね?
Builder5で作ったアプリケーションなんですが
win2000だとヒントが出て、98だとヒントが出ません。
こういう症状って、なにか解決策ありますか?
>>247
数年使っているが経験なし。
バグというよりは環境を見直したほうがよいと思う。
250デフォルトの名無しさん:03/06/24 09:30
>>248
98はヘルプの項目数が32767個ぐらいに制限されてませんでしたっけ?
そのせいでヒントが出ないんじゃない?
CB6 pro版はヨドバシカメラで61,200円 商用・業務目的 可
CB6 personal版はヨドバシカメラで9000円 商用・業務目的 不可
VC7 personal版は12800円 商用・業務目的 可

個人で商用・業務目的に開発を行なう人にとっては、
値段の問題だけで、VC選らんでる人も結構いるだろうな。
実際俺もその一人、学生ではさすがに6万円は手が出せない・・・
GUI開発をVCですると時間がかかりすぎて厳しい。

CBホスィ・・・
>>251
商用/業務で6万円出せない。ってのは何か間違っているよ。
いろんな事情があるんだとは思うけど。

学生がフリーウェア作る分には Personal でよいのでは?
アカデミック版なら半額でっせ
ttp://internet.watch.impress.co.jp/www/article/2003/0623/winny.htm
こんなのでニュースになるとは…
255デフォルトの名無しさん:03/06/24 17:26
インプレスはv2になってからずーとWinnyのバージョンアップ報告してるよ。
よっぽど買ってるんだろ。
>>254
なんちゅうか・・・それ作ってるヤシはやっぱり割れてんだろなBuilder・・・・
>個人で商用・業務目的に開発を行なう人にとっては、
>実際俺もその一人、学生ではさすがに6万円は手が出せない・・・

この辞典でアレだなぁ・・・
>250
ありがとうございます。
人のパソコンで起動したら確かに出てきました。
259 :03/06/24 22:28
商用なんて考えてないけどログインのやってるソフコンみたいのもだめなの?
毎月発表してて入賞すると数万円もらえたりするやつ。
あとWebで公開するときもソースも公開しないといけないの?
260251:03/06/24 22:40
>>252
>>259
アルバイトで、雑誌の付録CD用のランチャープログラムを自宅で作ってるんで、
ツールは全部自前なもんで。
仕送りもほとんどないから、バイトでの収入がメインなんです。
そうなると、6万円ってまとまったお金はなかなか出せないんですよ。
家賃よりも高い金額はなかなか出せません。

みんな、お金もちなのか・・・

>>253
アカデミック版はライセンスに制限が付くとおもいました。
商用利用不可なんて制限あったっけ?と思ったら、6からついたのね。
5のLearningをどこかで探してみたら?>251
>>260
ちなみにそれって幾らもらってんの?
6万円も出せないほどの低賃金なのかな。
足元見られてるんじゃねえかなあ・・。
>>262
100%そういうのにまわせるわけじゃないだろ
米も味噌も買わにゃならんし、部屋代だってかかるべ
あくまでアルバイトだっていってるじゃん、それも多分単発だろ?
たいした額にゃなるまいて
おじさんが若いころは、そういうバイトそのものが無かったのでアレだが、
普通、開発ツールは発注元が提供するものではないのか?
たぶん、足元見られているんだと思う。
>>248
BCB4で起きてる現象と同じだとすると、
ステータスバーのコンポーネントを使わないでパネルとラベルとかでそれっぽく作る。

ヒントイベントは発生してるのを確認したけどステータスバーに表示されなかった
98/XP(+manifest) = ×
2K/XP = ○
マルチポストになるかもしれませんが...
C++スレで、
C++ではenumの要素数を取得したり、pascalでいう、lowやhiを取れない、
とレスされました。

BCBだと拡張されてて取れる、とかないですか?
できないよ。
>>266
なぜそれが必要なのかが知りたいな
269266:03/06/25 13:01
あー、ごめん。C++スレで話が続いてるな。
270266:03/06/25 15:12
Delphi言語で書けて、C++で書けないことってありますよね。
(templateみたいに、逆もあるけど、Delphi言語は、なんか小回りが効くような)

BCBで拡張されてないと、困るような...
LowやHiは別にVCLを使うために必須じゃないから、拡張されてなくても困らないんでない。
BCBでもRTTI で Highに相当する情報はひらえるだろう。それで十分。

そもそもC++では配列の添え字に列挙型を使ったりしないし、出来ない。
それはC++の文化とは合わないしね。
273デフォルトの名無しさん:03/06/25 15:58
enum { A, B, C };

std::string strs[3];
strs[A] = "AAA";
strs[B] = "AAA";
strs[C] = "AAA";

std::cout << strs[C] << strs[B] << strs[A] << std::endl;
出来ないこたないだろう
かぶた
配列使わずにstd::vector使えとかそういう話?
要素数も取れるし、速度は同じ、メモリ消費は全体でポインタ2,3個分の違い。
>>373
だから Delphi的に配列の添え字に列挙型を使えるとるという意味はさ

enum TABC { A, B, C };
と列挙型を定義したら

int MyArray[ TABC ]; と配列を定義出来て

for( TABC i = TABC.Low() ; i<TABC.High() ; i++) とループして MyArray[i]; とアクセス出来ないと
>>277
とりあえずもちつけ
enum { A, B, C, es=3 };

std::string strs[es];
strs[A] = "AAA";
strs[B] = "AAA";
strs[C] = "AAA";

for(int i=0; i<es; i++)
 std::cout << strs[i] << std::endl;
>>279
enum { A, B, C, SIZE }; でOK
だからさ、
int i; で strs[i] と書いたら文法エラーにならないとさ
すでにenumの話じゃないし
>>270
関数内関数とか、クラス参照型(typeid相当)からのクラスメソッドの多態した呼び出しとか、
messageハンドラとか(BCBのマクロのやつはDispatchをオーバーライドしてる)、
{$L ....obj}をDelphiのユニットに別々に閉じ込めると識別子が重複してもきちんと解決してくれるとか、
externalでインポートライブラリ無しにいきなり.dllを呼べるとか、
\0が途中にある文字列定数を文字列として扱えるとか、implementsとか、そういう話?

ちなみにC++で同じことが書けなくても、間接的に利用さえできればいいので困らない。
後、enumを添え字にした配列より、0以外から始まってる配列の方が辛い気がするぞ。
(templateでどうにでもなるけど)
関数内関数

hoge()
{
struct Func
{
int operator()() { return 500; }
};

cout << Func() << endl;

}
>>284
それって、親のローカル変数に触れる?そこが最大の焦点。
(じゃないと、単に名前空間を解決しただけで機能的には普通の関数)
>>285
んなもん参照渡しすればいいだろ。
hoge()
{
struct Local
{
int nanika, aa[50], b[6];
string moji, iroiro[752];
} local;

struct Func
{
int operator()(Local &local)
{
cout << moji << endl;
return accumlate(aa, aa+50, 0);
}
};

cout << Func(local) << endl;
}

利用するローカル変数が少なければ構造体に詰めないでそのまま参照渡ししても可。
×
int operator()(Local &local)
{
cout << moji << endl;
return accumlate(aa, aa+50, 0);
}


int operator()(Local &local)
{
cout << local.moji << endl;
return accumlate(local.aa, local.aa+50, 0);
}
289デフォルトの名無しさん:03/06/25 18:27
TStringGridで任意の行を非表示できますか?
>>286
Cには、グローバル変数、ローカル変数、の二段階しかないけど、
Pascalは好きなだけネストが可能で、内側からは外側が見えるので、
グローバル変数は単に一番外側の変数に過ぎず、間に層をいっぱい作れるわけだ。
この性質を真似できないと、ちょっと認められないなあ。

これはトップダウン式パーサとか、概念的にもネストした状態を持つものを書く時非常に都合がいい。
そうなんだよね。 関数内関数で外側のローカル変数との処理ってホントどう解決してるのか不思議。
単純に2段ならいいけど3段でしかも再帰してたりすると、実装どうやってるんだろ?
実装は拍子抜けするほど単純ですよ。二通り知ってるけど、

親のEBPの配列を保持する方式

・x86にはenter、leaveという関数内関数を実現するための命令がある

Delphi方式(スタックフレームを利用してEBPのリンクリスト)

・関数内関数を持つ関数(要するに親になる関数)は必ずスタックフレームを作る
・子を呼ぶ時は自分のEBPを隠しパラメータで渡す
・親の変数には [親のEBP + n]
・親の親には、[[親のEBP] + n] 以下同様
・兄弟を呼ぶ時は親のEBPを渡す
・親を呼ぶ時は[親のEBP]にそのまた親のEBPが入っているのでネストの段数差だけ逆にたどって取得、渡す
そうか。 という事は 2段以上にするのはあんまり速度的には良くなさそうだね。
クリティカルな処理でも無い限り別にいいじゃん。
>>292
あなたの言う「enter/leave」と「Delphi方式」って同じものなんですけど。
enter/leave が遅いし融通が利かないから、多くの処理系では同等の複数の命令に
分割しているだけ。

Enter/Leave は、スタックフレームを作る/開放する命令。
作成した EBP とそのチェーンを手繰って、呼び出しもとのスタックフレームを参照するのは
個々のコードの仕事。具体的には EBP のチェーンを参照することになる。
>速度的には良くなさそうだね。
これは真実。

さて。名前(空間)の衝突を考えなければ、親関数のローカル変数と子関数のローカル変数は
同一のストレージにとることができる。スコープと寿命の問題はメモリ実体とは切り離して考
えることができるからね。

本質的にスタックフレームを作らなければいけないのは、直接/間接に再起呼び出しを行う場合
だけだ。ある関数が再帰呼び出しされるかどうか、その結果本質的に同じ名前の変数を複数生成
し、かつ弁別する必要があるかどうかをコードからコンパイラが知ることは非常に困難だ。
だからほとんどの処理系では再帰呼び出しされても大丈夫なようにスタックにフレームをとる。

しかし、現実のアプリケーションにおいて再帰呼び出しが起きることは非常にまれだ。

ということで、意味的にローカル変数であるものをすべてグローバル変数として領域を割り当てる。
もし再帰呼び出しが発生したら、そのときに、古い(ローカル)変数群をスタックに保存。
再帰関数が終了した時点で、スタックから古い変数の値を復元。

という処理系が存在した。ローカル変数をスタックに取らないため、ほとんどすべての変数参照が
絶対アドレス参照となり、再帰使わなくても高速。

>>295
 勘違いしてるカモ

 Delphi方式というのは
  function f1(x:Integer):Integer;
var y:Integer;
  procedure f2;
  begin if x>0 then begin dec(x); f2; end; //2
  end;
begin
  f2; //1
  Result:=y;
end;
とあったとき、
//1では push EBP; call f2 と渡されて この渡された スタックフレームを基準にして x,y を処理する
//2 では f2内部で作ったEBPでなく、この渡された 値をpush してゆく
>>296
キャッシュがあるCPUでは、ローカル変数よりスタックフレームの方が速いかもしれないね。
スタックだと、キャッシュ上で上書きされる率が高く、上書きされたら実際に書き込みをする必要が無くなるから
>>295
enterの場合、例えば三重ネストなら、親のEBP、と、親の親のEBPが、スタックに配列状に置かれる。
あと>>297のようにEBPをパラメータで受け取る必要は無い。enterの値に応じて集めてくれる。

>>296
今だとマルチスレッドがあるから、グローバルに領域を取るとまずいかもね
300デフォルトの名無しさん:03/06/26 13:42
コンストラクタとOnCreate、デストラクタとOnDestroyの違いがよくわかりません。
どういう違いがあり、どう使い分ければいいでしょうか?
301_:03/06/26 13:44
>>300
C++の場合、virtual関数を多態して呼びたい時は、OnCreate/OnDestroyかな。
コンストラクタに記述すると、そのクラスの動作を変更したわけだから、
すべてのインスタンスで有効になる。
OnCreate に記述すると、イベントだから、インスタンス毎に異なる動作を
記述できる。

違いはこれでわかるかな?
win2kとwinNT4でまったく同じプロジェクトをコンパイルしても
win2kのほうが20Kくらい大きいexeが出来上がるのですが、
そういうものなのでしょうか?
CBuilder で NT4 での動作保証していたのってバージョンいくつまでだっけ?
>>304 そういった話を聞いたことはありませんが、.map を出してみて比較すると
自己解決するのではないかと。
おそらくは何かコンパイルオプションが食い違っているのではないかと。
306デフォルトの名無しさん:03/06/27 15:52
void unc(double t)

 中略

void func(double t)
{
if(RadioButton1->Checked == true ) {
中略
}

って関数作っても
[C++ エラー] Unit1.cpp(162): E2451 未定義のシンボル RadioButton1
です
ほかのところではRadioButton1はちゃんと読めてるみたいなんだけど
自分で勝手に作った関数じゃうまく動いてくれない
何が考え方おかしいの、どうすりゃ動いてくれるかな、help me

BCCでつくったのをBCB6に移植しようとしてます
>>306
RadioButton1はどっかのフォームのメンバ変数じゃないの?
そのフォームクラスに所属してない関数からならアクセスできるわけないが。
Form1->RadioButton1->Checked 〜
309デフォルトの名無しさん:03/06/27 16:07
>>307
class TForm1 : public TForm
{
__published:// IDE 管理のコンポーネント
   TRadioButton *RadioButton1;
以下略

unit1.hでこんな風に宣言されてる
俺が作ったfuncという関数はこのフォームクラスに所属してないの?
どうすれば所属させられる?
310デフォルトの名無しさん:03/06/27 16:08
>>308
さんくす、超出来たっぽい
ありがとございます
DB〜というコンポーネントなんですが
これって使用する際はDBのセッションを開きっぱなしにしないといけないのですが?
DBをクローズすると内容とかなくなっちゃいますよね?
312デフォルトの名無しさん:03/06/27 17:11
コンポーネントの新規作成で、TIBQueryを派生させて、
MyQuery->SQL->Text = "select * from ATABLE";
みたいなことすると、「Empty query.」という変なエラーがでます。
それも、MyQuery->SQLをTStrings*でdynamic_castしてもOKだし、
Strings->Clear(); Strings->Add(Ssql);とすると、Addで同エラー。
すげー変。
313312:03/06/27 17:12
それも、同じソースの場所で、
TIBQueryを素で使って同じことをすると、何も起こりません。

みなさんも試してみて下さい。
>>313
ソース追ってみたら?
315312:03/06/27 17:19
コンポーネントの新規作成せずに、TIBQueryの空の派生、つまり名前を変えるだけの派生をすると、
newしているところで、
>[C++ エラー] : E2125 コンパイラは 'default constructor' クラスの を作成できない
というような、エラーとなります。
コンストラクタが消える???

ちなみにBCB6でつ。
316312:03/06/27 17:21
>>314
ソース追った結果が、TIBQuery->SQLの実態はTStrings*でつ。
また、dynamic_castでも、それが正しいという結果です。
VCLの中をデバッグしようとすると、汗画面に飛びます。
>>316
ソース見ると、OnChangeに代入してるQueryChangedが呼ばれてるはずということもわかるね
>>315
親が引数をとるコンストラクタしか持ってないから、
派生したクラスでコンストラクタを省略することは出来ないよ。
319312:03/06/27 18:19
>>318
はつみみですた。
>>317
確かに、
>TStringList(SQL).OnChange := QueryChanged;
こういう行ありますね。
ウワーン何が起こってるのか分からないYO〜
>>319
だからTStringListはOnChangeにコールバックが設定されていると
内容の変更があったときにそれを呼んでくれるの。
だからエラーはそのコールバック(設定されているTIBQuery.QueryChanged)の
中で起きてるんでしょう。
ってその中でブレークポイントとかって設定できないんだっけ?
<BCBは最近使ってないのでスマソ
321320:03/06/27 18:29
>>320
プロジェクトオプションのリンカタブで
デバッグライブラリを使う(D)
をチェックしとけばデバッガで中を追えるはずか。
322312:03/06/27 18:39
VCLデバッグはしてますが、ブレイクポイント無いと、汗画面でした。

>procedure TIBQuery.QueryChanged(Sender: TObject);
>var
> List: TParams;
>begin
> if not (csReading in ComponentState) then
> begin
> Disconnect;

ここでエラー起こしてます。
Disconnectなんてされても困るな...
323312:03/06/27 18:49
もう一つ分からないのが、派生前と派生後(名前変えただけ...)で動作が違うのは???
どう違うの
325312:03/06/27 19:37
>>324
派生しない場合も、Disconnectの中に入ってました。

で、派生後クラスのDisconnectの中に入ると、
>function TIBCustomDataSet.PSGetTableName: string;
>begin
>// if not FInternalPrepared then
>// InternalPrepare;
> { It is possible for the FQSelectSQL to be unprepared
> with FInternalPreprepared being true (see DoBeforeTransactionEnd).
> So check the Prepared of the SelectSQL instead }
> if not FQSelect.Prepared then
> FQSelect.Prepare;
ここに飛んで落ちます。
326312:03/06/27 19:38
それも、F7を押した瞬間、Disconnectメソッドに飛ばずに、
「TIBCustomDataSet.PSGetTableName」に入るので、???です。
327デフォルトの名無しさん:03/06/28 04:58
これインストールしたときなんか向こうの鯖にアクセスしてたんだけど、これってXPのアクティベーションみたいなやつ?
一本のソフトで複数のコンピュータに入れることは出来ないの?
>>327
できます。
329デフォルトの名無しさん:03/06/28 20:23
OleVariant() ってもしかしてやばい?
MSComm取り込んで、MSComm->Output=OelVariant(AnsiString hoge);
とかやると、リークしまくるのだが。
330デフォルトの名無しさん:03/06/28 21:52
>>328
わかりました、ありがと
331  :03/06/30 00:45
C++Builder6で使用している Direct X のバージョンは?
ボーランドのサイトではC++Builder3までしか書いてないので教えてください。
>>331
意味不明
最初から入ってるのは7.0かな。
334331:03/06/30 02:31
新たにDirectXSDKをインストールしなくてもプログラムをコンパイルできるのはってことでした。
>>333
ありがとう。
335312:03/06/30 10:14
ibquery.pasで、
>TStringList(SQL).OnChange := QueryChanged;
こんなキャストがあるけど、これって大丈夫なのかな?
>>335
FSQLを設定する部分でしっかりTStringListしか入れないようにさえなってれば
大丈夫でしょ。
337312:03/06/30 11:47
その通りでした。>>336
>FSQL := TStringList.Create;
になってますね。

ところで、
>constructor TIBQuery.Create(AOwner: TComponent);
を派生した場合は、派生したメソッドで
TIBQuery::Create
をコールする必要とかありましたっけ?
BCBからVCL派生はやっぱ慣れないと分からない部分とかありますよね。
必要というか、親のコンストラクタは、初期化リストで呼んでるでそ?
339312:03/06/30 14:04
じゃ、不要ですか。>>338

「派生前と派生後(名前変えただけ...)で動作が違う」原因が分からないと、気持ち悪いよ。
というか、開発進むと行き詰まりそう。
は?
引数付きのコンストラクタは初期化リストでしか呼べないし、
引数付きのコンストラクタしかないクラスから派生したクラスは、
初期化リストで初期化しなきゃエラーだろ。

動作が違うとしたら「デフォルトコンストラクタが呼ばれてる」だけだから。
341312:03/06/30 14:46
あ、読み間違えちゃった。 >>338 >>340

つまり、派生後のコンストラクタで、
TIBQuery::Create(AOwner: TComponent);
をコールすれば良い?
まず、「初期化リスト」という単語を知っている?

だいたい、ObjectPascalのコンストラクタは
C++から通常の関数のように明示的にCreateで呼び出せるの?
delphiでもinherited使うしかないんじゃなかった?
仮に呼び出せたとしても、
「デフォルトコンストラクタ」と「引数付きコンストラクタ」の両方を呼び出して
正常に動くとはとても思えないけど。
344312:03/06/30 14:57
>>342-343
Delphiのinheritedを行うために、「TIBQuery::TIBQuery(Owner);」と書くのかな、
と思ってたんだけど違うの?

実行させても動作しないから違うみたいだね...
__fastcall TMyQuery::TMyQuery(TComponent* owner) : TIBQuery(owner)
{
}
こうなってれば他に特に何もしなくていいということでそ。
>>325の動作が違うって件は、わからないけど。
346デフォルトの名無しさん:03/06/30 18:15
Visual C++とBCBってどれくらい違うの?
347デフォルトの名無しさん:03/06/30 18:53
Borland C++ Builder 6.0 のランタイムをインストールしないでも動くようなexeファイルって作れない?
無理?
>>346
VC=C++ Onlyで開発できる。
BCB=Pascalが必要な上にC++と互換性がない拡張がなされている。
349デフォルトの名無しさん:03/06/30 18:55
>>348
VCの方がよく見えるのですけど
じゃあVC使えばいい
>>347
できる
>>348
VC =C++ Onlyでしか開発できない。Visualという名前に負けている。
BCB=C++のみでも可能だが、DelphiのVCLを利用してVisualにGUI開発が出来る
353デフォルトの名無しさん:03/06/30 19:59
>>351
どうやるのですか、ご教授してください
354デフォルトの名無しさん:03/06/30 20:00
>>352
BCBの方がよく見えるのですけど
>>353
ヘルプで パッケージ のキーワードのところを順に見てけばそのうち判ると思うよ
>>353
プロジェクトオプションを開く
リンカタブの「共有 RTL DLL を使う」のチェックを外す
パッケージタブの「実行時パッケージを使って構築」のチェックを外す
357デフォルトの名無しさん:03/06/30 20:14
>>355
thanks

>>356
どうもありがとうっ!
ファイルサイズかなりでかくなったけど出来たよ
358デフォルトの名無しさん:03/07/01 09:34
>354

じゃあBCB使えばいい
359312:03/07/01 10:03
度々すみませんが、「派生前と派生後(名前変えただけ...)で動作が違う」原因というかバグを把握しないと、コンパイラとして不安があるなと思ってます。

BCBオタの皆さんも312の内容を試してみて頂けないでしょうか?
>>359
>BCBオタの皆さん

こんな書き方すると荒らし扱いされるぞ
気をつけな
InterBaseインストールしてないや
リソースファイル(*.rc)にBMP以外の画像を埋め込みたいんですが
なぜか成功しませぬ。

[sample.rc]
RC_TITLE001 BITMAP "title.bmp"
RC_CHAR001 PNG "stand001_all.png"
RC_BM001_1 JPEG "back_test0_big.jpg"

ファイル名を直接指定した場合は描画できるんですけど
リソースIDでやった場合、BMP以外は描画不能。

ユーザに直接画像を覗かれない方法があったら教えてママン(´・ω・`)
[sample.rc]
JPEG1 JPEG "test.jpg"

TResourceStream* stream = new TResourceStream((int)HInstance, "JPEG1", "JPEG");
TJPEGImage* jpeg = new TJPEGImage();
jpeg->LoadFromStream(stream);

で出来たど
364 :03/07/01 12:47
TTreeViewでWindowsのヘルプみたいに展開されてるかされてないかでノードに表示されてるイメージを変えるにはどうすればいいの?
StateImages設定して、OnCollapsedやOnExpandedでStateIndexを変えるとか >>364
366 :03/07/01 13:49
>>365
ありがとう。やっぱり設計時のプロパティだけじゃ無理なのか。
イベントハンドラをかいてその中で自分で設定するわけね。
367デフォルトの名無しさん:03/07/01 14:23
TDateTimePicker について質問があります。

二つのTDateTimePicker(Dtp1,Dtp2) を用意してformのcreateかなんかでそれぞれ、2003/06/27、2003/06/30と
しておきます。
この二つのTDate値を比較するときに、両方のTDateTimePickerの内容をUI上で変更すれば、きちんと比較できるのですが、
片方だけ(Dtp1)2003/06/27 を 2003/06/30 にして、比較(Dtp1->Date <= Dtp2->Date)すると、同じ値なのに(Valも同じ)、この式がfalseを返します。
Dtp2をもういちど、2003/06/30 に選びなおすと比較できます。

わかりにくくてすいませんが、どなたか解決法ご存知でしたら教えていただけませんか?

368362:03/07/01 14:45
>>363 thx!
フリーのライブラリを覗いたらリソースIDをそのままCreateFile()に
用いてたのが原因ですた(´・ω・`)

bool LDImg(const char* fileName){
 HANDLE hFile;
 if(strchr(fileName,'.') == NULL)
 { //リソースIDから指定
/*
  リソース経由でCreateFileさせる方法募集(´・ω・`)ノ
  GetModuleFileName()?
*/
 }else{//ファイル名を直接指定
  hFile = CreateFile(
   fileName, GENERIC_READ,FILE_SHARE_READ,NULL,
   OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
 }
 //以下、ファイルリード処理
}
>>368
> リソース経由でCreateFileさせる方法募集(´・ω・`)ノ
> 以下、ファイルリード処理
リソースをメモリにロードするなら、>>363のTResourceStreamで出来るよ(stream->Memoryでロードしたデータにアクセス)。
APIでやりたいなら→http://www.kumei.ne.jp/c_lang/sdk4/sdk_317.htm
>>367
再現しないな。
> formのcreateかなんかでそれぞれ、2003/06/27、2003/06/30としておきます。
> 片方だけ(Dtp1)2003/06/27 を 2003/06/30 にして
この時、どういうコードで日付変更してる?
371デフォルトの名無しさん:03/07/01 16:12
>>370
再現しないですかあ。

>この時、どういうコードで日付変更してる?

Dtp->Date=Now()-1; //昨日
Dtp->Date=Now()-7;//一週間前

って感じです。まずいですか?





372デフォルトの名無しさん:03/07/01 16:16
Dtp1->Date=Now()-1; //昨日
Dtp2->Date=Now()-7;//一週間前

でした
373デフォルトの名無しさん:03/07/01 16:19
>>370
Delphi5だと正常に動きます・・・。
TDateってTDateTimeをtypedefしただけで、時間も保持してるみたいだから、
時間部分の差で>>367みたいなことになったんでない?

EncodeDate使ったり、
Dtp1->Date = (int)Now() - 1;
Dtp2->Date = (int)Now() - 7;
ってやれば大丈夫だと思う。
う、ごめん嘘書いたみたい。カレンダーから日付取得すると、少し時間がずれてる。
比較するときに、(int)Dtp1->Date == (int)Dtp2->Date か。
376367:03/07/01 16:46
>>374
ありがとうございました。(int)で動きました。
ただよくわからないのが、Valの値(少数点(時間)付)も同じだったし、Delphi5では動いたことです・・・。

377デフォルトの名無しさん:03/07/01 16:49
6j pro をインストールしたんですが、使用許可のオンライン認証ってやらないと何か不都合はあるんでしょうか
もし認証をしないで済む方法、パッチなんかがあれば教えてください
378367:03/07/01 16:49
>>375
設定するときと比較するとき、両方に(int)しときました。
ありがとうございました。
>>377
オンライン認証が苦手だな、という方は、「使用許諾コード取得フォーム」に
記載の上、ファクシミリにてボーランド株式会社インフォメーションサービスセンター
使用許諾コードお問い合わせ係 まで送ってください。
>>377
ホントニ正規ユーザーでつか?
>>377
あなたは認証をやると何か不都合があるのでしょうか
377ではないが、今まで買ったソフトを、一本たりとも登録した事が無い。
VS6に付いてたMSDNの無償ライセンス申し込みの期限が切れたことに
気づいた時は、さすがに嫌な気分になったが。
383デフォルトの名無しさん:03/07/02 20:31
ネットに繋いでないPCにインスコする人のことも考えてほしいな
Winnyで出回ってるクラックパッチは怖くて実行出来んし
>>383
ネットに繋がなくても認証できるから大丈夫。
割れは恐いな。SPでどうなるかわからん。
というわけで必要なヤツは買え。
385デフォルトの名無しさん:03/07/03 09:09
>>383
だから>>379の言ってるFAX認証があるのだが、何か不満か?
今時FAXが無いわけでもあるまい?
386デフォルトの名無しさん:03/07/03 11:08
>>385
FAXなんかもってねーよ。必要ないし。
最近なら固定電話すら置いていない人もいるだろ。
割 れ 厨 必 死 だ な ( w
>>386
コンビニにFAXくらいあるだろ
389デフォルトの名無しさん:03/07/03 12:43
>>387
俺は>>377じゃないんだが。BCBなんてもっていないし。

>>388
コンビニから送ったとして、そのあとどうなるの?
390389:03/07/03 13:02
スルーか。まあいいや。
しかし興味深い・・・送った後にどうやって認証するんだろう。コンビニから送ったんじゃFAXを受けることはできないはずだし。
20分しか経ってないのに(w
よっぽどかじりついてんだな。
>>389
製品を買った方のみ、わかります。
すなおに買うことをお薦めいたします。
状況かいときゃ、封書ででも来るのだろう。
>>391
そうね

>>392
こんなことを確認するためだけに買うなんてばからしいからやめておく。
C++コンパイラならVC++があるし。

>>393
郵送か・・・なるほど。FAX送ってから届くまで時間がかかるけど他に方法がないんじゃしかたないよね。
ありがとう。
低質な釣り師だったな

↓ はい、次の方
396デフォルトの名無しさん:03/07/03 14:37
6j pro をインストールしたんですが、使用許可のオンライン認証ってやらないと何か不都合はあるんでしょうか
もし認証をしないで済む方法、パッチなんかがあれば教えてください
↓ はい、次の方
>>396
割れ厨?
399fopen:03/07/03 15:11
fopen で3.7ギガのファイルを読もうとすると、
fp = fopen( file_path, "r+b" )
fpにnullが入りうまくいかないのですが、どうにかならないでしょうか?
当然、小さいファイルは読めます。
>>396
アスタラへ逝け
Delphi用で(ry ゴホッ、ゴホッ・・・
401青木照子:03/07/03 17:41
プログラムを実行させると次のようなエラーが出ます。

[C++エラー]E2075 Project override オプションの間違い

どうしても分かりません。
>>401
そうですか。
低質な釣り師だったな

↓ はい、次の方
有れば開く、無ければ作る。他のアプリから読み取りは許可する。
他のアプリが開いていても書き込める。

こんな便利なTFileSteamコンストラクタの引数は、ヘルプにのってる定数の組み合わせ(||)
で出来るんでしょうか。
無理だな
そうか。じゃあなんで動くんだろ。
ぜってー無理。
408 :03/07/04 13:23
ボタンがクリックされたらラベルの表示を替えるプログラムで

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Label1->Caption.printf( "%d, %d", 100, 100 );
}

だと何も代わりません。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString str;
str.printf( "%d, %d", 100, 100 );
Label1->Caption = str;
}
とするとちゃんと表示されるんだけど。何故?
__property AnsiString Caption = {read=GetText, write=SetText...
なので、
Label1->Caption.printf(...
は、
Label1->GetText().printf(...
といふうに置き換わるから。
410  :03/07/04 14:38
>>409
どうもありがとう。
まだBC++Builder始めたばっかりでプロパティの仕組みはおぼろげなんだが
GetText()が返すのはいわゆる一時的なオブジェクトでラベルの保持してる文字列ではないのかな。
とにかくCaptionの値を変えるのは代入しかないわけね。
411デフォルトの名無しさん:03/07/04 15:28
MDI アプリケーションで、親フォームの閉じるボタン
(フォーム右上の×ボタン) が押されたっていうイベントを、
子フォームよりも先に親フォームで捕まえる方法ってありますか?
親フォームのCloseQueryをオーバーライドして、

bool __fastcall TMainForm::CloseQuery(void)
{
  // 子フォームのCloseQueryが呼ばれる前にしたい処理
  //       :
  return TForm::CloseQuery();
}

とか。あとWM_CLOSEがきた時点で処理するとか。
413デフォルトの名無しさん:03/07/04 16:24
TDateTimeにtime_tはどうやったら入りますか?

time_t a;
TDateTime DateTime = a;

みたいな感じで。
単に代入するだけなら、
dateTime = (double)a;

時刻を変換したいなら、
http://www2.big.or.jp/~osamu/Delphi/tips.cgi?index=0088.txt
>>412
できますた。dクス♪
416413:03/07/04 19:30
thanx>>414

でも、面倒...
これでできるっぽい
dateTime = a/(60*60*24.0) + UnixDateDelta + 9/24.0;
418デフォルトの名無しさん:03/07/04 20:31
>>377ですけど、結局今日6jパーソナル買ったよ
っていうか買うの3以来。
あれから3回もバージョンアップしたのか・・・
419 :03/07/05 09:13
数値計算を勉強したいのですがbuilderでBlitz++を使うにはどうしたら言いのですか?
最初にソースをコンパイルしてライブラリを作らなくちゃいけないみたいなんですけどできません。。
./configure --with-cxx=[compiler]
とか何とかUNIXのシェルかなんかで実行するのなんて分けわかりません。
コマンドラインでコンパイルしたことないのでMakeとかもわかりません。
だれかコンパイルしてBC++用のライブラリ作った人いませんか。
なんか ZDnet でBCB講座が始まってるぞ
http://www.zdnet.co.jp/developer/0307/04/dvn01_3.html

>>419
config.h を作らないといけないからね。
http://www.google.co.jp/search?q=Blitz+BCB
で探せば?
421419:03/07/06 11:43
>>420
有難うございます。config.hを探してみたら
http://www.oonumerics.org/MailArchives/blitz-dev/msg00490.php
にありました。
ただ他のヘッダファイルも変えなくちゃいけないところがあるらしく非力な自分は時間がかかりそうです。
config.h作った人は簡単にBCでもできたよといってますけど。
422419:03/07/06 13:59
ライブラリの作り方はわかないけど、もともとテンプレート使ってほとんどヘッダファイルに書かれてるので
ライブラリなんか作らなくてもヘッダさえインクルードすれば最初の方の例がコンパイルできるようになりました。
420さん、ありがとう。
あとはゆっくり勉強して不都合がおきればまた調べます。
http://www.codeguru.com/listview/edit_subitems.shtml
のような編集可能なListViewを実装したいんですが…サンプルがVCなのでうまくできません
他にサンプルやこれを使う方法無いでしょうか…
>423
適当に作ってみた。

ヘッダ
class PACKAGE TListView1 : public TListView
{
private:
TEdit *Cap;
TListItem * ChangeItem;
int ChangeSubIndex;
void __fastcall CapKeyPress(TObject *Sender, char &Key);
protected:
DYNAMIC void __fastcall MouseDown(TMouseButton Button, TShiftState Shift, int X, int Y);
public:
__fastcall TListView1(TComponent* Owner);
__fastcall ~TListView1(void);
__published:
};
//---------------------------------------------------------------------------
実装
コンストラクタとデストラクタ
__fastcall TListView1::TListView1(TComponent* Owner)
: TListView(Owner)
{
Cap = new TEdit(this);
Cap->Parent = this;
Cap->OnKeyPress = CapKeyPress;
Cap->Visible = false;
}
//---------------------------------------------------------------------------
__fastcall TListView1::~TListView1(void)
{
delete Cap;
}
//---------------------------------------------------------------------------
void __fastcall TListView1::MouseDown(TMouseButton Button, TShiftState Shift, int X, int Y)
{
//アイテムを求める
ChangeItem = GetItemAt(X, Y);
if (ChangeItem == NULL || Cap->Visible == true) return;

//サブアイテムを求める
int pos = 0;
for (int i = 0; i < this->Columns->Count; i++){
pos += this->Columns->Items[i]->Width;
if (pos > X){
pos -= this->Columns->Items[i]->Width;
ChangeSubIndex = i - 1;
break;
}
}

//サブアイテム位置でなければエディット表示は行わない
if (ChangeSubIndex < 0) return;

//Edit
Cap->Visible = true;
Cap->Left = pos;
Cap->Top = ChangeItem->Top;
Cap->Text = ChangeItem->SubItems->Strings[ChangeSubIndex];
Cap->SetFocus();
}
//エディットのキー操作
void __fastcall TListView1::CapKeyPress(TObject *Sender, char &Key)
{
if (Cap->Visible == true && Key == VK_RETURN){
ChangeItem->SubItems->Strings[ChangeSubIndex] = Cap->Text;
Cap->Visible = false;
}
}
//---------------------------------------------------------------------------
あとは勝手に改造してください。
あ、vsReportで、RowSelectはtrueにしておいてね。
429423:03/07/06 22:19
>>424-428
おぉ…ありがとうございます。
使わせて頂きます
>>424-428
すばらしい。。。便乗させてもらいます。
……見返したら許せないバグがあるんで、訂正スマソ。

//アイテムを求める
ChangeItem = GetItemAt(X, Y);
if (ChangeItem == NULL || Cap->Visible == true) return;

のところ、
if (Cap->Visible == true) return;はGetItemの前にやらないと
ChangeItemが変わっちゃうんで駄目です。
432423:03/07/07 02:10
>>431
再度どうもです。
コンポ作っていろいろやってます…
マウスのホイールやメニューのクリックでフォーカス外したりするのが必要なので
いろいろ調べつつ頑張ってみます
433  :03/07/07 18:04
professional版以上についてるCodeGuardてべんりですか?
メモリリークがあると簡単にわかる?
どんな型のどのくらいのメモリがリークしたかとかわかるの?
434デフォルトの名無しさん:03/07/07 21:29
プログラミングとは全然関係ないんですが、
一応、BCBでおこったことなので、書き込みます。

2,3ヶ月前に、BCBを使おうと思って起動させたら、
なんか、ゴジラの鳴き声
『ギャォォォォン!』
と言うのがして、ビックリして画面見たら、
いつものスプラッシュウインドウではなく
どっかのイラストレーターが書いたようなゴジラの絵の
スプラッシュウインドウが出てきました。
一体コレはなんだったのでしょうか?
ネタじゃなくマジです。
あまりにビックリしすぎて、スクリーンショットを取り損ねてしまいました。
BCBのIDEみたいな、ドッキングフォームを作りたいです。
プロパティのDock関係をいじってみたんですが、
エディタ部を固定したままにすると、ドッキングされたフォームが
エディタに重なってしまい、エディタが使えない状態になってしまいます。
よろしくおねがいしまs
436デフォルトの名無しさん:03/07/07 22:52
Buttonを押してImageへEditに書いた文字列を表示させるという事がしたくて
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char i[32];
strcpy(i, Edit1->Text);
Image1->Canvas->TextOut(0, 0, i);
}
と記述したら
'AnsiString' 型は 'const char *' 型に変換できないと表示されました。
Strからcharに変換する方法か、
もっと簡単にEdit1->Textの文字列を代入する方法ありませんか?
437>>436:03/07/07 22:53
ageてすいません。
よろしくお願いします。
Image1->Canvas->TextOut(0, 0, Edit1->Text);

質問でageても誰も文句言わん。
char配列へのコピーを一応。
strcpy(buffer, Edit1->Text.c_str());
440デフォルトの名無しさん:03/07/07 23:29
だれか434の件について答えてくれ
>>440
>一応、BCBでおこったことなので
Windowsで起こった事だ
CtrlとShift押しながらBCB起動しろ
443>>436:03/07/08 00:07
>>438
>>439
そのままTextOutに書いてよかったんですね。
わざわざchar配列へのコピーまで教えて頂きありがとうございました。

>>434
それ、Borzillaだな、幸運な奴だ
どうやったらそれが出るのか漏れは未だにわからん
リソースに入ってるので、リソースハッカー等で取り出せはしたのだが・・・・
445434:03/07/08 10:47
>>442
神!
出ました。有り難うございます。
今までウイルスか何かかなぁと思っていたんで、
安心しました。
普通に起動して出たのって凄い確率なんでしょうね。
>>442
これってBorlandの社員の集合写真か?
>>442
その方法で出ないぞ
BCB6J UPD#4は違うのか?
出たり出なかったりする
>>448
さんきゅ
未だ成功せず
リソース見てみたら集合写真はあるけど、Borzilla.wavが無い!?
本体ではなく他のに入ってるのか捜索開始します
Formを2つ作成し、Form1を上下左右に動かすと
Form2も連動し上下左右に動かす方法はないですか?
Formのイベントとか見てもそのようなものないし・・・。
宜しくお願い致します。
451デフォルトの名無しさん:03/07/08 14:03
ある
>>447
BCB5では>>442の方法で出た
6は未確認
454デフォルトの名無しさん:03/07/08 17:37
MDIアプリのいいサンプルありませんか?
一応探してみたんですが、無かったので
455434:03/07/08 18:08
int i=100;
AnsiString buff;
buff.sprintf("Value:%d",i);
これが通って

int i=100;
AnsiString buff.sprintf("Value:%d",i);
これが通らない。なんで?
いけね。名前そのままにしてた。
>>455
初期化でメンバ関数呼んで普通通ると思うか?
ふーん、そういうもんなんですか。
>>458
もう一度C++をよく勉強しなしゃい。
>>453
さんくす。
461デフォルトの名無しさん:03/07/08 19:33
462  :03/07/08 19:46
C#Builderとは。
C++Builder7はまだ発売されないの?
もうすぐ金入るからBuilder6のProfessional買おうか迷ってるけど買ってすぐ7がでたらやだなー。
463デフォルトの名無しさん:03/07/08 20:29
MDIアプリのいいサンプルありませんか?
一応探してみたんですが、無かったので
本買え
465デフォルトの名無しさん:03/07/08 20:33
どの本に載っていますか
どこで買えますか
新規作成→その他→プロジェクト→MDIアプリケーション
の奴でいいだろ。
>>433
CodeGuard便利っすよ。
メモリーリークの他にも危険な操作も検出してくれるようです。
468 :03/07/09 06:20
>>467
ありがとう!
プロフェッショナル版を買おうか迷ってたけど買おうとおもいます。
469デフォルトの名無しさん:03/07/09 11:36
フォームのBorder StyleをbsNoneにしてフォームの
タイトルバーを消した状態でフォームの大きさを従来通りマウスで
変えたいのですが、どうすればいいのでしょうか?
>>469
"WM_NCHITTEST" と「リサイズ」でぐぐれ。

ところで、枠が無い状態でどこを掴んだときにリサイズさせたいの?
471デフォルトの名無しさん:03/07/09 14:11
>>470
ウィンドウの端にマウスをもってくと枠がある時と
同様な操作がしたいもので
472デフォルトの名無しさん:03/07/09 14:19
あ、ダメだ・・
ググっても発見できない
WM_NCHITTESTの説明見て理解しれ

BCBのサンプル
http://market.agr.tottori-u.ac.jp/ken/tech.html#FormSize
474_:03/07/09 15:08
475デフォルトの名無しさん:03/07/09 18:19
>>473
できました!
しかし今度はMouseDownイベントが発生しなくなってしまいました・・
WM_NCHITTESTメッセージを処理した後にデフォルトの処理を
走らせるにはどうしたらいいのでしょうか?
TForm::Dispatch(&msg);

でもこの場合、処理した後じゃなくて前に呼ぶ。
(後に呼ぶと自分で設定したmsg.Resultが、デフォルトの処理で書き換えられるので)
477デフォルトの名無しさん:03/07/09 18:54
すいません。
変な例えですが、TStringListの様なクラスを配列で利用したいんですが、
初期化はどのようにしたらいいんでしょうか?
ヘッダに
TStringList *strlist[100];

とすると、初期化は?
strlist[]=new TStringList;
じゃダメですよね。
>>477
試してないけど、固定長配列でいいなら、

int i;
TStringList *strlist[100];

// 確保のコード
for( i = 0 ; i < 100 ; i++)
  strlist[i] = new TStringList;


// 解放のコード
for( i = 0 ; i < 100 ; i++)
  delete strlist[i];

じゃないかな?
479477:03/07/09 19:18
ごめんなさい。
やりたかったことは、TListを使うとうまく行きました。
>>478
やっぱりその方法が一番手っ取り早いみたいですね。

もう使わないけど。
アスペルガー
アスベスト
482デフォルトの名無しさん:03/07/09 23:49
Unit1.h
−−− ここから
class TForm1 : public TForm
{
__published: // IDE 管理のコンポーネント
TMemo *Memo1;
void __fastcall FormShow(TObject *Sender);
private: // ユーザー宣言
void __fastcall WMDropFiles(TWMDropFiles Msg); //←追加
public: // ユーザー宣言
__fastcall TForm1(TComponent* Owner);

BEGIN_MESSAGE_MAP //←追加
MESSAGE_HANDLER(WM_DROPFILES,TWMDropFiles,WMDropFiles) //←追加
END_MESSAGE_MAP(TForm) //←追加
};
−−− ここまで

Unit1.cpp
−−− ここから
#include <ShellAPI.h> //DragAcceptFiles()

//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
DragAcceptFiles(Handle,true); //Drag&Drop許可
}
483デフォルトの名無しさん:03/07/09 23:58
↑はフォームにファイルをドロップするとWMDropFilesが呼び出されるプログラムです
DragAcceptFiles(Handle,true);
では正常に処理されるのですが、たとえば
DragAcceptFiles(Button->Handle,true);
として、ボタンにドロップしてもWMDropFiles内に書いた処理をしてくれません
MLなんかにはここを変えるだけでいいようなことが書いてあるのですが、
何か他にしなければいけないことがあるんでしょうか
484買ってきたばっか:03/07/10 00:13
Borland C++ 6.0 Personalで
簡単なフォームを作って実行させたところ

[リンカ 致命的エラー] Fatal: ファイル名が必要 :

わかんないっすTT
>>483
WM_DROPFILESはButtonに送られるんだから、
Buttonをサブクラス化するとか、TApplication::OnMessageでWM_DROPFILESを捕らえて処理しないと。
>>484
漏れもなったことがある。
フォームにボタン一個貼っただけなのに、保存してからコンパイルしようとすると
[リンカ 致命的エラー]が出たり。
再インスコしたら直ったけど
>484
原因不明のエラーに対する自分なりの手順。
1)全て保存してやり直す
2)すべてのプロジェクトを再構築してやり直す
3)Builderを一度終了させてやり直す
4)OS再起動させてやり直す

個人的な経験では、再構築で直ること多し。
再インストールはやったことないな。。。
488486:03/07/10 01:34
>>487
漏れの場合はそれ全部やってもダメだった。
んで再インスコ
489買ってきたばっか:03/07/10 01:54
>488
再インスコでなおった@@;
アリガトン^^
C#Buidlerってどうなの?
491デフォルトの名無しさん:03/07/10 07:34
SYOTI_F( char * ) test_time SYORI_P(( const time_t *tp, char *buf ));

とGCCで書いてあるヘッダをC++Builderでコンパイルすると
[C++ エラー] test.h(38): E2293 ) が必要

となってエラーとなる...const が悪い??
ていうかこの部分が何を示しているのか良くわかってない^^;

C++Builderだとどうすれば良いのでしょうか?
492 :03/07/10 07:43
test.hが必要ってエラーでてるじゃん
493デフォルトの名無しさん:03/07/10 07:46
>>492
test.h 内で)が必要という意味みたいです^^;
SYOTI_FやらSYORI_Pっていあマクロらしきもののの中身さらさんとわからん
495_:03/07/10 07:55
496デフォルトの名無しさん:03/07/10 08:00
>>494
typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
SYORI_Pはこんな感じです。
#define SYOTI_F(type)extern type
となっています。
中身は必要ですか?

絶対SYORI_Pが違う。
#define SYORI_P(x) x
みたいになってるはず。
498デフォルトの名無しさん:03/07/10 08:20
>>497
typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
では定義は不可能という事ですか?
499 :03/07/10 08:51
おそらく
>typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
これはSYORI_Pのtypedefではなく_rewriteのでは。
そしてSYORI_Pはマクロです。
#define SYORI_P(PAR) (anyfunc)PAR
こんな感じ
500 :03/07/10 08:54
>#define SYORI_P(PAR) (anyfunc)PAR
これちがうは
501 :03/07/10 08:56
#define SYORI_P(PAR) (returntype(*)PAR)
こんなんかな
502デフォルトの名無しさん:03/07/10 09:04
>>499
それがないんですよね〜
SYORI_Pはヘッダファイルのみの使用なんですが
いくら検索かけてもないんですよね

typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));

は理論上成り立つのかなと...SYORI_P_rewrite の別名定義ですよね..
これって,,どうなんでしょw

いや、だから、UNIX系のソースによく見られる _P(...)マクロと一緒でしょ。
プロトタイプが有効なときには展開され、無効(古いコンパイラ)なときには空白にするっての。
だから>>497
504_:03/07/10 09:06
たぶん、config.hとかで
#ifdef ????
#define SYORI_P(arg) arg
#else
#define SYORI_P(arg) /* */
#endif
みたいになってると思うけど。
506デフォルトの名無しさん:03/07/10 09:16
ありました...
#define SYORI_P(proc)proc
って感じですが..
507デフォルトの名無しさん:03/07/10 09:27
説明はなしですか..ww
503に書いた内容じゃ不服か?
509デフォルトの名無しさん:03/07/10 09:51
問題は
SYOTI_F( char * ) test_time SYORI_P(( const time_t *tp, char *buf ));
マクロとマクロに囲まれたtest_time が何者か分からないわけで..

とGCCで書いてあるヘッダをC++Builderでコンパイルすると
[C++ エラー] test.h(38): E2293 ) が必要

このエラーがなぜ発生するのか分からないわけで..

よろ..
自分で理解できないからって、、

>えっと別スレで聞いたのですが説明なしで自己満足で終わられたみ
>たいなのでこのスレに投げます。

すげーむかついたから、勝手にやってくれ。
511 :03/07/10 09:58
そのソースが使われてるとこにあるライプラリなどから呼び込んでるかと
512 :03/07/10 09:59
プ。じゃなっかた。ブだ。
513デフォルトの名無しさん:03/07/10 10:01

分かっている事ばかり答えてもらってもしかたなか(-.-)
514デフォルトの名無しさん:03/07/10 10:02
答えるだけ答えさせておいて
バカにして終わりww
自己満足の境地www
定義されているのがtest.h内なら#ifdefの条件をdefineする
config.hならincludeする。

この程度が解決できないようじゃ、
どうせ他のところでもエラーが出て解決できないだろうがね。

>分かっている事ばかり答えてもらってもしかたなか(-.-)
516デフォルトの名無しさん:03/07/10 10:03
答えるつもりがないのだったら
時間の無駄だからこのスレにでてこないでください
517デフォルトの名無しさん:03/07/10 10:04
>>515
あのね その程度でつまってるんだったら聞かないでしょって
いってるのに!
518デフォルトの名無しさん:03/07/10 10:05
みなさん、そんなに興奮しないで下さい...

質問のレベルが高すぎたのかなあ...ww
>>491
この情報でどうやってわかれって。
521デフォルトの名無しさん:03/07/10 10:14
>>520
koreigai naniga aruno?
質問に散々こたえたでしょw

522デフォルトの名無しさん:03/07/10 10:52
デスクトップにあるアイコンより下にフォームを表示する方法を教えて
523_:03/07/10 10:57
524477:03/07/10 12:28
TListに独自のクラスをAddで追加したんですが
その追加したクラスを取り出すとき、void*型を独自クラスの形式に変換することが出来ません。
独自のクラスに変換するにはポインタを解析して行くしかないのでしょうか?
>>524
"キャスト"という言葉はご存じですか?
526デフォルトの名無しさん:03/07/10 13:08
>>524
クラスやコンポーネントは実際はポインタだから、普通にキャストできると思うが。
var
 List:TList;
 p:TForm1;
begin
 List:=TList.Create;
 List.Add(Form1);
 p:=TForm1(List.Items[0]);
 List.Free;
 ShowMessage(p.Name);
end;
TStringList *StrList=new TStringList;
StrList->Add("abcdef");
delete StrList;

TList *List=new TList();
List->Add(StrList)
//↑の変数はPublic属性

TStringList* sl=new TStringList;
sl=(TStringList)List->Items[0];
ShowMessage(sl->Strings[0]);
delete sl;

delete List;
これでキャスト出来ないんだけど、ドコが悪いの?
あっ!間違えた。
StrList->Add("abcdef");
//delete StrList;
sl=(TStringList*)List->Items[0];
こうだよん。
それやると、メッセージ表示される前に
フリーズしちゃうんですが…
TStringList* sl;
あー!
List->Addしたあと、delete StrListしてました。
お手数おかけしました。
ところで、何回も同じ変数でnewしても、
その回数だけdeleteする必要ってないんですか?
534デフォルトの名無しさん:03/07/10 16:47
VCLとCLXの条件コンパイルはどうやってますか?
535 :03/07/10 19:50
今までパーソナルだったけど気に入ったからProfessional版買ってきてインストールしたけど
起動が滅茶苦茶遅くなった。ペンティアムVの733ヘルツだと重いのかな。
要らないパッケージ外したら速くなるよ。それでも重いこた重いけどナー
537 :03/07/10 21:18
>>536
パッケージが原因なんですか。
そういえばパーソナル版使ってるときに本やWeb上のサンプルをコンパイルしようとしたら
パッケージがないとか言ってコンパイルできないことが多かったよ。
あれはプロフェッショナル版の人が作ってたんですな。
まあ実行時パッケージを使って構築のチェックを外せばだいたいコンパイルできたけど。
でもたくさんコンポーネントが増えてうれしい。
ログが表示できたりCodeGuardが使えたりしてデバッグもぐっと楽になるだろうし。
秋葉原に買いに行ったらVC++.Netの2002年版のやつとVS.Net2003Professionl限定アップグレード版をセットで買うと
5万弱で買えるってお勧めの商品になってて迷ったけどこれでよかったんだよね、多分??
でも1万円以上高いのはちょっと痛いな。あっちはC++とC#とVBもついてるし。
538デフォルトの名無しさん:03/07/11 07:15
今、悩んでいるのだけど
これからc++を始める人にとっては「c++builder」と「visual c++」の
どちらを選択すべきであろうか。
自分の中では「visual c++」がメジャーと思っていたので他の選択肢を考えていなかった。

「visual c++」の方が本や情報など探しやすい気がする反面で
「c++builder」を勧める人の方が多い気がもする。

先輩方のアドバイスを求む。
>>538
取り敢えず、このスレの主旨から言って、やはりBCBではないかと
ちなみに、VCのスレで聞かれたらVCを進める
理由は>>538だけじゃ、何に使うか分からんし
使い方によっては、gnuで充分だったりするので
540538:03/07/11 08:19
聞かれる気もしていたのですがあえて明記しませんでした。
まずはフリーソフトみたいな物を作りたいです。
考えているのはHP巡回ソフトの「WWWC」みたいなソフトです。
おそらくこれが完成するのにかなりの時間がかかるでしょう。

その後はDirectX関係を勉強してゲームもどきみたいな物を制作したいです。
単にキャラクターをパッドで操作できるだけの簡単な物でいいです。

こんな予定があるのですがどっちのc++がよいですかね?
まず、無料のコンパイラをDLしてC/C++というものをある程度理解して
それからWindowsなりネットワークなりだな。
同系ソフトにVCL製の
WWWDってのもあります。

情報をたくさん集めて判断すると
より後悔しない選択が出来るんじゃないかな。
そうだな。
フリーの環境 BCC55/Delphi/Java落としていろいろやってみてから 有償のものを買えばいい。

よく、お金出した方が真剣になるからなんて言い方する奴がいるが、
そんなものは幻想だ。
544デフォルトの名無しさん:03/07/11 17:15
coutやcerrに出力してるソースがありますが、
それらを標準入出力でなく、TMemoとかに出したいでつ。
BCBで出来ますか?
545544:03/07/11 17:32
というか、
「cout << "Hello world." << endl;」
が、どこにも表示されません。

いったいどこに出力されてるのだろう?

それは君の心の中にあるのです。
>>545
コンソールアプリケーションを選択すれば出力される。
AnsiStringってもしかして怖い?
>>548
どういうこと?
普通に使ってるZE!
>>548
怖くはないよ。すごく便利。
BCB3proにあったSQLビルダー、
BCB4以降Enterpriseにしかつかなくなったけど
proで使えるSQLビルダーないですか?
>SQLビルダー

って何するもんですか?

ウィザード形式で、

データを取得する表を選択して下さい
取得する列を選択して下さい
抽出条件を指定して下さい

→SELECT hoge FROM huga WHERE nullpo

みたいな?
そう。
またプログラム実行しなくても、
SQLビルダー内でクエリの結果も表示できるし
その結果をエクセルなどに簡単にコピペできたので
ちょっとした抽出なんがすごく便利だった。
おまけに、そのSQL文もウィザード形式で
作ってくれた。
だからBCB3以降使ってない。
SQLビルダーの復活を願いたい。
555538:03/07/12 11:21
アドバイスどうもです。
>542
自分はwwwcよりwwwdを使っているのですがwwwdに不満があって作ってみようかと(笑

もうちょっと考えてみますね。
556デフォルトの名無しさん:03/07/12 16:39
TStringList *sl=new TStringList;
sl->Add("AAA");
ShowMessage(sl->Strings[0]);
sl=new TStringList;
sl->Add("BBB");
ShowMessage(sl->Strings[0]);
delete sl;
こんな事した場合、メモリは2回取得されるんでしょうか?
それとも、同アドレスの変数が初期化されるだけでしょうか?
同アドレスの変数が初期化?
意味はワカランが、とりあえずメモリリークしてる。
>>556
2回別々に確保され、一回目のものはリークして2回目のものだけ開放される
やっぱり…
TListにドンドン追加してるんだけど、
追加し終わったあと(例えばTStringList)Deleteするとフリーズしてしまうんですが。
どうも、TListがコピーされたはずの物を参照せずに、コピー元ばかり見ているようなそんな気がします。
これじゃTListの意味がワカランのですが?
>追加し終わったあと(例えばTStringList)Deleteするとフリーズしてしまうんですが。

ソース出せ。お前の日本語ではらちがあかん。
>>559
コピー・・?
ポインタはいくらコピーしても指す先の同じものしか参照しないし
TListに格納するのはポインタなわけだが・・
>TListに格納するのはポインタなわけだが・・

と、言うことはTListはポインタのポインタと言うことですね?
TListだけをdeleteしてたりして
ボーランドのTListの例です。
new して追加した後、deleteしてないんですが…
>>565
気のせいでしょう。
!ごめんなさい。
forの所削ってました。(w
>>551さん
そうですか。
じゃ、構造体の問題かな・・・。

struct unko{
int i;
char hoge[8];
char chinko[4];
};

unko shitai;

strcpy(shitai.chinko,"chin");
strcpy(shitai.hoge,"hogehoge");

AnsiString aschinko;
aschinko=AnsiString(shitai.chinko);
ShowMessage(aschinko);

shitai.chinko の1バイト目が\0 になるんです。
基本的なことかもしれませんが、アドバイスあったらお願いします。


569デフォルトの名無しさん:03/07/13 00:47
>>568
char hoge[8]; // 8バイトである
char chinko[4]; // 直後にある

strcpy(shitai.chinko,"chin"); // 5バイト書き込む(最後は '\0')
strcpy(shitai.hoge,"hogehoge"); // 9バイト書き込む(最後は '\0')

ここで shitai.chinko[0]は '\0'になる
あ、順番を
strcpy(shitai.hoge,"hogehoge");
strcpy(shitai.chinko,"chin");
したらOKだ。


勉強しなおしてきまつ。
571568:03/07/13 00:56
>>569
そうでした。ありがとうございました。
今、ソケットで上記shitai を送信して受信してるのですが、
受信先でかならずある特定のcharの頭が'\0'になるのに悩んでるのですが、
手がかりを見つけたようです。
ただ。。送信直前では'\0'は入ってないんです。もっかい見直しマス。
>今、ソケットで上記shitai を送信して受信してるのですが、
冗談はよせよ。あまりおじさん達をからかうなよ。
573pp:03/07/13 02:48
>>572
横レス
冗談といいますとpp(興味津々)
574538:03/07/13 04:50
「c++builder」か「visual c++」で悩んでいた者ですが「c++builder」に決めました。
決め手は
本家や ttp://www.borland.co.jp/cppbuilder/competitive/comparison.html
ここの ttp://www.zdnet.co.jp/developer/0307/04/dvn01_3.html
ページにある「visual c++」ではGUIアプリケーションの構築に労力がかかる、という点で。

なんか相手の罠にかかったような感じですが(笑)、「c++builder」でがんばってみます。
575デフォルトの名無しさん:03/07/13 13:13
TOpenDialog OpenDlg=new TOpenDialog(this);

こうすれば、解放処理delete OpenDlg;しなくていいんですよね。
たしかにthisが開放されるときに勝手に開放されるが、それまでは残りっぱなし。
手動作成の一時的なダイアログ用なので
それだけ教えていただければ十分です。
>たしかにthisが開放されるときに勝手に開放されるが、

されるか?
TButtonを貼り付けnew TTimer(Button1)ってな感じでButton1を親にしてTTimerを動的に作成。
TTimerのイベントを適当に設定するとそのイベントが発生するが
Button1.OnClickで親であるButton1を開放するとTTimerも開放されイベントが発生しなくなる事が確認できる。
>>578
される
開放→解放 気づかなかった(汁
ヘルプでTComponent::Owner見りゃわかる
583デフォルトの名無しさん:03/07/13 16:53
newで構築したインスタンスをFree()メソッドで開放してもいいんですか?
ヘルプに従ったほうがいんでない。
>>572
冗談?
・・・・・。
Socket->SendBuff(&shitai,sizeof(sitai));

これは冗談の類なのでしょうか・・・・?
585=568でした。

冗談な理由を教えていただきたいです。
送受信できてるのが冗談なら別の方法を考えますので・・・・。
>>586
まあ、一般的に構造体というメモリイメージを直接送受信するのは
・バイトオーダー(エンディアン) (主にCPUの違い)
・アライン (コンパイラ、コンパイラ設定の違い)
・その他の内部表現 (浮動小数点や文字コードなど)
の不一致が問題を起こすから、そのプロトコルを使い続けていくと
いろいろ困ってくる。
>>587
レスありがとうございます。
挙げて頂いた注意点は気をつけてます。
では、固定長のバイナリデータを受信側で構造体に落とす、という使い方では
なにか不具合があるでしょうか?送信側では構造体で定義していないという前提で。

あ、受信側のコンパイラのアラインは1です。
Win2kSP4+BCB6ProUPD#4です
QuickReportファイル(*.qrp)をPDFに変換するライブラリなりコンポーネントなりは無いものでしょうか
591デフォルトの名無しさん:03/07/15 00:46
Delphiで作ったdfmファイルはそのままC++Builderで使えますか?
>>590
アクロバット(リーダーじゃないやつ)で印刷させる・・・・・。
ってのはだめですか?w
>>591
dfmだけでなく、pasファイルとセットでプロジェクトに組み込めます。
594590:03/07/15 09:02
>>592
いやぁ、フリーウェアなんで一緒に配布できるものがいいんですけどね・・・
それに別操作をユーザに強いるのもどうかと
595山崎 渉:03/07/15 09:35

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
アレの方法を教えてくれ
597山崎 渉:03/07/15 14:01

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
598 :03/07/15 15:51
CodeGuardによるメモリリークの検出のことなんだけど
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
TStringStream* ps = new TStringStream(OpenDialog1->FileName);
}
char *s = new char[1000];
}
でchar[1000]のほうは検出してくれるんだけどTStringStreamのほうは検出してくれないみたいなんだけど
なんか設定がおかしいのかな?
あとTStringStreamの読み込みは\nとかは一文字分にして読み込んでくれてるよね?
いわゆるテキストモードとか言うやつだよね。
599598:03/07/15 16:07
なんか馬鹿な事かいてました。
TStringStreamはファイルをオープンするわけじゃなく、コンストラクタの引数で渡した文字列を
ストリームとして表すものだったんですね。標準ライブラリのやつと同じ感じか。

それはわかったんですがなぜメモリリークが検出されないのでしょうか。
あとBuilderの関数とかにはテキストモードでのファイルの読み込みとかするやつはないのですか?
まあCやC++の標準ライブラリを使えばいいんだけど一応知りたいんです。
600デフォルトの名無しさん:03/07/15 19:50
>テキストモードでのファイルの読み込みとかするやつ
そういやPascalのResetとかReadとかEofとかはC++Builderで使えるのかな?
601デフォルトの名無しさん:03/07/15 20:42
現在BCB5Entを使用しています。
6にアプしようと思っているのですが、予算つごうでProになってしまいます。

そこでお聞きしたいのですが、5Entと6Proではどちらがよいでしょうか?
特に変わったものは開発してませんが、IBX等データベース関係を少しいじる
ことがあるので違いが気になります。
過去レスにあるようにSQLビルダもない様だし。
Builder6のInterbaseコンポーネントで質問があります。

InterbaseAdminタブのIbinstallコンポーネントを使おうとすると
「Ibinstall.dllがみつかりません」
とでます。

IB6もインストール済みですし、Ibinstall.dllもあります。

また、このコンポーネントが使えたとしてFirebirdに対して使用することはできるのでしょうか?
>>599
こーいうことかな??

class MyClass {
public:
MyClass() { }
virtual ~MyClass() { }
};

class MyVclClass : public TObject {
public:
MyVclClass() : TObject() { }
virtual __fastcall ~MyVclClass() { }
};


void __fastcall TForm1::Button1Click(TObject *Sender)
{
MyClass* obj = new MyClass(); // メモリリークが報告される
MyVclClass* vcl = new MyVclClass(); // メモリリークが報告されない
}
604509:03/07/16 02:14
>>603
おお、確かにTObjectから継承したやつは報告されませんでした。
TStringStreamはTObjectから継承してたからなのかな?
でもCodeGuradにそんな設定は見つけられないんだけどどっかにあるのかな?
それとも仕様なの?
他の人はどうなんでしょう。
アウトルックの左側についてるようなメニューのコンポーネントはないですか?
TListView
いま会社でC++Builder使ってるのですが、1からわかるような良い書籍はありますか?
池袋のビックピーカン覗いてもC++Builderの本が5冊ぐらいしかなかったので・・
>>607
C++の本と、VCLについてはDelphiの本を読むとよい。
C++Builderについての良書はほとんどないですから。
>>607

Sams Teach Yourself Borland C++ Builder in 21 Days
http://www.amazon.com/exec/obidos/ASIN/0672310201/

Borland C++Builder 6 Developer's Guide
http://www.amazon.com/exec/obidos/ASIN/0672324806/
610607:03/07/17 11:01
>>608
Delphiですか。C++Builderの本はホントにないですよね・・・

>>609
よさげなんですが、英語は読めないので・・・
英語ほうがしっかり書いてあるというはわかるんですが
>>607
株式会社カットシステムから出ていた
C++Builder4コンポーネント活用ガイド&実践プログラミングVol.1〜コンポーネント・リファレンス〜
http://www.cutt.co.jp/book/4-87783-009-X.html
C++Builder4コンポーネント活用ガイド&実践プログラミングVol.2〜プログラミング・テクニック〜
http://www.cutt.co.jp/book/4-87783-010-3.html
というのが、自分としてはカナーリ役に立ちました。今でも手元において活用してます。
が、もはや絶版です。

代わりに今は
C++Builder 6 コンポーネント活用ガイド&実践プログラミング Vol.1
http://www.cutt.co.jp/book/4-87783-061-8.html
C++Builder 6 コンポーネント活用ガイド&実践プログラミング Vol.2
http://www.cutt.co.jp/book/4-87783-062-6.html
というのが出てますが、収録内容は少なくなっているのに価格は上昇していて、4の本に比べると劣ります。
ただ、5以降の新しい部分(新しいプロパティとか)が網羅されているので
買って損は無いと思いますよ。
612新しいマスクの方法:03/07/17 17:04
BCB5で以下のようなバグを発見しました。

以下は
1、Canvasを最初に黒一色で塗りつぶす
2、Canvasに朱・オレンジで線を描画する
3、黒の領域をFloodFill(0,0,clBlack,fsBorder)で重ねぬりする。

Image3->Canvas->Brush->Color = clBlack;
Image3->Canvas->Rectangle(0,0,Image3->Width,Image3->Height);
Image3->Canvas->Pen->Color = (TColor)0x000f3fff;
Image3->Canvas->Pen->Width = 4;
Image3->Canvas->MoveTo( CX+R2*cos(NeedleAgl), CY-R2*sin(NeedleAgl));
Image3->Canvas->LineTo( CX+R1*cos(NeedleAgl), CY-R1*sin(NeedleAgl));
Image3->Canvas->Pen->Color = (TColor)0x002f6fff;
Image3->Canvas->Pen->Width = 2;
Image3->Canvas->MoveTo( CX+R2*cos(NeedleAgl), CY-R2*sin(NeedleAgl));
Image3->Canvas->LineTo( CX+R1*cos(NeedleAgl), CY-R1*sin(NeedleAgl));
//----魔法の一行 (何故上手くいくのか不明:2003/07/18発見)
Image3->Canvas->FloodFill(0,0,clBlack,fsBorder);

このプログラムを実行した結果、針の部分を覗いて
背景のImage1に貼り付けたビットマップが透過して描かれます。
つまり、針部分のみマスクされ、黒い部分は透明になる。

613新しいマスクの方法:03/07/17 17:04
もともとのプログラムでは、、、
黒一色でべた塗りして針を書き込むだけ、という
以下のようなソースでした。

Image3->Canvas->Brush->Color = clBlack;
Image3->Canvas->Rectangle(0,0,Image3->Width,Image3->Height);
Image3->Canvas->Pen->Color = (TColor)0x000f3fff;
Image3->Canvas->Pen->Width = 4;
Image3->Canvas->MoveTo( CX+R2*cos(NeedleAgl), CY-R2*sin(NeedleAgl));
Image3->Canvas->LineTo( CX+R1*cos(NeedleAgl), CY-R1*sin(NeedleAgl));
Image3->Canvas->Pen->Color = (TColor)0x002f6fff;
Image3->Canvas->Pen->Width = 2;
Image3->Canvas->MoveTo( CX+R2*cos(NeedleAgl), CY-R2*sin(NeedleAgl));
Image3->Canvas->LineTo( CX+R1*cos(NeedleAgl), CY-R1*sin(NeedleAgl));

この場合、(TColor)0x002f6fffで塗りつぶした領域が"透過領域"になります。
私には原因がわからないのですが、マスク処理が簡単に行えるので重宝してます。
原因をご存知の方はいらっしゃいますか?
614新しいマスクの方法:03/07/17 17:06
つまり、三回重ね塗すると透過領域になる???
今まで、このような事態に遭遇したことはなかったのですが・・・

連続投稿すみません(^^;
フォームを透明にできますか?
フォームにラベルをのせてそのラベルの文字だけが表示されるみたいなことを
したいので、ご存知の方宜しくお願いします。
それは透明にするんではなくて
不定形リージョンで出来そうなんだけど。
ぐぐってみ。
617デフォルトの名無しさん:03/07/18 11:29
今思ったんだけど、例外処理で
try{
}catch(...){}
と、例外の種類を設定するところで【...】とすれば
どんな種類の例外でもキャッチできるわけ?
俺どっかでこの【...】を使ってたの見てずっとこうしてんだけど
どうなの?
>>614
bool TCustomForm::TransparentColor
TColor TCustomForm::TransparentColorValue
>>617
言語ガイド嫁
620デフォルトの名無しさん:03/07/18 12:07
>>616
ビットマップではできるんだが、ラベルも可能?
TStaticTextをParentWindow = NULLにして透過させればいいんじゃない?
622デフォルトの名無しさん:03/07/18 13:03
>>621
すんません、C++Buier1使ってます
他のコンポで代用可能なのあるますか?
>>622
SetWindowLong(Handle, GWL_EX_STYLE, GetWindowLong(Handle, GWL_EX_STYLE) | WS_EX_LAYERED);
SetLayeredWindowAttribute(Handle, RGB(255,0,0), 0, LWA_COLORKEY);

ただし、Win2k以降専用
624デフォルトの名無しさん:03/07/18 13:20
>>623
それって2000とかの透明機能のアレですか?
これはこれで非常にありがたいです。
ありがとうございます。
625デフォルトの名無しさん:03/07/18 13:26
>>623
嗚呼・・
GWL_EX_STYLEとかWS_EX_LAYEREDとかのデファインがヘッダーにないです
626デフォルトの名無しさん:03/07/18 13:35
C++Builder5でExcelって簡単に操作できますか?
これに関するHPとかあったら教えて下さい
>>625
PlatformSDKなりbcc5.5.1なりからヘッダファイル持ってくれ
BCB5で黙ってこれ使っとけ!っていうDirectX9.0aのコンポーネントない?
ライブラリの改変やヘッダファイルの改変いらずですぐ使えるやつね
>>628
無い!




























と言ったら?
BCBでVirtualTreeviewってコンポーネント使ってる人いない?
Delphiでは普通に動くのに、BCBではインストールでつまづく。
対応してるって書いてあるのになぁ。もう少し互換性マシにならないかなぁ。
>>630
じゃあ自分で作る鳴りソースいじるなりしろや、ボケ。
社員がキレたw
BCBのランタイム集borlndmm.dll,cc3260mt.dll,rtl60,stlpmt45.dll,
vcl60,vcl60.bplてありますよね。普通、BCB持ってない人のために、
入れておくものですけど、これて、提供するソフトに入れても差し支え
ないのですかね。なんか、著作権違反しそうでやばそうですよね。
もともと、ボーランドのbinディレクトリーに入っているものですし、
勝手にこれらの物って、使用してかまわないんでしょうか。
よろしくお願いしま〜〜す。
>>633
聞く前に添付文書読め
>>631=>>634 はカルシウム不足
添付の文章なんかないですが。似たようなのにフリーソフトのパックに、
5.1のやつはあるようですが。BCB6に対応したものなのですが。また、Bin
ディレクトリーから、拝借した物なのですが。まあ、これなくても動くみ
たいですが。コードウォリアーズも、似たようなランタイムがセット
出来るみたいですが。いくらプログラムしても、これないとだめという話
なのですが、著作権はありますし。よく、わかりません。
VirtualTreeviewとやらは、あっさりインスコできたぞ。(BCB6)
インスコしたディレクトリにある deploy.rtf とか読めばいんでない >ランタイムの配布
>>636
割れ物かよ

それはともかく文書と言われて紙の文書しか思い浮かばないとか?
よんでみまつ。とうもありがとう。ランタイムの配布の項目
あるんでしたね。・・・・
BCB6ProにVBのInstrRevに相当する関数ってありますか?
>>642
Delphiには(Ansi)StrRScan()なる物があるからあるんじゃないか?
案外便利だよな。アレ。
>>642
char *相手ならstd::find_endとか
645642:03/07/21 09:56
>>643
ありました。ありがとうございました。
StrRScan((const AnsiString AText, const AnsiString& subStr);
ではなく
StrRScan(const char * Str, char Chr);
なのがチョイ引っ掛かるけど・・・
(キャストすりゃいいのか? ま、やってみりゃわかることですな)

>>644にも感謝
646デフォルトの名無しさん:03/07/21 10:06
c_str()
647デフォルトの名無しさん:03/07/21 21:15
初心者で申し訳ないのですが、
StringGridを印刷するにはどうしたらよいのでしょうか?
648デフォルトの名無しさん:03/07/21 22:12
>>647
Printscreen
>>647
QuickReportを使うか
RichEditにキャラクタを使って擬似テーブルを作って印刷するか・・・
650デフォルトの名無しさん:03/07/22 12:32
なあそろそろ>>626を教えてくれよ
>>650
全然簡単じゃないがOLE使えば出来る。
WSHでやった方が良いと思うが。
>650
前から微妙に気になってるが使ったことはない↓良さげなら教えてくれ(w
http://www.vector.co.jp/soft/win95/prog/se275929.html
http://www.vector.co.jp/soft/win95/prog/se231565.html
>>626
[プロジェクト]-[タイプライブラリの取り込み]でダイアログ表示して
Microsoft Excel ... を選択して、ユニットディレクトリ選択して
ユニット作成でエクセル使えるラッパークラス作成できる。
654デフォルトの名無しさん:03/07/22 14:49
オリジナルクラスが格納しているデータをディスクに保存したいんですが
TStream系のクラスを利用して出来るんでしょうか?
その前に、ストリームにクラスの内容を書き込む方法がわかりません。
誰か教えて。
655_:03/07/22 14:50
>>561
いやOLEとかWSHとかもうわからないんで
>>652
おっとこれってコンポーネントじゃなしにDLLなら使ってみるかな
>>653
ほほぅ、これって始めて見た。
ラッパークラス作った後はどう操作するんだろうか・・
これもあとでためしてみよう

みなさん、ありりん
657デフォルトの名無しさん:03/07/22 15:16
OpenDailogにラベルやEditボックスを追加したいんですが
どうすれば実現できますか?
659デフォルトの名無しさん:03/07/22 16:18
BC6で作成したアプリはmanifestファイルを使ってLuna対応にできるのでしょうか。
BC5ではTListviewをレポートモードにして使っているとダメだったのですが、
BC6+Update#4ではOKですか?
660_:03/07/22 16:24
>>659
Delphi7ならOKですよ。
662デフォルトの名無しさん:03/07/22 16:44
>>661
Delphi7相当なのはきっとC++ Builder7ですよね。出るのか知りませんが。
C++ Builder6はダメなのかな。
663_:03/07/22 16:47
Delphi7のVCLをC++Builderに移したりって出来るの?
BCBのヘルプ見にくいんですけど・・・
>>654は無視ですか?
>>666
はい
>>658
いやそれ系はググってアレしたんだけれども
コンポをインスコせずに自分でやりたいのですが
その方法を載ってることってどこでしょうか?
>>668
ソースみりゃいいだろ。
ここは夏厨のスクツのイソターネトですね
671 :03/07/22 20:21
コンポーネントパレットが表示されないようになってしまったのだけど、
なんとか直す方法ないですかね。
氏ねば
初めまして。5.0を使い始めた者なんですが、実行結果が表示されないんですけど・・・。
form1という何も表示されないウィンドが表示されるだけなんですけど。
別に多機能を使いたいわけではないので、基本的なコンパイルと表示ができれば満足なんですが。
どなたかご教授してもらえませんか?
↑はどうする?
まず、コンソールウィザードを使ってコンソールアプリのプロジェクトを作りましょう。
676673:03/07/23 01:29
できました!
でも今度は実行結果の表示時間が決められません・・・。
自分はまだ簡単なプログラムしか組めないので。
例えば・・・
{
printf("a\n");
}

だとaが一瞬表示されるだけで終わってしまいます。
ずっと表示させとくことはできないんでしょうか?
最後の方に、getch()でも入れておきましょう。
678デフォルトの名無しさん:03/07/23 02:24
Borland C++Builder を買おうと思ってるんですが・・・。
Personalでいいんですよね?
ProfessionalとかEnterpriseとかは仕事に使う人向けってことですか?
いやに高い気が・・・。
入門ならpersonalでも十分
Personal>Professonal>Enterpriseの順に添付されているコンポーネント数や
データ―ベースサポート等が増える。

PersonalになくProfessonal以上に有るコンポーネントでも
フリーのものが結構出回ってることが多いはづ
680673:03/07/23 02:46
>>677
そうですね。わざわざどうも!
エディタの一発ジャンプが…ライブラリよりこっちが重要。>>Pro
一発ジャンプって何?
宣言部と実装部を行ったり来たりしたり、
型や関数をCtrl+Clickで定義部分にジャンプしたり、
関数の宣言を書いてShift+Ctrl+Cで空の実装部を書き込んでくれたり。
684デフォルトの名無しさん:03/07/23 11:59
フォームにタイマーをセットして時間が来たらフォームをアクティブにしたいのですが
どうやったらいいのでしょうか?エクスプローラなどを上に置いておいて
時間が来たらそのエクスプローラより上に表示したいのですが
よろしくおねがいします
>>684
タイマーイベントで↓のSDK版の関数にフォームのハンドルを渡して呼ぶ。
http://techtips.belution.com/ja/vc/0012/
686デフォルトの名無しさん:03/07/23 12:36
>>685
お答えどうもです。
SetForegroundWindowは既に試していたのですが、どうにも最上位に
表示してくれませんでした。ちなみにForm1は非表示にして>>684はForm2で
行っているのですが、そこら辺がうまくいかないのと関係しているのでしょうか?
うまくいかなかった理由と解決方法が>>685のページに書いてあるでそ。
>>687
すまん、さっきちゃんと読んだら何か書いてた。ありりん
線を描きたいんだけどどうすればいいの?わけわからん。
690デフォルトの名無しさん:03/07/23 18:01
Shapeでも使ってろ
TCanvas::LineTo
692デフォルトの名無しさん:03/07/24 15:14
質問です、よろしくお願いします。
環境はWin2000SP4,BCB6Pro UPD#4です。

250kBのAnsiStringに42kBの\0(0x00)が混じっていまして、
この\0を除去したいので下記の様にしましたら、遅くてとても実用になりませんでした。
速く処理できる方法を教えてください。

\0の数は決まっていない上に位置も不定で、必ずしも一塊になっていません。
↓のgotdatが250kBの文字列です。
//-------その部分のダメなソース--------
while ( gotdat.Pos('\0') > 0){
gotdat.Delete(gotdat.Pos('\0'),1);
}
//------------------------------------

よろしくお願いします。
>>692
・空の dest を定義する。
・gotdat から dest へ、1文字ずつ加えていく。ただし、その文字が '\0' なら、加えない。
・gotdat = dest;
とか?

AnsiString の機能を知らないので、嘘かも。
694デフォルトの名無しさん:03/07/24 15:39
while(gotdat.Pos('\0') > 0){
lng_pos = gotdat.Pos('\0');
strtmp = gotdat.SubString(1,lng_pos-1);
gotdat = strtmp + Trim(gotdat.Delete(1,lng_pos));
}
695692:03/07/24 15:54
>>693
ありがとうございます
それ、やってみたんですが、やはり遅いです。
AnsiStringで一文字ずつというのは遅いようです。char*でやれば早いのかも

>>694
ありがとうございます
十分早いです。それで行きます。
char* p = text.c_str();
int   oldLength = text.Length();
int   newLength = 0;

for (int i = 0; i < oldLength; i++)
{
    if (p[i] != '0')
        p[newLength++] = p[i];
}

text.SetLength(newLength);

なら、一瞬でおわるど。
'0' → '\0' だ
698692:03/07/24 17:48
>>696
ありがとうございます
>>694の方法と比較してみましたら、>>696の方法の方が格段に早いです。
GetTickCount()で計測、6回試行しましたが概ね10msずつ早い
それに>>694の方法はある程度\0がまとまっている事を期待している感じですが、
>>696はまったくそういった依存関係が無い

やはりこういった処理はAnsiStringではなくchar*なんですね、勉強になりました。
ありがとうございました。
699692:03/07/24 17:57
AnsiStringがどうたらだけでなく、自分自身の領域の中で前に詰めていき、最後に後ろを切って捨てるってことですよね。
他の領域を使わないから、また更に早いと思っていいでしょうか?
ループの中でクラスを呼んでないことが一番効いているのだとは思いますけど。
ああそっか、AnsiStringのc_str()の戻り値は
const char*じゃなくてchar*だったっけ・・・。
>>699
> 自分自身の領域の中で前に詰めていき、最後に後ろを切って捨てるってことですよね。
たとえばstd::removeがとってる手法もこれだね。
こっちは後ろを「切って捨てる」のではなく、「新しい最後尾」を指すポインタなり
イテレータなりを返す仕様だけど。
ループのたびに'\0'の位置を検索したり、文字の長さを変えたりすれば
そりゃあ時間かかるよな。

'\0'の位置がまとまってなくてランダムな配置なら、
悲惨なほど時間がかかる。(250KBで試してるけど、いつまで経っても終わらない)
703692:03/07/24 18:18
>>701
c⌒っ*゚ー゚)っφ メモメモ...

>>702
>ループのたびに'\0'の位置を検索したり、文字の長さを変えたりすれば
仰せのとおりですね、毎回関数を呼んでいるからか・・・
704692:03/07/24 18:22
C/C++を知らずにいきなりBCBで始めたものでVCLにドップリ溺れています。
もっとポインタを活用することを学ばねば・・・
705デフォルトの名無しさん:03/07/24 21:27
classをnewしてsizeofすると何故かどのクラスでも
4しか取れないんですけど、コレってどういうことですか?
ポインタ変数のサイズ
次は、「じゃあどうやってクラスをファイルに書き込めばいいんですか!」かね?
>>707
public変数をそのまま書けばいいんじゃねーの?
>>707

class SerializeableObject
{
public:
 virtual std::string Serialize() = 0;
 virtual void Unserialize(const std::string &str) = 0;
}

ファイルから読み書きできるようにしたいクラスをここから継承して実装書く。
>>705
最適なスレッドかホームページがありそうですが、知らないので。

TYPE *p; と定義したとき、
sizeof(p) と sizeof(TYPE*) はポインタ変数のサイズで、sizeof(*p) と sizeof(TYPE) は TYPE の大きさです。

たぶん。
現在、メインForm(Unit1)からサブForm(Unit2)を
複数呼び出そうとしています。
複数、表示することは可能なのですが、
サブForm毎に制御することが出来ません。
良い方法はないでしょうか?
宜しくお願い致します。

> サブForm毎に制御
何のこっちゃ
サブFormをTListに入れていけば?
そしてサブForm解放時でTListから削除する。
具体的にはTサブFormとTサブFormManagerとでもして。
TサブFormManager->CreateサブForm()でサブFormを作成して返し、
こっそり内部のTListに追加しておく。ついでにサブFormのメンバ変数にTサブFormManagerを保存しとく。
そしてTサブFormのデストラクタではTサブFormManagerから自身を登録解除してもらう。
サブFormが1種類じゃなくて複数種類必要ならTサブFormを継承して使うようにすればいい。
あとはTサブFormManagerのプロパティからインデックスでTサブFormを参照できるようにしたり、
GetActiveサブForm()とか適当にメソッド入れていくと良いのではないだろうか。

TApplicationのComponentsプロパティをループ回して参照するだけでも良いけど。
Screen->Forms
>>712
分かりづらかったですかね。
簡単に言うと、Main画面はSub画面を呼び出す。
Sub画面はボタンにより、Formサイズの変更を行ったりします。
この動作を、MainからSubを複数、呼び出し、
Sub毎に制御を行いたいのですが、上手く動いてくれないのです。

>>713
ちょっとよく分かり辛いのですが。
すみません。

制御て何
>>716
動作をさせることです。
漏れ的解釈

void __fastcall TSubForm::Button1Click(TObject* sender)
{
  Width *= 2; // SubはボタンによりFormサイズの変更をしたりする
}

void TMainForm::hoge(void)
{
  SubForm1 = new TSubForm(this); // MainはSubを複数作って
  SubForm2 = new TSubForm(this);

  SubForm1->Button1->Click(); // Sub毎に…
  SubForm2->Button1->Click();
}
>>718
これだとhogeが動作したときにボタンが押されたと認識して、
サイズが変わってしまいますよね。
でも、これを参考にして作ったらできました。
どうもありがとうございます。
720デフォルトの名無しさん:03/07/25 18:11
質問ですが、
typedef struct{
 int  A1:1;
 int  A2:4;
} GG;
これでコロンの右の数字ってビット数ですか?
この構造体のサイズは4byteでA1ってHighになってるのでしょうか?
A1に1って代入してA1の値をみてみるとー1ってなってるのですが・・
721デフォルトの名無しさん:03/07/25 18:15
>>720
それはビットフィールドだろ?
コロンの右の数字はメンバーに割り当てるビット数。
722デフォルトの名無しさん:03/07/25 18:18
>>721
ありがとうございます。
でA1はLowとHighのどっちにとられるんですか?
>>722
処理系依存。
724デフォルトの名無しさん:03/07/25 18:22
>>723
ここはC++Builderスレな罠。
>>724
おお、そうだった(笑)
ビットフィールドのビットレイアウトを想定した記述はすべきでないから
どっちから詰められるかを意識したこともないわけだが、
いざ調べてみるとヘルプみても標準の処理系定義項目の設定内容がどこにあるのかわからん・・
726724:03/07/25 18:33
>>725
> ビットフィールドのビットレイアウトを想定した記述はすべきでないから

はげどう つーか鉄則か。
727デフォルトの名無しさん:03/07/25 18:52
ん?マジで?なんで?
メモリの少ない組込系ですら使ったことないんだが、
BCBでビットフィールドをあえて使う理由ってあるの?
ビットごとに決められているデータ(ヘッダとか)を扱いやすい。
>>729
それ、ビットフィールドのビットレイアウトを頭に入れないと・・・。
あえて使う理由→データがものすごく巨大になる時
数理計画とかやってるとすごいことにる。
>>729
C++ならビットレイアウトをクラスで隠蔽して、クラス内部でビット演算
すりゃいいじゃんと言うか正攻法だと思うんだけど。

>>731
せいぜい数百Mのデータしか扱ったことがないので気がつかなかった。
>>732
>せいぜい数百Mのデータ

・・・紙テープ換算か何か?ああ、DATか。
>>733
こういう突っかかり方も珍しいな
>>734
そっとしといてやれ。
常人の「寒い」が彼の「鋭い」なんだ。
736デフォルトの名無しさん:03/07/28 13:13
ようするに>>728-735ら辺ってファイルI/Oが下手でFA
737_:03/07/28 13:14
738_:03/07/28 13:16
Borlandのページにあった
Borland C++Builder 6 アップデートパック #4
を入れたらコンパイル時にリンカエラーとかが発生するようになって、
説明書のチュートリアル進められなくなったんでインスコし直したよ。
旧バージョンに戻したらコンパイルうまくいった。

環境Win98SE
Personal版 C++builder
740デフォルトの名無しさん:03/07/28 13:29
C++Builder7ってまだか?
741デフォルトの名無しさん:03/07/28 13:38
↑VC++にしる!
742デフォルトの名無しさん:03/07/28 15:27
VCなんてうんこは眼中にない
VC買ったんだけどWIN98じゃ動かなかった…
>>743
そんなウンコなOSを使うのは今すぐやめましょう
745デフォルトの名無しさん:03/07/28 15:38
質問です。
for (int i = 0;i<1000;i++){
Graphics::TBitmap *bmp = new Graphics::TBitmap();
Graphics::TBitmap *bmp2 = new Graphics::TBitmap();
BitBlt(bmp->Canvas->Handle,0,0,bmp->Width,bmp->Height,bmp2->Canvas->Handle,0,0,SRCCOPY);
delete bmp,bmp2;
}
これを実行するとメモリリークするんですが、どこらへんがわるいんですかね?
ちなみに↓でもリークします。

for (int i = 0;i<1000;i++){
TImage *bmp = new TImage(Image1);
TImage *bmp2 = new TImage(Image1);
BitBlt(bmp->Canvas->Handle,0,0,bmp->Width,bmp->Height,bmp2->Canvas->Handle,0,0,SRCCOPY);
delete bmp,bmp2;
}
746デフォルトの名無しさん:03/07/28 15:45
>>744
OSもVCもうんこ。このメーカー自体うんこだから( ´,_ゝ`)
>>746 お前がうんこ
>>745
deleteに変数並べるのはじめて見たけど、
それだとbmp2のデストラクタが呼ばれないみたいよ。
749745:03/07/28 16:27
>>748
あ〜、そうだったんですか。
ありがとう。
deleteのとこでなんか違和感を感じてたら…
750デフォルトの名無しさん:03/07/28 19:25
>>747=うんこ
くせースレだなおい
ということは俺って事か
program Test;
{$APPTYPE CONSOLE}
type
  TTest = class(TObject)
    procedure Init;virtual;abstract;
    constructor Create;
  end;
  TTestA = class(TTest)
    procedure Init;override;
  end;
  TTestB = class(TTest)
    procedure Init;override;
  end;
constructor TTest.Create;
begin
  Init;
end;
procedure TTestA.Init;
begin
  writeln('My name is TestA');
end;
procedure TTestB.Init;
begin
  writeln('My name is TestB');
end;
begin
  TTestA.Create.Free;TTestB.Create.Free;
end.

これと同じ事をC++でやりたいんですけどうまくいかないです。
どうすれば良いんですか?
コンストラクタで仮想関数呼んでも派生クラスのは呼んでくれないよ。
Initメソッドで初期化しないで、TTestA,TTestBにコンストラクタ作って、
そこで初期化しないと。
コンストラクタの呼び出し順(=仮想関数の決定順)がC++とobject pascalで違うからね。
言語ガイドに詳しく書いてある。
みんなデストラクタって何書いてる?
俺はとくに書くことがないんだが・・・
>>756
仮にコンストラクタでなんかの変数やクラスをnewすることがあっても、君はdeleteすることなく放置か?
>>757
初心者なのでまだnewって使ったことないっすw そっか、deleteするときに使うんだね・・
>>758
逆の気が…
初心者なのでまだdeleteって使ったことないっすw そっか、newしたときに使うんだね・・
>>759
deleteがしたくてしたくてたまらないからnewするんだよ!
悪いかよ!
デストラクタを使いたいからdeleteする
でもdeleteするモノがないからnewする
小4くらいのとき、マンコが穴だなんて思いもしなかった。
が、年の離れた兄貴のいる加戸は
「ヤッターマンコーヒーライター」
などという言葉を知っているいわば勇者的存在であった。
で、穴があることを知った俺たちだが、どうしてもそれが信じられない。
で、むしろ逆にガキであることを利用して調べようと思った。
ターゲットは音楽の教師である。美人だった。今にして思えば
20歳くらいだったのではないだろうか。短大出てすぐだったように思う。
実行はいたって単純。ガキ特有のカンチョーというあれである。
あれを前に突き刺すというのだ。
ガキなら許されるであろうという勝手な発想だが、
たしかにマンコすら知らない奴がほとんどだったからナイスな判断だったろう。
で、実行は加戸だった。
加戸はなんの躊躇もなくやった。
思い切り。
思い切ってやっちゃいかんだろ、と思った。なぜにおまえはフルパワーなのだ、と。
音楽教師は泣いた。20歳前後という年齢を考えればギャグでもきつい。
ガキからすれば大人だったのだが、今思うと娘だ。
むしろ、処女だった可能性すらある。すまん先生。
が、加戸も泣いていた。
両手人差し指骨折だった。第2関節より下で折れていた。
もろに刺さったんだと感心した。やはり勇者だ。
しかも、救急隊員に、マンコに指が刺さって折れましたと泣きながら事情を説明していた。
あの姿も相当かっこよかった
764デフォルトの名無しさん:03/07/29 13:19
つかデストラクタでdeleteすんなら、そのクラスはなくなるんだから
わざわざdeleteしなくてもいいんじゃねえの?
一緒にdeleteされるべ?
されねーよ
766デフォルトの名無しさん:03/07/29 13:32
TDatabaseのログインプロンプトが開かないんですがなんでですかね。
Database1->LoginPrompt = true;
ですが。
767デフォルトの名無しさん:03/07/29 13:39
>>765
あら
768766:03/07/29 15:06
Delphiのdblogdlg.pas/initializationが走ってないのが原因みたいですが、
BCBからinitializationをどうやって走らせるのやら。
769 :03/07/30 02:43
クールバーにコントロール(いちばん簡単なボタンを試してみた)を2個置くと2列になってしまって
ボタンがウィンドウの幅一杯に広がってしまいます。
小さくして2個とも一列に表示しようと思ってボタンをリサイズしても自動的ににウィンドウの幅一杯に広がってしまいます。
どうしたらいいのですか?
クールバーにツールバーとかパネル置いてから、そこにボタンを2個置くとか
771デフォルトの名無しさん:03/07/30 03:06
質問です。
今BCB4PROでGUIのソフト作ってます。
ClipCursorでマウスの移動範囲を制限したいのですが、
SetCursorPosやmouse_event、ShowMessageなんかでも制限が勝手に解除されてしまいます。
これらの関数を実行しなければ制限は有効なままなのですが、
制限した後にmouse_eventでマウスクリック処理などをするため困っています。
何か前もって実行しなければならない関数などあるのでしょうか。
772_:03/07/30 03:07
773デフォルトの名無しさん:03/07/30 13:21
C++Builer1で質問ですが
フォーム右クリでポップアップメニューを設定してそのメニューで「前面」項目があって
それをチェックされるとFormStyle = fsStayOnTopとして、外れると FormStyle = fsNormal;
としているのですが、うまく動作しません。
デバッガでステップ実行してるとちゃんと前面になるのですが、普通に実行すると前面になりません
なにが原因なのでしょうか?
774769:03/07/30 16:59
>>770
TCoolBandのBreakプロパティをfalseにするのを忘れてました。すいませんでした。
>773
少なくともうちのBuilder5のヘルプには
>注意実行時に FormStyle の値をなるべく変更しないでください。
って書いてあるよ。実行時に制御するためのプロパティじゃないでしょう。
素直にTControl::BringToFrontとかAPIのBringWindowToTop(HWND)で
Zオーダー変えるんじゃ駄目なの?
なるべくて
777デフォルトの名無しさん:03/07/30 19:37
>>775
実行時に使うなとは書いてないんですね( ´,_ゝ`)
>>775
俺の経験。FormStyle を実行時に変更したら、
ファイルのドラドラを受け付けるようにする DragAcceptFiles() の
効果が切れたよ。

何故か?までは追わなかったけど、FormStyle を変える事によって
ウィンドウが作り直されて、Handle プロパティが変わるからじゃないかな?

という事から考えて、Handle が不変であるという前提に拠っている
コードが悪影響を受けるから、ヘルプでは FormStyle を変更するなと
書いているんじゃないかな。
>773
FormStyle を使うのをあきらめて、Windows API で

// 手前に
SetWindowPos(Form1->Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
// 戻す
SetWindowPos(Form1->Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);

というのはどうでしょう?
780デフォルトの名無しさん:03/07/30 23:40
>>773
プロパティ変える方法だと、
例え出来てもチラつくしフォーカスも消えるし>>778さんの言うように変更後DragAcceptFiles()やらないとD&D効かなくなるし、
私は>>779さんのようにAPIでゴリッと変更する、に同意です。
781デフォルトの名無しさん:03/07/31 10:05
こんにちは、皆さんお答えありがとう

>>775
C++Builder1のヘルプにも書いてますね。
>>776
なるべくとは書いてないですね^^
>>777
書いてないですね
>>778
それは私も経験あります
でも確かShowイベでそれ書いておくと大丈夫だったような気がしましたが
>>779
あ、別にFormStyleじゃなくても、他のウィンドウより手前・戻すができればいいので
そのAPIを試してみます。情報有難うございます。
>>780
ええ、さっそくAPIを試してみます。

みなさん、ありがとうございます。
782デフォルトの名無しさん:03/07/31 10:23
ああ・・
SetWindowPosでもダメでした・・
HWND_BOTTOMだとちゃんと他のウィンドウより背面にいくのですが、
HWND_TOPMOSTでは前面にきてくれないです・・
これフォームが前面にできない要因が考えられるとしたら
どのようなことでしょうか?
>>782
日頃の行い
784デフォルトの名無しさん:03/07/31 11:43
じゃあ更に
Application->BringToFront();
してみるとか。
785デフォルトの名無しさん:03/07/31 12:11
>>784
色々ありがとうございます。
しかしダメでした・・
んー何が影響してるのかなあ
>>785
日頃の行い
787デフォルトの名無しさん:03/07/31 13:33
VC++という選択肢があるのにわざわざBuilderを選ぶやつはバカ
788デフォルトの名無しさん:03/07/31 13:41
Windowsという選択肢があるのにわざわざ携帯電話を使うやつはバカ

次は?
バイオハザードという選択肢があるのにわざわざゴースト・オブ・マーズを選ぶやつはバカ
790_:03/07/31 13:49
VC++なんてウンコなものを使う奴はウソコマミレでバッチィ
792デフォルトの名無しさん:03/07/31 14:29
>>791
まあまあ、>>787は汚物だから
793デフォルトの名無しさん:03/07/31 14:39
VC++>>>>>>>>>>>>>>>>>>>>>>>>>C++Builder
相手にしねぇでくれ。荒れる。
795_:03/07/31 14:47
796デフォルトの名無しさん:03/07/31 14:48
VC++ is better than C++Builder, in anything.
Got it!?
VC++ is the best all over the world.
It's the best product ever in history.
OK?

これでわかったか?猿ども
797デフォルトの名無しさん:03/07/31 14:52
彼女がいるのに風俗へ行くやつはバカ
>>797
それだけは承服しかねる。
風俗有るのに彼女作る奴は非プログラマ。
800デフォルトの名無しさん:03/07/31 16:12
>>797は童貞
彼女とのSEXと風俗は別物
それがわからんのはガキってこと
801デフォルトの名無しさん:03/07/31 16:12
アダルトDVDが
 最短でご注文いただいた翌日にお届け!
 http://www.dvd-exp.com 開店セール1枚 500円より
金払ってやるってのはプライドに反する。
803デフォルトの名無しさん:03/07/31 18:37
( ´,_ゝ`)ショボいプライドだな。夢見る子供の発想か
セックスフレンドは生きてく上で必要不可欠だよな。
805uwa:03/07/31 19:08
質問イイですか?
>>800
あまりに必死でワロタ
807uwa:03/07/31 19:12
C++ Builder6 を買ってインストールが終わり
チュートリアルに従ってテキストエディタでも作ろうかと
考えていたのですが。。
Images が赤く表示されてWindowsのデフォルトのイメージが使えません。
Comtrl32だかも 5.〜〜バージョンなので問題はないと思います

OS Windows XP
メーカー NEC VALUESTAR VT900/1
808uwa:03/07/31 19:17
すいません板間違えました
809デフォルトの名無しさん:03/07/31 19:17
>>807
NECとBorlandは仲が悪いからそうなる。
810uwa:03/07/31 19:21
>>809
ありがとうございます
解決策はないのでしょうか?
>>806
悔しいの間違いだろ( ´,_ゝ`)
812uwa:03/07/31 20:59
age
>>811
んー確かに>>800は相当悔しかったのかもしれんな。
笑ってすまそ。
俺がいるのに他の男とくっつく女共は全員バカ
むしろこのような糞レスする>814にくっつく女こそバカである。
てめーそれ以上俺の嫁さんの悪口ゆーな
>>816
どうせ電源入れてゲームスタートしないと会えない嫁さんだろ?
それは嫁さんじゃなくて恋人だろう。
C++Builderはアダルトグッズと(._.) φ メモメモ
アダルトじゃない!純情恋愛グッヅだ!
プラトニックなんだよ!
C++Builderでおなるのが今の流行とφ(..)カキカキ
おならない!純なんだ!本気なんだよ!
男がたくさんいるのに女に走る奴らは全員ウホッ
824デフォルトの名無しさん:03/08/01 11:01
ファイルをStringに読みたいんですが、下記の書き方であってますか?
もしかして、StringのLengthセットしとかないと、メモリ壊しますかねぇ。

String SFile;
TFileStream *FileStream;
FileStream = new TFileStream("test.txt", fmOpenRead);
FileStream->Write(SFile.c_str(), FileStream->Size);
825デフォルトの名無しさん:03/08/01 11:53
StringListでTXT読んじゃだめなんかい?
826824:03/08/01 11:54
じゃ、StringListしてみまつ。
UTF-8だけど大丈夫かなぁ。
827デフォルトの名無しさん:03/08/01 13:20
C++Builder7っていつでるか教えれタコ共
828山崎 渉:03/08/02 02:06
(^^)
  ∧,,∧  まずいかも。
 ミ,,゚Д゚彡 Delですが、参考どぞ
 ミつ日(ミ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1034090664&rm=100
さてはおめえ札付きのワルだな?
>>829
フォローされてるけど、フサギコ版はすごい遅そうだ
まさか1バイトづつFileStreamからReadBufferするとは驚異的だ(笑)
このすれは以後>>831がフサギコとは比べ物にならない驚異的なパフォーマンスを誇るコードの解説をするすれになりますた。
皆様ご静聴ください。
833831:03/08/02 19:16
>>832
つーかすごい古いコードのようだし、今はフサギコ自身もわかってるんじゃないの?
それにリンク先の2で十分だと思うが
今までC++だけで使って不自由を感じたことないけど
やはりPascalも勉強しておくか・・・
[C++ エラー] Unit1.cpp(691): E2015 '_fastcall Strutils::RightStr(const System::AnsiString,const int)' と '_fastcall Idglobal::RightStr(const System::AnsiString,int)' の区別が曖昧
と言われてるのですが、どう対処していいかわかりません。
対処法を教えてください。
----------------------------------------
#include <StrUtils.hpp>
:
:
AnsiString strtmp;
strtmp = LE1->Cells[1][2];
strtmp = RightStr(strtmp,17); // ここでエラー吐かれる
----------------------------------------
strtmp = Strutils::RightStr(strtmp,17);
>>836
ありがとうございます
で、同一関数内に下記部分があるのに、その部分でエラーにならず、
>>835部分でエラーになるのはなぜでしょ?
---------------------------------------------------
strtmp = MidStr(sltmp->Strings[sltmp->IndexOfName("host")],6,256);
LE1->Cells[1][2] = Trim(LeftStr(strtmp,strtmp.Pos("(")-1));
strtmp = MidStr(strtmp,strtmp.Pos("(")+1,128);
LE1->Cells[1][1] = AnsiReplaceStr(strtmp,")","\0");
strtmp = LE1->Cells[1][2];
strtmp = Strutils::RightStr(strtmp,17); // これならOK(修正箇所)
----------------------------------------------------
>>837の質問の意図は、直前にMidStrやLeftStrがあるのに、なぜRightStrだけ引っ掛かるのかという疑問です。
StrutilsとIdglobalの両方の名前空間にRightStrという関数があるから。
MidStrとLeftStrはIdglobalには無いんだろう。
>>839
idglobal.pasを見たら、その通りでした
くだらない事を聞いてすいませんでした
841BCB6Proにて:03/08/04 07:04
新規のアプリケーションを作成して、Form1のコンストラクタに

AnsiString str;

str = InputBox("aaa", "bbb", "ccc");

として実行します。
ダイアログが最初表示され、そこにIMEで漢字変換したときに例外が発生します。
これは既知のバグですか?それとも、私のマシンだけがおかしいのでしょうか?
また、デバッガからではなく、直接EXEを実行すると出ません。
暇がある方はやってみて報告していただけると助かります。

OSはXP HomeEditionです。
OS、BCBともに最新のアップデートをしています。
842デフォルトの名無しさん:03/08/04 08:07
C++ Builderの方がDelphiよりファイルサイズが大きいって本当ですか?
843_:03/08/04 08:08
844_:03/08/04 08:10
ヘルプのTWinControl::OnDockOverの例で出てくる、ComputeDockingRectという関数はなんなのでしょうか?
検索しても出てこないのですが。
>>842
本当
847デフォルトの名無しさん:03/08/04 09:39
Delphi(Delphi6で確認)だったら新規作成して何もしないプログラムで374 KBなのですけど、
C++ Builderではサイズはいくらになりますかね?
>>847
BCB6
460288bytes(BCB6SP4,リリースモード)
BCB3
248832bytes(BCB3修正パッチ当て済,リリースモード)
849デフォルトの名無しさん:03/08/04 09:55
バージョン6で、約460Kバイトですか。
では、Delphiと比べて何かメリットはあるでしょうか?
これはDelphi使うよりC++Builderでやった方が良いとかみたいな感じです。

実行速度もほぼ同じと聞いたのですけど、プログラムの処理する内容によって
大きく変化があるとかはあるでしょうかね?
例えば、画像処理はDelphiよりBCBの方が速いとかみたいな?(画像処理は例えです)
850841:03/08/04 09:55
補足ですが、メニューのツール>デバッガオプション>OSによる例外で
Access Violationを「デバッガが受け取る」に設定してからではないと出ません。
>>849
C++(ライブラリ含む)が使いたければBCB。
Object Pascalが使いたければDelphi。

速度が気になるならBorlandなんて使わないで
iccとかVC++.NET2003とか使えよ。
852デフォルトの名無しさん:03/08/04 10:18
わかりました。
どうもありがとうございました。
色々考えてみます。
Delphi7だと356KB(365056Bytes)
Delphi6は?
Delphi6
374 KB (382,976 バイト)
>>854は少し上の書き込みも見えない文盲なので説明しても無駄
857841:03/08/05 06:53
IMEを「Microsoft Natural Input 2002 ver. 8.1」から
「Microsoft Natural Input 2002」に変更したら例外が発生しなくなりました。
また「Microsoft IME Standard 2002 ver. 8.1」でも例外が出ますが、
「Microsoft IME Standart 2002」は出ませんでした。

とりあえずこれで回避できたので報告しときます。
859841:03/08/05 10:42
>>858
症状は同じことを言っているのかと思い、同じ対策をしてみましたが例外が発生しました。
やはりIMEを変更したほうが良いかもしれません。
ただの例外ならいいのですが、例外を出しているのにOSがハングしてしまうのです・・・。
>>859
ActiveIME の問題で無いのなら初めて聞く話ですね。
XP がでてから結構経つけど、初めてのケースでしょう。

例外の内容とか教えてもらえるとうれしいな。
861デフォルトの名無しさん:03/08/05 12:43
>>856
そんなに煽りたいなら2ちゃんでやれっ!!

ってここが噂の2ちゃんですか?( ´,_ゝ`)
862841:03/08/05 13:16
例外はAccess Violationです。
InputBoxのダイアログで例えば「あか」と
入れてスペースキーを押して変換しようと
した瞬間に発生します。
例外ダイアログが表示されてOKを押すと
ハングしてしまいます。
863デフォルトの名無しさん:03/08/05 14:22
マウスの移動範囲を設定する方法を教えて下さい
864デフォルトの名無しさん:03/08/05 14:47
Main画面からsub画面を複数作成するのにvectorを用いています。
Main画面でsub画面の存在の有無が知りたいのですが、
Main側で生成したvectorの中身を調べて、sub画面の存在の
有無を知る方法はあるのでしょうか?

sub画面を作成する処理は以下のようにしています。

vector <TSubForm *> tSubForm;

//sub画面生成処理
void __fastcall TMainForm::ButtonClick(TObject *Sender)
{
tSubForm.push_back( new TSubForm( this ) );
tSubForm[num]->Show();
tSubForm[num]->Refresh();
 num++;
}
865_:03/08/05 14:48
>>863
::ClipCursor(RECT)
867_:03/08/05 17:03
868デフォルトの名無しさん:03/08/06 01:02
Oracle 8iの配列フィールドはEnterprise版でDBGridに表示できるとあるけど
Interbaseの配列フィールドもEnterprise版でDBGridに表示できるのか?

Professional版で配列フィールドを表示するGridがサードパーティであれば
教えてください。
>>868
「配列フィールド」ってなんだっけ?IB にあったかな?
870デフォルトの名無しさん:03/08/06 10:20
アプリケーション インスタンスのハンドルの取得方法を教えて下さい。
871デフォルトの名無しさん:03/08/06 11:08
SetWindowsHookExでキーをフックしてるのですが
ここでキーが押されなかった事にするにはどうしたらいいのでしょうか?
それとも他になにかAPIみたいなのがありますか?
872_:03/08/06 11:19
>>871
-1を返せばいけるはず
>>873
おお!ありがとー
つかTRUE返してるんだけどこれって-1ではない?
ちょっと試してみます
嗚呼・・
やっぱり普通にAlt+Tabとかでアプリ切替できます
Alt-Tab や Alt-Ctrl-Delete は普通のキーでは無いから。
>>870
HInstanceグローバル変数
>>876
SetWindowsHookExではそれ系のキーの無効化はできないと?
つかAlt+TabやAlt+Ctrl+Deleteは無効にできないんですか?
>>878
フック行く前にOS側で処理されてるはず。
というか簡単に無効にできたら危ない。
>>879
確かに簡単にできたら危ないんだけどね
フック前にOSにアレされるとどうしようもないですね
DirectXの何かでそれ系あった気もしたがまあそれはいいや
ありがとう
眠い・・・
>>881
それはBCBじゃどうしようもないと思う。
昼飯の後と夕方のこれくらいの時間が一番眠いのはボーランドも認めてる
ほら、すべった( ´,_ゝ`)
885デフォルトの名無しさん:03/08/07 14:01
マウスクリックをフックする方法を教えて下さい。
886_:03/08/07 14:01
>>885
フックする種類を WH_MOUSE にすればいいんじゃないの?
あとはCBuilder付属のWin32APIリファレンス参照。
>>887
まったくその通りでした(;´Д`)
つかC++Builder1なんでAPIアレないんですよ
890デフォルトの名無しさん:03/08/07 18:09
これからプログラムを勉強しようと思うのですが
CとC++どちらを先に勉強したほうが効率がよいでしょうか?
悪いこと言わないからCからやっておけ。
100%C++
うひょー
むひょ
>>890
最初は難しく思えてもZ80とか簡単なアセンブラから始めておくと覚えやすいね。
BASICから始めた俺はレジスタが最初の壁だったな〜
Z80よっか8086っしょ

つか今はアセンブラ覚える必要全くなし!

もうアレなんだから普通にC++Builderでいいじゃん
ドレ?
898Indy使い:03/08/08 18:53
Indy9コンポーネント入れたいんだけど…いれられない
ダウンして解凍してFullc5.bat実行して,できたフォルダごと環境設定で
ライブラリにパス通してもパレットにでてこない
誰かHelp!!…
>>898
既出、過去を見れ
900デフォルトの名無しさん:03/08/09 03:44
900
                        / ̄ ̄ ̄ ̄ ̄ ̄ ̄
     /\      /\        < 糞スレ
     /  \    /  \        |  おめでとうございまーす
    /     \_/    \      \_______
    /               \
   /                ヽ___  ___
  /  /  ヽ__/  \    /     ゙Y"     \
 |         │  /      /               \
 |       丶/     /                 \
 \         / ̄ ̄ ̄ ̄)        *      ( ̄ ̄ ̄ ̄)
   ヽ_____|    ─<         |\      >─   (
           |      )     /  (|ミ;\    (      )
           ヽ    ̄ ̄)    /(___人|,iミ'=;\  (  ̄ ̄   )
           /" ̄ ̄ ̄ ̄   /    《v厂リiy\  ̄ ̄ ̄ ̄\
           /        /        ゙|,/'' v:,,、.¨)z,_       \
          /       /         ミ/ .-─ .゙》z、      \
          /      /           〔」″ノ‐ 、u ¨\      )
         (      /             ゙|, ..冫 .rー    ̄\_   |
          |      〔              ミ./′   ..r-ー __,,ア┐ |
          |      |              {. .,,,,   .′ .´′ .¨\|
          |       |              ∨   ノ冖′=vvvvvv¨\
          |     /               ミ.  ,i'          .゙\_
          |     /                .{. ノ  ,r¬″       .¨\
          |     /                 ゙|, |  ノ      ー'''''''''''  .ーミz
          |     |                  ミ.     .,、 ._,,,、、r   ,,,,_____ ゙┐
      _/"     |                  .ミ.   ./′ ´′      ̄⌒'h..¥
     (______)                  {.  }  ._,,,、  ,ノ冖''^¨    ″〕
                                 ゙|, .,| ./`  ,r'′  vvvv、   |
                                  .ミ、.` |    二、      〔  、 ,|
                                  .〔  |  .、 〔  rーー   |  |.,}
                                   .ミ .′ .|  〕  .} ─-「  y-リ
                                   .\   |,  ´v,,,]、、、v-  ..,/′
                                     ゙\ .\、    .  _/
                                      ¨'ーvu,,____''工レ-'″
C++Builder 、personalってDelphiみたいに無料で使えるのかと思(略
んで、BCCってC++Builderの開発環境を取り除いただけと聞いたことがあるんですが
C++Builderのソースコードをコンパイルして実行なんて、、できませんよね?
VCL使ってると無理だと思う。
905デフォルトの名無しさん:03/08/12 10:25
久々に使ったけど、エディタがぜんぜん進化してないのね。
builderは統合環境を使わざるを得ないんだから、
せめてVC程度のエディタは搭載してほしい。
外部エディタ使えばえぇやん
おいおい・・・
VCのうんこエディタのマシだってかよ・・
>>905は使いこなしてないっぽいな( ´,_ゝ`)
確かにBuilderの補完は遅すぎるね。
あまりにも遅いので切って使ってるし。
909デフォルトの名無しさん:03/08/13 14:36
・一括整形
・複数行インデント(複数行選んでTAB押し)

Builderってできたっけ?
Ctrl+Shift+I, U
一括整形は無理ぽ
912デフォルトの名無しさん:03/08/13 18:05
( ´,_ゝ`)一括整形 ?
VCでも一括整形ってできたっけ?
Vimぐらいしかシラネ
  ∧,,∧  VC#ではできたんじゃなかったかな?
 ミ,,゚Д゚彡
 ミつ日(ミ
VC6でもできるよ。範囲選択してAlt+F8で自動一括整形。
普通にアプリ作っているとき、
プログラムのなかに大量にprintfが入ってるとまずい?
アプリ終了時に原因不明のエラーが出てて、
これ外したらエラーが出なくなったんだけど。
917デフォルトの名無しさん:03/08/14 09:36
ファイルを分割してヘッダファイルが増えると

[C++ エラー] sysmac.H(58): E2040 宣言が正しく終了していない
って全然見た事もないヘッダファイルからエラーが発生するのですが..

extern "C" {//<-ここでエラー発生
#pragma option push -vi


extern "C" {
#pragma option push -vi

解決方法ありましたら宜しくお願いします
918デフォルトの名無しさん:03/08/14 09:38
もう二つ
BCB6のエディタで行番号を表示するにどうすればいいですか?

同じくエディタで改行コード記号を表示させてカーソルが
改行コードにフォーカスさせるにはどうすれば良いでしょうか?
919デフォルトの名無しさん:03/08/14 09:58
CPAD使えば良いだろ
920デフォルトの名無しさん:03/08/14 11:08
>>919
CPADだとコンパイルまでできるのですね
ありがとうございます。
921デフォルトの名無しさん:03/08/14 14:18
C++Builderで、DirectXとか、使わずに、
ゲーム作るとしたら、やっぱり、IMAGEつかう?
それとも、フォームに描く?
ビットマップに描いて、貼る場所は適当
923山崎 渉:03/08/15 15:26
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
924デフォルト:03/08/15 21:11
RichEdit->Perform(EM_SETOPTIONS,ECOOP_OR,ECO_VERTICAL);
これで、縦書きができる。うそかほんとかどっちでしょう?
925 :03/08/15 22:24
C++BuilderでDLEPHIのパスカルのコードのコンパイルできるの?
VCLはパスカルで書かれてるんでしょ。
926|д・彡 ◆A6VzDeLphI :03/08/15 22:49
>>924
OSに依存するみたい。
昔のRichEd32.dllをExeと同じフォルダに
おいておくと実現できたりもするとかしないとか。
927  :03/08/15 23:40
下がりすぎなので
age
>>925
ぉぅ, ょゅぅ
うそということになるみたいですね。
こんな感じで、縦書きになるみたいなのですが。
うまい方法、探すのに一苦労ですね。924でした。
どうも、ご清聴、ありがとうでした。
>>925
Delで書いたアプリでもそのままコンパイル通ります(゚∀゚)b
ていうかC++BuilderにはPascalコンパイラもついてくるしな(dcc32.exe)
932  :03/08/16 12:41
>>928 >>930 >>931
おお、ありがとう。
ちょっと試してみたけど統合環境からdelhiのプロジェクトを開いてもうまくいかなかったけど
pasをプロジェクトに追加したらコンパイルできた。
pasとcppの混ざったやつがコンパイルできてリンクできるんだね。すごい。
しかし二つの言語じゃ型やその他、色々違うのになんで特別なことしなくてもできるのだろう?
でもクラスエクスプローラがpasファイルを認識できないみたいなのが痛い。
delphiのパーソナルにもコードエクスプローラがついてないみたいだし。
933932:03/08/16 14:43
ちょっとやってみてDelphiのフォームに対応するpasやdfmをBuilderのプロジェクトに追加すると、プロジェクトのcppファイル(WinMainがあるやつ)に
  USEFORMNS("ChOwn1.pas", Chown1, Form1);
てのが追加されこれが#includeの役割と変数Form1を定義してるらしいことはわかったし、
ふつうのpasファイルとかを追加してコンパイルしたらhppファイルが追加されることもわかったけど
もっと詳しくBuilderでpasファイルを利用するやり方が書いてある本とかWebを知りませんか?


>>932
弊社のサポートなどいかがでしょう?
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧ ニヤニヤ
 ( ・∀・)
 (    )
 | 某|  
 (__)_)
久しぶりに見たなそれ
いっそのこと、Delphiと統合しちゃえばいいのにねぇ。
売り上げ減るからやらんのかもしれんが。
Borland Developer Studioでそのうち統合されます。
フリーコンパイラー使えよ、
なぜわざわざ買ってまでBCBとかVC++とか使うんだ?
>>938
貧乏人は勝手にフリーコンパイラーで手間隙かけてろ
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□

向こうのサイトでは
C++ Studioってなってるけど 何あれ
16bit版をだきあわせですか?
942デフォルトの名無しさん:03/08/19 10:17
つか、そろそろ次スレよろ
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
944VCLのTreeView:03/08/20 11:19
Borland C++6を使っているのですが
VCLのTreeViewの表示でノードの頭に画像を表示させたい
のですがヘルプだけではどう使って良いか分からなかった
のでVCLに関する内容が書かれた書籍ありましたらお教え
願います。
>>944
このページの下ぐらいにImageListを使った方法が載ってます。
http://www.philly.ne.jp/~hanya/vb/treeview.htm
ついでにTCustomTreeView::Imagesプロパティのヘルプも目を通して
おくとなお良いです。
947超初心者:03/08/21 20:58
教えてください。
TMainFormのコンストラクターで内部変数の初期化をしていたのですが、意図した動作を
しないため調べていたら、コンストラクターよりも先に、TMainForm::FormCreate
が実行されているように見えました。
自分は、クラスが生成されたら必ず最初にコンストラクターが走るものと思い込んでいた
のですが、TMainForm::FormCreateが先に実行されるのが正しい動作なのでしょうか?
>>947
ヘルプに、コンストラクタとFormCreate()の同時使用は避けるように
書いてあるでしょう。どちらか一方にしましょう。
>>947
ちなみにすべてのコンストラクタが済んでからFormCreate()が実行され
るのが正しい。
TCustomForm::OldCreateOrder() をヘルプで見て下さい。
>>948
はぁ?
>>950
だからTCustomForm::OnCreateをヘルプで見てみろっつーの。

「フォームのコンストラクタとのやり取りが不良になる可能性があるので,
C++Builder で OnCreate イベントを使うことはお勧めできません
(OldCreateOrder を参照)。かわりに,フォームコンストラクタをオーバーライド
することをお勧めします。」って書いてあるだろーが。
コンストラクタより先にFormCreateが呼ばれるのって、
BCB4だけじゃなかったっけ?
そや、これから質問の前にBCBのバージョンを書いてくれ。
俺が答えられるのはBCB6だけだぞ。
>>952
そうでもないよ
BCB6のSTLPortを新しい物に入れ替える方法を教えてださい。
>>955
4.5.3にか?かなりいじらないといけないしここには書ききれん。
余程根性があるなら今入っているSTLportを参考にちまちま
書き換えるしかなかろう。俺はやらん。必要ないし。
>>956
変更はいらないと思うけど。
srcの中のbcb60.makをmake.exeに食わせるだけじゃない?
>>957
ヘッダが全然通りません。
試してみれば分かると思いますが大量のエラー吐いてくれます。
すみません
いろいろと試したのですが
どうしても見つからないことが有るのですが
bcb6.0 proなんですが
スプレッドのようなコントロールは有りませんか?
グリッドは値が変更できなくて困っています
エクセルのイメージでデータを入力したいのですが

コンポーネントというのを作るしか無いのでしょうか?
>>959
グリッドの値が変えられないのは、プロパティの設定でエディット不可に
設定したままだからではないかな。

コンポーネントを選んだ貼り付けただけだと、デフォルトではエディット
不可です。
961960:03/08/22 05:43
>>959
960の続き。とりあえず、HELPで、TCustomGrid::Optionsを検索してみてください。
TStringGrid は、こいつを継承しています。

そうすると、
> goEditingセルの内容を編集できる。

という説明があります。(ほとんど情報になってないけど)

IDEのほうで、貼り付けたStringGrid について、オブジェクオインスペクタを見ると、
+ Options という項があるので、その+をクリックして展開すると、11番目くらいに
goEditing false なんて表示されるはずです。

ここを true にすれば、ひとまずセルのテキストは書き換え可能になります。
959です
>>961
とりあえず変更できますた。
あとは自分でがんばります
サンクス
963デフォルトの名無しさん:03/08/22 15:50
キーボードから入力されたときの処理を行うにはどうしたらいいんですか?
BCB6で。
OnKeyDown / OnKeyUp / OnKeyPress
965デフォルトの名無しさん:03/08/22 16:03
>>964
さんきゅー
966デフォルトの名無しさん:03/08/22 16:30
キーボードについた精子を綺麗にするメソッドを教えてください
落ち着いて1000ゲット
BCB6Pro. Win2kSP4 Indy 9.0.11にて IdHTTPコンポーネントのことで質問します。
ブラウザでhttp://www.vector.co.jp/vpack/filearea/winnt/net/www/fehiwhf.htmにアクセスすると
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<TITLE>Not Found</TITLE>
</HEAD>
 :
 :
てな具合にソースを取れます。
BCBで
---------------------------------------------------------------------------------
AnsiString strurl = "http://www.vector.co.jp/vpack/filearea/winnt/net/www/fehiwhf.htm";
AnsiString strtmp;

try {
strtmp = IdHTTP1->Get(strurl);
}
catch ( ... ){
}
---------------------------------------------------------------------------------
とやった場合、strtmpには何も入りません。
ブラウザと同様なhtmlソースをstrtmpに受けるためにはどうすればいいのでしょうか?
969968:03/08/22 21:41
因みに今はWinInetで誤魔化していますが、
IndyとInetの併用というのが気に入らないのです。
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
   
1000トリ合戦スタート!
973
974
975
976
977
978
979
980
981          
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。