2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C++Builder相談室 Part6

1 :デフォルトの名無しさん:03/05/30 16:45
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-10あたり。




2 :デフォルトの名無しさん:03/05/30 16:46
<過去スレ>

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/


3 :デフォルトの名無しさん:03/05/30 16:46
<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


4 :デフォルトの名無しさん:03/05/30 16:49
<関連サイト>
公式サイト
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
何かライブラリを参照してないと思われ

11 :デフォルトの名無しさん:03/05/30 20:00
>>8
http://www.borland.co.jp/qanda/lang/l0003007.html
これかな

12 :デフォルトの名無しさん:03/05/31 17:02
http://pc2.2ch.net/test/read.cgi/tech/1052625846/708-

BCBのwchar_tは、UCS-2でしょうか?UTF-16でしょうか?

13 :デフォルトの名無しさん:03/05/31 17:03
>>12
UCS-2 / 伝統的 UNICODE です。



14 :12:03/05/31 17:05
あ、UCS-2の方が伝統的なんだー。
2バイトきっかりで便利だよね!
HTMLでUTFが使われてるようだけど、そちらが新種か。

15 :12:03/05/31 17:06
で、DBに入れるときには、UTFの方が良いのかな?????

16 :デフォルトの名無しさん:03/05/31 17:06
元スレッドに有るように、データをもらって Win32 API に渡すだけなら、UTF-16 データを
乗っけられる。1バイトのことしか考慮していないアプリで UTF8 が(見かけ上)扱えるのと
同じ程度にね

17 :12:03/05/31 17:09
thanx!>>16
をぉ、結局どれも利点があって、
UTF8,UTF16,UCS-2のどれが良いか分からないぞ。

18 :デフォルトの名無しさん:03/05/31 17:20
>>17
UNICODE にしたからといってすべてが解決するわけではありません。
単なるエンコーディング規則。

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

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

glib のように一気に4バイト系 / UCS-4 にいってしまうというのも一つの見識。
Win32 API がサポートしてないのが最大の問題だが。

19 :デフォルトの名無しさん:03/05/31 17:26
>で、DBに入れるときには、UTFの方が良いのかな
良い、悪い。じゃないの。C/C++ の基礎知識があるとして...

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

少し偏見交じりにいえば、UTF8 しかサポートしていないアプリ/DB は、内部処理 UNICODE 化されていない
コードを元にしているのだろう。と。
UCS2 サポートするためには、各種文字/文字列処理関数が w_char サポートした処理系で
かかれているのであろう。と思われる。ってところ。


20 :17:03/05/31 17:29
じゃぁ、OSの種類がイパーイ(Win/DOS/Linux/ITRON)ある場合、
UCS2にしといて、世の中のOSがUCS4になったら一気にコンバートすれば良さげ。

それともUTF8しとけば色んなOSのASCIIコード部分は保証されるのかな。。

21 :17:03/05/31 17:31
>>19
げ、怖いですね。

UTF8だと、色んなOSに対応できますかねぇ。

22 :デフォルトの名無しさん:03/05/31 17:33
UTF8 が US-ASCII と同一のバイト表現を得られる。ってのがアメリカ人にとっては
心地よいんだろうね。その代わり、ヨーロッパを含む多くの国にしわ寄せが。
UNICODE としては同じだから、どれを使っても大差ないよ。
抱える問題も同じ。


23 :17: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を生成したりするマネって出来ないんでしょうか?

25 :デフォルトの名無しさん:03/05/31 21:52
出来ますよ。

26 :デフォルトの名無しさん:03/05/31 22:19
出来るけど、プログレス程度ならやらない方がいいように思うけどな。
理由は DLLが肥大する
DLL呼び出し側でVCL使って DLLでも使うなら同じコードが個所にある事になって気持ち悪い。

プログレスならダイアログリソース作ってやった方がいいんじゃないの

27 :デフォルトの名無しさん:03/06/01 01:16
C++Builder 4をWindows2000 SP3で使っています
用意されてるコントロールを並べてちょっとコードを書くような簡単なプログラムなのですが
コンパイルして実行する時にリンクするところでハングアップしてしまいます
こんな時ってどんなことが考えられるのでしょうか

28 :デフォルトの名無しさん:03/06/01 07:58
>>27
そういう時は、
1、必要なパスの設定を忘れている
2、ライブラリがどこか壊れている
3、中間ファイルが壊れている
などが考えられます。
1,2は自分で修理できないならコンパイラを再インストールすると良いでしょう
3は、自分のプロジェクトフォルダから不要ファイルを消すとよいでしょう

29 :デフォルトの名無しさん:03/06/01 10:38
>>27
漏れは似たようなことになったことがあるが
BCBを再インスコしたら直った。

30 :デフォルトの名無しさん:03/06/01 11:05
質問なんですが、
C++Builder6は動作環境が98/2000/xpということになってますが、
MEだとやっぱり不具合が起こるんでしょうか?

31 :デフォルトの名無しさん:03/06/01 11:09
Meだと BCBでなくとも不具合おこりまくり・・・ よくもまあこんなもの商品として出したもんだM$

32 :デフォルトの名無しさん:03/06/01 11:11
そんなに不具合が起こるんですか・・・。
それじゃMEの人は買えませんね。

33 :デフォルトの名無しさん:03/06/01 11:17
そうだね。 Meだと 98に戻すか 2000にするか・・・でも2000に出来ないのも多いしね。

34 :デフォルトの名無しさん:03/06/01 14:22
BCBはcatch(...)は使っちゃいけないんでしたっけ?
catch(Exception &e)ってやらないと
確かデストラクタが呼ばれなくてメモリリークするんですよね。

35 :デフォルトの名無しさん:03/06/01 15:53
>>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したけど平気だたーよ
(タスクマネージャで見る限り)

37 :デフォルトの名無しさん:03/06/01 17:40
単に ME ではテストしていない。ってこと。
あれは Win98 に常駐プログラムを追加しただけのものだから。
各種リソースに余裕が無く、そんなに大きくないプロジェクトを読み込ますだけでも
リソースが足りなくなる。



38 :デフォルトの名無しさん:03/06/01 18:09
あのさー .lib ファイルを.dllにしたいんだけど、どうすればいいの?

39 :デフォルトの名無しさん:03/06/01 18:23
DLLにすればいいよ。

40 :27:03/06/01 18:44
27です
>>28>>29
再インストールは何度かやってますがダメでした。
中間ファイルを削除してみると通る時もあるけど、たいていは固まります。
パスはインストールしたそのままです。

41 :デフォルトの名無しさん:03/06/01 19:26
中間ファイルを削除するバッチを教えて

42 :デフォルトの名無しさん:03/06/01 19:27
del *.obj
del *.li*
del *.csm
del *.~*
del *.#*

43 :デフォルトの名無しさん:03/06/01 19:30
動作が変な時は思い切って

del *.tds
del *.dsk
del *.res <-- これはまあ注意してね

44 :デフォルトの名無しさん:03/06/02 13:46
MFCプロジェクトをコンバートして、MFCのダイアログの編集はどうやるんですか。
ImageEditorでリソース編集する方法しかないですか?

ま、最終的に全面的にDFM/XFMに置き換えるのは当然として、その前段階として。

45 :デフォルトの名無しさん:03/06/02 14:47
MFC のダイアログって?
なにか特殊なファイル形式がありましたっけ?

..ってところから調査すれば分かるでしょ。

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

自分は、ほぼBCB/Delphiだし、MFCのクラスウィザードをどうしても使うときは泣き泣き使ってまつ。

47 :デフォルトの名無しさん:03/06/02 16:24
リソースワークショップって入ってない? WorkShopで検索してみたら?

48 :44:03/06/02 16:43
BCBの画面から直接編集画面を出せないですか?

どんな場合でも、 BCB > VC++ と言えた方が今後の導入が楽なので。

49 :デフォルトの名無しさん:03/06/02 17:00
BC++ 5なら出来たんだけどねえ ツールのところにリソースワークショップ入れるくらいしかないかもね

50 :44:03/06/02 17:16
>>49
え”!スペックダウン?
某め。

51 :デフォルトの名無しさん:03/06/02 17:51
いやスペックダウンっていうか BC5 は そもそもDOS〜Win32迄開発出来る環境だからさ

52 :デフォルトの名無しさん:03/06/02 18:42
44はBCB5と勘違いしている悪寒

53 :デフォルトの名無しさん:03/06/03 09:11
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
メモリリークしているとかしていないかとかは
どうやって調べて行けばいいのでしょうか?

タスクマネージャのメモリ使用値とにらめっこするわけじゃないですよね?


58 :デフォルトの名無しさん:03/06/03 21:27
>>56
俺も直接クラスのメンバを呼ぶ事ができなかった。

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

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

で CreateThread() してるよ。

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

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

長文スマソ。

59 :デフォルトの名無しさん:03/06/03 22:51
>>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クラスを作成したのですが
このクラスのデストラクタを定義するとリンカーエラーになってしまいます。
何がいけないのでしょうか?

63 :デフォルトの名無しさん:03/06/04 14:25
>>61,>>62
詳しいソースキボンヌ

64 :デフォルトの名無しさん:03/06/04 15:03
>>62
>色々探していたらTThreadって便利なものあったので
ワラタヨ。すげえ釣りだったな。

65 :デフォルトの名無しさん:03/06/04 15:24
いやいや釣ってないし

66 :デフォルトの名無しさん:03/06/04 18:29
ファイルパスを表示した ListView から他のアプリへドラッグ&ドロップして
ファイルパスを渡す処理を作成したのですが、自分のフォーム外にドラッグした
時はドロップ禁止(crNoDrop )のマウスカーソルになってしまいます。
一応ファイルパスの引渡しは出来ているので処理的には問題ないのですが、
やはり見た目でドラッグ(crDrag)のカーソルを表示させたいと思い
いろいろ調べてはみたのですが、カーソルの変更方法が全くわかりません。
エクスプローラからメモ帳へテキストファイルをドラッグ&ドロップする時のように
カーソルも変化させたいのですが、どのように処理すれば良いのでしょうか?。


67 :デフォルトの名無しさん:03/06/04 22:02
C++ Builder や Delphi を使ってスレッドを実装したい場合、TThread を使うのが普通。
ヘルプファイルで TThread とタイプすれば例まで載っているし、
もっと詳しいサンプルがほしければ Google にいけ

68 :デフォルトの名無しさん:03/06/04 22:56
C++Builderの場合TThreadはメモリリークします。

69 :デフォルトの名無しさん:03/06/04 23:03
( ´_ゝ`)

70 :デフォルトの名無しさん:03/06/05 00:31
すいません初心者です
C++Builder 6でOnDeactivateイベントを使いたいのですが
アプリ内で別のフォームに行く場合は使えるのですが
他のアプリケーションに行くと実行されません
何かいい方法はないでしょうか?
宜しくお願いいたします

71 :デフォルトの名無しさん:03/06/05 00:38
TApplicationのOnDeactivateを使いなはれ >>70

72 :デフォルトの名無しさん:03/06/05 01:07
>>71さん
ありがとうございました
無事できました
助かりました

73 :デフォルトの名無しさん:03/06/05 01:36
>>68
正確には、TThreadで作成したスレッド内で、C/C++ライブラリの一部を
使うと、スレッド終了時に解放されないメモリが残る。
_adopt_thread使えばいいんじゃないの?

74 :デフォルトの名無しさん:03/06/06 00:04
TPageControlとTTabSheetとTPanelを利用し動的にコンポーネントを作成しているのですが
以下のことができなくて困っています

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

アドバイスおながいします。


75 :デフォルトの名無しさん:03/06/06 00:16
Parent

76 :デフォルトの名無しさん:03/06/06 09:27
環境はWin2k+IE6(LAN接続)にCB5なんですが、
余ってたPCを一気に最新にUpdateしつつインストールしたら
シャットダウンするまでの時間がすごく遅くなりました。

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

原因の確認には再インストールするのが最善なのでしょうが、
対処法の知識がないもので.....


77 :74:03/06/06 11:01
>>75
TFormのEditBoxの値を変更したりするときは

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


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

ちょっと今環境がないのでテストできないので
あとでやってみます


78 :デフォルトの名無しさん:03/06/06 12:12
>>76
http://homepage2.nifty.com/winfaq/

79 :76:03/06/06 13:57
>>78
プリンタ スプーラを停止して解決しました。
ありがとうございます。

80 :デフォルトの名無しさん:03/06/06 14:59
BCB6のパレットに登録されているVCLの詳細説明が書いてあるHPを教えて下さい

81 :直リン:03/06/06 15:13
http://homepage.mac.com/yuuka20/

82 :デフォルトの名無しさん:03/06/06 15:40
エクスプローラで右クリで出てくるポップアップメニューに追加するには
どうしてらいいのでしょうか?

83 :_:03/06/06 15:52
http://homepage.mac.com/hiroyuki43/jaz09.html

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/


86 :デフォルトの名無しさん:03/06/06 16:38
>>80-81
ワロタ

87 :デフォルトの名無しさん:03/06/06 18:03
>>86==>>81 自演

88 :デフォルトの名無しさん:03/06/06 18:04
なわけねーだろ(嘲笑激藁

89 :デフォルトの名無しさん:03/06/06 18:05
>>88>>85

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
http://kame.kakiko.com/hiroyuki/jaz_b01.html

93 :デフォルトの名無しさん:03/06/07 21:50
>>91
自分でそういうのを管理するクラスを作るか、TShapeを使えばいいんじゃない?

94 :たぶん:03/06/07 22:30
>>91
丁度死滅スレで出てたコードだけどさ、

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

こんなふうな処理が必要だよ。

95 :91: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ものすごーく楽なので直ぐにできるかと)

97 :デフォルトの名無しさん:03/06/08 02:47
Me使ってるので買います

98 :74: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
http://homepage.mac.com/yuuka20/

100 :Delフサギコ ◆A6VzDeLphI :03/06/08 03:45
           _________
   ∧,,∧   / 2タン系ツールは
  ミ,,゚Д゚彡 <  某で湿られてきてますね。
   ミ つ旦)~~ \ 
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪


101 :デフォルトの名無しさん:03/06/08 08:22


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







102 :デフォルトの名無しさん:03/06/08 11:52
>>98
ParentをFormMainにキャストすればいい

103 :デフォルトの名無しさん:03/06/08 13:39
こういうRAD開発ツールって、
MVCを前提としたクラス設計になってない気がするんだけど、
どうするの?
フォームクラスに処理詰め込んじゃうの?

104 :デフォルトの名無しさん:03/06/08 13:46
Mに相当するクラスを勝手に作ればいいだけでしょ。
VC++ with MFCみたいにCDocumentも雛形吐いてくれないとだめかい?

105 :デフォルトの名無しさん:03/06/08 16:07
GUI系の場合はVCを一緒にするパターンが普通。
そうじゃなくて独立したCなのが例えばTActionとかだね。
Mについては>>104の言うとおり。

106 :デフォルトの名無しさん:03/06/08 21:13
まあなんといっても VisualClassLibだからね。
RADを使うと、委譲をフォームに行ってしまうけど、別に委譲先クラスを作ってそこに委譲してもいいわけで
そこは手作業になるけどね


107 :デフォルトの名無しさん:03/06/08 21:33
夜になってからつっこむのもあれだが…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する方法教えて

111 :デフォルトの名無しさん:03/06/09 19:37
>>110
ttp://www.kh.rim.or.jp/~maruoka/Builder/MyProg.shtml
>TFileDnDro
 OLEを使ったドラッグ&ドロップをサポートします。
 外のアプリへDnDしたい場合は、Linesプロパティにファイル名を追加してからStartDrag()メソッドを呼び出します。


112 :デフォルトの名無しさん:03/06/09 23:22
>>98
Panelのイベントを設定したいって事?

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

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

とすればよいはず。

113 :74: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
っていうふうになってインクルードできません
相互にインクルードはできないものなのでしょうか?



114 :デフォルトの名無しさん:03/06/10 01:02
>>113
インクルードの順番を逆にする。


115 :デフォルトの名無しさん:03/06/11 11:22
>>111
それコンポーネント化しないとダメなんですかね?
作者のHPみても掲示版等ないから質問もできないし
ふつうにプロジェクトに追加してやってみるとCodeGuardエラーが多発しますねこれ
サンプルのソースもあれれぇ?とか思うところが何箇所かあるし・・

116 :デフォルトの名無しさん:03/06/11 12:07
ソフトを起動させたときにある一定のところへマウスカーソルを移動させておきたいのですが
マウスカーソルの位置を指定するにはどうすればいいのでしょうか?

117 :デフォルトの名無しさん:03/06/11 13:54
>>115
自分はコンポーネントを使うのが嫌だったのでソースを見て流用してみて
一応は動いたのですが、よくわからない部分もあったので別の方法を採用。
手持ちの参考書を調べたら「Windows95 API パワフルテクニック大全集」に
WM_DROPFILES をドロップしたいウィンドウにポストする方法が紹介されて
いたので、試してみたところ問題なくドラッグ&ドロップできました。
ネットで調べた時は OLE を利用する方法ばかり紹介されていたのですが
WM_DROPFILES メッセージによる方法では OLE を使ってないのかな?。
よくわからないけど割とスッキリとコーディングできたし結果オーライで。
詳しいコーディングについては書籍を見てください。(今も売ってるかな?)


118 :デフォルトの名無しさん:03/06/11 15:25
>>116
http://www.google.co.jp/search?q=SetCursorPos&lr=lang_ja

119 :116:03/06/11 15:38
>>118
ありがとうがざいます!
調べ方が悪いらしくて途方にくれていました。
早速みてみます。ではでは。

120 :100人に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
http://homepage.mac.com/hiroyuki44/hankaku05.html

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

こういうエラーが出ますが、AnsiToUtf8みたいな関数使ってると、WinXPでしか動作しない、
みたいなことありますか?

123 :デフォルトの名無しさん:03/06/11 17:37
よろしく

124 :122:03/06/11 18:48
やっぱ、IBXが関係しているみたいでつ。
IBXの配布方法きぼん。

125 :デフォルトの名無しさん:03/06/11 19:38
(・∀・)ニヤニヤ

126 :ミ;゚Д゚彡 ◆A6VzDeLphI :03/06/11 21:27
>>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できるの?

130 :デフォルトの名無しさん:03/06/12 11:33
そうか。 >>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を行う方法を教えて下さい。

132 :デフォルトの名無しさん:03/06/12 11:57
>>131
方法1: >>111 のコンポーネントを利用
方法2: >>111 のコンポーネントのソースを流用
方法3: 自分でOLEのD&D方法を調べてコーディング


133 :デフォルトの名無しさん:03/06/12 11:59
>>132
 >>115

134 :デフォルトの名無しさん:03/06/12 14:18
>>133
DelphianWorld行け。
2個くらいあったはず。

135 :デフォルトの名無しさん:03/06/12 19:55
C++Builderをダウンロードしたけど使い方がわかんない
exeファイルをクリックしてもすぐ閉じちゃうし、fconvert.exeと言うファイルはクリックしてもすぐに終了はしないけど
何なのかが分らないし

136 :デフォルトの名無しさん:03/06/12 20:11
>>135
体験版か?まずは英和辞典を用意しろ。
もしくは日本語版を買え。

137 :デフォルトの名無しさん:03/06/12 20:20
>>135
BCC5.5インストールと使い方
http://www6.plala.or.jp/mnagaku/cmag/ac20005/

10分ではじめるBCC
http://hp.vector.co.jp/authors/VA017148/pages/install/bcc.html
きときと-CPad
http://hp.vector.co.jp/authors/VA017148/pages/cpad.html#cpaddownload

138 :デフォルトの名無しさん:03/06/13 01:00
>>135
Borland C++ Compiler ≠ Borland C++ Builder

139 :デフォルトの名無しさん:03/06/13 04:57
すいません、VCからの乗り換え考えてるんですが、
VCみたくエディタ内での、
関数のパラメータ表示、マクロの定義表示、構造体メンバ表示、型ガイド表示などの
ナビゲーション機能はありますか?


140 :デフォルトの名無しさん:03/06/13 10:18
>>139
BCBはVCみたいなうんこじゃないからそんなの必要ないと思うけどなぁ
俺は逆にVCやって勝手にメンバ表示されてウザかったが

141 :デフォルトの名無しさん:03/06/13 12:41
CPUファンの回転数を知るにはどうすればいいのですか?
マザボによって違うというのはわかるので、とりあえず intelの
マザーボードの場合を調べようと思い intelのページに行ってみたのですが、
載ってませんでした。

142 :デフォルトの名無しさん:03/06/13 15:40
>>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にある?

145 :デフォルトの名無しさん:03/06/14 09:16
>>140 >>142
VC、BCBは遅いのでうざい。

146 :デフォルトの名無しさん:03/06/14 12:52
>>144
あるよ

147 :デフォルトの名無しさん:03/06/14 13:04
>>146
まじデスか!?
見つからなかったから作っちゃったYO..

148 :デフォルトの名無しさん:03/06/14 17:46
delphiとBCBのどちらかを極めて神になりたいのですが
どちらが神レベルまでなりやすいでしょうか

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

明日どちらかを買う予定です。

149 :デフォルトの名無しさん:03/06/14 19:47
>>148
HSP

150 :148:03/06/14 20:36
>149

耳糞つまってません?

151 :デフォルトの名無しさん:03/06/14 21:00
>>150
目糞じゃないの?

152 :デフォルトの名無しさん:03/06/14 21:03
>>148
BCBのベースはDelphiだし、資料が豊富だし
やっぱDelphiじゃないですか?
とか言ってる漏れはヘッポコBCB使いなわけですが

153 :デフォルトの名無しさん:03/06/14 21:16
> 資料が豊富だし
正確には、VCLに関しての資料。
ライブラリ、アルゴリズムなどの重要な資料はC++の方が多い。


154 :デフォルトの名無しさん:03/06/14 21:17
> BCBのベースはDelphiだし
正確には、BCBで使用しているVCLのベース。

155 :152: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++;
}

157 :デフォルトの名無しさん:03/06/16 01:18
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);


159 :デフォルトの名無しさん:03/06/16 01:52
大きく間違ってないから、もう少し足掻いてみれ。足掻くことが重要。

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;
}



161 :デフォルトの名無しさん:03/06/16 02:03
> 足を掻く?
ワロタ 天然か

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



163 :デフォルトの名無しさん:03/06/16 02:23
一瞬、何が悪いのか気付かなかった…
超ケアレスミスじゃん!>for文

164 :デフォルトの名無しさん:03/06/16 02:53
めっちゃワロタガナ


165 :デフォルトの名無しさん:03/06/16 03:22
>>164
いやいや、明日は我が身と思わなくては・・・

166 : :03/06/16 06:28
VCのTRACEみたいなデバック用の出力文みたいのないの?

167 :デフォルトの名無しさん:03/06/16 07:34
>>166
あるよ


168 :デフォルトの名無しさん:03/06/16 10:07
オーバーフロー

169 : :03/06/16 13:33
>>167
名前を教えてください。

170 :113:03/06/16 15:25
>>113なんですが
手が空いている時に試しているのでですが
>>114さんのアドバイスのインクルードの順番を変更しているのですが
全然うまくいきません

ヘッダの部分を上げてみますので
どなたかアドバイスもらえませんか?


171 :113: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);
};

172 :113: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)
{
}


173 :デフォルトの名無しさん:03/06/16 15:37
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")
しても、駄目ぽ。

176 :デフォルトの名無しさん:03/06/17 00:20
>>174
俺は、DirectShowでがんばった。

177 :175:03/06/17 00:36
自己完結。

パスに
$(BCB)\lib\Psdk
追加でできた。

178 :デフォルトの名無しさん:03/06/17 00:50
>>174
Video for Windowsで簡単にできるよ


179 :113:03/06/17 10:01
>>173
> tabsheet.hでUnitMain.hをインクルードしてるんじゃないの。

hでインクルードしているのがまずいかと思って
cppファイルでインクルードしてみたけどだめです
型名が必要っていうコンパイルエラーが消えません

180 :デフォルトの名無しさん:03/06/17 10:33
メモ帳を作ってみてるんですけど、ドラッグアンドドロップがうまくいきません。
1.MessageDlg関数で、なぜか最後面にいってしまう。
  (他のウィンドウの後ろに隠れてしまう)
2.Show関数が働かず、最前面にきてくれない。
アドバイスよろしくお願いします。


181 :180: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);
}


182 :180: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
}


183 :180:03/06/17 10:36
環境書き忘れてました。
・Win98
・C++Builder 5
です。


184 :デフォルトの名無しさん:03/06/18 16:50
age

185 :113:03/06/18 18:16
113のインクルードの問題は一応解決できました。
動的生成したコンポーネントの中から
親コンポーネントのメソッドを叩くことが出来ました。

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

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

↓こうするとOK

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

ヘッダの中では使用できないのでしょうか?

186 :デフォルトの名無しさん:03/06/18 19:58
んなこたない。がんがりすぎて、おかしな事になってるんじゃないか。

とりあえず、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);






190 :113: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を使った
ほうがいいんでしょうか?

193 :デフォルトの名無しさん:03/06/20 16:53
>>192
ヘルプのTForm::~TForm

194 :デフォルトの名無しさん:03/06/20 16:57
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
http://homepage.mac.com/hiroyuki44/

197 :デフォルトの名無しさん:03/06/20 20:57
C++BuilderとVC++
C++BuilderとDelphiでは速度はどちらが速いのですか?

198 :デフォルトの名無しさん:03/06/20 21:00
>>195
0.1は、二進数でキッチリ現わせないから誤差が出る。
0.5=1/2=0x0.1 とか、 0.75=3/4=0x0.11 とかならOKかな?(試して無いよ

199 :192: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だ。


201 :デフォルトの名無しさん:03/06/20 21:56
例えば
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1050452299

こういうコードならDelphiが最速になるよ

202 :デフォルトの名無しさん:03/06/20 22:52
C++のコードとDelphiのコードを比べたら大概C++の方が速いけどね。

203 :デフォルトの名無しさん:03/06/20 23:31
>>187
このプロパティ、ヘルプ読んでも意味不明で萎えたが、
SELECT した結果を編集したい、ってこと?
それなら TIBDataSet 使えばいいんじゃない? 自前で UPDATE 文を用意する必要はあるが。


204 :デフォルトの名無しさん:03/06/21 06:46
>>202
不思議だね。自分が書いたら何故かDelphiの方が速い事が多い。

205 :デフォルトの名無しさん:03/06/21 15:47
BuilderでMFC使えないの?
CStringの
operator= (LPCSTR)
のやつが、うまくく認識されずに
コンパイルエラー

どうやったらいいですか?

206 :デフォルトの名無しさん:03/06/21 16:01
>>204
もっとC++を勉強しろ。

207 :デフォルトの名無しさん:03/06/21 16:06
>>205
どういうコードで、なんていうエラー?

208 :205:03/06/21 16:13
うほっ
なんかしらないけど、
うまくいけた。



209 :デフォルトの名無しさん:03/06/21 17:16
>>204
>>206
コンパイラの得手不得手があるんで一概には言えんだろ。
たまたま204の書くコードが、dcc32の最適化と上手くハマってるってことじゃないか?

bcc32の方は、-k-を指定しても、__fastcall以外はpush ebp; mov ebp, espされてしまうし…
全部espで操作するコードを期待してるのに

210 :デフォルトの名無しさん:03/06/21 17:30
これからBuilder6入れようと思うんだけど、
ハードディスク何メガぐらい取られますか?

211 :デフォルトの名無しさん:03/06/21 17:39
>>210
箱の裏に書いて無いか?

212 :デフォルトの名無しさん:03/06/21 17:41
いや。落とすから箱は無い。

213 :210:03/06/21 18:08
アップグレードで申し込んだから
箱といっても地味なダンボールですが

214 :デフォルトの名無しさん:03/06/21 18:19
漏れは400MBぐらい。

215 :デフォルトの名無しさん:03/06/21 18:47
>>213
ウソコケ
アップグレードで買ったが正規版の箱で送られてきたぞ
それとも俺が優待でアップグレードしたからだってのか?

216 :210:03/06/21 18:52
>>214
ありがとう

>>215
粘着ですね。
毎回真っ白い箱で届きますよ。


217 :デフォルトの名無しさん:03/06/21 18:53
>>215
あー、わかったわかった。

218 :デフォルトの名無しさん:03/06/21 19:06
500MB超えてるなー

219 :デフォルトの名無しさん:03/06/21 20:25
>>216=210
便乗で粘着するが俺のアップグレードもあの青い箱がきたぞ。
人によって違うのか?
で、その箱には 650MB 以上必要と書いてある(Pro版)。

220 :デフォルトの名無しさん:03/06/21 20:42
オレもアップグレードだけど店頭で売っているのと同じ青い箱だったよ。
バージョン5までは素っ気無い白い箱で届いてたのでちょっと嬉しかった。

221 :215:03/06/21 23:38
>>216
本件に関して初カキコなのに粘着などと、どういう了見かな?


222 :デフォルトの名無しさん:03/06/22 00:11
>>221
そういう追及をするところが粘着という了見なわけだが

223 :デフォルトの名無しさん:03/06/22 00:28
俺もPRO6アップグレード青箱で来た。白箱の人もいたのだろうか。

224 :デフォルトの名無しさん:03/06/22 00:37
でも >>216 の「粘着ですね。」も失礼な言いぐさだな。
>>210 以外で白い箱だった人っているの?。

225 :デフォルトの名無しさん:03/06/22 01:00
聞いた事ないな。
白と青の二通りがあるなら、ずっと前にMLで話題になってるんじゃねえ?

226 :デフォルトの名無しさん:03/06/22 01:05
>>224
丁寧な言い回しではないかw

227 :215:03/06/22 01:06
>>222
言われっぱなしで泣き寝入りしろと?

 フ ザ ケ ル ナ

228 :デフォルトの名無しさん:03/06/22 01:07
( ´,_ゝ`)プッ

 フ ザ ケ ル ナ

だって

229 :デフォルトの名無しさん:03/06/22 01:14
リキむとミがでるぞ

230 :デフォルトの名無しさん:03/06/22 01:16
フ ザ ケ ル ナ

ライジング・サンを思い出した

231 :デフォルトの名無しさん:03/06/22 01:33
いちいち突っ込む奴全員粘着ケテーイ(w

232 :デフォルトの名無しさん:03/06/22 01:34
┐(´ー`)┌

233 :デフォルトの名無しさん:03/06/22 01:37
>>227
いや、いくらなんでも泣き寝入りしなくてもいいんじゃないか

234 :デフォルトの名無しさん:03/06/22 01:43
>>210 が本当に C++Builder6 を持っているかどうかも怪しいもんだな。
大体持っているならあんな質問するかねぇ。買う前なら考えられなくもないが
箱が仮に白いヤツだったとしてもマニュアルとか見れば書いてあるだろうし。
多分過去にはアップグレードしたことがあって、同じと思い「白い箱」とか
書いてしまったとか?。どういうつもりだったのかは理解し難いが・・・。

まぁ どうでもいいや。w

235 :デフォルトの名無しさん:03/06/22 01:43
>>224
Builder持ってないし、ちゃちゃを入れると面白いと思って書いてるだけだけど、
>>220を見る限り古いバージョンでは白い箱があったようなので
確実に、>>210が嘘とも言い切れない予感
まぁ、何で某に電話して聞かないのか、不思議ではあるけど…

236 :デフォルトの名無しさん:03/06/22 04:24
画面写真等がかかれているのは「化粧箱」
「化粧箱」にはいろいろ書かれているけれど、誤字や記述の変更などでさし変わる可能性もある。
だから内箱と化粧箱を分離するのですね。
化粧箱は製品ごと、種別(Pro とか Personalとか)でも別になるし、カラー印刷でコストもかかっているから
会社としては少しでも節約したいわけだ。
化粧箱は宣伝も兼ねているし、ショップに置く場合には必須。
アップグレード/DM ユーザーは、内容に同意の上でお金を払っているのだから化粧箱は必要なし。

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

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

というのが真相。

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

今BCB4使っててWin95/98/Me/NT4/2000/XPで動くアプリが問題なく作れているので
アップグレードしてもしなくても構わないんですが、
定義されてないAPIや定数がボチボチ出てきて自前で代替ロジック組むのもいい加減アレなので、
アップグレードしようかなーと。


238 :デフォルトの名無しさん:03/06/22 05:37
>初期のWin95
は DCOM がらみで最新の COM ライブラリが提供されていないため、MS 自身が切り捨てているからねぇ。
VCL、より厳密には Delphi の RTL を使わなければ問題なく動くはず。
Delphi ではアップデートの途中で Win95 に存在しない API を使ってしまったけど、D6 RTL Update3
(通称 Variant パッチ)で修正され、某としては保証はしないけど初代 Win95 で動作するようにした。
BCB6/Update4 に D6 RTL Update を混ぜることができるのならやってみてもよいと思うけど?


239 :デフォルトの名無しさん:03/06/22 13:12
なんちゃってプログラマなんでアレだけど、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 です。

241 :デフォルトの名無しさん:03/06/22 14:57
なんかデジャブ

242 :デフォルトの名無しさん:03/06/22 15:01
なんか、何度も何度も見たような・・・

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 が真となる


243 :205: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(),"");
}
}


244 :デフォルトの名無しさん:03/06/22 16:54
>>243
#pragma link "nafxcwd.lib"
をどっかに足す。

245 :205:03/06/22 21:07
>>244
うほっ
いけたです。

あんた神だ。

ありがとうございます。

246 :デフォルトの名無しさん:03/06/23 09:31
遅レスでスマソ

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

  if ( Memo->Modified ) {
以下略

で、だめかな?


247 :デフォルトの名無しさん:03/06/23 11:28
5を使っているんだが、
コンパイルして実行するとたまにあるはずのコントロールが消えてることがある
んでオブジェクトインスペクタでそのコントロールをみると、Left、Top、Width、Heightが
とんでおmない値になってることが結構あるんだが、これ完全にバグだが
対処法ってあるんですかね?

248 :デフォルトの名無しさん:03/06/23 18:44
Builder5で作ったアプリケーションなんですが
win2000だとヒントが出て、98だとヒントが出ません。
こういう症状って、なにか解決策ありますか?

249 :デフォルトの名無しさん:03/06/24 03:44
>>247
数年使っているが経験なし。
バグというよりは環境を見直したほうがよいと思う。

250 :デフォルトの名無しさん:03/06/24 09:30
>>248
98はヘルプの項目数が32767個ぐらいに制限されてませんでしたっけ?
そのせいでヒントが出ないんじゃない?

251 :デフォルトの名無しさん:03/06/24 11:05
CB6 pro版はヨドバシカメラで61,200円 商用・業務目的 可
CB6 personal版はヨドバシカメラで9000円 商用・業務目的 不可
VC7 personal版は12800円 商用・業務目的 可

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

CBホスィ・・・

252 :デフォルトの名無しさん:03/06/24 11:12
>>251
商用/業務で6万円出せない。ってのは何か間違っているよ。
いろんな事情があるんだとは思うけど。

学生がフリーウェア作る分には Personal でよいのでは?

253 :デフォルトの名無しさん:03/06/24 11:15
アカデミック版なら半額でっせ

254 :デフォルトの名無しさん:03/06/24 17:23
ttp://internet.watch.impress.co.jp/www/article/2003/0623/winny.htm
こんなのでニュースになるとは…

255 :デフォルトの名無しさん:03/06/24 17:26
インプレスはv2になってからずーとWinnyのバージョンアップ報告してるよ。
よっぽど買ってるんだろ。

256 :デフォルトの名無しさん:03/06/24 18:25
>>254
なんちゅうか・・・それ作ってるヤシはやっぱり割れてんだろなBuilder・・・・

257 :デフォルトの名無しさん:03/06/24 20:49
>個人で商用・業務目的に開発を行なう人にとっては、
>実際俺もその一人、学生ではさすがに6万円は手が出せない・・・

この辞典でアレだなぁ・・・

258 :デフォルトの名無しさん:03/06/24 22:20
>250
ありがとうございます。
人のパソコンで起動したら確かに出てきました。

259 : :03/06/24 22:28
商用なんて考えてないけどログインのやってるソフコンみたいのもだめなの?
毎月発表してて入賞すると数万円もらえたりするやつ。
あとWebで公開するときもソースも公開しないといけないの?

260 :251:03/06/24 22:40
>>252
>>259
アルバイトで、雑誌の付録CD用のランチャープログラムを自宅で作ってるんで、
ツールは全部自前なもんで。
仕送りもほとんどないから、バイトでの収入がメインなんです。
そうなると、6万円ってまとまったお金はなかなか出せないんですよ。
家賃よりも高い金額はなかなか出せません。

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

>>253
アカデミック版はライセンスに制限が付くとおもいました。


261 :デフォルトの名無しさん:03/06/24 23:18
商用利用不可なんて制限あったっけ?と思ったら、6からついたのね。
5のLearningをどこかで探してみたら?>251

262 :デフォルトの名無しさん:03/06/25 00:06
>>260
ちなみにそれって幾らもらってんの?
6万円も出せないほどの低賃金なのかな。
足元見られてるんじゃねえかなあ・・。

263 :デフォルトの名無しさん:03/06/25 01:00
>>262
100%そういうのにまわせるわけじゃないだろ
米も味噌も買わにゃならんし、部屋代だってかかるべ
あくまでアルバイトだっていってるじゃん、それも多分単発だろ?
たいした額にゃなるまいて

264 :デフォルトの名無しさん:03/06/25 09:55
おじさんが若いころは、そういうバイトそのものが無かったのでアレだが、
普通、開発ツールは発注元が提供するものではないのか?
たぶん、足元見られているんだと思う。


265 :デフォルトの名無しさん:03/06/25 09:59
>>248
BCB4で起きてる現象と同じだとすると、
ステータスバーのコンポーネントを使わないでパネルとラベルとかでそれっぽく作る。

ヒントイベントは発生してるのを確認したけどステータスバーに表示されなかった
98/XP(+manifest) = ×
2K/XP = ○


266 :デフォルトの名無しさん:03/06/25 11:09
マルチポストになるかもしれませんが...
C++スレで、
C++ではenumの要素数を取得したり、pascalでいう、lowやhiを取れない、
とレスされました。

BCBだと拡張されてて取れる、とかないですか?

267 :デフォルトの名無しさん:03/06/25 11:29
できないよ。

268 :デフォルトの名無しさん:03/06/25 13:00
>>266
なぜそれが必要なのかが知りたいな

269 :266:03/06/25 13:01
あー、ごめん。C++スレで話が続いてるな。

270 :266:03/06/25 15:12
Delphi言語で書けて、C++で書けないことってありますよね。
(templateみたいに、逆もあるけど、Delphi言語は、なんか小回りが効くような)

BCBで拡張されてないと、困るような...

271 :デフォルトの名無しさん:03/06/25 15:47
LowやHiは別にVCLを使うために必須じゃないから、拡張されてなくても困らないんでない。

272 :デフォルトの名無しさん:03/06/25 15:55
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;

274 :デフォルトの名無しさん:03/06/25 15:59
出来ないこたないだろう

275 :デフォルトの名無しさん:03/06/25 15:59
かぶた

276 :デフォルトの名無しさん:03/06/25 16:01
配列使わずにstd::vector使えとかそういう話?
要素数も取れるし、速度は同じ、メモリ消費は全体でポインタ2,3個分の違い。

277 :デフォルトの名無しさん:03/06/25 16:04
>>373
だから Delphi的に配列の添え字に列挙型を使えるとるという意味はさ

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

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

for( TABC i = TABC.Low() ; i<TABC.High() ; i++) とループして MyArray[i]; とアクセス出来ないと

278 :デフォルトの名無しさん:03/06/25 16:06
>>277
とりあえずもちつけ

279 :デフォルトの名無しさん:03/06/25 16:09
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;

280 :デフォルトの名無しさん:03/06/25 16:12
>>279
enum { A, B, C, SIZE }; でOK

281 :デフォルトの名無しさん:03/06/25 16:14
だからさ、
int i; で strs[i] と書いたら文法エラーにならないとさ


282 :デフォルトの名無しさん:03/06/25 16:17
すでにenumの話じゃないし

283 :デフォルトの名無しさん:03/06/25 18:00
>>270
関数内関数とか、クラス参照型(typeid相当)からのクラスメソッドの多態した呼び出しとか、
messageハンドラとか(BCBのマクロのやつはDispatchをオーバーライドしてる)、
{$L ....obj}をDelphiのユニットに別々に閉じ込めると識別子が重複してもきちんと解決してくれるとか、
externalでインポートライブラリ無しにいきなり.dllを呼べるとか、
\0が途中にある文字列定数を文字列として扱えるとか、implementsとか、そういう話?

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

284 :デフォルトの名無しさん:03/06/25 18:04
関数内関数

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

cout << Func() << endl;

}

285 :デフォルトの名無しさん:03/06/25 18:15
>>284
それって、親のローカル変数に触れる?そこが最大の焦点。
(じゃないと、単に名前空間を解決しただけで機能的には普通の関数)

286 :デフォルトの名無しさん:03/06/25 18:16
>>285
んなもん参照渡しすればいいだろ。

287 :デフォルトの名無しさん:03/06/25 18:22
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;
}

利用するローカル変数が少なければ構造体に詰めないでそのまま参照渡ししても可。

288 :デフォルトの名無しさん:03/06/25 18:23
×
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で任意の行を非表示できますか?

290 :デフォルトの名無しさん:03/06/25 18:28
>>286
Cには、グローバル変数、ローカル変数、の二段階しかないけど、
Pascalは好きなだけネストが可能で、内側からは外側が見えるので、
グローバル変数は単に一番外側の変数に過ぎず、間に層をいっぱい作れるわけだ。
この性質を真似できないと、ちょっと認められないなあ。

これはトップダウン式パーサとか、概念的にもネストした状態を持つものを書く時非常に都合がいい。

291 :デフォルトの名無しさん:03/06/25 18:33
そうなんだよね。 関数内関数で外側のローカル変数との処理ってホントどう解決してるのか不思議。
単純に2段ならいいけど3段でしかも再帰してたりすると、実装どうやってるんだろ?

292 :デフォルトの名無しさん:03/06/25 18:42
実装は拍子抜けするほど単純ですよ。二通り知ってるけど、

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

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

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

・関数内関数を持つ関数(要するに親になる関数)は必ずスタックフレームを作る
・子を呼ぶ時は自分のEBPを隠しパラメータで渡す
・親の変数には [親のEBP + n]
・親の親には、[[親のEBP] + n] 以下同様
・兄弟を呼ぶ時は親のEBPを渡す
・親を呼ぶ時は[親のEBP]にそのまた親のEBPが入っているのでネストの段数差だけ逆にたどって取得、渡す

293 :デフォルトの名無しさん:03/06/25 19:15
そうか。 という事は 2段以上にするのはあんまり速度的には良くなさそうだね。

294 :デフォルトの名無しさん:03/06/25 19:16
クリティカルな処理でも無い限り別にいいじゃん。

295 :デフォルトの名無しさん:03/06/26 04:05
>>292
あなたの言う「enter/leave」と「Delphi方式」って同じものなんですけど。
enter/leave が遅いし融通が利かないから、多くの処理系では同等の複数の命令に
分割しているだけ。

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


296 :デフォルトの名無しさん:03/06/26 07:29
>速度的には良くなさそうだね。
これは真実。

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

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

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

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

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



297 :デフォルトの名無しさん:03/06/26 07:56
>>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 してゆく


298 :デフォルトの名無しさん:03/06/26 08:00
>>296
キャッシュがあるCPUでは、ローカル変数よりスタックフレームの方が速いかもしれないね。
スタックだと、キャッシュ上で上書きされる率が高く、上書きされたら実際に書き込みをする必要が無くなるから

299 :デフォルトの名無しさん:03/06/26 08:22
>>295
enterの場合、例えば三重ネストなら、親のEBP、と、親の親のEBPが、スタックに配列状に置かれる。
あと>>297のようにEBPをパラメータで受け取る必要は無い。enterの値に応じて集めてくれる。

>>296
今だとマルチスレッドがあるから、グローバルに領域を取るとまずいかもね

300 :デフォルトの名無しさん:03/06/26 13:42
コンストラクタとOnCreate、デストラクタとOnDestroyの違いがよくわかりません。
どういう違いがあり、どう使い分ければいいでしょうか?


301 :_:03/06/26 13:44
http://homepage.mac.com/hiroyuki44/

302 :デフォルトの名無しさん:03/06/26 20:08
>>300
C++の場合、virtual関数を多態して呼びたい時は、OnCreate/OnDestroyかな。

303 :デフォルトの名無しさん:03/06/27 10:07
コンストラクタに記述すると、そのクラスの動作を変更したわけだから、
すべてのインスタンスで有効になる。
OnCreate に記述すると、イベントだから、インスタンス毎に異なる動作を
記述できる。

違いはこれでわかるかな?

304 :デフォルトの名無しさん:03/06/27 14:04
win2kとwinNT4でまったく同じプロジェクトをコンパイルしても
win2kのほうが20Kくらい大きいexeが出来上がるのですが、
そういうものなのでしょうか?

305 :デフォルトの名無しさん:03/06/27 15:17
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に移植しようとしてます

307 :デフォルトの名無しさん:03/06/27 15:54
>>306
RadioButton1はどっかのフォームのメンバ変数じゃないの?
そのフォームクラスに所属してない関数からならアクセスできるわけないが。

308 :デフォルトの名無しさん:03/06/27 16:05
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
さんくす、超出来たっぽい
ありがとございます

311 :デフォルトの名無しさん:03/06/27 16:48
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で同エラー。
すげー変。

313 :312:03/06/27 17:12
それも、同じソースの場所で、
TIBQueryを素で使って同じことをすると、何も起こりません。

みなさんも試してみて下さい。

314 :デフォルトの名無しさん:03/06/27 17:17
>>313
ソース追ってみたら?

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

ちなみにBCB6でつ。

316 :312:03/06/27 17:21
>>314
ソース追った結果が、TIBQuery->SQLの実態はTStrings*でつ。
また、dynamic_castでも、それが正しいという結果です。
VCLの中をデバッグしようとすると、汗画面に飛びます。

317 :デフォルトの名無しさん:03/06/27 17:25
>>316
ソース見ると、OnChangeに代入してるQueryChangedが呼ばれてるはずということもわかるね

318 :デフォルトの名無しさん:03/06/27 17:32
>>315
親が引数をとるコンストラクタしか持ってないから、
派生したクラスでコンストラクタを省略することは出来ないよ。

319 :312:03/06/27 18:19
>>318
はつみみですた。
>>317
確かに、
>TStringList(SQL).OnChange := QueryChanged;
こういう行ありますね。
ウワーン何が起こってるのか分からないYO〜

320 :デフォルトの名無しさん:03/06/27 18:25
>>319
だからTStringListはOnChangeにコールバックが設定されていると
内容の変更があったときにそれを呼んでくれるの。
だからエラーはそのコールバック(設定されているTIBQuery.QueryChanged)の
中で起きてるんでしょう。
ってその中でブレークポイントとかって設定できないんだっけ?
<BCBは最近使ってないのでスマソ

321 :320:03/06/27 18:29
>>320
プロジェクトオプションのリンカタブで
デバッグライブラリを使う(D)
をチェックしとけばデバッガで中を追えるはずか。

322 :312:03/06/27 18:39
VCLデバッグはしてますが、ブレイクポイント無いと、汗画面でした。

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

ここでエラー起こしてます。
Disconnectなんてされても困るな...

323 :312:03/06/27 18:49
もう一つ分からないのが、派生前と派生後(名前変えただけ...)で動作が違うのは???

324 :デフォルトの名無しさん:03/06/27 18:59
どう違うの

325 :312: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;
ここに飛んで落ちます。


326 :312:03/06/27 19:38
それも、F7を押した瞬間、Disconnectメソッドに飛ばずに、
「TIBCustomDataSet.PSGetTableName」に入るので、???です。

327 :デフォルトの名無しさん:03/06/28 04:58
これインストールしたときなんか向こうの鯖にアクセスしてたんだけど、これってXPのアクティベーションみたいなやつ?
一本のソフトで複数のコンピュータに入れることは出来ないの?

328 :デフォルトの名無しさん:03/06/28 05:36
>>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までしか書いてないので教えてください。


332 :デフォルトの名無しさん:03/06/30 01:08
>>331
意味不明

333 :デフォルトの名無しさん:03/06/30 01:16
最初から入ってるのは7.0かな。

334 :331:03/06/30 02:31
新たにDirectXSDKをインストールしなくてもプログラムをコンパイルできるのはってことでした。
>>333
ありがとう。


335 :312:03/06/30 10:14
ibquery.pasで、
>TStringList(SQL).OnChange := QueryChanged;
こんなキャストがあるけど、これって大丈夫なのかな?

336 :デフォルトの名無しさん:03/06/30 11:23
>>335
FSQLを設定する部分でしっかりTStringListしか入れないようにさえなってれば
大丈夫でしょ。

337 :312:03/06/30 11:47
その通りでした。>>336
>FSQL := TStringList.Create;
になってますね。

ところで、
>constructor TIBQuery.Create(AOwner: TComponent);
を派生した場合は、派生したメソッドで
TIBQuery::Create
をコールする必要とかありましたっけ?
BCBからVCL派生はやっぱ慣れないと分からない部分とかありますよね。

338 :デフォルトの名無しさん:03/06/30 12:41
必要というか、親のコンストラクタは、初期化リストで呼んでるでそ?

339 :312:03/06/30 14:04
じゃ、不要ですか。>>338

「派生前と派生後(名前変えただけ...)で動作が違う」原因が分からないと、気持ち悪いよ。
というか、開発進むと行き詰まりそう。

340 :デフォルトの名無しさん:03/06/30 14:37
は?
引数付きのコンストラクタは初期化リストでしか呼べないし、
引数付きのコンストラクタしかないクラスから派生したクラスは、
初期化リストで初期化しなきゃエラーだろ。

動作が違うとしたら「デフォルトコンストラクタが呼ばれてる」だけだから。

341 :312:03/06/30 14:46
あ、読み間違えちゃった。 >>338 >>340

つまり、派生後のコンストラクタで、
TIBQuery::Create(AOwner: TComponent);
をコールすれば良い?

342 :デフォルトの名無しさん:03/06/30 14:51
まず、「初期化リスト」という単語を知っている?

だいたい、ObjectPascalのコンストラクタは
C++から通常の関数のように明示的にCreateで呼び出せるの?
delphiでもinherited使うしかないんじゃなかった?

343 :デフォルトの名無しさん:03/06/30 14:53
仮に呼び出せたとしても、
「デフォルトコンストラクタ」と「引数付きコンストラクタ」の両方を呼び出して
正常に動くとはとても思えないけど。

344 :312:03/06/30 14:57
>>342-343
Delphiのinheritedを行うために、「TIBQuery::TIBQuery(Owner);」と書くのかな、
と思ってたんだけど違うの?

実行させても動作しないから違うみたいだね...

345 :デフォルトの名無しさん:03/06/30 15:44
__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ファイルって作れない?
無理?

348 :デフォルトの名無しさん:03/06/30 18:54
>>346
VC=C++ Onlyで開発できる。
BCB=Pascalが必要な上にC++と互換性がない拡張がなされている。

349 :デフォルトの名無しさん:03/06/30 18:55
>>348
VCの方がよく見えるのですけど

350 :デフォルトの名無しさん:03/06/30 19:00
じゃあVC使えばいい

351 :デフォルトの名無しさん:03/06/30 19:00
>>347
できる

352 :デフォルトの名無しさん:03/06/30 19:41
>>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の方がよく見えるのですけど

355 :デフォルトの名無しさん:03/06/30 20:04
>>353
ヘルプで パッケージ のキーワードのところを順に見てけばそのうち判ると思うよ

356 :デフォルトの名無しさん:03/06/30 20:05
>>353
プロジェクトオプションを開く
リンカタブの「共有 RTL DLL を使う」のチェックを外す
パッケージタブの「実行時パッケージを使って構築」のチェックを外す

357 :デフォルトの名無しさん:03/06/30 20:14
>>355
thanks

>>356
どうもありがとうっ!
ファイルサイズかなりでかくなったけど出来たよ

358 :デフォルトの名無しさん:03/07/01 09:34
>354

じゃあBCB使えばいい

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

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

360 :デフォルトの名無しさん:03/07/01 10:25
>>359
>BCBオタの皆さん

こんな書き方すると荒らし扱いされるぞ
気をつけな

361 :デフォルトの名無しさん:03/07/01 11:19
InterBaseインストールしてないや

362 :デフォルトの名無しさん:03/07/01 11:32
リソースファイル(*.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以外は描画不能。

ユーザに直接画像を覗かれない方法があったら教えてママン(´・ω・`)

363 :デフォルトの名無しさん:03/07/01 11:56
[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のヘルプみたいに展開されてるかされてないかでノードに表示されてるイメージを変えるにはどうすればいいの?


365 :デフォルトの名無しさん:03/07/01 13:45
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 に選びなおすと比較できます。

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



368 :362: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);
 }
 //以下、ファイルリード処理
}

369 :デフォルトの名無しさん:03/07/01 15:24
>>368
> リソース経由でCreateFileさせる方法募集(´・ω・`)ノ
> 以下、ファイルリード処理
リソースをメモリにロードするなら、>>363のTResourceStreamで出来るよ(stream->Memoryでロードしたデータにアクセス)。
APIでやりたいなら→http://www.kumei.ne.jp/c_lang/sdk4/sdk_317.htm

370 :デフォルトの名無しさん:03/07/01 15:50
>>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だと正常に動きます・・・。

374 :デフォルトの名無しさん:03/07/01 16:26
TDateってTDateTimeをtypedefしただけで、時間も保持してるみたいだから、
時間部分の差で>>367みたいなことになったんでない?

EncodeDate使ったり、
Dtp1->Date = (int)Now() - 1;
Dtp2->Date = (int)Now() - 7;
ってやれば大丈夫だと思う。

375 :デフォルトの名無しさん:03/07/01 16:35
う、ごめん嘘書いたみたい。カレンダーから日付取得すると、少し時間がずれてる。
比較するときに、(int)Dtp1->Date == (int)Dtp2->Date か。

376 :367:03/07/01 16:46
>>374
ありがとうございました。(int)で動きました。
ただよくわからないのが、Valの値(少数点(時間)付)も同じだったし、Delphi5では動いたことです・・・。



377 :デフォルトの名無しさん:03/07/01 16:49
6j pro をインストールしたんですが、使用許可のオンライン認証ってやらないと何か不都合はあるんでしょうか
もし認証をしないで済む方法、パッチなんかがあれば教えてください

378 :367:03/07/01 16:49
>>375
設定するときと比較するとき、両方に(int)しときました。
ありがとうございました。

379 :デフォルトの名無しさん:03/07/01 20:50
>>377
オンライン認証が苦手だな、という方は、「使用許諾コード取得フォーム」に
記載の上、ファクシミリにてボーランド株式会社インフォメーションサービスセンター
使用許諾コードお問い合わせ係 まで送ってください。

380 :デフォルトの名無しさん:03/07/02 16:00
>>377
ホントニ正規ユーザーでつか?

381 :デフォルトの名無しさん:03/07/02 16:21
>>377
あなたは認証をやると何か不都合があるのでしょうか

382 :デフォルトの名無しさん:03/07/02 16:42
377ではないが、今まで買ったソフトを、一本たりとも登録した事が無い。
VS6に付いてたMSDNの無償ライセンス申し込みの期限が切れたことに
気づいた時は、さすがに嫌な気分になったが。

383 :デフォルトの名無しさん:03/07/02 20:31
ネットに繋いでないPCにインスコする人のことも考えてほしいな
Winnyで出回ってるクラックパッチは怖くて実行出来んし

384 :デフォルトの名無しさん:03/07/02 20:38
>>383
ネットに繋がなくても認証できるから大丈夫。
割れは恐いな。SPでどうなるかわからん。
というわけで必要なヤツは買え。

385 :デフォルトの名無しさん:03/07/03 09:09
>>383
だから>>379の言ってるFAX認証があるのだが、何か不満か?
今時FAXが無いわけでもあるまい?

386 :デフォルトの名無しさん:03/07/03 11:08
>>385
FAXなんかもってねーよ。必要ないし。
最近なら固定電話すら置いていない人もいるだろ。

387 :デフォルトの名無しさん:03/07/03 12:15
割 れ 厨 必 死 だ な ( w


388 :デフォルトの名無しさん:03/07/03 12:18
>>386
コンビニにFAXくらいあるだろ

389 :デフォルトの名無しさん:03/07/03 12:43
>>387
俺は>>377じゃないんだが。BCBなんてもっていないし。

>>388
コンビニから送ったとして、そのあとどうなるの?


390 :389:03/07/03 13:02
スルーか。まあいいや。
しかし興味深い・・・送った後にどうやって認証するんだろう。コンビニから送ったんじゃFAXを受けることはできないはずだし。

391 :デフォルトの名無しさん:03/07/03 13:19
20分しか経ってないのに(w
よっぽどかじりついてんだな。

392 :デフォルトの名無しさん:03/07/03 13:50
>>389
製品を買った方のみ、わかります。
すなおに買うことをお薦めいたします。

393 :デフォルトの名無しさん:03/07/03 13:53
状況かいときゃ、封書ででも来るのだろう。

394 :デフォルトの名無しさん:03/07/03 14:00
>>391
そうね

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

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

395 :デフォルトの名無しさん:03/07/03 14:15
低質な釣り師だったな

↓ はい、次の方

396 :デフォルトの名無しさん:03/07/03 14:37
6j pro をインストールしたんですが、使用許可のオンライン認証ってやらないと何か不都合はあるんでしょうか
もし認証をしないで済む方法、パッチなんかがあれば教えてください


397 :デフォルトの名無しさん:03/07/03 14:42
↓ はい、次の方


398 :デフォルトの名無しさん:03/07/03 14:45
>>396
割れ厨?

399 :fopen:03/07/03 15:11
fopen で3.7ギガのファイルを読もうとすると、
fp = fopen( file_path, "r+b" )
fpにnullが入りうまくいかないのですが、どうにかならないでしょうか?
当然、小さいファイルは読めます。

400 :デフォルトの名無しさん:03/07/03 15:19
>>396
アスタラへ逝け
Delphi用で(ry ゴホッ、ゴホッ・・・

401 :青木照子:03/07/03 17:41
プログラムを実行させると次のようなエラーが出ます。

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

どうしても分かりません。

402 :デフォルトの名無しさん:03/07/03 17:42
>>401
そうですか。

403 :デフォルトの名無しさん:03/07/03 19:36
低質な釣り師だったな

↓ はい、次の方

404 :デフォルトの名無しさん:03/07/04 01:00
有れば開く、無ければ作る。他のアプリから読み取りは許可する。
他のアプリが開いていても書き込める。

こんな便利なTFileSteamコンストラクタの引数は、ヘルプにのってる定数の組み合わせ(||)
で出来るんでしょうか。

405 :デフォルトの名無しさん:03/07/04 03:04
無理だな

406 :デフォルトの名無しさん:03/07/04 10:11
そうか。じゃあなんで動くんだろ。

407 :デフォルトの名無しさん:03/07/04 11:25
ぜってー無理。

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;
}
とするとちゃんと表示されるんだけど。何故?

409 :デフォルトの名無しさん:03/07/04 13:49
__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 アプリケーションで、親フォームの閉じるボタン
(フォーム右上の×ボタン) が押されたっていうイベントを、
子フォームよりも先に親フォームで捕まえる方法ってありますか?

412 :デフォルトの名無しさん:03/07/04 16:20
親フォームの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;

みたいな感じで。

414 :デフォルトの名無しさん:03/07/04 16:41
単に代入するだけなら、
dateTime = (double)a;

時刻を変換したいなら、
http://www2.big.or.jp/~osamu/Delphi/tips.cgi?index=0088.txt

415 :デフォルトの名無しさん:03/07/04 16:50
>>412
できますた。dクス♪

416 :413:03/07/04 19:30
thanx>>414

でも、面倒...

417 :デフォルトの名無しさん:03/07/04 19:51
これでできるっぽい
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++用のライブラリ作った人いませんか。

420 :デフォルトの名無しさん:03/07/06 08:22
なんか 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
で探せば?


421 :419:03/07/06 11:43
>>420
有難うございます。config.hを探してみたら
http://www.oonumerics.org/MailArchives/blitz-dev/msg00490.php
にありました。
ただ他のヘッダファイルも変えなくちゃいけないところがあるらしく非力な自分は時間がかかりそうです。
config.h作った人は簡単にBCでもできたよといってますけど。


422 :419:03/07/06 13:59
ライブラリの作り方はわかないけど、もともとテンプレート使ってほとんどヘッダファイルに書かれてるので
ライブラリなんか作らなくてもヘッダさえインクルードすれば最初の方の例がコンパイルできるようになりました。
420さん、ありがとう。
あとはゆっくり勉強して不都合がおきればまた調べます。

423 :デフォルトの名無しさん:03/07/06 16:17
http://www.codeguru.com/listview/edit_subitems.shtml
のような編集可能なListViewを実装したいんですが…サンプルがVCなのでうまくできません
他にサンプルやこれを使う方法無いでしょうか…

424 :デフォルトの名無しさん:03/07/06 18:34
>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:
};
//---------------------------------------------------------------------------

425 :デフォルトの名無しさん:03/07/06 18:37
実装
コンストラクタとデストラクタ
__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;
}
//---------------------------------------------------------------------------


426 :デフォルトの名無しさん:03/07/06 18:39
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();
}

427 :デフォルトの名無しさん:03/07/06 18:40
//エディットのキー操作
void __fastcall TListView1::CapKeyPress(TObject *Sender, char &Key)
{
if (Cap->Visible == true && Key == VK_RETURN){
ChangeItem->SubItems->Strings[ChangeSubIndex] = Cap->Text;
Cap->Visible = false;
}
}
//---------------------------------------------------------------------------
あとは勝手に改造してください。

428 :デフォルトの名無しさん:03/07/06 19:56
あ、vsReportで、RowSelectはtrueにしておいてね。

429 :423:03/07/06 22:19
>>424-428
おぉ…ありがとうございます。
使わせて頂きます

430 :デフォルトの名無しさん:03/07/06 23:10
>>424-428
すばらしい。。。便乗させてもらいます。

431 :デフォルトの名無しさん:03/07/07 00:43
……見返したら許せないバグがあるんで、訂正スマソ。

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

のところ、
if (Cap->Visible == true) return;はGetItemの前にやらないと
ChangeItemが変わっちゃうんで駄目です。

432 :423:03/07/07 02:10
>>431
再度どうもです。
コンポ作っていろいろやってます…
マウスのホイールやメニューのクリックでフォーカス外したりするのが必要なので
いろいろ調べつつ頑張ってみます

433 :  :03/07/07 18:04
professional版以上についてるCodeGuardてべんりですか?
メモリリークがあると簡単にわかる?
どんな型のどのくらいのメモリがリークしたかとかわかるの?

434 :デフォルトの名無しさん:03/07/07 21:29
プログラミングとは全然関係ないんですが、
一応、BCBでおこったことなので、書き込みます。

2,3ヶ月前に、BCBを使おうと思って起動させたら、
なんか、ゴジラの鳴き声
『ギャォォォォン!』
と言うのがして、ビックリして画面見たら、
いつものスプラッシュウインドウではなく
どっかのイラストレーターが書いたようなゴジラの絵の
スプラッシュウインドウが出てきました。
一体コレはなんだったのでしょうか?
ネタじゃなくマジです。
あまりにビックリしすぎて、スクリーンショットを取り損ねてしまいました。

435 :デフォルトの名無しさん:03/07/07 21:55
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てすいません。
よろしくお願いします。

438 :デフォルトの名無しさん:03/07/07 22:59
Image1->Canvas->TextOut(0, 0, Edit1->Text);

質問でageても誰も文句言わん。

439 :デフォルトの名無しさん:03/07/07 23:12
char配列へのコピーを一応。
strcpy(buffer, Edit1->Text.c_str());

440 :デフォルトの名無しさん:03/07/07 23:29
だれか434の件について答えてくれ

441 :デフォルトの名無しさん:03/07/07 23:37
>>440
>一応、BCBでおこったことなので
Windowsで起こった事だ

442 :デフォルトの名無しさん:03/07/07 23:42
CtrlとShift押しながらBCB起動しろ

443 :>>436:03/07/08 00:07
>>438
>>439
そのままTextOutに書いてよかったんですね。
わざわざchar配列へのコピーまで教えて頂きありがとうございました。



444 :デフォルトの名無しさん:03/07/08 09:32
>>434
それ、Borzillaだな、幸運な奴だ
どうやったらそれが出るのか漏れは未だにわからん
リソースに入ってるので、リソースハッカー等で取り出せはしたのだが・・・・

445 :434:03/07/08 10:47
>>442
神!
出ました。有り難うございます。
今までウイルスか何かかなぁと思っていたんで、
安心しました。
普通に起動して出たのって凄い確率なんでしょうね。

446 :デフォルトの名無しさん:03/07/08 12:57
>>442
これってBorlandの社員の集合写真か?

447 :デフォルトの名無しさん:03/07/08 13:20
>>442
その方法で出ないぞ
BCB6J UPD#4は違うのか?

448 :デフォルトの名無しさん:03/07/08 13:30
出たり出なかったりする

449 :デフォルトの名無しさん:03/07/08 13:45
>>448
さんきゅ
未だ成功せず
リソース見てみたら集合写真はあるけど、Borzilla.wavが無い!?
本体ではなく他のに入ってるのか捜索開始します

450 :デフォルトの名無しさん:03/07/08 13:59
Formを2つ作成し、Form1を上下左右に動かすと
Form2も連動し上下左右に動かす方法はないですか?
Formのイベントとか見てもそのようなものないし・・・。
宜しくお願い致します。


451 :デフォルトの名無しさん:03/07/08 14:03
ある

452 :デフォルトの名無しさん:03/07/08 15:15
>>447
BCB5では>>442の方法で出た
6は未確認

453 :デフォルトの名無しさん:03/07/08 15:39
>>450
http://www2.big.or.jp/~osamu/Delphi/builder-browse.cgi?index=012852

454 :デフォルトの名無しさん:03/07/08 17:37
MDIアプリのいいサンプルありませんか?
一応探してみたんですが、無かったので


455 :434:03/07/08 18:08
int i=100;
AnsiString buff;
buff.sprintf("Value:%d",i);
これが通って

int i=100;
AnsiString buff.sprintf("Value:%d",i);
これが通らない。なんで?

456 :デフォルトの名無しさん:03/07/08 18:09
いけね。名前そのままにしてた。

457 :デフォルトの名無しさん:03/07/08 18:12
>>455
初期化でメンバ関数呼んで普通通ると思うか?

458 :デフォルトの名無しさん:03/07/08 18:20
ふーん、そういうもんなんですか。


459 :デフォルトの名無しさん:03/07/08 18:24
>>458
もう一度C++をよく勉強しなしゃい。

460 :デフォルトの名無しさん:03/07/08 18:30
>>453
さんくす。


461 :デフォルトの名無しさん:03/07/08 19:33
http://www.zdnet.co.jp/enterprise/0307/08/epn17.html
C#

462 :  :03/07/08 19:46
C#Builderとは。
C++Builder7はまだ発売されないの?
もうすぐ金入るからBuilder6のProfessional買おうか迷ってるけど買ってすぐ7がでたらやだなー。


463 :デフォルトの名無しさん:03/07/08 20:29
MDIアプリのいいサンプルありませんか?
一応探してみたんですが、無かったので


464 :デフォルトの名無しさん:03/07/08 20:32
本買え

465 :デフォルトの名無しさん:03/07/08 20:33
どの本に載っていますか
どこで買えますか

466 :デフォルトの名無しさん:03/07/08 20:36
新規作成→その他→プロジェクト→MDIアプリケーション
の奴でいいだろ。

467 :デフォルトの名無しさん:03/07/08 21:24
>>433
CodeGuard便利っすよ。
メモリーリークの他にも危険な操作も検出してくれるようです。

468 : :03/07/09 06:20
>>467
ありがとう!
プロフェッショナル版を買おうか迷ってたけど買おうとおもいます。

469 :デフォルトの名無しさん:03/07/09 11:36
フォームのBorder StyleをbsNoneにしてフォームの
タイトルバーを消した状態でフォームの大きさを従来通りマウスで
変えたいのですが、どうすればいいのでしょうか?

470 :デフォルトの名無しさん:03/07/09 12:28
>>469
"WM_NCHITTEST" と「リサイズ」でぐぐれ。

ところで、枠が無い状態でどこを掴んだときにリサイズさせたいの?


471 :デフォルトの名無しさん:03/07/09 14:11
>>470
ウィンドウの端にマウスをもってくと枠がある時と
同様な操作がしたいもので

472 :デフォルトの名無しさん:03/07/09 14:19
あ、ダメだ・・
ググっても発見できない

473 :デフォルトの名無しさん:03/07/09 14:48
WM_NCHITTESTの説明見て理解しれ

BCBのサンプル
http://market.agr.tottori-u.ac.jp/ken/tech.html#FormSize

474 :_:03/07/09 15:08
http://homepage.mac.com/hiroyuki44/

475 :デフォルトの名無しさん:03/07/09 18:19
>>473
できました!
しかし今度はMouseDownイベントが発生しなくなってしまいました・・
WM_NCHITTESTメッセージを処理した後にデフォルトの処理を
走らせるにはどうしたらいいのでしょうか?

476 :デフォルトの名無しさん:03/07/09 18:37
TForm::Dispatch(&msg);

でもこの場合、処理した後じゃなくて前に呼ぶ。
(後に呼ぶと自分で設定したmsg.Resultが、デフォルトの処理で書き換えられるので)

477 :デフォルトの名無しさん:03/07/09 18:54
すいません。
変な例えですが、TStringListの様なクラスを配列で利用したいんですが、
初期化はどのようにしたらいいんでしょうか?
ヘッダに
TStringList *strlist[100];

とすると、初期化は?
strlist[]=new TStringList;
じゃダメですよね。

478 :デフォルトの名無しさん:03/07/09 19:02
>>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];

じゃないかな?

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

もう使わないけど。

480 :デフォルトの名無しさん:03/07/09 21:07
アスペルガー

481 :デフォルトの名無しさん:03/07/09 21:20
アスベスト

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


485 :デフォルトの名無しさん:03/07/10 00:17
>>483
WM_DROPFILESはButtonに送られるんだから、
Buttonをサブクラス化するとか、TApplication::OnMessageでWM_DROPFILESを捕らえて処理しないと。

486 :デフォルトの名無しさん:03/07/10 00:57
>>484
漏れもなったことがある。
フォームにボタン一個貼っただけなのに、保存してからコンパイルしようとすると
[リンカ 致命的エラー]が出たり。
再インスコしたら直ったけど

487 :デフォルトの名無しさん:03/07/10 01:32
>484
原因不明のエラーに対する自分なりの手順。
1)全て保存してやり直す
2)すべてのプロジェクトを再構築してやり直す
3)Builderを一度終了させてやり直す
4)OS再起動させてやり直す

個人的な経験では、再構築で直ること多し。
再インストールはやったことないな。。。

488 :486:03/07/10 01:34
>>487
漏れの場合はそれ全部やってもダメだった。
んで再インスコ

489 :買ってきたばっか:03/07/10 01:54
>488
再インスコでなおった@@;
アリガトン^^

490 :デフォルトの名無しさん:03/07/10 02:08
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 内で)が必要という意味みたいです^^;


494 :デフォルトの名無しさん:03/07/10 07:49
SYOTI_FやらSYORI_Pっていあマクロらしきもののの中身さらさんとわからん

495 :_:03/07/10 07:55
http://homepage.mac.com/hiroyuki44/

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
となっています。
中身は必要ですか?



497 :デフォルトの名無しさん:03/07/10 08:17
絶対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



503 :デフォルトの名無しさん:03/07/10 09:05
いや、だから、UNIX系のソースによく見られる _P(...)マクロと一緒でしょ。
プロトタイプが有効なときには展開され、無効(古いコンパイラ)なときには空白にするっての。
だから>>497

504 :_:03/07/10 09:06
http://homepage.mac.com/hiroyuki44/

505 :デフォルトの名無しさん:03/07/10 09:12
たぶん、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

508 :デフォルトの名無しさん:03/07/10 09:43
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 ) が必要

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

よろ..

510 :デフォルトの名無しさん:03/07/10 09:53
自分で理解できないからって、、

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

すげーむかついたから、勝手にやってくれ。

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


515 :デフォルトの名無しさん:03/07/10 10:03
定義されているのが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

519 :デフォルトの名無しさん:03/07/10 10:06
相互リンク
http://pc2.2ch.net/test/read.cgi/tech/1057580107/68-

520 :デフォルトの名無しさん:03/07/10 10:12
>>491
この情報でどうやってわかれって。

521 :デフォルトの名無しさん:03/07/10 10:14
>>520
koreigai naniga aruno?
質問に散々こたえたでしょw



522 :デフォルトの名無しさん:03/07/10 10:52
デスクトップにあるアイコンより下にフォームを表示する方法を教えて

523 :_:03/07/10 10:57
http://homepage.mac.com/hiroyuki44/

524 :477:03/07/10 12:28
TListに独自のクラスをAddで追加したんですが
その追加したクラスを取り出すとき、void*型を独自クラスの形式に変換することが出来ません。
独自のクラスに変換するにはポインタを解析して行くしかないのでしょうか?

525 :デフォルトの名無しさん:03/07/10 13:00
>>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;

527 :デフォルトの名無しさん:03/07/10 13:26
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;
これでキャスト出来ないんだけど、ドコが悪いの?

528 :デフォルトの名無しさん:03/07/10 13:29
あっ!間違えた。
StrList->Add("abcdef");
//delete StrList;

529 :デフォルトの名無しさん:03/07/10 13:47
sl=(TStringList*)List->Items[0];
こうだよん。

530 :デフォルトの名無しさん:03/07/10 13:54
それやると、メッセージ表示される前に
フリーズしちゃうんですが…

531 :デフォルトの名無しさん:03/07/10 13:56
TStringList* sl;

532 :デフォルトの名無しさん:03/07/10 13:57
あー!
List->Addしたあと、delete StrListしてました。
お手数おかけしました。

533 :デフォルトの名無しさん:03/07/10 14:00
ところで、何回も同じ変数でnewしても、
その回数だけdeleteする必要ってないんですか?

534 :デフォルトの名無しさん:03/07/10 16:47
VCLとCLXの条件コンパイルはどうやってますか?

535 : :03/07/10 19:50
今までパーソナルだったけど気に入ったからProfessional版買ってきてインストールしたけど
起動が滅茶苦茶遅くなった。ペンティアムVの733ヘルツだと重いのかな。

536 :デフォルトの名無しさん:03/07/10 20:14
要らないパッケージ外したら速くなるよ。それでも重いこた重いけどナー

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」を勧める人の方が多い気がもする。

先輩方のアドバイスを求む。

539 :デフォルトの名無しさん:03/07/11 07:20
>>538
取り敢えず、このスレの主旨から言って、やはりBCBではないかと
ちなみに、VCのスレで聞かれたらVCを進める
理由は>>538だけじゃ、何に使うか分からんし
使い方によっては、gnuで充分だったりするので

540 :538:03/07/11 08:19
聞かれる気もしていたのですがあえて明記しませんでした。
まずはフリーソフトみたいな物を作りたいです。
考えているのはHP巡回ソフトの「WWWC」みたいなソフトです。
おそらくこれが完成するのにかなりの時間がかかるでしょう。

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

こんな予定があるのですがどっちのc++がよいですかね?

541 :デフォルトの名無しさん:03/07/11 08:47
まず、無料のコンパイラをDLしてC/C++というものをある程度理解して
それからWindowsなりネットワークなりだな。

542 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/07/11 09:06
同系ソフトにVCL製の
WWWDってのもあります。

情報をたくさん集めて判断すると
より後悔しない選択が出来るんじゃないかな。

543 :デフォルトの名無しさん:03/07/11 09:07
そうだな。
フリーの環境 BCC55/Delphi/Java落としていろいろやってみてから 有償のものを買えばいい。

よく、お金出した方が真剣になるからなんて言い方する奴がいるが、
そんなものは幻想だ。

544 :デフォルトの名無しさん:03/07/11 17:15
coutやcerrに出力してるソースがありますが、
それらを標準入出力でなく、TMemoとかに出したいでつ。
BCBで出来ますか?

545 :544:03/07/11 17:32
というか、
「cout << "Hello world." << endl;」
が、どこにも表示されません。

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



546 :デフォルトの名無しさん:03/07/11 17:36
それは君の心の中にあるのです。

547 :デフォルトの名無しさん:03/07/11 18:32
>>545
コンソールアプリケーションを選択すれば出力される。

548 :デフォルトの名無しさん:03/07/12 01:53
AnsiStringってもしかして怖い?

549 :デフォルトの名無しさん:03/07/12 01:55
>>548
どういうこと?

550 :デフォルトの名無しさん:03/07/12 01:56
普通に使ってるZE!

551 :デフォルトの名無しさん:03/07/12 02:11
>>548
怖くはないよ。すごく便利。

552 :デフォルトの名無しさん:03/07/12 07:59
BCB3proにあったSQLビルダー、
BCB4以降Enterpriseにしかつかなくなったけど
proで使えるSQLビルダーないですか?

553 :デフォルトの名無しさん:03/07/12 08:10
>SQLビルダー

って何するもんですか?

ウィザード形式で、

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

→SELECT hoge FROM huga WHERE nullpo

みたいな?

554 :デフォルトの名無しさん:03/07/12 08:21
そう。
またプログラム実行しなくても、
SQLビルダー内でクエリの結果も表示できるし
その結果をエクセルなどに簡単にコピペできたので
ちょっとした抽出なんがすごく便利だった。
おまけに、そのSQL文もウィザード形式で
作ってくれた。
だからBCB3以降使ってない。
SQLビルダーの復活を願いたい。

555 :538: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回取得されるんでしょうか?
それとも、同アドレスの変数が初期化されるだけでしょうか?

557 :デフォルトの名無しさん:03/07/12 16:42
同アドレスの変数が初期化?
意味はワカランが、とりあえずメモリリークしてる。

558 :デフォルトの名無しさん:03/07/12 16:43
>>556
2回別々に確保され、一回目のものはリークして2回目のものだけ開放される

559 :デフォルトの名無しさん:03/07/12 16:47
やっぱり…
TListにドンドン追加してるんだけど、
追加し終わったあと(例えばTStringList)Deleteするとフリーズしてしまうんですが。
どうも、TListがコピーされたはずの物を参照せずに、コピー元ばかり見ているようなそんな気がします。
これじゃTListの意味がワカランのですが?

560 :デフォルトの名無しさん:03/07/12 16:54
>追加し終わったあと(例えばTStringList)Deleteするとフリーズしてしまうんですが。

ソース出せ。お前の日本語ではらちがあかん。

561 :デフォルトの名無しさん:03/07/12 16:58
>>559
コピー・・?
ポインタはいくらコピーしても指す先の同じものしか参照しないし
TListに格納するのはポインタなわけだが・・

562 :デフォルトの名無しさん:03/07/12 16:59
>TListに格納するのはポインタなわけだが・・

と、言うことはTListはポインタのポインタと言うことですね?


563 :デフォルトの名無しさん:03/07/12 17:11
>>562
>>560

564 :デフォルトの名無しさん:03/07/12 17:17
TListだけをdeleteしてたりして

565 :デフォルトの名無しさん:03/07/12 17:18
ボーランドのTListの例です。
new して追加した後、deleteしてないんですが…

566 :デフォルトの名無しさん:03/07/12 17:18
>>565
気のせいでしょう。

567 :デフォルトの名無しさん:03/07/12 17:19
!ごめんなさい。
forの所削ってました。(w

568 :デフォルトの名無しさん:03/07/13 00:45
>>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'になる

570 :デフォルトの名無しさん:03/07/13 00:47
あ、順番を
strcpy(shitai.hoge,"hogehoge");
strcpy(shitai.chinko,"chin");
したらOKだ。


勉強しなおしてきまつ。

571 :568:03/07/13 00:56
>>569
そうでした。ありがとうございました。
今、ソケットで上記shitai を送信して受信してるのですが、
受信先でかならずある特定のcharの頭が'\0'になるのに悩んでるのですが、
手がかりを見つけたようです。
ただ。。送信直前では'\0'は入ってないんです。もっかい見直しマス。

572 :デフォルトの名無しさん:03/07/13 01:07
>今、ソケットで上記shitai を送信して受信してるのですが、
冗談はよせよ。あまりおじさん達をからかうなよ。

573 :pp:03/07/13 02:48
>>572
横レス
冗談といいますとpp(興味津々)


574 :538: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;しなくていいんですよね。

576 :デフォルトの名無しさん:03/07/13 13:29
たしかにthisが開放されるときに勝手に開放されるが、それまでは残りっぱなし。

577 :デフォルトの名無しさん:03/07/13 13:34
手動作成の一時的なダイアログ用なので
それだけ教えていただければ十分です。

578 :デフォルトの名無しさん:03/07/13 14:30
>たしかにthisが開放されるときに勝手に開放されるが、

されるか?


579 :デフォルトの名無しさん:03/07/13 14:53
TButtonを貼り付けnew TTimer(Button1)ってな感じでButton1を親にしてTTimerを動的に作成。
TTimerのイベントを適当に設定するとそのイベントが発生するが
Button1.OnClickで親であるButton1を開放するとTTimerも開放されイベントが発生しなくなる事が確認できる。

580 :デフォルトの名無しさん:03/07/13 14:53
>>578
される

581 :デフォルトの名無しさん:03/07/13 14:54
開放→解放 気づかなかった(汁

582 :デフォルトの名無しさん:03/07/13 14:55
ヘルプでTComponent::Owner見りゃわかる

583 :デフォルトの名無しさん:03/07/13 16:53
newで構築したインスタンスをFree()メソッドで開放してもいいんですか?

584 :デフォルトの名無しさん:03/07/13 17:05
ヘルプに従ったほうがいんでない。

585 :デフォルトの名無しさん:03/07/14 01:12
>>572
冗談?
・・・・・。
Socket->SendBuff(&shitai,sizeof(sitai));

これは冗談の類なのでしょうか・・・・?


586 :デフォルトの名無しさん:03/07/14 01:17
585=568でした。

冗談な理由を教えていただきたいです。
送受信できてるのが冗談なら別の方法を考えますので・・・・。


587 :デフォルトの名無しさん:03/07/14 01:24
>>586
まあ、一般的に構造体というメモリイメージを直接送受信するのは
・バイトオーダー(エンディアン) (主にCPUの違い)
・アライン (コンパイラ、コンパイラ設定の違い)
・その他の内部表現 (浮動小数点や文字コードなど)
の不一致が問題を起こすから、そのプロトコルを使い続けていくと
いろいろ困ってくる。

588 :デフォルトの名無しさん:03/07/14 01:34
>>587
レスありがとうございます。
挙げて頂いた注意点は気をつけてます。
では、固定長のバイナリデータを受信側で構造体に落とす、という使い方では
なにか不具合があるでしょうか?送信側では構造体で定義していないという前提で。


589 :デフォルトの名無しさん:03/07/14 01:46

あ、受信側のコンパイラのアラインは1です。

590 :デフォルトの名無しさん:03/07/15 00:22
Win2kSP4+BCB6ProUPD#4です
QuickReportファイル(*.qrp)をPDFに変換するライブラリなりコンポーネントなりは無いものでしょうか

591 :デフォルトの名無しさん:03/07/15 00:46
Delphiで作ったdfmファイルはそのままC++Builderで使えますか?

592 :デフォルトの名無しさん:03/07/15 01:35
>>590
アクロバット(リーダーじゃないやつ)で印刷させる・・・・・。
ってのはだめですか?w


593 :デフォルトの名無しさん:03/07/15 08:28
>>591
dfmだけでなく、pasファイルとセットでプロジェクトに組み込めます。

594 :590:03/07/15 09:02
>>592
いやぁ、フリーウェアなんで一緒に配布できるものがいいんですけどね・・・
それに別操作をユーザに強いるのもどうかと


595 :山崎 渉:03/07/15 09:35

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

596 :デフォルトの名無しさん:03/07/15 12:26
アレの方法を教えてくれ

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とかは一文字分にして読み込んでくれてるよね?
いわゆるテキストモードとか言うやつだよね。

599 :598: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ビルダもない様だし。

602 :デフォルトの名無しさん:03/07/15 21:44
Builder6のInterbaseコンポーネントで質問があります。

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

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

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

603 :デフォルトの名無しさん:03/07/15 23:43
>>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(); // メモリリークが報告されない
}


604 :509:03/07/16 02:14
>>603
おお、確かにTObjectから継承したやつは報告されませんでした。
TStringStreamはTObjectから継承してたからなのかな?
でもCodeGuradにそんな設定は見つけられないんだけどどっかにあるのかな?
それとも仕様なの?
他の人はどうなんでしょう。


605 :デフォルトの名無しさん:03/07/16 09:54
アウトルックの左側についてるようなメニューのコンポーネントはないですか?

606 :デフォルトの名無しさん:03/07/16 12:19
TListView

607 :デフォルトの名無しさん:03/07/16 14:47
いま会社でC++Builder使ってるのですが、1からわかるような良い書籍はありますか?
池袋のビックピーカン覗いてもC++Builderの本が5冊ぐらいしかなかったので・・

608 :デフォルトの名無しさん:03/07/16 15:37
>>607
C++の本と、VCLについてはDelphiの本を読むとよい。
C++Builderについての良書はほとんどないですから。

609 :デフォルトの名無しさん:03/07/16 15:53
>>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/

610 :607:03/07/17 11:01
>>608
Delphiですか。C++Builderの本はホントにないですよね・・・

>>609
よさげなんですが、英語は読めないので・・・
英語ほうがしっかり書いてあるというはわかるんですが

611 :デフォルトの名無しさん:03/07/17 11:29
>>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
つまり、三回重ね塗すると透過領域になる???
今まで、このような事態に遭遇したことはなかったのですが・・・

連続投稿すみません(^^;

615 :デフォルトの名無しさん:03/07/18 10:27
フォームを透明にできますか?
フォームにラベルをのせてそのラベルの文字だけが表示されるみたいなことを
したいので、ご存知の方宜しくお願いします。

616 :デフォルトの名無しさん:03/07/18 11:28
それは透明にするんではなくて
不定形リージョンで出来そうなんだけど。
ぐぐってみ。

617 :デフォルトの名無しさん:03/07/18 11:29
今思ったんだけど、例外処理で
try{
}catch(...){}
と、例外の種類を設定するところで【...】とすれば
どんな種類の例外でもキャッチできるわけ?
俺どっかでこの【...】を使ってたの見てずっとこうしてんだけど
どうなの?

618 :デフォルトの名無しさん:03/07/18 11:44
>>614
bool TCustomForm::TransparentColor
TColor TCustomForm::TransparentColorValue

619 :デフォルトの名無しさん:03/07/18 12:00
>>617
言語ガイド嫁

620 :デフォルトの名無しさん:03/07/18 12:07
>>616
ビットマップではできるんだが、ラベルも可能?

621 :デフォルトの名無しさん:03/07/18 12:14
TStaticTextをParentWindow = NULLにして透過させればいいんじゃない?

622 :デフォルトの名無しさん:03/07/18 13:03
>>621
すんません、C++Buier1使ってます
他のコンポで代用可能なのあるますか?

623 :デフォルトの名無しさん:03/07/18 13:10
>>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とかあったら教えて下さい

627 :デフォルトの名無しさん:03/07/18 13:51
>>625
PlatformSDKなりbcc5.5.1なりからヘッダファイル持ってくれ

628 :デフォルトの名無しさん:03/07/19 15:53
BCB5で黙ってこれ使っとけ!っていうDirectX9.0aのコンポーネントない?
ライブラリの改変やヘッダファイルの改変いらずですぐ使えるやつね

629 :デフォルトの名無しさん:03/07/19 16:01
>>628
無い!




























と言ったら?

630 :デフォルトの名無しさん:03/07/19 22:34
BCBでVirtualTreeviewってコンポーネント使ってる人いない?
Delphiでは普通に動くのに、BCBではインストールでつまづく。
対応してるって書いてあるのになぁ。もう少し互換性マシにならないかなぁ。

631 :デフォルトの名無しさん:03/07/19 22:47
>>630
じゃあ自分で作る鳴りソースいじるなりしろや、ボケ。

632 :デフォルトの名無しさん:03/07/19 22:49
社員がキレたw

633 :デフォルトの名無しさん:03/07/19 23:24
BCBのランタイム集borlndmm.dll,cc3260mt.dll,rtl60,stlpmt45.dll,
vcl60,vcl60.bplてありますよね。普通、BCB持ってない人のために、
入れておくものですけど、これて、提供するソフトに入れても差し支え
ないのですかね。なんか、著作権違反しそうでやばそうですよね。
もともと、ボーランドのbinディレクトリーに入っているものですし、
勝手にこれらの物って、使用してかまわないんでしょうか。
よろしくお願いしま〜〜す。

634 :デフォルトの名無しさん:03/07/19 23:31
>>633
聞く前に添付文書読め

635 :デフォルトの名無しさん:03/07/20 00:03
>>631=>>634 はカルシウム不足

636 :デフォルトの名無しさん:03/07/20 00:10
添付の文章なんかないですが。似たようなのにフリーソフトのパックに、
5.1のやつはあるようですが。BCB6に対応したものなのですが。また、Bin
ディレクトリーから、拝借した物なのですが。まあ、これなくても動くみ
たいですが。コードウォリアーズも、似たようなランタイムがセット
出来るみたいですが。いくらプログラムしても、これないとだめという話
なのですが、著作権はありますし。よく、わかりません。

637 :デフォルトの名無しさん:03/07/20 00:15
VirtualTreeviewとやらは、あっさりインスコできたぞ。(BCB6)

638 :デフォルトの名無しさん:03/07/20 00:25
インスコしたディレクトリにある deploy.rtf とか読めばいんでない >ランタイムの配布

639 :デフォルトの名無しさん:03/07/20 00:30
>>636
割れ物かよ

それはともかく文書と言われて紙の文書しか思い浮かばないとか?


640 :デフォルトの名無しさん:03/07/20 00:33
よんでみまつ。とうもありがとう。ランタイムの配布の項目
あるんでしたね。・・・・

641 :デフォルトの名無しさん:03/07/20 11:20


642 :デフォルトの名無しさん:03/07/21 09:21
BCB6ProにVBのInstrRevに相当する関数ってありますか?

643 :デフォルトの名無しさん:03/07/21 09:26
>>642
Delphiには(Ansi)StrRScan()なる物があるからあるんじゃないか?
案外便利だよな。アレ。

644 :デフォルトの名無しさん:03/07/21 09:32
>>642
char *相手ならstd::find_endとか


645 :642: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

649 :デフォルトの名無しさん:03/07/22 00:47
>>647
QuickReportを使うか
RichEditにキャラクタを使って擬似テーブルを作って印刷するか・・・

650 :デフォルトの名無しさん:03/07/22 12:32
なあそろそろ>>626を教えてくれよ

651 :デフォルトの名無しさん:03/07/22 13:18
>>650
全然簡単じゃないがOLE使えば出来る。
WSHでやった方が良いと思うが。

652 :デフォルトの名無しさん:03/07/22 13:43
>650
前から微妙に気になってるが使ったことはない↓良さげなら教えてくれ(w
http://www.vector.co.jp/soft/win95/prog/se275929.html
http://www.vector.co.jp/soft/win95/prog/se231565.html

653 :デフォルトの名無しさん:03/07/22 13:49
>>626
[プロジェクト]-[タイプライブラリの取り込み]でダイアログ表示して
Microsoft Excel ... を選択して、ユニットディレクトリ選択して
ユニット作成でエクセル使えるラッパークラス作成できる。

654 :デフォルトの名無しさん:03/07/22 14:49
オリジナルクラスが格納しているデータをディスクに保存したいんですが
TStream系のクラスを利用して出来るんでしょうか?
その前に、ストリームにクラスの内容を書き込む方法がわかりません。
誰か教えて。

655 :_:03/07/22 14:50
http://homepage.mac.com/hiroyuki44/hankaku06.html

656 :デフォルトの名無しさん:03/07/22 14:54
>>561
いやOLEとかWSHとかもうわからないんで
>>652
おっとこれってコンポーネントじゃなしにDLLなら使ってみるかな
>>653
ほほぅ、これって始めて見た。
ラッパークラス作った後はどう操作するんだろうか・・
これもあとでためしてみよう

みなさん、ありりん

657 :デフォルトの名無しさん:03/07/22 15:16
OpenDailogにラベルやEditボックスを追加したいんですが
どうすれば実現できますか?

658 :デフォルトの名無しさん:03/07/22 16:12
>>657
ちょっとはさがせって
http://www.google.co.jp/search?num=20&hl=ja&ie=Shift_JIS&c2coff=1&q=%83R%83%82%83%93%83_%83C%83A%83%8D%83O+%8Ag%92%A3+C%2B%2B&lr=lang_ja
http://www.mahoroba.ne.jp/~makkie7/BCB/

659 :デフォルトの名無しさん:03/07/22 16:18
BC6で作成したアプリはmanifestファイルを使ってLuna対応にできるのでしょうか。
BC5ではTListviewをレポートモードにして使っているとダメだったのですが、
BC6+Update#4ではOKですか?

660 :_:03/07/22 16:24
http://homepage.mac.com/hiroyuki44/hankaku06.html

661 :デフォルトの名無しさん:03/07/22 16:30
>>659
Delphi7ならOKですよ。

662 :デフォルトの名無しさん:03/07/22 16:44
>>661
Delphi7相当なのはきっとC++ Builder7ですよね。出るのか知りませんが。
C++ Builder6はダメなのかな。

663 :_:03/07/22 16:47
http://homepage.mac.com/hiroyuki44/

664 :デフォルトの名無しさん:03/07/22 17:04
Delphi7のVCLをC++Builderに移したりって出来るの?

665 :デフォルトの名無しさん:03/07/22 17:14
BCBのヘルプ見にくいんですけど・・・

666 :デフォルトの名無しさん:03/07/22 17:19
>>654は無視ですか?

667 :デフォルトの名無しさん:03/07/22 17:52
>>666
はい

668 :デフォルトの名無しさん:03/07/22 18:02
>>658
いやそれ系はググってアレしたんだけれども
コンポをインスコせずに自分でやりたいのですが
その方法を載ってることってどこでしょうか?

669 :デフォルトの名無しさん:03/07/22 18:18
>>668
ソースみりゃいいだろ。

670 :デフォルトの名無しさん:03/07/22 19:38
ここは夏厨のスクツのイソターネトですね

671 : :03/07/22 20:21
コンポーネントパレットが表示されないようになってしまったのだけど、
なんとか直す方法ないですかね。

672 :デフォルトの名無しさん:03/07/22 22:44
氏ねば

673 :デフォルトの名無しさん:03/07/22 23:41
初めまして。5.0を使い始めた者なんですが、実行結果が表示されないんですけど・・・。
form1という何も表示されないウィンドが表示されるだけなんですけど。
別に多機能を使いたいわけではないので、基本的なコンパイルと表示ができれば満足なんですが。
どなたかご教授してもらえませんか?

674 :デフォルトの名無しさん:03/07/22 23:57
↑はどうする?


675 :デフォルトの名無しさん:03/07/22 23:57
まず、コンソールウィザードを使ってコンソールアプリのプロジェクトを作りましょう。

676 :673:03/07/23 01:29
できました!
でも今度は実行結果の表示時間が決められません・・・。
自分はまだ簡単なプログラムしか組めないので。
例えば・・・
{
printf("a\n");
}

だとaが一瞬表示されるだけで終わってしまいます。
ずっと表示させとくことはできないんでしょうか?


677 :デフォルトの名無しさん:03/07/23 01:57
最後の方に、getch()でも入れておきましょう。

678 :デフォルトの名無しさん:03/07/23 02:24
Borland C++Builder を買おうと思ってるんですが・・・。
Personalでいいんですよね?
ProfessionalとかEnterpriseとかは仕事に使う人向けってことですか?
いやに高い気が・・・。

679 :デフォルトの名無しさん:03/07/23 02:44
入門ならpersonalでも十分
Personal>Professonal>Enterpriseの順に添付されているコンポーネント数や
データ―ベースサポート等が増える。

PersonalになくProfessonal以上に有るコンポーネントでも
フリーのものが結構出回ってることが多いはづ

680 :673:03/07/23 02:46
>>677
そうですね。わざわざどうも!

681 :デフォルトの名無しさん:03/07/23 03:03
エディタの一発ジャンプが…ライブラリよりこっちが重要。>>Pro

682 :デフォルトの名無しさん:03/07/23 03:40
一発ジャンプって何?

683 :デフォルトの名無しさん:03/07/23 04:06
宣言部と実装部を行ったり来たりしたり、
型や関数をCtrl+Clickで定義部分にジャンプしたり、
関数の宣言を書いてShift+Ctrl+Cで空の実装部を書き込んでくれたり。

684 :デフォルトの名無しさん:03/07/23 11:59
フォームにタイマーをセットして時間が来たらフォームをアクティブにしたいのですが
どうやったらいいのでしょうか?エクスプローラなどを上に置いておいて
時間が来たらそのエクスプローラより上に表示したいのですが
よろしくおねがいします

685 :デフォルトの名無しさん:03/07/23 12:30
>>684
タイマーイベントで↓のSDK版の関数にフォームのハンドルを渡して呼ぶ。
http://techtips.belution.com/ja/vc/0012/

686 :デフォルトの名無しさん:03/07/23 12:36
>>685
お答えどうもです。
SetForegroundWindowは既に試していたのですが、どうにも最上位に
表示してくれませんでした。ちなみにForm1は非表示にして>>684はForm2で
行っているのですが、そこら辺がうまくいかないのと関係しているのでしょうか?

687 :デフォルトの名無しさん:03/07/23 12:50
うまくいかなかった理由と解決方法が>>685のページに書いてあるでそ。

688 :デフォルトの名無しさん:03/07/23 12:56
>>687
すまん、さっきちゃんと読んだら何か書いてた。ありりん

689 :デフォルトの名無しさん:03/07/23 17:42
線を描きたいんだけどどうすればいいの?わけわからん。


690 :デフォルトの名無しさん:03/07/23 18:01
Shapeでも使ってろ

691 :デフォルトの名無しさん:03/07/23 19:51
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);
}
//------------------------------------

よろしくお願いします。

693 :デフォルトの名無しさん:03/07/24 15:39
>>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));
}


695 :692:03/07/24 15:54
>>693
ありがとうございます
それ、やってみたんですが、やはり遅いです。
AnsiStringで一文字ずつというのは遅いようです。char*でやれば早いのかも

>>694
ありがとうございます
十分早いです。それで行きます。

696 :デフォルトの名無しさん:03/07/24 16:13
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);

なら、一瞬でおわるど。

697 :デフォルトの名無しさん:03/07/24 16:14
'0' → '\0' だ

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

やはりこういった処理はAnsiStringではなくchar*なんですね、勉強になりました。
ありがとうございました。

699 :692:03/07/24 17:57
AnsiStringがどうたらだけでなく、自分自身の領域の中で前に詰めていき、最後に後ろを切って捨てるってことですよね。
他の領域を使わないから、また更に早いと思っていいでしょうか?
ループの中でクラスを呼んでないことが一番効いているのだとは思いますけど。

700 :デフォルトの名無しさん:03/07/24 18:01
ああそっか、AnsiStringのc_str()の戻り値は
const char*じゃなくてchar*だったっけ・・・。

701 :デフォルトの名無しさん:03/07/24 18:05
>>699
> 自分自身の領域の中で前に詰めていき、最後に後ろを切って捨てるってことですよね。
たとえばstd::removeがとってる手法もこれだね。
こっちは後ろを「切って捨てる」のではなく、「新しい最後尾」を指すポインタなり
イテレータなりを返す仕様だけど。

702 :デフォルトの名無しさん:03/07/24 18:14
ループのたびに'\0'の位置を検索したり、文字の長さを変えたりすれば
そりゃあ時間かかるよな。

'\0'の位置がまとまってなくてランダムな配置なら、
悲惨なほど時間がかかる。(250KBで試してるけど、いつまで経っても終わらない)

703 :692:03/07/24 18:18
>>701
c⌒っ*゚ー゚)っφ メモメモ...

>>702
>ループのたびに'\0'の位置を検索したり、文字の長さを変えたりすれば
仰せのとおりですね、毎回関数を呼んでいるからか・・・

704 :692:03/07/24 18:22
C/C++を知らずにいきなりBCBで始めたものでVCLにドップリ溺れています。
もっとポインタを活用することを学ばねば・・・

705 :デフォルトの名無しさん:03/07/24 21:27
classをnewしてsizeofすると何故かどのクラスでも
4しか取れないんですけど、コレってどういうことですか?

706 :デフォルトの名無しさん:03/07/24 21:45
ポインタ変数のサイズ

707 :デフォルトの名無しさん:03/07/24 22:29
次は、「じゃあどうやってクラスをファイルに書き込めばいいんですか!」かね?

708 :デフォルトの名無しさん:03/07/24 23:53
>>707
public変数をそのまま書けばいいんじゃねーの?

709 :デフォルトの名無しさん:03/07/25 00:29
>>707

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

ファイルから読み書きできるようにしたいクラスをここから継承して実装書く。

710 :デフォルトの名無しさん:03/07/25 12:12
>>705
最適なスレッドかホームページがありそうですが、知らないので。

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

たぶん。

711 :デフォルトの名無しさん:03/07/25 13:29
現在、メインForm(Unit1)からサブForm(Unit2)を
複数呼び出そうとしています。
複数、表示することは可能なのですが、
サブForm毎に制御することが出来ません。
良い方法はないでしょうか?
宜しくお願い致します。



712 :デフォルトの名無しさん:03/07/25 14:41
> サブForm毎に制御
何のこっちゃ

713 :デフォルトの名無しさん:03/07/25 14:45
サブ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プロパティをループ回して参照するだけでも良いけど。

714 :デフォルトの名無しさん:03/07/25 14:49
Screen->Forms

715 :デフォルトの名無しさん:03/07/25 15:38
>>712
分かりづらかったですかね。
簡単に言うと、Main画面はSub画面を呼び出す。
Sub画面はボタンにより、Formサイズの変更を行ったりします。
この動作を、MainからSubを複数、呼び出し、
Sub毎に制御を行いたいのですが、上手く動いてくれないのです。

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



716 :デフォルトの名無しさん:03/07/25 17:01
制御て何

717 :デフォルトの名無しさん:03/07/25 17:08
>>716
動作をさせることです。

718 :デフォルトの名無しさん:03/07/25 17:20
漏れ的解釈

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();
}

719 :デフォルトの名無しさん:03/07/25 17:48
>>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のどっちにとられるんですか?

723 :デフォルトの名無しさん:03/07/25 18:21
>>722
処理系依存。

724 :デフォルトの名無しさん:03/07/25 18:22
>>723
ここはC++Builderスレな罠。


725 :デフォルトの名無しさん:03/07/25 18:31
>>724
おお、そうだった(笑)
ビットフィールドのビットレイアウトを想定した記述はすべきでないから
どっちから詰められるかを意識したこともないわけだが、
いざ調べてみるとヘルプみても標準の処理系定義項目の設定内容がどこにあるのかわからん・・


726 :724:03/07/25 18:33
>>725
> ビットフィールドのビットレイアウトを想定した記述はすべきでないから

はげどう つーか鉄則か。

727 :デフォルトの名無しさん:03/07/25 18:52
ん?マジで?なんで?

728 :デフォルトの名無しさん:03/07/25 21:07
メモリの少ない組込系ですら使ったことないんだが、
BCBでビットフィールドをあえて使う理由ってあるの?

729 :デフォルトの名無しさん:03/07/26 00:42
ビットごとに決められているデータ(ヘッダとか)を扱いやすい。

730 :デフォルトの名無しさん:03/07/26 08:22
>>729
それ、ビットフィールドのビットレイアウトを頭に入れないと・・・。

731 :デフォルトの名無しさん:03/07/26 14:55
あえて使う理由→データがものすごく巨大になる時
数理計画とかやってるとすごいことにる。


732 :デフォルトの名無しさん:03/07/26 23:47
>>729
C++ならビットレイアウトをクラスで隠蔽して、クラス内部でビット演算
すりゃいいじゃんと言うか正攻法だと思うんだけど。

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

733 :デフォルトの名無しさん:03/07/26 23:55
>>732
>せいぜい数百Mのデータ

・・・紙テープ換算か何か?ああ、DATか。

734 :デフォルトの名無しさん:03/07/27 00:56
>>733
こういう突っかかり方も珍しいな

735 :デフォルトの名無しさん:03/07/27 01:22
>>734
そっとしといてやれ。
常人の「寒い」が彼の「鋭い」なんだ。

736 :デフォルトの名無しさん:03/07/28 13:13
ようするに>>728-735ら辺ってファイルI/Oが下手でFA

737 :_:03/07/28 13:14
http://homepage.mac.com/hiroyuki44/jaz04.html

738 :_:03/07/28 13:16
http://homepage.mac.com/hiroyuki44/

739 :デフォルトの名無しさん:03/07/28 13:24
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なんてうんこは眼中にない

743 :デフォルトの名無しさん:03/07/28 15:29
VC買ったんだけどWIN98じゃ動かなかった…

744 :デフォルトの名無しさん:03/07/28 15:36
>>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もうんこ。このメーカー自体うんこだから( ´,_ゝ`)

747 :デフォルトの名無しさん:03/07/28 16:03
>>746 お前がうんこ

748 :デフォルトの名無しさん:03/07/28 16:09
>>745
deleteに変数並べるのはじめて見たけど、
それだとbmp2のデストラクタが呼ばれないみたいよ。

749 :745:03/07/28 16:27
>>748
あ〜、そうだったんですか。
ありがとう。
deleteのとこでなんか違和感を感じてたら…

750 :デフォルトの名無しさん:03/07/28 19:25
>>747=うんこ

751 :デフォルトの名無しさん:03/07/28 19:52
くせースレだなおい

752 :デフォルトの名無しさん:03/07/28 20:52
ということは俺って事か

753 :デフォルトの名無しさん:03/07/28 23:13
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++でやりたいんですけどうまくいかないです。
どうすれば良いんですか?

754 :デフォルトの名無しさん:03/07/28 23:28
コンストラクタで仮想関数呼んでも派生クラスのは呼んでくれないよ。
Initメソッドで初期化しないで、TTestA,TTestBにコンストラクタ作って、
そこで初期化しないと。

755 :デフォルトの名無しさん:03/07/28 23:31
コンストラクタの呼び出し順(=仮想関数の決定順)がC++とobject pascalで違うからね。
言語ガイドに詳しく書いてある。

756 :デフォルトの名無しさん:03/07/28 23:43
みんなデストラクタって何書いてる?
俺はとくに書くことがないんだが・・・

757 :デフォルトの名無しさん:03/07/28 23:51
>>756
仮にコンストラクタでなんかの変数やクラスをnewすることがあっても、君はdeleteすることなく放置か?

758 :デフォルトの名無しさん:03/07/29 04:03
>>757
初心者なのでまだnewって使ったことないっすw そっか、deleteするときに使うんだね・・

759 :デフォルトの名無しさん:03/07/29 05:00
>>758
逆の気が…

760 :デフォルトの名無しさん:03/07/29 05:47
初心者なのでまだdeleteって使ったことないっすw そっか、newしたときに使うんだね・・

761 :デフォルトの名無しさん:03/07/29 06:23
>>759
deleteがしたくてしたくてたまらないからnewするんだよ!
悪いかよ!

762 :デフォルトの名無しさん:03/07/29 06:28
デストラクタを使いたいからdeleteする
でもdeleteするモノがないからnewする

763 :デフォルトの名無しさん:03/07/29 06:39
小4くらいのとき、マンコが穴だなんて思いもしなかった。
が、年の離れた兄貴のいる加戸は
「ヤッターマンコーヒーライター」
などという言葉を知っているいわば勇者的存在であった。
で、穴があることを知った俺たちだが、どうしてもそれが信じられない。
で、むしろ逆にガキであることを利用して調べようと思った。
ターゲットは音楽の教師である。美人だった。今にして思えば
20歳くらいだったのではないだろうか。短大出てすぐだったように思う。
実行はいたって単純。ガキ特有のカンチョーというあれである。
あれを前に突き刺すというのだ。
ガキなら許されるであろうという勝手な発想だが、
たしかにマンコすら知らない奴がほとんどだったからナイスな判断だったろう。
で、実行は加戸だった。
加戸はなんの躊躇もなくやった。
思い切り。
思い切ってやっちゃいかんだろ、と思った。なぜにおまえはフルパワーなのだ、と。
音楽教師は泣いた。20歳前後という年齢を考えればギャグでもきつい。
ガキからすれば大人だったのだが、今思うと娘だ。
むしろ、処女だった可能性すらある。すまん先生。
が、加戸も泣いていた。
両手人差し指骨折だった。第2関節より下で折れていた。
もろに刺さったんだと感心した。やはり勇者だ。
しかも、救急隊員に、マンコに指が刺さって折れましたと泣きながら事情を説明していた。
あの姿も相当かっこよかった

764 :デフォルトの名無しさん:03/07/29 13:19
つかデストラクタでdeleteすんなら、そのクラスはなくなるんだから
わざわざdeleteしなくてもいいんじゃねえの?
一緒にdeleteされるべ?

765 :デフォルトの名無しさん:03/07/29 13:25
されねーよ

766 :デフォルトの名無しさん:03/07/29 13:32
TDatabaseのログインプロンプトが開かないんですがなんでですかね。
Database1->LoginPrompt = true;
ですが。

767 :デフォルトの名無しさん:03/07/29 13:39
>>765
あら

768 :766:03/07/29 15:06
Delphiのdblogdlg.pas/initializationが走ってないのが原因みたいですが、
BCBからinitializationをどうやって走らせるのやら。

769 : :03/07/30 02:43
クールバーにコントロール(いちばん簡単なボタンを試してみた)を2個置くと2列になってしまって
ボタンがウィンドウの幅一杯に広がってしまいます。
小さくして2個とも一列に表示しようと思ってボタンをリサイズしても自動的ににウィンドウの幅一杯に広がってしまいます。
どうしたらいいのですか?

770 :デフォルトの名無しさん:03/07/30 03:06
クールバーにツールバーとかパネル置いてから、そこにボタンを2個置くとか

771 :デフォルトの名無しさん:03/07/30 03:06
質問です。
今BCB4PROでGUIのソフト作ってます。
ClipCursorでマウスの移動範囲を制限したいのですが、
SetCursorPosやmouse_event、ShowMessageなんかでも制限が勝手に解除されてしまいます。
これらの関数を実行しなければ制限は有効なままなのですが、
制限した後にmouse_eventでマウスクリック処理などをするため困っています。
何か前もって実行しなければならない関数などあるのでしょうか。


772 :_:03/07/30 03:07
http://homepage.mac.com/hiroyuki44/2ch.html

773 :デフォルトの名無しさん:03/07/30 13:21
C++Builer1で質問ですが
フォーム右クリでポップアップメニューを設定してそのメニューで「前面」項目があって
それをチェックされるとFormStyle = fsStayOnTopとして、外れると FormStyle = fsNormal;
としているのですが、うまく動作しません。
デバッガでステップ実行してるとちゃんと前面になるのですが、普通に実行すると前面になりません
なにが原因なのでしょうか?

774 :769:03/07/30 16:59
>>770
TCoolBandのBreakプロパティをfalseにするのを忘れてました。すいませんでした。

775 :デフォルトの名無しさん:03/07/30 17:41
>773
少なくともうちのBuilder5のヘルプには
>注意実行時に FormStyle の値をなるべく変更しないでください。
って書いてあるよ。実行時に制御するためのプロパティじゃないでしょう。
素直にTControl::BringToFrontとかAPIのBringWindowToTop(HWND)で
Zオーダー変えるんじゃ駄目なの?

776 :デフォルトの名無しさん:03/07/30 17:46
なるべくて

777 :デフォルトの名無しさん:03/07/30 19:37
>>775
実行時に使うなとは書いてないんですね( ´,_ゝ`)

778 :デフォルトの名無しさん:03/07/30 22:42
>>775
俺の経験。FormStyle を実行時に変更したら、
ファイルのドラドラを受け付けるようにする DragAcceptFiles() の
効果が切れたよ。

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

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

779 :デフォルトの名無しさん:03/07/30 23:10
>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では前面にきてくれないです・・
これフォームが前面にできない要因が考えられるとしたら
どのようなことでしょうか?

783 :デフォルトの名無しさん:03/07/31 10:46
>>782
日頃の行い

784 :デフォルトの名無しさん:03/07/31 11:43
じゃあ更に
Application->BringToFront();
してみるとか。


785 :デフォルトの名無しさん:03/07/31 12:11
>>784
色々ありがとうございます。
しかしダメでした・・
んー何が影響してるのかなあ

786 :デフォルトの名無しさん:03/07/31 12:27
>>785
日頃の行い

787 :デフォルトの名無しさん:03/07/31 13:33
VC++という選択肢があるのにわざわざBuilderを選ぶやつはバカ

788 :デフォルトの名無しさん:03/07/31 13:41
Windowsという選択肢があるのにわざわざ携帯電話を使うやつはバカ

次は?

789 :デフォルトの名無しさん:03/07/31 13:48
バイオハザードという選択肢があるのにわざわざゴースト・オブ・マーズを選ぶやつはバカ

790 :_:03/07/31 13:49
http://homepage.mac.com/hiroyuki44/

791 :デフォルトの名無しさん:03/07/31 14:12
VC++なんてウンコなものを使う奴はウソコマミレでバッチィ

792 :デフォルトの名無しさん:03/07/31 14:29
>>791
まあまあ、>>787は汚物だから

793 :デフォルトの名無しさん:03/07/31 14:39
VC++>>>>>>>>>>>>>>>>>>>>>>>>>C++Builder

794 :デフォルトの名無しさん:03/07/31 14:42
相手にしねぇでくれ。荒れる。

795 :_:03/07/31 14:47
http://homepage.mac.com/hiroyuki44/hankaku08.html

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
彼女がいるのに風俗へ行くやつはバカ

798 :デフォルトの名無しさん:03/07/31 15:03
>>797
それだけは承服しかねる。

799 :デフォルトの名無しさん:03/07/31 15:06
風俗有るのに彼女作る奴は非プログラマ。

800 :デフォルトの名無しさん:03/07/31 16:12
>>797は童貞
彼女とのSEXと風俗は別物
それがわからんのはガキってこと

801 :デフォルトの名無しさん:03/07/31 16:12
アダルトDVDが
 最短でご注文いただいた翌日にお届け!
 http://www.dvd-exp.com 開店セール1枚 500円より


802 :デフォルトの名無しさん:03/07/31 17:25
金払ってやるってのはプライドに反する。

803 :デフォルトの名無しさん:03/07/31 18:37
( ´,_ゝ`)ショボいプライドだな。夢見る子供の発想か

804 :デフォルトの名無しさん:03/07/31 18:39
セックスフレンドは生きてく上で必要不可欠だよな。

805 :uwa:03/07/31 19:08
質問イイですか?

806 :デフォルトの名無しさん:03/07/31 19:08
>>800
あまりに必死でワロタ

807 :uwa:03/07/31 19:12
C++ Builder6 を買ってインストールが終わり
チュートリアルに従ってテキストエディタでも作ろうかと
考えていたのですが。。
Images が赤く表示されてWindowsのデフォルトのイメージが使えません。
Comtrl32だかも 5.〜〜バージョンなので問題はないと思います

OS Windows XP
メーカー NEC VALUESTAR VT900/1


808 :uwa:03/07/31 19:17
すいません板間違えました

809 :デフォルトの名無しさん:03/07/31 19:17
>>807
NECとBorlandは仲が悪いからそうなる。

810 :uwa:03/07/31 19:21
>>809
ありがとうございます
解決策はないのでしょうか?

811 :デフォルトの名無しさん:03/07/31 19:47
>>806
悔しいの間違いだろ( ´,_ゝ`)

812 :uwa:03/07/31 20:59
age


813 :デフォルトの名無しさん:03/07/31 21:31
>>811
んー確かに>>800は相当悔しかったのかもしれんな。
笑ってすまそ。


814 :デフォルトの名無しさん:03/07/31 21:43
俺がいるのに他の男とくっつく女共は全員バカ

815 :デフォルトの名無しさん:03/07/31 21:50
むしろこのような糞レスする>814にくっつく女こそバカである。


816 :デフォルトの名無しさん:03/07/31 21:53
てめーそれ以上俺の嫁さんの悪口ゆーな

817 :デフォルトの名無しさん:03/07/31 22:07
>>816
どうせ電源入れてゲームスタートしないと会えない嫁さんだろ?

818 :デフォルトの名無しさん:03/07/31 22:09
それは嫁さんじゃなくて恋人だろう。

819 :デフォルトの名無しさん:03/07/31 22:09
C++Builderはアダルトグッズと(._.) φ メモメモ

820 :デフォルトの名無しさん:03/07/31 22:17
アダルトじゃない!純情恋愛グッヅだ!
プラトニックなんだよ!

821 :デフォルトの名無しさん:03/07/31 22:18
C++Builderでおなるのが今の流行とφ(..)カキカキ

822 :デフォルトの名無しさん:03/07/31 22:38
おならない!純なんだ!本気なんだよ!

823 :デフォルトの名無しさん:03/07/31 23:15
男がたくさんいるのに女に走る奴らは全員ウホッ

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読んじゃだめなんかい?

826 :824:03/08/01 11:54
じゃ、StringListしてみまつ。
UTF-8だけど大丈夫かなぁ。

827 :デフォルトの名無しさん:03/08/01 13:20
C++Builder7っていつでるか教えれタコ共

828 :山崎 渉:03/08/02 02:06
(^^)

829 :Delフサギコ ◆A6VzDeLphI :03/08/02 11:30
  ∧,,∧  まずいかも。
 ミ,,゚Д゚彡 Delですが、参考どぞ
 ミつ日(ミ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1034090664&rm=100


830 :デフォルトの名無しさん:03/08/02 13:49
さてはおめえ札付きのワルだな?

831 :デフォルトの名無しさん:03/08/02 15:02
>>829
フォローされてるけど、フサギコ版はすごい遅そうだ
まさか1バイトづつFileStreamからReadBufferするとは驚異的だ(笑)

832 :デフォルトの名無しさん:03/08/02 18:43
このすれは以後>>831がフサギコとは比べ物にならない驚異的なパフォーマンスを誇るコードの解説をするすれになりますた。
皆様ご静聴ください。

833 :831:03/08/02 19:16
>>832
つーかすごい古いコードのようだし、今はフサギコ自身もわかってるんじゃないの?
それにリンク先の2で十分だと思うが

834 :デフォルトの名無しさん:03/08/03 00:30
今までC++だけで使って不自由を感じたことないけど
やはりPascalも勉強しておくか・・・

835 :デフォルトの名無しさん:03/08/03 02:01
[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); // ここでエラー吐かれる
----------------------------------------


836 :デフォルトの名無しさん:03/08/03 02:05
strtmp = Strutils::RightStr(strtmp,17);

837 :デフォルトの名無しさん:03/08/03 02:14
>>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(修正箇所)
----------------------------------------------------


838 :デフォルトの名無しさん:03/08/03 02:15
>>837の質問の意図は、直前にMidStrやLeftStrがあるのに、なぜRightStrだけ引っ掛かるのかという疑問です。

839 :デフォルトの名無しさん:03/08/03 02:21
StrutilsとIdglobalの両方の名前空間にRightStrという関数があるから。
MidStrとLeftStrはIdglobalには無いんだろう。

840 :デフォルトの名無しさん:03/08/03 03:37
>>839
idglobal.pasを見たら、その通りでした
くだらない事を聞いてすいませんでした

841 :BCB6Proにて: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
http://homepage.mac.com/hiroyuki44/

844 :_:03/08/04 08:10
http://homepage.mac.com/hiroyuki44/hankaku08.html

845 :デフォルトの名無しさん:03/08/04 09:30
ヘルプのTWinControl::OnDockOverの例で出てくる、ComputeDockingRectという関数はなんなのでしょうか?
検索しても出てこないのですが。

846 :デフォルトの名無しさん:03/08/04 09:34
>>842
本当

847 :デフォルトの名無しさん:03/08/04 09:39
Delphi(Delphi6で確認)だったら新規作成して何もしないプログラムで374 KBなのですけど、
C++ Builderではサイズはいくらになりますかね?

848 :デフォルトの名無しさん:03/08/04 09:46
>>847
BCB6
460288bytes(BCB6SP4,リリースモード)
BCB3
248832bytes(BCB3修正パッチ当て済,リリースモード)

849 :デフォルトの名無しさん:03/08/04 09:55
バージョン6で、約460Kバイトですか。
では、Delphiと比べて何かメリットはあるでしょうか?
これはDelphi使うよりC++Builderでやった方が良いとかみたいな感じです。

実行速度もほぼ同じと聞いたのですけど、プログラムの処理する内容によって
大きく変化があるとかはあるでしょうかね?
例えば、画像処理はDelphiよりBCBの方が速いとかみたいな?(画像処理は例えです)

850 :841:03/08/04 09:55
補足ですが、メニューのツール>デバッガオプション>OSによる例外で
Access Violationを「デバッガが受け取る」に設定してからではないと出ません。


851 :デフォルトの名無しさん:03/08/04 09:59
>>849
C++(ライブラリ含む)が使いたければBCB。
Object Pascalが使いたければDelphi。

速度が気になるならBorlandなんて使わないで
iccとかVC++.NET2003とか使えよ。

852 :デフォルトの名無しさん:03/08/04 10:18
わかりました。
どうもありがとうございました。
色々考えてみます。

853 :デフォルトの名無しさん:03/08/04 12:46
Delphi7だと356KB(365056Bytes)

854 :デフォルトの名無しさん:03/08/04 15:45
Delphi6は?

855 :デフォルトの名無しさん:03/08/04 22:14
Delphi6
374 KB (382,976 バイト)

856 :デフォルトの名無しさん:03/08/04 23:22
>>854は少し上の書き込みも見えない文盲なので説明しても無駄

857 :841: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」は出ませんでした。

とりあえずこれで回避できたので報告しときます。

858 :デフォルトの名無しさん:03/08/05 08:42
これのことかな?
http://leed.t.u-tokyo.ac.jp/~takeuchi/delphi/article/069/069593.html


859 :841:03/08/05 10:42
>>858
症状は同じことを言っているのかと思い、同じ対策をしてみましたが例外が発生しました。
やはりIMEを変更したほうが良いかもしれません。
ただの例外ならいいのですが、例外を出しているのにOSがハングしてしまうのです・・・。

860 :デフォルトの名無しさん:03/08/05 11:01
>>859
ActiveIME の問題で無いのなら初めて聞く話ですね。
XP がでてから結構経つけど、初めてのケースでしょう。

例外の内容とか教えてもらえるとうれしいな。

861 :デフォルトの名無しさん:03/08/05 12:43
>>856
そんなに煽りたいなら2ちゃんでやれっ!!

ってここが噂の2ちゃんですか?( ´,_ゝ`)

862 :841: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
http://homepage.mac.com/hiroyuki44/hankaku06.html

866 :デフォルトの名無しさん:03/08/05 16:53
>>863
::ClipCursor(RECT)

867 :_:03/08/05 17:03
http://homepage.mac.com/hiroyuki44/

868 :デフォルトの名無しさん:03/08/06 01:02
Oracle 8iの配列フィールドはEnterprise版でDBGridに表示できるとあるけど
Interbaseの配列フィールドもEnterprise版でDBGridに表示できるのか?

Professional版で配列フィールドを表示するGridがサードパーティであれば
教えてください。


869 :デフォルトの名無しさん:03/08/06 02:34
>>868
「配列フィールド」ってなんだっけ?IB にあったかな?


870 :デフォルトの名無しさん:03/08/06 10:20
アプリケーション インスタンスのハンドルの取得方法を教えて下さい。

871 :デフォルトの名無しさん:03/08/06 11:08
SetWindowsHookExでキーをフックしてるのですが
ここでキーが押されなかった事にするにはどうしたらいいのでしょうか?
それとも他になにかAPIみたいなのがありますか?

872 :_:03/08/06 11:19
http://homepage.mac.com/hiroyuki44/hankaku02.html

873 :デフォルトの名無しさん:03/08/06 11:29
>>871
-1を返せばいけるはず

874 :デフォルトの名無しさん:03/08/06 11:30
>>873
おお!ありがとー
つかTRUE返してるんだけどこれって-1ではない?
ちょっと試してみます

875 :デフォルトの名無しさん:03/08/06 11:42
嗚呼・・
やっぱり普通にAlt+Tabとかでアプリ切替できます

876 :デフォルトの名無しさん:03/08/06 12:16
Alt-Tab や Alt-Ctrl-Delete は普通のキーでは無いから。

877 :デフォルトの名無しさん:03/08/06 12:43
>>870
HInstanceグローバル変数

878 :デフォルトの名無しさん:03/08/06 13:13
>>876
SetWindowsHookExではそれ系のキーの無効化はできないと?
つかAlt+TabやAlt+Ctrl+Deleteは無効にできないんですか?

879 :デフォルトの名無しさん:03/08/06 13:19
>>878
フック行く前にOS側で処理されてるはず。
というか簡単に無効にできたら危ない。

880 :デフォルトの名無しさん:03/08/06 13:36
>>879
確かに簡単にできたら危ないんだけどね
フック前にOSにアレされるとどうしようもないですね
DirectXの何かでそれ系あった気もしたがまあそれはいいや
ありがとう

881 :デフォルトの名無しさん:03/08/06 17:00
眠い・・・

882 :デフォルトの名無しさん:03/08/06 17:16
>>881
それはBCBじゃどうしようもないと思う。

883 :デフォルトの名無しさん:03/08/06 17:23
昼飯の後と夕方のこれくらいの時間が一番眠いのはボーランドも認めてる

884 :デフォルトの名無しさん:03/08/07 10:42
ほら、すべった( ´,_ゝ`)

885 :デフォルトの名無しさん:03/08/07 14:01
マウスクリックをフックする方法を教えて下さい。

886 :_:03/08/07 14:01
http://homepage.mac.com/hiroyuki45/

887 :デフォルトの名無しさん:03/08/07 15:04
>>885
フックする種類を WH_MOUSE にすればいいんじゃないの?
あとはCBuilder付属のWin32APIリファレンス参照。


888 :デフォルトの名無しさん:03/08/07 17:06
>>887
まったくその通りでした(;´Д`)
つかC++Builder1なんでAPIアレないんですよ

889 :デフォルトの名無しさん:03/08/07 17:57
>>888
どうぞ
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

890 :デフォルトの名無しさん:03/08/07 18:09
これからプログラムを勉強しようと思うのですが
CとC++どちらを先に勉強したほうが効率がよいでしょうか?

891 :デフォルトの名無しさん:03/08/07 20:00
悪いこと言わないからCからやっておけ。

892 :デフォルトの名無しさん:03/08/07 20:31
100%C++

893 :デフォルトの名無しさん:03/08/07 22:22
うひょー

894 :デフォルトの名無しさん:03/08/08 01:14
むひょ

895 :デフォルトの名無しさん:03/08/08 09:37
>>890
最初は難しく思えてもZ80とか簡単なアセンブラから始めておくと覚えやすいね。
BASICから始めた俺はレジスタが最初の壁だったな〜

896 :デフォルトの名無しさん:03/08/08 11:29
Z80よっか8086っしょ

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

もうアレなんだから普通にC++Builderでいいじゃん

897 :デフォルトの名無しさん:03/08/08 11:44
ドレ?

898 :Indy使い:03/08/08 18:53
Indy9コンポーネント入れたいんだけど…いれられない
ダウンして解凍してFullc5.bat実行して,できたフォルダごと環境設定で
ライブラリにパス通してもパレットにでてこない
誰かHelp!!…

899 :デフォルトの名無しさん:03/08/08 21:28
>>898
既出、過去を見れ

900 :デフォルトの名無しさん:03/08/09 03:44
900

901 :デフォルトの名無しさん:03/08/09 19:20
                        / ̄ ̄ ̄ ̄ ̄ ̄ ̄
     /\      /\        < 糞スレ
     /  \    /  \        |  おめでとうございまーす
    /     \_/    \      \_______
    /               \
   /                ヽ___  ___
  /  /  ヽ__/  \    /     ゙Y"     \
 |         │  /      /               \
 |       丶/     /                 \
 \         / ̄ ̄ ̄ ̄)        *      ( ̄ ̄ ̄ ̄)
   ヽ_____|    ─<         |\      >─   (
           |      )     /  (|ミ;\    (      )
           ヽ    ̄ ̄)    /(___人|,iミ'=;\  (  ̄ ̄   )
           /" ̄ ̄ ̄ ̄   /    《v厂リiy\  ̄ ̄ ̄ ̄\
           /        /        ゙|,/'' v:,,、.¨)z,_       \
          /       /         ミ/ .-─ .゙》z、      \
          /      /           〔」″ノ‐ 、u ¨\      )
         (      /             ゙|, ..冫 .rー    ̄\_   |
          |      〔              ミ./′   ..r-ー __,,ア┐ |
          |      |              {. .,,,,   .′ .´′ .¨\|

902 :デフォルトの名無しさん:03/08/09 19:21
          |       |              ∨   ノ冖′=vvvvvv¨\
          |     /               ミ.  ,i'          .゙\_
          |     /                .{. ノ  ,r¬″       .¨\
          |     /                 ゙|, |  ノ      ー'''''''''''  .ーミz
          |     |                  ミ.     .,、 ._,,,、、r   ,,,,_____ ゙┐
      _/"     |                  .ミ.   ./′ ´′      ̄⌒'h..¥
     (______)                  {.  }  ._,,,、  ,ノ冖''^¨    ″〕
                                 ゙|, .,| ./`  ,r'′  vvvv、   |
                                  .ミ、.` |    二、      〔  、 ,|
                                  .〔  |  .、 〔  rーー   |  |.,}
                                   .ミ .′ .|  〕  .} ─-「  y-リ
                                   .\   |,  ´v,,,]、、、v-  ..,/′
                                     ゙\ .\、    .  _/
                                      ¨'ーvu,,____''工レ-'″


903 :デフォルトの名無しさん:03/08/12 00:27
C++Builder 、personalってDelphiみたいに無料で使えるのかと思(略
んで、BCCってC++Builderの開発環境を取り除いただけと聞いたことがあるんですが
C++Builderのソースコードをコンパイルして実行なんて、、できませんよね?

904 :デフォルトの名無しさん:03/08/12 01:14
VCL使ってると無理だと思う。

905 :デフォルトの名無しさん:03/08/12 10:25
久々に使ったけど、エディタがぜんぜん進化してないのね。
builderは統合環境を使わざるを得ないんだから、
せめてVC程度のエディタは搭載してほしい。


906 :デフォルトの名無しさん:03/08/12 10:27
外部エディタ使えばえぇやん

907 :デフォルトの名無しさん:03/08/12 14:03
おいおい・・・
VCのうんこエディタのマシだってかよ・・
>>905は使いこなしてないっぽいな( ´,_ゝ`)

908 :デフォルトの名無しさん:03/08/12 15:17
確かにBuilderの補完は遅すぎるね。
あまりにも遅いので切って使ってるし。

909 :デフォルトの名無しさん:03/08/13 14:36
・一括整形
・複数行インデント(複数行選んでTAB押し)

Builderってできたっけ?

910 :デフォルトの名無しさん:03/08/13 14:42
Ctrl+Shift+I, U

911 :デフォルトの名無しさん:03/08/13 14:51
一括整形は無理ぽ

912 :デフォルトの名無しさん:03/08/13 18:05
( ´,_ゝ`)一括整形 ?

913 :デフォルトの名無しさん:03/08/13 18:38
VCでも一括整形ってできたっけ?
Vimぐらいしかシラネ

914 :Delフサギコ ◆A6VzDeLphI :03/08/13 22:26
  ∧,,∧  VC#ではできたんじゃなかったかな?
 ミ,,゚Д゚彡
 ミつ日(ミ


915 :デフォルトの名無しさん:03/08/14 01:38
VC6でもできるよ。範囲選択してAlt+F8で自動一括整形。

916 :デフォルトの名無しさん:03/08/14 07:16
普通にアプリ作っているとき、
プログラムのなかに大量に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つかう?
それとも、フォームに描く?


922 :デフォルトの名無しさん:03/08/14 14:24
ビットマップに描いて、貼る場所は適当

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

928 :デフォルトの名無しさん:03/08/15 23:49
>>925
ぉぅ, ょゅぅ

929 :デフォルトの名無しさん:03/08/15 23:51
うそということになるみたいですね。
こんな感じで、縦書きになるみたいなのですが。
うまい方法、探すのに一苦労ですね。924でした。
どうも、ご清聴、ありがとうでした。

930 :デフォルトの名無しさん:03/08/16 06:33
>>925
Delで書いたアプリでもそのままコンパイル通ります(゚∀゚)b


931 :デフォルトの名無しさん:03/08/16 07:35
ていうかC++BuilderにはPascalコンパイラもついてくるしな(dcc32.exe)

932 :  :03/08/16 12:41
>>928 >>930 >>931
おお、ありがとう。
ちょっと試してみたけど統合環境からdelhiのプロジェクトを開いてもうまくいかなかったけど
pasをプロジェクトに追加したらコンパイルできた。
pasとcppの混ざったやつがコンパイルできてリンクできるんだね。すごい。
しかし二つの言語じゃ型やその他、色々違うのになんで特別なことしなくてもできるのだろう?
でもクラスエクスプローラがpasファイルを認識できないみたいなのが痛い。
delphiのパーソナルにもコードエクスプローラがついてないみたいだし。


933 :932:03/08/16 14:43
ちょっとやってみてDelphiのフォームに対応するpasやdfmをBuilderのプロジェクトに追加すると、プロジェクトのcppファイル(WinMainがあるやつ)に
  USEFORMNS("ChOwn1.pas", Chown1, Form1);
てのが追加されこれが#includeの役割と変数Form1を定義してるらしいことはわかったし、
ふつうのpasファイルとかを追加してコンパイルしたらhppファイルが追加されることもわかったけど
もっと詳しくBuilderでpasファイルを利用するやり方が書いてある本とかWebを知りませんか?




934 :デフォルトの名無しさん:03/08/16 15:19
>>932
弊社のサポートなどいかがでしょう?
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧ ニヤニヤ
 ( ・∀・)
 (    )
 | 某|  
 (__)_)


935 :デフォルトの名無しさん:03/08/16 15:24
久しぶりに見たなそれ

936 :デフォルトの名無しさん:03/08/16 23:08
いっそのこと、Delphiと統合しちゃえばいいのにねぇ。
売り上げ減るからやらんのかもしれんが。

937 :デフォルトの名無しさん:03/08/17 03:47
Borland Developer Studioでそのうち統合されます。

938 :デフォルトの名無しさん:03/08/17 21:21
フリーコンパイラー使えよ、
なぜわざわざ買ってまでBCBとかVC++とか使うんだ?

939 :デフォルトの名無しさん:03/08/17 21:34
>>938
貧乏人は勝手にフリーコンパイラーで手間隙かけてろ

940 :デフォルトの名無しさん:03/08/17 22:07
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□



941 :デフォルトの名無しさん:03/08/18 13:33
向こうのサイトでは
C++ Studioってなってるけど 何あれ
16bit版をだきあわせですか?

942 :デフォルトの名無しさん:03/08/19 10:17
つか、そろそろ次スレよろ

943 :デフォルトの名無しさん:03/08/20 05:27
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□

944 :VCLのTreeView:03/08/20 11:19
Borland C++6を使っているのですが
VCLのTreeViewの表示でノードの頭に画像を表示させたい
のですがヘルプだけではどう使って良いか分からなかった
のでVCLに関する内容が書かれた書籍ありましたらお教え
願います。

945 :デフォルトの名無しさん:03/08/20 12:13
>>944
このページの下ぐらいにImageListを使った方法が載ってます。
http://www.philly.ne.jp/~hanya/vb/treeview.htm

946 :デフォルトの名無しさん:03/08/20 12:16
ついでにTCustomTreeView::Imagesプロパティのヘルプも目を通して
おくとなお良いです。

224 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)