C++Builder相談室 Part9

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-5あたり。
2デフォルトの名無しさん:04/03/29 15:31
3デフォルトの名無しさん:04/03/29 15:31
<Tipsなど>
C++Builderのお部屋(Tips系)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/
Delphian World(コンポーネントライブラリ)
http://home1.infonia.ne.jp/~delphian/delphi/
Borland C++Builder最新リンク2004(リンク集)
http://www2.famille.ne.jp/~akio1998/l_cpb.html

//閉鎖中
ビギナー向けtips
http://www.yukibow.com/bcb/index.html

//行方不明
C++Builderによるプログラミング(Tips系)
http://market.agr.tottori-u.ac.jp/ken/
C++Builder Bugs
http://www2.justnet.ne.jp/~tyche/bcbbugs/index.html

<便利なツール>
フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/software/nonfreecursor.htm
4デフォルトの名無しさん:04/03/29 15:31
<関連サイト>
公式サイト
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デフォルトの名無しさん:04/03/29 15:33
<VCL兄貴のDelphiスレ>
Delphi相談室(超初心者用)その11
http://pc5.2ch.net/test/read.cgi/tech/1076610073/l50
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その12
http://pc5.2ch.net/test/read.cgi/tech/1076095856/l50
Delphi相談室(上級者用)その12
http://pc5.2ch.net/test/read.cgi/tech/1064766880/l50
Delphi相談室(中級者以上)その12
http://pc5.2ch.net/test/read.cgi/tech/1064420818/l50
【Delphi初心者】今から始めるDelphi Part01
http://pc5.2ch.net/test/read.cgi/tech/1062422335/l50
6デフォルトの名無しさん:04/03/29 15:47
C++Builder Mobile Edition
とは何でつか?
これも入れてやって↓

フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/software/nonfreecursor.htm
>>3
しかし、どうしてそこまでフリーカーソルを嫌うのかな・・・

変にカーソルがあっち行ったりこっち行ったりせず、
実に素直な動作をしてくれて気持ちいいのに。
11デフォルトの名無しさん:04/03/29 19:32
もうC++Builderの新版は出ないのでしょうか?
Borland のインスペクタって、時代が下るごとに
使いにくくなっていくような気がする。

BuilderX って使ったこと無いけど、どんな感じなの?
もし便利だったら買い換えたいんだけど。
>10
フリーカーソルだと「自分で右の終端を判断」しなくちゃならない。
画面が小さいと↑がすごく鬱陶しい。
しかもカーソルキーだけでなくHome/End使わなくちゃならんし。
Home押すつもりで何度Insertを押したことか。慣れの問題だとは思うが。

>12
Xのスレ。
http://pc5.2ch.net/test/read.cgi/tech/1065260556/
>>13
>フリーカーソルだと「自分で右の終端を判断」しなくちゃならない。

も一つ教えて。何で右の終端を判断する必要があるの?
>14
某島の中の人?だったらBCB7を頼む。
真面目に答えりゃ、横スクロールしちゃうとウザいから。
フリーカーソルが嫌われる理由。

1.たいていのエディタはフリーカーソルじゃないのが標準なので、
  乗り換えてきた時に面倒。

2.(1.にも非常に関係するが)行末にカーソルがあって、
  次行の先頭に移動したい時、右カーソルを押すという操作が
  身についてしまっている。

3.(1、2のことから)プログラムを書いている時に、急に思いも
  かけないカーソルの動きをされると、それだけで思考が分断
  されて非常に不快になる。

要は普段慣れているやり方で書かせろってこった。

>>14だってHome・Endで左右、PageupとPagedownで上下しか
許されていないエディタだったらいやだろ。そういうこっちゃ。
17デフォルトの名無しさん:04/03/30 03:18
秀まるおと提携汁
>>11
おれも知りたい。Windowsの処理系を買おうかと思ってるんだけど、
おれとしてはC++Builderがいいのよな。昔、会社で使ってたから。
ライブラリが好きでね。

でもディスコンらしいとか噂で聞いたので心配なのよ。
19デフォルトの名無しさん:04/03/30 11:48
あくまで参考情報。

英語版買いましたけど、
”.NET interoperability”シールが貼ってありますた。

BCBXは無くても他社製品やGNUがあるけど、BCBが無くなったら氏ぬ。
BCB6の日本語版CD4枚で、BCB6(E)は7枚。
枚数が全てじゃないけど。





その内訳は、Kylix3、C++ Mobile Edition for C++ BUILDER、e-Larning。
2118:04/03/30 13:45
>>19
ありがとうございます。.NETの対応を進めてるってことは、
まだボーランドは見捨ててないと考えてもよさそうですね。
ホントにそうなのかはわかりませんけど。
ま、そう信じて買うことにします。

今まで身の回りのちまちましたユーティリティはgccや
Rubyで作ってましたけど、やっぱネイティブなコンパイラで
ウィンドウをバシッと開きたいなあ、なんて思いましてw

>>20
とりあえずどれもいらんかな…。あれば嬉しい程度、だけと悔しいなあ。
22デフォルトの名無しさん:04/03/31 14:14
アセンブラで BCB用の処理を書こうとして 高速化の為なので_fastcall 手続きを使おうとしました。
BCB5のヘルプだと

>_fastcall 修飾子を使うと,引数をレジスタで渡す関数を宣言できます。
 関数の最初の 3 つの引数は,レジスタに収まるサイズであれば(左から右の順で)EAX,EBX,EDX で渡されます。
 引数が浮動小数点または構造体型の場合はレジスタは使われません。

とあるのですが、試しに引数2つで BCC32 -S で どうなるか見ると EAX EDXが使われているように見えます。

これはヘルプのミスですよね? それとも俺の目が節穴?
>>22
フシアナ系
2422:04/03/31 16:53
レス貰ったけど、作ってみて、やっぱり2番目はEDXでないと正常に動かないのでした。
同じヘルプ内でEAX,EBX,EDXという記述と、EAX,EDX,ECXという記述の2通りあるので、
まあお察しください。
フリーカーソル切るのにツール入れにゃならんのか…
C++Builder5を使用しているんですが
VC++の、Win32 Application風な作成がしたいんですが
BCBの新規作成から何を選択すれば良いんでしょうか?

C++Builderの新規作成 -> アプリケーションだと勝手にフレームとか作られてしまうんで。
出来ればソースを書いて、リソースを作成してって手順で作成したいんですが…
独自定義した構造体を他のヘッダ内の構造体で参照したいんですが
ヘッダをインクルードしてもコンパイルが通りません。
typedef struct {
int a;
int b;
} test;

他のヘッダーで
typedef struct {
test aa;
int bb;
} test2;
とやってもtest構造体が見つからないと出ます。
いろいろなところでそのヘッダをインクルードしてるのが
原因でしょうか?
>>28
その書き方じゃtestとtest2は別の型になるよ。
それからC++ならtypedef要らないでしょう。
前スレのレス飛んだんでもう一度

Builder から Win32API だけの
プログラム作ることは出来ますか?
>>28
BCBとは関係無いな。

常にtest2の宣言より先にtestの宣言が来るようにincludeすれば良い。
>>27
新規作成->コンソールウィザード->"コンソールアプリケーション"のチェックを外す

>>30
>>27
33デフォルトの名無しさん:04/04/02 10:52
TSpeedButtonでDownプロパティーがfalseの時にボタンが押されてOnClickが入るのと
Down=true(元々押されてる状態から)OnClickが入る時に区別する方法を教えてください
>>29 >>31
include の順番を色々変えてみたらできました。
ありがとうございました。
3530:04/04/02 13:17
すぐ前に出てたのね
スマソ&thx
36デフォルトの名無しさん:04/04/02 15:45
効果音を鳴らしたいと思っています。

C:\hoge.exeが実行ファイルで、
C:\fuga.wavが、鳴らしたいファイルです。

PlaySound("fuga.wav",NULL,SND_FILENAME);
だと鳴るのですが、
PlaySound("C:\fuga.wav",NULL,SND_FILENAME);
だと鳴りません。

ファイル名のみを指定したら鳴って、フルパスだと鳴らないということです。
PlaySoundの使用方法などをググったりしまたが、どうにも解決できませんでした。

分かる方、どうぞよろしくお願いします。
C:\→C:\\
38デフォルトの名無しさん:04/04/02 16:03
>>37
即レスありがとうございます!できました。
大変恐縮なんですが、もう一つよろしいでしょうか?

ファイル名の変わりに変数を使用する事はできないのでしょうか?。
C:\\fuga.wavをSoundという変数に入れて
PlaySound("Sound",NULL,SND_FILENAME);
だと、できないのです。

よろしくお願いします。

   。 。
  / / ポーン!
( Д )
"Sound"→Sound
SoundにAnsiString使ってるなら。

String Sound = "C:\\fuga.wav";
PlaySound( Sound.c_str(), NULL, SND_FILENAME );
42デフォルトの名無しさん:04/04/02 16:22
>>40
それも試してみたのですが、出来ませんでした。

・'AnsiString'型は'const char*' 型に変換できない
・'pszSound'はconst char*型として定義されているので、AnsiStringは渡せない

という二つのエラーがでてしまいます。
AnsiStringで宣言しているからかと思い、charで宣言しましたが、こちらもダメでした。

どうでしょうか?
>>42
>>41が答だが、君、C++の入門書をちゃんと読みなさい。
>>41
書き込んでいる時にレスをもらったみたいです。
無事できました。ありがとうございます。
>>43
確かに、勉強不足のようでした。
もう一度入門書を読むことから始めます。

レスをくださった方々、どうもありがとうございました。
TreeViewのNodeで子ノードがなくてもHasChildrenは
常にtrueを返すのは私の目の錯覚なのでしょうか?
(・3・) エェー 返さないYO
>>46
(・3・) エェー ボクの顔 勝手に使わないでYO!
4827:04/04/02 23:18
>>32
レスサンクス。
そんなところにあったのか…
つーか何故コンソール!?そんなの見つからないYO!ヽ(`Д´)/ウワーン

それと、リソース スクリプト(rcファイル)を作成するリソースエディタとかBCB5にありませんか?
フォームとか選ぶと勝手にサブクラス化(?)されてしまうんで。
rcファイルを取り込む機能があるのにエディタが無いはず無いとは思うんですが…


VC++で作ったアプリをBCCで構築できる事を確認したのに何故BCB5でコンパイルできない!?
しかも、Winuser.h…
ボーランドが提供してんのになぜそんなところでエラー??
もうワケワカラン。
>>45
やってみたけど返さないよ。

Application->MessageBox((TreeView1->Selected->HasChildren) ? "true" : "false", "");
>>48
ダイアログエディタはBCCFormでもツールに登録して使うしかない予感。
暇なんでVC++みたいだけどBOB向きの
リソースエディターを
暇なんでVC++みたいだけどBCB
向きのリソース編集ソフトつーのを 作ってみるわ。もちろんWindows
ネイティブな。少しまちなー。
。・゚・(ノД`)・゚・。
ワラタ
リソースワークショップってのがBCBのCDに無いか?
55デフォルトの名無しさん:04/04/03 23:49
C++ビルダーでクラス内に、以下のように文字列定数を宣言すると、コンパイラに怒られてしまいます。
static const AnsiString mStrBaseFileName = "hozon";

同じやり方で数値定数の場合だと怒られません。
static const int mintValue = 10;

クラス内で文字列定数宣言をするにはどうすればよいのでしょう?
>>55
組込型以外の型はクラス内での初期化はできないよ。

外部で

const AnsiString Class::mStrBaseFileName = "hozon";

としたら?
文字列「定数」なら
char[]にすればいいんでわ
>>57
それだと行けるだろうね。
59デフォルトの名無しさん:04/04/04 01:14
>>56
サンクス。結局その案にしました。

>>57
char配列の文字列定数でもコンパイラは通らないようです。
>>57>>58>>59
配列の初期化もだめみたいだね。なかなか厳しい。
クラス宣言内で初期化できるのは static constな整数だけ。
それも即値でしか初期化できない。

これ以外の型であれば必ずクラス宣言外で定義が必要だし、
そこで初期化するしかない。

なお、クラス宣言内で初期化した static constな整数には実体がない。
実態が必要になるときは、これまたクラス宣言外で定義が必要。

要は、static const int mintValue = 10; が通るのが極めて例外的だということ。
↑補足
>これ以外の型であれば必ずクラス宣言外で定義が必要だし、
>そこで初期化するしかない。
もちろん、staticメンバの話ね。
6327:04/04/04 12:28
>>50
レスサンクス
そうですか…やっぱ、BCBは、BCBなりの開発しなくちゃならんわけですね。
フリーのBCCFormを一応とってくる…
DFMファイルから自分でテキスト形式のリソースファイルに変換して、それを取り込めばいいんじゃないの?
65デフォルトの名無しさん:04/04/06 12:29
パネルを置いたんですが、コンポーネントをその上に置けないです。
parentとか何かが関係しているのかと思い、ググりましたが、当たり前すぎるのか、探せませんでした。
どなたかご教授お願い致します。
パネルはTPanelの事?
具体的な置こうとしたコンポーネント名は?
どういう操作で置けなかった?
67デフォルトの名無しさん:04/04/06 15:25
>>66
はい、パネルはTPanelの事です。
置こうとしたコンポーネントは、TLabelです。
フォームに置いてあったラベルを動かして置こうとすると、パネルの上に置くことができないんです。
パネルを先に置いてから、新たにラベルを選択して初めからパネルの上に置いた場合は正しく置けます。

>>67
オブジェクトインスペクタでオブジェクトの親子関係をよく観察しましょう。
また、親子関係の変更はオブジェクトインスペクタで変更する事ができます。
69デフォルトの名無しさん:04/04/06 15:54
>>68
改めてオブジェクトインスペクタのプロパティを一つづつ検討してみましたが、やはり見あたりません…
パネルの上に置けているオブジェクトと、置けていないオブジェクトのプロパティを比較してみましたが、位置座標以外は同じでした。
親子関係はParentでいじるのかと思い、試しましたがやはり無理でした。

もう他に打つ手無しです。。
ドラッグでは無理。ラベルを選択してCtrl+X、その後パネルを選択してCtrl+V。
元の位置によってはパネルからはみ出るから、パネルを大きくして確認。

という話でいいのかな?
一番簡単なのは、パネルに移動したいラベルを選択しておいてから、CTRL+Xで切り取って
パネルを選択して貼り付ける事だと思うけど?
7268:04/04/06 16:56
>>69
すまん、インスペクタをツリーに置換してくれ
73デフォルトの名無しさん:04/04/06 17:20
>>72
どうやって置換するんでしょうか?
すまんわからんです。。。
74デフォルトの名無しさん:04/04/06 17:33
すみません。Builder初心者なのですが、ちょっと教えてください。
StringGridやDrawGridの各セルをDockSiteにする方法ってないのでしょうか。
また、DockSiteに乗っかったコンポーネントに表示される移動用のハンドル(?)
のようなものは、コンポーネントの上部に表示されますが、
これを右端に垂直に表示する方法もあるのでしょうか。
もしお分かりでしたら、ご教示ください。
>>74
前半は不可能
後半は良く分からんが多分無理
DocSiteの実装を自分で書けばできるんじゃない?
そのためのサンプルとかも付いてたと思う
>>75
>>76
レスさんこーです!
やっぱり実装を書くしかないですか。
GridをDockSiteにしているアプリを見かけたので、
Builderで出来るのかなーと思っていましたが、
単純にプロパティいじっただけじゃやっぱり無理ですよね。
ちょっとサンプルを見てみます。
ありがとうございました!
78デフォルトの名無しさん:04/04/07 19:56
ちょっと基本的なことを質問しますが、
class AA
{
public:
__fastcall func( String ss );
};
class BB : public AA
{
public:
__fastcall func( String ss )
{
  AA::func( ss ); 
ここで↑をやらずにAA::funcを呼び出す方法を教えて下さい。
}
};
>>78
無いはず。

こっちで聞いてみたら?
【初心者歓迎】C/C++室 Ver.5【環境依存OK】
ttp://pc5.2ch.net/test/read.cgi/tech/1077102238/l50
80デフォルトの名無しさん:04/04/08 12:38
>>78ですが、例えば
コンストラクタに : TForm(Owner)ってありますよね?
これってやっぱりコンストラクタのみ指定できるものなのでしょうか?

>>79
まずそれを見てみます。
>>80
それはメンバ初期化構文という。
文字通り、そのクラスのメンバを初期化するためのもので、
コンストラクタでのみ使用できる。
こんなのは基本中の基本。

C++の入門書をきっちり読め。
それをせずに2chを渡り歩いても身につかんぞ。
BCB6 + SP4にて。
32ビットなんだから8バイト単位にすることもなかろと思ってC++、Pascalコンパイラ共に
データの配置境界を4バイトに設定した。
ところが、Delphi6で作成したクラスがどうも正常に動作していない。メンバ変数に入るべき
値がちゃんと入っていない。Delphi6だとちゃんと動く。
で、アセンブラコードを眺めてみると、メンバ変数アクセス時のオフセットが、C++側では
おかしいことが判明。データの配置境界オプションが効いてない様子。Pascalコンパイラの
方は、オプションを変更するとちゃんとオフセットが変化する。参った。
多国語リソースのフォーム編集がテキストだったり(!)BCB6は問題多いなあ。

せっかく買ったからBCB5に戻る気にはなれんし、何より共通ライブラリDelphi6で作ってるから
BCB5じゃ使えないものも多いしなあ。はぁ。
83デフォルトの名無しさん:04/04/09 12:12
あ、俺もデータの配置境界アレを4バイトでやっとる
俺BCB5だが、大丈夫なんかなあ
8482:04/04/09 13:04
>>83
俺の場合はDelphiで作ったコードがあり、PascalコンパイラとC++コンパイラ
との相違が問題になった。Delphiコードが混ざってないならオプション効いてなくても
大丈夫なんでない?まあVCLはDelphiなわけだが。(w

しかしなんで8バイトがデフォになっとるんだろね。
レジスタばかり考えてないで、CPUのデータバスも考えれ。
COMの周辺が変なのはそのせい?
EOleSysErrがDelphi6で補足できるのが
BCC5.6ではできなかったり、EACCESSが飛んだり。
87デフォルトの名無しさん:04/04/11 11:05
C++Builder8はでないのか?
Borland.Vcl.dllを、managed C++から使えばそれが(ry
89デフォルトの名無しさん:04/04/12 15:50
>>84
sizeofでアレしたら見事にぬかったわ!
BCB で boost 使ってる人いる?
spirit 使ってみようと思ったんだが、コンパイルエラーで挫折。
regex は BCB でも動くみたいだが、
spirit 使ってるネ申いたら詳しく教えてくれ。
漏れはregex使うとリンカエラー吐かれる‥‥∧||∧
普通に(STL-port)boostビルドして_USE_OLD_RW_STL定義したプロジェクトでそのlib使ってるのがいけないのか‥‥orz
94デフォルトの名無しさん:04/04/13 19:04
Ocxを作ったのですが、
配布するときに各アプリ開発者、更にそれを使うユーザに
regsvr32 を使わせるのはわずらわしいので、
なんとかregsvr32を使用させずにOcxを使わせることは可能ですか?

DllRegisterServerあたりを使えばよいらしいのですが、
どう使うのかまでは載ってなくて。。。
すみませんが知ってる方お願いします。
96デフォルトの名無しさん:04/04/13 23:06
TTreeViewで、指定の項目を選択(反転)するには
どうしたらいいですか?
>>96

目的のノードの Selected プロパティを true にするか、
TTreeView のオブジェクトの Selected プロパティに
目的のノードを代入してあげれば選択された事になる…筈。

これでできんかったら、TTreeView のオブジェクトの
HideSelection が true になっていたりしない?
98名前は開発中のものです。:04/04/14 10:37
作成されるアプリの名前を変更するには、
何処を変更すれば良いのでしょうか?
>>98
プロジェクトに名前を付けて保存メニューで、プロジェクト名を変える。
100名前は開発中のものです。:04/04/14 10:40
>>99
ありがとうございます。
101デフォルトの名無しさん:04/04/15 15:06
BCB8はいつ出るの?
>>101
でません
>>102
勘弁してくれ・・・・・
三分ほどしごけば出る
候だな。
BCB8 が出るとして、どんな機能を期待するの?
107デフォルトの名無しさん:04/04/16 02:59
サイズを小さくする機能
D言語化
>>106
JBuilderとの統合。
ついでにC#と.Net Frameworkぐらいは付けてもらおうか。
統合って?
なぜ、統合しなきゃいけないの?
XP64にネイティブで対応して欲すい
__VA_ARGS__
>>106
なんでいきなり8なんだい?
Delphiが8だからでしょ。
つか、以前にも1から3に飛んだし。BCB
けど、年末には Win32/.NET 2.0 をサポートする次のが出るんだし...
BCB 8.5 か BCB 9 にでもなるかな?

>>114
あ、やっぱBCB2ってなかったんだ。情報ないと思ったら存在がなかったのね。
俺はBCBは5からの付き合い。
Delphi2
BCB 1
Delphi3
BCB 3

って順番。最初の BCB だから Version 1 にしたんだけど、実行時パッケージの
バージョン番号とかがわかりづらくなるので、Delphi3 ベースの BCB 3 の時に
ベースにしている Delphi の番号にあわせた。ということ。
118デフォルトの名無しさん:04/04/17 18:43
ああ Builder (;´Д`)'`ァ'`ァ
ああ ビルダー'`ァ,、ァ'`ァ,、ァ'`ァ (;´Д`) '`ァ,、ァ'`ァ,、ァ'`ァ
ボー・・・・(*´Д`)
(*´Д`)=3
(´∀`)=3
(・∀・) スキーリ
119デフォルトの名無しさん:04/04/17 20:23
BCB1にはバージョンナンバーがなかった
120デフォルトの名無しさん:04/04/17 21:05
BCB5使ってるんだけど、エディタが使いづらい。
キーのカスタマイズができんのが致命的。
実際には、プログラムを組めばできるらすいが、そんなんいちいちやっとられん。
だから、外部エディタ使うことが多い。
外部エディタだと、ヘッダファイルだけ内部エディタで変更すると、反映が消えたりとかあって
これはこれで使いにくい。
BCB6はどうなってるか知らないが、次期バージョンが内部エディタ簡単にキーカスタマイズできるようになってるなら買う。
>>120
そんなあなたに、VS.NET
BCB6のフリーカーソルを無効化するアドインがある。
俺はこれを入れたままにしている。ブロックインデント機能
もあるしな。
>>121
VCLが使えん
>>120
Delphi8でもやっぱりダイアログからはカスタマイズできないよ。なのでしばらくBCBでも無理でしょ。
いっそのこと自分用にキーカスタマイズbpl作ってしまう事をお薦めする。意外と簡単。
C++Builderのほうは知らないんですけど、サンプル付いてないかな?
クラスエクスプローラが激しく使えないのいいかげんなんとかしてくれ
VSと同じにすればいいじゃないか
>>125
あーゆーのは各メーカーが特許を握っているからなぁ
127デフォルトの名無しさん:04/04/19 18:52
別にBCBのエディターで不都合感じたことねーや
俺はむしろ秀丸をBCBと同じキーにアレして使ってるわー
>>127
フリーカーソルが嫌いな人には受け入れられないんじゃないかと。
オプションで切れないし。
>>126
特許なんかあるのか?
じゃあJmEditorと一緒にしてくれボーランド
Vxドトネトに慣れちゃうと、BCBのフリーカーソルが使いづらいことよりも
コードリージョンで折りたためないとか、構造(対応する括弧とか)を強調表示してくれないとか
new式でクラス名を補完してくれないとか
とにかくその辺がつらくね?
すっトロいコンパイルと補完処理の速度がツラい。
C++だから仕方ないと思っているけど
Delphiも併用しているから、どうしてもイラつく。
>>131
自動補完切って必要な時だけCtrl+SpaceやCtrl+Shift+Space使うとよし。
コンパイル速度はC++コンパイラの中ではマシな部類
>>131
C++BuilderはDelphiより何をさせても全体的に重いから(IDE)、
Delphi並に快適になろうとすると一クラス上のパソコンが必要になる。
134デフォルトの名無しさん:04/04/20 12:15
StatusBar1->Panels->Items[1]->Text= "ABC";
でステータスバーに文字を表示していますが、
文字の色を替えるには・・・?
>>134
TStatusBar::OnDrawPanel
136デフォルトの名無しさん:04/04/21 13:48
//復活
ビギナー向けtips
http://www.yukibow.com/bcb/index.html
>>136
勝手にリンクしているサイトがあるって怒りまくっていたが、
結局これが目的か。(;´Д`)ハァ
138デフォルトの名無しさん:04/04/21 14:54
無料だったのがいきなり6000円かよ。
ぼったくりもいいとこだな。
こんなもの、誰も会員なんてならんだろ。
事前に全部落としておいてよかった。
>>138
俺は落としそこねた。
くそーーー、悔しい。
たぶん悔しがるほどのことじゃない。
無断リンクに怒るなら、会員制にすればいいことで、有料化は関係ないですねぇ。
かつてのCyberSyndromeみたく、日本人にしかわからない質問をキーワードにしてもいいわけだしね。

ざっと見たところ、非常に低レベルなtipsしかないわけですけど、あれで金になるならおれも
tips屋始めようかな(w
オレならもっとハイレベルなの作れるぞ、と。
>>137
隣国からのリンクが多かったようだ。既にアチャラ語に翻訳
されて向こうにはパクリBBSも立っているし。有料化なんか
して、もう終わったな。
Tipsサイトまた探さねばw
チョンは氏ね…と
145デフォルトの名無しさん:04/04/21 22:27
>141
っていうか、低レベルだからこそ、それなりの人気があったんだよ。
初心者が藁にもすがる思いでやっとたどり着いたとね。
それに、きれいに項目別にまとまってるし、見やすいからね。
簡単なことをきれいにまとめてあるとこって、なかなか無いから。
でも、あんなものに金は出さないだどうね。
どうせ、そのうち、nyで流れてくるだろうし。
ってか、「これで金とるのかっ!」てサンプルコードも多々目にした記憶があるが・・・
だから有料化とか糞シェアウェアは非難囂々なんだよな・・・
>>145
>それに、きれいに項目別にまとまってるし、見やすいからね。
>簡単なことをきれいにまとめてあるとこって、なかなか無いから。

これは軽視されやすいけど重要なんだよな。
有料化自体も悪いとこととは思わないんだが、
しかし、適正価格と1桁違うんじゃ?(w
昨日からC++始めた厨ですがようやく見つけたサイトが有料化…鬱
150デフォルトの名無しさん:04/04/22 06:57
6000円もあれば良書が2冊買える
>>149
心配するな、そこにあるのと同等な情報は検索すれば他にいくらでも見つかる
1tip1円以下って書いてあるだろ。
つまり月に最低500のtipsが追加されていくんだよ。
これを考えれば安い安い。
153デフォルトの名無しさん:04/04/22 10:26
Formにある指定コントロール全てのフォントサイズを変えるために
for( int i = 0; i < ComponentCount; i ++ ){
  if( cls == "TSpeedButton" ){
    dynamic_cast<TSpeedButton *>(Components[i])->Font->Size = siz;
  }
  else if( cls == "TComboBox" ){
    dynamic_cast<TComboBox *>(Components[i])->Font->Size = siz;
  }
}
なことをしているのですが、特定コントロールでキャストせずにする方法はありますか?
例えば、
Components[i]->Font->Size = siz;
みたいな感じで、
「所詮タダで読ませてる文章だから誰の著作権も何もない、ウチで書いてるといえばウチのもんだよ。」
「これで有名になったんだから良かったと思ったほうがいい。」
「当サイトでの謝罪文はネチズンとしてのイメージを損ねる恐れがあるため、告知にとどめさせていただく。」
「サイトURLの公開は品位を損ねる可能性があるので公開はやめていただきたい。」
「これ以上の妨害を行えば○○様を訴えることになります。」

あの国の事だからパクリの苦情に対してこんな返事が返ってきたのではないかと想像。
サイトの説明をみると3年間無料で公開していたみたい。
180度方針を変えたのはかなりひどい対応をされた為ではないかな。
>>153
一度 TControl * にキャストすればいいんでない?

TContol *cntCast;

for( i = 0 ; i < ComponentCount ; i++ )
{
  cntCast = dynamic_cast<TControl *>(Components[i]);
  if( cntCast != NULL)
  {
    cntCast->Font->Size = siz;
  }
}

cntCast で NULL かどうかを見ているのは、
TControl から派生していない TTimer のような
Font プロパティを持たないコンポーネントをはじくため。
>>154
このスレを読んでる人でこのネタがわかる人は半分もいないのではないかと。
>>156
いや、わかるだろ。
元ネタがあるの?
159デフォルトの名無しさん:04/04/22 12:48
>>155
お!!
TContol てTFontプロパティあったんでしたっけ?
いやー、助かりました。
早速試してみますー
160デフォルトの名無しさん:04/04/22 13:19
>>155
嗚呼・・
試してみたのですが、TControl のFontてprotectedなので
アクセスできませんでした・・
これアクセスする方法ってあるのでしょうか?
161141:04/04/22 13:29
//---------------------------------------------------------------------------
class THackedControl : public TControl
{
__published:
  __property Font;
};
//---------------------------------------------------------------------------
 for( int i = 0 ; i < ComponentCount ; i++ ){
  TControl *cntCast = dynamic_cast<TControl *>(Components[i]);
  if( cntCast != NULL){
    ((THackedControl*)cntCast)->Font->Size = siz;
  }
}

これでOK。
・・・本気でTips集作ろうかしら(w
っつうか、BCBの基礎テクニックだから覚えとけよ、と。
(__published よりも public にしといたほうがいいかも。)

162 :04/04/22 13:31
みんな同じFontでいいならFormのFontを替えればいいだけじゃなかったけ。
ParentFontプロパティかなんかをTrueに設定してれば。
163141:04/04/22 13:34
>>162
正解!
・・・気がつかなかった_| ̄|○
>>161
うほっ、ありがとうございます。
つかでもこれって基礎から一歩踏み出したテクニックっぽいですねー
ちょっと僕には考えつかなかったです、ええ勉強不足でした。

>>162
いえ、指定したコントロールのみをアレしたかったもので
165デフォルトの名無しさん:04/04/22 15:16
>>161
まじでTips作って。
BCB3でDirectMusicを使おうとしているのですが、
dmusici.hで
「'line number' 行目で始まった条件構文の途中でファイルが終わっている」
というエラーが出てコンパイルできません。
みたところ
#ifndef _DMUSICI_
の部分なのですが、ファイルの終わりにはきちんと#endifもあり、
特にほかの部分でもおかしなところは見られなかったので
解決方法がわかりません。
どのようにすればコンパイルできるようになるのでしょうか?
DirectXのSDKのバージョンは9です。
>>166
ttp://www.geocities.jp/toru_website/dm/1.html
ここのサンプルコンパイルできる?
168166:04/04/22 17:32
>>167
単純なものを作って見ましたがやっぱり
コンパイルが出来ませんでした。

エラーは以下のようになっています。

[C++エラー] dmusici.h(282): Unexpected end of file in comment started on line 281.
[C++エラー] dmusici.h(283): Unexpected end of file in conditional started on line 10.
[C++警告] dmusici.h(283): Structure packing size has changed.

どちらのエラーと表示されている行にも
おかしなところは見られませんでした。
"*/" これが抜けてるっぽい
スクリーンセーバーを起動する方法で
SendMessage(hwnd,
WM_SYSCOMMAND,
SC_SCREENSAVE,
NULL );
以外の方法はないですか?
171166:04/04/22 18:43
>>169
ためしにコメントを外してみましたら上のほうのエラーがなくなりました。
ありがとうございます。

下のほうのエラーは相変わらず出てきます。
そもそも本来は1800行近くあるファイルなのに
283行でファイルの終端のエラーが出るというのが
おかしい感じがするのですが・・・

なんとなくファイルの読み込みが
途中で強制的に終了されているような感じです。
たまたまコメントの途中で終了されると上のエラーがでるのも分かりますし。
そういうことはあるのでしょうか?
>>170
Win2k以降ならある。
>>172
さっさと教えやがって下さい
>>172
教えてください。

現在 Textfileでtips作成中。まだ3つしかないけどねーw
それにしても見難いw。Sakura Editorのアウトライン解析だとわりと見やすいかな・・・
175デフォルトの名無しさん:04/04/22 20:02
GroupBoxのEnabledをfalseとしたときにのってるコントロールをグレー表示にする方法を教えてください
176172:04/04/22 20:17
>>174
PSDKドキュメントによると ISensLogon::StartScreenSaver だそうだ。
後は知らん

>>172
thanks
PSDKだったとは・・・

http://www.expertmg.co.jp/html/cti/vctips/process.htm
これが検索に引っかかったw
178デフォルトの名無しさん:04/04/23 03:36
デルのソースはコンパイルできるそうだが、
ビルダーのソースをデルはコンパイルできないそうな。
さすが一段高水準な言語だけはある。
デルの方が速いなんてゆってるやつもいるが、
2、3秒速かったらなんだというのだろう。1行書いては
コンパイルするという厨房的プログラミングスタイルの人たち
なのだろうか。
>>178
XPを否定してるから
RAD生命絶たれるんだよ
>>178
2、3秒? マジで100倍くらい違うぞ。
181デフォルトの名無しさん:04/04/23 10:14
>>175をおしえて
182デフォルトの名無しさん:04/04/23 13:32
dbExpressってライセンスがいるんですか?
BCB6Proで使おうとしたら怒られた。
なんでパレットにあるんだろ。
183デフォルトの名無しさん:04/04/23 13:41
>>178は、Delphiの情報量の多さや、バージョンアップが
早いことに納得がいかない様子。
使い分けが肝心だぜ、ベイベー。

俺は個人的なライブラリはDelphiで書いて、
仕事で使えそうなものはBCBで極力VCLから
切り離して書くようにしている。
ベイベー。
184183:04/04/23 13:44
あ、仕事だけじゃねーや。違うOSに持っていけそうな
クラスとかもな。
ベイベー。
185デフォルトの名無しさん:04/04/23 14:08
最近C++を勉強しだしました。
それでMDIアプリケーションの演習をしたところ以下のようなエラーメッセージがでました。

[C++ エラー] EditUnit.cpp(49): E2034 'Set<TMsgDlgBtn,0,8>' 型は
'TMsgDlgButtons' 型に変換できない
[C++ エラー] EditUnit.cpp(49): E2342 パラメータ 'Buttons' は TMsgDlgButtons 型と
して定義されているので Set<TMsgDlgBtn,0,8> は渡せない

本に書いてある通りに書いたはずなのですが・・
御教授よろしくお願いしますm(__)m


186172:04/04/23 14:13
死ねくそども
( ´,_ゝ`)なにそれ、煽り?
>>185
どういうコードなのかも書いてくれないと。

MessageDlg("hoge", mtWarning, mbOK, 0);
↑もしこんなコードなら↓こうする
MessageDlg("hoge", mtWarning, TMsgDlgButtons() << mbOK, 0);
189デフォルトの名無しさん:04/04/23 15:37

現在のグローバルIPアドレスを調べるコードはどのようにすればよろしいですか?

環境はC++Builder5です。
ネットワーク環境はルータ越しに外に出て行く感じで
このコンピュータには、192.168.0.*のようにプライベートアドレスが振られてます。
ルータがNATの仕事をしているので、ルータにはグローバルアドレスがありますが
他のPCに関してはグローバルIPが割り振られていない状況です。

外から見えるグローバルIPを表示するようなサンプルプログラムか
数行の関数を提示していただけると嬉しいです。
よろしくお願いします。
190デフォルトの名無しさん:04/04/23 17:23
COMを呼び出そうとすると
[リンカ エラー] 外部シンボル '__stdcall _com_issue_error(long)' が未解決
と怒られます.
どうすればよいのでしょう?
C++Builder6.0です.
>>189
直接取得する方法は無いはず。
httpでルーターや診断君なんかに接続すれば
グローバルIPが書いてあるはずなので
そのhtmlを解析して取得するしかないと思う。

実際にDiCEなんかはその手法で動いてるようだし
192デフォルトの名無しさん:04/04/24 16:46
aviファイルからのbmpファイルの抽出について教えてください。
また、何か参考になるHPもありましたらよろしくお願いします。
C++Builder6です。
>>161
これって THackedControl から派生した物にしか
その下の for〜 な文は使えないよね?
>>153 のコードにゃ使えんと思うんだけど。

って、もしかして俺とんでもない考え違いをしているのかな。
あー、すまん。呆けてた。193は忘れてくれ orz...
開発環境のキーボードショートカットはカスタマイズ不可ですか?
環境:C++Builder6.0
>>195
できるけど、OTA使わないといけないのでめんどい。

Delphi6なら、Demos\ToolsAPI\Editor Keybinding\Emacs\Emacsbasebindings.pasとかが
参考になるけど、私はBCBは持って無いので…同じようなサンプル無い?
>>195
とりあえずMS-VS用に変更すれば、Windows的には使い勝手が良くなるよ。
>>189
どっか適当なIPにTTLを短くして送ればICMPで途中のルータから返事がある
筈だからそれを拾えば良いと思うけど(tracerote)詳しくは分からない
>>198
NATがICMPメッセージ内のパケットヘッダもいじるタイプの
場合、無理。(これが、結構ある)

>>191のように、ルータの外で得たアドレス情報をデータ内部
に入れる方法の方が確実。
ヘルプの「フレームの使い方と変更方法」で、

>埋め込みフレームの修正に関して 1 つだけ制限があります。それは,コンポーネントを追加できないことです。

とあるけど、追加後再構築なり行えば問題ないような気がするけど、やっぱだめ?
201デフォルトの名無しさん:04/04/26 08:17
C++Builder7はいつ出るの?
202189 :04/04/26 11:50

>>191
>>198
>>199

ありがとうございます!
NAT内から、自分のグローバルIPを見つける方法って
簡単そうで案外複雑ですよね・・・。

確認君のURLをソース内にハードコーディングしてもいいけど
将来的に確認君が消えてしまったときに、グローバルIPが取得できなくて
やばいですよね・・・。

ルータのIPアドレスを拾って来るにしても、
ルータの機種の違いがあるので、ある機種で動くソースでも
他の機種では動かない事もあり得ると・・・。

そう考えると、traceroute が確実が気もしてきました。
でも、これもルータの機種によって、
情報がカットされている可能性もあると・・・。

四面楚歌の罠。
IP取得URLをレジストリかiniファイルに書き込んどけば良いんでは。
Builderならレジストリやiniの読み書き関数準備されてるんだし。
204デフォルトの名無しさん:04/04/26 17:35
ある動作と同じ動作をするようにするにはどうすれば良いのでしょうか?
例えば、一定の時間が来たら、ボタンを押したのと同じ動作をさせたいのです。

自分なりに検索したり書籍にもあたりましたが、どうにも解決できません。
どなたかよろしくお願いします。
自分のアプリケーションの話ならTButtonのClick()で押したのと同じ事になるよ。
他のアプリケーションならメッセージを送ると良いんじゃないですか。
>>204
・ある動作をする関数を作る。
・ボタンのOnClickからその関数を呼び出す。
・TTimerのOnTimerからその関数を呼び出す。
>>205 >>206
即レスありがとうございます。
無事、できました。
まだまだ勉強不足でした。
BCB6
ファイル操作で
FILE *outf
outf=fopen("*********","w");
の*********のところにFileListBoxで選択したファイルを代入するには
どうソースをかけばいいでしょうか?

入門書4冊買ったのにどれにも載ってないウワァァァァン(ノ△T。)
どなたかおねがいします。
209デフォルトの名無しさん:04/04/26 18:31
[email protected]
からスパムやらウイルスやらが流れてくるのだが、管理者に言っても何もしてくれない
誰か何とかしてくれ!!
受信拒否って最近どうです?
>>208 普通にヘルプにしっかり目を通せば判る筈なんだが
ファイル一つなら次でOK.
outf=fopen(FileListBox1->FileName.c_str()","w");

が、FileListBoxはwin3.1時代の遺物だぞ?
ファイルを開く画面を自作するならともかく
普通にファイルを開くだけなら
OpenDialogやSaveDialogを使ったほうがいいと思う
その場合でもやりかたは同じね。
>>209
別にこちらには来てないねえ
ウィルスとかって普通にアドレス偽装じゃないのか?
>>211
レスありがとうございます
本にwin3,1系のやつしか載ってなかったです
FILE *outf;
void __fastcall TForm1::o_btClick(TObject *Sender)
{  
 AnsiString filename;
o_dialog->DefaultExt = "txt";
o_dialog->FileName = "*.txt";
if (o_dialog->Execute()){
filename = o_dialog->FileName;
}}
void __fastcall TForm1::FormCreate(TObject *Sender){
outf=fopen("o_dialog->FileName.c_str()","w");
}
void __fastcall TForm1::input_btClick(TObject *Sender){
String l_name=Edit1->Text;
int l_score=StrToInt(Edit2->Text);
fprintf(outf,"%s\n%d\n",l_name,l_score);
Edit1->Text="";
Edit2->Text="";
}
void __fastcall TForm1::exit_btClick(TObject *Sender){
fclose(outf);
Close();
}
こんな感じにしてみたんですけど
これにするとコンパイルはできるけどプログラムを実行すると
メモリを書き込めないという理由で強制終了してしまう...
なんでだヽ(`Д´)ノ
とりあえずfopenの第一引数が摩訶不思議なことになっとるが。
>>213
ちょっとずれるがOnCreateイベントはBCBでは非推奨。コンストラクタに書くが吉。
>>213
そんな古い本は何冊あっても役に立たない。
悪いこと言わんから、BCB6版の「コンポーネント活用ガイド&実践プログラミング」を買いなさい。
値は張るが余計な試行錯誤をしなくてすむから時間と手間の節約になる。
217141:04/04/26 22:54
ダウト! OnCreate かコンストラクタのオーバーライドかどちらかを使用すればOK。
・・・と記憶してたんだが、今、ヘルプ見てみたら、キミの言うとおりでした。
以前は、どちらか使えばOKだったと思うんだけどなぁ・・・。
ぼくは、いままで、みんな OnCreate に書いてたぞ・・・。
どうしよう;;
218 ◆KcrJZ6hEJI :04/04/26 23:00
TImage で画像の一部を拡大表示させることってできますか?

環境:BCB3 On WinNT4SP6
FILE *outf;
void __fastcall TForm1::o_btClick(TObject *Sender){  
if (outf != NULL) fclose(outf);
if (o_dialog->Execute()){
outf = fopen(o_dialog->FileName.c_str(),"wt");
if (outf != NULL) input_btClick->Enabled = true;
}
}
void __fastcall TForm1::FormCreate(TObject *Sender){
//outf=fopen("o_dialog->FileName.c_str()","w");
input_btClick->Enabled = false;
}
void __fastcall TForm1::input_btClick(TObject *Sender){
int l_score=StrToInt(Edit2->Text);
fprintf(outf,"%s\n%d\n",Editl->Text.c_str(),l_score);
Edit1->Text="";
Edit2->Text="";
}
void __fastcall TForm1::exit_btClick(TObject *Sender){
fclose(outf);
Close();
}
解決が随分先になりそうな予感がしたので、>>211 を「多分、動くもの」
にしてみた。プルーフ付き。ただし未コンパイル。
これで、何が間違ってたかを完全に把握してくれたまい。
220141:04/04/26 23:51
>>218
テンポラリのTBitmap用意してCopyRectでよろしいかと。
221213:04/04/27 00:00
>>214,215,216
指摘ありがとうございました。
最終的に
FILE *outf;
void __fastcall TForm1::o_btClick(TObject *Sender)
{
if (o_dialog->Execute()){
outf = fopen(o_dialog->FileName.c_str(),"a");
}
}
void __fastcall TForm1::input_btClick(TObject *Sender)
{
int l_score=StrToInt(Edit2->Text);
fprintf(outf,"%s\n%d\n",Edit1->Text.c_str(),l_score);
Edit1->Text="";
Edit2->Text="";
}
void __fastcall TForm1::exit_btClick(TObject *Sender)
{
fclose(outf);
Close();
}
これでできました
>>216
古い本じゃないけど,言語コードがchineseです...
リアルの都合で中国に住んでるけど、中国に来る前はC++builderの存在
すら知らなかったから、入門書とかも中国で買ったんです
amazonは国外対応らしいのでその本注文してみる
>>219
本当に助かりました、ありがとうございました。

で、141氏は本気でTip集をつくるつもりなのだろうか?
過去ログからサンプル漁っただけでも結構な量になりそうだな。
223141:04/04/27 00:50
>>222
ええ、会員制で月会費5000円でやろうかと。
>>223
某所の10倍じゃねーかw
225 ◆KcrJZ6hEJI :04/04/27 01:25
>>220
 THX! やってみます。
226デフォルトの名無しさん:04/04/27 08:39
>>141
それよりここのtipsを再構築してよ
http://www.yukibow.com/bcb/index.html
BCBで作ったexeをBCBインストしてないPCにもっていくと
使えないのはなにが足りないから?
>>227
プロジェクトオプションのパッケージタブで実行時パッケージを使って構築を外して再構築
>>227
実行時パッケージを使用するのチェックを外せ。
外さないとVCLがダイナミックリンクになる。
>>227
でもファイルでかくなるぞ。覚悟しとけ。
>>228>>229>>230
サンクス

ファイルサイズが10倍以上に膨らんだ('A`)
232デフォルトの名無しさん:04/04/27 13:23
むしろそれが普通の実行ファイルのサイズと思え
>>227
まあ例えは悪いがVB6ランタイムを入れずにVB6のプログラムを
動かせ、と言っているようなものだからな。.NetになってからOS
レベルでUpdateされるようになってかなり様子が変わったが。
画面キャプチャソフト作ろうと思ってるんだけど
onekeyでprtscrして画像を自動的に指定したフォルダに保存させる
画像名はfor文処理して1.jpg 2.jpg 3.jpg 4.jpg 5.jpg・・・・・・
って感じにする
2回目以降の起動はファイルの上書きを防ぐために
存在してる名前をとばす

作れそう?
おれどうコード書いたらいいかわからんヨ
>>234
ttp://www.geocities.co.jp/SiliconValley/4805/bcbtips/bcbtips070.htm
デスクトップのキャプチャはこれを参考に。
ファイル確認はFileExistsでも使え!
>>234
キンタマウィルス第2弾!?
>>227-231
あれ、
 リンカ→共有 RTL DLLを使う
のチェックもはずさないとダメでしょ、確か?

質問です。
AnsiStringをメンバーに持つクラスをつくる場合でも、やはりコピーコンストラクタは定義しておかないといけないのでしょうか?
メンバー自体がコピーして(コピー先とコピー元)両方同時に使っても支障がない型の場合、
コピーコンストラクタは不要。
(コンパイラが各メンバーのデフォルトのコピーコンストラクタを使用する
コピーコンストラクタを自動的に作成するため)。
ということは, 例えば
class TFoo { public; TBar anInstanse; };
TFoo a, b;
・・・・・
b = a;
などという場合は、代入(b=a;)の時に、TBarのコピーコンストラクタが(定義されていれば)、自動的に呼ばれるのでしょうか?
>>240
呼ばれるのは代入演算子。
あー
そうですね。
サンクス、何となく理解できました。またキマス
243 ◆KcrJZ6hEJI :04/04/28 00:21
>>225
 テストアプリを作ってみましたが、うまくいきません。
なにか根本的に間違っているような気が…

 Form に TImage と TButton 各1個を置いて、Form の OnShow で
Image1->LoadFromFile() でビットマップを読みこませています。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap *BmpTemp = new Graphics::TBitmap;
TRect RectSrc, RectTgt;

RectSrc = Rect( 0, 0, 100, 100 );
RectTgt = Rect( 0, 0, 100, 100 );

BmpTemp->Canvas->CopyRect( RectTgt, Image1->Canvas, RectSrc );

Image1->Picture->Bitmap->FreeImage();
Image1->Picture->Bitmap->Assign( BmpTemp );
Image1->Invalidate();

delete BmpTemp;
}

 Image1->Stretch == true としているので、上記でビットマップの
( 0, 0, 100, 100 ) の部分が拡大表示されると期待したんですが…

できません。なぜなんでしょう?
244141:04/04/28 06:54
想像してたのとちょっと違うコードができてきましたが^^;

BmpTemp の大きさを指定してから、
RectTgt = Rect(0, 0, BmpTemp->Width, BmpTemp->Height)
でいいと思う。
(試してないけど)

RectSrcとRectTgtの大きさが同じでなんで拡大されんの?
246デフォルトの名無しさん:04/04/28 14:47
MEMOコンポーネントのLINESで、特定のSTRING行を強調表示(FONTの色を変えるとか)
するには、どうすれば良いのでしょうか。
>>246
Memoコンポーネントを使わないでRichEditを使う
>>247
ありがとうございます。試してみました↓
RichEdit1->SelAttributes->Color = clRed;
RichEdit1->Lines->Add("RED RED");

 またひとつ利口になりました→SelAttributes
 (後々の事を考えるとMEMOは使わない方が良いのかも?)
>>235
void __fastcall TForm1::fullClick(TObject *Sender){
int i;
AnsiString file_i;
file_i="i.bmp";
Sleep(500);
Application->ProcessMessages();
HDC DC = GetWindowDC(0);
Image1->Width = Screen->Width;
Image1->Height = Screen->Height;
BitBlt(Image1->Canvas->Handle,
0, 0,
Screen->Width, Screen->Height,
DC, 0, 0, SRCCOPY);
//デバイスコンテキストを開放する
ReleaseDC(0, DC);
Show();
for(i=0;i<100;i++){
if(FileExists(file_i)){
break;
}
else{
Image1->Picture->SaveToFile("../i.bmp");
break;
}
}
}
とりあえず某所からソースパクってbtnclickで
ファイル保存って感じにしたんだか、
コンパイルできたけどクリックしても反応なし......
やっぱi.bmpって表現無理しすぎたかな?
for(int i=0;i<100;i++){
  // ファイル名作成
  file_i.printf("%d.bmp", i);
  if(!FileExists(file_i)){
    Image1->Picture->SaveToFile(file_i);
    break;
  }
}

こんなかんじにやってみれ
>>249
for(i=0;i<100;i++){
if(FileExists(file_i)){
break; //<もしファイルが存在したらここでforを抜ける。continueの間違い?
}
else{
Image1->Picture->SaveToFile("../i.bmp"); //<書き込むファイル名は"i.bmp"であって1.bmpや2.bmp等ではない
break;
}
}
}
>>250>>251
指摘してくれてサンクス!
おれの未熟さに呆れる(´Д`;)

んでタスクトレイにアイコン置いて
program実行させるとこまで成功したんだけど
プログラムを起動するときFormが出てしまう
Formを出さすにタスクトレイのアイコンだけ表示させるのは
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
}
にApplication->ShowMainForm = false;
を追加したらいいと思うけどどうやって追加したらいいかワカリマセン...
タスクトレイにアイコンあるだけじゃアプリケーションが
常時実行されてるとは言えるかな?
hotkeyを設定してプログラムがタスクトレイに表示されてるとき
onekeyで画像キャプチャ実行って感じにしたいけど
常時実行状態じゃないとやっぱり無理ぽ?

エロい人おながいします;;
253デフォルトの名無しさん:04/04/28 22:09
254141:04/04/29 00:11
教えてくだされ。
MDIアプリケーションで子フォームの一覧をメニューに表示するには、
WindowMenuプロパティを使えばいいのはわかったのですが、
BCBのIDEのように、イメージ付きでメニューを表示するにはどうしたら
いいんでしょか?
255252:04/04/29 01:09
解決しますた
256 ◆KcrJZ6hEJI :04/04/29 08:34
レスくれたみなさんありがとうです。

>>244
 >>243 の CopyRect の前に次の2行を挿入してできました。

BmpTemp->Width = 100;
BmpTemp->Height = 100;

 コピー先のビットマップの大きさを設定することで…中では
どんなことがおこったのでしょう?

>>245
 CopyRect() で元画像の一部だけを別のビットマップに
コピーし、それを TImage に表示させています。TImage 自体の
大きさは(元画像を表示していたのと)変わらないので、
TImage のストレッチ機能で、コピーされた一部分が全体に
拡大表示されるという目論見です。
 これって方法としては邪道でしょうかね?
BCB6で開発をしている者です。
単純なPGでも作成したEXEサイズがエライおっきいんですが
これを小さくすることはできないんですかね?

どなたか教えて頂けたらありがたいです。
>>257
UPX
259257:04/04/29 20:46
>258

いまUPXで圧縮して人に渡したりとかしてるんですけども
どうも圧縮したEXEを渡すのって気持ちが悪いので・・・

つか、UPXの話がいきなりでてくるってことは、
C++Builderの設定で小さくすることは不可能って認識でおっけーなんですかね?
>>259
正解

VC++で言えばmsvcrt.dllとmfc*.dllがスタティックリンクされてる状態だからどうしても大きくなる。
>>259
他のM$の言語のようにウン十MBのランタイムがいらないことを考えると、
十分小さく思える。
とりあえず「ランタイム使用」でメイクして、必要とされるdllのみ同梱して配布すると
物によっては配布ファイル合計サイズは小さくなる、
かもしれない。
263257:04/04/29 23:35
257です。レスありがとうございます。

>>260 さん
そういえば260さんがおっしゃるようにMFCでもスタティックリンクにするとでっかくなりますね。
>>261 さん
そういえばそうですね・・・
相手がMSランタイム持ってるって前提があるから小さくできてるだけで・・・
>>262 さん
やってみます。

でもまぁどうしても小さいEXEがつくりたきゃWindowsSDKで作れってこってすね(´д`)
GUIの作成はやっぱBCBが楽なんで、サイズくらい目をつむることにします。
皆様、お返事ありがとうございました。勉強になりました。
C++ Builder、C# Builder、Delphiって言語以外大した違いがない気がするんだけど、
何か他に決定的な違いってありますか?
C#Builderは知らんけど、C++BuilderはDelphiにC++の皮をかぶせたような感じなんで、
大して違わんのはまあ当然かな。
Delphi言語はいじってて面白い。クラス参照型なんかは慣れると結構便利。
266141:04/04/30 20:58
C++Builder は大量にあるC/C++のライブラリを、
少々の修正で使えるのがメリット。
(少々の修正ですまない場合もある・・・
今のぼくは boost/spirit が使えないのが悩みorz)
それから Windows 関連のコードって、
やっぱり VC++ で書かれてる例が多いので
移植は簡単。
でも、コンパイルは Delphi より遅い。
バージョン6以降発売されてないので、
このまま消滅するのでは・・・と心配している。

C# Builder はCOMコンポーネントをいじるような
プログラムはVB並にラクチンにできる。
ただし逆コンパイル可能なので商用ソフト作るのには
向かないかも。
作成されたプログラムが .NET Framework が入ってない環境では
動かないのが僕的にはいや。

267141:04/04/30 20:58
Delphi は VCL 関連はやっぱり C++ Builder よりだんぜん
情報多いので、VCL理解できるまでは、C++ Builder じゃなくて
Delphi 使ってみるのもいいと思われ。無料版もあるし。
(C#Builderもある。だけどC++Builderはない。)
コンパイルはすげー早い(みたい)。
あと、linux に移植したくなったら kylix 使えるのも大きなメリット。
僕的には、 begin - end と何回も書かされるのが不快。
便利な with もよくわからないうちに使うと、検出困難なバグを作り込む
原因になる点もいや(昔よくハマッタ)。
C 使いには procedure/function を区別しなきゃいけないというのもよくわかんない。

BCB使いから見るとこんな感じ。(Delphi好きに怒られそうですが)
っていうか、Borland は BCB と Delphi を早くセットで割安販売するようにして欲しい。

(ところで、BCB5 にアップグレードしたとき、Delphi と J Builder の古いバージョンがオマケで
ついてきたんだけど、このサービス今はやめちゃったの?誰かおしえて。)
268141:04/04/30 21:05
(Kylix 3 で C++ にも対応してるみたいです。)ゲショ
>>265-268
なるほど。Delphiはちょっと使ってたことあるんだけど、Pascalに慣れてないせいか
ちょっと違和感があったなぁ。まぁそれがまた面白いんだけど。
ただ普段はC++使ってるからBCBとかの方が頭の切り替えいらずで便利そう。。
過去の資産も利用できそうだし。アハァ、フリー版ほすぃ(*´Д`*)。
>>269
某がBCBのフリー版出したとすると、それと同時に「今後BCBの
開発は停止します」なんて言い出しそうで怖いじゃないか。
そうでなくても開発停止してるらすぃのに。
271デフォルトの名無しさん:04/05/01 04:36
age
272デフォルトの名無しさん:04/05/01 09:08
C++BuilderでVBのfor eachのような操作はできますか?
vectorとiterator
274141:04/05/01 12:42
HSPしかやった事のない阿呆が粋がってBorland C++ builderをインストールしてがんばっているんですが、
DOS窓とかそういう概念がないのでまずそこから学びたいのですが何処かいい所を知りませんか?
>>276
ありがとう!立派なプログラマーになって帰ってくるよ!
278141:04/05/04 12:05
>>275
正直、趣味でプログラムやるなら、いまからDOS勉強してもあまり使うところがないのではないかという気が。
C# Builder やったほうがいくね?
(まぁ、趣味なんだから自分が一番好きなのやればいいとは思うけど)

ところで、今、ボーランドのサイト行ってみたら、 Delphi の personal 版ってダウンロードできなく
なっちゃったみたい・・・。CD持ってたら、ライセンスキーの発行はするみたいだけど。
280デフォルトの名無しさん:04/05/04 12:56
堤さやか \952
「とびっきりSUNDAY,・・・fall in love ♥」
281141:04/05/04 14:33
ttp://www.borland.com/products/downloads/download_delphi.html
ここ見てまして・・・orz
でも、なさそうに見えるよね・・・(英語苦手なワシ)
StringGridのスクロールバーをListBox等と同じようなバーにするのはできますでしょうか…
使いにくい…
>>282
OptionsのgoThumbTracking = trueで一歩近づく。
StringGridのスクロールバーを消して
ScrollBoxに入れる。
BCB6のWindowsAPIの日本語Helpってどこにありますか?
見つかりました。Disk2にあったw
C++Builder5 + ADODatasource + Access2000で動いてたアプリケーションがAccess2003で動かなくなったんだけど、C++Builder6では大丈夫なんだろうか?
データの読み書きできてるんだけど
「BOFとEOFのいずれかがtrueになっているか・・・」
というエラーがでることがある。
>>285>>286
そんなの入ってたか?俺のは入ってないぞ。(Pro)
Ent版のみの付録か!?
289285:04/05/05 22:32
>>288
API32WH.hlpで検索してみる
>>288
ディスク2の\INFO\EXTRAS\JPHELP
ヘルプのカスタマイズでIDEからF1で表示させることも可能。

ちなみにPersonal版にも入ってる。
それ大昔のやつでしょ。>>日本語ヘルプ
まぁ、概要を読んで勉強するのにはいいけど、
実際にリファレンスとして使うときは
現行のヘルプと照らし合わせが必要だよ。
>>291
最新の情報は英語ヘルプを見ろと書いてあるのにその英語ヘルプもやや古かった気が‥‥

HTMLHelp版なり現行のDocumentExplorer版のPSDKドキュメントを直接呼び出せれば便利なんだけど‥‥
>>289-292
サンクス。確認できました。これ、俺Borland-C++5.02Jの正規
ユーザなんだけど、そいつに入ってる奴と同じみたいだね。
Borland-C++はとうの昔にHDDから消したから、忘れてた。

英語版と違い、Win95/2000の違いが全く書いてないので今使う
には注意が必要だけど、これはこれであっても面白いね。
待てよ、英語版でも2000についてのドキュメントは無いか・・・・
2000のAPI本があるからそれを見てるけど、分厚くてねえ。

BCBのHELPは糞_| ̄|○
当時は見やすいと思ったんだけどね。
メンテナンスされてないから。
297デフォルトの名無しさん:04/05/06 10:23
StringGridのGetEditMaskで0〜255までの入力制限をさせたい場合どのように記述すればいいのでしょうか?
TFormのOnResize時にコトを起こしたいのだけれど、OnResizeってFormのクローズ時にも呼ばれちゃうのねん。
ホントにFormのリサイズ時にしかコトを起こさないようにするにはどーすれば?
おせーてエロいシト。
>>298
呼ばれるか?
300141:04/05/06 13:25
>>297
ヘルプで FormatMaskText の項をみるべし。
301デフォルトの名無しさん:04/05/06 14:11
>>300
それは見たんですが、入力範囲を指定する方法がわからなくて・・
302141:04/05/06 18:18
>>301
実はアレをみても解決しない^^;ちょっと冷やかしてみたかったの。
GetEditMask ではキミのやりたいことは多分できない。
(ぼくの知識がたりないだけかもしれないが)

OnSetEditText イベントで数字が範囲内に収まってるかチェックするか、
OnSelectCell と OnExit を使って、当該セルからフォーカスが移動した時にチェックするのが、
常道なのではないかと。

それとも、GetEditMask にこだわる理由があるの?

間違えたって言えない人間か
304デフォルトの名無しさん:04/05/06 19:08
>>302
いえGetEditMaskにこだわる理由はまったくないのですが、
そのイベントのヘルプをみたらそれらしいことを書いてたのでできのかなって思ったもので

OnSetEditText って入力されるたびに発生するのですが、l
それが最後に決定されたかどうかはどうやって判断すればいいのでしょうか?
305141:04/05/06 23:31
ぼくも使ってみたのは昔のことなので、うろ覚えとことわったうえで回答しますが、

OnSetEditText は1文字入力するごとに発生したと思います。
(っていうか、それぐらいは質問せずに、自分で実験しろよ、と)

決定されたかどうかは、編集中のセルが移動した(OnSelectCell)もしくはフォーカスが他の
コントロールに移動した(OnExit)をもって判断すれば良いのではないかと思います。
これが方法1。

で、試してないのでなんともいえませんが、OnSelectSell で EditorMode プロパティを
参照すれば、確定済みかどうかわかるかもしれません。方法2。

まぁ、方法2のほうがお手軽なんで、試してみてだめだったら、方法1で実装すれば?
差し支えなかったらなに作ってるのか教えて。それがわかれば、また、別の
アドバイスのしようもあるかもしれないし。
>>304
>それが最後に決定されたかどうかはどうやって判断すればいいのでしょうか?
OnSetEditText内で判定するのは不可能。
普通はセルから出ようとするとき、つまりOnCellSelectで判定する。
OnCellSelectは移動する直前に発生するので、
不正な値が入力されているときは移動させないことができる。
ただし、Cellを移動せずにStringGridから出たときも入力値のチェックが必要になると思う。

あとは、TDBGridを使うことを考えるというのも実際的な判断。
>>305
EditorModeをどのイベントが判定するのか?という問題が残るので
OnSelectCell and OnExitを使うしかない。

あとはTDBGridつかうか、いっそカスタムコンポ作るか。
追加。
入力値に制限があるときは、そもそもインプレースエディタを使わず
別に入力フォームを出すというのもありだな。
つか、オレだったら多分こっちにするわ(w
309141:04/05/06 23:46
>>307
OnSelectCell 内で

if(EditorMode){
// 編集中
}else{
//確定済み
}

みたいにかけないかなぁと、ふと思いました。
試してないんだけどね。

(・・・OnSelectSell と書いているよ、オレ orz)
>>309
問題になってるのは「どのタイミングで入力値の検査をするか?」でしょ。
たとえば入力値を訂正するときなんか、一時的に不正な値が入力されることは多々あるので、
入力値の検査はエンドユーザが入力を確定したときに行うのが理想。
TDBGridなんかはそのように実装されている。
でもTStringGridをそのまま使うならOnSelectCellかOnExitで検査するしかないと。
その場間と、わざわざEditModeは見る必要は無いと思う。
まぁ、>>303氏が何を考えてるか分からんから何とも言えんけど。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
while(1){
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{

}
Button2の中になにをいれれば1のループを抜けれますか?
>>298
実験していないのでアレですが、OnResize の中で
TForm の ComponentState だったかっていうプロパティを
見て、コンポーネントが破壊されている途中かどうかを
判定するという方法はとれないですかね。
>>311
そのままでは不可能。
Button1Clickの実行中にButton2をクリックしたとしても、
Button1Clickから戻らない限りButton2Clickは実行されない。

手としては、Button1Clicを止めるためのフラグを用意して、
Button1Clickのループ内でProcesMessages()→フラグ判定。
Button2Clickでフラグをいじる。

もしくは、スレッドを使うか。
スレッドだろうな。
状況次第だが、ビジーループは避けたほうが無難。
Form上のコンポーネントをダイナミックに配置換えしたいのですが、
遅いマシンだとパラパラと動いている様子が見えてしまいます。
配置開始時に親フォームのVisible=falseにして、終了時にVisible=trueにしても
なんかいまいちなのですが、何かテはありますでしょうか?
>>315
LockWindowUpdate(Form1->Handle);
// コントロールの移動
LockWindowUpdate(NULL);

これで移動する様子は見えなくなる。と思う。
>>315
TWinControl::DisableAlign()
TWinControl::EnableAlign();
>>313>>314
void __fastcall TForm1::Button1Click(TObject *Sender)
{
while(1){
if(Flag) break;
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
CreateThread->MyThread;
}
Unit2.cpp
__fastcall MyThread::MyThread(bool CreateSuspended)
: TThread(CreateSuspended)
{

}
void __fastcall MyThread::Execute()
{
Flag=true;
}
こんな感じ?
> Button1Clickの実行中にButton2をクリックしたとしても、
> Button1Clickから戻らない限りButton2Clickは実行されない。

これをおもくそ無視してるな
>>318
ビジーループ方式ならこう。
//bool FlagはTForm1のprivateメンバ
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Flag == false;
 while(1){
  ProcessMessages();
  if(Flag) break;
 }
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Flag == true;
}

スレッド方式だと、大筋は同じなんだが、
 ループ処理をTThread::Excute内に書き、別スレッドの処理とする。
 ProcessMessages()は不要。
 フラグはTThread::Terminatedが用意されているのでこれを使う。
あとはTThreadを使うときのお約束がいくつかあるのでそれはヘルプを読むと。
↑訂正
あいや、代入が等号になってら。
 Flag = false;
 Flag = true;
です。
>>319
その下にフラグで解決できると書かれてあったので...
理解できなくてスマソ
>>313>>314>>320
サンクス!
ビジーループとスレッド両方試してうまくいきました
323315:04/05/07 16:46
>>316,317
THX!
僕の望んでいた動きをするのは316でした。
でも317もありがとう。
AnsiString stra;
int b=10000;
void __fastcall TForm1::set_cClick(TObject *Sender)
{
stra=InputBox("TIMER","input autocap timer","");
b=StrToInt(stra);
}
void __fastcall TForm1::fullClick(TObject *Sender)
{
Sleep(b);
}
sleep();の()の中の数字をinputBox関数で入力するにはこんな感じでいいですか?
コンパイル通ったけどうまく作動しないです
325324:04/05/07 17:43
解決しました
数字を入力し間違えただけでした
>>324-325
それだと数値以外が入力されたら例外が出るぞ。
StrToInt を StrToInDef() に変えて数値が入力されて無い場合にも対応した方がいい。
スマン。
×StrToInDef()
○StrToIntDef()
の間違い。
328324:04/05/07 19:30
>>326>>327
親切にサンクス!
void __fastcall TForm1::Button1Click(TObject *Sender)
}
Button1->ShortCut = HotKey1->HotKey;
}
これでhotkeyを設定してますけど
hotkeyを押しても作動しません
なぜでしょうか?
hotkeyを何回か変えてみたけどだめみたい
>>329
そらTButtonにShortCutプロパティは存在しないからだな。
という突っ込みはさておき、TMenuItemなりActionなりのShorCutに
代入すれば問題無く動作するはずだが?
動作しないとしたら別のところに問題がある。
331328:04/05/08 01:12
>>330
TPopMenuに代入してみたけど
window状態だと動作するけど、タスクトレイに収まってるときは動作しない
これが問題?
>>331
そら当たり前だ。
333328:04/05/08 12:58
>>332
ってことはタスクトレイをアクティブ状態にしたらいいのか?
なんか解決法ないかな
>>333
キーをフック
次バージョンのBCBは年内に出るだろうか?
それとも投売りしてるBCB6を買うべきか…悩
先ほどコンパイル中にIDEが落ちて(不正な処理ダイアログ出ず)、
再起動させようとするとBCB6のスプラッシュウィンドウが表示されるだけでIDEが起動しなくなってしまいました。

どうしたもんでしょう?
解消する手がかり知りませんか?
>>336
とりあえずPCを再起動してからためしてください
338336:04/05/08 16:19
>>337
ダメみたいです。
>>335
どうもBCBは6で終わりって話らしいデスヨ
おまいら BCBX を忘れていませんか?
つまりそういうこった。
>>340
何言ってるかわかりませんが。
BCBX が BCB の後継だと思ってるなら、それは間違いです。
>>341
340の言ってることも間違ってるとはいえない。
要望が出れば統合もありうるらしいから
BCBX と BCB が統合されちゃったら、
Kylix との棲み分けをどうするのかヒジョーに疑問。
だから、統合はないと思うんだが。
    ∧,,∧  こった。
   ミ,,゚Д゚彡
    ミ つ旦)~~
  〜と,,,~),,~) 

エンタープライズ:Borlandにとって「Kylix」は忘却の彼方に?
http://www.itmedia.co.jp/enterprise/0311/05/epi01.html
エンタープライズ:変わり始めたボーランドの製品戦略――「C++製品群は、C++BuilderXに統合される」
http://www.itmedia.co.jp/enterprise/0311/05/epn10.html

JBのベースはprimetimeっていうんでしたね。
BDS(.NET)のベースのはなんていうん?
345デフォルトの名無しさん:04/05/10 05:15
C++BuilderXに統合されても、別製品として、VCLやCLXをサポートする
ものが出ると思うけど。
もし、VCLやCLXがサポートされない場合はDelphiを使うしかないかな。
C++BuilterXでコンパイルしたものをDelphiで使うことは可能だと思う。
>336
直前まで開いていた(つまり今回BCB6が開こうとしている)プロジェクトの
.dskとか.resとか.tdsなんかを削除してから起動してみて下さい。
BCB5ではこんなことなかったんだけどなー。

話し変わって便乗質問。
「スプラッシュウィンドゥ」ってどうやって組み込めばいいのでしょうか?
>>346
TApplication::Runのヘルプ嫁
348346:04/05/11 10:27
>>347
THX!
新規作成のスレッドオブジェクトで
Unit2.h
class TReverseImage : public TThread
{
}
として、
Unit1.h
private:
TReverseImage *mReverseImage;
とすると、以下のエラーが出ます
(TReverseImage *mReverseImage;)->E2303型名が必要、E2139宣言に;がない
ヘッダーファイルは読み込んでるんだけど な〜んでかな?
ちなみにBCC5Learning
>>349
Unit2.hがその通りの記述なら、Unit2.hでTReverseImageクラスが宣言されていない。
>>350
あ、間違えました
Unit2.h
class TReverseImage : public TThread
{
};
記入漏れでした→';'
宣言できてると思うんだけどエラーにナリマツ
スペリングミスに一票
353 :04/05/11 17:36
テレビで47氏が押収されたものとしてC++Builderが出てきてたね。
誇らしい。
ある関数に引数としてコンポーネントを与え、そのコンポーネントのOnClick時にコトを起こしたい。
って、ココまではOnClickイベントを奪取(上書き)すれば出来ますよね。
でも、奪取する前に元々記述されていたOnClickイベント時の動作も行いたい。ってのはどうすればよいのでしょうか?
>>354
表現が非常に不正確で何が言いたいか明確に分からん。
プログラミングの質問なんだから用語をきちんと使いなさい。

イベントハンドラも関数なので、別関数から普通に呼べるし、
コンポーネントの各イベントに対するイベントハンドラは
代入により動的に変更できる。

これだけ分かってたら何とかなるだろ。
何とかならんかったら、もうちっと明確かつ具体的に質問汁。
>>353
誇らしいって、をい(w
>>353
Winny2はC++Builderで組まれたものだろ。(Winny1はVC++)
358デフォルトの名無しさん:04/05/11 22:15
>>351
Unit1.hで#include "Unit2.h"とかして、Unit2.hで#include "Unit1.h"とかしてないか?
んで、Unit2.hが#ifndef〜#define〜#endifされてないと見た。
359354:04/05/12 09:35
>>355
しゅいましぇん。

class Hoge {
 TButton* buttonp;
public:
 Hoge(TButton* _p) : buttonp(_p) { buttonp->OnClick = onclick; }
 __fastcall void onclick(TObject* sender);
};

こうすると、引数で与えられたTButtonのOnClickイベントを変更出来ますが、
このTButtonに元々書かれていたOnClickイベントも(onclickの後に)実行したいのです。
ご助力を〜。
360デフォルトの名無しさん:04/05/12 11:03
>>358
それぞれの.hはそれぞれの.cppにincludeされてました。
#ifndef〜#endifもBCCが作ってくれてました。
で、シコシコ いじってたんですけど…
private宣言ではエラーになるので、.cppファイルのメソッドの外で宣言したらコンパイルできました。
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

static TReverseImage *mReverseImage;//Unit1.hのprivate:で宣言できなかった

//---------------------------------------------------------------------------
void __fastcall TMainForm::StartButtonClick(TObject *Sender)
{
    mReverseImage = new TReverseImage(false);
}
void __fastcall TMainForm::StopButtonClick(TObject *Sender)
{
mReverseImage->Terminate();
}
>>359
元のを保存しておくしかないんでない
class Hoge {
 TButton* buttonp;
 TNotifyEvent oldOnClick;
public:
 Hoge(TButton* _p) : buttonp(_p) {oldOnClick = buttonp->OnClick; buttonp->OnClick = onclick; }
 __fastcall void onclick(TObject* sender)
 {
  :
  if (oldOnClick)
    oldOnClick(sender);
 }
};
362359:04/05/12 14:12
>>361
VeryTHX!!
>>360
>それぞれの.hはそれぞれの.cppにincludeされてました。
それならUnit1.hではTReverseImageは宣言されてないじゃないか。

//Unit1.hで
class TReverseImage; //先行宣言
class Form1 : TForm {
private:
 TReverseImage* mReverseImage;
 ・・・



あー、初心者の「ヘッダファイルはインクルードしてます」を鵜呑みにしたらあかんと。
>>359
TButtonから派生させたら早いんでないの?
>>363
ご指摘のとうりでした...首洗ってイラクへ行ってきまツ


みなさま サンクスコ
メインフォームとサブフォームの2つのフォームがあるのですが、この2つのフォーム両方を
常に手前に表示することはできるのでしょうか?
(例えば、メインフォームとデバッグ用フォームを常に他のウィンドウより手前に表示しておきたい)

SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
このAPIを両方のフォームに適用しても両方が常に最前面に表示されません。

/*
サブフォーム、メインフォームの順にSetWindowPosすると一見両方に適用されたかのようになりますが
サブフォームをクリックしてアクティブにすると、両方のフォームの最前面表示が解除されてしまいます。
*/

どなたか教えてください。
質問でーす
クロージャって、C#でいうデリゲートの事ですか?
BCB9

年末の Delphi9 といっしょに BCB9 リリース。
ttp://groups.google.co.jp/groups?selm=40a10a2f%241%40newsgroups.borland.com

こっちのほうがよいかも
ttp://homepages.borland.com/aohlsson/blog_beta/archive/2004_05_09_archive#108429619147508564

まだ「計画中’らしいが、じきに発表があるらしい。
おー・・・・
見捨てられてなかったか。
>>367
メソッドのアドレスをインスタンスと一緒に保持する点は同じ。
デリゲートの他の機能はナシ。
>>353

"市販のウィニー作成ソフト"
ttp://headlines.yahoo.co.jp/hl?a=20040510-00000651-jij-soci

こんな紹介されてるぞ。
373デフォルトの名無しさん:04/05/13 18:25
ListViewのEditedイベントでEnterキーで編集を決定するとKeyUpイベントが呼ばれてしまいます。
キャプションの編集をEnterで完了してもKeyUpイベントを呼ばれないようにするにはどうすればいいですか?
>>373
そら、キーが押され離された以上、KyeUpイベントは発生するがな。
KeyUpイベントを使うなら、その中で判断するしかない。
↑補足
キャプション編集時だけの問題なら
その間だけKeyUpイベントを無効にするという手はあるな。
TListView::OnEditingでTListView::OnKeyUp=NULL;
TListVew::OnEditedでTListView::OnKeyUp=<もとのイベントハンドラ>
BCB9を早くも心待ちにしています。今度はVC7.1に負けない
最適化コンパイラにしてくれよ。それとboostが通るように
template周りのバグを取ってくれ・・・・と言っても無理か。
無理だろうなぁ・・・
BuilderXの追加パッケージみたいなのに、100%コンパイラとやらのプレビューみたいなのがあったから、
boostは大丈夫じゃない?
最適化は…Borlandは最適化よりもコンパイル速度を取るようなとこだから…
379367:04/05/13 23:32
>>371
さんくすでーす。
>>372
"市販のウィニー作成ソフト" ワロタ
この記事書いた奴 ほんとアホだなー( ´∀`)
何故か知らんが、「市販の」ってついた途端に妙に胡散臭くなるな・・・。
うーん、この手の記事はK冊の発表の通りじゃないのかな?
>>372,380
わははは。きっと、

 『ウィザード形式で、アナタも簡単にウィニーが作れる』

というセールストークで、ソースネクストあたりが売っているに違いない。
TWinnyというコンポーネントはどこにありますか?
>>384
C++Builder9 Underground に搭載されます。
それは、どこで売ってますか?
>>386
もちろん、nyにフリーでながれますよ。
>>383-387
ワロタ
見覚えのある青いパッケージが写ってるな。

ttp://www.sankei.co.jp/news/040510/sha054.htm
nyで落としたのかと思ってたんだが、外したか。
これが有名な "市販のウィニー作成ソフト" ですか
世間に認知され誇らしいですね ホr(ry
「わたしはこれ(BCB)で、人生ボウにふりました」
・・・とかって、CMしたら少しはBCBも普及するかなぁ・・・
厳密にいえば、最初のWinnyは確かVC++で作ってたはずだから、
まずそっちで棒に振ったんだけどな。
棒に振ったのか?
うちのアホプログラマーとリプレイスしたいくらいなんだが。
>>395
そこで働くことになれば、まさに棒n(ry
ふ〜ん、これと同じBCBであんなプログラム作れちゃうんだなぁ
・・・と思いつつ、ジッとIDEの画面をながめている鬱なオレ。
>>397
nyはアイデア勝負で技術的にはさほどのものでもないと思うのだが?
>>398
どうだろうねえ、仮想ネットワークを構築してあれだけ
安定して動くのはなかなかのものだと思うんだけど。

暗号化が弱いのがちょっとって感じかな。
でもパケット暗号はキー交換して動的に公開鍵暗号使っているんだからなかなかのものだと思うよ。
キャッシュ暗号はさすがに変換速度からして複雑な暗号はできないみたいだけど。
>>398
是非とも後継を・・・
>>398
単純にAPIの使い方とかTCP/IP知ってるだけで組めるものじゃない。
P2Pとグリッドの知識が必要。
別に悪用する気はないけど、ソース見てみたいね。
まぁ見てもオレには殆ど理解できないだろうが。
クライアントサーバシステムを作るのもデバッグ大変そうなのに、P2Pになるともっと大変そうだな・・・。
棒とボーランドの「ボー」をかけてることに気づけ
406デフォルトの名無しさん:04/05/16 06:50
http://www.yukibow.com/bcb/index.html
ここ登録した人いる?
>>406
そのサイトがこのスレでどう思われてるか知りたかったら過去レスよめ。
408デフォルトの名無しさん:04/05/16 11:58
>406
いない
もうnyで流れてるんじゃないの。
それとも未だに会員数ゼロで宣伝カキコか
409デフォルトの名無しさん:04/05/16 14:07
毎月500円って・・・あの内容では会員なんて誰もいないでしょう。
始めてみる純粋な初心者さんならあるいわ。
最低6000円払わないといけないんなら、パワフルテクニックあたり買ってきたほうがいいな。
検索すればどっかしらのページで解説されてるよな。
オレはいつも「C++Builder-ML 過去ログ検索」だが。
ここの検索で疑問点が解決しなかったことないし。
そこってさぁ、更新止まってない?最近のメールは引っかからないようなんだが。
最新のはないけど、逆に定番の質問ばかりだからかえって便利。
実質FAQだね。それに旧VerのBCBでの回答の方が上位互換あるし。
少なくとも >>406 に出ているTipsくらいならすぐに調べられる。
415デフォルトの名無しさん:04/05/16 17:56
お助けを…
BCB6 UPD#4とIndy9.0.14を使ってます
新規作成=>アプリケーションで新たなフォームを出します
unit1.cppで
#include <shlobj.h>
を入れ、[プロジェクト]-[オプション] の [ディレクトリ/条件] タブにある[条件定義] に
NO_WIN32_LEAN_AND_MEAN
を追加します。
ここまでは無問題でコンパイルできます。
次にInduClientのIdHTTP1をポトリとフォームに落としてコンパイルしようとすると、

[C++ エラー] winsock2.h(###): E2238 '*****' の宣言が複数見つかった
[C++ エラー] winsock.h(###): E2344 一つ前の '*****' の定義位置

というエラーの列がズラズラ出て最後は
[C++ エラー] winsock2.h(625): E2228 エラーあるいは警告が多すぎる
でコンパイルが止まります。
何故?皆さんのはならないですか?
416415:04/05/16 20:19
タイポした
InduClient ではなく IndyClient でした
>>415
その通りやってコンパイルはできた。でもIdHTTPを使うコードを書くとリンカエラーが出た。
で、<shlobj.h>を<shlobj.hpp>にしてNO_WIN32_LEAN_AND_MEAN を外したらコンパイルできた。
418415:04/05/16 23:03
>>417
ありがとうございます
あなたはネ申です
ちらつきを抑えるほうほうってない?
>>419
それだけの質問だと、「モニタのリフレッシュレートを上げろ」が回答になってしまう。
質問は具体的かつ明確にすべし。

とりあえず>>315あたりを読むと参考になるかもしれない。
ならんかったら質問しなおせ。
421デフォルトの名無しさん:04/05/17 20:29
BCB9が出ると仮定して、BCB9に何を求めます?


とりあえず、ヘルプのリンク切れは直しておいてほしいが・・
VisualStudio.netライクなコードエディタ
>>421
まともにboostが使えるコンパイラとエラー吐かないIDE。
DirectX開発環境標準添付。
>>421
日本語版がリリースされること。
426デフォルトの名無しさん:04/05/17 23:44
>>425
はぁ?日本語あんじゃん
427デフォルトの名無しさん:04/05/18 00:13
>>426
BCB9が出たらの話・・だよね
428デフォルトの名無しさん:04/05/18 00:14
C++Builderってダイアログベースなアプリしか書けないのですか?
>>428
MDIでもサービスでもドライバ以外ならなんでもできる。
430デフォルトの名無しさん:04/05/18 00:35
VC++みたいにModelとViewの分離は自分でこさえるしか
ないのんかしら?
431デフォルトの名無しさん:04/05/18 01:58
万が一にでもBCB9が出る兆候はあるのかい?
だいぶ前Cマガで某島の偉い人のインタビューがあって
BCBの次回作について聞いたらお茶を濁してたんだが
433デフォルトの名無しさん:04/05/18 05:54
C++Builder 9がマジなら俺は即購入するよ。
いまは5使ってるしね。
オレも、即、nyで探す。
>>435
2chブラウザ使いなさい。
やっぱり
「日本語版がリリースされること」
かな?
日本語化されなくてもいいから、日本語を扱える開発環境。かな?
はじめから多言語対応してて
フォントさえ正しく設定すればなんでも動くようにしてあればいいんだよね
フォントの設定はインストール時に各言語選べるようにしておけばいいんだし
439デフォルトの名無しさん:04/05/18 11:13
gvimと完全連動
440デフォルトの名無しさん:04/05/18 11:41
エディターどうにかしてくれい。
キーのカスタマイズできるようにしてくれい。
441デフォルトの名無しさん:04/05/18 11:56

著作権法違反ほう助の疑いで逮捕されたWinny開発者の47氏の為にTシャツを作って応援しましょう。
まずは以下の投票所でこれを着て応援したいというデザインを投票してください。
締め切りは5/19日、皆さんの協力よろしくお願いします

投票所
http://f40.aaacafe.ne.jp/~nytshirt/
投票の前にここを読め
http://f40.aaacafe.ne.jp/~nytshirt/readme.html
まずは予選です。良識をもって投票しましょう。

------------------------------------------------------------------------------




442デフォルトの名無しさん:04/05/18 13:54
TreeListやListViewEnabledをfalseにすると全リストが灰色表示になるのですが
これ灰色にならずに普通に触れないようにするにはどうしたらいいのですか?
>>442
ウィンドウプロシージャを切り替える等して、
ユーザー入力に対応するイベントを潰すくらいしか思いつかん。

灰色じゃ駄目なの?ユーザーから見たら灰色の方が分かり易いと思うけど。
>>442
ReadOnly=true
じゃいかんのかな?
445デフォルトの名無しさん:04/05/19 02:10
C++Builder ver6 personalを使ってます。
インターネット上からファイルをダウンロードするライブラリはないでしょうか?
446デフォルトの名無しさん:04/05/19 02:21
nai
Winsockかな。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/1512/

ここをみたらできました。ネット関係のプログラムは、難しそうですががんばってみます。
>>445
単に落とすとかならそれで十分だが、色々やりたいならIndy入れてみ。
450デフォルトの名無しさん:04/05/19 11:42
>>443
いや灰色はいいんだけど、全ツリーが灰色になるんで
ツリーをクリした後にこれになると選択したノードがどれかわからなくなってしまうから
>>444
いかないですそれ。
最新のC++Builderは "-P" が含まれるフォルダにあるプロジェクトがビルドできない不具合解消されてんのかな?
452デフォルトの名無しさん:04/05/19 16:36
質問させてくださ〜い。
既にデータセットされてるテーブルに、新しいフィールドを追加するにはどうすればいいんですか?
>>452
再構築する。動的にやりたかったら新たにテーブルを作ってデータをコピーする。
454デフォルトの名無しさん:04/05/20 12:05
大規模なデータを操作するためデータベースの使用を考えています

具体的には株価データで、操作は、
(1)ある特定の銘柄の過去のデータ(5年分の日々のデータ)の読み込み
(2)最新の一ヶ月分程度のスパンで全銘柄のデータを読み込み
が必要です。

はじめは、データベースの知識が無いので銘柄ごとにファイルを分割して、時系列に並べる構造を考えました。
(1)は高速に行えると思うのですが、(2)は、この方式だと効率的に管理できないと思います。(アクセス時間が莫大になる)
このような用途では、データベースが良いのではないかと想像してます。

Personalなので、データベースコンポーネントが付属してません。
Proを買ってもいいのですが、どうやら新バージョンがでるそうなので躊躇します

Office付属のMsAccessは持っているので、こちらにアプリケーション間アクセスのような手法で
Pro版を買わずに実装できないでしょうか?
>>454
データベースの知識がないのに、自力でデータ操作のプログラムができるわけないな。

ま、がんばってADOのプログラム書けば、自力で書けるだろうけど。
こういう質問してるところ見ると、その力はないと思うけどな。

で、MS-Accessで「大規模」なデータを扱うべきでもないな。
MSDE使えばいいのかな。
456 :04/05/20 12:15
>>454
COM使え
読み書きならばできるはず
457デフォルトの名無しさん:04/05/20 13:19
>>456
どうもありがとうございますm(_ _)m

>>455
次からはそういうポエムではなく、まともな回答を心がけて下さいね(^^;
>>457
第三者から見ると、>>455の回答のほうが適切なんだが。
無理して第三者とか言わなくていいです(^^;
>>459
じゃあ、無理せずCOMからやってくれ。









「バカにつける薬はない」
>>455
は、ポエムじゃないだろう。きわめて「まともな」回答以外の何者でもないぞ。
自分の耳に厳しいことは「まともな」回答に聞こえないのかい?
しらない単語が並んでるので、ポエムにしか見えなかった、に50VCL
463デフォルトの名無しさん:04/05/20 14:39
こんな風に何回も連続で書き込むほどキレるようなことかなぁ・・・(^^;
464デフォルトの名無しさん:04/05/20 14:45
>>453
ありがとうございます。
テーブルデザインを直接変更することはできないんですね(´・ω・`)
仕方ないのでもう一つ新しいテーブル作ってBatchMoveでコピーしたら
今度はフィールド名が正しく設定されないし・・・。
フィールド名の最後の文字が"_(アンダーバー)"になってしまうのはなんなんでしょ?
ちなみに14個フィールドを追加したうちの2個がそうなってしまいました。
465456:04/05/20 14:51
>>454
455とケコーンしてしまったわけだが。
要は、COMコンポーネントとしてADOがあるから、それを使えってこと。

BCB9が出るかどうかまだ判らんし、素直にProを使え。
特に、業務であるならばその工数分はペイできるはずだから、上司と相談しろ。


>>455,457-460
正直、すまんかった。逝ってくる 
 ∧||∧  
(  ⌒ ヽ 
 ∪  ノ 
  ∪∪  
466455:04/05/20 14:53
>>463
おれは連続して書き込んではないけど、被害妄想にとりつかれたら、自分に対する意見はすべて同じ人物からに見えるものだな。
もう一回だけ書いといてやるけど、COMでAccess操作するくらいなら、データベース操作用に抽象化されたADOでやったほうがいい。
でも、ADOを生で使うのは、それなりに面倒なので、覚悟したほうがいい。
出るか出ないかわからないBCB9を待つよりはPro買え。
それにAccessは大量データを扱うのには向いてないから、せめてMSDEでやれ。

もちろんCOMでやってもいいけど、ADOがやってくれてる部分も自分で書かないといけないから、勧めない。

ここまで書いてやってもポエムとかほざくようなら、一回死んで次に生まれたときにバカが治ってることを祈った方がいい。
467デフォルトの名無しさん:04/05/20 14:55
>>466
> 被害妄想にとりつかれたら、自分に対する意見はすべて同じ人物からに見えるものだな。
そこまで自分のことがわかっているなら、ちゃんと反省しましょうね(^^;
468455:04/05/20 14:55
>>465
やはりケコーン
みんな親切だなぁ・・・。
全然通じてないみたいだけど(苦笑
>>467
>そこまで自分のことがわかっているなら、ちゃんと反省しましょうね(^^;
反省だと?
ここまで人々が様々なアドバイスをして、それがすべてあなたの反応に起因している
のにまだ気づかないのか?
反省すべきはあなたの態度じゃないのか?

>>465-466
お疲れ。あんたが逝くこたぁないよ。
>>470
気持ちはわかるけど、そろそろスルーしようぜ。
472470:04/05/20 16:33
>>471
すまない。熱くなってしまった。大変申し訳ない。
473デフォルトの名無しさん:04/05/20 16:38
この人、最後まで被害妄想にとりつかれて相手を同一人物扱いしたままだったね(^^;
>>467のことね。
475456:04/05/20 17:04
>>470
tnx
荒れ気味になってしまった要因は俺にもあったから、お詫びに一個話題を振ってみる。

BCBのパッケージに付いてくるCompanion Toolsにあるいくつかのコンポーネントってどうよ。
LMD-Toolsは前から使っていて重宝しているけど、他のはどう?
取りあえず、TMS Grid PackとABC for Delphiはインストールしたけど、こいつらを使ったことがある奴いる?

TurboPowerのやつもインストールしたから、俺のコンポーネントパレットはタブがすごいことになっている。(w
476デフォルトの名無しさん:04/05/20 17:06
アクセスあるなら、アクセスで簡単にできるだろ。
SQLなんて一週間もあれば余裕で理解できるから、SQL憶えることだな。
477470:04/05/20 17:12
>>475
いまだにDelphi5.0なので微妙に異なるが、
TMSは3年以上使っているけど、マジにお勧め。Gridもさることながら、
附属のコントロールは非常に重宝している。正式版購入した方がいいかもよ。

>TurboPowerのやつもインストールしたから、俺のコンポーネントパレットはタブがすごいことになっている。(w
自分Delのタブの数数えてみたら60くらいあった。ほとんど中毒症状だわ…。
478464:04/05/20 17:21
なんかタイミング悪いときにきちゃったみたい(´・ω・`)
なんか板違いな質問のようで恐縮なんですが…

MS Excelでいうところの「INT」と同じ機能な、一発で値を返してくれる関数ってないでしょうか?
『INT:数値を超えない最大の整数を返す。例:INT(8.9) = 8』
>>479
static_cast<int>(std::floor(8.9))
ではどう?
(int)8.9 じゃダメなの?
>>481
負の値の時の動作が未定義
>>479
それって
int(8.9); // = 8
でいいんじゃないの?
484141:04/05/21 02:05
>>478
BDE-API 使え
理解するのに苦労するが
>>483
それも、負だと未定義。
floor関数でいいじゃん。
486479:04/05/21 10:06
>>480-485
考えてみたらBCBじゃなくてC++な質問でした。
板違いな質問にご回答頂きありがとうございました。
すいません。BCB6+SP4を使っています。
エディタについて質問させて下さい。

普通のエディタだと、選択してdelを押せばその文字は全部消せますよね。
BCBのエディタでは、それが消せないように思うんですが、なんとかなるもんなんでしょうか?

なんか使いにくくて(泣)
>>487
うちのBCB5は消えてくれるが
>>487
うちのBCB6+SP4も消えてくれるが
490487:04/05/21 11:30
>>488-489
えーっ! なにがイカンのだろう……?
エディタ設定でなんかなるんですかね(泣)
>>487
普通は >>488-489 のように消せる筈ですが、僕のBCB6+SP4もたまに >>487のようになります。
選択した状態でdelキー押しても、選択していないときと同じ動作をします(よね?)。
コレはBCB5の頃からです。僕はマシンを再起動すれば直りますが、それでも直らなければ
BCB或いはOSの再インストールか、はたまたメモリが不良品か。
492487:04/05/21 11:38
>>491
そうですね。del1コ分の動作をします。

あいうえお
かきくけこ
さしすせそ

を、「あ→そ」の順で選択してdelを押すと、「あ」だけ消えます。

……で、今やってみたら治りました(なんでだ(泣))

>>3のフリーカーソル無効化アドインをさっき入れたんですが、
そのためでしょうか。

なんにしても、>>488 >>489 >>491さん、ありがとうございました。
TFormにTMainMenuなどを貼り付けると、ビジュアルコンポーネントを貼り付けられるFormの範囲が狭まりますよね?
その場合の有効範囲(と言うべき?)の取得はどうすればいいのでしょうか?
494493:04/05/21 11:58
自己解決しました。
ClientWidth/ClientHeightでした。
お騒がせしました。
495デフォルトの名無しさん:04/05/21 13:49
数値を123,456,789みたいにカンマで区切って文字にする方法を教えてください
FloatToStrF(123456789, ffNumber, 15, 0);
497デフォルトの名無しさん:04/05/21 13:57
普通は、FormatFloat 使うだろ。

FormatFloat( "###,###,###", 123456789);

別にどっちが普通ってこたないと思うが…
499デフォルトの名無しさん:04/05/21 14:18
RS232C通信をするとき、皆さんはどうしているんですか。
市販とかフリーのコンポーネントを使ってますか。
それとも自分でラップクラスかコンポーネントを作りましたか。
もしくは、APIを直接使ったりしてますか。
501464:04/05/21 14:49
う〜ん、うまくいかない・・・(´・ω・`)
BDE使うとすると作成したプログラムはどこでも実行できなくなっちゃいますよね?
で、結局考えたのが

項目を追加した新しいテーブルを作成→元のテーブルからデータをコピー→
元のテーブル削除→新しいテーブルの名称を元のテーブル名に変更

って具合にとりあえず作ってみたんだけど次の問題が・・・

1,データ型に「オートナンバー」をうまく設定できない(ftAutoIncでもダメでした)。
2,フィールド名の最後の文字が「_(アンダーバー)」になってしまうものがある。

なんかものすごい単純なことかもしれない気がするんだけど・・・
みなさんのお力をお貸しください。
HTMLから呼び出して使用するActiveフォームを作成しようとしています。
ActiveXの動作を動的に変更したいため
HTML内に<param>を設定してパラメータを引き渡したいのですが
BCB側で取得する方法が分かりません。
どなたかご説明いただけないでしょうか。
また、解説などされているページををご存知ならお教え下さい。
よろしくお願いいたします。
HTMLから呼び出して使用するActiveフォームを作成しようとしています。
ActiveXの動作を動的に変更したいため
HTML内に<param>を設定してパラメータを引き渡したいのですが
BCB側で取得する方法が分かりません。
どなたかご説明いただけないでしょうか。
また、解説などされているページををご存知ならお教え下さい。
よろしくお願いいたします。
HTMLから呼び出して使用するActiveフォームを作成しようとしています。
ActiveXの動作を動的に変更したいため
HTML内に<param>を設定してパラメータを引き渡したいのですが
BCB側で取得する方法が分かりません。
どなたかご説明いただけないでしょうか。
また、解説などされているページををご存知ならお教え下さい。
よろしくお願いいたします。
困ってるのは解ったから4個目は書くな。
質問でーす。
ブラウザのドキュメントを動的に操作する方法がわかりません。
例えば以下のように、メモリ上に確保したストリームからデータを食わせようと思っても
hr = pPersistStreamInit->InitNew(); の部分で例外が発生してしまいます。
もうダメダー(><)

DHTMLvoid LoadHTMLFromStream(TCppWebBrowser* pBrowser,IStream* pStream)
{
HRESULT hr;
IPersistStreamInit* pPersistStreamInit = NULL;

_di_IDispatch doc=pBrowser->Document;
hr = doc->QueryInterface( IID_IPersistStreamInit, (void**)&pPersistStreamInit );
hr = pPersistStreamInit->InitNew();
hr = pPersistStreamInit->Load( pStream );
pPersistStreamInit->Release();
}
507デフォルトの名無しさん:04/05/22 16:28
Web上の操作を自動化するソフトをつくりたいのですがどうしたらいいでしょうか?

例えば、Googleを開いて、検索キーワードを自動で入力し、検索ボタンまで押してしまうような
アプリケーションが作りたいです。
(似たソフトで懸賞サイトで住所などの入力を自動化するソフトがありました。このようにフォームやパスワードを
自動で入力するソフトを作りたいのです)

IEにキーボード入力の信号をだまして送るようなことは可能ですか?
可能です。
>>508
どうしたらいいのでしょうか?っていう質問にはちゃんと答えてあげたら?

IEなんかあてにしなくても、HTTPでやりとりしてやればいい。
上のほうのレスをみると、結局IEで用意されてるコンポーネントを使うのが楽なのかもしれんが。
>>506
InitNewのところで駄目ってことはDocumentが空っていうオチではないよねぇ。
うちの環境だと同じようなソースで問題なく出来てるけどね。
511デフォルトの名無しさん:04/05/22 17:04
>>509
ありがとうございます。Pro版にあるWebBrowserコンポーネントのことですね。
たしかにそのほうが結局簡単かもしれません。調べてみます
512506:04/05/22 21:33
>>510
いえ、この関数を呼ぶ前に、きちんと”about:blank”にナビゲーております。
で、DocumentComleteイベント内でCreateStreamOnHGlobalを使ってストリームを作成し、それに文字列をセットした後で
件の関数を呼んでいるのですが・・・

DHTMLを操作するためのDLLが組み込まれていないとかが原因かなぁDTL
ナビゲーる。って初めて聞いた
頭悪そう
515デフォルトの名無しさん:04/05/23 03:03
キーダウンイベント時に”ポーン”と音がしてしまいます。
回避する方法はあるのでしょうか?
スピーカーを窓からなげすてる。
>>516
窓からスピーカーを投げ捨てたわけではないですが、
解決しますた。
スピーカーの為にも解決方法は書くべし。
>>518
Enterを入力した場合、改行できませんよと知らせてくれている
らしいので処理の最後に

Key = 0;

と付け加えると回避できます。
520デフォルトの名無しさん:04/05/23 08:19
おまいら1日何時間C++Builderしてるんだ?
521デフォルトの名無しさん:04/05/23 09:29
>>520
24時間
>>521
少なすぎ
んこしながらC++Builderかよ
524デフォルトの名無しさん:04/05/23 12:54
Buttonを10個ぐらい並べておいて、全てのボタンのブロパティを
簡単に変える方法はありますでしょうか?
>>524
オブジェクトのポインタをTButton*[]でもTListでもstd::vector<TButton*>どれでもいいから配列につっこんどけ
526デフォルトの名無しさん:04/05/23 13:11
BCBはアマチュアプログラマーで使ってる人は多いと思うのだけど
プロで業務アプリを開発してる人っておるの?
>>526
テストツールはほぼC++Builderだな。
>>526
業務アプリというか製造装置や検査装置に組込んで使ってる。
昔手伝っていたメーカーはNTにVC++で作ってたけどね
自社製品はBCBのほうが慣れてるし。
529デフォルトの名無しさん:04/05/24 00:28
業務アプリはVC++がデファクトスタンダードだろ?
インターフェイスは作らんだろ
デファクトっちゅったらVBじゃね?
>>524
例えばPanel1上に貼ったTButtonのプロパティを一斉に変えたいとき
for (int i(0), j(Panel1->ControlCount); i < j; ++i) {
TButton* buttonp(dynamic_cast<TButton*>(Panel1->Controls[i]));
if (buttonp)
buttonp->Caption = "Changed.";
}
>>526
以前いた会社では、POS用のアプリをBCBで作っていた
画面の調整がしやすい&DBの扱いが楽で(゚д゚)ウマー
>>531
ちと整理する。勝手してスマン。

for ( int i=0; i<Panel1->ControlCount; ++i )
 if ( TButton* buttonp = dynamic_cast<TButton*>(Panel1->Controls[i]) )
  buttonp->Caption = "Changed.";
j(Panel1->ControlCount); i < j

の部分はそのままで良いんじゃないか?
些細な事だが、ループの度に Panel1 のメンバにアクセスするよりはローカル変数の方が早いだろ。
525のTButton*[]を使うのが普通だと思ってたけど、どうなんだろね。
因みに、TButtonの名前を
Button1,2,3,.....10と連番になる様にしておくと、↓の様な方法でも変更出来ますね。
for (int i=1; i<11; i++) {
dynamic_cast<TButton*>(FindComponent("Button" + IntToStr(i)))->Caption = "Changed.";
}
536533:04/05/25 02:15
>>535
Delphi育ちの人はControls[]を使う傾向にあるようだな。
素からC++の人は配列やらstd::vectorやらを使いたがる。おれもだけど。
そもそもdynamic_castはできるだけ避けるってのが染み付いてるわけで。

>>534
最適化してくんないかな?
537141:04/05/25 02:30
>dynamic_castはできるだけ避ける
なんか理由あるの?
>>537
例外でるでそ。コンパイル時の型保証ができないでそ。
539141:04/05/25 04:07
そうか。
「できるだけ」って書いてあったね。
>>536
偉そうな事言ったけど C++ & プログラム 暦 1 年の俺には無理だ。
ここから最適化出来るなら俺も知りたいな。
ループの最適化なんてスレ違いだろうけどさ。
541531:04/05/25 09:24
>>533
気になさらずに。みんなでより良いサンプルを作ろう。
>>534
仰る通り。その意図です。
>>535
確かに可能な方法だが、文字列を使う方法ってなんか遅い気がして。
それに、コンポーネントの名前に依存しない方が後々いい気がする。

エラそーにスマソ
542デフォルトの名無しさん:04/05/25 10:17
gifファイルを読み取るのはどうしたらいいでしょうか?
Delphiではコンポーネントが存在するようですが、Builderではみつけられませんでした。
542です。susieを呼び出すサンプルを見つけて解決しました。
先日誤って3回も投稿してしまいましたが
問題が解決しないので再度投稿させていただきます^^;

HTMLから呼び出して使用するActiveフォームを作成しようとしています。
ActiveXの動作を動的に変更したいため
HTML内に<param>を設定してパラメータを引き渡したいのですが
BCB側で取得する方法が分かりません。
どなたかご説明いただけないでしょうか。
また、解説などされているページををご存知ならお教え下さい。
よろしくお願いいたします。
それくらいなら手っ取り早く自分で構文解析。
htmlの文法あやまりが無いと仮定してもよければ
HTMLのソースを直接探索して<PARAM>みつければ良いかと。
546533:04/05/25 13:58
>>537
禿本にそう書いてあるから(w
「キャストは必要悪、仮想関数使わんかゴラァ!」
ってのは確かに原則としては正しいと思う。
それが、VCL使ってるとそうも言ってられないけど。
多重継承が使えると楽なんだけどね。>VCL

>>540
あー、>>536は”コンパイラが最適化してくれるんじゃないの?”って意味ね。スマソ
小技だけど、コンパイラの最適化が期待できないなら、けつからループ回すって手はある。
 for ( int i=Panel1->ControlCount-1; i>=0; --i )
C++ Builder 6について質問させてください。

Builder 5で作成したプロジェクトを開いたところ、
プロジェクトマネージャで表示されるファイルの順番が
バラバラになってしまいます。
保存し直したり、再起動しても変わりません。

6のプロジェクトマネージャでは、ファイル一覧は
ファイル名でソートされて表示されないのでしょうか?
>> 547 5は知らないけど6は任意だよ。
ドラッグ&ドロップで順番を入れ替えられる。
>>548
そうでしたか。ありがとうございます。
以前のになれていると有り難くない仕様変更ですね・・・。

なお、移行作業自体は問題ありありです(笑)
Update4になって、いい加減、こなれたかな、と期待して
いたのですが、何か 5 -> 6 になって退化しているのでは
とさえ思いたくなってきました・・・。

現在は、タイプライブラリの取り込みで悪戦苦闘中です。
メソッドとかプロパティが違う型で取り込まれるようになって
しまったので、コンパイルが全然、通らなくなってます(涙)
特に、今までTVariantInParam型で取り込んでくれていたものが
全て単なるVARIANTで取り込むようになっているのが痛いです。

他の移行組のみなさんは全然、問題なかったでしょうか???
550デフォルトの名無しさん:04/05/25 18:05
某からDMきた
5→6へのアップグレード案内
もう5〜6回くらいは来たような気がする。
申し込み期限が12月20日になってるから、今年じゅうは、新バージョンの発売はないんだろうね。
それとも在庫処分に必死なのかな?

>>550
ttp://www.drbob42.com/cbuilder/home.htm
9のリーク情報があるようです。
>>546
あ、そう言う事ね。こちらこそ勝手に勘違いしてすまん。
コードの最適化[速度優先]、リリースモードでビルドして逆汗して見たら
ループの度に TWinControl::GetControlCount が呼ばれてた。
どうもしてくんないようだね。

けつからループは思いつかなかったよ。今度試して見る。
んなとこの最適化、コンポーネントが1万個あっても意味ねぇ!
まぁそうだけどさ。気になったから調べてみたんだよYO!
「よ」がダブってるよYO。
気づかなかったよYO...orz
557デフォルトの名無しさん:04/05/25 23:42
BorlandC++6.0 Professional WindowsXPで、
GraphEditを使いたいのですが、使えますか?
558デフォルトの名無しさん:04/05/26 11:04
559デフォルトの名無しさん:04/05/26 12:21
>>551
(゚∀゚)キタ--!!!

ってこれマジなんですか?
560デフォルトの名無しさん:04/05/26 12:48
>>551
なんで、C++Builder version 9 なんですか?

C++Builder version 7〜8は何処へ?
デルファイが9だから。

なんでかというと、デルファイとBuilderで共通な
コンポーネントライブラリのバージョン管理が大変なことになるからです。

同じ理由でBuilderは2もロストナンバーのはず。
生殖能力のない個体がロストナンバー扱いなんでしたっけ?
563デフォルトの名無しさん:04/05/26 21:28
C++BuilderでDLLの作成を行いたいのですがエラーが出て作成できません。

bcc32 -WD -e hoge.dll hoge.obj hoge.defでコンパイルしようとすると

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
エラー E2194: ファイル 'hoge.dll' が見つからない
hoge.def:
エラー E2141 hoge.def 2: 宣言の構文エラー
エラー E2206 hoge.def 2: 不正な文字 '@' (0x40)
*** 2 errors in Compile ***

となります。

hoge.defの内容は

EXPORTS
_hoge@0=hoge

のような内容です。
解決方法を教えてください。
おねがいします。
>>563
オプションの書き方がまちがっとる
ヘルプの「コマンドラインオプションのディレクトリの入力」に-Lスイッチ使ったサンプルあるから見れ
あとdefファイルはあらかじめimplibでlibファイルに変換すること
TComboBoxのItemsプロパティに"200×200","300×300","400×400"と入れました。
次に"500×500"を追加しようと[・・・]のボタンをクリックした所、

「RichEditでの行の挿入エラー」

と出て編集できません。今は仕方なく.dfmファイルを直接編集してしのいでいますが、
これはバグなのでしょうか。

BCB6 Professional(SP4) + Windows XP SP1 Professional での症状です。
>>551
なんて書いてあるの?
いま都合でみれなくて。ちきしょー・
>>566
BCB6SP4 + Win2kSP4でも中に×や÷が入ってると再現性ありのエラーが出た。
とりあえず"500x500"等の半角英数にしとけば問題なし。

>>567
Yup, that's right: information has been leaking (in a controlled way) about a possible forthcoming new (VCL!) edition of C++Builder,
with the version number 9. Just like there never was a C++Builder version 2, we will skip version 7 and 8 - most likely to get 'on par' with Delphi 9 at the time of shipping.
Official words still have to follow, but read Anders Ohlsson's blog for some more details. And Michael Swindell also mentions C++Builder in his blog now.
569デフォルトの名無しさん:04/05/27 00:12
dynamic_arrayとvectorはどちらがお勧めなの?
ちょとおしえてください。
TEditでAlignmentのプロパティがないんですけど、右揃えとかできないんですか?
TMemoは複数行になっちゃうし・・・
1行限定で右揃えができる入力系コントロールってないですかね・・・
それが実現できればいいんで、どなたかご存じであれば教えていただけないでしょうかー。
>>570
エディットコントロールはSetWindowLongによる動的なスタイル変更ができないらしいので
TCustomEditを継承、CreateParamsを()をオーバーライドしてCreateWindow時にES_RIGHTを入れてやる必要がある。
>>570
カスタムコンポ作ってつかってるな。
つか、カスタムコンポというほどのものでもなし。
TEdit(またはTCustomEdit)から派生させて
CreateParamsをオーバーライドしてTCreateParams::StyleにES_RIGHTを追加するだけ。
もちろん、TextAlignmentプロパティを追加して動的に変更するようにしてもよし。
↑あいや、かぶったか。
>>569
DynamicArrayのことかいな?
それならDelphiとの互換のためにあるので、
それが必要無かったらstd::vector使うよし。
>>572
動的に変更できるのはXPだけらしい。
2000だとSetWindowLongで試した限りでは_。
576572:04/05/27 01:14
>>575
そうなんか。自分じゃCreateParamsしか使ったことなかったよ。
フォローThx.
577デフォルトの名無しさん:04/05/27 01:58
BCB6でmakeファイルを作成し、コマンドラインから
bcc32 -m Project1.mak
とするとエラーがたくさん出てmakeできません
どうすればいいの?
>>577
make -fProject1.mak
エラーの内容を書け。話はそれからだ。
580デフォルトの名無しさん:04/05/27 02:55
やってみりゃわかるよ
>>568
亀レスになるが、サンクス。やっぱりバグか・・・・・・
BCB9に期待しましょう。にしても昨日BCB6Ent版への乗り換えアップグレード
の案内がしつこく某から来たのだが、データベースへの接続でもしない限り
必要あらへん・・・・ローカルデータベースで十分だもんなあ。
うちにもアップグレードのDMは来たわけだが、
これで、もし、アップグレードの締め切り後にBCB9の発表、
バージョンアップの案内ときたら、客をなめてる話だよな。
むかし○ストシステムが同じようなことしたけど、
与太郎はあれでシェア落としたんじゃないのかな。
>>582
逆じゃないの?
シェアが落ちているから、そういうことをするわけだ。
584570:04/05/27 08:17
570です。みなさんレスありがとうございます。
いまから会社いってやってみます。ノシ
>>582
D9 が今年末で、それを考えると BCB9 は年末から来年となるが。
某としてはBCB9もEnt版を買って欲しいんだろうな。でもエンドユーザーには
さすがにEnt版はオーバースペック。ついでに価格もオーバースペック^^;。
Pro版でさえ持てあまし気味なのに。
587デフォルトの名無しさん:04/05/27 15:48
bitmap->gif もしくは
ps->gif
に変換してくれるコンポーネントはありまつか?
あれgifって著作権問題で駄目なんだっけ?
みんなおすすめのBCBのopensourceサイト
を教えてくれーー
日本には少ない(ない?)と思うんで英語圏と中国圏のでもいいから・・・

一通り基礎を学んだけどいざ自分でプログラムコードを書く
になるとどこからやったらいいかわからない_| ̄|○
590デフォルトの名無しさん:04/05/27 20:52
質問です。
通常、クラスの宣言は*.hで実装は*.cppに書くと思いますけど
テンプレートを使ったクラスは皆さんどうしています?
僕は*.hppに全て書いて#includeしてますが、間違いでしょうか?
591デフォルトの名無しさん:04/05/27 20:52
質問です。
通常、クラスの宣言は*.hで実装は*.cppに書くと思いますけど
テンプレートを使ったクラスは皆さんどうしています?
僕は*.hppに全て書いて#includeしてますが、間違いでしょうか?
*.hpp にする理由って何?
俺はヘッダに全部書いてるな。実装とヘッダに分けてヘッダに実装を include する方法もあるけど。
593デフォルトの名無しさん:04/05/28 02:09
>>588
ありがとうございました
やっぱgifは駄目でつか
>>593
特許問題。
もし使えるライブラリがフリーであっても、それを使うならウニシスに特許料払う必要がある。
>>594
その特許はあと1ヶ月弱で切れるけどな。
596デフォルトの名無しさん:04/05/28 13:10
>>595
まぞですか?
そしたらもう普通に使っても特許料払え( ゚Д゚)ゴルァ!!って言われないの?
>>596
アメ公では既に特許切れていると記憶しているが…。
アメリカは2003年6月20日で切れた。
日本は2004年6月20日。
599デフォルトの名無しさん:04/05/28 21:35
BCB5ですが、クイックすタートチュートリアルのデータベース(魚のやつ)で
メークすると、rcpndr.hのコンパイルエラーが出るんだけど、どうやって回避
するのが正解なの?
hppってなんの拡張子ですか?
>>599
エラーメッセージの内容を示すべし。

>>600
c++のヘッダファイル。ただし標準ではない。
600
>>601
サンクス
もう少し質問させてください
LONG width,height;
RECT capRect;
HDC DesktopDC;
↑大文字のLONGと小文字のlongは意味同じ?
あとこのRECTとHDCって何型ですか?
>>603
全て大文字の識別子は、一般的にはマクロであることを覚えておこう。
#defineかtypedefなりされているもののはず。

で、Windows環境でマクロがでてきたら、何はさておきWinAPIのヘルプをあたると。
605599:04/05/29 03:46
>>601
「{が必要です。」とか「構文エラー」とかです。
コピペしたいんだけど、会社のPCなので。
会社からは2chへのアクセスはブロックされてるし。
>「{が必要です。」とか「構文エラー」とかです。
そう言う事です。
?typedefがマクロ?

大文字/小文字は、コーディング規約っていうか、
スタイルによるだろ。
>>604
サンクス
なんとなく理解した
609599:04/05/29 16:04
>>606
C++やるにはCDからインストール舌だけの.Hファイルを
自分で修正出来るスキルが必要なのか...ふふふ
610599:04/05/29 16:06
連続カキコすまんですが、最新版でバグの無いrpcndr.hって
どっから入手出来るの?
逆コンパイルと逆アセンブルってどう違うんだ?
C++で書かれたexeの不完全ソースを手に入れるのは逆コンパイルだよな?
逆アセンブルはアセンブラを出力するものだと認識してます.
バグは知らんが最新版なら
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
613606じゃないが:04/05/29 19:23
>>609
rpcndr.hのバグとは限らないよ。
というより、あなたのちょんぼである可能性のほうが高そうだ。
コンパイラの吐く構文エラーメッセージは、実際にエラーが含まれる個所を
指すわけではないからね。
実際のところはエラーメッセージ見ないと誰にも分からない。
簡単なエディタ作ったけど。
このエディタにIEの表示→エンコードのように
エンコード変更をできるようにしたいけど、どうしたらいいんだ
「表示」-「エンコード」のメニューを付ける
さすがに某サイトのTipsよりレベルが低いぞ。
617599:04/05/30 03:45
>>613
>>というより、あなたのちょんぼである可能性のほうが高そうだ。
どのようなケースが考えられるかご教示下さい。
もしかしてインクルードする順番とかですか?

>>コンパイラの吐く構文エラーメッセージは、実際にエラーが含まれる個所を
>>指すわけではないからね。
もう少し詳しくご教示下さい。

>>際のところはエラーメッセージ見ないと誰にも分からない。
先にも書きましたが、会社のPCでの話しなので今は再現出来ないです。
メッセージは「rpcndr.hにエラーが有る。」旨の内容だったのですが...

どなたかお時間のある方、魚DBのチュートリアルでエラーが出るかどうか
試して頂けませんか?
618613じゃないけど:04/05/30 09:45
>>599
自分はBCB6だし、魚DBってのがなんなのかわからんのだけど、
rpcnd.hを使うなら
__REQUIRED_RPCNDR_H_VERSION__
とか設定必要じゃなかったっけ?いらなかったっけ?関係ないか。

あと、エラー出たんなら、ソースの周辺洗って直接原因か、
間接原因を特定して、間接原因なら、逆方向にデータフローを
辿っていけば直接原因にあたらない?
コンパイラが構文エラー出してくれるって事は、かなり初歩的な
ミスだから、コントロールフロー辿った方が速いかもしれないけど。

本当にrpcヘッダのバグなら大発見だし。ぜひ、解析して報告して
欲しい。
619デフォルトの名無しさん:04/05/30 10:12
ってか、エラーメッセージ見れば大体原因は想像付く。
ただエラー発生するから、教えてクレクレ君には、正直勘弁だな。
ちゃんとしたレスほしければ、エラー内容くらいコピペしてこい。
>>618
インシデントとは直接関係無いけど。
BCB5までについてたチュートリアルのDB編。>魚DB
BCB6からはチュートリアルがCLX利用のものに変わったので
BCB6しか知らない人は見たこと無いはずです。

昔に作ったことあるけど、エラーなんか起きなかったが。
つか、用意されてるサンプルデータベースに接続するだけだから
エラーの起こしようが無いんだけど。
621デフォルトの名無しさん:04/05/30 13:16
>エラーの起こしようが無いんだけど。
メカ屋なんかからよく聞く台詞でな〜w
622デフォルトの名無しさん:04/05/30 13:32
BCB6でプログラミングしているんですが、
関数からリターンするところで、かってにブレイクしてデバッガが起動します。
エラーメッセージは表示されずに、アセンブラのソースが表示されて、
ntdll.DbgBreakpointというところで停止します。これはなんでしょうか?
623デフォルトの名無しさん:04/05/30 20:34
TRichEdit で特定の行だけフォントを変える方法があればどなたかお教えください・・
>623
VCLだとこんな感じ。
LineIndexを好きな行番号に置き換えて使うよろし。

int TempSelStart = RichEdit1->SelStart;

//現在行
int LineIndex = RichEdit1->Perform(EM_LINEFROMCHAR, -1, 0);
//選択してフォント指定
RichEdit1->SelStart = RichEdit1->Perform(EM_LINEINDEX, LineIndex, 0);
RichEdit1->SelLength = RichEdit1->Lines->Strings[LineIndex].Length();
RichEdit1->SelAttributes->Color = clRed;

RichEdit1->SelStart = TempSelStart;
>>624
ありがとうございます、やってみます
RichEditを空白の状態で表示させるにはどうしたらいいですか?
EditみたいにText属性がないので...

>626
ヘルプ読め。
>>627
あーい




読んだけどわからない_| ̄|○
>>622
あ、俺もその症状でたことある
>>626
Linesをいじる
>>630
おお、感謝です
いままでRichEdit1->Clear();
でやってきたよ......
632デフォルトの名無しさん:04/05/31 10:04
内部スクリプトコマンドで動作する機器を制御するプログラムを
c++_uilderで作成したいのですが、C++Builderから直接スクリプト
を実行するにはどのようにすればいいのでしょうか?スクリプト
言語はJavaScriptです。
633デフォルトの名無しさん:04/05/31 10:59
Telnetクライアントプログラムを作りたいんだけど
参考になる書籍 or HPってある?
>>622
>>629
漏れも漏れも
>>622
>>629
>>634

原因不明ですか・・・BCB側のバグですかね?
自作クラスのデストラクターが悪さしてるのではないかと想像しながら、理由が分からずあきらめてます。
BCB6を経由せずに実行すると何とも無いので、いまは、無視しています
636141:04/05/31 21:00
>>622
>>629
>>634
>>635

も前らアホか。ぐぐるくらいしろ。

http://www.howtodothings.com/showarticle.asp?article=502

以前、調査したとき、Win2k にデバッグコードが含まれたまま出荷されたのが
原因だってどこかに書いてあった。(書いてあったページは忘れた。)
つまりまともにWindows Updateもしていない香具師がBuilderのバグだと騒いでいたってことか。
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
int a,b;
CanClose=true;
if(edit1->Modified){
CanClose=false;
a=Application->MessageBox("you will exit?","",1);
if(a==1){
b=Application->MessageBox("save as file?","",1);
if(b==){
saveasfile();
CanClose=true;
}
else
CanClose=true;
}
}
}
↑これなんだけど
FormCloseQueryには型指定子は指定できない
とコンパイルエラーが出るけど、間違ってると思えないんだがなんでだろう
if(b==1)
1が抜けてる
でもコンパイルできない
>>638
その引用した部分の前で、タイプミスが無いか確認してみ。
引用部分には問題ないので、間違いがあるのはその前方。
下手したらヘッダ内。

>FormCloseQueryには型指定子は指定できない
以前に質問が出てた構文エラーもそうだけど、この手のエラーメッセージは
実際にエラーがある場所を指しているとは限らないので、
その周辺を根気良くチェックしていくしかない。

判らなかったら、一度そのイベントハンドラを削除(もちろん正しい手順で)した上で、
コンパイルしてみ。
>>640
おっしゃるとおりでした
ありがとうございます
>>636
... そのコード入れたままで製品出荷するなよ...
カーネルにパッチ当てているコードなんだから、XPSP2 で動かなくなっても泣くなよ。

643デフォルトの名無しさん:04/06/01 10:09
TImageでTransparent=trueで描画している時に、たまにTransparentがfalseになったみたいな状態になります
実際プロパティをみるとTransparentはtrueなのですが、TImageの上に乗ってるコンポーネントとTImageが消えた状態になります
ちょっとはっきりしたタイミングがわからないので申しわけないが、そんな状態になってしまいます。
何が原因でしょうか?
BCB5でyaneSDK3rdまともに使えてる人居る?
いたら正しい使い方を教えてほしいんですが。
BlobフィールドのあるDB間でコピーする場合、以下のような関数をwhile (!_srctblp->Eof)のループの中で呼びますと、途中で「開いているBLOBが多すぎます」という
実行エラーが起きてしまいます。CopyBlob()が終了する度に_wrttblp->Close()を呼べばうまくいくのですが、while文の中でいちいちOpen/Closeを呼ぶのはオーバーヘッドが大きそうでイヤなのですが、これは仕様でしょうか?

bool CopyBlob(TTable* _srctblp, TTable* _wrttblp, const AnsiString& fieldname)
{
TStream* srcstrmp(_srctblp->CreateBlobStream(_srctblp->FieldByName(fieldname), bmRead));
try {
_wrttblp->Edit();
}
catch (EDBEngineError& e) {
delete srcstrmp;
return false;
}
TStream* wrtstrmp(_wrttblp->CreateBlobStream(_wrttblp->FieldByName(fieldname), bmWrite));
if (wrtstrmp != NULL) {
wrtstrmp->CopyFrom(srcstrmp, 0);
try {
_wrttblp->Post();
}
catch (EDBEngineError& e) {
delete srcstrmp;
delete wrtstrmp;
return false;
}
delete wrtstrmp;
}
delete srcstrmp;
return true;
}

他のアプリケーションを起動するにはどういった関数を使用すればいいのでしょうか?
例えば、フォームに配置されたボタンをクリックすると
メモ帳が起動するといったような処理をさせたいのですが
やり方がわかりませんでした。
オンラインヘルプで「exe」「呼び出し」といったようなキーワードで
調べてみたのですが、目的にあったトピックを見つけることができなかったため
質問させていただきました
CreateProcess
ShellExecute
ShellExecuteEx
WinExec
648646:04/06/01 22:02
>>647
レスありがとうございます
助かりました
649デフォルトの名無しさん:04/06/02 13:23
ちょっと教えてください
#define AAACOUNT 8
上のようなデファインの値を動的に変更することは可能ですか?
8を12とかに
650デフォルトの名無しさん:04/06/02 13:27
#defineで定義した名前はコンパイル前に置き換えられてしまうので無理。
変更したかったら普通に変数にしましょう。
int AAACOUNT = 8;
651デフォルトの名無しさん:04/06/02 13:42
>>650
お返事ありがとうございます
変数ですと構造体などで定義している変数の要素数にそれを指定するとエラーになってしまうので・・
あとはifdefで分けるしかないのでしょうか・・
配列は、コンパイル時に要素数を指定しなければいけない(C99,gcc拡張を除く)
それが嫌なら、配列自体を動的に確保する
>649
スレ違い。CかC++の相談室に逝くがよろし。
実行後に配列の要素が決まるような場合は、必要な要素数が決定した時点でnewするなりして配列の領域を取得するのが普通だろな。
>>651
ifdefもコンパイル前に決定されてしまう。
「動的に変更」って自分で書いてて意味分かってる?
655デフォルトの名無しさん:04/06/02 14:27
>>654
馬鹿には聞いてないよ?(´,_ゝ`)
>>655
そんな餌に (AA略
#define AAACOUNT aaacountvar
int aaacountvar = 8;
TListでもstd::vectorでも好なき方を使えば良さそうなもんだが。
プリプロセッサ指令で「動的に変更」することを考えるよりはるかに簡単だ。
659デフォルトの名無しさん:04/06/02 16:09
>>657
660デフォルトの名無しさん:04/06/02 16:23
それ定数じゃないYO
>>658
DynamicArrayもよろしく
662デフォルトの名無しさん:04/06/02 19:25
>>661
663デフォルトの名無しさん:04/06/02 19:37
ちょっと割り込み質問ですが
DynamicArray を解放するには,Length に 0 を代入します。ってヘルプに書いてますが
必要なくなったらLengthを0にして開放すべきなのでしょうか?
>>663
普通に使う限りは必要ないんじゃないか?
スコープから外れたらデストラクタ呼ばれるわけだし。
665デフォルトの名無しさん:04/06/02 22:53
BCB6でMD5使うにはどうしたらいいですか?
666デフォルトの名無しさん:04/06/02 22:53
666 G E T ' S
>>665
普通のC/C++用のライブラリで何か不満があるか?
668665:04/06/02 23:49
TIdCoderMD5を実装しようと思い

TIdCoderMD5 *MD5;
AnsiString str;
AnsiString result;

MD5.Create();
MD5.Reset();
MD5.SetKey("ABC");
MD5.CodeString(str);
result = MD5.CompletedInput;

としてるのですが、肝心のTIdCoderMD5が未定義となります。
なにをインクルードすればいいのでしょうか。
あと、上のコードはなんとなく作っただけなので間違いだらけだと思いますが、
正しいコードを教えてもらえないでしょうか。
669665:04/06/02 23:50
MD5. はMD5->の間違えです。
>>668
(=゚ω゚)っ[ grep ]
定義がわからなければIncludeディレクトリの中検索しる
671665:04/06/03 00:21
>>670
#include <idcodermessagedigest.hpp>
でできました。
で、

TIdCoderMD5 *MD5;
AnsiString str;
AnsiString result;

MD5->SetKey("ABC");
MD5->CodeString(str);
result = MD5->CompletedInput();

とするとコンパイルはできるのですが、実行すると読み込みエラーがでます。
正しい実装方法を教えてもらえないでしょうか。
>>671
C++の入門書嫁。
>>671の何処がまずいか自分で分からんようじゃどうにもならん。

ポインタを定義してもそれが指す実体は生成されんぞ。
673665:04/06/03 01:26
MD5 = new TIdCoderMD5(NULL);
でできたぽいんですが、結果を16進で表示するにはどうしたらいいんですか?
674665:04/06/03 01:52
解決しました。
オマエラのレベルの低さがよくわかったので、
このスレではもう質問しません。
サイナラ。
最近、香ばしい香具師が続くな。
一人消えても次の一人が来るからめんどくさい。
同じヤツだよ。
ずっとsageいれてない
>>646-647
便乗質問失礼します。外部アプリを実行した場合、呼び出し元で外部アプリの実行エラーを取得する方法って
どういったものが考えられますでしょうか?
>678
ヘルプ嫁
スレ違いだろ。
680デフォルトの名無しさん:04/06/03 11:49
ヘルプ読めとかいう基地外はレスするなウザイ
ここで聞く前に自分で調べてからにしれ、ボケ >>680
そう、最近事前にろくに調べもしないでCやC++に関しての一般的な質問をするバカが増殖してるな
例の香ばしい同一人物なのかもしれんが。サイナラと言ったのだからもう来るなよ。
まぁまぁ>>679>>681-682もマターリやろうや。
>>680なんぞに釣られとるようじゃ(ry
684141:04/06/03 13:49
ぐぐっても見つからん。
About Delphi でもダメだった。
たぶん、このスレでもダメな悪寒がしてるんだが、
知ってる 神 いたら教えておくれ。

先週まで普通にビルドできていたプロジェクトが、
ビルドしようとすると、
>[リンカ エラー] Fatal: Access violation. Link terminated.
と1行だけエラーが出ます。
再構築でも同じです。
他にエラーメッセージはでません。

念のため再起動しても結果は同じです。

他のプロジェクトは正常にビルドできます。

コードの修正を多少したくらいで、ビルドできなくなるような
大きな変更をした覚えはありません。

明日、締め切りなんだよ〜;;
>>684
うちも経験あるが、原因は不明。これはどうもIDEのバグっぽいなぁ。
そのときは結局プロジェクトを新規で作りなおした。
ユニット類はそのまま使用したがビルドできるようになった。
>>684
助けてあげたいが、それだけの情報ではなぁ
台湾のサイトによると
http://delphi.ktop.com.tw/topic.asp?TOPIC_ID=49889
Linker | Linking | Use dynamic RTL
を一度オフにして、フルビルドすれば直る。らしい。
BCB6 なら Update4 を当てること。Linker のバグがいくつか直っている。
デバッグ情報が大きくなりすぎるとリンクに失敗するらしい。

ttp://groups.google.co.jp/groups?threadm=40b3cf04%241%40newsgroups.borland.com

*.il?, *.csm *.#nn これらの中間ファイルが壊れたままの可能性があるので
これらを削除。
689141:04/06/03 21:57
みなさん、レスありがとうございました。
685さんのレスは読んで試してみましたが、
残念ながらダメでした。

ビルドできなかったプロジェクトをほかのコンピュータに
コピーしてビルドしてみたら無事ビルドできたので、
「こりゃ環境の問題だ」と思い、
BCBを再インスコしたらビルドできるようになりました。

687さんとお688さんのレスを読んだのは、再インスコ後
だったので、残念ながら試せませんでしたが、
勉強になりました。

・・・結局、問題解決に6時間も使ってしまいました。
今夜は徹夜な悪寒・・・orz
BCB3で使える複数選択可能なTreeViewはないでしょうか?
VirtualTreeViewというものは見つかったのですが
BCB4以降でしか対応していないのでダメでした。
C++ Builder 5 Pro+WindowsXPにおいて、
Button1のCaptionを実行時に変更しているんですが
もともとCaptionにHOGEと表示されてる場面で
HOGEhogeのように後ろに文字列を追加したいので

Button1->Caption+="hoge";
とやると、CaptionがHOGEのまま変わってくれません。

Button1->Caption=Button1->Caption+"hoge";
ならば意図したとおりにCaptionが変わります。

同様に、RichEditにて文字の色を変えながら数文字ずつ追加するために
RichEdit->Lines->Strings[i]+="hoge";
とやっても表示には反映されません。

何が問題なんでしょう?
>>691
VCLのプロパティは実際には関数の呼び出し。
 Button1->Caption+="hoge";
これだとTButton::GetText()の戻り値であるAnsiString型一時オブジェクトに"hoge"を
追加していることになる。Button1のCaptionには反映されない。
以下同様。
>>692
すばやいお答えアリガトン
そうすると、CaptionはButton1->Caption=Button1->Caption+"hoge"; でやればいいとして
RichEditの追加は
RichEdit->Lines->Strings[i].Insert()あたりを使うしかなさそうですね。
ちょっと書いてみますです。
>>693
TStrings::Stringsも関数の呼び出し。戻り値はAnsiString型。
参照を返すわけじゃないから戻り値に追加しても
TRichEdit::Linesには反映されない。
>>694
そのようで。 突っ込みどもです。
少々ややこしい形ですがなんとか実現しますた。
せっかくなんでここに書いておきますね。
//SelStartを書き込みする位置に移動(i行目の行末に追記)
int NowLine=RichEdit1->Perform(EM_LINEFROMCHAR,RichEdit1->SelStart,0);
RichEdit1->Perform(EM_LINESCROLL,0,i-NowLine);
RichEdit1->SelStart=RichEdit1->Perform(EM_LINEINDEX,i,0)+RichEdit1->Lines->Strings[i].Length();
//データ挿入
RichEdit1->SetSelTextBuf("hoge");
Paradox形式のテーブルを使用したアプリを作成中です。
テーブルの初期データ入力はExcelを使用したいのですが、
ExcelのワークシートをParadox形式に変換する方法を
ご教示頂きたく宜しくお願いします。
697141:04/06/05 16:07
>>696

これ↓を読み書き逆にすればOK。
ttp://www.borland.co.jp/qanda/delphi/d0003225.html

速度が遅かったら、読み込みはこっち↓にすると早くなる。
ttp://www.borland.co.jp/delphi/papers/ado/ado03.html

698デフォルトの名無しさん:04/06/05 17:41
複数のビットマップからAVIファイルの作り方を教えてください。
ジャンルとわず、オススメのフリーのコンポーネントおせーて。
自分の場合、
http://ex.sakura.ne.jp/~mizno/program/maxcomp.html
は欠かせない。
とりあえずこれがないとコーディングできません
ttp://homepage1.nifty.com/fuu/software/nonfreecursor.htm
702デフォルトの名無しさん:04/06/06 14:52
ttp://www.yukibow.com/bcb/
月会費 500円 です。現在のTips量から換算すると、1Tips1円以下の料金になります。
現在は、年間単位でのご契約(年間6000円)のみとなり、お支払いは銀行振込のみとなります。
(※ 振り込み手数料はユーザー様にてご負担下さい。)

今後は月単位でのご契約やクレジットカードによるお支払い、銀行自動引き落とし等も
考えておりますが、今のところ年間契約+銀行振込みのみとなります。

又、会費は今後Tipsの増加と共に値上がりする事も考えられます。
しかし、契約会員様に対しては値上げする事は考えておりません。
ご契約をした時の金額のまま契約を継続して頂けるような形で考えております。
(なので早めに会員になった方が長い目で見た場合、お得だとは思います。)




何か変じゃない?
ん?
会員になる人はいないだろうし、いいんじゃない?
numInput(EDIT)で、
UpButtonをクリックしたらnumInputの数字を1つ増やすといった
コードを組みたいと思っています。
下のでは実行できず(数字が増えない)
その下のだと予想どうり動かす事ができます。

・・・ただ、何故上のだと駄目なのかよく分からないのですが、
どなたか、説明して頂けないでしょうか?
やってる内容は同じだと思うのですが・・・><

/*こっちはNG*/
void __fastcall TMainForm::UpButtonClick(TObject *Sender)
{
int num;
num=numInput->Text.ToInt();
num++;
numInput->Text.printf("%d",num);
return;
}

/*こっちはOK*/
void __fastcall TMainForm::UpButtonClick(TObject *Sender)
{
int num;
AnsiString tmpStr;
num=numInput->Text.ToInt();
num++;
tmpStr.printf("%d",num);
numInput->Text=tmpStr;
return;
}
FAQだなぁ。
>>691から始まるレスを読みなさい。
706704:04/06/06 15:55
>705
お返事ありがとうございます。
ちょっとややこしいみたいですね。

とりあえず自分の中では納得しました。
707デフォルトの名無しさん:04/06/06 16:03
BCBV4で自動応答機能を入れたHTMLブラウザーのプログラムをつくっています。
HTMLタグやクッキーの処理はできたけどJAVASCRIPTの解析ができません。

JAVASCRIPT処理のコンポーネントなどはないでしょうか?
708696:04/06/06 17:35
>>697
レスありがとうです。
でも、BCB側に新たな処理を追加するのではなくて、
ExcelワークシートをPradox形式で保存する方法、
もしくはParadox形式に変換するツールがないかと思って質問したのですが。
言葉足らずですみません。
>>708
だったら変換用のツール作っちゃえば?
そんなに難しくないでしょ
710141:04/06/06 17:50
>>708
それなら、激しくスレ違い。
ACCESS 使えば済むと思うが(未確認)。
Windowsアプリケーションの開発をすることになったのですが、
VisualC++とC++Builderはどちらがいいですか?
今までC++はUnixでしかしたことがありません。よろしこ。
>>711
このスレに質問する時点で、本人の意志は決まってるんじゃないかと思うんだが。
また>711みたいなバカが増殖してるのか。
うんこしたいけど和式と洋式どっちがいいでしょうか・・・っていうレベルの質問だな。
俺は洋式がいいな。
715711:04/06/06 21:55
>>712
確かにBuilderに傾いてます。
できるだけ短期に開発しやすい方を選択したいんですが。
>>713
自分は洋式派です。
>>715
なにを短期に開発したいのかによる。
717711:04/06/06 22:01
>>716
アナルを開発したいです。
>>716
HTTP、POP3、SMTPをしゃべるGUIのクライアントと
機械の測定結果をグラフにして解析するソフトです。よろしこ。
>>718
じゃC++Builderで。
決め手はグラフ。
>>719-720
グラフの処理はVCよりはやりやすいんですね。サンクスコ。
早速明日注文します。
722141:04/06/07 01:34
>>721
Enterprise にしろYO!!
ところで>>717に対する回答は…

BCB6はmain()でasm文使うとローカル変数へのアクセスがおかしくなるバグがある。
ebpでアクセスすべき所をespでアクセスしたり、初期化されていないebpを使ったり
で最悪ハングアップする。関数作ってmain()から呼び出せば何ともないが。

でもそもそもコンソールアプリケーションでasm文使う香具師も少ないが。
だめだ。main()以外の関数にしてもバグ発露。何とかしてくれ

#include <stdio.h>
#include <windows.h>
unsigned sub()
{
 union {
  __int64 t;
  struct {
   unsigned l32, u32;
  };
 } a, b;
 __asm {
  CPUID
  RDTSC
  MOV dword ptr [a.u32], EDX
  MOV dword ptr [a.l32], EAX
 }
 Sleep(1000);
__asm {
  RDTSC
  MOV dword ptr [b.u32], EDX
  MOV dword ptr [b.l32], EAX
 }
 return static_cast<unsigned>(b.t - a.t);
}
int main(void)
{
 printf("%uMHz\n", sub() / 1000000);
}
データベースデスクトップでエリアスを作成してデータをセットします。
TableとQueryのDatabaseNameに作成したエリアス名をセットしたアプリを作ります。
このアプリをInstallShieldExpressで配布したいのですが設定の仕方が判りません。
オブジェクト/マージモジュールの画面でBDEを適当にチェックするのですが、
インストール先でアプリを起動すると-認識できないデータベースです、エリアス****-と怒られます。
優しい兄貴、お助けを!
>>725
つ[ ハンドアセンブル ]
728デフォルトの名無しさん:04/06/07 12:32
C++BuilderX personalなんですが、
マルチプロセスのデバッグはできないんでしょうか?
ボーランドのサイト行ってもできるという記述がみあたりません。
どなたかわかる方いらっしゃったらやり方と共に教えてください。
今日C++Builder6のTrialをダウンロードして使ってみたんだけど、
何これ、スゲー簡単。VBみたいな感じでプログラム作れるじゃん。
なんで早く教えてくれなかったのさ。VC++とは比べ物にならん簡単さだわ。
だってRADツールだもん
>>730
もまえさんが聞きになかったからだ。

それはともかくBuilderの世界へようこそ。
>732
日本語で書いてくれると有り難いのだが・・・
どちらのお国の方ですか?日本語は難しですか?梅干しは食べられますか?納豆は大丈夫ですか?
>>733

> 日本語は難しですか?

プ
735デフォルトの名無しさん:04/06/07 19:24
日本語難しアルか?
標準語以外は日本語にあらず。
さっきAmazonでC++ Builder6 Personalが残り1本だったから衝動買いしてしまった。
>>725
(・3・)エェー再現しないYO
>>738
そうですか?もしかして最適化OFFになってませんか?-O2で出るんです。

ttp://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20040608000523381.jpg

↑これを見ていただくと一目瞭然だと思います。
最適化入れてやってみたけど、うちでも再現しないなぁ。
>>740
>>739を見ていただくとおわかりだと思いますが、設定もしていないebpを
使ってアクセスしてるんです。そして最後はespをベースにロード。結果は
当然でたらめになります。ebpの値いかんではアクセスバイオレーションが
出ますね。

もう一度再インストールしてみようかなあ。
Personalは・・・(´・ω・`)
Personalは駄目なんですか?
学生なんで研究用にしか使わないんですが。。。
>>743
データベース機能がないよ。Borlandはアカデミック価格というのはないんだっけ・・・・
>>744
DB接続ならODBCのAPIを直接叩くコードを作ってて、
それを流用するのでいいですよ。
アカデミック版はあるよ。
いまなら通常版でも安く出回ってるような気がするけど。

>>743
学生ならむしろデータベース機能が有ったほうがいいんじゃないかな。
それ以外にもPersonalは制限が多いし。


ちなみに>>725はうちも再現せず。
ただし、某のアカデミックライセンスは制限があるので某のサイトにある使用許諾契約を買う前に読んでおく事
>>745
それってどうなの?
難しくない?
>>739
引数のない関数だからスタックフレームが消えてるYO
プロジェクトオプションで強制的に作る設定にしよう
#pragma option push -k
#pragma option pop
でその関数だけ囲ってもいいNE!
>>749>>750
ありがとうございました。仰せの通りでした。BCBのasm文はスタックフレームが
存在する事を前提にコードを吐くようですが、デフォルトで-k(標準スタックフレームを
使用する)のはずですがなぜかオプションで強制的に指定しないとダメなようです。

>>738>>740
お騒がせしました。無事動きました。
あ、>>746さんもお騒がせしました。感謝感謝です。ううっ
753デフォルトの名無しさん:04/06/09 12:14
TThreadのExecuteをTerminate( );で抜けた時に、再度Executeを走らせたい場合はどうすればいいのでしょうか?
>>753
もう一度 new TTreadからやり直す。
Personalはネットワーク関係のコンポーネントも無かったっけ?
TChartはあったかなぁ、無かったかな。
>>700で紹介されてたMAX Componentsのインストールに成功した方います?
インストールしようとしてもなぜかMAXEdit.cppで
[C++ エラー] MaxEdit.cpp(267): E2268 未定義の関数 'max' を呼び出した
[C++ エラー] MaxEdit.cpp(267): E2268 未定義の関数 'min' を呼び出した
といったエラーが出てインストールできないので、よかったら
インストール方法を教えていただけないかなと。
ちなみにこれ以外のコンパイルエラーは何とかなりました

ちゃんとstdlib.hもインクルードされてるのでmaxもminも宣言されているはずなんですが、
もしかしてBCB Ver5用に作られたコンポーネントはBCB Ver6では使用できないのでしょうか?
あ、自分が使用しているのはBCB Ver6 ProでダウンロードしたMAX CompはBCB Ver5用のものです
758700:04/06/10 02:30
XPのビジュアルスタイル適応時のTToolBarのおかしくなるヤツ、
http://www.namakoworld.com/lowtech/d6tips/dtips4.htm
BCB6でもおかしくなってしまうわけだけど、
実際の所「WM_USER + $500」 はなんのメッセージだかわかる方いますか?
もしくは、ここらへんの事情しってませんか?

>>757
BCB6で使ってます。といっても相当改造しているので原形とどめていないのですが。
max,minはSTLのをつかってみてはと。
#include <algorithm>
using namespace std;
をソースの先頭の方に書いてみて。
759757:04/06/10 09:34
無事MAX Compインストールできました
教えていただいてありがとうございます
STL使わなきゃいけなかったのか

WM_USER + $500
MSDNライブラリとか見てみたけど、結局何なのかわからなかった・・・
何もお返しできなくてゴメン・・・
760デフォルトの名無しさん:04/06/10 11:44
自分で作ったフォームを持たないクラスにMESSAGE_MAPでメッセージを受け取るには
どう記述したらいいのでしょうか?
>WM_USER + $500

WM_USERとはメッセージのユーザ用領域=意味無し
でしょ。
762デフォルトの名無しさん:04/06/10 15:30
>>753
ひとつのスレッドで何度も処理を行いたいのなら
SetEvent() と WaitForMultipleObject系API を利用しては
どうかな?

Execute() 内(大意)
while( Terminated ){
 DWORD result = WaitForMultipleObjectsEx( イベント配列 );
 switch( result ){
 case イベント1に対応する処理; ...
 case イベント2に対応する処理; ...
 case イベント3に対応する処理; ...
 case 終了イベントに対応する処理; ... Terminate();
 }
}

処理が終わるたびに WaitForMultipleObjectsEx() で次の処理の
待機状態になるので、終了指令もイベントのひとつで
処理してやることになるけど

こういうことじゃなくて?
763デフォルトの名無しさん:04/06/10 21:12
TListViewでスペースキーでのアイテム選択を無効にしたいのですが、
どうすればよいでしょうか?
スペースキーでなんか起きたっけか
765763:04/06/10 21:22
>>764
アイテムがいくつかある状態かつアクティブな状態で一つアイテムが選択されていないときに、
スペースキーを押すと、カーソル(マウスのじゃなくて)のあるアイテムが選択される。
これを何とかなくしたいのですが...。
ああほんとだ。
まあなんとでもなるだろうけどお手軽なとこでOnKeyPressを使ってみる。

void __fastcall TForm1::ListView1KeyPress(TObject* sender, char& key)
{
  if (ListView1->Selected == NULL && key == ' ')
    key = 0;
}
767763:04/06/10 21:39
>>766
ありがとうございました。できました。
KeyDownの方で何とかしようとは試みていたのですが、どうもダメであきらめていました。

768デフォルトの名無しさん:04/06/11 01:04
Delphian Worldでコンポーネントをダウンロードしてきました。
・コンポーネントのインストールで「既存のパッケージへ追加」と「新規パッケージへ追加」は
どちらを選べばいいの?
・インストール後はダウンロードしたアーカイブは削除してもOK?
>>768
どちらの質問に対しても、「好きにしろ」
ただし、
1つめの質問→カスタムコンポーネント用のパッケージを用意するのが多分普通。
2つ目の質問→再インストールが必要になったらもう一度ダウンすることになる。
770デフォルトの名無しさん:04/06/11 20:43
DBGridに表示されてる内容を他のアプリで利用可能な形式(.txt,.xls等)で
ファイルに保存する方法を教えて下さい。
>>770
悩む間にSavaToStream/SaveToFileメソッドを持つDBGrid継承クラス書いたほうが早いと思われ。
実質SaveToStream実装するだけだし。
772デフォルトの名無しさん:04/06/11 22:52
>>771
ばかかおめー、それが分かんねーから聞いてんじゃんよ
>772
低脳さんですか?
ワロタ
775770:04/06/11 23:37
>>772は自分ではないです。

>>771
>>実質SaveToStream実装するだけだし。
すいません。分かりません。よろしければ詳しくご教示下さい。
>>775
SaveToStreamメソッドでGrid内のデータをTStreamに書き出すだけ。ループ使って全要素さらえば簡単だろ。
SaveToFileの実装は他のSaveToFileとSaveToStream実装してるVCLクラスのソース嫁。
777デフォルトの名無しさん:04/06/12 00:54
お前ら本当アフォだろ?
VCLクラスのソースを読める奴がそんな質問するわけねーじゃん
ちょっとは考えろよ
うーん、さすがに>>776の回答は無茶だろ。
質問者がソースを読めるのか?という以前の問題。
・・・書いてる本人、意味が分かって書いてるのか?

>>770
とりあえず、
1.書き出すのは選択された項目かTDBGridに表示されている全てか
2.書き出すフォーマット
以上を明確にして。
際安いくらで買えんの?
てか何買えばいいんだ?
780771:04/06/12 05:27
>>778
>>1.書き出すのは選択された項目かTDBGridに表示されている全てか
 全てです。
>>2.書き出すフォーマット
 スペース区切り又はカンマ区切り形式です。
Gridの内容をテキストに落とすくらい自分で考えてできないということはプロじゃないよな?
ってか、ど素人だろ。ファイル入出力程度の知識も無い・・・
可哀想にな >>770
素人だって書くと「素人は免罪符じゃねー」と言って怒られ
書かなければ書かないで嘲られ…
ここじゃどうにもならんよ。ゆきぼう氏の板で聞いてみれば?
回答は散々既に出ている訳でこれで理解できないということは
Cの基本的知識が欠落しているということ。
TDBGridの問題とは全然関係ないレベル。
>>770
ここ見れ。Excelに吐き出す方法が載っている。別に何か買う必要はなし。
ttp://www.wwlnk.com/boheme/delphi/techdoc/dad0070.html

ポイントはDBGridを何とかすることではなく、DBGridの基になるDataSetからなんとかすること。
コンポーネントだったらここにある
ttp://www.maxcomponents.net/ (Excel)
http://www.korzh.com/delphi/ (CSV, TXT)
786785:04/06/12 11:08
>785はDelphiのサンプルだったわ…スマソ。
単にループしてファイルに出力すればええんでないのかい。
それじゃあだめなんかい。へーそうかい。瀬戸内海。
初心者が意味不明瞭な質問をすると荒れるなぁ。
回答者のレベルが低いんでしょうね。
(だから受け付けられる質問の幅が極めて狭い)
>>770
単純にループを回すとこんな感じ。

//ヘッダファイルの追加
#include<memory>

//書出し処理
 //CSV形式にするためTtringListを2つ使う
 std::auto_ptr<TStringList> file(new TStringList);
 std::auto_ptr<TStringList> line(new TStringList);
 //書き出すTDataSetを指定する
 TDataSet* pDS = DBGrid1->DataSource->DataSet;
 pDS->First();
 while ( !pDS->Eof )
 {
  line->Clear();
  for ( int i=0; i<pDS->FieldCount; ++i )
   line->Add( pDS->Fields->Fields[i]->AsString );
  file->Add( line->CommaText );
  pDS->Next();
 }
 file->SaveToFile( "export.csv" );

ただし、これ,ですめば簡単だが、すまないことも多々ある。
それはそのとき按配して。
>>787
すまないんだよ。
汎用のSaveToStream/SaveToFileを実装しようと思ったらかなり面倒。
>>788
初心者の質問であるが、意味不明ではない。
むしろ今回の質問は回答の方に見当はずれがめだったぞ。
792141:04/06/12 14:16
>>791
>初心者の質問であるが、意味不明ではない。
そうかなぁ?質問をたった2行ですまそうってのはあんまりだと思うけど。
DBGrid の中全体を書き出したいのか、選択されてる行限定なのかとか、
Excel でもいいっていうけど、Excel がある環境限定でいいのかとか、
>>770 を読むと、いろいろ問いただしたくなる。

答えてやりたい気持ちはあるんだが、
しかし問いただすの面倒なので放置ってのが
オレは多いんだが。

短い質問に答えると、>>708 みたいな目にも合うし・・・・ orz
793778=790=791:04/06/12 14:52
>>792
>>770の質問者はExcelとは言ってないけど?混乱してない?

「不明確」と「意味不明」じゃ違うでしょ。
>>770は、おれにとっては.、不明確な点はあるが意味不明ではない
レベルの質問だけど、まぁ、この辺の受け取り方は人それぞれだわな。

それより、この質問は”BCB Tips”にあってもいい内容だけど(w
794デフォルトの名無しさん:04/06/12 17:17
そもそも、Builder6ってバグだらけで...Builder5のまま入れ替えてないよ。
795デフォルトの名無しさん:04/06/12 17:19
そもそも 6でプロジェクトファイル勝手に書き換えると、
二度とプロジェクト開けなくなるのはどうしてなのさ?
796デフォルトの名無しさん:04/06/12 17:21
6ってバグだらけだから、遣うんだったら5がいいよ。
797770:04/06/12 20:11
>>790
その方法を試してみようと思います。
自分は初心者なので、ご教示頂いたソースを見ても分からない所が有りますが、
ヘルプを見ながらがんばってみます。
798デフォルトの名無しさん:04/06/12 20:30
Builderにあるファイル読み込んでそのファイルのアドレスの値を書き換えることって可能?
>>797
データベース周りは確かにとっつきにくい。
経験がないとBCBのヘルプだけではしんどいよ。
自分で調べることも大事だが、きちんとした内容の解説書を読むと
不必要な試行錯誤をしなくてすむ。

BCBだと「コンポーネント活用ガイド&実践プログラミング」が定番。
今のところ5巻まで出ている。
まぁ全部買う/読むとしんどいので2、3巻あたりをどうぞ。
ってか、普通にcsvで出力すると何か問題があるんか?
処理も超単純だし。
それにデータベースの話ではないと思うが。
単純杉でTipsにもならんと思うが。
801141:04/06/12 21:20
>>793
>Excelとは言ってないけど?
Excel でとは限定してないけど、「xls 等」とはいってるでしょ?
意味不明とはぼくも言ってないよ。
ただ、たった2行の質問では答えにくいと言ってるだけ。

そして、キミの言うとおり回答が「見当はずれ」だとしても、
それは、質問の不明瞭さが招いた結果であって、
人に回答してもらおうとおもうなら、
せめて、明確に、でも簡潔に書くべきなんじゃないかなと
思っただけ。

まぁ、2行の質問だろうが、答えようと思う人はいるし、
それで良しと思う人もいるだろうから、
「お前がでるまくじゃねぇよ」と言われれば、
まぁ、そうなんですが。
802770:04/06/12 22:03
>>799
そういう事を知ってる人も教えてくれる人も自分の周りには皆無...
ありがとうです。

>>800
>>ってか、普通にcsvで出力すると何か問題があるんか?
問題無いです。

>>801
csv形式と限定したら、レスが付きにくいのでは?と思ってしまい、
あいまいな質問をしてしまいました。ごめんなさい。
>>802
悪い子と言わんから君みたいな初心者はVBにしとけ。
VBなら、DBGRidをテキストに掻き出す方法なんてMSKKの
サポート情報検索サイトで一発で見つかる。
804デフォルトの名無しさん:04/06/13 01:36
ListViewに項目を追加するとスクロールバーが一番上に戻ってしまうのですが、
それを一番下にするにはどうすればいいですか?
805デフォルトの名無しさん:04/06/13 01:55
試行錯誤と引き替えにC++は強力な処理能力を手に入れるチャンスを与えられる
わがままな漏れはC++じゃないと
胃に穴が空いてしまう
でも試行錯誤してると納期に間に合わなくなるので胃に穴が空いてしまう
プロなら納期厳守。
>>804
ListView_EnsureVisible
(=TListItem::MakeVisible)
809デフォルトの名無しさん:04/06/13 18:34
BCB6にJEDI JVCLをインストールしたいんですが、 JvCoreC6R.bplのところでエラーしちゃいます。インストールできた人います?
>>809
JCLはインストールした? あと、SourceForgeのJCL/JVCLは古いから
CVSリポジトリのスナップショットをインストールすればいいみたい。

もし、JCLをインストールしていなければ、ここ(ttp://homepages.borland.com/jedi/jcl/)の
DownloadからSourcePackを選んでJCL1.91をダウンロード→インストール。

CVSリポジトリのスナップショットはホームページ(ttp://homepages.borland.com/jedi/jvcl/)の
Downloadsからたどれるttp://homepages.borland.com/jedi/jvcl/Downloads.htmにある
QuickLinksのほうはSourceForgeに誘導されちゃうから、気をつけて。

俺はこれでうまくいったよ。

おもしろそうだから、俺も明日いじってみよう。
811770:04/06/14 21:05
>>790
  ありがとうございます。ばっちり動いて望む結果を得ることが出来ました。
>>799
  早速3巻を注文しました。
812デフォルトの名無しさん:04/06/14 21:41
>>810
JCLはインストール済みでしたが、今までSorceForgeのJVCLで悪戦苦闘してました。
早速試してみたところ、できました!
コンポーネントの数に驚き!これから色々試してみます。
Editor関連のコンポーネント、使えるかなぁ・・・。
813810:04/06/14 22:54
>>812
おめ。

JVCLってDelphi専用だと思っていたから、BCBで使えるなんて知らなかった。
教えてくれてありがd。
で、気になってビルドに挑戦したら、同じく悪戦苦闘。

前にも似たケースがあって、CVSリポジトリからソースを拾ってうまくいったから、
もしかしたらと思ったけど、変わりすぎ。>JVCL
こんなに変わるんだったら、SourceForgeのアーカイブも更新して欲しかったな。
810さんの書き込みでJCL・JVCLの存在をしり早速インストールして、
サンプルがあるものをビルドして試しているます。

たとえば、examples\JvTrayIcon
をビルドして実行すると、起動直後に
「EReadErrorクラスの例外を生成しました。」
となり実行できません。
同様の症状のものが結構あります。

デバッガによると、TCustomImageList::ReadD3Stream
で止まっているようです。

サンプルをそのまま動かすにはどうすればよいでしょうか?
815デフォルトの名無しさん:04/06/15 10:50
RichEditでCount行までループし
for( int i = 0; i < RichEdit->Lines->Count; i ++ ){
}
各行の2バイト目から6文字の色を変えたい場合はどうすればいいのでしょうか?
816デフォルトの名無しさん:04/06/15 11:07
>function StrToDateTime(const S: string; const FormatSettings: TFormatSettings): TDateTime; overload;

なんで、上記のDelphi関数はBCBにないんですか?
ShortDateFormatみたいなグローバル変数じゃ、困り松。
>>816
(゚д゚)ハァ? 釣り?
818デフォルトの名無しさん:04/06/15 11:53
>>817
いや、マジ、マジ。

グローバル変数じゃ、マルチスレッド処理で困っちゃうし。

DelphiのSysUtils.pasにはTFormatSettings型があるけど、BCBのSysUtils.hppには無かったり。
for( int i = 0; i < RichEdit->Lines->Count; i ++ ){
  RichEdit->SelStart=RichEdit->Perform(EM_LINEINDEX,i,0)+1;
   //i行目の先頭の位置を取得(API) +1(二バイト目の指定)
  RichEdit->SelLength=5;
   //選択範囲を決定
  RichEdit->SelAttributes->Color=clRed;
   //色指定。他の設定もできる
}

こんなところか。
見やすくするため先頭が全角スペースなんでTABにでも書き換えてね
ただし、コンパイルすらしてないので無保証、色をかえる位置とかは調整してくれ。

Builderの通常のメソッドとかに無くてもWindowsAPIにある機能で
やりたいことができる場合が多いので一度Builderについてる
日本語helpでもいいから目を通しておくことをお勧めする
っと >>819 は >>815当てね
>>816
名前から予想するとTDateTime::FormatStringで事足りそうだけどどう?

で、なんで無いかって言うとそれはD7以降の関数なのでは。
>TDateTime::FormatString
ヘルプだと、
>format で指定された形式を使って,TDateTime オブジェクトをフォーマットします。
なので、やりたいことの逆変換みたいでつ。

>で、なんで無いかって言うとそれはD7以降の関数なのでは。
そうですか。
無理やりpasファイルをリンクしてやろうかと思ったが、BCBじゃコンパイル出来ないか。
ごっそり、Del7ライブラリ差し替えるのも怖いし。
う、逆か。
「TDateTime オブジェクトをフォーマット」だから、
フォーマットしたあとに文字列を受け取ってくれるのかも。

今サンプルコード作ってる最中でつ。
825824:04/06/15 13:57
やっぱだめです多。
TDateTime::FormatStringしたときに文字列が出来るだけで、
その後、Stringを放り込んでもWindowsのローケールにあった文字列しか受け取ってくれません。
9までお待ちください
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧ ニヤニヤ
 ( ・∀・)
 (    )
 | 某|
 (__)_)
>>826
分かったから発売しる!




BCBXはイラネ
_adopt_threadすごいな。感動した!
829810:04/06/15 21:23
>>814
こっちでもビルドしてみたけど、ちゃんと動いたよ。

サードパーティのコンポーネントを使っていると、時々変なところでこけることがあるから、
$(BCB)\LIBの下にあるプリコンパイルヘッダ(vcl60.csm,vcl60#*)を一度削除して、
再コンパイルしてみたら?
830810:04/06/15 21:33
>>829
訂正。
再コンパイルでなく再構築。
Builder6なんですが簡単なプログラムを書いて実行すると
リンカエラー 外部シンボル'_Form1'が未解決
というのが2つでてきます。
どうすればいいでしょうか?
>>831
多分、自分でも良く分からないのに変なことしたでしょ。
仕方が無い、最初(新規作成)からやり直しな。

つか、「ちゃんと入門書を読みなさい」ってのが一番あなたに相応しいアドバイス。
答えられないなら黙ってていいよ。
別にレスつけるのは義務ってわけじゃないからね。
>>833
>>831の場合は最初から作り直しってのが一番妥当な解決策だと思う。
Form1がリンカエラーになるってのは、かなり変なことしてるはずだし、
それを掲示板のアドバイスで初心者に回復させるのはまず不可能でしょう。
835809:04/06/15 23:51
JvEdit関連、使ってみたけど残念な結果に終わりました。
文字化け多すぎ・・・。
Editコンポ関連では、SynEditの方が使える。
あれはあれでワードラップの所で化けるんだけど・・・。
煽りしかできないなら氏んでいいよ。
別に生きるのは義務ってわけじゃないからね。
837831:04/06/15 23:54
>>832
アドバイスありがとうございます。
原因がよくわからないのでもう一度参考書などを読んで出直してきます。
今でも初心者だけど、買ったばかりのC++Builderをいじくり回していて、
行き当たりばったりで作ったフォームの上にある部品の名前が気に食わなくて、
よせばいいのに手作業でつけなおそうとしたりしていると、リンカーエラーが
出たなぁ

たぶん、>>831さんも、中途半端にいじくり回して、いろんなものの名前の辻褄が
合わなくなっているんだと思う。長時間かけて修復するより、さっさとフォームから
作り直したほうがいいと思うよ。
>>831
初心者のやりそうな失敗ということで、あてずっぽうに言うと
Form1のユニットファイルとプロジェクトファイルを同名にして
片方をもう片方で上書きしてしまうってのがある。

この場合、修復は不可能なので結局最初からやり直し。
840831:04/06/16 00:19
フォームを作るということもわかりません。
学校のBuilder3では動いたのですが、
3も6も同じようにすれば動くと勘違いしていたようです。
完全な知識不足のようなので勉強して出直してきます。
841デフォルトの名無しさん:04/06/16 11:11
TIBQuery使ってます。(TQueryと同じインターフェース)

Insert時に、TParams*型のParamで、
Param->AsString = "2004/06/16";
とかしてて、ほぼ動作するんですが、
ロケールで日付区切りが'-'とかになってるとExecSQL()で、
日付文字列じゃありませんエラーになります。
ロケールが'MM/DD/YY'になってる場合もあるし。。。
DBのデータ復旧ツールなんで、Paramが日付型なんて情報も分かりません。
なんらか回避する方法は無いでしょうか?
>>841
TParam::DataTypeで型を取得する手は使えないの?
843デフォルトの名無しさん:04/06/16 12:53
>>842
Prepare()した後にも、どのパラメタもdtUnknownのままでつ。
質問でつ。

DLLからimplibやimpdefでlibファイルやdefファイルを作成出来るのは分かりましたが、
C++プロトタイプ宣言を出力する方法はありますか?
Delphiで作成したDLLをインポートしてもリンクエラーですが何で?
1つ質問したいのですが、よろしいでしょうか?

自作中のプログラムに、友人が描いてくれたアイコンを組み込んだのですが、
エクスプローラの右クリック→プロパティで見ると、
何故か、全般タブ内のプログラムアイコンが組み込んだアイコンではなく、
IDI_APPLICATIONを設定した時のアイコンとなってしまいます。
リソースの組み込みはILINK32.exeを使って行っているのですが、
BCBのリンカは素直にリソースを組み込んでくれないと言う話を聞いたので、

メインソース内で、
#pragma resource "Test.res" // リソーススクリプトをリンク
と記述してリンクしてみたのですが、ダメでした。

なお、ILINK32.exeを使用せず、以下の手順を踏むと正常に表示されます。

1, bcc32.exeでビルド(Ex: bcc32 -tW Test.cpp)
2, brc32.exeでリソースを組み込む(Ex: brc32 Test.rc Test.exe)

実際のコンパイル処理の手順はメイクファイルに記述しているので、
上記のまま書けばいいじゃんと言われればそれまでですが、
BCBに吐かせたメイクファイルが、ILINK32.exeを使用している為、
なるべくそちらを使用したいので、解決策を知っている方がいたら、ご教授下さい。
ちなみに、下記のPCスペックからも分かる通り、
IDEは処理が重たくてあまり使いたくないので、IDEを使っての解決はご容赦下さい。

開発環境
CPU: MMXPentium 200MHz MEMORY:64MB
OS: Windows98(各種パッチ適用済み)
BCB: C++ Builder5 Learning Edition

スレ違いだったら、申し訳ありません。
よろしくお願い致します。
847846:04/06/17 01:03
申し訳ありません。
1つ、書き忘れてしまいました。

BCB5は、UpdatePack1適用済みです。
848デフォルトの名無しさん:04/06/17 02:13
スレッドを30個も起してる馬鹿先輩がいます。
どうにかしてよ。まったく・・・
>>848
2ちゃんねるの話かと思ってしまった。
BDEのメモ型フィールドとTMemoとのやり取りはどうすればいいのでしょうか。
あまりに初歩的すぎるのか、HELP捜してもググっても見付からない…orz
851デフォルトの名無しさん:04/06/17 14:15
>>138
>>142有料化を認めないなら登録しなければいいだけの話。板ネタと関係ないはなし。
うらやみ・ねたみ・誹謗・中傷そのものだよ。再度”おやくそく”を読み直してみてよ。
頭のおかしな者達と思われないためにもね。
852850:04/06/17 14:16
自己解決しますた。
TMemo->Lines->LoadFromStream / SaveToStream
TBlobField->LoadFromStream / SaveToStream
>>852
TBlobField::AsStringですむような気がするが。
>>851
お前はいつの話をしてんだYO!!
古い話を蒸し返すのはよせ。
頭のおかしな者達と思われないためにもね。
とか言いながら当該ネタを引き伸ばす奴 ;-)
856850:04/06/17 16:03
>>853
どっひ〜!SplThx!!
857デフォルトの名無しさん:04/06/17 16:17
>851==本人ヵ?
無料がいきなり有料、しかも高額なんだから、当然予想される反応だろう。
しかもこの板とは関係が当然ながらある話。
有料になったことへの批判等をしちゃあいけないなんてそれこそ、頭おかしいとしか思えない。
言論統制なんて無理だよ。
ぼったくりはぼったくり。
> 批判等をしちゃあいけないなんてそれこそ、頭おかしいとしか思えない。
頭がおかしいのは、誰かが「批判等をしちゃあいけない」と言った、と
思い込んでいる人でしょうね。
>>851
なんと言おうとぼったくりはぼったくり。
ケチくさいTipsで金取んな。考え方が甘すぎ。
一ヶ月500円っていうウソがむかつきませんか皆さん。実際には年間6000円しか認めないのにです。年間利用料が6000円で、月換算なら500円相当って書くべきです。
料金を低く見せかけたいがためのまやかし、でたらめ、ウソ八百と思われても仕方ないと思います。反発を受けるのは当然ですよ。
>>859
> なんと言おうと
逃げるし ;-)
863デフォルトの名無しさん:04/06/17 22:16
>>854>>857>>859>>860負け犬の遠吠え同じ言しかいえないのか、さらばじゃ


864141:04/06/17 22:27
>>863
書き逃げかYO!!
>>863
おまいは何がしたかったんだよ。もしかして会員か?(w
おぉ、本人降臨
本人がここ読んでいない可能性は極めて低いだろうし、
ぼったくられたことに気づいた極少会員が逆切れしたようにも見えなくもない。
まあ会員なんていても数名だろうね。
>>862>>863
負け犬の遠吠えはそっちの方だ。

>>867
同意
現在フォームにモーダルなフォームやダイアログがかぶさっている状態かどうかを
得るにはどうすれば良いでしょうか?
870141:04/06/18 00:26
>>869
Screen->ActiveForm->FormState をチェック。
>>870

thx!!
872デフォルトの名無しさん:04/06/18 00:45
C++Builderってぶっちゃけ、終わってね?
VC++を超えることはできないよね
FAの仕事してるとVC++のライブラリはあるがC++Builderはまずない
まあ、implibすればいいが、不具合があった場合ベンダーは必ず
「VC++ようですから・・・」
まったく使えねーよ>C++Builder
873871:04/06/18 01:09
ごめんなさい。

ダイアログ(OpenDialogとか)が開いている最中かどうかは
Screen->ActiveForm->FormState
でとれますか?
>>872
君の文章を読む限り、使えないのはベンダーだと思う。
>>872
「りくナビ」使ってる会社にいるなら一度見せてもらうといいかもよ。
C++Builder は意外に使ってるとこ多いよ。
そりゃあ、数ではCV++にはかなわんわけですが。
876141:04/06/18 01:42
>>873
ダイアログはどうだろね。
やったことないのでわかりません。
877141:04/06/18 01:55
>>873
ためしにやってみたところ IsWindowEnabled なら両方OKでした。
これでどう?
8783873:04/06/18 02:06
>>877
うまくいきました!
ありがとうございました!!
879デフォルトの名無しさん:04/06/18 09:53
>>874-875
釣りは放置しとけ
880141:04/06/18 11:26
>>878
うまくいったか。そりゃあ、よかった。
ところで、フォームに他のウインドウがモーダルで被さってないか、
知りたいシチュエーションってのが思いつかないのだが、
どうして知りたいのか良かったら後学のため教えてください。
881デフォルトの名無しさん:04/06/18 11:59
TUpDownのMaxやPositionてshortですがこれって32bitで扱う方法ありますか?
>>881
無理。もともとWindowsのUp-Down Controlがshortで指定することになってるから。
>>881
IE5以降の環境なら32bit用のメッセージが別にあるのでSendMessageしろ
884デフォルトの名無しさん:04/06/18 14:05
>>883
んじゃ、やり方教えろ!!
>>884
藻前には無理(w
886デフォルトの名無しさん:04/06/18 16:50
知らない奴に限って>>885みたいなレスするんだよな(´,_ゝ`)
そう思わないとやっていられない状況なのはわかる。
>>886
それは藻前のことか(w
889878:04/06/18 21:07
>>880
OpenGLのアプリを開発していまして、
定石だと何も考えずOnPaintハンドラ内で描画処理をおこなうのがセオリーですが、
これだと意図していないタイミングのPAINTメッセージがやって来たときに、よけいな描画処理を行うことになります。
そこで意図していないときは、あらかじめ以前にレンダリングしておいた結果を保存しおいて、そいつをBltするようにしたわけです。
(画面が激しく動くアプリでないので)

この以前の「レンダリングしておいた結果」を保存するときのタイミングをTApplcation::OnDeactivateでおこなっています。
このときにダイアログなどが上にいるとそれが写ってしまいます。
なので、ダイアログが上にいたらその処理を行わないかわりに、
ダイアログが表示されるときに結果を保存する処理を入れたかった。

「描画をオフスクリーンにレンダリングしておいて」という方法もとれなくもないのですが、
ビデオカードによっては制限があるのでこのような処理をすることにしました。

てな感じです。いかがでしょうか?
Personal Edition ってフリーソフトの配布はOKなんですか?
レンダリングした結果を保存というのは、一度画面に表示された結果を
その画面のまま取り込んでいるということでしょうかね。

OpenGLってセカンダリスクリーンバッファに直接描画とかできないのかな?
できるならOpenGLの出力は内部バッファに直接レンダリングしてもらう
OnPaintではただそのバッファを転送するのみ。
こうすれば、描画結果をかならずどこかに保持してるので
そういう処理は楽にできますね。

あまり速度が出なくても良い場合の一番手っ取り早い方法は
TImageコンポーネントをフォーム上に配置しておいて
プログラムが描画するのはそのコンポーネントにだけ。
これなら、重い描画なんかはこちらの任意のタイミングのみですし、
あとの表示とかは全部TImageコンポーネントまかせでOKです。

OpenGL使ったこと無いので的を外してたらスマソ。
ちょっと脱線だけど、正直VCとBCB両方やったことある人はBCBに行ってる割合が高いと思うがどうよ?
BCBからVCに移行しようと思ってるけど
慣れたBCBから離れられず
○| ̄|_ -3 -3 -3
バグだと思うのですが、いつの頃からかフォームのpositionをpoDefaultPosOnlyにしても、
フォームの表示位置が画面の左上(座標0,0)に固定されてしまうのですが、
何か解決方法をご存知の方はいらっしゃいませんか?
ちなみに*.obj等の一時系ファイル?を削除しても駄目でした。
Winodws API を用いて省電力モードのサスペンドへ移行させる
プログラムを書いています。

OS 2000/XPです。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/power/base/setsystempowerstate.asp

SetSystemPowerを用いればよいのかと思いますが、
初心者なのでAPI関数をどう呼び出せばよいか分かりません。

kernel32.lib winbase.h辺りも関係あるようです。

コードの記述の仕方を教えて下さい。
896デフォルトの名無しさん:04/06/19 01:19
Builder5でアドベンチャーゲーム作っています。
そこで人物描画時のマスクについて質問があります。

TCanvasに透過処理された人物を描画したい場合、
あらかじめマスク用の画像を用意しておいて

(1) 背景を CopyMode = cmSrcCopy で CopyRect
(2) マスクを CopyMode = cmSrcAnd で CopyRect
(3) キャラを CopyMode = cmSrcPaint で CopyRect

とすると思うのですが、マスク画像をプログラム内で簡単・高速に生成する良い方法はないでしょうか?
よろしくおながいします。
>>895
コンソールアプリでない限りたいていのAPI関数はそのまま呼び出せる。
ただ、SetSystemPowerStateの場合、msdnの説明のとおり事前にシャットダウンする
権限を与える必要があるのでちと面倒。
んな感じ。

 HANDLE handle;
 DWORD length;
 TOKEN_PRIVILEGES prv_1, prv_2;
 OpenProcessToken(
  GetCurrentProcess(),
  TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES,
  &handle
 );
 LookupPrivilegeValue( 0, SE_SHUTDOWN_NAME, &prv_1.Privileges[0].Luid );
 prv_1.PrivilegeCount = 1;
 prv_1.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(
  handle,
  false,
  &prv_1,
  sizeof(TOKEN_PRIVILEGES),
  &prv_2,
  &length
 );
 SetSystemPowerState(true, true);

ただし、オレ、今よっばらってるから失敗しても責任は持たんぞw
あー、ウォッカは効くわー。
>>896
そりゃ斧で外科手術するような手法だし。

ScanLine で 1 pixel ずつ重ね合わせるのがお勧め。
MMX の効果が絶大な処理なので、余裕があれば MMX で書いてみられたい。
パズルみたいで楽しいよ。

あと、1bit のマスクだと、きょーび、とても綺麗とはいいにくい絵になっちゃうので、
マスクを 8bit のアルファチャンネルとして用意してあげたい。
899141:04/06/19 11:36
>>889
勉強になりました。
900896:04/06/19 12:21
>>898
ぐはっ!ScanLineはぇぇぇ!

  // マスク色の取得
  TColor c = Pic->Canvas->Pixels[0][0];
  // マスクパターン生成
  for( int y=0; y<Pic->Height; y++ )
    for( int x=0; x<Pic->Width; x++ )
      if( Pic->Canvas->Pixels[x][y] == c )
        Mask->Canvas->Pixels[x][y] = clWhite;
      else
        Mask->Canvas->Pixels[x][y] = clBlack;

こんなアホなやり方でマスクを生成して色々やってたんですが、

  Byte *p1, *p2, svp;
  for( int y=0; y<Pic->Height; y++ ) {
    p1 = (Byte *)Pic->ScanLine[y];
    p2 = (Byte *)BG->Picture->Bitmap->ScanLine[y];
    // マスク色の取得
    if( y == 0 ) c = p1[0];
    // 合成処理
    for( int x = 0; x<WkPic2->Width; x++ ) {
      if( p1[x] == c ) p1[x] = p2[x];
    }
  }
  PaintBox->Canvas->Draw( 0, 0, Pic );

これで簡単に合成できそうですね。
もう十時間以上に試行錯誤してました…。サンクスコ!
C言語で作ったパッケージ、組み込むと全部リンクしようとするからファイル
サイズすんごくでかくならない? nodefault 効かないし。 いい加減だよ。
私の場合、全部 Pascal に書き直してる。
好きにすりゃええがな。
>>892
俺はVC、BCB併用に落ち着いた派

製品(ゲーム系やライブラリ)の作成にはVCを使用、
社内用ツールやデータのコンバータはBCBでサクっと作成
みたいに使い分けてるよ。
VisualAssistプラグインの中毒患者なんでコード自体は
ほとんどVCで記述してしまうけどね。

>>900
>for( int y=0; y<Pic->Height; y++ )

BCB3の頃、forループの終了判定でHeightプロパティとの
比較を行うと最適化有効時に変なコード吐くことがあったなー
とか思い出してしまったよ。(´・ω・)
>>903
VisualAssistプラグイン ってなに?
>>900
5年前から気付いていたが。

>>904
http://www.wholetomato.com/products/index.html
>>900
画像を単に90度回転するだけでもScanLine使うのと使わないのでは10倍くらい差がでるな
Java(JBuilder4)からC++(BCB6)へコードを変換するソフトはありますか?
J2C
909デフォルトの名無しさん:04/06/20 22:15
会社に嫌なヤツおるねん。
なんか生理的に合わないヤツ。
でも一緒にプロジェクト組まないとダメなん。
あっちもこっち嫌ってる。
どうしたらいいんだ…。
スレ違いだが、
時間作って二人っきりで旅行に行け。
たいがいそれでOK。
なんとか温泉殺人事件?
>>911
オパーイは映りますか?
913907:04/06/21 10:29
>>908
ありがとうございます!
914909:04/06/21 22:15
>>910
旅行いけるくらいなら嫌わないっての。
もう、話すだけで殴りたくなる。
話してるのさえ聞きたくない。
顔見てるだけでイライラする。
そんなヤツ。
…スレ違いだな。スマン。
アップデートパック #4 を入れると CodeGuard でエラーが発生するようになってしまう不具合の
回避方法はありますでしょうか?。 #5 を待ってたのですが、もう1年以上放置されてますし…。
もし回避方法がない場合は #3 に戻したいのですが、旧パッチは公開されていますでしょうか?。

しかし Borland ではこの件について認識していないのかなぁ???。
あれってアップデートパックのせいだったのか。
俺一度もコードガードを有効にしてアプリを正常終了できたことなくて、なんだこの機能はって思ってた。
917878:04/06/22 18:23
>>916
「実行時パッケージを使って構築」
「共有RTLDLLを使う」
両方ともON。
自分はこれで回避している。

>>917
感動したっ
回避できましたよ。ありがとう。
919デフォルトの名無しさん:04/06/23 04:02
Builder6でジョイスティックの入力を認識させるためにDirectinputを利用したところ、
実行時に[リンカ エラー] 外部シンボル '_IID_IDirectInput8A' が未解決、と出てしまいます。
ライブラリ指定は行っているので原因はほかにあると思うのですがプログラム経験が浅く
お手上げ状態です。
どなたか解決法ご存知でしょうか?
>>914
とりあえず殴ってみろ。男なら言葉は要らない。拳で解決。
922デフォルトの名無しさん:04/06/23 17:44
TStringsをソートする方法を教えてください
TStringListにキャストしてSort。
どうせ実体はTStringListだろ。

と、決め付けてみる。
924デフォルトの名無しさん:04/06/23 18:12
TComboBox
ComboBoxならSortedをtrueにすればいいやん
926デフォルトの名無しさん:04/06/23 19:21
ComboBoxのItemsを作った関数に渡してそこでソートできないかなっておもt
TStringList* strings = new TStringList();
strings->Assign(ComboBox1->Items);
strings->Sort();
ComboBox1->Items->Assign(strings);
delete strings;

ComboBox1->Itemsを受け取る関数でこれと同じ事をすればいい。
ソート方法を変えたかったらTStringList::CustomSortで。
C++Builderって業務アプリ作るならDBコンポーネント
使えばVBより速くてラクでしょ?
処理速度も問題ないだろうし。もっと使うべきだ。
929デフォルトの名無しさん:04/06/24 09:55
>>927
ありがとうございます!
お返事遅れて申し訳ありません。非常に参考になりました。
930本田:04/06/27 05:27
>BCBからVCに移行しようと思ってるけど慣れたBCBから離れられず

私も同じです。
だから「MFCによるWindows95プログラミング」を読んで、
BCBでウィザードに頼らないMFCプログラミングを勉強中。
C++Builder5 (learning) ではキャンバスコンポーネントは使えないんでしょうか?
>>931
TCanvasのことなら使えるだろう。
933デフォルトの名無しさん:04/06/28 09:51
タイトルバーの色をプログラムで変更したいのですが
どのようにしたらよろしいでしょうか。
>>930
MFCは.NETでサポートされないんじゃないの?
いまさら何でMFC?

”.NET interoperability”シールが貼ってあるBCBの方が良いような。
935デフォルトの名無しさん:04/06/28 19:39
>>931 SetSysColors使ってもグラデーションみたいになって
うまくいかないのです。Win2000 BCB5
>>935
具体的に、どのようなコードを実行したらどのような結果になって、
それをどのようにしたいのか書かないと誰も回答できない。


  void __fastcall TForm1::Button3Click(TObject *Sender)
  {
   const unsigned
   long ColorArray[2]= {clYellow, clRed};
   int ColorIndexAr[2] = {COLOR_DESKTOP, COLOR_WINDOW};

   SetSysColors(2,ColorIndexAr, ColorArray);
  }


Windows.pasあたりに定義が(ry
938本田:04/06/30 01:44
>MFCは.NETでサポートされないんじゃないの?
>いまさら何でMFC?

WindowsCEではMFCぐらいしかクラスライブラリがないのでは?!


939デフォルトの名無しさん:04/06/30 02:38
BCB用のライブラリはあるけど、VC用はないってことはなくない?
VC用のライブラリもBCBで使えるが、ベンダーは保証しない。
つか、VCのほうが初心者が入って来づらいんでよい
BCBのポトペタコードでC++できますなんていう奴がいるから
腹たって仕方ないぞ!!!!
アセンブラのみの世界から見れば C++ なんて堕落の極み。

っていわれているぞ。釣りだと思うが、所詮程度問題。
>>938
WindowsCEさえ、WindowsCE.NETにいこうした、という以前に。

なぜにWindowsCE?
WindowsCEなんて台数出てない上に、
組み込みに必要なマイクロセカンドの動作が出来ないし、
一番困るのはOS本体の発売停止。
愚の骨頂。

組み込みの機能が無いからとT-Kernelを包括するとアナウンス、デモ、するも未発売。
発売したとしてもそのころにMFCは消えてるだろう。
942デフォルトの名無しさん:04/06/30 10:02
フォルダ名に-(ハイフン)が含んでるとコンパイルできない?
BCB5プロなんだけど
>>942
BCB6でもデスクトップフォルダだにプロジェクト作ると駄目だったり、結構フォルダに弱い。
それにインストール後に日付のロケール変えても、起動時にエラーったり。
そのへん、Del7では発生しないんだが。
944デフォルトの名無しさん:04/06/30 10:55
>>943
滅茶苦茶悩んだ
同じソースを違うフォルダにコピーしてやったらコンパイル通るし
コンパイルエラーもVcl.Hが無いみたいなエラーだし・・
なんとかして欲しいねこれ系は
質問です
C++Builder6のコントロールに中国語を表示したいのですが,
うまくいきません。

Googleで検索しても,VisualCばかり出てきて,よくわかりません。
うまい方法ご存じの方,いらっしゃいましたらご教示ください。
よろしくお願いします。
Tntだっけか?Unicode対応のコントロールを使う



CLXを使う(QtのWin用ランタイムが対応してる)



SendMessageWやSetWindowTextWで直接…
947945:04/06/30 12:51
>>946
早速の回答ありがとうございます。

Tnt というのはこれですよね?
http://www.kk.iij4u.or.jp/~ayakawa/links/delphi.html

インストールがうまくいかなかったので断念していました。

CLXを試してみたいと思います。

SendMessage でメッセージを送るのには,コンポーネントに
直接送ることができるのでしょうか?
引数の HWND hWnd の求め方がわからないです。
やり方を教えて頂けたら幸いです。
>>942
-P じゃね?
ハイフンだけならOK。

[C++ エラー] Ex02_02.cpp(2): E2209 インクルードファイル 'VCL.H' をオープンできない
[C++ エラー] Ex02_02.cpp(4): E2303 型名が必要
           ・
           ・
           ・
           ・

でしょ?
ビルダーのデバッガが例外例外といってうざいです。
ある特定の例外はスルーするように設定できませんか?
デバッガオプションで無視する例外を指定できるじゃないか。
thx
952デフォルトの名無しさん:04/07/02 18:51
StringGridのDrawCellイベントでカーソルがある行の色を変える方法を教えてください
954デフォルトの名無しさん:04/07/03 20:37
PARADOX形式のDBに、A.bmpと言うビットマップファイルを登録するとします。
テーブル名称をHogeHoge、当該フィールド名をBitmapとし、
テーブルに対するクエリーをquery_HogeHogeとした時、下記の空欄には何を
入れればよいのかご教示下さい。

query_HogeHoge->Close();
query_HogeHoge->SQL->Clear();
query_HogeHoge->SQL->Add("UPDATE HogeHoge SET Bitmap = :Bitmap");
query_HogeHoge->ParamsByName("HogeHoge")->ここが分かりません = ここが分かりません;
query_HogeHoge->ExecSQL();

以上、よろしくお願いします。
質問です。

x=t
x:進んだ距離 t:時間
のようにして、ビットマップ画像をPaintBox上で動かしたいんですけど、
やり方がよくわかりません。

よろしくお願いします。
956デフォルトの名無しさん:04/07/05 21:48
VisualC++とかだとデフォルトボタン(エンター押すとOKボタン押したと見なされる、みたいなの)が
簡単に設定出来るんだが、
Builderで同じ事やろうと思ったらどうしたらいいんでしょう?
ENTER押すと、OKボタンクリックしたと同じ処理をさせるようにしたいんだが・・
Delphi だと TButton に Default プロパティーがあるけど。
あと、TabOrder も重要。
958デフォルトの名無しさん:04/07/05 22:30
Delphiじゃないと無理なのかな・・
TabOrderって関係あるの?
フォーカスいじる必要あるのかな・・
>Delphi だと TButton に Default プロパティーがあるけど。
BCBでもちゃんとありますよ。
DefaultプロパティがEnterでCancelプロパティがEscに反応するのかな
>>957
てかヒント出た時点で自分で確認しろよ。
>>960
957 はオレだけど、回答のつもりなんだけど
ごめん >>958 の間違い・・・
>>962
同意。>>958みたいなやつウザイ。
964デフォルトの名無しさん:04/07/06 12:13
むしろ>>960>>963がウザイ
知らないなら無理にレスしなくていいから
>>964
age荒らしのお前ほどうざいものはない。
次スレのテンプレの関連サイトに載せるいいのあったらあげてちょ。
行方不明のサイトの移転先がもし判ったらそれも。
967デフォルトの名無しさん:04/07/06 16:50
VC++とか、自動的に良い感じにインデントしてくれますよね?
BCBでも、オートインデントってのがありますが、
これは自分で範囲を選択しなければいけませんが、
VC++みたいに、ソフトが判断してっていう「オートインデント」
はBCBでも出来ますか?
BCBのオートインデントも、自動的にインデントしてくれる機能だよ。
VCと違って"良い感じ"にはしてくれないけどね…
BCBのエディタは誰でも最初は「えっ?」って動作する。
だんだん慣れてくるけどね・・・
慣れない
フリーカーソルの話で始まってフリーカーソルの話で終わるのかこのスレ。
内臓エディタは正直ゴミレベル。
キーのカスタマイズさえもできない。
>>972
OpenToo......いや、なんでもないです。ごめんなさい。
974141:04/07/06 21:06
今日、探し物してたら偶然見つけたので紹介だけ。

ttp://www.frasersoft.net/program/

>C++ Formatting Expert:
>
>This expert works in the IDE editor and takes
>the current selected text and formats it according
>to a set of rules. These rules are set in a configuration
>file (Indent.pro) and follow the unix standard for 'indent'.

こんなのありました。
>内臓エディタ
よくある単純なtypoだが外科手術用の道具を想像しちゃったよ
テンプレに入れるのに、これもキボー。

GExperts−IDE拡張
ttp://www.gexperts.org/
BorCVS - IDEにCVSを統合
ttp://borcvs.sourceforge.net/

英語だけどフリーのコンポーネント
Indy
http://www.indyproject.org/index.html
JCL
ttp://homepages.borland.com/jedi/jcl/
JVCL
ttp://homepages.borland.com/jedi/jvcl/
TurboPower
ttp://sourceforge.net/users/tpsfadmin/

英語で有料だけど、便利なコンポーネント
TMS Component Studio
ttp://www.tmssoftware.com/
LMD-Tools(ただし、Special Editionはフリー)
ttp://www.ceberus.com/lmd/index.php3
977デフォルトの名無しさん:04/07/07 11:57
別にC++Builderのエディタは何の問題もないけど?
おまいらが普通に初心者なだけだろ(´,_ゝ`)
>>977
お前、あれだろ。釣りが下手だとよく人に言われないか?
>>978
「足りない」人なんだから、そっとしておいておやり。
980デフォルトの名無しさん:04/07/08 00:16
bcbって6で開発終了?
>>981
9を出す予定があるらしい
ところで、次スレのテンプレにyukibow.comいる?
宣伝してやるみたいで個人的には歓迎しないんだが
初心者には必要な情報かもしれんし。
(゚听)イラネ
(゚听)イラネ
腐れシェアTipsは去れって方向で。
あと、BCB関連の推薦図書とかない?
「コンポーネント活用ガイド&実践プログラミング」は定番として。
>>986
ないんじゃないか?
C++とDelphiの本を併用すれば事足りるわけだし
>>986
>「コンポーネント活用ガイド&実践プログラミング」

これだけでいいと思う
つーか、これくらいしか手に入らないんじゃないか
>>988
同じく。3巻はデータベース、4,5巻はインターネットのプログラムを作らない人には
ほとんど不要だと思うが。

3〜5巻についてはDelphiで書かれた該当する参考書の方がいいような希ガス。
つぎスレまだ〜?
へい、お待ち
C++Builder相談室 Part10
http://pc5.2ch.net/test/read.cgi/tech/1089299158/l50
生め
993デフォルトの名無しさん:04/07/09 00:37
ほあ
     出口調査は「民主党」!
 出口調査では「民主党」に清き一票を!!
\\                     //
       ∧_∧  ∧_∧
      ∩´∀` )( ・∀・)  アナタの一票が
      ヽ    .)( つ¶ 9    開票速報を変えます!
      | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
      |. ジャス研  新  党 .|
      |________|  /
      .||. ∧_∧  ∧∧  ||   出口調査は「民主党」!
      .|| ( ´∀` ) ( ゚Д゚) ||     出口調査は「民主党」!
      ||-────────|| どこに投票しても出口調査は「民主党」!
      || _______ .||   出口調査で「民主党」に清き一票を!!
     .||__       __|| \   
       .|〇〇|≡≡@≡≡.|〇〇|
     .{二二二._[  ]_.二二二}
      凵            凵
◇◇◇◇◇◇自民でも民主でもなく「マスコミにNO!」◇◇◇◇◇◇
◇◇◇「出口調査は民主党に清き一票を」キャンペーン開催中!◇◇◇
http://www.wafu.ne.jp/~gori/diary3/000306.html

>今度の参院選挙で国民からマスコミへの不信を表明してみませんか?

名付けて「出口調査は民主党に清き一票を」キャンペーン
やり方は簡単です、マスコミが投票所出口で行っている投票動向調査を受けた人は、実際の投票内容に関らず「選挙区は民主党公認候補の名前、比例区は民主党(又は民主党候補の名前)」と答えるのです。
実際の投票数とマスコミの出口調査による分析との乖離が国民のマスコミへの不信任投票数となります。
もちろん最初は小さな声かもしれませんが、このキャンペーンが広がってとんでもない出口調査の結果が出れば、マスコミは国民の目を意識せざるを得ず、今後正しい世論を把握する為に公正で公平な報道を心がけなければならない訳です。
皆さん、選挙に行きましょう。そして今のマスコミのあり方に不信を感じている方、自民支持者も民主支持者も公明党支持者も社民党支持者も共産党支持者も無党派層も白紙投票の人も「出口調査は民主党に清き一票を」!
マスコミを国民が審判できるシステムを我々の手に!!
995本田:04/07/09 10:44
>WindowsCEさえ、WindowsCE.NETにいこうした、という以前に。
>
>なぜにWindowsCE?
>WindowsCEなんて台数出てない上に、
>組み込みに必要なマイクロセカンドの動作が出来ないし、
>一番困るのはOS本体の発売停止。

もうすぐWindowsCE5が発売されそうです。

>
>組み込みの機能が無いからとT-Kernelを包括するとアナウンス、デモ、するも未発売。
>発売したとしてもそのころにMFCは消えてるだろう。

やはりMFC消えるんだろうか?
隠れたMFC勉強の目的は、
ほんとうはいきなりwxWidgets(wxWindow)を使いたかっんだけど、
日本語の入門書が無いもので、似た構造のMFCに手を出してみたんです。
難しい。
>>995
つか、MFCは失敗作だから難しいのさ。
1.0から2.0で別物に。
MAC版VC++ではWin版に接木するという、クラスとして意味の無い構造。
バージョンあがりGUI系統はActiveXの上、コントロールが激しく少ない。
ActiveXは素直に派生出来ないし、内部に処理を隠し持ってたり多国語で文字化けしたり。
ゴミは捨てた方が良いよ。
いったい何のスレかと思ったぞw
998デフォルトの名無しさん:04/07/09 16:13
記念カキコ v(^-^*)
999デフォルトの名無しさん:04/07/09 16:15
9日記念
1000デフォルトの名無しさん:04/07/09 16:28
1000


うぴぃ
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。