C++Builder相談室

このエントリーをはてなブックマークに追加
142名無しさん@お腹いっぱい。
エクスプローラからDrag&Dropでファイル名を渡したいのですが
以下の点でハマってます。

1.特定のコンポーネント(例:TListView)のみにD&Dを許可するには?

Form全体にD&Dする方法や、Drop時のマウスカーソル座標によって
D&D可能なコンポーネントを判別する方法は出来たのですが…
無関係のコンポーネント上で、マウスカーソルを
「Dropできますよ形状」に変化させたくないのです <誤操作の元だし…

2.D&Dで得られるファイル名形式が怪しい。

D&DではDOSファイル名が取得される、と各サイトで目にするのですが、
当方の環境(Win98,BCB5)では何もしてないのにロングファイルネームが
取得されてるんです。これは異常? それとも正常?
念の為(?)、別途ロングファイルネームを取得し直したほうが
いいのでしょうか?
143名無しさん@お腹いっぱい。:2000/11/05(日) 01:04
IBMの XML Parser for C を使う方法を教えてください
144名無しさん@優しい人:2000/11/05(日) 01:11
>>143
なんですかそれ、わたしも知りたいです。
IBMのサイトにあるの?
もしかしてHTMLのパーサにもなったりします?
XMLは勉強不足だな〜
145ぴか虫:2000/11/05(日) 01:44
    ☆ぴかっ
 /)_/)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,’ー’) < コンポーネントを継承してメッセージをマップ! でできるかも?(試してない)>>142(1)☆
_( U U)  \____________________
    ☆ぴかっ
 /)_/)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,’ー’) < オレはそれで気にしないぞ!>>142(2)☆
_( U U)  \____________________
    ☆ぴかっ
 /)_/)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,’ー’) < それ、どこにあるの?>>143
_( U U)  \____________________
146名無しさん@お腹いっぱい。:2000/11/05(日) 01:52
>>142
2の方だけ答えます。
自分はVC派ですがきっと同じことだと思います。
起動しているアプリケーションのウィンドウ上にD&Dした場合はロングファイルネームです。
アイコンなどにD&Dしてコマンドラインから起動した場合に渡されるのはDOSファイル名です。
147名無しさん@優しい人:2000/11/05(日) 01:57
>>142
そのコンポーネントやらに対して、
::DragAcceptFiles(h, FALSE);
じゃだめなの?

>>145
恐らく、IBMのalphaWorksの所だよ。
最近逝ってないから正確な場所は不明…。
148名無しさん@優しい人:2000/11/05(日) 02:00
あ、147は1.に対する答えね。
149142:2000/11/05(日) 04:11
レスありがとうございます。

>146
なるほど…そういうわけだったのですね。
ということは、ロングファイルネームが得られるのは
当たり前だったのか…安心しました (^◇^;)

>145
実はまだ、継承とか派生とかそのへん勉強中なので
よくわかってませんが、頑張ってみます。

>147
実はそれを呼ぶタイミング(?)がわかりませんで… (T▽T)
Formの時はOnCreateイベントで呼んでるんですが…
そのコンポーネントのコンストラクタ関数(?)とやらで
呼んでしまってもいいものなのでしょうか。
っていうか、実験してみたほうが早そうですね。やってみます。
150名無しさん@お腹いっぱい。:2000/11/05(日) 07:14
>149
使いやすさと安全を期待するなら
TListViewを継承してドラッグの受けつけの禁止許可の
メソッドをつくってしまいましょう。
プロパティにしてしまえば設計時にも設定できて便利かも‥
151(;´Д`)ノ:2000/11/06(月) 19:07
Builder4から5にしました。
WIn32APIのSHBrowseForFolderとかで使う、shlobj.hのコンパイル中に

[C++ エラー] shlobj.h(1762): E2238 'FVSHOWINFO' の宣言が複数見つかった
[C++ エラー] shlobj.h(1936): E2238 'FOLDERSETTINGS' の宣言が複数見つかった
[C++ エラー] shlobj.h(3717): E2238 'DESKBANDINFO' の宣言が複数見つかった
[C++ エラー] shlobj.h(4808): E2238 'SHELLFLAGSTATE' の宣言が複数見つかった

とかってなるっス!
どなたか心当たりないでしょうか (;´Д`)
152名無しさん@お腹いっぱい。:2000/11/06(月) 21:25
XML Parser for C は alphaWorks で手に入れました。

http://www.alphaworks.ibm.com/tech/xml4c
153名無しさん@お腹いっぱい。:2000/11/07(火) 02:27
>>151
README 読んでごらん。
154初心者:2000/11/07(火) 05:50
ICQみたいに、
フォームがフォーカスを失っても一番手前に表示するようにするには、
どうやるのですか?
初歩的でごめんなさい。よろしくお願いします。

155名無しさん@優しい人:2000/11/07(火) 06:17
>>154
そのトップレベルウィンドウに対して、
::SetWindowPos()でHWND_TOPMOSTというマスクを入れる。
156初心者:2000/11/07(火) 06:35
>>155
すばやいレスありがとうございます。
なるほど、そのものずばりのAPIがあったのですね。
勉強になりました。
157>156:2000/11/07(火) 08:04
BCBならフォームのプロパティで設計時に指定できたと思うが‥
158ヽ(´ー`)ノ 151:2000/11/07(火) 08:49
>>153 ありがとう、優しい人。解決した。クスコ
159名無しさん@お腹いっぱい。:2000/11/07(火) 12:34
>>156
C++Builder の話だから... From の FormStyle を fsTopMost に。
160名無しさん@お腹いっぱい。:2000/11/07(火) 23:55
BCB3 を使っています。
OnIdle イベントを使いたいのですが、実行すると青い画面になってしまいます。
TForm1 に void __fastcall IdleFunc(TObject *Sender, bool &Done) を追加して
FormCreate で Application->OnIdle=IdleFunc; しています。
原因か解りません。よかったら教えてください(;´`)
161名無しさん@お腹いっぱい。:2000/11/08(水) 12:30
>>160
中で何やってるんだ?Windowsを蒼ざめさせるとは・・・
OnIdleはOSの全メッセージが飛んでくるので変な事
しちゃ駄目。
162160:2000/11/08(水) 23:39
>161
IdleFuncの中は空です。どうもIdleFuncに行く前に青い画面になってしまうようです。
他のプログラムにそこの部分だけ追加して試してみたら、
Access Violation と言われてしまいました(;´`)ナゼ?
間違ってたら御免よ。
Application->OnIdle = &IdleFunc;
164初心者ver2:2000/11/09(木) 16:13
ドロップしたファイルから、
::ExtractIconでアイコンを取得したいのですが、
ショートカットだと、うまくいきません。
ショートカットのリンク先がわかるAPIとかあるのでしょうか?
すみません、よろしくお願いします。
165名無しさん@お腹いっぱい。:2000/11/09(木) 20:03
シェルと仲良くなってください。>164
166C++初心者@文法書買わなきゃ:2000/11/09(木) 23:12
オーバーライドしたメソッドの中で、inherited@Delphiしたいのですが、
”スーパークラス名::メソッド名”と記述すれば良いのでしょうか?
virtualメソッドであるデストラクタでそう記述すると、
再起ループによるスタックオーバーフローになります。
167160:2000/11/10(金) 07:51
>163
試してみましたがダメでした。
class TForm1 : public TForm  //unit1.hの中
{
  ....;
public: // ユーザー宣言
  __fastcall TForm1(TComponent* Owner);
  void __fastcall IdleFunc(TObject *Sender, bool &Done);  ←ここに宣言してるのが悪いのでしょうか??
};
とりあえずBCBを再インストールしてみます(;´`)
168名無しさん@お腹いっぱい。:2000/11/10(金) 09:51
おい、Application->OnIdleに代入する前に
TFormはインスタンス化されてるのか?
OnShowで、
Application->OnIdle = Form1->IdelFunc;
だったり、(クラスメソッドじゃないもんな。)
169名無しさん@お腹いっぱい。:2000/11/10(金) 12:45
おお、それからForm1を破棄する前に、
Application->OnIdle = NULL;
しておかんと。今度は終了時にこけるぜ。


170名無しさん@お腹いっぱい。:2000/11/10(金) 23:52
171Ver3ユーザーですけん。:2000/11/11(土) 01:50
某ネットゲーの自動入力ツールを作ろうとさっき始めました(゚Д゚ ;)
さっそく詰まったのでご教授お願いします。

1.マウス位置を知る、その場所を自動的にクリックさせる方法
2.キー入力を自動的にさせる方法
3.ゲームとツールがバックグラウンドにある状態でも作業させる方法

なお、自動的に入力させるキーはユーザーにホットキーで登録させた奴です。
172160:2000/11/11(土) 04:15
>168,169
データの配置を8から4にしたら何故かうまく行きました。一応原因解明中…

>171
SetCursorPos,WindowFromPoint,SendMessageを使ってみては?(ちょっと適当…)

(;´`)ナゾ…

173名無しさん@お腹いっぱい。:2000/11/11(土) 16:53
hookを使う?
174名無しさんi486:2000/11/11(土) 18:36
>171

仕方のない連中だな
VxDを使わないのならマウスイベントを生成するには
mouse_event APIを使え。
キー入力生成はkeybd_event だ。あとはヘルプを読んでくれ。

マウス位置はGetCursorPosでスクリーン座標を知ることができる。
175nabeta:2000/11/11(土) 20:26
StringGridを使うと選択フォーカスとかいう青いのが出てきますよね。
入力フォーカスだけで十分なので、この青いのを消したいんです。
青いのが邪魔で邪魔で。
なんかいい方法ないんでしょうか?
176171:2000/11/12(日) 01:38
>172,174
BCB標準のヘルプにはなかったのでGOOで探したら、どっかのMLに
APIの組み方やHELPの見方が質疑応答されてました。
APIヘルプはCDに入ったままだったんですね(゚Д゚ ;)

とりあえずマウスとキー入力生成はこれからやってみます。
3番目がまだ謎ですけど、ありがとう〜
177淫賞品:2000/11/12(日) 02:46
>176
どっかのMLってひとつしかネーんでないの?

3は、窓を列挙してハンドルとって表にもってきたら
いいんデネーの?
178171:2000/11/12(日) 08:14
>177
そうなんですか・・・ぞろぞろ出てきたので元を調べたら
パスとIDを求められました(笑) 見て良かったのかな。

1と2は実験中ですが、3の窓を列挙して〜はどの関数かわかりません。
174さんみたくヒントプリーズ(´∀`;)
179名無しさん@お腹いっぱい。:2000/11/12(日) 11:10
BCC の質問なのですがこちらでさせてもらいます。。
WinGL のサンプルの1つ simple をコンパイル・実行させようとしたんですが
Linker Error: Can't Open File "WINSTUB.EXE" と出てしまいました。
公式サイトを見た限りではこのファイルにパスを通せとあったんですが
通しても駄目なようですし、このファイル自体が見当たりません。
BCC だけでは使えないんでしょうか。すいませんが対処法などもありましたら教えてください。
180名無しさん@お腹いっぱい。:2000/11/12(日) 21:26
>178
Enumなんとか、コールバック関数という単語で調べましょう。

MLはC++Builderのものはひとつですが
普通のC++のものとかVC++のものとか沢山あります。
181名無しさん@お腹いっぱい。:2000/11/12(日) 21:28
あげわすれた。
182名無しさん:2000/11/12(日) 22:29
>>178
あらかじめそのウィンドウのクラス名とタイトルがわかってんなら
FindWindowでもなんとかなりそうだな。試してないが。
183171:2000/11/13(月) 23:39
お蔭様で自動入力系は出来ました。
あとは対象となるアプリの指定だけだと思いますが
簡単そうなFindWindowでやろうと思います。

HWND hnd=FindWindow(NULL,"xxxForm");
if (hnd!=NULL){
自動入力event
}
これだとxxxFormがあれば自動入力するだけとは思います。
これはこれでイイとして「タイトル=青いBARに表示される奴」、「クラス名=
CTRL+ALT+DELで表示される奴」と考えてイイのでしょうか?u-m
184名無しさん@お腹いっぱい。:2000/11/14(火) 01:33
スレが見エン
185名無しさん@お腹いっぱい。:2000/11/14(火) 02:33
ジョイスティックの情報を受け取って状態をリアルタイムで表示させたいと思います。
ウィンドウプロシジャの先頭で状態取得、描画をやってるんですが
ウィンドウのリサイズか、それが移動した時、
または別ウィンドウの下から復帰した時しか表示が更新されません。
当人以外にどの辺がまずいのか教えてください。
186名無しさん@お腹いっぱい。:2000/11/15(水) 01:27
BCB4proでのrand()の実装がどうなってるかをご存知の方はいらっしゃるでしょうか?
ヘルプを見ると、線形合同法であることは書いてあるのですが、
具体的にパラメータが何になっているかを知りたいです。
187名無しさん@お腹いっぱい。:2000/11/15(水) 01:46
>>186
デバッガでrand()の中身を覗いたら、こんなカンジの処理でした。

n = n * 0x15a4e35 + 1
return (n >> 0x10) & 0x7ffff;
188171:2000/11/15(水) 02:42
DEKITA-!( ゚Д゚)
189名無しさん@お腹いっぱい。:2000/11/15(水) 04:09
BCB5のコンパイラは安定になってきつつありますか?
バージョンアップ直後に使ってみたら
 if(なんとか){処理1;}else {処理2;}が
処理1を実行した上処理2を実行したので、驚いて封印してたのですが・・・

inprise Webページだと8月末に1回バージョンアップしただけですよね
使ってる方、どうでしょう?
190名無しさん@お腹いっぱい。:2000/11/15(水) 04:30
てめーのバグだよ。
if(なんとか){処理1;};else {処理2;}
だったんじゃないのか?
191!=190:2000/11/15(水) 04:39
>190
maji!?
192189>190:2000/11/15(水) 05:04
それだとコンパイルエラーになるでしょう?
もちろん、ちょっと特殊なケースだけどね
これを実行してみ
int main()
{
int f=1;
  _asm call label1;
  return 0;
  _asm label1:
if( f == 1 ) puts("test1"); else puts("test2");
  _asm ret
  return 0;
}
193189:2000/11/15(水) 05:18
call してるのはスタックポインタの細工をしたい為だった。

call の所を jmp にすれば普通にコンパイルされるのに
なぜか このコードだと test1もtest2も印刷されてしまう
アセンブラソースを吐かせたら、やはり elseの所で本来入る
べきjmpが入っていない

まあ、別にcallしなくてもスタックを得る方法はあるから
これが駄目と判ってれば困る事は無いんだけどね。
194189:2000/11/15(水) 05:30
これ読んだ厨房が変な事吹聴してもいけないから、

まあ、あんまり同じ所で引っかかった人がいるとは思えないけど、
対策をちゃんと書いとくと、インラインアセンブラでcallが入っ
てると起きるみたい。だからcallをpush即値に置き換えるとOK
この場合だと

_asm push offset label1
 if( f == 1 ) puts("test1");
 else puts("test2");
_asm ret
_asm label1:
195名無しさん@お腹いっぱい。:2000/11/15(水) 05:41
原因は違うよ。
最初の
 return 0;
を見て、「到達しないコード」と判断した時に、
 else
のジャンプを省略してる。
196名無しさん@お腹いっぱい。:2000/11/15(水) 05:45
原因と回避方法がわかってるなら封印する事ないじゃん。
197名無しさん@お腹いっぱい。:2000/11/15(水) 05:50
192の_asm文をコメントアウトして確認するくらいはするだろ?

想像するに、インラインアセンブラで関数内jmpはよくあるが、
普通は関数内でcallは使わない。
また、callするのは、一般的にはproc定義され、ラベルでは定義されない。
したがって、飛び先チェックを省略していると考えられる。

ま、危険な事をやろうとしているんだから、
出力を確認するのは当然だろうけど。
198名無しさん@お腹いっぱい。:2000/11/15(水) 06:19
気になったので見てみたら
すでに書かれていた(;´Д`)
195ので正解みたいだけど、どうせ実行されないからいいやヽ(´ー`)ノ
ってことでコンパイラが手抜くのもあれだなぁ。
199名無しさん@お腹いっぱい。:2000/11/15(水) 08:14
実験してみた。

これは起きない。
 _asm jmp label1
  return 0;
 _asm label1:
  if( f == 1 ) puts("test1"); else puts("test2");

これは起きる だから>>195+197の両方組み合わせみたい
 _asm call label1
  return 0;
 _asm label1:
  if( f == 1 ) puts("test1"); else puts("test2");
 _asm pop eax

しかし実行にまったく関係ないjumpを入れただけで起きなくなる
 _asm call label1
 _asm jmp label1
  return 0;
 _asm label1:
  if( f == 1 ) puts("test1"); else puts("test2");
 _asm pop eax

でも、よくこんなの見つけたなあ
200age:2000/11/18(土) 00:00
…初心者なんでよくわかんないんですけど、
普通に(何を持って普通と言うのかよくわからないけど)使ってる分には
そんなに怪しい動作はしないと思われるコンパイラである…
って理解でいいんでしょうか…? (・_・?) >BCC

そういやこないだ、こういうの詳しい人に、
「BCB始めた? アレは止めとけ。コンパイラだかライブラリが怪しい」
って言われたけど…この事を言ってたのかな?

何にしても、オイラがその「怪しい」ところに辿りつくのは
まだ先の話だと思って勉強していますが ヽ(´ー`)ノ
201名無しさん@お腹いっぱい。:2000/11/18(土) 03:57
まさかこんなことが原因で怪しいと言ってるわけじゃないでしょ。
202名無しさん@お腹いっぱい。:2000/11/18(土) 06:44
具体的な指摘無しに怪しいだの駄目だの言ってるような奴の意見なぞ無視。
203名無しさん@お腹いっぱい。:2000/11/18(土) 10:58
>200
>そういやこないだ、こういうの詳しい人に、
そういうパーデンネン君が多いから
嫌になるよ。202の言うとおり無視がよし
204名無しさん@お腹いっぱい。:2000/11/18(土) 23:33
あるアプリケーションを使い、
1.すぐに「妖しい」とほざきだすのがVBプログラマ。
2.バグを血眼で探し出し鬼の首をとったようにえばりくさるのがVCプログラマ。
3.使えないと気が付くと自作しだすのがDelphiプログラマ。
4.これ、Solarisで動かないの?って言い出すのがJavaプログラマ。
5.ありがたがって使うんだけど何かとしつこいのがCOBOLプログラマ。
205名無しさん@お腹いっぱい。:2000/11/18(土) 23:35
あるアプリケーションを使い、
1.すぐに「妖しい」とほざきだすのがVBプログラマ。
2.バグを血眼で探し出し鬼の首をとったようにえばりくさるのがVCプログラマ。
3.使えないと気が付くと自作しだすのがDelphiプログラマ。
4.これ、Solarisで動かないの?って言い出すのがJavaプログラマ。
5.ありがたがって使うんだけど何かとしつこいのがCOBOLプログラマ。
206名無しさん@お腹いっぱい。:2000/11/19(日) 00:07
C++Builder使いはVC?Delphi?のどちらに入るの?
207名無しさん@お腹いっぱい。:2000/11/19(日) 02:22
>>206
半々じゃないですか?
208名無しさん@お腹いっぱい。:2000/11/19(日) 11:50
BCBで使いやすいWin32のプロファイラってありませんか?
209名無しさん@お腹いっぱい。:2000/11/19(日) 18:36
スキャンディスク、デフラグ等を実行させて、処理が終了したら、
実行させたアプリをクローズさせたいんだけど、
処理を終了したってのをどうやって知るのか、わかりません。
だれか教えて下さい。
210名無しさん@お腹いっぱい。:2000/11/19(日) 19:41
>>209

シグナル状態かどうか
ってあたりがキーワードじゃなかったかな。
211名無しさん@お腹いっぱい。:2000/11/19(日) 22:15
BCBは、とにかくエディタをなんとかしろ!
212名無しさん@お腹いっぱい。:2000/11/19(日) 23:59
んだ、もうちょっとマシなエディタほしいな‥
213名無しさん@お腹いっぱい。:2000/11/20(月) 00:04
例えば何が足らんと思う?
214名無しさん@お腹いっぱい。:2000/11/20(月) 00:12
細かいこといいだすときりがないが‥
とりあえずは現在開いているファイルを
他のエディタで起動する機能だけでいいや。
215名無しのエリー:2000/11/20(月) 02:27
一応プロですがコーディングにはメモ帳しか使ったことない。
デバッグのときにちょっと附属のエディタ使うくらい。
216名無しさん@お腹いっぱい。:2000/11/20(月) 03:44
使いなれたエディタの方が生産性上がりませんか?
って‥メモ帳を使いなれてるのか‥
余計なおせっかいでした。
217209:2000/11/20(月) 05:18
>>210
どうもありがとうございます。今から調べてみます。
218名無しさん@お腹いっぱい。:2000/11/20(月) 06:25
VisualStudio附属のエディタが最強。
219209:2000/11/20(月) 07:21
う〜ん。できない・・・・。
220>209:2000/11/20(月) 07:46
そういうので困った時は FindWindow してGetWindowTextでいつも逃げてたからなあ
221名無しさん@お腹いっぱい。:2000/11/20(月) 08:33
HELPシステムもなんとかしろ(;´Д`)
222名無しさん@お腹いっぱい。:2000/11/20(月) 10:24
>>214
な〜んだ。そんな事か。

ツールに登録すりゃええやん。
[ツール]-[ツールの設定]で
[追加]選んで[参照]で好きなエディタ選んで
実行時引数に$EDNAME()を設定すればOK!

#もちろん1回保存せんといかんが・・・BCB1からあるぞ!
#それから君らヘルプで「キーボードショートカット」
#って引いた事ある?
223名無しさん@お腹いっぱい。:2000/11/21(火) 00:49
それだと今見てるやつしか開いてくれないんだよ>222
224209:2000/11/21(火) 02:22
>>220
アドバイスありがとうございます。
それでやってみます。
225222:2000/11/21(火) 10:08
おい!214=223だったら言ってる事が
前と違うじゃないか!
それじゃカーソル位置にファイル名があるなら
実行時引数を$CURTOKENにしてみそ。
それ以上を望むなら open tools API
で自分で拡張しな。
226222:2000/11/21(火) 11:11
と、書いてみたがカレントディレクトリが移動すると
開けないなこりゃ。(毎回実行時ディレクトリ変更も面倒だ。)
しょーがないからIDEで開いてから起動してくれ。
その方が2Way-toolの利点もいかせるだろよ。
227名無しさん@お腹いっぱい。:2000/11/23(木) 20:43
214=223だが、いっていることが違うか?
オレは開いているファイルを開いてほしいのだが‥
開いているファイルをひとつづつ表示してから全部でそれをするのは
さすがに面倒だ‥
それとも222はIDEではファイルをひとつしか開かないんだろうか?
228名無しさん@お腹いっぱい。:2000/11/23(木) 20:50
祭日あげ
229名無しさん@お腹いっぱい。:2000/11/24(金) 01:10
未だにC++Builder1がある・・・。
知り合いからもらった奴だけど
全然使ってない。これ使うなら新しいの買ったほうがいいかな?
230>:2000/11/24(金) 03:26
1で今でも結構なこと出きるぞ。
231名無しさん@お腹いっぱい。:2000/11/26(日) 23:31
メディアコントロール操作でジョイスティックを操作しようと思うんですが、
mmsystem.h で定義されているエラーコードの
JOYERR_PRMS と MMSYSERR_BADDEVICEID はやはり意味合いが違うんでしょうか?
両方とも識別子の不正を示すようなので同じかなと思ったんですが。
232>231:2000/11/27(月) 09:44
ん〜MCIは資料少ないのぉ
いまならDirectInput使うほうが楽でないか?
233komm:2000/11/27(月) 14:31
12月から新しい職場に行きますが、開発環境はBCBで問題ないのですが、
工場での使用環境のモニターがタッチパネル式で、
初めての経験ですが、何か普通と違いますか?ぼく一人なんで、誰にも聞けません。
12月からどうしよう。
234>233:2000/11/27(月) 14:34
タッチパネルも色々方式があるからね
単にマウスに見えるのから専用ドライバ使うのから
235名無しさん@お腹いっぱい。:2000/11/28(火) 00:12
>>233
 マウス互換のだといいねえ。なんも考えなくて済むはずだし。
 そうでなくて専用API呼ぶようなものでも、BCB/Delphiはメッセージディスパッチが
簡単に実装できるから、そうたいした苦労でもないと思うよ。
236名無しさん@お腹いっぱい。:2000/11/30(木) 23:57
DelphiでDLLをスタテックリンクする時は
function proc(x:integer):integer;stdcall; external 'EXTDLL';
こんなふうに定義したらいいんですが Bulderでやる場合はどうなるのでしょう?

__declspec(dllimport) int _stdcall proc (int x);

このprocが EXTDLLにある事をどう指示すればいいのでしょうか?
EXTDLL.lib をリンクすれば使えるみたいだけど
237>236:2000/12/01(金) 08:55
だから、リンクして使うの。
もし xxx.LIB (インポートライブラリ)がついてなければIMPLIB でDLLから作れる
詳しい事は IMPLIBでヘルプをご覧あれ

このやり方はCからの伝統ね
238名無しさん@お腹いっぱい。:2000/12/01(金) 20:05
Builderユーザのつらいところ
1.結局Object Pascalを知らないと始まらない
2.Helpがへっぽこ
3.エディタがへっぽこ
4.資料が少ない
239名無しさん@お腹いっぱい。:2000/12/01(金) 20:13
Builderユーザのつらいところ
1.結局分からないのを Object Pascal のせいにすること
2.Helpがへっぽこと 自分の理解力の無さをHelpのせいにすること
3.エディタがへっぽこと 自分の開発効率の悪さをエディタのせいにすること
4.資料ばっかりあてにすること
240名無しさん@お腹いっぱい。:2000/12/02(土) 00:01
PowerBuilderユーザーもつらいよ、、
241>239:2000/12/02(土) 09:31
とりあえず反論
1.結局Object Pascalを知らないと始まらない
 何故? 知らなくても読むだけならMFCの100倍楽だと思うが?

2.Helpがへっぽこ
 それは何と比べて? もしかしてVB?
 あれは初心者向けにはすばらしいね
 必ずサンプルコードがセットになってるし

3.エディタがへっぽこ
 え? IDEってデバック以外にも使うの?
 そんな事したら暴走させた時恐くない?

4.資料が少ない
 ってBulder用の資料が何故必要?
 普通のC++の資料も使える Delphiも使える便利な環境なのに?
242236:2000/12/02(土) 09:38
>>237 レスありがとうございます。
IMPLIBについては判っていました。
結局Delphiのようには出来ないって事でしょうか?
243名無しさん@お腹いっぱい。:2000/12/02(土) 11:37
>>242
 Delphiのようにしたければ、Delphiの機能を使えばいい
 何の為にBCBにDelphiの機能が入ってると思ってるんだ!
 .pasソースで書いてリンクするだけだろう!
244>:2000/12/02(土) 14:14
中身が空のpasユニット作っとくと便利だよ。
それをプロジェクトに追加して中身書いて別名で保存。
それならコンパイルやリンクはIDEが勝手にやってくれる。
245>236:2000/12/02(土) 14:17
delphiと全く同じってわけじゃないけど、USELIBじゃダメか?
246>241:2000/12/02(土) 14:19
え?IDEってデバッグでしか使わないの?
フォームの設計は他のエディタでやるよりも結構便利だよ。
247名無しさん@お腹いっぱい。:2000/12/02(土) 15:27
PowerBuilderか・・・それに比べればBCBユーザーは
100倍恵まれているね。

#N系列の誤算は「必ず消え逝く技術でビッグプロジェクト
#を起こしてしまう事」だ!トップが動向に疎いのか?
248名無しさん@お腹いっぱい。:2000/12/02(土) 17:02
そういや、BCB5のエディタでとある条件で置換させたら(まあミスなんだけど)
無限ループにおなりになって行ったきりになられましたね。
249名無しさん@お腹いっぱい。:2000/12/02(土) 22:57
>>247
N系列って dbMAGIC も使ってなかったっけ。。
あれに比べれば BCBユーザーは256倍恵まれている、、
250名無しさん@お腹いっぱい。:2000/12/02(土) 23:03
>>248
そういう時は [CTRL] + [SHIFT] を押しながら BCB5起動
251名無しさん@お腹いっぱい。:2000/12/04(月) 22:17
再生
252ああっ名無しさまっ:2000/12/10(日) 01:18
BorlandC++5.0に付属しているOWLというクラスライブラリは、VCLと
比べて使い易さはどうでしょうか?
253>252:2000/12/10(日) 02:01
MFCよりは使いやすいと聞くね。
でもVCLの方がずっと上じゃない?
Borlandもこっちを押してるし。
254>248:2000/12/10(日) 10:06
なんというか BCB4付近から NT系列じゃないと怖くて使えない感じ
255236:2000/12/11(月) 10:52
>>243 >>244 ありがとうございます
やってみましたが、SYSTEM.OBJが無いとリンクに叱られました。
指定すればいいんでしょうが、なんかDLLを使いたいだけでSYSTEM.obj
がリンクされるのも嫌なので躊躇しています。

やりたいのは、単にディレクトリを掘ったところにあるDLLを静的リンクしたいだけなんですが・・・
256名無しさん@お腹いっぱい。:2000/12/11(月) 11:49
SetWindowPos
257名無しさん@お腹いっぱい。:2000/12/12(火) 05:40
VC++がむずかしくてC++Builderに挑戦しましたが
すっげぇ簡単で手軽でいいなぁ。
こんな簡単だと楽しくて楽しくておれプログラマーになっちゃうかも(w
258>257:2000/12/12(火) 09:46
ちょうど良いタイミングだったのでしょう。
VCにドップリと慣れるまでいってしまうと逆に”なんか嫌”みたいです
259名無しさん@お腹いっぱい。:2000/12/12(火) 10:13
>258
そういうひとは
C#にも移行できなくて"なんか嫌"になってしまうんでしょうね。
合唱・らららら〜♪
260236:2000/12/12(火) 11:09
system.objが無いについては vcl50.lib をプロジェクトに追加して解決しましたが
delphi側で定義した関数がすべて”ありません”になります
結局 DLL用の .lib をプロジェクトに追加しないと解決しません。

試験用に
function Beeptest(a,b:integer):integer ;stdcall;
implementation
function Beeptest(a,b:integer):integer ;stdcall; external 'kernel32.dll' name 'Beep';

のようにした場合はOKです。自作dllの名前も同じようにしていますし、
delphiから使う場合は問題ありません。
もしかしてBeepがOKな理由はimport32.libがあるからではないのでしょうか?

で、bulderからはdelphiのextern は巧く動かないのでは?
261名無しさん@お腹いっぱい。:2000/12/14(木) 06:48
あの〜、
PostMessageを使って、
HotKeyコンポーネントで登録した"ALT+A"みたいのを
他のアプリに送りたいのですがうまくいきません。
単純に
PostMessage(hWnd,WM_KEYDOWN,VK_MENU,0x000F0001);
PostMessage(hWnd,WM_KEYDOWN,Key,0x000F0001);//KeyはTShortCutToKeyで得た奴です
PostMessage(hWnd,WM_KEYUP,Key,0xC00F0001);
PostMessage(hWnd,WM_KEYUP,VK_MENU,0xC00F0001);
では、ALTが伝わりません。
どうか知恵をお貸し下さいませ。
262名無しさん@お腹いっぱい。:2000/12/14(木) 08:01
z
263名無しさん@お腹いっぱい。:2000/12/16(土) 02:35
bcbで偽春菜(www.cc.rim.or.jp/~finite_l/haruna/indexj.html)の
トランスレータを作ってみたいんですが、どうしてもうまくいきません。
(仕様はこちら>www.cc.rim.or.jp/~finite_l/haruna/transrater.html)

現状は、起動時に不正な処理が出て落ちてしまいます。

ソースはこうなってます
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) HGLOBAL __stdcall execute(HGLOBAL h, long *len)
{
LPVOID p,p2;
p=h;
p2=malloc(*len);
memcpy(p2,p,*len);
GlobalFree(h);
// ここで何かやる
h=GlobalAlloc(GMEM_FIXED,*len);
p=h;
memcpy(p,p2,*len);
free(p2);
return h;
}
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) bool __stdcall load(HGLOBAL h, long len)
{
GlobalFree(h);
return true;
}
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) DLLEXPORT bool __stdcall load(HGLOBAL h, long len)
{
return true;
}
//---------------------------------------------------------------------------

「仕様」の所にある、スケルトンソースコードほぼそのままです。
違うところと言えば、__cdecl を __stdcallに変えたぐらいです。
(__cdeclのままだと、読込違反が起きてしまいます)


どうも、execute関数の第二引数があやしいと踏んでるんですが・・・

どなたか、アドバイスください。
264名無しさん@お腹いっぱい。:2000/12/16(土) 13:08
>261
はははは、ここで立てて誰も答えてくれないから
まともな所でもたてちゃって(・w
しょうがねえなあ

俺はおそらくわかるけど教えてあげないよ。クスクスクスクス
265名無しさん@お腹いっぱい。:2000/12/18(月) 09:42
初心者の質問ですがよろしいでしょうか?
フォームを右クリックしたときにメニューを表示させるにはどうしたら
よいのでしょうか?
266名無しさん@お腹いっぱい。:2000/12/18(月) 10:01
C++Builderのver3使ってたころ、
あまりの安定性の低さとコンパイルの遅さ、
テンプレート周りのあやしさに嫌気がさして結局やめちゃったんだけど、
その辺、今はどうなの?

VCでダイアログのコード書くの飽きたから、
久しぶりにやってみようかと思ったり。
267名無しさん@お腹いっぱい。:2000/12/18(月) 10:14
テンプレートの怪しさなんていったら、最新の VC のほうがひどいでしょ。
268>266:2000/12/18(月) 11:16
テンプレート周りのあやしさ の実例をばキボウ
>>189-199のような流れをキボウ
269>265:2000/12/18(月) 11:17
Form1.PopupMenu := PopupMenu1;
270名無しさん@お腹いっぱい。:2000/12/18(月) 12:07
突然質問君失礼します。
今回仕事で、IEを外部操作するAPを作成する事になりました。
開発環境はVC++6.0です。API,MFC等なんでも利用可。
とりあえず、ダイアログベースで作成します。
ダイアログに作成したボタンを押せば起動済みのブラウザの「進む」「戻る」ができればよいです。
全くわからず固まってます(;´Д`)
VC++は最近始めたばかりなので、どこから手をつけてよいか分りません。
どうか、さわりの部分だけでも教えていただけないでしょうか?
271名無しさん@お腹いっぱい。:2000/12/18(月) 12:08
↑かくとこ間違えました。
取り下げますm(__)m
272>271:2000/12/18(月) 12:19
まあそう言わず、Builderでやれば? 簡単だよ
273名無しさん@お腹いっぱい。:2000/12/18(月) 13:02
>272
起動中のIEみつけて
Alt+→/←を押せばいいのかな?
正解キボーン
274名無しさん@お腹いっぱい。:2000/12/18(月) 13:07
>265
FormのPopupMenuプロパティ
2ch見てるひまがあったら簡単な参考書一冊やりましょう。
いくらなんでもこのレベルの厨房質問は痛いって。
275272:2000/12/18(月) 14:05
ありゃ、良く読んだらBuilderでやる程の事もないね
てっきり自分の窓の中に表示するのかと思ったよ。ちょっとまってね
276272:2000/12/18(月) 14:07
とりあえずBuilderでチェックした。ボタンを押されたら

HWND hwnd=FindWindow("IEFrame",0);
SetForegroundWindow(hwnd);
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_LEFT, 0, 0, 0);
keybd_event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
277名無しさん@お腹いっぱい。:2000/12/18(月) 15:40
>>276
ちょっと原始的では?
InternetExplorer ObjectをOLEオートメーションで操るんじゃないの?
278>277:2000/12/18(月) 18:41
それをこのスペースで説明できる?
279277:2000/12/18(月) 18:54
説明は困難を極める。。。
SHDocVw.dllをMSDNでサーチしてみてくれ。
280265:2000/12/18(月) 19:00
269、274>
すんません。どーもです。
281会社休んだ271:2000/12/18(月) 20:57
とりあえずありがとうございます。。。
説明困難。。とりあえず明日出社したら、SHDocVw.dllを調べてみる事にします。
282>281:2000/12/18(月) 21:22
VC初めてだとオートメーションちょっときついかもね。

VBならMicrosoft Internet Controlを参照設定してから、
Dim MyBrowser As SHDocVw.InternetExplorer
Set MyBrowser = New SHDocVw.InternetExplorer
MyBrowser.Visible = True

進むときは
MyBrowser.GoForward

戻るときは
MyBrowser.GoBack
283会社休んだ271:2000/12/18(月) 22:04
VBか。。今回はつかえないんですよね..
284名無しさん@お腹いっぱい。:2000/12/18(月) 22:45
むっ(=へ=)
とても簡単なようだなVB
誰かDelphiで実装してくれ!

VBなんかに引けおとると腹が立つので!
285名無しさん@お腹いっぱい。:2000/12/19(火) 09:21
>>232
あの、そでで”起動済みのブラウザの「進む」「戻る」”になりますか?

>>284
あの・・・・とりあえずBuilderならTCppWebBrowserがSHDocVwですよ
286名無しさん@お腹いっぱい。:2000/12/19(火) 09:33
>>285
新しいIEが立ち上がります。

起動済みのをアクセスするには
Dim SWs As New SHDocVw.ShellWindows
Dim IE As SHDocVw.InternetExplorer

For Each IE In SWs
IE.GoForward
Next
とかってやれば起動済みのIEにアクセスできるはず。
287270,271:2000/12/19(火) 11:40
WebBrowser Controlで何とかなりそうな気がしてきました。
でもよくわからん。
288お願いします:2000/12/20(水) 01:36
C++Builderのネット上のリソースがあまりにも少ないのでだれか
URL教えて頂けませんか?
289名無しさん@お腹いっぱい。:2000/12/20(水) 07:45
いやです。
290まったりな名無しさん:2000/12/20(水) 23:29
BCB(3)について質問なのですが、
inlineでfor文が入ると"例外指定のある関数はインライン展開されない"と警告が出るのですが、
インライン展開させる方法は無いでしょうか?
何かのオプションを入れるのでしょうか?それともBCBだからなのでしょうか?
(gccでやってもエラーは出なかったんですが…)
スイマセンが教えてください(;´`)
291デフォルトの名無さん:2000/12/21(木) 10:18
正確には for文のある関数はインライン展開されないのではありませんか?

そういうものです。あきらめましょう。ちなみに goto/do/while全滅です。
どうしてもその警告が気に入らないならpragmaで逃げましょう。
あるいはどうしてもインライン展開しなければいけない(何か悪さしてる)なら
if(i++<cnt)処理;
if(i++<cnt)処理;
if(i++<cnt)処理;
if(i++<cnt)処理;
if(i++<cnt)処理;
と最大cntだけコピペするしかないかも
292まったり名無しさん:2000/12/21(木) 23:48
>291
ありがとうございます。これはBCBだけなんでしょうか?VCなんかはどうでしょぅ?
293not 291:2000/12/22(金) 12:01
>>292
ループ程度でインライン展開されないってことはないと思うが、展開できない場合は警告が出るよん。
# VC++ 6.0 EE(SP4)で確認。
294まったり名無しさん:2000/12/22(金) 23:46
>293
なるほどVCは大丈夫そうですね。
BCC5.5はどうなんでしょ?
あと、BCB3に無理やりBCC5.5ぶち込んで使ったら違法なのでしょうか?(関係ないですけど)
295名無しさん@お腹いっぱい。:2000/12/23(土) 06:18
なぜほかの言語に比べて参考サイトや参考書が少ないのですか?
秋葉のLaoxにいっても良い参考書があまりない...
296名無しさん@お腹いっぱい。:2000/12/23(土) 06:45
>>295
マイナーだから
297名無しさん@お腹いっぱい。:2000/12/23(土) 07:30
VBやデルファイに目もくれずにBCBを選んだのは失敗ですか?
成功ですか?
298デフォルトの名無しさん:2000/12/23(土) 09:03
>>294 同じです。 でもループをインラインに展開して貰いたい理由は何?
299名無しさん@お腹いっぱい。:2000/12/23(土) 13:14
>>297
おいらもDelphiには目もくれなかった。
VBからBCBに移って感動した。
あまりのマイナーぶりにも感動した。
300デフォルトの名無さん :2000/12/23(土) 14:41
>>297
 道具はそこにあるだけ。失敗成功はあなたの問題
301名無しさん@お腹いっぱい。:2000/12/23(土) 14:51
VCに目がくらまないだけでも成功。

>>300
よく聞く理論だが、言っても意味なし。
302名無しさん@お腹いっぱい。:2000/12/23(土) 16:55
>>299
使いこなしてからそういうこと言え。
303名無しさん@お腹いっぱい。:2000/12/24(日) 00:43
MediaPlayerコンポーネントでAVIをフルスクリーン再生する場合に、
動画の質がWindowsMediaPlayerより落ちますが、
何かいい方法はありますか?
304デフォルトの名無しさん:2000/12/24(日) 01:56
WindowsMediaPlayerを使え
305名無しさん@お腹いっぱい。:2000/12/25(月) 04:06
初心者です。ネットワークディレクトリ名をヴィジュアルに得る方法はないでしょうか?

TDirectoryListだとネットワークが見えず、
TOpenDialogだとファイルを選ぶようになっていて困ってます・・・
306初心者:2000/12/25(月) 06:17
掲示板に書き込むソフトをつくるのは技術的にむずかしいですか?
Perlなんかもしらないと駄目なのでしょうか?
307名無しさん@お腹いっぱい。:2000/12/25(月) 12:51
THTTP(鴨?)
308名無しさん@お腹いっぱい。:2000/12/25(月) 14:30
連続カキコするソフトでも作るのか?
309306:2000/12/25(月) 23:15
>>308
ちがいます。
Pealまったくしらないのですが多少は知らないと駄目でしょうか?
310名無しさん@お腹いっぱい。:2000/12/26(火) 01:55
Pealは知らない
311名無しさん@お腹いっぱい。:2000/12/26(火) 10:19
ピエール!
312名無しさん@お腹いっぱい。:2000/12/28(木) 12:39
自アプリからエクスプローラにドラッグ&ドロップで
ファイルをコピーする方法を教えてください。
エクスプローラから自アプリにドロップする方法なら
どこにでも出ているんだが、その逆は…??
313デフォルトの名無しさん:2000/12/28(木) 22:30
>>312
「その逆」は開発環境にも依るが、かなりの壁を乗り越えないと無理だね。
ちゃんと理解するにはOLE/COM関係の資料が必要だ。
だれか312に詳しく説明してやって。(藁
314313:2000/12/28(木) 23:46
ちなみにおれは312じゃないよ。自作自演じゃないもん!
だれか教えてやって!
315313:2000/12/29(金) 00:52
レス付かないね。
じゃあ、こうしよう。
実はおれもわからないんだ。
つうわけで、おれにもおしえてくださいーーー。
316313:2000/12/29(金) 01:15
いいかげんに、おしえてつかーさい。
317313:2000/12/29(金) 01:33
はあはあ、眠い。今日は、これまで。
ぜんぜんレス付かないね。諦らめて他逝こうか?>312
318>317:2000/12/29(金) 02:24
ここで検索したら5件ほどでてくるんだが・・。
C++BuiderやDelphi使いならここはデフォかと。
http://www2.big.or.jp/~osamu/Delphi/
319デフォルトの名無しさん:2000/12/29(金) 11:32
コンポーネント使えって。一瞬だから。
有名どころがあるだろう。

>>317
他ってどこだよ、(w
人の糞初心者質問にそんなに付き合う馬鹿はいないから
やっぱり自作自演じゃねえか。
320313:2000/12/29(金) 23:55
さて、今日もやるか。
だれかおしえてつかーさい!
#それにしても312はなにか反応ないの?
321313:2000/12/29(金) 23:57
>>319
自作自演じゃありません。
わたしはただの暇人です。
322319:2000/12/30(土) 01:46
暇人と自称するまえに
頭の悪い人って自称しろよ。

俺や318の言った事わかってる?

十分な説明とはいえないが
もうすでに教えてるんだよ。
323名無しさん@お腹いっぱい。:2000/12/30(土) 02:26
何とかサンプルコードまで書かせて
楽したいクンなんでしょ。
324312:2000/12/30(土) 09:10
下記にげ厨房です(藁
325MDI Child:2000/12/30(土) 19:39
MDI Child のフォームを
MDI Childのままで、TopStayにできる方法をおしえて
326デフォルトの名無しさん:2001/01/01(月) 22:43
    ☆ぴかっ
 /)_/)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,’ー’) < おまえらうるせー!冬眠できねーじゃんか☆
_( U U)  \____________________
327デフォルトの名無しさん:2001/01/02(火) 05:17
永遠に眠ってろ。>>326=1
328名無しさソ:2001/01/02(火) 06:19
BCBをBCCのように使用することはできますか?
"HELLO WORLD"などの、練習用プログラムを学ぶことはできないのでしょうか?
あくまで、GUI向け?
もしやり方わかったら教えてください。
329デフォルトの名無しさん:2001/01/02(火) 06:35
>>328 あんたBCB持ってないでしょ・・・
新規作成の中にコンソールウィザードあるじゃん。
330名無しさん@クソ初心者。:2001/01/02(火) 18:33
[リンカ エラー] 外部シンボル 'WinMain' が未解決(C:\PROGRAM FILES\BORLAND\CBUILDER5\LIB\C0W32.OBJ が参照)
こんなエラーが出るんです、、、たすけてください(涙
すべて保存をするとこのエラーが出てしまうんです。
保存をする前は普通に実行できるんですが、、、
もしよろしければ、対策を教えてくださると幸いです、、、。
331デフォルトの名無しさん:2001/01/02(火) 21:40
MAKEファイルの中身書くよろし。
332名無しさん@クソ初心者。:2001/01/03(水) 04:00
えぇっと、、、MAKEファイルってなんでしょう^^;
なにぶんクソ初心者なもので、、、
よろしけばそれも教えてください^^;
すみません、、、。
333デフォルトの名無しさん:2001/01/03(水) 04:05
マニュアルに書いてある。>332
334デフォルトの名無しさん:2001/01/03(水) 04:08
つーか、検索しろ?>332
335名無しさん@お腹いっぱい。:2001/01/03(水) 16:17
make知らんのか...

でもBCB5ってmakeつかってんだろうか...
xmlでなにか書いてあったぞ(あるけどみてない)
336名無しさん@クソ初心者。:2001/01/03(水) 17:03
えぇっと、、とりあえず解決しました^^;
なんていうかマニュアルにも書いて無かったと思いますが。。。
検索してもわかりませんでした、検索の仕方が不味いんでしょうか、、

お騒がせいたしまして、申し訳ありませんでした^^;
337デフォルトの名無しさん:2001/01/12(金) 01:41
(メモリのある限り)無限にフォームを開く方法ってどうすればいいんだろう・・・と調べていたら、単に

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 TForm2* Form2 = new TForm2(this);
 Form2->Show();
}

で、deleteしなければよい・・・そうすれば、勝手にForm1がメモリを解放してくれる
ということを知りました。
こ〜どが〜ど組み込んで調べてみたら、まったく問題ないみたい・・・。

厨房な私は、newしたら絶対にdeleteと単純に覚えていたので、なんでdelete無しでokなのかわかりませんでした。
IDE管理の奴とかと、同じ原理なのかなぁ・・・・

というわけで、あげついでに質問。
338デフォルトの名無しさん:2001/01/12(金) 02:11
>337
その場合だとForm2はForm1をOwnerとして作られているので、
Form2はForm1が開放してくれる(Form1の開放時に)。
TComponentの派生クラスは全部この仕組み。
339337:2001/01/12(金) 10:21
TFormとTComponent::Ownerのヘルプ見たら、きっちりメモリ解放について書いて在ったし・・・。
メモリの管理まで含めて、VCLの売りなんだから、私程度のエセプログラマが気にする必要なんてまったくなかったのね。
実際の処理内容気になることは気になるけど、ぱすかる分からないし諦めますw
さんくすです>338
340デフォルトの名無しさん:2001/01/17(水) 07:12
C++Builder買ったら付いてきたDelphiを
今日からちょっとはじめようかなと思ってます。
Javaを勉強した方が面白いですかね?
と言いつつageます。
341turbo type D:2001/01/17(水) 12:52
BCBとDelphiは一緒だから、どちらでもどうぞ。
JBuilderはマシンパワーいるよ。
342デフォルトの名無しさん:2001/01/17(水) 14:11
エクスプローラーみたいな画面って、どうやって作るのでしょうか?
FormにTreeViewをおいて、AlignをalLeftにして、
Splitterをおいて、AlignをalLeftにして、
ListViewをおいて、AlignをalRightにして、
FormCreateの時に
(ListView1->Width = (Form1->Width) - ((TreeView1->Width) + (Splitter1->Width))
なんてやると、ぱっと見た目は出来ているのですが、
真ん中にあるSplitterを移動させようとするとどうにもおかしな動きに
なってしまいます。
BCB4 Proでっす。
343turbo type D:2001/01/17(水) 15:19
>ListViewをおいて、AlignをalRightにして、

alClientにしなさい。
344342:2001/01/17(水) 21:50
>>343
ああ・・・、たったこれだけのことなんですね。
いともたやすく出来てしまいました。
両サイドのViewには何も表示されていませんが、
Splitterを動かしてにやにやしてます。

ありがとうございました。m(_ _)m
345ももやん:2001/01/17(水) 23:35
へんな質問でスマソですが、C++BuilderってVC++で言うところの
LONGLONG(符号付き64bit整数 _int64?)って使用可能ですか?
346デフォルトの名無しさん:2001/01/17(水) 23:48
>>345
あるよ。
__int64
Ver4以降だったと思う。
覚えてないすまん。
347ももやん:2001/01/17(水) 23:52
>>346 THANX!!!!
348あのー:2001/01/19(金) 06:47
BCB1盛ってるんですけど・・・逝って良しですか?
349turbo type D:2001/01/19(金) 12:43
どうでもよし。
350デフォルトの名無しさん:2001/01/19(金) 16:14
基本的なとこはまだまだ使えるけどさ
金に余裕があるならVerupしたまい。
351デフォルトの名無しさん:2001/01/19(金) 17:28
BCBって1あったっけ?いきなり2じゃなかったかな?
352turbo type D:2001/01/19(金) 18:10
BCBの数字のついてないものが
Dの2
353VBから移行の名無しさん:2001/01/20(土) 11:10
どうも意図したとおりに動かなくて、変数の値をprint Aみたいに実行中に表示させてみたいのですが。

Windows APIを使いたいのですが (GetKeyState)
使えるのでしょうか?
354VBから移行の名無しさん:2001/01/20(土) 15:45
353ですが両方わかりました。

print Aは、TextOutで代用
APIはヘルプにありました。(ttp://cgi.din.or.jp/~watuki/bcb/bcb_8.htm
355いつでもどこでも名無しさん:2001/01/20(土) 23:53
初心者です。
ランチャを作ってみようと思ったんですが、どうもうまくいかない。
アイコンが全部同じになってしまうんですが、下のコードでおかしいところを教えてください。
フォームにはImageListとListViewのみで結構です。

unsigned short in=1;
TIcon *icon = new TIcon();
TListItem *ListItem;
WIN32_FIND_DATA ffd;
HANDLE hf=FindFirstFile("*.*",&ffd);

if(hf!=INVALID_HANDLE_VALUE)
{
 do
 {
  c++;
  DestroyIcon(icon);
  icon->Handle=ExtractAssociatedIcon(HInstance,ffd.cFileName,&in);
  ImageList1->AddIcon(icon);
  ListItem = ListView1->Items->Add();
  ListItem->Caption=ffd.cFileName;
 }while(FindNextFile(hf,&ffd));
 FindClose(hf);
}
356いつでもどこでも名無しさん:2001/01/20(土) 23:54
初心者です。
ランチャを作ってみようと思ったんですが、どうもうまくいかない。
アイコンが全部同じになってしまうんですが、下のコードでおかしいところを教えてください。
フォームにはImageListとListViewのみで結構です。

unsigned short in=1;
TIcon *icon = new TIcon();
TListItem *ListItem;
WIN32_FIND_DATA ffd;
HANDLE hf=FindFirstFile("*.*",&ffd);

if(hf!=INVALID_HANDLE_VALUE)
{
 do
 {
  c++;
  DestroyIcon(icon);
  icon->Handle=ExtractAssociatedIcon(HInstance,ffd.cFileName,&in);
  ImageList1->AddIcon(icon);
  ListItem = ListView1->Items->Add();
  ListItem->Caption=ffd.cFileName;
 }while(FindNextFile(hf,&ffd));
 FindClose(hf);
}
357355:2001/01/20(土) 23:55
すいませーん。なぜかダブルポストです。
358デフォルトの名無しさん:2001/01/21(日) 00:09
>355
DestroyIcon しちゃまずいんじゃない。
359デフォルトの名無しさん:2001/01/21(日) 00:12
DestroyIconしちゃまずいのでは?
360デフォルトの名無しさん:2001/01/21(日) 00:14
358&359
あれ?俺も。
1回目に書いたらエラーになったんで書きなおしたのに・・・
361タクティクスオウガみたいなゲームを作りたいんだけど:2001/01/21(日) 00:33
やっぱりビジュアルベーシックの方がいいですか?
362デフォルトの名無しさん:2001/01/21(日) 00:47
なんで「やっぱり」なのかさっぱりわからん>361
363デフォルトの名無しさん:2001/01/21(日) 00:48
>361
RPG tuku-ru
364355:2001/01/21(日) 00:50
>358
その一行がなくても一緒でした。
365355:2001/01/21(日) 01:44
解決しました。お騒がせしました。
で、もう一つあるんですが、ListViewの背景にビットマップを貼り付けるにはどうしたらいいんでしょうか。
Canvasに書き込んでみても変化ありません。
366355:2001/01/21(日) 10:53
レスがなくなった・・・誰も教えてくれないのかな。
367>365,355:2001/01/21(日) 11:06
mameのwin32版のソースでも読んだら?
368デフォルトの名無しさん:2001/01/21(日) 11:38
>解決しました。お騒がせしました。

だけじゃなく、何が悪かったかの報告しようともせんでは、
教えてあげよって者も減るじゃろて。
369355:2001/01/21(日) 11:56
あ、そうですね。すいません。
ええと、[355]のソースのループしているところに
ListView1->ImageIndex=c-1;
を入れるとOKでした。

で、ListViewの背景なんですが、正確にはビットマップというよりも
GetDCで得たデスクトップのhandleを書き込んで、透過しているように
したいんです。単純に
HDC hDC;hDC=GetDC(0);ListView1->Canvas->Handle=hDC;
ではだめでした。で、いろいろ調べた結果、どっかのサイトで
「リージョンを使えばできると思う。」という記述を見つけ、
さらに調べまくったんですが、WinAPIの中でどの関数を使って
どのようにセットすればいいのかわからなくなり、頓挫しました。
この方法で可能ならば、方法を教えていただきたいと思います。
よろしくお願いします。
※mameってなんですか?検索したらゲームの一覧ばかりが出てきたのですが…
370turbo type D:2001/01/21(日) 17:32
Delphi広場で見た気がするぞっとな。
>>369
371turbo type D:2001/01/21(日) 17:33
おっと、スマソみたのはBitmap背景貼り付けだけだよ。

透明化はしらない。

リージョンならManiacsのコンポ使えばよろしいかもな。
372VBから移行の名無し:2001/01/21(日) 19:43
実行速度が遅いようなんですが...
速くする方法はありますか?
(フォームやイメージのプロパティを変えるなどで)
373turbo type D:2001/01/21(日) 19:53
マシン買い換えろ。
374>369:2001/01/21(日) 22:17
CreateRectRgn、CombineRgn、SetWindowRgnを見ろ!
それでわからなければやめとけ。
375デフォルトの名無しさん:2001/01/27(土) 04:39
DelphiやBCBの実行ファイルは、このままどんどん膨れていくのかな?
さすがに萎えてきたのだけど。
376デフォルトの名無しさん:2001/01/27(土) 05:51
>375
それって逆に結構ムカツク。
自分はVC使ってオンラインソフト作ってるんだけどDelphiやBCBで作ったソフトよりサイズはかなり小さい。
分かってる奴にはいいけど素人だとファイルサイズが小さいと機能的に劣ってると思われる。
「余分なコード混ぜてわざとファイルサイズ大きくしてやろうか」とかたまに思う。
デバッグモードでコンパイルしたまま公開してみようかな〜。
377デフォルトの名無しさん:2001/01/27(土) 05:59
>ファイルサイズが小さいと機能的に劣ってると
おもわれない。気のせいだよ。
>萎えてきたのだけど
同意。Dock機能が悪いとか誰かが言ってた。
378デフォルトの名無しさん:2001/01/28(日) 02:07
BCB5で、
チェックボックスや、
リストボックスなんかの同じ種類のものを
まっさらなフォームに
二つ以上配置すると実行時にエラーがでて
実行できなくなるんだけど
何故でしょうか?
379デフォルトの名無しさん:2001/01/28(日) 03:23
>>378
変です。再インストールしましょう。
380デフォルトの名無しさん:2001/01/28(日) 03:56
>>376
私は、vectorとかでソフトを探す時の基準として
サイズが小さいのを選びます。
機能が少ない(本当に必要なものだけ存在する)気がするので。

381デフォルトの名無しさん:2001/01/28(日) 04:00
用途にもよるけど、常駐物だとでかいのは避けたいね。
382378:2001/01/28(日) 05:23
>>379
最インストールで直りました。
ありがとうございました。
初めて使ったので、これが仕様かと思ってしまいました……。
そんなわけないですよね。
クラス名や、中の宣言を書き換えても動作しなくて
てっきり自分のミスだと思っていました。
非常に盲点でした。
本当にありがとうございました。
383デフォルトの名無しさん:2001/01/28(日) 05:38
Builderで作ったものを配るときは、かならずupxで圧縮してる…。
384VBから移行の名無し:2001/01/28(日) 17:42
画面に文字を書こうとしただけで例外が発生します。

Image1->Canvas->TextOut(0,0,"ABC"); としたら、
EAccessViolation 読み込み違反 になってしまいます。
どうしたもんでしょう?
385デフォルトの名無しさん:2001/01/28(日) 17:44
Image1->Freeされてない?
Image1がまだ生きてるかどうか確認してみたら?
386384:2001/01/28(日) 18:06
>>385
Image1->Freeはしてないです。

スタティックリンクでコンパイルすると例外になります。
BCB5.0です。
387デフォルトの名無しさん:2001/01/28(日) 20:55
>>386
Image->Pictureがビットマップじゃないと、EInvalidOperation出るけど。
388386:2001/01/29(月) 21:02
レスありがとうございました
原因はメモリ不足のようです。
48MBでは少ないのかな?
389デフォルトの名無しさん:2001/01/30(火) 00:46
>>388
メモリ不足?
リソース不足なら聞いたことあるが・・・
390デフォルトの名無しさん:2001/01/30(火) 00:49
スワップファイル確保してる? > 388
391デフォルトの名無しさん:2001/01/30(火) 20:31
あの有名な「猫でもわかるプログラミング」の第161章
キーボード・フックのDLLの作成に挑戦しているのですが
[リンカエラー]section MY_DATA defined in .def file is empty
と出できてコンパイルできません。
BCB 5 Trial版でのエラーですが、BCC5.5でも同じようなエラーが
出てきました。ネットで調べても「猫でもわかる」の書き方と同じ
ものばかりでよくわかりませんでした。
解決方法をご存知の方お願いします。
392デフォルトの名無しさん:2001/01/31(水) 17:30
BSTR bstr;を char * に変換するのに考えた方法は3つですが
良いか悪いか判りません。

1)TStringConverter を使う
  なんかよく判りません

2)char *p=WideToAnsi(bstr);
 処理
 delete [] p; <これでいいのでしょうか?

3)WideString wstr= bstr;
AnsiString astr = wstr;
 と代入してastr.c_str() を使う。
 この後 astrはスコープから出たら自動的にデストラクタが働くのですよね?
393392:2001/01/31(水) 20:15
>.391
外しているかもしれませんが、
BCB でしたら IDE で hookdll.cppをダブルクリックして
自動作成される プロジェクトファイルだと
ilink32 のオプションで .def ファイルが指定
されるはずです。
394392=393:2001/01/31(水) 21:05
やはり思いっきり外していましたね
BCC32,EXE には pragma data_seg の機能が無い為のようです 調べて見るとpragma codeseg
しかないようです。

BCC32 /S オプションで アセンブラ出力して SECTION 名を書き換えるしかないかもしれませんね
395デフォルトの名無しさん:2001/01/31(水) 21:22
最近BCBを入れたのですが、初期設定で、
保存する時に勝手にバックアップファイルを
作ってくれるようになっていますよね。
その設定ってどこで変えられますか?
ごめんなさい。ウザい質問だっていうことは分かって
るんです。でもどうしても見つからない〜〜〜!!
396392:2001/02/01(木) 11:15
BuilderはDellphiと比べて暴走させ易いですよ

だからバックアップファイルを作ってくれる仕掛けに
何度か助けられた経験があります。

397デフォルトの名無しさん:2001/02/01(木) 12:18
396に同意するが、ツール−環境オプション−表示
398395:2001/02/01(木) 19:54
>>396-397
教えてくれてありがとう!見つかりました。
まだ2,3回しか使ってないんで、色々試して
みようと思っているんです。
本当にどうもありがとうございました。
399デフォルトの名無しさん:2001/02/02(金) 19:24
BCB4 Proなんですけど、Excel2000にデータを書き込んだり
する事って可能なんでしょうか?
色々とさがしてみると、Access2000とかなら見つかるんですが、
Excel2000は見つからないんです。
BorlandのページにWord97というのは見つかったんですが・・

400392:2001/02/02(金) 21:31
>Excel2000にデータを書き込んだり
ってオートメーションでって事ですよね?だったらそのページの通りです
http://www.borland.co.jp/qanda/cbuilder/c0009469.html

バージョンアップするとそこらへんの接続が簡単に出来るようです
http://www.borland.co.jp/cppbuilder/papers/servers/index.html
でも、VBAでやった方が早いと思いますよ
401デフォルトの名無しさん:2001/02/05(月) 17:33
>>392

お返事どもです。
何とか、本やらWebやらを漁りまくって頑張ったのですが、
どうにもうまくいきません。
Valueプロパティーの使用方法がわからないのです。
コンパイルが通りません。

Variant theExcel;
Variant theWorkbooks;
Variant theSheet;
Variant theRange;

theExcel = Variant::CreateObject("Excel.Application");
theWorkbooks = theExcel.Exec( PropertyGet("Workbooks") );
theWorkbooks.Exec( Procedure("Add") );
theSheet = theExcel.Exec( PropertyGet("ActiveSheet") );
theRange = theExcel.Exec( PropertyGet("Range") << "D4");
theRange = theExcel.Exec( PropertySet("Value",0123456 ); //←ここでエラー
theSheet.Exec( Procedure("SaveAs") << "C:\\Temp\\sample.xls" );
theExcel.Exec( Procedure("Quit") );

メソッドの使い方は何となくわかったのですが、プロパティーの
使用方法がよくわからないのです・・・・・
大先生がた、教えていただけませんでしょうか。
402いつでもどこでも名無しさん:2001/02/05(月) 20:41
kylixはフリーだ!やったね。
403名無しさん@お腹いっぱい。:2001/02/05(月) 23:36
これ、絶対にビルダーのことだろ(ワラ

http://www.atmarkit.co.jp/news/200102/06/kylix.html
404デフォルトの名無しさん:2001/02/05(月) 23:52
>>403
C++Builderだと良いねぇ。
405デフォルトの名無しさん:2001/02/06(火) 12:50
>401

theRange.OlePropertySet("Value","0123456");

じゃだめか?
406デフォルトの名無しさん:2001/02/08(木) 06:14
C++Builderで、軽めの256色のペイントツールを創ろうと思うんですけど
何かよい参考ページはないでしょうか?
とりあえず、SDIベースで、パレットは別ウィンドウにしようかと
思ってるのですが、
TBitmap、TImage、をベースに
内部ではDIBを生成して、いじろうと思っています。
こういう関連の高速なやりかたを紹介したページってありませんでしょうか?
407turbo type D:2001/02/08(木) 13:37
知りません。
408312:2001/02/10(土) 11:26
激遅レスですが解決しました。
About Delphiで紹介されている方法はどれも動きがヘンだったので
結局↓からDLしたコンポーネントを使いました。
ttp://www.melander.dk/delphi/dragdrop/index.html
409デフォルトの名無しさん:2001/02/10(土) 12:35
>>406
ペイントツールでなくドット絵ツールなら、激しく応援するぞ。
410406:2001/02/10(土) 20:19
>>409
ペイントツールというか、まさしく
ドット絵ツールを創りたいと思っています。
今あるドット絵ツールは、
ちょっと痒いところに手が届かないものが多いので……。
といっても、いまは多忙なのですけれど……。
一段落ついたら、真面目に取り組んでみようと思っています。
Builder制ドット絵ツールってないんでしょうかね?
411デフォルトの名無しさん:2001/02/10(土) 20:45
>>410
痒いところに手が届かないってのは結構いえてるなー。
最近のはいらん機能が多すぎる。ドット絵用の機能が他にあるだろ!みたいな。
余裕があれば俺も作りたいところ。
既成のでそこそこいいのはあるからそういうのをベースにできれば楽なんだけど。
というわけで、できたらソースコード公開キボーン。

Builderに直接関係ないのでsage
412319:2001/02/10(土) 22:11
>>408

>>312に対してすでに>>319で答えてやっているというのに(藁
頭悪い厨房だらけか、ここは

>>411
最近、このソフトオプソでVCL系なら
どんなに助かるかってよく思うよ。
413デフォルトの名無しさん:2001/02/11(日) 07:56
windows2000に移行したのですが、
ただのフォームだけのプログラムをビルドしようとすると、
Unable to open file 'SYSTEM.OBJ'というリンカエラーが出てしまいます。
Adminでログインしているときはエラーは出ないのですが、
どうしたら一般ユーザでもビルドできるのでしょうか?
414ロッソ:2001/02/11(日) 10:28
 〃
(中」中)ノ 一般ユーザーに admin 権限を与える。
415デフォルトの名無しさん:2001/02/11(日) 12:50
全作業をAdmin.で行うのがMSのWindowsの正しい姿です(藁
416turbo type D:2001/02/21(水) 09:37
ドット絵でぃた

http://www.sm.rim.or.jp/~shishido/

Delphiソース付だね。
BCBの>>410のニーズにそったページもあるようだね。

ところで、MLの移行はどうなるんだ?
417▲age▲:2001/02/26(月) 01:34
最近ぴか虫さん見ないなぁ
どこへ逝ってしまったんだ・・・
418デフォルトの名無しさん:2001/02/26(月) 08:20
>>413
一般ユーザーでインストールした?
Adminでインストール後、一般ユーザーでレジストリのみインストールするのん(だったはず)
419デフォルトの名無しさん:2001/02/26(月) 08:23
>>416
あ、いや、いくらなんでもこのソフトは…ちょっと…

この人のページ自体は役に立つんだけどね。
420turbo type D:2001/02/26(月) 09:52
>>419
スマソをれも試してみて後悔した...

UNDO一回なんてものの役にもたたないわ。
421いまどき C++Builder 1.0 野郎:2001/02/26(月) 16:27
0.VC用インポートライブラリとDLLがある
1.IMPLIB で DLL からBCB用インポートライブラリを生成
2.ソースコード内に DLL内の関数を記述( 関数名(); )
3.コンパイル

リンカから " _関数名()が無い" (※先頭に下線がついている)と警告が出ます。
ヘッダを追跡するとコンパイラ別指定で
extern "C" や __declspec(dllimport)指定
がされているようなのですが、
どうやったらまっとうにリンクできるでしょうか?
422デフォルトの名無しさん:2001/02/26(月) 16:34
>>420
いや、undo以前の問題だってば…
まあ、これはあからさまに勉強用やね…。
423turbo type D:2001/02/26(月) 17:29
元投稿者は確か勉強用なソースを欲しがっていたようだが。
424デフォルトの名無しさん:2001/02/26(月) 18:18
BCB4です。BCB環境がない人用に
「共有RTL DLLを使う」をOFF
「実行時パッケージを使って構築」をOFF
にしているんですが、実行ファイルのサイズが異様に大きくなってしまい困ってます。
なんとかする方法ありませんか?
425デフォルトの名無しさん:2001/02/26(月) 19:21
>>424
ありません。
426デフォルトの名無しさん:2001/02/26(月) 19:42
プログラミングやめましょう。
427424:2001/02/26(月) 21:30
いや、そう冷たいこと言わずに、なんとかお願いしますよ。
「実行時パッケージを使って構築」のうちナニかを減らす手段とか、
なにかないもんですかね?
428デフォルトの名無しさん:2001/02/26(月) 22:37
マジレス。
VCLがでかいんでVCLをとっぱらう。
(VCL下では実行サイズがデカイという文句は言ってはいられない)
そこからがスタート。

あとは、Win32APIごりごりとかMFC(wara)とか、WTLとかお好きにどうぞ。
429デフォルトの名無しさん:2001/02/26(月) 22:51
>>421
に「いまどき C++Builder 1.0 野郎」
ってあるけど、>>375のようなことが1.0ではないから、作れるものは1.0で作ってしまえってのをどっかで見た。
ホントかなぁ。ホントなら俺1が欲しいなぁw 4からしかもってねぇよ・・・
ついでに>>427
1.そいつのマシンにRTLを入れてしまう。(長い目で見ると実は有効)
2.そいつのマシンにBCBをインストール。(デバッグもしてもらえるぞ)
3.ゲイツに、WinでもVCL使えるようにしろやゴルァと脅迫。(MFCは入ってるのに・・・)
4.配布を諦める。
お好きなのをどうぞ。
他のがあったら俺も知りたい。(upxという手もあるが・・・GPLがよーわからんから手を出してない)
茶々いれなので下げ。
430▲age▲:2001/02/27(火) 00:36
>>424
UPXを使うってのは?
431430:2001/02/27(火) 00:37
スマソ・・・>>429さんが言ってるね。
432あゆ:2001/02/27(火) 11:08
すみません。
教えていただきたいのですが。

C++ Builder 5をWebとCを関連づける為に、ローカルHDDに
クッキーデータを残したいのですが。
どのような手段をとればいいでしょうか?

ご教授の程、よろしくお願いします。

ちなみに、NMHTTPコンポーネントでクッキーデータを受けることができました。クッキー
433デフォルトの名無しさん:2001/02/27(火) 13:39
>どのような手段をとればいいでしょうか?

神に祈る
434デフォルトの名無しさん:2001/02/27(火) 13:53
>>432
WebとCを関連付けたらWWWCになっちゃうよー(違

.txtで保存しとけば?
435あゆ:2001/02/28(水) 09:41
ありがとうございます
神に祈ってみます。

432書く時、寝てたみたいですね
文がダメダメですなぁ〜
436デフォルトの名無しさん:2001/03/01(木) 00:44
>>427
プロ版以上ならInstallSheldExpressがついてるでしょ。
DLLを使うをONにして、インストーラーでDLLを配布しよう。
簡単だよ。
アンインストーラーも自動的にできちゃうし。
製品みたいで凄いって喜ばれるよ。
ほとんど何もしてないのに。
437デフォルトの名無しさん:2001/03/01(木) 00:45
>>427
プロ版以上ならInstallSheldExpressがついてるでしょ。
DLLを使うをONにして、インストーラーでDLLを配布しよう。
簡単だよ。
アンインストーラーも自動的にできちゃうし。
製品みたいで凄いって喜ばれるよ。
ほとんど何もしてないのに。
438デフォルトの名無しさん:2001/03/01(木) 10:08
VCみたくデータ構造とUI構造を分離するためにBCBで推奨されている構造ってありますか?
VC だと CDocument ですが、BCB だと DataModule あたりでも使うんでしょうか?

P.S
BCBのグローバル変数をばらまく仕様はどうにかなりませんか・・・(泣
439デフォルトの名無しさん:2001/03/01(木) 12:12
DelphiのコードのasってC++Builderで言うと何になるんでしょうか?
440デフォルトの名無しさん:2001/03/01(木) 12:24
ダイナミックキャストかなあ。

if (dynamic_cast<TButton*>(Sender) != NULL )
{
dynamic_cast<TButton*>(Sender)->Caption = "";
}

441デフォルトの名無しさん:2001/03/01(木) 13:12
完全に同じ機能というわけじゃないけども
dynamic_castをつかいたまい
442デフォルトの名無しさん:2001/03/01(木) 15:32
C++ Builder付属のSTLって何製ですか?
やっぱりHP?
443442:2001/03/01(木) 15:33
ああ、さげちゃった。
444439:2001/03/01(木) 15:37
>>440 >>441
なるほど〜
ありがとうございました。
445デフォルトの名無しさん:2001/03/01(木) 16:02
>>442
C++Builder 4/5ではRogueWaveのです(他は持ってないので知らない)。

http://www.roguewave.com/
446442:2001/03/01(木) 16:24
>445
ありがとうございます。
RogueWave製だからどうしたってことはないのですが・・・。

447デフォルトの名無しさん:2001/03/01(木) 21:52
ふー・・・gifを見ようとOleLoadPictureを調べてるけど、使い方が分からない・・・
けどもうちょっとだけ、がんばってみる・・・
ダメだったら助けて・・・・・・(泣
448デフォルトの名無しさん:2001/03/01(木) 23:32
>447
google 逝け!
449デフォルトの名無しさん:2001/03/01(木) 23:35
>447
OleLoadPictureFileつーのがあるな
450447:2001/03/02(金) 11:13
>448-449
ぐーぐるは真っ先につかったけど・・・MFCサンプルしかないの・・・。
まぁ、コピペだけで出来るとは思ってないけど。勉強にもならないし。

取り合えずVCLのソースを眺めていたら、
OleLoadPicture(TStreamAdapter.Create(Stream), 0, True, IPicture,FPicture)
って使っているのは見つかった。
4番目の引数は IID_IPictureにすればコンパイルは通った。
最後の引数はTPictureだから、これでTImageにつなげられるかな。

問題は、最初のTStreamAdapterってのか・・・。ヘルプにも載ってないし・・・。
TOleGraphicを調べたほうが早いかなぁ・・・。
もうちょいがんばってみる。ってわけで、下げ。
451421:2001/03/02(金) 12:06
自己レスです。
VC製DLLはリンク方法の違いから単純にリンクはできないそうです。詳細以下:
http://www.borland.co.jp/qanda/cbuilder/c0005026.html

しかしこのとおりやろうと思い、IMPDEF からDEFを生成して
EXPORTS
  funcname @1

funcname=_funcname@1
にしてもうまく行きません。モー全然わからなくなってきました(泣
452447:2001/03/02(金) 20:15
一応出来た・・・けど結局コピペの塊。逝ってきます。
{
 IPicture* iPicture = NULL;
 AnsiString File = "c:\\2ch\\giko.gif";
 HANDLE hFile = CreateFile(File.c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);
 DWORD dwFileSize = GetFileSize(hFile, NULL);
 LPVOID pvData = NULL;
 HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
 pvData = GlobalLock(hGlobal);

 DWORD dwBytesRead = 0;
 BOOL bRead = ReadFile(hFile,pvData,dwFileSize,&dwBytesRead,NULL);
 GlobalUnlock(hGlobal);
 CloseHandle(hFile);

 IStream* srm = NULL;
 HRESULT hr = CreateStreamOnHGlobal(hGlobal,TRUE,&srm);

 hr = ::OleLoadPicture(srm,0,FALSE,IID_IPicture,(void**)&iPicture);

 long hmWidth,hmHeight;
 iPicture->get_Width (&hmWidth);
 iPicture->get_Height(&hmHeight);

 RECT rc;
 rc = Image1->Canvas->ClipRect;
 int mona = 26.46;
 iPicture->Render(Image1->Canvas->Handle,0,0,hmWidth/mona,hmHeight/mona,0,hmHeight,hmWidth,-hmHeight,&rc);
 srm->Release();
}
肝はTCanvasのハンドルがそのままHDCだってのに気づけたことと、mona=26.46かな(藁
TPictureAdapterやTOleStream調べてたらすげー時間くっちまったよ・・・けどまぁパスカルの読み方がなんとなく分かっただけ収穫だな

すげーながくてごめんな。んぢゃ一人芝居はここまでってことで。
453デフォルトの名無しさん:2001/03/05(月) 12:41
TGifImageは?
454デフォルトの名無しさん:2001/03/05(月) 16:12
>>452
>int mona = 26.46;
intに少数を代入している意図は?
455VAN:2001/03/05(月) 20:20
やたらとスレッド作ってしまいすみませんでした。
あと、現在のように他の方の話題なのにこのように別の書き込みをするのは
失礼にあたるのでしょうか。

ご質問よろしくお願いします。
C++ビルダー4.0を使って、ダイレクトXを利用したソフトはつくれるんでしょうか。
そういうの紹介しているHPとか。こつがあれば教えてください。m(_ _)m
456452:2001/03/05(月) 23:15
>>453
なにぃっ!? まさかそのものズバリのAPIとかがあるとか・・・?
って違うか。それは、誰かが作ったコンポーネントかなにか? 後で調べてみます。情報ありがとう。
けどとりあえず、自分の力(とWIN様の力)でやってみたかったの。

>>454
ただのおちゃめ(嘘)

・・・あうー(恥 恥ずかしいんでsageさせて
457デフォルトの名無しさん:2001/03/06(火) 09:50
>455
DelphiX っつーのがあるらしい。(DirectX スレで聞きかじった)

458デフォルトの名無しさん:2001/03/06(火) 14:25
>>455

しらかわよふねに聞け
459デフォルトの名無しさん:2001/03/06(火) 20:03
>455
DirectX SDKのヘルプ見ながらやれば作れるよ。
自分で初期化とかやるのが面倒ならコンポーネントを探してきなさい。
460しらかわよふね:2001/03/06(火) 21:05
>>458
なんで振るかな(^^;

まず最初にDelphiではDelphiX、QuadrapleD(スペル違うかも)という二つのDirectXラッパーコンポーネントが有名ですが、この二つ、BCBには持ち込むことが出来なかったと記憶しています。
記憶が違ってる可能性はもちろんあります。

では、自分でDirectXを確保したり〜とかは出来るのかと言うことになりますが、答えは、「出来ます。」

DirectXはCOMという技術を使って作られています。そして、COMはBCBでも操作できるからです。
COMを使うのにlibは要らないと言う話ですし。
ということで、問題はCOMを操らない周辺関数ということになります。

DirectX7以前の物であれば、MicrosoftがBorland用のライブラリをSDKに付属しています。これを使うことで何の問題もなくBCBでDirectXを使うことが出来ます。
ここら辺のことはFAQです。英語が読めなかったら、Exciteの翻訳でも使ってください。
http://community.borland.com/article/print/0,1772,10472,00.html

問題はDirectX8以降なんですが、こちらはMicrosoftがBorlandのライブラリを用意していません。
MicrosoftのリンカーとBorlandのリンカーでは物が違いますので、残念ながらVC用のスタティックライブラリをそのままリンクすることは不可能です。
ということで、一回VCでDirectXライブラリのラッパーDLLを作ってから、Borlandのimplibでインポートライブラリを作ってそれをリンクするという方法が考えられます。
ただこの方法だと、実行時にも先ほどのDLLを必要とします。

あとは・・・ALINKを使うと、VCで作ったobjとBCBで作ったobjの混在リンクが出来るらしいので、もしかしたらALINKでいけるかもしれません・・・が、自己責任でやってください。
461しらかわよふね:2001/03/06(火) 21:11
462デフォルトの名無しさん:2001/03/07(水) 11:41
よふね、大変やね(w

私もDelphiX/QDはBCBに持ち込めなかったような記憶してる。

ところでマニアクス荒れてるね。ヤダヤダ
463デフォルトの名無しさん:2001/03/10(土) 00:42
Performance Graphってどういうことができるの?
できたら、使い方も教えてください
464デフォルトの名無しさん:2001/03/10(土) 01:21
QDはBCBでも使えるようです
ttp://www.kcat.zaq.ne.jp/takao/qd4bcb/index.html
465デフォルトの名無しさん:2001/03/10(土) 02:29
バックグラウンドコンパイルにしていたら、コンパイルが遅くなる?
466デフォルトの名無しさん:2001/03/10(土) 21:38
しらねーよ、じゃはずせよ。
467デフォルトの名無しさん:2001/03/16(金) 20:10
DelphiでTMyForm = class(TForm1);を
C++Builderで書いたらどうなるんでしょうか?
468あげ おぶ えんぱいあ:2001/03/22(木) 19:04
前提:俺はDelphiをしらん

VCLソースを見た限り、クラスの継承だから、
class TMyForm : public TForm
ぢゃないの? いや、しらんけど。
VCLソースには、その位置にセミコロンなかったし。
469デフォルトの名無しさん:2001/03/23(金) 10:38
あの・・・・・超初心者で使いこなせないのを承知で
C++Builder買ったんですが、

#include<stdio.h>
main()
{
printf("初めてのプログラム\n");
}

このプログラムを実行するにはどうすればいいんでしょうか?新規作成で
コンソールウィザードを選ぶするらしいのですが
C?C++?どっちを指定してすればいいんでしょうか?
プロジェクトソースの指定はするそうですが?指定しようにも
フォルダを開けても何もありませんので指定できません。
470デフォルトの名無しさん:2001/03/23(金) 10:43
ttp://member.nifty.ne.jp/h_kova/faq/main.htm#●VCLを使わずにCやC++のプログラムを勉強したいのですが
471デフォルトの名無しさん:2001/03/23(金) 12:40
>>469
迷っていないで作ってみればいいじゃん。
まさか、C も C++ も知らない訳じゃあるまい?
472デフォルトの名無しさん:2001/03/23(金) 13:16
>>467
多分
TMyForm *myform = new Form1();

TForm *myform = new Form1();
だろう。
473デフォルトの名無しさん:2001/03/23(金) 13:39
>>463
パフォーマンスグラフが書ける。
縦軸は値によって自動的にスケーリングします。
わたしゃオシロ表示ライクに利用しました。

>>469
コマンドラインはbcc32 ファイル名でやろう
474デフォルトの名無しさん:2001/03/23(金) 14:13
麻衣ちゃん板でも書いたんだけど反応がないのでこちらで。

VCで下のようなソースを書いたんですが、
void func ()
{
    sample_stream smp;
    smp << "hoge" << endl;
}
で、VCではまともに表示してくれるんです。
が、友人宅のBCBではまともに動かないそうなんです。

ストリームってendlを呼び出すと、flushを呼び出してその中でバッファのsyncが呼び出されるんですが、
BCBではsample_buf::syncを通過していないそうなんです。(ブレークポイントで調べた)

家にはBCBが入ってないのでどうしてこうなるのかが確かめられません。
どうすれば問題に対処できるのか教えてください。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if !defined(_SAMPLE_STREAM_)
#define _SAMPLE_STREAM_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <Sstream>
#include <windows.h>

class sample_buf : public std::basic_stringbuf<char>
{
public:
    sample_buf() : std::basic_stringbuf<char>(std::ios_base::out) {}
    virtual ~sample_buf() {}
protected:
    virtual int sync()
    {
        //  表示動作
        return 0;
    }
};

class sample_stream : public std::basic_ostream<char>
{
public:
    sample_stream() : std::basic_ostream<char> (&_db) {}
    virtual ~sample_stream() {}
protected:
    sample_buf _db;
};
#endif
475デフォルトの名無しさん:2001/03/27(火) 01:37
Delphiのコンポーネントを使いたいんだけど
.pasファイルで構成されている単純なものしか登録できないね。

EmbeddedWbとか魅力的なコンポがたくさんあるのに
BCBユーザは指をくわえて見ているしかできないのかな ;;
476デフォルトの名無しさん:2001/03/27(火) 23:29
>>474
flashがsyncを呼び出す、というのは、STL の標準的な動作なのでしょうか?
私の手元の資料では、endlはflashを呼び出す、というところまでしか
確認できませんでした。

477デフォルトの名無しさん:2001/03/27(火) 23:49
>>476
VC,BCB,g++で確認してみたところ、どれも'\n'を出力した後にflush呼び出してるね。
MSDNにも同じ事書いてあるし、比較的標準的と考えて良いんじゃないかな。
断言できれば良いんだけど、俺もC++の仕様書持ってないからなぁ・・・
478バグ怖いです:2001/03/30(金) 19:32
最近、VC++でファイル操作系のプログラムを組もうと
勉強中の者です。

お勉強系のHPを読んでいたところ、
ファイル操作系の「WIN32のAPI」と「C標準関数」を
同時に使用しない方がよいというような記述を見つけました。
このことは不勉強のためか初耳なんです。

ずばり、CreateFile と fopen を同じプログラム内で使って
問題ありませんか?
メモリ関連やハンドルで矛盾が出たりするという事でしょうか?
バグの原因になってしまうのでしょうか?
この事を考えると、夜も寝れずにプログラムを組んでします(笑)

↓書いてたトコです
http://www.arcpit.co.jp/winapi/api_01/ap010406.htm

関連事項が書かれたHPのURLだけでも構わないのでご指導を
よろしくお願いします。
479デフォルトの名無しさん:2001/03/30(金) 20:41
とりあえず、このヒトはBCBを知らないと思われる。
480バグ怖いです:2001/03/30(金) 23:42
ごめんなさい、本当に知りません(TT)
一回BCBを調べてきます。

アドバイスありがとうございます。
481>478:2001/03/31(土) 01:16
>CreateFile と fopen を同じプログラム内で使って 問題ありませんか?
全く問題無い。malloc/freeやmemcopyもなんら問題は起きない。
ただしthreadを作成する場合はライブラリ側のbeginthreadex/endthreadを使用する事。
(スレッド毎のライブラリの初期化が必要なので。)
まあ初心者はthreadなんて作らないと思うが。
478のリンク先の奴はなにも判ってないみたいなので今後参考にしない事。
482バグ怖いです:2001/03/31(土) 01:22
大変失礼しました。
どうやら質問する板を間違えてしまいました(><)
本当に勉強不足でどうもすみませんでした。
他のトコで質問しなおします。
483481>482:2001/03/31(土) 01:25
ちなみに481はVisualC++の話。BCBも似た様なもんでしょう。
484バグ怖いです:2001/03/31(土) 01:28
ありがとうございます。 >481さん
自分のハジに気づいたとたん暖かいアドバイス助かりました。
これからは気をつけます。
スレッドはいまいち何に使うかがピンと来ないので
まだ手を出していません^^;
本当にありがとうございました。
485あげ:2001/04/04(水) 18:24
TThreadの中で平気な顔してAnsiString使ってます。
ええ、リークしてまさぁ。

けどこれ、具体的に、どれくらい問題なんだろう?
486初心者:2001/04/04(水) 22:32
ビルダーではなくてボーランドのフリーのコンパイラで
初めてCをやったのですがグラフィックの描画の仕方が
分かりません。
一応参考書を買ったのですが昔のやつしか載ってませんでした。
これはきっとヘッダをインクルードして使うんですよね?
どうすればよいのでしょう・・・。
487デフォルトの名無しさん:2001/04/04(水) 23:47
>>486
悪いこといわないから C++Builder を買え。
VBでもVCでもDelphiでもいいけど。
とにかく、無駄なことに時間を使いたくなければ買え。
それだけの価値はある。
488初心者:2001/04/05(木) 00:01
VB持ってるけどなんとなくCを学びたくなったんですよ〜。
今デフレだしあまりソフト買いたくないんです。
489デフォルトの名無しさん:2001/04/05(木) 02:24
>>488
それならVBでグラフィックやればいいじゃん。
490初心者:2001/04/05(木) 17:39
殺すぞコラ!
491デフォルトの名無しさん:2001/04/05(木) 18:29
>>490
基地外か。
それともネタか。

それが問題だ。
492デフォルトの名無しさん:2001/04/05(木) 18:40
コンソールでCの勉強したいならこっちの方がいいかも。
USってコマンド入れてからTCで起動。
http://community.borland.com/article/images/20841/tc201.zip
493デフォルトの名無しさん:2001/04/05(木) 19:10
 あの、photoshop プラグインをC++Builderでビルドしてみたいんですが、
1.DLL のexport で、 foo と bar@16 の2つがあるもの。
2.外部ビルド(リソースの変換をしたいので)
 って、どうやるんでしょう。ヘルプをうまく検索できなくて困ってます。
494デフォルトの名無しさん:2001/04/05(木) 19:34
495デフォルトの名無しさん:2001/04/05(木) 20:06
WindowsのCDに付属のQBasicならお手軽にグラフィックが(藁
496初心者:2001/04/06(金) 18:57
言わずとも490は偽者です。API使わなくてもできるんでしょ?
497半端じゃなく初心者:2001/04/06(金) 19:19
以下のプログラムでget(Key)のKeyになにも読み込まれないんですけど
どうしたらいいですか?
#include <stdio.h>
void main(void)
{
int item[10];
int i,j,change,count=1;
char *EndKey="x",Key[10];

printf("数値を入力してください。\n");

for(i=0;i<10;i++){
printf("%d個目",i+1);
scanf("%d",&item[i]);
printf("終了しますか?終了する場合xを入力してください。\n");
printf("続行する場合returnキーを押してください:");
gets(Key);
if(!strcmp(EndKey,Key)) break;
count++;
}
}
498半端じゃなく初:2001/04/06(金) 19:20
以下のプログラムでget(Key)のKeyになにも読み込まれないんですけど
どうしたらいいですか?
#include <stdio.h>
void main(void)
{
int item[10];
int i,j,change,count=1;
char *EndKey="x",Key[10];

printf("数値を入力してください。\n");

for(i=0;i<10;i++){
printf("%d個目",i+1);
scanf("%d",&item[i]);
printf("終了しますか?終了する場合xを入力してください。\n");
printf("続行する場合returnキーを押してください:");
gets(Key);
if(!strcmp(EndKey,Key)) break;
count++;
}
}
499497および498:2001/04/06(金) 19:27
バグって二個書いてしまいましたすいません。
500デフォルトの名無しさん:2001/04/06(金) 19:32
500とっぴ
501名無しさん:2001/04/06(金) 21:16
501とっぴ
502デフォルトの名無しさん:2001/04/07(土) 19:06
>>498
たぶん
> scanf("%d",&item[i]);
で改行文字を処理しないもんだから、
> gets(Key);
でいきなり改行文字を受け取ってしまう、ってオチでは。

getsの直前にfflush(stdin);とかすると解決するのかな。
試しに以下のようなコードで試したけど良いみたい。

#include <stdio.h>

int main(void)
{
char buf[10];

while (1)
{
printf("scanf: ");
scanf("%s", buf);
puts(buf);
printf("gets: ");
fflush(stdin); // ここを消すと下のgetsに改行コードを読まれるよ
gets(buf);
puts(buf);
}

return 0;
}
503デフォルトの名無しさん:2001/04/07(土) 19:59

stdinに対してのfflushの結果は未定義だったはず
504デフォルトの名無しさん:2001/04/07(土) 20:12
>>503
そうでしたか。失礼しました。

なら、fflushの代わりに、ダミーのgetsを置くとかするのかな。
505デフォルトの名無しさん:2001/04/07(土) 20:35
C++Builder5でSTLのrandom_shuffleを使ったのですが
毎回同じパターンでしかランダムに並び替えてくれません。

  using namespace std;

  vector<int> v; //vector<int> v;
  vector<int>::iterator ite; //vector<int>::iterator ite;

  for (int i=0;i<10;i++)
  {
    v.push_back(i);
  }

  random_shuffle(v.begin(),v.end());

random_shuffleの前にsrand((unsigned int)time(NULL));ってやってもダメでした。
毎回違うようにランダムに並び替えてもらうためには、どうやればよろしいのでしょうか?
506デフォルトの名無しさん:2001/04/08(日) 01:23
>>506
3番目の引数で乱数生成器を指定できます。
http://www.s34.co.jp/cpptechdoc/reference/stl_samples/algorithm.html#random_shuffle
507506:2001/04/08(日) 01:24
>>505のまちがい
508505:2001/04/08(日) 02:18
>>506
リンク先を見てやったらできました。
ありがとうございました。
509デフォルトの名無しさん:2001/04/08(日) 08:25
BCCを使っているのですがVCLというやつは手に入るのでしょうか。
もしくはライセンス的に配布してはいけないのでしょうか?
510デフォルトの名無しさん:2001/04/08(日) 09:57
っていうか、bccで作った奴って配布も販売も禁止
511デフォルトの名無しさん:2001/04/08(日) 10:42
>>510
ウソ
512デフォルトの名無しさん:2001/04/08(日) 11:55
>509
VCLは自分で作ってください。
513デフォルトの名無しさん:2001/04/08(日) 14:49
BC++5.5のsupplement packっていうのが必要らしいんだけど
もう単独では配布してないの?
今はひっくるめて配布とかかいてあるけどDLめんどいよ。
514デフォルトの名無しさん:2001/04/10(火) 00:04
メモリー上にbitmapを作ってそれを表示したいのですが、どうすればいいでしょうか?
とりあえず、
TImage *Image;
Image->Picture->Bitmap->LoadFromStream(...)

Image->Picture->Graphic->LoadFromStream(...)
でいいと思うんですが、だめなんです。。画像が表示されません。
Image->Invalidate();
をやってもだめです。。ストリームから画像表示をする方法を教えてくださいです。
515デフォルトの名無しさん:2001/04/10(火) 00:17
>>514
これじゃダメ?

  Graphics::TBitmap *bmp = new Graphics::TBitmap;

  bmp->LoadFromFile("hoge.bmp");
  Form1->Canvas->Draw(0, 0, bmp);

  delete bmp;
516514:2001/04/10(火) 11:31
515さん、どもです。
メモリー上にbitmapを作ってそれをファイルに落としてLoadFromFileをするってことですよね?
でもちょっとファイルは介在させずにやりたいのです。。

 やりたいことは
別フォーマットの画像ファイルを読み込む(たとえばYUVとかの)。
それをメモリー上でbitmapに変換する。
メモリー上にあるbitmapを直接表示する。

です。何か良い方法はないでしょうか?宜しくお願いしますですです。。
517デフォルトの名無しさん:2001/04/10(火) 12:24
ビットマップはメモリ大量に必要だから
VirtualAlloc、VirtualFreeで必要分確保。
しかし仮想メモリって結局ディスクアクセス発生するから
テンポラファイルでもいいんでわ?
518デフォルトの名無しさん:2001/04/10(火) 14:01
TBitmapってDIBだからメモリー上のbitmapなんですけど。
だからTBitmapに対して描画してやればいいのでは?。
519デフォルトの名無しさん:2001/04/11(水) 10:10
どなたかBCC用のスレ作ってくれませんか?
最近始めたばかりなんですがけっこう分からないこと多くて。
勝手ながら俺はスレ作るの苦手なんです。
お願いします。
520デフォルトの名無しさん:2001/04/11(水) 16:50
521デフォルトの名無しさん:2001/04/11(水) 17:51
>>519
で、その後どうするの?
522デフォルトの名無しさん:2001/04/11(水) 18:02
>>516
あんまりいい方法ないよー。
使ってるのはFileでなくてTMemoryStreamに
メモリー作って読む方法。
いいのがあったらおしえてくれい1。
523デフォルトの名無しさん:2001/04/12(木) 22:53
たれか画像処理に強い人いないですか?
メディアンフィルタの実装方法を教えてちょ。
524デフォルトの名無しさん:2001/04/13(金) 14:57
>>514
 現時点でメモリ上にビットマップデータを作るコードがあるのなら

  Graphic::TBitmap* Bitmap = new Graphic::TBitmap;
  Bitmap->PixelFormat = pf24bit; // 任意
  Bitmap->Width = 640; // 任意
  Bitmap->Height = 480; // 任意

のように準備した Bitmap の画素へのポインタ(ScanLine[] プロパティを
使う)を取得し,そこへ直接書き込むようにしてみては?

 あとは
  Image1->Picture->Bitmap->Canvas->Draw( 0, 0, Bitmap ); なり,
  Form1->Canvas->Draw( 0, 0, Bitmap ); なりすれば
画面に反映出来るとおもう.

 他の方法として SetDIBitsToDevice() 等を使ってメモリ上の
データから DC 経由で読み込む手があるが・・・わざわざこの方法を
選ぶ理由もないような.

 LoadFromStream() といえばこないだ作ったプログラムでは圧縮連結
された画像を扱う必要があったので

  class TLzhArchive : public TMemoryStream
  {
  public:
    // 指定された名前の画像を自分自身に展開するメソッド.
    void __fastcall Lock( AnsiString asIndex );
    // 画像がいらなくなったら解放するメソッド.
    void __fastcall Unlock( void );
    // 構築子,扱う圧縮連結画像のファイル名を指定する.
    TLzhArchive( AnsiString asFilename );
  };

のようなクラスを作って

  TLzhArchive* Archive = new TLzhArchive( "c:\\背景集.lzh" );
  Graphic::TBitmap* Bitmap = new Graphic::TBitamp;
  Archive->Lock( "海岸.bmp" );
  Bitmap->LoadFromStream( Archive );
  Archive->Unlock();

 みたいな処理書いたな.
525>>524:2001/04/13(金) 18:10
ただsortして真中の値をとる。それだけだろ。
その質問からはこれしかでない。
526525:2001/04/13(金) 18:11
いかん、>>524じゃなく523だった。
527名無しの笛の踊り:2001/04/14(土) 00:36
ScanLineを使ってBITMAPに処理をしたいのだけど、
どうも直感的に理解しくいのでどうにかならないかとさまよっていたら、
「ScanLine」を「Pixels」のように使えるようする解説があった。
http://www2s.biglobe.ne.jp/~aks-lab/delphi_part3_s.htm
でもDelphiなのでこれまたピンと来ないのです。
BCBで書くとしたらどうすれば良いんでしょう。

528厨房C++Builder使い:2001/04/14(土) 02:05
>>527
こんな感じになるんでないのかな。

//ユーザー定義手続き(画像からRGB情報を取得する)
//Procedure TForm1.ScanPixel(pBMP:TBitMap; X,Y:SmallInt; var R,G,B:Byte);
void TForm1::ScanPixel(
  Graphics::TBitmap *pBMP, short X, short Y, Byte &R, Byte &G, Byte &B)
{

//var

 Byte *PBit;//PBit : PByteArray;

//begin

 //元画像のパレット設定
 pBMP->PixelFormat = pf24bit;//pBMP.PixelFormat := pf24Bit;

 //ラインの取得
 PBit = (Byte*)pBMP->ScanLine[Y];//PBit := pBMP.ScanLine[y];

 //RGBの取得
  X*=3;//X := X*3;
  R = PBit[X];//R := PBit[X];
  X++;//inc(X);
  G = PBit[X];//G := PBit[X];
  X++;//inc(X);
  B = PBit[X];//B := PBit[X];

}
//end;
529527:2001/04/14(土) 04:24
>>528
なるほど。
なんだか見えてきたような気がします。
早速のレスありがとうございます。

ただ当方まったくのC++Builderズブなので
動作確認のレスをいつ付けれるか分かりませんが…
530なまお:2001/04/15(日) 08:45
僕のサイトにC言語会話講座と言うのを作ったので、見にきてください!

http://web.kyoto-inet.or.jp/people/namao/index.html
531デフォルトの名無しさん:2001/04/15(日) 18:03
Builderの便利技って結構ありそうなんですが
どんなの知ってますでしょうか?
僕の知ってるのはTMainMenuのTMenuItemが
Drag&Dropで項目間移動できるとか、同じく
TMenuItemのCaptionにファイルとか入れると
名称が勝手にFile1などとなるって奴ですが..
532デフォルトの名無しさん:2001/04/15(日) 18:24
>>530
寒いから氏んでください。
533デフォルトの名無しさん:2001/04/16(月) 01:34
>>531
>僕の知ってるのはTMainMenuのTMenuItemが
>Drag&Dropで項目間移動できるとか、

え、これどうやるの?
やってみたけどできないよ。
BCB5でコンパイルする必要があるのかな。
(試したのはBCB4)
534デフォルトの名無しさん:2001/04/16(月) 01:37
>>533
IDE上の話だと思う。
535533:2001/04/16(月) 01:58
な〜る (^^;
536デフォルトの名無しさん:2001/04/16(月) 02:56
>>531
ボーランドの方ですね?日曜出勤ですか。こんなクソ掲示板で会社のための
話題づくり、大変ですね。誰のためにもならないくだらん便利技よりバグの
一つでも取っていただけませんかねぇ。
537デフォルトの名無しさん:2001/04/16(月) 06:17
>>536
くだらんのはお互い様だと思うけど、
それより、日本のボーランドって実際どれくらい
C++Builderに関わっているのでしょう?
例えば>>536の言うようにバグを日本で修正できたりとか、
それとも日本語化だけ担当しているとか。
知っている人いる?
538デフォルトの名無しさん:2001/04/16(月) 07:27
>>537
一人もいないよ。笹塚は代理店業務と翻訳家調達だけ。
539デフォルトの名無しさん:2001/04/16(月) 08:24
>>538
なるほど、ありがとう。
じゃあ>>536は煽りは無意味って事で。
540デフォルトの名無しさん:2001/04/16(月) 10:41
Delphiシェルプログラミング入門の本を書いた子が
Borlandの営業にいってるんですよね。

あのレベルのことがわかる人間が営業してる
Borlandってもったいない事してるなと思うんだけど。

あのレベルのことわからないと営業すらつとまらないの?
541デフォルトの名無しさん:2001/04/16(月) 12:01
Aらいさんのことだね? Nifty/FDelphi で活躍しておった。
上司がO野さんだからな。いいんじゃないの?

二人が所属しているのは営業ではなくマーケッティング。
Java とか Windows 知らない人間が販売戦略練るような会社の
開発製品、使いたいと思うかい?それができるのは MS のような
所だけ。

自社製品使ったことがない/使えない人間が開発ツールの営業/マーケの
リーダーになった日にゃ、社員は逃げ出すよ。某四万十社のようにな。

542デフォルトの名無しさん:2001/04/16(月) 12:16
>四万十社
その当て字、ワロタ。
543デフォルトの名無しさん:2001/04/16(月) 12:43
そう、Aらいさんのこと。

だけど、マーケって技術色とはまた毛色の違う事でそ。
JAVAとかWindowsの詳細を知らなくても販売戦略は
寝る事ができるよ。練れなきゃマーケとして氏に鯛でし。
少なくともシェルの事あそこまでしってるマーケの人なんて
この世の中のどの会社を探しても見当たらないだろね。
人材登用の間違った方向性。

マーケの人間は情報として開発ツールの内容をしってれば
いい事であって、実際に使ってしかも
使いこなしている人間をマーケにする必要ないでそ。

そのあたり、Borland適材適所とは程遠いんだわ。

営業/マーケのプロを外部から入れるべきだね。
技術によりすぎて、いっつもマーケこけてるのは
周知のとほり。

>上司がO野さんだからな。いいんじゃないの?
で、上司が○野さんだからという理由で
Borland製品が売れるのなら企業としていいんだけどね。(w

四万十は製品もマーケもクズぞろいだっただけかもね。
544デフォルトの名無しさん:2001/04/16(月) 13:54
>>543 (文体を無理に変えると読みづらいぞ)
元々その程度の人だったんじゃないの?
本書いたからって、その人の能力と同義では無いよ。
545デフォルトの名無しさん:2001/04/16(月) 14:17
なるほど、本人がマーケ希望という可能性もありますね。

ところでBorland開発チームの内情って
どんなのでしょうか?

確かJBの開発には日系か中国系の人が参加していたと
記憶しているのだけど。
546デフォルトの名無しさん:2001/04/17(火) 03:55
>>545
各 IDE の Easter Egg に日本人風の名前がいくつでてくるか数えてごらん。
JBuilder は顔写真まで入っているからわかりやすいかな。

547デフォルトの名無しさん:2001/04/17(火) 11:09
各 IDE の Easter Egg
の堕し方がわかりません
548デフォルトの名無しさん:2001/04/17(火) 22:18
もしかして、BCB44ProにはHTTPEncode(というかHTTPApp)が無いのでしょうか?
もしかして、素直にこの前バージョンアップすべきだったのでしょうか?
549デフォルトの名無しさん:2001/04/17(火) 23:39
服部誠の『Borland C++Builder 4 オフィシャルコースウェア基礎編』
を持ってる方、感想教えて下さい。
550デフォルトの名無しさん:2001/04/17(火) 23:46
>>549
持ってません
551デフォルトの名無しさん:2001/04/18(水) 01:05
>>548
それは俺も気になってた。
ヘルプとか見たらHttpAppとか平気で出てくるのに
なんで使えないんだ〜って。
BCB5 PROにはあるの?
552デフォルトの名無しさん:2001/04/18(水) 01:14
>>547
バージョン情報でALT+'T','E','A','M'
553デフォルトの名無しさん:2001/04/18(水) 01:25
"TEAM"以外でも"DEVELOPERS"ってのもあった。
他にもあるかもしれんからALTで音がしないキーを
拾っていってみそ。
554デフォルトの名無しさん:2001/04/18(水) 01:30
>>553
スクロールが早くて目で追いきれない(じじい)。
目視では、TEAMが5人くらい、DEVELOPERSでは一人
確認できた。明らかに日本人ぽい名前だけね。
555デフォルトの名無しさん:2001/04/18(水) 02:06
日本法人からの出向かもしれんし日系人かも知れん。
他には中国人らしい名前もある。
556デフォルトの名無しさん:2001/04/18(水) 09:30
O野さんの名前がでるのもあるね。
Aらいはいないぞ
557デフォルトの名無しさん:2001/04/18(水) 11:14
くそ初心者です。
VC++用のDLLをBCBで使いたいのですが、DLL使うのが初めてでよくわかりません・・・。
h,lib,dllが手元にあるのですが

implibでDLLからBCB用のlibを作成してプロジェクトに追加
ヘッダをインクルード

これで良いのでしょうか。
>[リンカ エラー] 外部シンボル 〜 が未解決
になってしまって・・・。
558デフォルトの名無しさん:2001/04/18(水) 15:35
マングル(名前変形)の問題ですな。

impdef -> 中身をエディタで確認、訂正 -> implib
あるいは、
*.libファイルをCOFF2OMFで一発で通る事もあるかも知れん。
559デフォルトの名無しさん:2001/04/18(水) 18:41
>>553
まとめてほしいなあ。俺の関わるマシン、音の出ないのばかりなのさ。
560557:2001/04/18(水) 19:16
558さま
名前の解決って、シンボルの先頭にアンダースコアとかいうあれでしょうか?
defの中身を観察しましたが、ちょっと素人にはわかりませんでした。(汗

dllのソースから、BCB向けに再構築するという手もあるのですが・・・。
561デフォルトの名無しさん:2001/04/19(木) 02:29
マングルされた名前 = されてない名前 @序数
か、
マングルされてない名前 = された名前 @序数

のどちらかだったと思う。埋めこみSQLでORACLEと
通信する時VCのインポートライブラリしか用意されてなくて、
(MSに対抗しているくせに気遣いないよね。ORACLEって。)
こうしてうまくいった覚えがある。
562デフォルトの名無しさん:2001/04/20(金) 13:41
ありがとうございます。ちょっと勉強してトライしてみます。
563デフォルトの名無しさん:2001/04/22(日) 21:04
ゲームで60fps出そうと思ったら、やはりDirectXを使わないといけないのでしょうか?
TPaintBoxを置いて、そこにTBitmapに描いた内容を転送してみたのですが、
ただ転送するだけで50fps位しか出ないので…
564デフォルトの名無しさん:2001/04/23(月) 10:50
マングル返し。
565デフォルトの名無しさん:2001/04/23(月) 12:15
>>563
どの環境の何をやらせた上で60fpsかによるだろ
そういうことすら説明できない人間は何をやっても駄目
566デフォルトの名無しさん:2001/04/23(月) 15:07
自作ハード向けにUDPのパケットを送受信したいのですが
TCPのように簡単に実現する方法はありませんか?

socket,connect,fprintf,fflushとかセコセコやるしかないでしょうか。
567デフォルトの名無しさん:2001/04/23(月) 17:54
>>563
VC/Builder関係無しにカードによっては60fpsでないぞー。
fpsでケース分けすべし。
568デフォルトの名無しさん:2001/04/23(月) 17:55
>>566
UDPにfprintf,fflushはねぇだろよ。
逆にsendto,recvfromならflush考えることないし。
569563:2001/04/23(月) 20:58
すいません、情報が少なすぎました。

環境はWin2000/PentiumIII866MHz/RAM256MB/G400 32MBです。

Application->OnIdleをループとして使っています。

TBitmap *screenBitmap, *backBitmapがあって、backBitmapにはあらかじめ画像を読み込んでおき、
それを毎フレームscreenBitmap->Assign(backBitmap)して
screenBitmapからTPaintBoxにBitBltしています。
(ただbackBitmapの絵を表示するだけのプログラムです)
絵の大きさは640x480です。
570名無し:2001/04/24(火) 17:45
ListViewでSubItemsに代入した値を参照するにはどうすれば良いのでしょうか?
571ぷもぉ:2001/04/24(火) 18:18
CListCtrl& list=GetListCtrl();
int i = list.GetNextItem(-1, LVNI_SELECTED);
if (i >= 0) {
a1 = list.GetItemText(i, 0);
a2 = list.GetItemText(i, 1);
...
}

つうのはだめ?
572ぷもぉ:2001/04/24(火) 19:18
あ、VCだったよ、ごめんまちがえた
573Dax:2001/04/24(火) 20:46
>>570
ShowMessage(ListView1->Selected->SubItems->Strings[0]);
こう?
574570の名無し:2001/04/24(火) 23:59
>>571-572
ありがと。処理系が違うと全然サッパリですねえ。

>>573
ヒントを頂きましてありがとうございました。
Stringsというのがキモだったんですねえ。
リストの最初の項目のSubItemを参照するのに
ListView1->Items->Item[0]->SubItems->Strings[0]
でうまく行きました。
575デフォルトの名無しさん:2001/04/27(金) 13:44
今まで C++Builderで
typedef void CALLBACK ( * proc ) ( int arg ) ;

と書いてOKだったのに これをVC++で使うとするとエラーになる

どうやら
typedef void ( CALLBACK * proc ) ( int arg ) ;

と書かなければVC++では受け付けないらしい。鬱だ・・
576デフォルトの名無しさん:2001/05/01(火) 03:54
DLLの作り方、使い方を教えてください。
577デフォルトの名無しさん:2001/05/01(火) 07:04
>576
マニュアルの何処がわからないのですか?

578デフォルトの名無しさん:2001/05/02(水) 04:00
age
579Visor:2001/05/04(金) 02:35
もしご存知でしたらぜひお知恵をお借りしたいのですが.
.。
新参者で初心者です。BCB5のアプリケーションで、

・茶筅
http://chasen.aist-nara.ac.jp/index.html.ja

・KAKASI
http://kakasi.namazu.org/

のWin32版に付属するchasen.dllやlibkakasi.dllを使いたいのですが、
外部シンボルが未解決などのエラーでコンパイルがうまく通ってくれません。
このDLLはBCBでは使えないのでしょうか?
580デフォルトの名無しさん:2001/05/04(金) 02:37
Loadlibraryしてんの?>579
581Visor:2001/05/04(金) 02:49
レスありがとうございます>580さん

LoadLibraryというのは、「プロジェクトに追加」でchasen.libを追加することと考えてよろしいでしょうか。それは行っています。最初、それではエラーだったので、implibでlibファイルを作り直しました。
#include "chadll.h"
も入れています。
582デフォルトの名無しさん:2001/05/04(金) 03:32
リンクしてないだけだと思われ
583Visor:2001/05/04(金) 08:13

HINSTANCE chasenDLL = LoadLibrary("chasen.dll");
でライブラリをロードして、
char *myanalyze = (char *)GetProcAddress(chasenDLL,"analyze");
で関数analyzeを取り出していますが、
analyze()を実際に使うとシンボルの未解決エラーでコンパイルできません。
DLLを使うのはほとんどはじめてでどうもうまくいきません。
584デフォルトの名無しさん:2001/05/04(金) 11:48
DLLを使う以前に、関数のポインタが分かっていない。
つまりC++Builderを使う前に、Cの基本をやり直せということだ。
585デフォルトの名無しさん:2001/05/09(水) 17:38
BCBで正規表現使う方法はいくつかあるみたいなんだけど(オレは標準でついてたregexしか使ったことない)
一番使いやすいのはどれなんでしょう?

ちなみに
・AnsiStringやstd::string中心で使えると非常に良い
・全角使うつもりはないんで半角のみ使用可能の物でも良い
と考えてます。
586デフォルトの名無しさん:2001/05/10(木) 09:11
a*b/2^32; を計算させたくて

LONG MulH32(LONG a, LONG b)
{
union {LONGLONG ll;LONG l[2];} r;
  r.ll=Int32x32To64(a, b);
  return r.l[1];
}

てな感じを思いついたけど、これってWindowsAPIなんだよね?
いちいちAPI呼ぶのも遅そうだし、なんか方法ない?
587586:2001/05/10(木) 09:25
>>585
http://homepage1.nifty.com/bmonkey/delphi/delphi.html
このコンポーネントはdelphiソースがついてるから、builderでも使えると思う
588デフォルトの名無しさん:2001/05/10(木) 14:00
>>587
BmRegExpって奴ですな。俺もアレに一票。
589586:2001/05/10(木) 16:19
Delphi Unitが呼べるから、Delphiで インラインアセンブラ呼べばいいと思って
これを見つけました。
http://www.infoeddy.ne.jp/~tensyo/prog/linealgo.htm

function Int32x32To64(X, Y: Integer): int64;
asm
 MOV EAX,X {register呼び出し規約の場合はXはEAXなのでホントは不要}
 IMUL Y
end;

が、 LONG MulH32(LONG a, LONG b) はどう書けばいいの?
 というか IMULの結果の上位ってどこにあるの?
590586:2001/05/10(木) 16:54
あ、なんだ EDX に入るみたいだ。

 MOV EAX,EDX

で解決した
591デフォルトの名無しさん:2001/05/10(木) 18:01
関数テーブルを使いたくて

//定義
void __fastcall (TForm1::*(func_list[]))() = {
 TForm1::Func1,
 TForm1::Func2,
};

//呼出し個所
 func_list[変数]();

としてるのですが、

E2314 Call of nonfunction  コンパイラエラー
-------------------------------------------------
関数でないものを呼び出している

呼び出されている名前は,関数として宣言されていません。
一般的には,関数の宣言に誤りがあるか,関数名のスペルが間違っているのが原因です。

と怒られてしまいます。
多分C++を知らない厨房的質問だとは思うのですが、
どなたか解決策をご存知でしたらご教授ください。
592586:2001/05/10(木) 19:10
__closure を使うのではないでしょうか?

Delphiのメソッドポインタです
593591:2001/05/10(木) 19:26
>>591
ありがとうございます。
ちょっと調べてやってみたんだけど、上手くいかなかったんで、これから調査します。

グローバル関数のポインタテーブル自体はコンパイル通るんで、
メンバ関数への参照の問題の気がするんですが・・・。
594586:2001/05/10(木) 19:48
いや、そのコードじゃ通らないと思います。 オブジェクトを参照していませんから
595586:2001/05/10(木) 19:51
こんなふうなコードにする必要があるんじゃないでしょうか?

void __fastcall (__closure *(func_list[]))() = {
 Form1.Func1,
 Form1.Func2,
};
596586:2001/05/10(木) 20:07
もし >>591のように使いなら、

TMethod 型のポインタを作って Code フィールドにこのポインタを代入して
 DataフィールドにはForm1を代入して、

これを __closure を使って作った メソッドポインタ型に型変換してから呼び出さ
なければならない筈です
597デフォルトの名無しさん:2001/05/10(木) 20:41
標準C++で解決したいなら、
メンバー関数から:
 (this->*func_list[変数])();
外から
 (Form1->*func_list[変数])();

メンバ関数へのポインタは、オブジェクトの実体がないと呼び出せない。
__closureはthisも併せて持っているので、this経由で呼べる。
その分、インスタンス無しで静的に登録しておく事はできない。
メンバ関数へのポインタを使う場合は、実行時にサブクラスのインスタンス経由で
呼び出す事もできる。・・が、使う事はほとんどないはず。
598591:2001/05/10(木) 20:50
ありがとうございます。
>>597さんの方法でできたんですが、理由がサパーリです。勉強不足ですね・・・。
作りながら勉強します。
599デフォルトの名無しさん:2001/05/10(木) 20:53
関数ポインタテーブルを使いたい場合、
ほぼ確実に設計が間違ってます。
仮想関数を使いましょう。
600591:2001/05/10(木) 21:06
ギャー、また知らない単語が出てきた。
ざっと調べたカンジ、基本クラスで派生クラスのメンバ関数を使うことらしいですが、
速度を稼ぎたいんでswitchの代わりに使おうと思ってるんですが、なんか間違ってます?
つーか、クラスの継承なんてしていないというか分からないんで使えないんですが。
速さがほしけりゃ他のツール使えっつー突っ込みは無しの方向で、どうかひとつ。
601デフォルトの名無しさん:2001/05/10(木) 21:17
>>600
ほぼ間違いなく、キミが実装した関数ポインタテーブルより、
継承して仮想関数を使ったほうが速いだろう。

ところでどういうことに使いたいの?
602デフォルトの名無しさん:2001/05/10(木) 21:20
>>600
そうそう、関数テーブルをswitchの代わりに使って高速化という考えは間違ってない。
でもだね、C++の仮想関数は、まさしくそれをやるための仕組みなのだよ。
603591:2001/05/10(木) 21:30
>>601
趣味ゲー作ってて、主ステータスと副ステータスでswitchしてたら、
1関数が1000ライン超えて無駄な処理もバリバリ入り始めたんで、
ヤバイと思ってやり直すことにしました。
簡単なノベルゲーの積もりだったからそんなに量も逝かねぇだろうとか思ってたんだけど、
やり始めると色々欲が出てきてあれもこれもとなって……。

>>602
ありゃ、遭難ですか。
じゃあやっぱり、ちょっと止まって勉強することにします。
クラスの基本から。
604デフォルトの名無しさん:2001/05/11(金) 13:14
「リファクタリング」読みましょう。サブクラス化でswitch文を
なくす方法が書いてあります。例はJavaですけどね。
605デフォルトの名無しさん:2001/05/11(金) 17:09
まず状態遷移を明確に文書化するべきでは?
606591:2001/05/11(金) 17:45
>>604
探してみます。ありがとう。
でも、ちょっと高いですね・・・。

>>605
それも始めは要らないと思ってたんだけど、必要に気づいて書いてる途中です。
クソExcelで書いてるんで、効率悪いですが。
607604:2001/05/11(金) 19:56
>でも、ちょっと高いですね・・・。

高いですが、買う価値のある本です。とりあえず該当の場所を
立ち読みしてみては?
608デフォルトの名無しさん:2001/05/11(金) 21:31
ListViewについて質問です。
プロパティで変えているところは
RowSelectをtrue
ViewStyleをvsReportです。

やりたいことは、マウスボタンを押して選択したら、選択行の背景に色を塗って
マウスボタンを離したら元の背景色に戻したい。

選択行に色を塗るのはクリックしたら青色が自動でつくので解決。
元の背景色に戻すのはOnMouseUpイベントで
ListView->Selected = NULL; にしたら色は元に戻りました。
が、選択行を囲ってある破線が消えません。
この破線の消したを教えてください。
609デフォルトの名無しさん:2001/05/11(金) 21:55
>>608

はいよ。
ListView1->ItemFocused = NULL;
ListView1->Selected = NULL;

でもこの動作って、ウィンドウズの規則に反してないか?
610609:2001/05/11(金) 21:59
蛇足かもしれないけど補足。
Selectedは選択状態のマークがつけられているアイテム、
ItemFocusedはキーボードで動かすカーソルのこと。
フォーカスを移動して、選択するわけね。
611608:2001/05/11(金) 22:38
おぉ…もうレスが。

>>609
できましたー。
ありがとうございます。

でもWindowsの規則に違反ですか(汗


>>610
ためになりました。
612デフォルトの名無しさん:2001/05/12(土) 12:05
Delphiで
  with Sender as TCheckBox do if .State=XX then YY; は
C++ Builder でどう書けばいいの?


if( ((TCheckBox * ) Sender )->State == XX) YY;

はなんかマズイような感じ
613デフォルトの名無しさん:2001/05/12(土) 13:24
Delphi/Pascalはわからんけど…

if (static_cast<TCheckBox *>(Sender)->State == XX) YY;
ということ?
614デフォルトの名無しさん:2001/05/12(土) 14:35
ifstream infile;
string str;
infile.open(FILNEAME);
if ( infile.fail() )
 return false;
getline(in, str);

というような処理の関数を含む dll を作成して動かすと
getline() の部分で氏んでしまいます。
どういうわけか dll にしないと大丈夫なのですが……

仕方ないので string.cc の getline() をコピペしてきて
 std::ifstream & getline2(std::ifstream & in, std::string & str, const char dlm);
というようにして代用しています(これなら動く)。

同じような現象が発生する方いらっしゃいませんか? うちだけかなあ…
ちなみに環境は BCC5.5.1, WIN98 です。
615612:2001/05/12(土) 14:43
>>613 ありがとうございます
ヘルプコピペ
>ObjectRef as ClassRef ObjectRef はオブジェクト参照で,ClassRef はクラス参照です。
  結果の値は ObjectRef と同じオブジェクトへの参照ですが,ClassRef によって与えられる型です。
  実行時に評価する場合,ObjectRef は nil,ClassRef によって示されるクラスのインスタンス,
  ClassRef によって示されるクラスから派生したクラスのインスタンスのいずれかでなければなりません。
 いずれの条件も True でなければ,例外が生成されます。

という事で例外が出る事から考えて
if (dynamic_cast<TCheckBox *>(Sender)->State == XX) YY;
でいいのかな?
616デフォルトの名無しさん:2001/05/12(土) 18:30
TLabel(foo) とかは dynamic_cast<TLabel *>(foo) に置き換えられますよ。
出来ない時はコンパイラから起こられるから。
それにしても長いよね…。
617613:2001/05/12(土) 18:54
>>615
おお、例外が出るのか。
ならちょっと違う。
dynamic_castで例外が出るのは参照のときだけだ。
ポインタ変換だと、NULLになるだけなのでやばい。
static_castならコンパイルエラーが出るからいいと思うんだけど、
例外を送出して欲しいなら、こう書くしかないな。

if (dynamic_cast<TCheckBox &>(*Sender).State == XX) YY;

>>616
コピーコンストラクタだと、スライシングが発生しないかい?
dynamic_castと等価なの?
618デフォルトの名無しさん:2001/05/12(土) 18:56
てゆーか、SenderがTCheckBox *である事が確実な場合、
例えば、TCheckBoxのイベントでしか呼ばれない場合は、
static_castでもCスタイルのキャスト(>>612の形)でもいいんでないの?
推奨はされないだろうけど。
619616:2001/05/12(土) 20:01
>>617
> static_castならコンパイルエラーが出るからいいと思うんだけど、

これってコンパイル時に変換可能かどうかわかるってことですか?
文法違反ではなくて、dynamic_castで0を返すような場合にってことです。

>>618
そこんところはわかりません。ごめんなさい。今の所dynamic_castだけで
事足りているので、static_cast等を使ってません。
620デフォルトの名無しさん:2001/05/12(土) 20:43
ちょっと質問。
TLabel(foo)ってのは、
文法的にはtype(varname)の形だよね?

delphiの文法知らんけど、例えば
class TMyClass: public TComponent {
 int Parent;
};
TMyClass *myclass;
なんて場合に、TComponent.Parentにアクセスするために
del: TComponent(myclass).Parent
C++: myclass->TComponent::Parent
と思うんだけど、こういう時って例外出る可能性はあるの?
っていうか、TMyClassがTComponentから派生していなくても
問題なく使えるのかって事なんだけど。

俺はてっきり、ダウンキャスト(例外送出)はas、ダウンキャストの可否はis
(C++ではそれぞれ参照のdynamic_castとポインタのdynamic_cast)で、
type(varname)の形式は、暗黙の型変換が可能な場合(含アップ?キャスト)と
組み込み型の変換(Integer('A')やPChar('ABC')みたいなイメージ)であり、
C++ならstatic_cast(又は暗黙の型変換)に相当すると思ってた。

もしかして、typeとvarname(の静的な型)によって
コンパイラが型変換/アップキャスト/ダウンキャスト(例外付)を
使い分けているのかな?
621デフォルトの名無しさん:2001/05/12(土) 22:05
>っていうか、TMyClassがTComponentから派生していなくても
>問題なく使えるのかって事なんだけど。

使える。けど TComponent(myclass).Parent はコンパイル通らない。
TComponentクラスにParentなんてないから。
622デフォルトの名無しさん:2001/05/12(土) 23:08
サンクス。
Parentは失礼。(当たり前だけど)TControlだった。

で、派生していなくても使えるってことは、やっぱり>>616ではなく、
static_castに相当するんじゃないかなぁ。
実際、Tag(DWORD型)はともかく、Data(Pointer型)とのやりとりは
それなりに使われていると思うし。
継承関係がある場合のみ、dynamic_cast相当として扱うってのも考えられるけど
構文やコンパイラの例外コード生成を複雑にする(と思う)から
delphiで採用されているとは考えにくい(実際の事は知らない)。

で、俺の結論(推測)。
 Sender as TLabel == &dynamic_cast<TLable &>(*Sender)  例外送出あり
 Sender is TLabel == (dynamic_cast<TLabel *>(Sender) != NULL)
 TLabel(Sender)  == static_cast<TLabel *>(Sender) 又は (TLabel *)Sender
TLabel(Sender)はRTTIを参照しないstaticなキャストだと思う・・・俺は。
623622:2001/05/12(土) 23:14
あ、だから、
 Sender as xxxとしたかった場所ではdynamic_castを使い、
 xxx(Sender)としたかった場所ではstatic_castの方がふさわしいんじゃないの?
が言いたかっただけね。
624616:2001/05/12(土) 23:19
>>623
勉強になりました。キャストする場面や用途に応じて使い分けろ、
ということですね。

これからはstatic_castも使うようにします。
625名無しさん:2001/05/12(土) 23:27
age
626名無しさん:2001/05/12(土) 23:28
age
627名無しさん:2001/05/12(土) 23:28
age
628デフォルトの名無しさん:2001/05/14(月) 16:00
はじめまして、初心者です。
ASPにhttpでパラメータを渡してDB検索し、表を表示する処理をC++に移植しようとしております。

C++Builder5でInternetページのQueryTableProducerコンポーネントを使用すればASPのRequest.QueryStringと同じような働きが出来るようなのですが、ヘルプを参照しても実際の使い方が分かりません。何か参考になるサンプルソースか、情報があるページなど在りましたら教えていただけないでしょうか。よろしくお願い致します。
629デフォルトの名無しさん:2001/05/15(火) 12:32
うーん、ないだろうなあ。

いい機能があってもメジャーなものじゃないと
使い方がわからないというのは
かなりつらい。
630デフォルトの名無しさん:2001/05/15(火) 13:18
Delphiのソースも読めるならここ。(Delphi3のときの物だから若干違うかも)
http://homepage2.nifty.com/boheme/delphi/techdoc/dad0060.html
631628:2001/05/15(火) 15:37
Delphiのソースも読めませんけどそれでも滅茶苦茶助かってます。どうもありがとうございます>630
632デフォルトの名無しさん:2001/05/15(火) 16:10
ちょっと前にVC++かったばっかなんですけど
箱に入ってた、VC++以外のCDって何に使うんでしょうか?
ちなみにProfessional Editionです
633デフォルトの名無しさん:2001/05/15(火) 17:15
>>632
ください。
634628:2001/05/15(火) 18:24
630さんに教えてもらったページにあるDelphiコードを以下の様に書き換えて、makeも出来たのですが、httpに引数つけてアクセスしてもテキストが表示されません。PathInfo等プロパティは確認しております。dllを機能させるための条件とかってあるのでしょうか。ご教授願いたく。

TWebModule1 *WebModule1;
//---------------------------------------------------------------------------
__fastcall TWebModule1::TWebModule1(TComponent* Owner)
: TWebModule(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TWebModule1::WebModule1WebActionItem1Action(
TObject *Sender, TWebRequest *Request, TWebResponse *Response,
bool &Handled)
{
AnsiString strContent;
AnsiString strHtml1 = "<HTML><HEAD><TITLE>RESPONSE</TITLE></HEAD><BODY><FONT SIZE=\"+5\">";
AnsiString strHtml2 = "</FONT></BODY></HTML>";
//リクエストの解析
// PASCALの場合
if (Request->QueryFields->Values["NAME"]== "PASCAL" ) {
strContent = strHtml1 + "Delphi!" + strHtml2;
}
// C++の場合
else if ((Request->QueryFields->Values["NAME"]) == "CPP" ) {
strContent = strHtml1 + "C++Builder!" + strHtml2;
}
// JAVAの場合
else if ((Request->QueryFields->Values["NAME"]) == "JAVA" ) {
strContent = strHtml1 + "JBuilder!" + strHtml2;
}
//レスポンス
Response->Content = strContent;
}
635デフォルトの名無しさん:2001/05/15(火) 19:46
IISの実行権限のあるフォルダにマップしてる?
636デフォルトの名無しさん:2001/05/16(水) 02:42
Win98+BCB3でファイルのコピーを含むプログラムを標準ライブラリ系の
関数で作っていたら、対象ファイルのサイズが4GB近くて
うまく動きませんでした(引数が32ビット符号付整数のため)。
VCL系のファイル操作関数はまだ試していません。

最近のUNIX系やVCでは_lseeki64()とか_lseek64()などの
関数があるようですが、BCB5ではどうでしょうか?
あとVCL系のファイル操作関数は対応してますでしょうか。
637628:2001/05/16(水) 10:59
NTのadminiが不在でPWSで実行権限つけてやってみたら、ページとしては開きましたが、テキスト生成はできていませんでした。PWSだからダメなのでしょうか?
638630:2001/05/16(水) 11:18
当方もNTのPeerWebServerを使ってます。
フォルダの[読取][実行]は共にONです。

IUSR_<computer name>匿名ログオンの指定もしてます。
(ヘルプ参照)
[匿名を許可][クリアテキスト]も共にON

URLはローカルディレクトリを指定するのではなく、
http://computername/Scripts/hoge.dll
の様に仮想ディレクトリのエイリアスで指定して下さい。
(呼びだし側のHTMLコンテンツも同じ。)

DLLを置換える時はWEBサービスを一旦停止する事を
お忘れなく。
639628:2001/05/16(水) 17:34
お蔭様で第1段階(WebModule1WebActionItem1Action)のバージョン動きました。
有難うございます。>630

が、次のPageProducerコンポーネントを使用したバージョンでコンパイルエラーが出てしまいました。
WebModule1WebActionItem1ActionでPageProducer1HTMLTagの内容を代入しているだけなのですが・・・。

Response->Content = PageProducer1->Content;

が"E2235 メンバー関数は呼び出すかそのアドレスをとらなければならない"というエラーになってしまいます。初歩的な質問を繰り返し申し訳ありません。質問が不適切・板違いであればご指摘頂きたく。
640630:2001/05/16(水) 18:47
変ですねえ・・・AnsiString型同士でoperator=を呼び出すから
コピーが行われるはずなんだけど・・・
変数に一旦代入してみては?
641608:2001/05/17(木) 00:06
またListViewについて質問です。
ViewStyleをvsReportに変えています。

列ごとに背景の色を変えたいのです。
On〜Drawイベントを使うのでしょうけれど、やり方がわかりません。
教えてくださいm(__)m
642デフォルトの名無しさん:2001/05/17(木) 00:31
>>641
TCustomListViewから派生して、自分で全部描画するように
するしかないんじゃないかなぁ。
643628:2001/05/17(木) 09:35
申し訳ありません。やっぱりあほな間違いでした。
Response->Content = PageProducer1->Content();
最後に"()"を入れていませんでした。Javaと同じだったんですね。C++は初めてで分かりませんでした。
愚問申し訳ありません。>630さん
644630:2001/05/17(木) 09:54
ああ、なるほど、TPageProducer側のContentはプロパティ
じゃなくてメソッドでTWebResponse側はプロパティ
なのね。(ややこし)
普段Delphi使ってると引数不要のメソッドは括弧付けないん
で気が付かんかった。

っていうかメッセージ変えて欲しい。
「〜または関数呼出しの括弧がありません。」

しかしDBとかやるならDelphiのほうが有利な気がするけど
何故BCB選らんだの?周りにC++に詳しい人がいるなら別だけど。
645608:2001/05/17(木) 20:38
>>642
レスどうも〜
でも全部描画となると、へっぽこなわたしじゃできそうにない(汗
646作るの3回目:2001/05/18(金) 17:56
動的な配列のコンポーネント(ボタン)を,ある関数の中で下の様に作った
んですけど,
これらに対するイベント関数(OnClick)ってどうやって書くんでしょうか?
たとえば,ボタンPochi[4]のOnClickイベントを作るには?
一般化して,ボタンPochi[i]のOnClickイベントを作るには?

for (int j=0;j<=10;j++) {
Pochi[j]=new TButton(Form1);
Pochi[j]->Top=(j%5)*30;
Pochi[j]->Left=(j/5)*30;
Pochi[j]->Width=25;
Pochi[j]->Height=25;
Pochi[j]->Parent=Form1;
}

(別途,ヘッダファイルにてTButton *Pochi[70];)
647デフォルトの名無しさん:2001/05/18(金) 22:04
>>646
Pochi[j]->OnClick = foo;
648デフォルトの名無しさん:2001/05/18(金) 22:37
IShellLink *aaaa ;
と宣言すると、未定義のシンボルと言われちゃいます。
何をincludeすればいいんですか?
649648:2001/05/18(金) 22:45
Ver4だと
#include "ShlObj.h"
でできるんだけど、
Ver5だと怒られます。 どうして??
650648:2001/05/18(金) 23:04
Borlandのサイトで調べたら…Ver5のバグでした。
コンパイルオプションにNO_WIN32_LEAN_AND_MEAN
を追加することで回避できました。
あー、ひどい目にあった。
651名無しさん:2001/05/19(土) 00:17
age
652名無しさん:2001/05/19(土) 00:17
age
653名無しさん:2001/05/19(土) 00:17
age
654名無しさん:2001/05/19(土) 00:18
age
655名無しさん:2001/05/19(土) 00:18
age
656作るの3回目 :2001/05/19(土) 18:53
>>647

なるほどわかりました。
一緒に書くべきだったことに今気づきましたが,
押されたボタンのプロパティには,どうやってアクセスするんでしょうか?
たとえば,イメージ的には,関数foo内で,

Pochi[i]->Caption=StrToInt(i);

みたいなことをする場合(要は,押されたボタンのCaptionに文字を書き込む)。
657デフォルトの名無しさん:2001/05/19(土) 19:23
引数のオブジェクトが押されたボタンちゃうん?
658デフォルトの名無しさん:2001/05/19(土) 22:02
void __fastcall TMyForm::FormCreate(TObject *Sender)
{
 for (int j=0;j<=10;j++) {
  m_pPochi[j]=new TButton(Form1);
  m_pPochi[j]->Top=(j%5)*30;
  m_pPochi[j]->Left=(j/5)*30;
  m_pPochi[j]->Width=25;
  m_pPochi[j]->Height=25;
  m_pPochi[j]->Tag = j;
  m_pPochi[j]->Parent=Form1;
  m_pPochi[j]->OnClick = TMyForm::PochiButtonClick;
 }
}

void __fastcall TMyForm::PochiButtonClick(TObject *Sender)
{
 TButton *p = dynamic_cast<TButton *>(Sender);
 if (p)
  p->Caption = StrToInt(p->Tag);
}
659デフォルトの名無しさん:2001/05/21(月) 06:50
どうでもいいけど、DirectoryExists()がパッケージなしでリンクできないのは
なぜ?
660デフォルトの名無しさん:2001/05/21(月) 23:46
? できるよ? >>659
661wai:2001/05/22(火) 03:16
RichEdit上で表示中の単語文字列の間に線をひいたり、ネットワーク図みたいな自由に描画したいんだけれども、RicheditにはCanvasがなくて、どうしたものやらと困っています。どうかご存知の方お知恵をお授けください。
662デフォルトの名無しさん:2001/05/22(火) 03:50
>>661
RichEdit1->Handle から GetDC したら?
けど,RichEdit の再描画と一緒にリペイントしなきゃいけないから
結構コードが複雑にならないか?
663デフォルトの名無しさん:2001/05/22(火) 04:56
パスカルのソースで、Dsgnintf がないって言われんだけどさぁ、
BCB5からこのユニット、なんで消えてんの?
664デフォルトの名無しさん:2001/05/22(火) 09:37
>>663
内緒♥
665デフォルトの名無しさん:2001/05/22(火) 10:25
>>663 消えては無いと・・・ ToolsAPIにあると思うよ

コンポーネントの設計時に必要なだけのものだからアプリ開発時に入れなくて良いようにという発想なんでしょうね
666デフォルトの名無しさん:2001/05/22(火) 13:36
BCBとはあんまし関係ないけど……。
GIFを読んでBMPに変えるだけのシンプルなツールを作ろうと思ったんだけど、
やっぱし権利関係でまずいですかね?
上手い具合に逃れる方法とかないっすか?
667デフォルトの名無しさん:2001/05/22(火) 13:53
バイナリ暗号化ツールと銘打って、ドキュメントにも何も書かずに
なぜかGIFストリームを流しこむとBMPストリームなって帰ってくる
ようにする。だめか
668デフォルトの名無しさん:2001/05/22(火) 16:24
>>悪魔の数字
Winの機能を使ってBitmapに変換できれば、問題ないんでないの?(というのが最近の解釈の主流だね)
669デフォルトの名無しさん:2001/05/22(火) 16:34
TGifImageつかって、
英語のドキュメント読めませんといってりゃ問題なし

GIfの特許を米UNISYSが所有しているということ
すら"知らなければ"いいんじゃない。
670デフォルトの名無しさん:2001/05/22(火) 17:00
第三十八条 法律を知らなかったとしても、そのことによって、罪を犯す意思がなかったとすることはできない。ただし、情状により、その刑を減軽することができる。
671666:2001/05/22(火) 21:26
Winの機能って、OpenPictureDialogですか?
GIF読めないんですが。
672668じゃないけど・・・:2001/05/23(水) 00:01
IEコンポーネントを使うって事かな?
673デフォルトの名無しさん:2001/05/23(水) 02:32
Lempel氏ね!
674デフォルトの名無しさん:2001/05/23(水) 10:10
IE4のデスクトップ統合して
縮小表示にしたらコモンダイアログでGifの縮小画像が表示される
という話だったと思う。
675(・∀・):2001/05/23(水) 11:08
OleLoadPictureってのがあるね。
このスレの真中らへんに腐ったソースあるよ。
これ使ってbmpに変換できるの確認した。
んぢゃ。

ああそうそう。ちなみにあのソース間違ってる(意味が無い)部分があるんで気を付けたほうが(・∀・)ィィ!よ
具体的には( ´∀`)こんな顔した奴。
676675:2001/05/23(水) 11:14
あれ2重の意味で間違ってるやんそういえば。
monaって変数*そのもの*がいらないからね。
677666:2001/05/23(水) 15:35
BCB4でもおっけーですか?
678675:2001/05/23(水) 16:18
BCB5UP1+Win2kでやりましたー BCB4でどうなるかはしりませーん。
ただアレはC++だけで書かれているから多分大丈夫だとおもいまーす。
聞く前に試しましょう。
679666:2001/05/23(水) 16:45
いや、試したんだけど、OLELoadPictureなんぞ無いといわれたから。
なんかインポートしないといけませんか?
もしくはインクルード。
680675:2001/05/23(水) 17:42
あー、すまん。
olectl.h
だと思う。
681666:2001/05/23(水) 18:19
すまんだなんて、とんでもないです。ありがたい。
とりあえずヘッダはあったのでこれから試してみます。
ところで、これがWin提供のAPIを使うからグレーなんでとぼけてもよさげなヤシですか?
もちろん、自己責任ではありますが。
682デフォルトの名無しさん:2001/05/23(水) 22:12
    ☆ぴかっ
 /)_/)   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,’ー’) < >>681 きさま訴えるぞゴルァ!☆
_( U U)  \____________________
683666:2001/05/24(木) 04:57
許してたもれ
684628:2001/05/24(木) 10:59
>630さん
遅レスでごめんなさい。
もともとC++で組んでたスタンドアローンのアプリをCS化しようとしているので、
開発環境をC++で統一したいそうです。でも開発してるのがC++初心者(経験Java
のみ)の私ではねぇ・・。

で、また質問です。
CGIアプリはやっとサーバーで動くようになりましたが,TQueryコンポーネント
でDBにアクセスしようとすると、Win98(BCB5inst済+PWS)では確認のダイアログ
が出て、動くのですが,NTServer(BCB無し+IIS)ではダイアログが出ず、500
内部サーバーエラーになってしまいます。いずれもODBCで.mdbを開こうとして
おります。DBのIDやPassをダイアログ出る前から設定しておく方法が分かりま
せん。また、NTの方で動かないのはID/Passと無関係かもしれません。

ダイアログを出さないよう設定する方法と、NTの方での問題について教えて頂きたく。
685628:2001/05/24(木) 17:21
自己レス
ダイアログの方はDataBaseコンポーネントを使えば良いと分かりました。
で、NTの方はどうもBDEが入ってないからアクセスできないんでしょうか?
BDEを使ってDBにアクセスしているプログラムをBCBが入っていないマシンで
動かすにはどうすれば良いのでしょうか?ランタイムみたいにして含められる
のでしょうか?
686デフォルトの名無しさん:2001/05/24(木) 17:42
>>685
BDEつかったアプリはBDE環境がないとうごかんです。
インストールシールドで配布するかDelphi6スレ見て
687628:2001/05/25(金) 09:44
うまくいきましたぁ。
どうもありがとうございます>686
688デフォルトの名無しさん:2001/05/26(土) 17:15
あげ おぶ えんぱいあ
689628:2001/05/30(水) 18:18
こんどはVC++で組んだプログラムをC++Builderに移植することになりました。

とりあえずそのままソースを追加してコンパイル掛けてみるとMFC関係
を直さなければいけないということは分かりました。
あと、それ以外で注意することとかありましたらよろしく?
690デフォルトの名無しさん:2001/05/30(水) 21:38
>>689
「?」で終わってるのが
ヤンキーというかドキュソくさいです(ワラ
691デフォルトの名無しさん:2001/05/30(水) 22:06
>>689
逆にレポート希望。
692デフォルトの名無しさん:2001/05/31(木) 09:59
おらいりぃもBCB本出してくれないかなぁ・・・
でるふぁいが擬古猫らしいから、こっちは茂名亜で・・・
693デフォルトの名無しさん:2001/05/31(木) 12:20
>>692
UMLクイックレファでネコすでに使われてる。
http://piza.2ch.net/test/read.cgi?bbs=tech&key=970606624&st=739&to=739&nofirst=true
694デフォルトの名無しさん:2001/05/31(木) 12:25
695デフォルトの名無しさん:2001/05/31(木) 20:59
クリップボードの変更を監視するのはどうすればよいのでしょう。

BCB用の説明がここで見れたのですが、
http://www.bc.wakwak.com/~wmasayoshi/prog/builder/tips/tps0005.htm
696デフォルトの名無しさん:2001/06/01(金) 00:02
コードも解説も書いてあるんじゃん…
697デフォルトの名無しさん:2001/06/01(金) 19:23
>666
http://homepage1.nifty.com/uchi/gif.htm
これはどうかな?
698デフォルトの名無しさん:2001/06/01(金) 20:01
>これ幸いとばかりにユニシスはライセンス料の徴収を徹底して行う方針転換を断行する。それまでは徴収を免れていたGIFフォーマットを扱うフリーソフトに対しても、$5000という法外なライセンス料の支払いを要求してきた。

うそばっかりな板だな。
699デフォルトの名無しさん:2001/06/01(金) 21:30
質問です。 C++Builderの仕事をたくさんしたいのですが、
どうしたら業界標準の開発ツールになってくれるのでしょうか?
700デフォルトの名無しさん:2001/06/01(金) 21:35
>699
VCをたくさん勉強して、MSに入って、VCの開発チームに入って、
これまで以上にたくさんバグを入れる。がんばってね。
701デフォルトの名無しさん:2001/06/01(金) 21:38
>>699
無理でしょう
702デフォルトの名無しさん:2001/06/01(金) 22:56
俺の記憶だと、ユニシスがGIFの使用料を実際に
徴収したとの話は聞いたことがないんだけど、
誰か知っている人がいたらソースおくれ。
703デフォルトの名無しさん:2001/06/01(金) 22:58
>>699
案1 ボーランドがMSに買収される。
案2 MSがC++Builderのパクリ製品を出す。
704デフォルトの名無しさん:2001/06/03(日) 20:15
WIN95で BCB 5Learningを使っております。
静的リンクで実行させると、必ず実行直前に"読み込み違反 EAccessViolation"が出てしまいます。
プロジェクトの再構築をしても同じです。

試しに、BCB起動直後の何も書き込んでない状態で実行させても同じ症状がでます。

よい解決策がありましたら教えてもらえませんでしょうか。
705デフォルトの名無しさん:2001/06/03(日) 21:09
>>704
BCB再インストールしましょう。
それでなおらなければOS再インストール。
かなりの高確率でなおります。
706デフォルトの名無しさん:2001/06/04(月) 08:19
クリップボードの画像をペーストするのに下のコードを記述しましたが、

if(Clipboard()->HasFormat(CF_BITMAP))
Image1->Picture->Bitmap->Assign(Clipboard());

Photoshop5からコピー&ペーストすると
最も下の1ラインが前回コピーされた画像の内容のままペーストされます。
またPaintShopPro5からコピー&ペーストすると
8ビットカラーに減色されてしまういます。
(何れも24ビットカラー画像を扱った場合)
irfanViewやいくつかのフリーウェアでは問題なくコピー&ペーストできるのですが。
ペーストする際に他になにかするべきことがあるのでしょうか?
707デフォルトの名無しさん:2001/06/04(月) 23:20
>>704
BCB4以前のプロジェクトをBCB5に移行すると、そうなることがあるよ。
BCB5の実行ファイルに、BCB4とかのライブラリをリンクしてハマる。
プロジェクトの設定や環境変数なんかで、BCB4以前のものが
混ざっていたら、それを消してからリビルドしてみよう。

>>706
Photoshopを持ってないから適当なことを言うけど、
24bitカラーの問題なら、
Image1->Picture->Bitmap->PixelFormat = pf24bit;
をやってから Assign してみたら?
708デフォルトの名無しさん:2001/06/05(火) 00:38
ども。

プログラムアイコンにファイルをドラッグ&ドロップして
何か処理をさせるようにしたいんです。

ParamCount() と ParamStr() を使って
ドロップしたファイル名を取得するようにしてるんですが、
ドロップする数が多いとエラーになってしまいます。

大量のファイルをドラッグ&ドロップできるようにするには
どうすればいいんでしょうか?
709706:2001/06/05(火) 01:01
>>707
どうもありがとうございます。
いろいろ周ったところ、
問題はCF_DIB形式に指定して読み込めば良いらしいということでした。

VCLのデフォルトではCF_DIBのクリップボードデータを読めないそうなので
RegisterClipboardFormatでCF_DIB形式を追加してやれば良いということです。
そこで厨房ながらに下のようなコードを試してみましたが
未対応の形式であるとして受けつけてくれませんでした。
{
TPicture *clip = new TPicture;
clip->RegisterClipboardFormat(
__classid(TPicture),
CF_DIB,
__classid(Graphics::TBitmap));

clip->Bitmap->LoadFromClipboardFormat(CF_DIB,
Clipboard()->GetAsHandle(CF_DIB),0);
Image1->Picture->Bitmap->Assign(clip);

delete clip;
}
710デフォルトの名無しさん:2001/06/05(火) 02:03
>>708
DragQueryFile()じゃだめですか?
711708:2001/06/05(火) 02:46
>>710
レスありがとうございます。

>DragQueryFile()じゃだめですか?
これってフォーム等に対するドラッグ用のAPIですよね?
私がしたい事は、あくまでプログラムアイコンに対しての
ドラッグ&ドロップなんです・・・。
712706:2001/06/05(火) 09:39
>>711

ドロップされるファイル数には制限があるようですよ。
http://www.din.or.jp/~chiru/qanda/a037.html
713デフォルトの名無しさん:2001/06/05(火) 10:41
ショートカットをドラッグ&ドロップされた時は、ちゃんとターゲットを
開くようにしておくべし、って感じですか?
714デフォルトの名無しさん:2001/06/05(火) 16:31
>>712
それって、WInに依存するもの?
715デフォルトの名無しさん:2001/06/06(水) 08:29
>>709
最近仕事でちっと調べたんだけど、metafileって便利だ。

//メタファイルをクリップボードから読み込み、Pictureへ貼る
TPicture* picture = new TPicture;
TMetafile *metafile = new TMetafile;
metafile->Assign(Clipboard());
picture->Assign( metafile );
delete metafile;
//BMP化して、保存
Graphics::TBitmap* bmp = new Graphics::TBitmap();
bmp->PixelFormat = pf24bit;
//この矩形を広げることで解像度を変えられる
TRect rr = Rect(0,0,picture->Width,picture->Height);
bmp->Width = rr.Right-rr.Left;
bmp->Height = rr.Bottom-rr.Top;
bmp->Canvas->StretchDraw( rr,picture->Graphic );
いろんなソフトからカット&ペーストしてみよう。
716デフォルトの名無しさん:2001/06/15(金) 11:52

ApllicationのOnActivateのイベントハンドラってどうやって記述するのでしょうか?
(アプリケージョンが切り替わった時に呼ばれるやつです。)
オブジェクトインスペクタにはApplicationのイベントハンドラが見つかりません
ヘルプにも、ややこしいイベントハンドラの変更の仕方が書いてあるだけでよく理解できません。

バージョンはBuilder3です。よろしくお願いします。
717turbo type D:2001/06/15(金) 14:32
void __fastcall TForm1::FormShow(TObject *Sender)
{
 Application->OnIdle = ApplicationIdle;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ApplicationIdle(TObject *Sender, bool &Done)
{
 Form1->Caption = Form1->Caption + "x";
}

上のVersionならTApplicationEventコンポーネントが便利。
718デフォルトの名無しさん:2001/06/15(金) 15:02
>>715
Excelで描いた図形がファイルに落せるから便利だよね。
BMPからさらにJPEGに変換して図説をWebに上げる事も出来る。
(解像度はGIFの方がいいんだろうけどアレだしな。)
719715:2001/06/15(金) 15:43
>>718
なるほど。わたしゃCMYK TIFFに落としました。
簡単にDLLにできてExcelのマクロで呼べるですよ。
すなわち印刷クオリティでるということですね。
(実際には絵になるので、印刷には向かない)
720デフォルトの名無しさん:2001/06/15(金) 22:34
ありがとうございます。>>717
どうやらIDEのGUI上では無理なようですね・・・
TApplicationEventを利用しようとおもいます。
721デフォルトの名無しさん:2001/06/16(土) 03:31
>711
こうすればよめるよ。
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
HINSTANCE g_hinst;
//---------------------------------------------------------------------------
USERES("Project1.res");
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
LPSTR lpcmnd; //ここです
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR lpcomm, int)
{ // ↑これです
try
{
Application->Initialize();
hinst = hInstans;
lpcmnd = lpcomm;
Application->Title = "うおりゃ坂田君!";


***** unit1.h

//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
extern LPSTR lpcmnd; // ここらにおいておく

あとは unit1.cppのなかで読めばいい。

bool droped = !AnsiString(lpcmnd).IsEmpty(); // ドロップハンドラが送られたか?
722デフォルトの名無しさん:2001/06/18(月) 02:53
(゚Д゚)ハァ?
723デフォルトの名無しさん:2001/06/19(火) 09:40
テキストファイルに可変長の文字列が複数行あって、
それをAnsiString型に読み込みたいのですが、
fgets()とかを使わずに直接読んで代入できるメソッドってないですか?
つまらない質問かもしれませんがお願いします。
724turbo type D:2001/06/19(火) 10:28
>>723
TStringList->LoadFromFileじゃだめですか?
725723:2001/06/19(火) 11:35
>>724
あ、そうか。そうですね。それで大丈夫です。
ありがとうございます。
アホだなぁ、俺。
726sage:2001/06/19(火) 12:46
>>724
TStringList->LoadFromFile
と書くと非常に分かりやすいですが

正確にはTStrings::LoadFromFileですね。
727デフォルトの名無しさん:2001/06/19(火) 12:53
TStrings *str = new TStringList;
なんで名前が違うんですかね?
728デフォルトの名無しさん:2001/06/19(火) 14:12
typedefじゃなくて?
729デフォルトの名無しさん:2001/06/19(火) 14:37
>TStrings *str = new TStringList;
>なんで名前が違うんですかね?
TStringListの仮想基本クラスがTStringsなんだよ
730726:2001/06/19(火) 14:37
>>727
>>728

-ヘルプより引用-
TStringList は TStrings によって提供される抽象プロパティおよびメソッドを実装し(以下略)
Builderで遊べるようになったらオブジェクト指向プログラミングの勉強をしてみるとよいと思われ。
731turbo type D:2001/06/19(火) 16:01
TStringsは
Memo1->Linesなども共通に扱える抽象クラスですね。

StringListにAddするのも
Memo1->LinesにAddするのも同じ扱いに出来ます。

TStringsが使われてる所は他にも沢山
732turbo type D:2001/06/19(火) 16:01
なぜ、sage進行なの?
733726:2001/06/20(水) 01:32
>>731
Memo1->Linesと書くと分かり易いんですけど、
TMemo::Linesって書くのもいいですよね。

>>732
726がチャチャだったので、、、深い意味はないっす。
つか2chブラウザ萌え&がんばってくださいー
734デフォルトの名無しさん:2001/06/21(木) 10:48
VCLをEXEファイルに埋め込むのはどうやるんですか?
735デフォルトの名無しさん:2001/06/21(木) 10:49
恐らくソースに間違いはないのに

未定義のシンボル Count
未定義の構造体 'TAutoArgs<1>'

というエラーがコンパイル時に出てしまいます。
このソースは依然まではBCB3でコンパイルされていたらしく、
その時は現在のままのソースで通ったようです。
現在はBCB5です。

対策を教えてください。
736デフォルトの名無しさん:2001/06/21(木) 11:03
>>734
>>424じゃダメ?

>>735
ヘッダインクルードしてる?
737735:2001/06/21(木) 11:17
>736
sysvari.hで TautoArgs<1>が未定義だといわれたので

#include <vcl/utilcls.h>

としっかり取り込んであります。

これを追加してコンパイルすると
その取り込んだutilcls.hの中で

未定義のシンボル Count

というエラーが出てしまうのです。

もちろん utilcls.hが 正しく処理されないので
TautoArgs<1>も未定義だというエラーが出ています。
738デフォルトの名無しさん:2001/06/21(木) 12:03
「実行時パッケージを使って構築」をOFF

したらできました。RTEは分かりませんでした。
BCB3です。
739735:2001/06/21(木) 13:12
同じbprをBCB3でコンパイルすると何のエラーも出ませんでした。
BCB3でコンパイル出来て5で出来ないだけのようです。
Googleで検索してみたのですが #include <vcl/utilcls.h>を加えれば
大丈夫だ という情報しか出てきませんでした。
740デフォルトの名無しさん:2001/06/21(木) 14:25
builderがもうバージョンアップされないって本当ですか?
741デフォルトの名無しさん:2001/06/21(木) 16:19
>>740
本当です。(うそ)
Intra Builder
Power Builder
HomePage Builder
742デフォルトの名無しさん:2001/06/21(木) 17:24
今は新OS発売目前だからね。
6.0はだいたい2002年初頭に発売されます。
743デフォルトの名無しさん:2001/06/22(金) 02:03
C++BuilderかDelphiを買おうと思ってるんですが、
C++BuilderはDelphiのC++版と考えちゃっていいんでしょうか?
もしそうだったら、PASCALはやったことないので、
C++Builderにしようと思ってます。
744デフォルトの名無しさん:2001/06/22(金) 02:30
まぁ基本的にはそう思って間違い無いよ
しかもDelphiのコンポーネントも一部利用できたりする

コンパイル速度ではDelphiの圧勝だけど
745デフォルトの名無しさん:2001/06/22(金) 07:40
ただし、肝心のVCLはObjectPascalだから注意ね。
それでBCB買って泣いてた友人を知っている(藁
746735:2001/06/22(金) 10:13
utilcls.h エラーが出てしまいます。

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

template <int Count>
class TAutoArgs : public TAutoArgsBase
{
public:
TAutoArgs();
~TAutoArgs();
TAutoArgs(TAutoArgs& src);

private:
// Allocate an extra Variant. It's the first entry and
// it is reserved for return result. The rest are for parameters
//
VARIANTOBJ m_Array[Count+1];
};
747デフォルトの名無しさん:2001/06/22(金) 10:23
パスカルってどんな言語なんですか?
748デフォルトの名無しさん:2001/06/22(金) 10:27
ウチのBCB4には
TAutoArgs(TAutoArgs& src);
がない。
749735:2001/06/22(金) 11:01
文法的に間違いはないですよね?
何故エラーが出るんでしょう?
750デフォルトの名無しさん:2001/06/22(金) 11:47
>>747
もともとは教育用言語。(BASIC+C言語)/2って感じ。
ObjectPascalはそれにオブジェクト指向しやすい要素を加えたもの。

知識人のつっこみ可。
751デフォルトの名無しさん:2001/06/22(金) 12:41
スターリンが飼ってるアライグマの名前だよ。
752デフォルトの名無しさん:2001/06/22(金) 12:43
>>751
それはアライグマパスカル
753デフォルトの名無しさん:2001/06/22(金) 12:56
状況を無視した単純比較ならBCBがDelphiより優れた部分はC言語のヘッダー使えること位。
754デフォルトの名無しさん:2001/06/22(金) 12:58
なんでコンパイルが速いんですか?
755デフォルトの名無しさん:2001/06/24(日) 01:05
曖昧さの少ない言語仕様だからじゃねーの?
ま、言語の好き嫌いで選べばよし!
756デフォルトの名無しさん:2001/06/24(日) 13:27
>>711
ParamStr()か_argv,_argc使った方が簡単
757turbo type D:2001/06/24(日) 16:05
>>708
でエラー出るって言ってるのに。
758ナナシサソ:2001/06/25(月) 13:27
2バイト文字の混じったAnsiStringの部分文字列を取得したいのですが、
SubStringは2バイト文字には対応していないそうです。
他のクラスに置き換えとかすれば良いのでしょうか?
Stringとかに替えてみましたが、うまく行きませんでした。
解決法ご教授願いたく。
759turbo type D:2001/06/25(月) 15:20
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 WideString wstr = Edit1->Text;
 ShowMessage(wstr.SubString(2,3));

 ShowMessage(((WideString)(Edit1->Text)).SubString(1,2));
}
//---------------------------------------------------------------------------
760ナナシサソ:2001/06/25(月) 15:29
761デフォルトの名無しさん:2001/06/26(火) 15:15
DelphiのソースをBCBのソースにコンバートする
ツールって無いですか?
BCBでコンパイルできないコンポーネントとかを
いじりたいんですけど、手作業だと面倒なんで。
762デフォルトの名無しさん:2001/06/28(木) 16:02
>>742
嘘つくな
763YO:2001/06/28(木) 19:19
あるディレクトリのファイル一覧をTMemoに書き出したいんですが、
最後の一つしか表示されません。
--
struct dirent *ent;
while ((ent = readdir(dir)) != NULL )
{
Memo1->Lines->SetText(ent->d_name);
}
--
SetTextというのが間違ってると思うんですが、どういうのを使えばいいんでしょうか。
764YO:2001/06/28(木) 19:35
Add()でできました。
765デフォルトの名無しさん:2001/06/28(木) 23:27
フォームにコンポーネントぺたぺたはっつけると、
フォームクラスのメンバにはっつけたオブジェクトをポインタで宣言することになりますよね。
その後インスタンスを作ってないのに何でメソッド呼んだりプロパティいじれちゃうのかわかんないです。
766turbo type D:2001/06/28(木) 23:52
自動で作られてる。詳しくはしんない。
767はげ:2001/06/29(金) 00:01
メールクライアントの通信を監視するようなソフトって
どうやって作るのでしょうか?
OutlookExpress等ののメールソフトの定期受信を監視していて、
ヘッダだけ抜き出して表示する、みたいな。
768デフォルトの名無しさん:2001/06/29(金) 05:42
>>762
だってほんとなんだもん。
Delphi6の説明をしにきた某氏が言ってたよ。
769デフォルトの名無しさん:2001/06/29(金) 11:42
742==768 ですか?
770デフォルトの名無しさん:2001/06/29(金) 11:50
== 使うところがプログラマらしいね。
771デフォルトの名無しさん:2001/06/29(金) 12:58
>>767
二通り考えられる
1: TCPの通信のプロキシサーバー
2: パケットモニタ

1は作るのは簡単だけどメールクライアント側の設定を変える必要がある
2はwindumpとかを参考にして下さい。多分かなりめんどくさい。
772YO:2001/06/29(金) 14:15
AnsiStringから*charへの変換はどうすればいいんだい。
773YO:2001/06/29(金) 14:26
AnsiString hoghoge.c_str()でできました。
774デフォルトの名無しさん:2001/06/29(金) 14:32
>>YO
自己解決するのは素晴らしいが、書き込む前に10分だけ調べてみたらどうだ?
775YO:2001/06/29(金) 15:15
>>774
うーん。たまたまなんだけど。書き込む前に1時間ぐらい調べ天だけど、
思わぬところから理解したりするんです。

C++は始めたばっかなんで、理解度が低いからだろうけど、頑張ります。
C++builderをキチンと理解できれば、VC++とかもすんなりいけますか?
776デフォルトの名無しさん:2001/06/29(金) 15:19
C++を理解すればVC++もすんなりとは言わないけどいけるんじゃないかな?
ただ、Builder⇔VCは、C++を介してるだけで、ツールとしては全然別物。
777YO:2001/06/29(金) 17:27
UNIX Cはちょこちょこ触ってたんだけど、(コンソールアプリ)
VCみたいなツールはツール自体の使い方がどうも、敷居が高いです。

C++builderは直感的にわかりやすいので入りやすかったです。
browser関連のを作ってみようと思ったんですが、Lerningエディションだと
ダメみたいですね。残念。
778デフォルトの名無しさん:2001/06/30(土) 01:01
C++Builder5 PRO を使っています。
Windows2000/98にはAlphaBlendっつーAPIが追加されています。
機能はStretchBltのαブレンド対応版です。
これを使おうとしているのですが、うまくいきません。
プロトタイプ宣言がBCBのヘッダにあるのでコンパイルは通るのですが、
リンクエラーで弾かれてしまいます。

BuilderがAPIをどのように呼び出しているのか知らないのですが、
ライブラリかDLLにAPIの実体、あるいはラッパーが含まれていないと
いけないのでしょうか?
それともコールするときに何かおまじないが必要なのでしょうか。
779デフォルトの名無しさん:2001/06/30(土) 01:18
msimg32
780778:2001/06/30(土) 12:54
>>779
どうもありがとう。
781YO:2001/07/03(火) 15:56
ええと、opendir()でディレクトリを開いて、readdir()でディレクトリ内の
一覧をTMemoに出力させているんですが、readdir()は名称のアスキー順に
ファイルを走査するらしく、ディレクトリ,ファイルの並びがきれいになりません。
一度バッファにため込んでソートして出力するしか無いんでしょうか。
782デフォルトの名無しさん:2001/07/03(火) 17:39
>>781
それしか方法ないこともないけどそれでいいんじゃない?
783デフォルトの名無しさん:2001/07/04(水) 10:58
最近良く見かける、CheckBox付きのTreeViewってBCBでは使えないのでしょうか?
784デフォルトの名無しさん:2001/07/04(水) 11:18
使えるんじゃないの?
785turbo type D:2001/07/04(水) 12:51
>>783
探せば?
786デフォルトの名無しさん:2001/07/04(水) 17:45
>>783
スタイルにTVS_CHECKBOXESを追加すれば作れるけど、
標準のコンポーネントでは何故か対応してないね。

しかし、このスレはまともな回答つかなくなったね。
Delphiの方はまだ親切な人多いみたいだけど・・・。
まともな質問ならBCB MLに投げた方がいいよ。
787デフォルトの名無しさん:2001/07/05(木) 12:00
分散しすぎ。Delphi / Kylix だけで3つもスレがあるんだから。
VCL の話はそっちでまとめてもらいたいもんだ。
788turbo type D:2001/07/05(木) 12:56
Borland統一すれがいるかも。
789デフォルトの名無しさん:2001/07/06(金) 12:57
>>788
そこまで統一するのはどうかと思う
それならMicrosoft統一スレ作ってVB、VC、VS.NETを全てブチ込むかい?
790デフォルトの名無しさん:2001/07/09(月) 16:53
επιστημηって人、すごく性格悪そうなんだけど
どうにかならない?

こんな人が雑誌の記事書いているという事は
プログラマ全体の品性が損なわれる気がします。
http://www.kaajapan.jp/cgi-bin/mybbs2.cgi?view=1&LOG=cbpbbslog.txt
791デフォルトの名無しさん:2001/07/09(月) 17:23
>>783
コンポーネントになってないTreeViewのソースならつくったよ。
分離は自分でやってね。フィードバックしてくれるとうれしい。
ってありがたくないか(w
パスカルソースからcppへの変換って意外に簡単にできるよ。
792デフォルトの名無しさん:2001/07/09(月) 17:28
>>791
自動変換ツールつくって!
793はてな:2001/07/09(月) 18:47
サーバーアプリから呼ばれるdllを作成しております。
サーバーアプリのWebModule上で作成したTQuery
オブジェクトは実行時に、ちゃんと実行先のDBを
見に行くのですが、DLLとしてDataModule上に作成
すると、作成時(コンパイル時?)の環境のPassを
拾ってしまい、サーバーで実行すると例外が発生
してしまいます。

TQueryやTDatabase等のコンポーネントが実行先の
サーバーサイドのDBにアクセスするようにするには、
どうすれば宜しいでしょうか。
794デフォルトの名無しさん:2001/07/09(月) 19:56
>>793
接続には何使ってるの?BDE?ADOExp.?IBX?
自APのパスをApplication変数のExeNameから取ってるのなら
DLLではその変数が初期化されないから駄目だね。
Iniファイルか何かに設定持つなどすれば?
795デフォルトの名無しさん:2001/07/09(月) 22:12
そこでεπιστημηに虐められたのか?
プログラマの性格としては普通だろ。
親切な奴なんかいるのか?
796デフォルトの名無しさん:2001/07/10(火) 01:09
>>795
あれで済むならマシな方じゃねぇか?
俺だったら「何言ってんのかさっぱりわかんねぇ。質問の仕方でも勉強
してこいや」でけっ飛ばしてるぞ。
俺も先輩にそうやって鍛えられたしな。
っつーか、仕事ってのはそんなもんだ。
誰もが手取り足取り教えてくれるなんて思ってんのはアマチュア。
797デフォルトの名無しさん:2001/07/10(火) 01:38
>>796
は?仕事?
798ジーコ:2001/07/10(火) 02:04
>795-796
お前らのくだらねえ負け犬哲学を聞きに来てる訳じゃ値園だよ。
799デフォルトの名無しさん:2001/07/10(火) 03:25
>>790
具体的に性格が悪いことがわかる書込みと何で性格悪いのか提示してくれ。
800デフォルトの名無しさん:2001/07/10(火) 09:36
>>799
リンク先くらい読めよ
801799:2001/07/10(火) 12:49
>>800
読んだけどどこが性格悪い書込みなのかわからんかったから。
802はてな:2001/07/10(火) 14:33
>>794
Oracle ODBC Driver です。
OracleでLAN内のデータソース名を設定していて、そちらの方で
接続は確認できております。サーバーのODBC設定も当然してあるので、
サーバーで初期化できればちゃんとDBにアクセスできると思っておりました。

どうやらそれが難しいようなので、別の手を考えようと思います。
直接Pathを指定できるドライバにすれば良いのですよね。
う〜ん、DB関係苦手だ・・・・(^^;

Pass×→Path● 鬱ダ死脳・・・
803はてな:2001/07/10(火) 14:40
上げてしまった・・・スマソ
804>>801:2001/07/10(火) 15:11
[021:No.5224] επιστημη/Re:復素数の初期化について ■2001年07月09日10時08分
> C++Builderでは復素数をcomplex <double> c 等として記述
> しますが、この復素数cの実数部はreal(c)として参照できます。
> 逆に、このcの実数部を単独に設定する方法はありますか?

なぜマニュアルを読まないのですか?

[020:No.5223] 重松 宏昌/復素数の初期化について ■2001年07月09日09時47分
逆双曲線関数については、有難うございました。

C++Builderでは復素数をcomplex <double> c 等として記述
しますが、この復素数cの実数部はreal(c)として参照できます。
逆に、このcの実数部を単独に設定する方法はありますか?

以上
805デフォルトの名無しさん:2001/07/10(火) 15:15
>なぜマニュアルを読まないのですか?
エピスてめーにはきいてねえんだよ
806デフォルトの名無しさん:2001/07/10(火) 15:51
>>804
ふつーの反応だと思うが。
マニュアル読めば書いてあるようなことを堂々と質問する方がどうかしてる。
807デフォルトの名無しさん:2001/07/10(火) 16:35
なぜMSDN(英語)を読まないのですか?
なぜVCLソースを読まないのですか?
なぜBorland有償サポートを使わないのですか?
なぜ....自分だけで解決しようとせずに人に聞くのですか?

調べればわかるような事を堂々と質問する方がどうかしてる。


という風にあなたは言われたいですか?
どうかしていると思うなら無視しておけばいいのに
回答にもならない返事を書いて
ストレス解消しているεπιστημηは逝ってよし
808デフォルトの名無しさん:2001/07/10(火) 16:49
>>807
言われたかないから自分で調べるんだろう。馬鹿か?
809デフォルトの名無しさん:2001/07/10(火) 16:59
教えて君を放置しておくと教え魔とセットで増殖していって、
「トラフィックは多いのに有用な情報はそのうちのごく一部だけ」
という状態になりがち。
(というか、プログラム系のメーリングリストで一日に何十もトラフィック
があるようなところは、そうなってる所が多い)
810デフォルトの名無しさん:2001/07/10(火) 17:10
>>808
ふつーの反応だという答えがあったから
それが普通の反応だとしたら
こうなるという例を出してやったんだろ、会話も出来ないバカか?>>808

>>809
ではそういう所行くな。

他の言語や他の分野の勉強した事ないのか?
自分が初学者の立場にたったとき、

>なぜマニュアルを読まないのですか?

といわれたいらしいな。
811デフォルトの名無しさん:2001/07/10(火) 17:13
>>807
ストレスの原因になる書き込みを平気でする奴に問題があると思うが。
812デフォルトの名無しさん:2001/07/10(火) 17:25
>>810
例?って↓これか?
>なぜMSDN(英語)を読まないのですか?
>なぜVCLソースを読まないのですか?
>なぜBorland有償サポートを使わないのですか?
>なぜ....自分だけで解決しようとせずに人に聞くのですか?

どれ一つとってもなんも問題ないように見えるが。

MSDN(英語)を読めばわかるようなことを訊く奴は英語がわからないドキュソ。
VCLソースを読めばわかるようなことを訊く奴は分不相応のことをしようとして
いるアコガレ厨(ソースを読まなきゃわからんようなことが必要になる前に
設計でなんとかなる場合が多い)
そもそも有償サポートが必要になるほどの深刻な事態を他人にタダで訊こう
という奴はよほど図々しいか、事態を把握できていないドキュソ。
813デフォルトの名無しさん:2001/07/10(火) 18:15
いろんなものを学んできた人から見ると
どんな事であれ、新しい物事を学ぶ際には
自分自身がドキュソになるという事が言いたいのです

ドキュソを馬鹿にしていると、自分がドキュソになった時
跳ね返ってくるのじゃないでしょうか。

よく知らない分野の事をたずねるに
具体的に質問しているのに
上級者の人から
「どうしてマニュアル調べたらわかる事を聞くのですか」
と一言だけ言われたら、私はいい気分はしません。

いろいろな物事に関して広く知っている人は
知らない知識を得ていく中で
初学者である事は多いので
そういう事は身にしみていることと思います。

初学者でありドキュソの人を切り捨てるようなことをする人は
あまり物事を広く知らない視野の狭い人のように
周りから見られてしまいませんか?
814デフォルトの名無しさん:2001/07/10(火) 18:23
調べれば分かるであろうことを人に聞くのと、
調べても分からないことを人に聞くのじゃ大違い。

後者をドキュソと呼ぶならドキュソ歓迎だが、
前者をドキュソと呼ぶならお断り。
そもそも未来も感じられないし、フィードバックしてくれるとも思えん。

「どうしてマニュアル調べたらわかる事を聞くのですか」
と言われて気分を害しようが、聞いたほうが全面的に悪い。
勝手に気分を害されていてクレってカンジ。
815デフォルトの名無しさん:2001/07/10(火) 18:29
残念だか視野の狭い人にはあまり言葉は通じないか。
いろいろ経験積んでくれとしかいえないな。
816デフォルトの名無しさん:2001/07/10(火) 18:41
よく知らない分野ならなおさら「まず自分で調べる」が重要だろう。
まず自分で調べた形跡のない様な質問をして罵倒されても文句は言えない。
初学者だからって調べもせずに人に訊いて良いというわけではない。
817デフォルトの名無しさん:2001/07/10(火) 20:08
横から失礼します。
最初はリンク先を見てなかったので、
そりゃ調べもせず聞く教えてくんが悪いだろう、と思ってましたが

「マニュアルに書いてあります。」
と書けばすむことを、わざわざ
「なぜマニュアルを読まないのですか?」と、
答えるあたりに性格の悪さが見え隠れします。

そこのBBSって質問に対して答える系のBBSじゃないんですか?
818デフォルトの名無しさん:2001/07/10(火) 20:18
>「マニュアルに書いてあります。」
>と書けばすむことを、わざわざ
>「なぜマニュアルを読まないのですか?」と、
>答えるあたりに性格の悪さが見え隠れします。

どっちの答え方をしても「意地悪い」ってとられるよ。
819デフォルトの名無しさん:2001/07/10(火) 20:31
>>817
何を質問してもいいってもんじゃないだろう。

>>818
どっちも大して違わないと言う意味では同意。
意地悪ととるかどうかは主観による。
820デフォルトの名無しさん:2001/07/11(水) 00:32
致命的なエラー:VCLDBX50.LIBが開けないといわれます(T_T)
どうしたらよいのでしょうか?
C++Builder5Learningです。アップデート1も入れてます。
BPRファイルを検索してVCLDBX50.LIBの文字列を削ったりもしましたが、
ダメでした。CD-ROMにも入ってないし、Googleで検索しても
わかりませんでした。
821デフォルトの名無しさん:2001/07/11(水) 00:49
>>820
プロジェクトオプションのパッケージからBorland Database Componentsを外してみてください。
そしてパッケージ構築のリストにvcldbx50が含まれてないか確認して、
もし含まれていたら削ってみてください。
たぶんなおるのではないかと思います。

これはボーランドの設計ミスというか、
Learning版のテスト不足では。早く直せボーランド。
822デフォルトの名無しさん:2001/07/11(水) 00:51
>>819
んだ。主観としか言いようが無い(ので構ってられない)。

「HOGEHOGEしようぜ!」
という言葉を英語では
「Why Not HOGEHOGE?」
というわけだが、
だから英語が意地悪な言語かというと、そんなこたぁ絶対にない(わら

>>816
>そこのBBSって質問に対して答える系のBBSじゃないんですか?

それは幾らなんでも、それまでに居たほかのユーザー諸氏が
可哀想ってもんじゃないか?
勿論それとて主観だが(わら

ちなみに、「なぜマニュアルを読まないのですか?」
というのもまた質問ですから、
質問されたらそれに答えるべきですね(わら
だって「質問に対して答える系のBBS」なんでしょ?

ドキュが調べたところでタカが知れてる
ってのも言えてる一面なんだが、
そんなドキュでもなんとかなるようにってんで
作られたのがそもそもマニュアルってもんだ。
マニュアル読んでもなお判らなかった
というなら周囲も質問のされ甲斐があるが、
そもそも読んでませんってのは
周囲がしてくれるであろう質問の回答すら
理解できない可能性を完全には否定できないな(わら
つまり、好意的にいっても、「なにをどう答えていいか判らぬ」
っていう状態。
823デフォルトの名無しさん:2001/07/11(水) 01:43
>>821
ありがとうございます。
ですが、プロジェクトオプションのパッケージに
Borland Database Componentsが入っていません(泣
Borland Standard Componentsはあるのですが・・・
これを外していいのでしょうか?
何度も素人質問ですいません。
824820です:2001/07/11(水) 02:04
>>821さん、解決しました。
vcldbx50とvclbde50を削ったらリンクできました〜!
ありがとうございました!

お礼だけのなのでサゲということで・・・
825横やり817:2001/07/11(水) 19:29
>>818-819
たしかに意味としては変わらないが、ニュアンスは全然違う。
まぁ主観によると言われればそれまでだが、
少なくともあの答えに対して「ありがとうございました」を返す人間は稀だろう。

>>822
確かに質問者はマニュアルを読んだかどうか答えるべきだね。
それが無い以上、「質問者の弁護」はしようがないよ。

わたしが言ってるのは、「答え方が悪い」って事。
826デフォルトの名無しさん:2001/07/12(木) 13:59
BCBでクラス内で宣言されているコンポーネントに
ハンガリアンらしく m_なんてprefixつけるのは 基本的に間違っていますか?
827デフォルトの名無しさん:2001/07/12(木) 14:43
>>825
>たしかに意味としては変わらないが、ニュアンスは全然違う。
同じだって。
一行レスはたいてい「ぶっきらぼう」とか「いやみ」って相手に思われるよ。
828デフォルトの名無しさん:2001/07/12(木) 15:10
HELPの○○という項目に載っているのでそちらをご覧ください。


というレスなら文句ないだろう?
「ぶっきらぼう」とか「いやみ」に思うか?

エピーのは明らかに「ぶっきらぼう」とか「いやみ」の類。
829デフォルトの名無しさん:2001/07/12(木) 16:01
>HELPの○○という項目に載っているのでそちらをご覧ください。

教えて君相手にここまでしてやる必要なんか無い。
そもそもマニュアル読まずに質問するだけで激しく礼を失した行為なのに
それにぶっきらぼうなレスを返すことに何の問題があるか。
レスがもらえるだけマシ。
830817-825:2001/07/12(木) 17:52
>>827
>>同じだって。
>>一行レスはたいてい「ぶっきらぼう」とか「いやみ」って相手に思われるよ。
同じじゃねーよ。
あなたの感覚では「ぶっきらぼう」と「いやみ」は同じニュアンスなのか?
もし、そうならいくら話し合っても無駄だ。

>>829
>教えて君相手にここまでしてやる必要なんか無い。
>そもそもマニュアル読まずに質問するだけで激しく礼を失した行為なのに
>それにぶっきらぼうなレスを返すことに何の問題があるか。
>レスがもらえるだけマシ。

だったら「質問に対して答える系のBBS」なんかに居るべきじゃない。
「質問に対して答える系のBBS」である以上教えて君が来るのは必然。

「激しく礼を失した行為」になら、なおさら大人の対応をすべきじゃないのか?
「激しく礼を失した解答」は「質問に対して答える系のBBS」にとって好ましいものなのかい?
もし、好ましいものと思ってるならいくら話し合っても無駄だ。
831デフォルトの名無しさん:2001/07/12(木) 17:58
て優香、そもそもそんな話をこのスレッドでしてること自体、無駄だと思われ。
832turbo type D:2001/07/13(金) 10:14
>>830に同意

オラExcelファンクラブって所も見ていますが
あそこはとてもいい感じ。

Excelというプラットホームは初心者が無理してがんばってVBAを組んだりするので
初心者的非常に要領得ない質問が沢山投稿されるのですが
(その上初心者は過去ログの検索も十分に使いこなせない)

解答者はそういう事を十分にわかっているので
すごく丁寧な解答がつく事が多いです。

会ったこともない人同士なのに
HELPをみるのを忘れたくらいでいやみを言われるのは嫌だろうナー
833nanashi:2001/07/14(土) 23:28
C++Builder5の本でオススメあったらおしえてください
なかったら、C++Builder4の本でもいいです
834デフォルトの名無しさん:2001/07/15(日) 01:40
>>833
付属のマニュアル
835デフォルトの名無しさん:2001/07/15(日) 13:09
質問です。
プログラムができたのですが、
他のパソコンで動きません。
どうすればいいのでしょうか?
836デフォルトの名無しさん:2001/07/15(日) 14:02
>>835
もっと詳しい状況を書いてくれないと答えようがないです。
どんなプログラムなのか。その開発環境。
どの機種のパソコンで動かそうとしたのか、等。
837アノニ厨房:2001/07/16(月) 11:45
レベルの低い質問で恐縮ですがAnsiString A の
先頭 x bvte分を抜き出すにはどうすればよいのでしょうか。
SubStringのバイト数版のような感じで。
838アノニ厨房:2001/07/16(月) 11:46
bvte × → byte ○ 
839デフォルトの名無しさん:2001/07/16(月) 14:12
[021:No.5234] kou/教えてください! ■2001年07月14日15時00分
始めまして、いまBuilder 5 を使ってますけど、簡単なWebブラウザを作りたいです。
教えてくれませんか?(ちなみに、4の時はTHTMLコンポネットがあるので、やり方
がしてますけど)

[022:No.5235] επιστημη/Re: 教えてください! ■2001年07月16日10時13分
> いまBuilder 5 を使ってますけど、簡単なWebブラウザを作りたいです。
> 教えてくれませんか?

まずは自分でやりましょう。

[023:No.5236] kou/επιστημηさんへ: ■2001年07月16日12時19分
一応作ってみましたが、4の時はHTMLコンポネットを利用してましたけど、5の場合は
代わりにCppWebBrowserコンポネットを使うとhelpでしらべました。しかし、つかうメッソトがわからないですので、教えてくれませんが?


2chでもここまで酷いレスはつかないと思うよ
840デフォルトの名無しさん:2001/07/16(月) 14:22
ていうか日本語喋ってないじゃん>kou
チャイニーズか?
841デフォルトの名無しさん:2001/07/16(月) 15:09
>>837
SetLength メソッドは,AnsiString の長さを変更します。
AnsiString& __fastcall SetLength(int newLength);
842アノニ厨房:2001/07/16(月) 15:48
>>841
有り難うゴザイマス(-人-)
843デフォルトの名無しさん:2001/07/16(月) 19:21
マニュアルに書いてある程度のことをたずねる人は
「マニュアルを調べれば分かる」ということ(要するに情報の検索の仕方)を知らないので、
844デフォルトの名無しさん:2001/07/16(月) 19:23
>>843
はぁ、そうですか(?
845デフォルトの名無しさん:2001/07/18(水) 13:48
つうかさ、仲良くやろうよ。いがみ合うほど流行ってないんだから。
厨房もいつの日か飛び立つのよ。..多分。
846デフォルトの名無しさん:2001/07/18(水) 20:51
επιστημηさん、結構あっさりした人なんだね。
847デフォルトの名無しさん:2001/07/18(水) 22:15
あさり、っつーか、たたみ。
848新人:2001/07/19(木) 08:57
教えてください!
Webブラウザを作るとき
4の時は入力したURLをHTMLコンポーネントの
RequestDocメソッドへ渡せばできるはずですが、5に換え
たら、CppWebBrowserコンポーネントはRequestDocメソッド
が無かったです。代わりにNavigateメソッドを使いました。
しかし、引数の型エラーが出てきました。どうすればいいですか?
ぜひぜひ、教えてください!!
849委員長:2001/07/19(木) 09:37
これを試してみて下さいな。

TVariant URL = "http://www.yahoo.co.jp/";
CppWebBrowser->Navigate2(&URL, 0, NULL, NULL, NULL);
850新人:2001/07/19(木) 12:11
委員長さん:
ありがとうございます!!
>>849
851デフォルトの名無しさん:2001/07/19(木) 12:25
>>847
あさりちゃんねたか(´д`;)
852YO:2001/07/19(木) 14:28
ブラウザーのお気に入りをTPopupMenuで動的に生成する場合、
お気に入りディレクトリを再帰的に走査し、構造体に納めていく、
というのが一般的なんでしょうか。それとも、そういうディレクトリ構造の
取得に特化したクラスなど有りますでしょうか。
853デフォルトの名無しさん:2001/07/19(木) 14:51
>>852
標準ではないようです。
自分で再帰でがんばってくださいな。

標準的に作成する場合
どうやって設計したらいいかな。
854YO:2001/07/19(木) 16:24
>>853
ありがとう誤字増す。

私が考えてるのはクラスにファイル、ディレクトリ構造体を持ち、
それぞれをリスト、チェーンで連結させる。というものです
再帰中に連結を行うべきか、全てを構造体に納めたあと、
連結をおこなうべきか。並び順を変えたりすることを考えたりすると、
巧者だと思いますが、どうでしょうか。

#C++を始めたばかりなので、”標準”というのはどういうものなのか、
はっきりとわかりません。汎用的にということだとおもうんですが・・
855デフォルトの名無しさん:2001/07/19(木) 18:08
>>854
再帰厨に連結すべしでしょう。

>全てを構造体に納めたあと、 連結をおこなうべきか。
たぶん2度デマ

>並び順を変えたりすることを考えたりすると、
これってそのクラスにいる?
私は要らないと思うな。

一度ファイルディレクトリ構造を得てしまって
そこから同一フォルダ内のファイル名列を取り出す
仕組みさえあれば
StringListにでも放り込んでからSortすればいいし。

標準的>>汎用的だと考えてください。
使いやすいファイル構造列挙クラスって
どこかにあるの?

俺は自作したけど。
856デフォルトの名無しさん:2001/07/21(土) 02:11
七味とうがらしはどこへ逝ったの?
857デフォルトの名無しさん:2001/07/21(土) 13:10
カーソルについて質問です。
アプリケーション中ずっと一つのカーソルを使いたいのです。
Screen->Cursorに使いたいカーソルを指定したのですが
タイトルバーにマウス移動したり、右クリックでポップアップメニューを出すと、その時はデフォルトに戻ってしまいます。
ずっと同じカーソルにしておくやり方をご存じないですか?
858デフォルトの名無しさん:2001/07/21(土) 17:23
やったことないけど、リソースにカーソルのイメージを置いておいて、
こうするのでは駄目かい?

Screen->Cursors[crDefault] = LoadCursor(HInstance, "NewCursor");
859デフォルトの名無しさん:2001/07/21(土) 19:13
>>856
閉鎖したみたいよ
860デフォルトの名無しさん:2001/07/21(土) 19:14
861857:2001/07/22(日) 12:57
>>858
ダメでした。
862デフォルトの名無しさん:2001/07/23(月) 04:40
C++は、もう破滅寸前。
ここらでSTLに挫折した、全体の95%相当のプログラマが
不買運動を起こし、消滅します。

ありがとうC言語!そしてC++さようなら!(^_^)また会えるといいね!

http://piza.2ch.net/test/read.cgi?bbs=tech&key=995820118&ls=100
863デフォルトの名無しさん:2001/07/24(火) 01:04
>>862
ハァ?
864デフォルトの名無しさん:2001/07/24(火) 01:10
1==2000/09/20
えらく長寿なスレだナ・・・.
865あげマン:2001/07/27(金) 15:32
いまさら上げます。

JAVA上がりでC++のことが良く分かってない厨房です。

1バイトと2バイト文字を含むAnsiStringを一定のバイト数
毎に切り取りたいのですが、方法がわからず困っております。

charに落として、とか色々聞いたのですが、適切な関数が見つかりません。

宜しければアドヴァイスお願いいたしますm(_ _)m
866デフォルトの名無しさん:2001/07/27(金) 15:41
1バイトずつ取り出して1バイト文字か2バイト文字かを判断し、必要な所に書き込め
文字コードの判別法はSJISなりEUCなりで違うから、文字コード表を見ながら作れ
867デフォルトの名無しさん:2001/07/27(金) 15:54
>>865
c_str じゃだめなの?
868あげマン:2001/07/27(金) 16:04
>>867
char配列化したあと、部分的に取り出す方法が分かりません。
すいません。
869デフォルトの名無しさん:2001/07/27(金) 16:14
>>868
2バイト文字とかにこだわらないなら、
char* p = str.c_str();
for(int i=0;p[i]!='\0';i++){
printf("%c\n",p[i]);
}
870デフォルトの名無しさん:2001/07/27(金) 16:26
いやだからこだわるから
>1バイトと2バイト文字を含む
って書いてあるんだろ
871あげマン:2001/07/27(金) 16:38
>>869
>>870
>1バイトと2バイト文字を含む
だけだと、どういった形にしたいか不明確でした。
中途半端な書き方になり申し訳ありません。

やりたいことは、もし切り取りたいバイト目の文字が
2バイト文字の片割れでも、そのバイトだけ切り取り、
あとで結合させたい、と思います。
>>868さんのコードでそれが出来るかまだ分かってないので
調べております。
皆さんレスありがとうゴザイマス。
872nanashi:2001/07/28(土) 01:32
2つの時刻から、時間差を計算する方法教えてください。
873デフォルトの名無しさん:2001/07/28(土) 01:35
>>872
最小単位に直して引けば?
874デフォルトの名無しさん:2001/07/28(土) 02:12
TDateTime before, after;
TDateTime diff = after - before;
AnsiString time_str = TimeToStr(diff);
875あげマン:2001/07/28(土) 13:17
また質問させていただきます。

WebサーバーアプリをC++Builder5で製作しております。
クライアント側からはNMHTTPのPOSTを使ってhttpでデ
ータを送っております。

で、送信データが多い場合、何度かに分けて分割
したいと思っているのですが、ひとつのAction
イベント内で連続したPOSTを受け取ることって
可能でしょうか?
876デフォルトの名無しさん:2001/07/28(土) 14:28
>>875
>で、送信データが多い場合、何度かに分けて分割
>したいと思っているのですが、ひとつのAction
>イベント内で連続したPOSTを受け取ることって
>可能でしょうか?

同時アクセスとかどうするの?

普通はデータテーブルを別に作って、IPアドレスをキーにPOST
されたデータ放りこんでおいて(同じIPアドレスがあったら追加)、
あらかじめ定義された長さになったら、そのデータの処理を実行
する。
877あげマン:2001/07/28(土) 16:02
なるほど・・・
やはり、別々に受信してそろった状態で実行、となるのですか・・・
う〜ん、Indexやら何やら色々要りそうだなぁ・・。
謝々>>876
878デフォルトの名無しさん:2001/07/29(日) 23:53
>>871
mbstowcs() を使って加工するのではだめ?
元に戻したいときは wcstombs() で。
879あげマン:2001/07/31(火) 21:26
>>878さん
どうもありがとうございます。とりあえず、>>876さんに教えていただいた方法で
テストしようと思いますので、そのときの動作が期待するものでなかったら試させ
て頂きます。

さらにさらに質問させていただきます。TWebModuleを使用して、WebServerアプリ
ケーションを作成しております。クライアントからpostメソッドで要求を投げて
イベントを起こしたとき、サーバーサイドのイベントのコード中で接続しているク
ライアントのホスト名またはIPアドレスを取得する方法ございますでしょうか。

以上、よろしくお願い致します。
880デフォルトの名無しさん:2001/08/01(水) 00:00
Delphiで作成したクラスにコンストラクタ追加しました。
それをBCBで追加したコンストラクタ呼んでるんですけどリンクエラーです。
宜しくお願いします。
881デフォルトの名無しさん:2001/08/01(水) 07:37
H-氏ンやその界隈の方がウザイ
882デフォルトの名無しさん:2001/08/01(水) 13:00
ランタイムを組み込みたいんですが・・・
どうすれば良いのでしょうか?スマソ、厨房ですね・・・
883デフォルトの名無しさん:2001/08/01(水) 17:46
解決しました。(爆
884デフォルトの名無しさん:2001/08/01(水) 23:09
TEditのテキストを右揃えで表示したいんだけどどうするの?
885デフォルトの名無しさん:2001/08/02(木) 00:05
>TEditのテキストを右揃えで表示したいんだけどどうするの?
コンポーネントとして作成するか、TEditではなく、TMemoで
使用する。
886でほると:2001/08/02(木) 00:14
FindWindowとかGetDCで取得したウィンドウに、
ファンクションキーやEnterキーを送り込む(押したふりをする)
のはどうすればいいの?
SendMessageを使おうとおもたんだけど、
SendMessage(ハンドル, F1キーはなにを?, ここななに?, ここもなに?)
てな感じで引数が分かりません。

おしえてください〜
おねがいします。
887デフォルトの名無しさん:2001/08/02(木) 01:45
>>886
eventなんとかって関数だったと思う。
ここ見れ
http://homepage2.nifty.com/rohizuka/pa/pa_003_a.htm
888デフォルトの名無しさん:2001/08/02(木) 02:29
↑グロ
889デフォルトの名無しさん:2001/08/02(木) 07:31
887
ギャーって声が出るね。見ないほうがいい。

keyboard_eventだっけ?

探してみてくれ。
 DelphiML/builderML/KylixML検索
 http://www2.big.or.jp/~osamu/Delphi/
890デフォルトの名無しさん:2001/08/02(木) 13:55
ボタンなどのインデックス配列ってどうすれば出来るんでしょうか?
VBからBCBに移って3日目・・・
891デフォルトの名無しさん:2001/08/02(木) 14:28
TButton *btns[10];
892890:2001/08/02(木) 15:36
画面のボタン自体には、付けられないのかな・・・
VB的な、発想でごめんなさい。
893デフォルトの名無しさん:2001/08/02(木) 15:44
だから参照を代入すればよい。
894デフォルトの名無しさん:2001/08/02(木) 17:28
>886

keybd_event()はキーを送るウィンドウがはっきりしないので、望みの結果が得られないこともあるぞ。
それよりも
SendMessage(hwnd,WM_KEYDOWN,VK_F1,0);
とか
SendMessage(hwnd,WM_COMMAND,MAKELONG(IDOK,0),0);
895turbo type D:2001/08/03(金) 12:36
ファインドコンポーネントで
名前の文字列からButtonを探すとよい。
896新人:2001/08/03(金) 14:14
質問ですけど、コンポーネントRichEditを使って、HTMLソースファイルを入れ、タグを
削除しようとしていますが、できなくて、どなたが教えてください!
897dema:2001/08/03(金) 14:25
uses
RegExp;

function CutTag(s: string): string;
var
r: TRegExp;
begin
r := TRegExp.Create('<.*?>');
while r.Substitute(s, '', rsContinue) do ;
r.Free;
Result := s;
end;
898dema:2001/08/03(金) 14:26
ってBuilderか、ごめん
899新人:2001/08/03(金) 15:06
ありがとう!確かめてみます!
>>dema
900デフォルトの名無しさん:2001/08/03(金) 15:06
なにができないのか明記してくれ。
HTMLソースを読むのができないの?
タグを消すのができないの?
ちなみに、タグ消しただけだと改行しないと思うけどいいのかな?
901dema:2001/08/03(金) 15:18
ほんとだ、改行も空白除去もやって無いじゃん>>897は駄目駄目ってことで。
902新人:2001/08/03(金) 15:38
問題はHTMLのタグを消すのができないです。
>>900
自分がやっていたのはRichEditを二つを用意し、ひとつはHTMLを表示
して、もうひとつはボタンを押したらタグを消したHTMLを表示するものです。
考え方としては"<"と">"を探して(FindTextで)、間を消すの方法なんです
が、どうも、その"<"と">"の位置を正確に返してくれないです。
どうか、教えてください!
903デフォルトの名無しさん:2001/08/03(金) 16:02
リッチエディットのカーソル位置指定ってどうやってる?

というか、個人的には一度バッファに全部読んで
修正し終わったものを表示するほうが簡単なような気がするんだが
904新人:2001/08/03(金) 16:30
以下のように:
int startPos,endPos;

startPos=RichEdit1->FindTextA("<",startPos,RichEdit1->SelLength-1,TSearchTypes()<<stMatchCase);
endPos=RichEdit1->FindTextA(">",startPos,RichEdit1->SelLength-1,TSearchTypes()<<stMatchCase);

でも、うまくできないみたいです。
>>903
905デフォルトの名無しさん:2001/08/03(金) 17:06
なにも考えずにRichEdit1のLinesをRichEdit2にコピーしていけば?
<を見つけたら>を見つけるまでは改行を除いてコピーしないの。
906新人:2001/08/03(金) 18:21
そのやり方が教えてもらいたいです!
>>905
907デフォルトの名無しさん:2001/08/03(金) 20:24
そんなんで良ければ、どーぞ。
http://members.tripod.co.jp/nanasi_san/test.lzh
BCB4ね。
908デフォルトの名無しさん:2001/08/04(土) 00:02
「borland c++ builder5の質問 」のスレを立てた新人君と同一人物かな?
それだったら CppWebBrowser の Navigate が使えないからこんな質問してるのかな?
Navigate の第一引数は char * 型ではなくて wchar_t * 型を要求してるから
固定文字列の場合なら L"mona" ってな具合に、L を先頭につけないといけない。
こいつはURL 形式だから、ローカルファイルでも file://c:/mona/mona.hmt
なんて具合になってる必要があるはず。
引数に渡す中身が可変で、char * 型なら mbstowcs() を使ってwchar_t * に
変換できると思う。mbstowcs() の詳細は自分で調べてくれ。
これですむのならタグを消す必要なしかな?
909デフォルトの名無しさん:2001/08/04(土) 12:39
勉強になります。>908
910新人:2001/08/04(土) 12:59
 いつも親切に教えてくれて、ありがとう!
 私はその新人です。教えた通りに頑張って調べてみます。
 実というと、やりたいことはホームページの検索エンジンを利用して検索し、
その検索結果を収集して、内容を分析して、データベース化したいです。
 いま、その検索結果のHTMLをどうやってデータベース化にするのかを考えて
います。何かいい方法がないでしょうか?

>>908
911908:2001/08/04(土) 20:15
>>910

データベースは使ったことないのでわからないけど、
そういう目的なら、CppWebBrowes は向いてないかもね。
データベース化した後、どう使いたいのか知らないけど
やりたいことのすべては Namazu だったりしそうだが。
Namazu については検索エンジンで調べよう。
ライセンスがGPLなので、売り物に使うつもりならだめかもしれないですね。
912デフォルトの名無しさん:2001/08/04(土) 20:18
ビルダーってタダで手に入るんですよね?
どこで手に入るんですかぁ?
913デフォルトの名無しさん:2001/08/04(土) 20:29
>>908
簡単に AnsiString as を wchar_t* に変換したいならば、

WideString(as).c_bstr()

でできるよ。
914908:2001/08/04(土) 21:13
>>913
なるほど。ども。でもそれは新人君にいってあげて。(笑)

>>912
C++Builderはただでは手に入らないよ。
ただなのはコマンドライン版だけだ。
Delphi とか JBuilder なら手に入るけど。
ttp://www.borland.co.jp/
からたどってね。
915デフォルトの名無しさん:2001/08/04(土) 23:24
>>912
トレーニングジム周辺。
916デフォルトの名無しさん:2001/08/05(日) 00:33
>>914
※Delhpiフリー版はまだですゾ
917新人:2001/08/05(日) 10:54
みなさん、ありがとうございます!
918原人:2001/08/05(日) 11:26
みなさん、あほでしょう!
919デフォルトの名無しさん:2001/08/05(日) 12:32
一周年になる前に次スレに逝けるかな?
920デフォルトの名無しさん:2001/08/06(月) 14:20
何だか新スレが立っているようなので告知しておきます。
新スレ立てたら前スレで告知してね>立てた人

新C++Builder相談室
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=997074601
921デフォルトの名無しさん:2001/08/07(火) 10:29
ブレークポイントを設置したんですけど
停止してくれない・・・(BCB5)

何故なんでしょう?
922デフォルトの名無しさん:2001/08/07(火) 10:30
呪いデス
923デフォルトの名無しさん:2001/08/07(火) 10:34
の・呪いですか・・・
924デフォルトの名無しさん:2001/08/07(火) 10:37
まじレスをお願いします。
925デフォルトの名無しさん:2001/08/07(火) 11:12
コンパイルはちゃんとされている?
Delしかわからないけど
ソースとコンパイル済みユニットの日付が可笑しくなって
コンパイルされていない時に同じような症状に出会ったよ。
926うんこマン:2001/08/07(火) 12:35
>921
それはねぇ。コンパイルしてるdllじゃなくって古いdLLで
処理を見てるんだな。きっと。
前に何度かそうなった時はそうだったよ。
927デフォルトの名無しさん:2001/08/07(火) 13:33
一端統合環境を終了させた後、再構築
928デフォルトの名無しさん:2001/08/07(火) 16:43
ダイアログタイトルと、アイコンのあるダイアログボックスを表示したいのですが
良い関数は、ないのでしょうか?

MessageDlgだとタイトルが・・・
MessageBoxだとアイコンが・・・

レベルの低い質問をすいません。
929委員長:2001/08/07(火) 16:57
>>928
MessageBox で良いんぢゃないの?

Application->MessageBox("メッセージ","タイトル",MB_ICONQUESTION | MB_YESNO);
私の環境ではこれでタイトルも編集出来ますし、アイコンも出てますが。
930デフォルトの名無しさん:2001/08/07(火) 17:06
931デフォルトの名無しさん:2001/08/07(火) 17:06
もう新スレに移行してるよ〜
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=997074601
ところで>>921なんだけど、BCB5はデバッグモードとリリースモードは存在しないの?
932デフォルトの名無しさん:2001/08/07(火) 20:48
>>921
デバッガオプションで統合環境を使うにチェックが入ってない、とか。