142 :
名無しさん@お腹いっぱい。 :
2000/11/04(土) 06:38 エクスプローラから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) \____________________
>>142 2の方だけ答えます。
自分はVC派ですがきっと同じことだと思います。
起動しているアプリケーションのウィンドウ上にD&Dした場合はロングファイルネームです。
アイコンなどにD&Dしてコマンドラインから起動した場合に渡されるのはDOSファイル名です。
>>142 そのコンポーネントやらに対して、
::DragAcceptFiles(h, FALSE);
じゃだめなの?
>>145 恐らく、IBMのalphaWorksの所だよ。
最近逝ってないから正確な場所は不明…。
あ、147は1.に対する答えね。
149 :
142 :2000/11/05(日) 04:11
レスありがとうございます。 >146 なるほど…そういうわけだったのですね。 ということは、ロングファイルネームが得られるのは 当たり前だったのか…安心しました (^◇^;) >145 実はまだ、継承とか派生とかそのへん勉強中なので よくわかってませんが、頑張ってみます。 >147 実はそれを呼ぶタイミング(?)がわかりませんで… (T▽T) Formの時はOnCreateイベントで呼んでるんですが… そのコンポーネントのコンストラクタ関数(?)とやらで 呼んでしまってもいいものなのでしょうか。 っていうか、実験してみたほうが早そうですね。やってみます。
150 :
名無しさん@お腹いっぱい。 :2000/11/05(日) 07:14
>149 使いやすさと安全を期待するなら TListViewを継承してドラッグの受けつけの禁止許可の メソッドをつくってしまいましょう。 プロパティにしてしまえば設計時にも設定できて便利かも‥
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
153 :
名無しさん@お腹いっぱい。 :2000/11/07(火) 02:27
154 :
初心者 :2000/11/07(火) 05:50
ICQみたいに、 フォームがフォーカスを失っても一番手前に表示するようにするには、 どうやるのですか? 初歩的でごめんなさい。よろしくお願いします。
>>154 そのトップレベルウィンドウに対して、
::SetWindowPos()でHWND_TOPMOSTというマスクを入れる。
156 :
初心者 :2000/11/07(火) 06:35
>>155 すばやいレスありがとうございます。
なるほど、そのものずばりのAPIがあったのですね。
勉強になりました。
157 :
>156 :2000/11/07(火) 08:04
BCBならフォームのプロパティで設計時に指定できたと思うが‥
>>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; しています。 原因か解りません。よかったら教えてください(;´`)
>>160 中で何やってるんだ?Windowsを蒼ざめさせるとは・・・
OnIdleはOSの全メッセージが飛んでくるので変な事
しちゃ駄目。
162 :
160 :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
166 :
C++初心者@文法書買わなきゃ :2000/11/09(木) 23:12
オーバーライドしたメソッドの中で、inherited@Delphiしたいのですが、 ”スーパークラス名::メソッド名”と記述すれば良いのでしょうか? virtualメソッドであるデストラクタでそう記述すると、 再起ループによるスタックオーバーフローになります。
167 :
160 :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を再インストールしてみます(;´`)
おい、Application->OnIdleに代入する前に TFormはインスタンス化されてるのか? OnShowで、 Application->OnIdle = Form1->IdelFunc; だったり、(クラスメソッドじゃないもんな。)
おお、それからForm1を破棄する前に、 Application->OnIdle = NULL; しておかんと。今度は終了時にこけるぜ。
170 :
名無しさん@お腹いっぱい。 :2000/11/10(金) 23:52
171 :
Ver3ユーザーですけん。 :2000/11/11(土) 01:50
某ネットゲーの自動入力ツールを作ろうとさっき始めました(゚Д゚ ;) さっそく詰まったのでご教授お願いします。 1.マウス位置を知る、その場所を自動的にクリックさせる方法 2.キー入力を自動的にさせる方法 3.ゲームとツールがバックグラウンドにある状態でも作業させる方法 なお、自動的に入力させるキーはユーザーにホットキーで登録させた奴です。
172 :
160 :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でスクリーン座標を知ることができる。
175 :
nabeta :2000/11/11(土) 20:26
StringGridを使うと選択フォーカスとかいう青いのが出てきますよね。 入力フォーカスだけで十分なので、この青いのを消したいんです。 青いのが邪魔で邪魔で。 なんかいい方法ないんでしょうか?
176 :
171 :2000/11/12(日) 01:38
>172,174 BCB標準のヘルプにはなかったのでGOOで探したら、どっかのMLに APIの組み方やHELPの見方が質疑応答されてました。 APIヘルプはCDに入ったままだったんですね(゚Д゚ ;) とりあえずマウスとキー入力生成はこれからやってみます。 3番目がまだ謎ですけど、ありがとう〜
>176 どっかのMLってひとつしかネーんでないの? 3は、窓を列挙してハンドルとって表にもってきたら いいんデネーの?
>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 だけでは使えないんでしょうか。すいませんが対処法などもありましたら教えてください。
>178 Enumなんとか、コールバック関数という単語で調べましょう。 MLはC++Builderのものはひとつですが 普通のC++のものとかVC++のものとか沢山あります。
あげわすれた。
182 :
名無しさん :2000/11/12(日) 22:29
>>178 あらかじめそのウィンドウのクラス名とタイトルがわかってんなら
FindWindowでもなんとかなりそうだな。試してないが。
183 :
171 :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
スレが見エン
ジョイスティックの情報を受け取って状態をリアルタイムで表示させたいと思います。 ウィンドウプロシジャの先頭で状態取得、描画をやってるんですが ウィンドウのリサイズか、それが移動した時、 または別ウィンドウの下から復帰した時しか表示が更新されません。 当人以外にどの辺がまずいのか教えてください。
186 :
名無しさん@お腹いっぱい。 :2000/11/15(水) 01:27
BCB4proでのrand()の実装がどうなってるかをご存知の方はいらっしゃるでしょうか? ヘルプを見ると、線形合同法であることは書いてあるのですが、 具体的にパラメータが何になっているかを知りたいです。
187 :
名無しさん@お腹いっぱい。 :2000/11/15(水) 01:46
>>186 デバッガでrand()の中身を覗いたら、こんなカンジの処理でした。
n = n * 0x15a4e35 + 1
return (n >> 0x10) & 0x7ffff;
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;} だったんじゃないのか?
>190 maji!?
192 :
189>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; }
193 :
189 :2000/11/15(水) 05:18
call してるのはスタックポインタの細工をしたい為だった。 call の所を jmp にすれば普通にコンパイルされるのに なぜか このコードだと test1もtest2も印刷されてしまう アセンブラソースを吐かせたら、やはり elseの所で本来入る べきjmpが入っていない まあ、別にcallしなくてもスタックを得る方法はあるから これが駄目と判ってれば困る事は無いんだけどね。
194 :
189 :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:
原因は違うよ。 最初の return 0; を見て、「到達しないコード」と判断した時に、 else のジャンプを省略してる。
原因と回避方法がわかってるなら封印する事ないじゃん。
192の_asm文をコメントアウトして確認するくらいはするだろ? 想像するに、インラインアセンブラで関数内jmpはよくあるが、 普通は関数内でcallは使わない。 また、callするのは、一般的にはproc定義され、ラベルでは定義されない。 したがって、飛び先チェックを省略していると考えられる。 ま、危険な事をやろうとしているんだから、 出力を確認するのは当然だろうけど。
気になったので見てみたら すでに書かれていた(;´Д`) 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
でも、よくこんなの見つけたなあ
200 :
age :2000/11/18(土) 00:00
…初心者なんでよくわかんないんですけど、 普通に(何を持って普通と言うのかよくわからないけど)使ってる分には そんなに怪しい動作はしないと思われるコンパイラである… って理解でいいんでしょうか…? (・_・?) >BCC そういやこないだ、こういうの詳しい人に、 「BCB始めた? アレは止めとけ。コンパイラだかライブラリが怪しい」 って言われたけど…この事を言ってたのかな? 何にしても、オイラがその「怪しい」ところに辿りつくのは まだ先の話だと思って勉強していますが ヽ(´ー`)ノ
まさかこんなことが原因で怪しいと言ってるわけじゃないでしょ。
具体的な指摘無しに怪しいだの駄目だの言ってるような奴の意見なぞ無視。
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プログラマ。
C++Builder使いはVC?Delphi?のどちらに入るの?
208 :
名無しさん@お腹いっぱい。 :2000/11/19(日) 11:50
BCBで使いやすいWin32のプロファイラってありませんか?
209 :
名無しさん@お腹いっぱい。 :2000/11/19(日) 18:36
スキャンディスク、デフラグ等を実行させて、処理が終了したら、 実行させたアプリをクローズさせたいんだけど、 処理を終了したってのをどうやって知るのか、わかりません。 だれか教えて下さい。
210 :
名無しさん@お腹いっぱい。 :2000/11/19(日) 19:41
>>209 シグナル状態かどうか
ってあたりがキーワードじゃなかったかな。
BCBは、とにかくエディタをなんとかしろ!
んだ、もうちょっとマシなエディタほしいな‥
例えば何が足らんと思う?
細かいこといいだすときりがないが‥ とりあえずは現在開いているファイルを 他のエディタで起動する機能だけでいいや。
一応プロですがコーディングにはメモ帳しか使ったことない。 デバッグのときにちょっと附属のエディタ使うくらい。
使いなれたエディタの方が生産性上がりませんか? って‥メモ帳を使いなれてるのか‥ 余計なおせっかいでした。
217 :
209 :2000/11/20(月) 05:18
>>210 どうもありがとうございます。今から調べてみます。
VisualStudio附属のエディタが最強。
う〜ん。できない・・・・。
220 :
>209 :2000/11/20(月) 07:46
そういうので困った時は FindWindow してGetWindowTextでいつも逃げてたからなあ
HELPシステムもなんとかしろ(;´Д`)
>>214 な〜んだ。そんな事か。
ツールに登録すりゃええやん。
[ツール]-[ツールの設定]で
[追加]選んで[参照]で好きなエディタ選んで
実行時引数に$EDNAME()を設定すればOK!
#もちろん1回保存せんといかんが・・・BCB1からあるぞ!
#それから君らヘルプで「キーボードショートカット」
#って引いた事ある?
それだと今見てるやつしか開いてくれないんだよ>222
224 :
209 :2000/11/21(火) 02:22
>>220 アドバイスありがとうございます。
それでやってみます。
おい!214=223だったら言ってる事が 前と違うじゃないか! それじゃカーソル位置にファイル名があるなら 実行時引数を$CURTOKENにしてみそ。 それ以上を望むなら open tools API で自分で拡張しな。
と、書いてみたがカレントディレクトリが移動すると 開けないなこりゃ。(毎回実行時ディレクトリ変更も面倒だ。) しょーがないからIDEで開いてから起動してくれ。 その方が2Way-toolの利点もいかせるだろよ。
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 はやはり意味合いが違うんでしょうか? 両方とも識別子の不正を示すようなので同じかなと思ったんですが。
ん〜MCIは資料少ないのぉ いまならDirectInput使うほうが楽でないか?
233 :
komm :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.資料が少ない
Builderユーザのつらいところ 1.結局分からないのを Object Pascal のせいにすること 2.Helpがへっぽこと 自分の理解力の無さをHelpのせいにすること 3.エディタがへっぽこと 自分の開発効率の悪さをエディタのせいにすること 4.資料ばっかりあてにすること
PowerBuilderユーザーもつらいよ、、
241 :
>239 :2000/12/02(土) 09:31
とりあえず反論 1.結局Object Pascalを知らないと始まらない 何故? 知らなくても読むだけならMFCの100倍楽だと思うが? 2.Helpがへっぽこ それは何と比べて? もしかしてVB? あれは初心者向けにはすばらしいね 必ずサンプルコードがセットになってるし 3.エディタがへっぽこ え? IDEってデバック以外にも使うの? そんな事したら暴走させた時恐くない? 4.資料が少ない ってBulder用の資料が何故必要? 普通のC++の資料も使える Delphiも使える便利な環境なのに?
242 :
236 :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が勝手にやってくれる。
delphiと全く同じってわけじゃないけど、USELIBじゃダメか?
え?IDEってデバッグでしか使わないの? フォームの設計は他のエディタでやるよりも結構便利だよ。
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系列じゃないと怖くて使えない感じ
255 :
236 :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#にも移行できなくて"なんか嫌"になってしまうんでしょうね。 合唱・らららら〜♪
260 :
236 :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関数の第二引数があやしいと踏んでるんですが・・・ どなたか、アドバイスください。
>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でやれば? 簡単だよ
>272 起動中のIEみつけて Alt+→/←を押せばいいのかな? 正解キボーン
>265 FormのPopupMenuプロパティ 2ch見てるひまがあったら簡単な参考書一冊やりましょう。 いくらなんでもこのレベルの厨房質問は痛いって。
275 :
272 :2000/12/18(月) 14:05
ありゃ、良く読んだらBuilderでやる程の事もないね てっきり自分の窓の中に表示するのかと思ったよ。ちょっとまってね
276 :
272 :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
それをこのスペースで説明できる?
279 :
277 :2000/12/18(月) 18:54
説明は困難を極める。。。 SHDocVw.dllをMSDNでサーチしてみてくれ。
280 :
265 :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にアクセスできるはず。
287 :
270,271 :2000/12/19(火) 11:40
WebBrowser Controlで何とかなりそうな気がしてきました。 でもよくわからん。
288 :
お願いします :2000/12/20(水) 01:36
C++Builderのネット上のリソースがあまりにも少ないのでだれか URL教えて頂けませんか?
いやです。
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なんかはどうでしょぅ?
293 :
not 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
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 道具はそこにあるだけ。失敗成功はあなたの問題
VCに目がくらまないだけでも成功。
>>300 よく聞く理論だが、言っても意味なし。
302 :
名無しさん@お腹いっぱい。 :2000/12/23(土) 16:55
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なんかもしらないと駄目なのでしょうか?
THTTP(鴨?)
308 :
名無しさん@お腹いっぱい。 :2000/12/25(月) 14:30
連続カキコするソフトでも作るのか?
309 :
306 :2000/12/25(月) 23:15
>>308 ちがいます。
Pealまったくしらないのですが多少は知らないと駄目でしょうか?
Pealは知らない
ピエール!
312 :
名無しさん@お腹いっぱい。 :2000/12/28(木) 12:39
自アプリからエクスプローラにドラッグ&ドロップで ファイルをコピーする方法を教えてください。 エクスプローラから自アプリにドロップする方法なら どこにでも出ているんだが、その逆は…??
313 :
デフォルトの名無しさん :2000/12/28(木) 22:30
>>312 「その逆」は開発環境にも依るが、かなりの壁を乗り越えないと無理だね。
ちゃんと理解するにはOLE/COM関係の資料が必要だ。
だれか312に詳しく説明してやって。(藁
314 :
313 :2000/12/28(木) 23:46
ちなみにおれは312じゃないよ。自作自演じゃないもん! だれか教えてやって!
315 :
313 :2000/12/29(金) 00:52
レス付かないね。 じゃあ、こうしよう。 実はおれもわからないんだ。 つうわけで、おれにもおしえてくださいーーー。
316 :
313 :2000/12/29(金) 01:15
いいかげんに、おしえてつかーさい。
317 :
313 :2000/12/29(金) 01:33
はあはあ、眠い。今日は、これまで。 ぜんぜんレス付かないね。諦らめて他逝こうか?>312
コンポーネント使えって。一瞬だから。
有名どころがあるだろう。
>>317 他ってどこだよ、(w
人の糞初心者質問にそんなに付き合う馬鹿はいないから
やっぱり自作自演じゃねえか。
320 :
313 :2000/12/29(金) 23:55
さて、今日もやるか。 だれかおしえてつかーさい! #それにしても312はなにか反応ないの?
321 :
313 :2000/12/29(金) 23:57
>>319 自作自演じゃありません。
わたしはただの暇人です。
暇人と自称するまえに 頭の悪い人って自称しろよ。 俺や318の言った事わかってる? 十分な説明とはいえないが もうすでに教えてるんだよ。
何とかサンプルコードまで書かせて 楽したいクンなんでしょ。
324 :
312 :2000/12/30(土) 09:10
下記にげ厨房です(藁
325 :
MDI Child :2000/12/30(土) 19:39
MDI Child のフォームを MDI Childのままで、TopStayにできる方法をおしえて
326 :
デフォルトの名無しさん :2001/01/01(月) 22:43
☆ぴかっ /)_/) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (,’ー’) < おまえらうるせー!冬眠できねーじゃんか☆ _( U U) \____________________
328 :
名無しさソ :2001/01/02(火) 06:19
BCBをBCCのように使用することはできますか? "HELLO WORLD"などの、練習用プログラムを学ぶことはできないのでしょうか? あくまで、GUI向け? もしやり方わかったら教えてください。
>>328 あんたBCB持ってないでしょ・・・
新規作成の中にコンソールウィザードあるじゃん。
330 :
名無しさん@クソ初心者。 :2001/01/02(火) 18:33
[リンカ エラー] 外部シンボル 'WinMain' が未解決(C:\PROGRAM FILES\BORLAND\CBUILDER5\LIB\C0W32.OBJ が参照) こんなエラーが出るんです、、、たすけてください(涙 すべて保存をするとこのエラーが出てしまうんです。 保存をする前は普通に実行できるんですが、、、 もしよろしければ、対策を教えてくださると幸いです、、、。
MAKEファイルの中身書くよろし。
332 :
名無しさん@クソ初心者。 :2001/01/03(水) 04:00
えぇっと、、、MAKEファイルってなんでしょう^^; なにぶんクソ初心者なもので、、、 よろしけばそれも教えてください^^; すみません、、、。
マニュアルに書いてある。>332
つーか、検索しろ?>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管理の奴とかと、同じ原理なのかなぁ・・・・ というわけで、あげついでに質問。
>337 その場合だとForm2はForm1をOwnerとして作られているので、 Form2はForm1が開放してくれる(Form1の開放時に)。 TComponentの派生クラスは全部この仕組み。
TFormとTComponent::Ownerのヘルプ見たら、きっちりメモリ解放について書いて在ったし・・・。 メモリの管理まで含めて、VCLの売りなんだから、私程度のエセプログラマが気にする必要なんてまったくなかったのね。 実際の処理内容気になることは気になるけど、ぱすかる分からないし諦めますw さんくすです>338
340 :
デフォルトの名無しさん :2001/01/17(水) 07:12
C++Builder買ったら付いてきたDelphiを 今日からちょっとはじめようかなと思ってます。 Javaを勉強した方が面白いですかね? と言いつつageます。
341 :
turbo 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でっす。
>ListViewをおいて、AlignをalRightにして、 alClientにしなさい。
344 :
342 :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
348 :
あのー :2001/01/19(金) 06:47
BCB1盛ってるんですけど・・・逝って良しですか?
349 :
turbo type D :2001/01/19(金) 12:43
どうでもよし。
基本的なとこはまだまだ使えるけどさ 金に余裕があるならVerupしたまい。
BCBって1あったっけ?いきなり2じゃなかったかな?
BCBの数字のついてないものが Dの2
353 :
VBから移行の名無しさん :2001/01/20(土) 11:10
どうも意図したとおりに動かなくて、変数の値をprint Aみたいに実行中に表示させてみたいのですが。 Windows APIを使いたいのですが (GetKeyState) 使えるのでしょうか?
354 :
VBから移行の名無しさん :2001/01/20(土) 15:45
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); }
357 :
355 :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
やっぱりビジュアルベーシックの方がいいですか?
なんで「やっぱり」なのかさっぱりわからん>361
363 :
デフォルトの名無しさん :2001/01/21(日) 00:48
>361 RPG tuku-ru
364 :
355 :2001/01/21(日) 00:50
>358 その一行がなくても一緒でした。
365 :
355 :2001/01/21(日) 01:44
解決しました。お騒がせしました。 で、もう一つあるんですが、ListViewの背景にビットマップを貼り付けるにはどうしたらいいんでしょうか。 Canvasに書き込んでみても変化ありません。
366 :
355 :2001/01/21(日) 10:53
レスがなくなった・・・誰も教えてくれないのかな。
367 :
>365,355 :2001/01/21(日) 11:06
mameのwin32版のソースでも読んだら?
368 :
デフォルトの名無しさん :2001/01/21(日) 11:38
>解決しました。お騒がせしました。 だけじゃなく、何が悪かったかの報告しようともせんでは、 教えてあげよって者も減るじゃろて。
369 :
355 :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ってなんですか?検索したらゲームの一覧ばかりが出てきたのですが…
370 :
turbo type D :2001/01/21(日) 17:32
Delphi広場で見た気がするぞっとな。
>>369
371 :
turbo type D :2001/01/21(日) 17:33
おっと、スマソみたのはBitmap背景貼り付けだけだよ。 透明化はしらない。 リージョンならManiacsのコンポ使えばよろしいかもな。
372 :
VBから移行の名無し :2001/01/21(日) 19:43
実行速度が遅いようなんですが... 速くする方法はありますか? (フォームやイメージのプロパティを変えるなどで)
マシン買い換えろ。
CreateRectRgn、CombineRgn、SetWindowRgnを見ろ! それでわからなければやめとけ。
375 :
デフォルトの名無しさん :2001/01/27(土) 04:39
DelphiやBCBの実行ファイルは、このままどんどん膨れていくのかな? さすがに萎えてきたのだけど。
376 :
デフォルトの名無しさん :2001/01/27(土) 05:51
>375 それって逆に結構ムカツク。 自分はVC使ってオンラインソフト作ってるんだけどDelphiやBCBで作ったソフトよりサイズはかなり小さい。 分かってる奴にはいいけど素人だとファイルサイズが小さいと機能的に劣ってると思われる。 「余分なコード混ぜてわざとファイルサイズ大きくしてやろうか」とかたまに思う。 デバッグモードでコンパイルしたまま公開してみようかな〜。
>ファイルサイズが小さいと機能的に劣ってると おもわれない。気のせいだよ。 >萎えてきたのだけど 同意。Dock機能が悪いとか誰かが言ってた。
378 :
デフォルトの名無しさん :2001/01/28(日) 02:07
BCB5で、 チェックボックスや、 リストボックスなんかの同じ種類のものを まっさらなフォームに 二つ以上配置すると実行時にエラーがでて 実行できなくなるんだけど 何故でしょうか?
379 :
デフォルトの名無しさん :2001/01/28(日) 03:23
380 :
デフォルトの名無しさん :2001/01/28(日) 03:56
>>376 私は、vectorとかでソフトを探す時の基準として
サイズが小さいのを選びます。
機能が少ない(本当に必要なものだけ存在する)気がするので。
381 :
デフォルトの名無しさん :2001/01/28(日) 04:00
用途にもよるけど、常駐物だとでかいのは避けたいね。
382 :
378 :2001/01/28(日) 05:23
>>379 最インストールで直りました。
ありがとうございました。
初めて使ったので、これが仕様かと思ってしまいました……。
そんなわけないですよね。
クラス名や、中の宣言を書き換えても動作しなくて
てっきり自分のミスだと思っていました。
非常に盲点でした。
本当にありがとうございました。
383 :
デフォルトの名無しさん :2001/01/28(日) 05:38
Builderで作ったものを配るときは、かならずupxで圧縮してる…。
384 :
VBから移行の名無し :2001/01/28(日) 17:42
画面に文字を書こうとしただけで例外が発生します。 Image1->Canvas->TextOut(0,0,"ABC"); としたら、 EAccessViolation 読み込み違反 になってしまいます。 どうしたもんでしょう?
385 :
デフォルトの名無しさん :2001/01/28(日) 17:44
Image1->Freeされてない? Image1がまだ生きてるかどうか確認してみたら?
386 :
384 :2001/01/28(日) 18:06
>>385 Image1->Freeはしてないです。
スタティックリンクでコンパイルすると例外になります。
BCB5.0です。
387 :
デフォルトの名無しさん :2001/01/28(日) 20:55
>>386 Image->Pictureがビットマップじゃないと、EInvalidOperation出るけど。
388 :
386 :2001/01/29(月) 21:02
レスありがとうございました 原因はメモリ不足のようです。 48MBでは少ないのかな?
389 :
デフォルトの名無しさん :2001/01/30(火) 00:46
>>388 メモリ不足?
リソース不足なら聞いたことあるが・・・
スワップファイル確保してる? > 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はスコープから出たら自動的にデストラクタが働くのですよね?
393 :
392 :2001/01/31(水) 20:15
>.391 外しているかもしれませんが、 BCB でしたら IDE で hookdll.cppをダブルクリックして 自動作成される プロジェクトファイルだと ilink32 のオプションで .def ファイルが指定 されるはずです。
394 :
392=393 :2001/01/31(水) 21:05
やはり思いっきり外していましたね BCC32,EXE には pragma data_seg の機能が無い為のようです 調べて見るとpragma codeseg しかないようです。 BCC32 /S オプションで アセンブラ出力して SECTION 名を書き換えるしかないかもしれませんね
395 :
デフォルトの名無しさん :2001/01/31(水) 21:22
最近BCBを入れたのですが、初期設定で、 保存する時に勝手にバックアップファイルを 作ってくれるようになっていますよね。 その設定ってどこで変えられますか? ごめんなさい。ウザい質問だっていうことは分かって るんです。でもどうしても見つからない〜〜〜!!
396 :
392 :2001/02/01(木) 11:15
BuilderはDellphiと比べて暴走させ易いですよ だからバックアップファイルを作ってくれる仕掛けに 何度か助けられた経験があります。
396に同意するが、ツール−環境オプション−表示
>>396 -397
教えてくれてありがとう!見つかりました。
まだ2,3回しか使ってないんで、色々試して
みようと思っているんです。
本当にどうもありがとうございました。
399 :
デフォルトの名無しさん :2001/02/02(金) 19:24
BCB4 Proなんですけど、Excel2000にデータを書き込んだり する事って可能なんでしょうか? 色々とさがしてみると、Access2000とかなら見つかるんですが、 Excel2000は見つからないんです。 BorlandのページにWord97というのは見つかったんですが・・
400 :
392 :2001/02/02(金) 21:31
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") );
メソッドの使い方は何となくわかったのですが、プロパティーの
使用方法がよくわからないのです・・・・・
大先生がた、教えていただけませんでしょうか。
kylixはフリーだ!やったね。
403 :
名無しさん@お腹いっぱい。 :2001/02/05(月) 23:36
>401 theRange.OlePropertySet("Value","0123456"); じゃだめか?
406 :
デフォルトの名無しさん :2001/02/08(木) 06:14
C++Builderで、軽めの256色のペイントツールを創ろうと思うんですけど 何かよい参考ページはないでしょうか? とりあえず、SDIベースで、パレットは別ウィンドウにしようかと 思ってるのですが、 TBitmap、TImage、をベースに 内部ではDIBを生成して、いじろうと思っています。 こういう関連の高速なやりかたを紹介したページってありませんでしょうか?
407 :
turbo type D :2001/02/08(木) 13:37
知りません。
408 :
312 :2001/02/10(土) 11:26
>>406 ペイントツールでなくドット絵ツールなら、激しく応援するぞ。
410 :
406 :2001/02/10(土) 20:19
>>409 ペイントツールというか、まさしく
ドット絵ツールを創りたいと思っています。
今あるドット絵ツールは、
ちょっと痒いところに手が届かないものが多いので……。
といっても、いまは多忙なのですけれど……。
一段落ついたら、真面目に取り組んでみようと思っています。
Builder制ドット絵ツールってないんでしょうかね?
>>410 痒いところに手が届かないってのは結構いえてるなー。
最近のはいらん機能が多すぎる。ドット絵用の機能が他にあるだろ!みたいな。
余裕があれば俺も作りたいところ。
既成のでそこそこいいのはあるからそういうのをベースにできれば楽なんだけど。
というわけで、できたらソースコード公開キボーン。
Builderに直接関係ないのでsage
412 :
319 :2001/02/10(土) 22:11
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の正しい姿です(藁
416 :
turbo type D :2001/02/21(水) 09:37
最近ぴか虫さん見ないなぁ どこへ逝ってしまったんだ・・・
418 :
デフォルトの名無しさん :2001/02/26(月) 08:20
>>413 一般ユーザーでインストールした?
Adminでインストール後、一般ユーザーでレジストリのみインストールするのん(だったはず)
419 :
デフォルトの名無しさん :2001/02/26(月) 08:23
>>416 あ、いや、いくらなんでもこのソフトは…ちょっと…
この人のページ自体は役に立つんだけどね。
>>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)指定 がされているようなのですが、 どうやったらまっとうにリンクできるでしょうか?
>>420 いや、undo以前の問題だってば…
まあ、これはあからさまに勉強用やね…。
元投稿者は確か勉強用なソースを欲しがっていたようだが。
424 :
デフォルトの名無しさん :2001/02/26(月) 18:18
BCB4です。BCB環境がない人用に 「共有RTL DLLを使う」をOFF 「実行時パッケージを使って構築」をOFF にしているんですが、実行ファイルのサイズが異様に大きくなってしまい困ってます。 なんとかする方法ありませんか?
プログラミングやめましょう。
427 :
424 :2001/02/26(月) 21:30
いや、そう冷たいこと言わずに、なんとかお願いしますよ。 「実行時パッケージを使って構築」のうちナニかを減らす手段とか、 なにかないもんですかね?
428 :
デフォルトの名無しさん :2001/02/26(月) 22:37
マジレス。 VCLがでかいんでVCLをとっぱらう。 (VCL下では実行サイズがデカイという文句は言ってはいられない) そこからがスタート。 あとは、Win32APIごりごりとかMFC(wara)とか、WTLとかお好きにどうぞ。
>>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がよーわからんから手を出してない)
茶々いれなので下げ。
431 :
430 :2001/02/27(火) 00:37
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書く時、寝てたみたいですね 文がダメダメですなぁ〜
>>427 プロ版以上ならInstallSheldExpressがついてるでしょ。
DLLを使うをONにして、インストーラーでDLLを配布しよう。
簡単だよ。
アンインストーラーも自動的にできちゃうし。
製品みたいで凄いって喜ばれるよ。
ほとんど何もしてないのに。
>>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をつかいたまい
C++ Builder付属のSTLって何製ですか? やっぱりHP?
443 :
442 :2001/03/01(木) 15:33
ああ、さげちゃった。
445 :
デフォルトの名無しさん :2001/03/01(木) 16:02
446 :
442 :2001/03/01(木) 16:24
>445 ありがとうございます。 RogueWave製だからどうしたってことはないのですが・・・。
ふー・・・gifを見ようとOleLoadPictureを調べてるけど、使い方が分からない・・・ けどもうちょっとだけ、がんばってみる・・・ ダメだったら助けて・・・・・・(泣
448 :
デフォルトの名無しさん :2001/03/01(木) 23:32
>447 google 逝け!
449 :
デフォルトの名無しさん :2001/03/01(木) 23:35
>447 OleLoadPictureFileつーのがあるな
>448-449 ぐーぐるは真っ先につかったけど・・・MFCサンプルしかないの・・・。 まぁ、コピペだけで出来るとは思ってないけど。勉強にもならないし。 取り合えずVCLのソースを眺めていたら、 OleLoadPicture(TStreamAdapter.Create(Stream), 0, True, IPicture,FPicture) って使っているのは見つかった。 4番目の引数は IID_IPictureにすればコンパイルは通った。 最後の引数はTPictureだから、これでTImageにつなげられるかな。 問題は、最初のTStreamAdapterってのか・・・。ヘルプにも載ってないし・・・。 TOleGraphicを調べたほうが早いかなぁ・・・。 もうちょいがんばってみる。ってわけで、下げ。
451 :
421 :2001/03/02(金) 12:06
一応出来た・・・けど結局コピペの塊。逝ってきます。 { 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は?
>>452 >int mona = 26.46;
intに少数を代入している意図は?
やたらとスレッド作ってしまいすみませんでした。 あと、現在のように他の方の話題なのにこのように別の書き込みをするのは 失礼にあたるのでしょうか。 ご質問よろしくお願いします。 C++ビルダー4.0を使って、ダイレクトXを利用したソフトはつくれるんでしょうか。 そういうの紹介しているHPとか。こつがあれば教えてください。m(_ _)m
>>453 なにぃっ!? まさかそのものズバリのAPIとかがあるとか・・・?
って違うか。それは、誰かが作ったコンポーネントかなにか? 後で調べてみます。情報ありがとう。
けどとりあえず、自分の力(とWIN様の力)でやってみたかったの。
>>454 ただのおちゃめ(嘘)
・・・あうー(恥 恥ずかしいんでsageさせて
457 :
デフォルトの名無しさん :2001/03/06(火) 09:50
>455 DelphiX っつーのがあるらしい。(DirectX スレで聞きかじった)
458 :
デフォルトの名無しさん :2001/03/06(火) 14:25
459 :
デフォルトの名無しさん :2001/03/06(火) 20:03
>455 DirectX SDKのヘルプ見ながらやれば作れるよ。 自分で初期化とかやるのが面倒ならコンポーネントを探してきなさい。
>>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でいけるかもしれません・・・が、自己責任でやってください。
よふね、大変やね(w 私もDelphiX/QDはBCBに持ち込めなかったような記憶してる。 ところでマニアクス荒れてるね。ヤダヤダ
463 :
デフォルトの名無しさん :2001/03/10(土) 00:42
Performance Graphってどういうことができるの? できたら、使い方も教えてください
464 :
デフォルトの名無しさん :2001/03/10(土) 01:21
465 :
デフォルトの名無しさん :2001/03/10(土) 02:29
バックグラウンドコンパイルにしていたら、コンパイルが遅くなる?
しらねーよ、じゃはずせよ。
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
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だけでも構わないのでご指導を
よろしくお願いします。
とりあえず、このヒトは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
大変失礼しました。 どうやら質問する板を間違えてしまいました(><) 本当に勉強不足でどうもすみませんでした。 他のトコで質問しなおします。
ちなみに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をやったのですがグラフィックの描画の仕方が 分かりません。 一応参考書を買ったのですが昔のやつしか載ってませんでした。 これはきっとヘッダをインクルードして使うんですよね? どうすればよいのでしょう・・・。
>>486 悪いこといわないから C++Builder を買え。
VBでもVCでもDelphiでもいいけど。
とにかく、無駄なことに時間を使いたくなければ買え。
それだけの価値はある。
VB持ってるけどなんとなくCを学びたくなったんですよ〜。 今デフレだしあまりソフト買いたくないんです。
>>488 それならVBでグラフィックやればいいじゃん。
490 :
初心者 :2001/04/05(木) 17:39
殺すぞコラ!
>>490 基地外か。
それともネタか。
それが問題だ。
493 :
デフォルトの名無しさん :2001/04/05(木) 19:10
あの、photoshop プラグインをC++Builderでビルドしてみたいんですが、 1.DLL のexport で、 foo と bar@16 の2つがあるもの。 2.外部ビルド(リソースの変換をしたいので) って、どうやるんでしょう。ヘルプをうまく検索できなくて困ってます。
494 :
デフォルトの名無しさん :2001/04/05(木) 19:34
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++; } }
499 :
497および498 :2001/04/06(金) 19:27
バグって二個書いてしまいましたすいません。
500とっぴ
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
508 :
505 :2001/04/08(日) 02:18
>>506 リンク先を見てやったらできました。
ありがとうございました。
509 :
デフォルトの名無しさん :2001/04/08(日) 08:25
BCCを使っているのですがVCLというやつは手に入るのでしょうか。 もしくはライセンス的に配布してはいけないのでしょうか?
510 :
デフォルトの名無しさん :2001/04/08(日) 09:57
っていうか、bccで作った奴って配布も販売も禁止
>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;
516 :
514 :2001/04/10(火) 11:31
515さん、どもです。 メモリー上にbitmapを作ってそれをファイルに落としてLoadFromFileをするってことですよね? でもちょっとファイルは介在させずにやりたいのです。。 やりたいことは 別フォーマットの画像ファイルを読み込む(たとえばYUVとかの)。 それをメモリー上でbitmapに変換する。 メモリー上にあるbitmapを直接表示する。 です。何か良い方法はないでしょうか?宜しくお願いしますですです。。
ビットマップはメモリ大量に必要だから VirtualAlloc、VirtualFreeで必要分確保。 しかし仮想メモリって結局ディスクアクセス発生するから テンポラファイルでもいいんでわ?
TBitmapってDIBだからメモリー上のbitmapなんですけど。 だからTBitmapに対して描画してやればいいのでは?。
519 :
デフォルトの名無しさん :2001/04/11(水) 10:10
どなたかBCC用のスレ作ってくれませんか? 最近始めたばかりなんですがけっこう分からないこと多くて。 勝手ながら俺はスレ作るの苦手なんです。 お願いします。
520 :
デフォルトの名無しさん :2001/04/11(水) 16:50
521 :
デフォルトの名無しさん :2001/04/11(水) 17:51
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して真中の値をとる。それだけだろ。 その質問からはこれしかでない。
526 :
525 :2001/04/13(金) 18:11
527 :
名無しの笛の踊り :2001/04/14(土) 00:36
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;
529 :
527 :2001/04/14(土) 04:24
>>528 なるほど。
なんだか見えてきたような気がします。
早速のレスありがとうございます。
ただ当方まったくのC++Builderズブなので
動作確認のレスをいつ付けれるか分かりませんが…
531 :
デフォルトの名無しさん :2001/04/15(日) 18:03
Builderの便利技って結構ありそうなんですが どんなの知ってますでしょうか? 僕の知ってるのはTMainMenuのTMenuItemが Drag&Dropで項目間移動できるとか、同じく TMenuItemのCaptionにファイルとか入れると 名称が勝手にFile1などとなるって奴ですが..
532 :
デフォルトの名無しさん :2001/04/15(日) 18:24
533 :
デフォルトの名無しさん :2001/04/16(月) 01:34
>>531 >僕の知ってるのはTMainMenuのTMenuItemが
>Drag&Dropで項目間移動できるとか、
え、これどうやるの?
やってみたけどできないよ。
BCB5でコンパイルする必要があるのかな。
(試したのはBCB4)
534 :
デフォルトの名無しさん :2001/04/16(月) 01:37
535 :
533 :2001/04/16(月) 01:58
な〜る (^^;
>>531 ボーランドの方ですね?日曜出勤ですか。こんなクソ掲示板で会社のための
話題づくり、大変ですね。誰のためにもならないくだらん便利技よりバグの
一つでも取っていただけませんかねぇ。
>>536 くだらんのはお互い様だと思うけど、
それより、日本のボーランドって実際どれくらい
C++Builderに関わっているのでしょう?
例えば
>>536 の言うようにバグを日本で修正できたりとか、
それとも日本語化だけ担当しているとか。
知っている人いる?
538 :
デフォルトの名無しさん :2001/04/16(月) 07:27
>>537 一人もいないよ。笹塚は代理店業務と翻訳家調達だけ。
540 :
デフォルトの名無しさん :2001/04/16(月) 10:41
Delphiシェルプログラミング入門の本を書いた子が Borlandの営業にいってるんですよね。 あのレベルのことがわかる人間が営業してる Borlandってもったいない事してるなと思うんだけど。 あのレベルのことわからないと営業すらつとまらないの?
541 :
デフォルトの名無しさん :2001/04/16(月) 12:01
Aらいさんのことだね? Nifty/FDelphi で活躍しておった。 上司がO野さんだからな。いいんじゃないの? 二人が所属しているのは営業ではなくマーケッティング。 Java とか Windows 知らない人間が販売戦略練るような会社の 開発製品、使いたいと思うかい?それができるのは MS のような 所だけ。 自社製品使ったことがない/使えない人間が開発ツールの営業/マーケの リーダーになった日にゃ、社員は逃げ出すよ。某四万十社のようにな。
>四万十社 その当て字、ワロタ。
543 :
デフォルトの名無しさん :2001/04/16(月) 12:43
そう、Aらいさんのこと。 だけど、マーケって技術色とはまた毛色の違う事でそ。 JAVAとかWindowsの詳細を知らなくても販売戦略は 寝る事ができるよ。練れなきゃマーケとして氏に鯛でし。 少なくともシェルの事あそこまでしってるマーケの人なんて この世の中のどの会社を探しても見当たらないだろね。 人材登用の間違った方向性。 マーケの人間は情報として開発ツールの内容をしってれば いい事であって、実際に使ってしかも 使いこなしている人間をマーケにする必要ないでそ。 そのあたり、Borland適材適所とは程遠いんだわ。 営業/マーケのプロを外部から入れるべきだね。 技術によりすぎて、いっつもマーケこけてるのは 周知のとほり。 >上司がO野さんだからな。いいんじゃないの? で、上司が○野さんだからという理由で Borland製品が売れるのなら企業としていいんだけどね。(w 四万十は製品もマーケもクズぞろいだっただけかもね。
>>543 (文体を無理に変えると読みづらいぞ)
元々その程度の人だったんじゃないの?
本書いたからって、その人の能力と同義では無いよ。
545 :
デフォルトの名無しさん :2001/04/16(月) 14:17
なるほど、本人がマーケ希望という可能性もありますね。 ところでBorland開発チームの内情って どんなのでしょうか? 確かJBの開発には日系か中国系の人が参加していたと 記憶しているのだけど。
>>545 各 IDE の Easter Egg に日本人風の名前がいくつでてくるか数えてごらん。
JBuilder は顔写真まで入っているからわかりやすいかな。
547 :
デフォルトの名無しさん :2001/04/17(火) 11:09
各 IDE の Easter Egg の堕し方がわかりません
548 :
デフォルトの名無しさん :2001/04/17(火) 22:18
もしかして、BCB44ProにはHTTPEncode(というかHTTPApp)が無いのでしょうか? もしかして、素直にこの前バージョンアップすべきだったのでしょうか?
服部誠の『Borland C++Builder 4 オフィシャルコースウェア基礎編』 を持ってる方、感想教えて下さい。
551 :
デフォルトの名無しさん :2001/04/18(水) 01:05
>>548 それは俺も気になってた。
ヘルプとか見たらHttpAppとか平気で出てくるのに
なんで使えないんだ〜って。
BCB5 PROにはあるの?
>>547 バージョン情報でALT+'T','E','A','M'
"TEAM"以外でも"DEVELOPERS"ってのもあった。 他にもあるかもしれんからALTで音がしないキーを 拾っていってみそ。
>>553 スクロールが早くて目で追いきれない(じじい)。
目視では、TEAMが5人くらい、DEVELOPERSでは一人
確認できた。明らかに日本人ぽい名前だけね。
日本法人からの出向かもしれんし日系人かも知れん。 他には中国人らしい名前もある。
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を作成してプロジェクトに追加 ヘッダをインクルード これで良いのでしょうか。 >[リンカ エラー] 外部シンボル 〜 が未解決 になってしまって・・・。
マングル(名前変形)の問題ですな。 impdef -> 中身をエディタで確認、訂正 -> implib あるいは、 *.libファイルをCOFF2OMFで一発で通る事もあるかも知れん。
559 :
デフォルトの名無しさん :2001/04/18(水) 18:41
>>553 まとめてほしいなあ。俺の関わるマシン、音の出ないのばかりなのさ。
560 :
557 :2001/04/18(水) 19:16
558さま 名前の解決って、シンボルの先頭にアンダースコアとかいうあれでしょうか? defの中身を観察しましたが、ちょっと素人にはわかりませんでした。(汗 dllのソースから、BCB向けに再構築するという手もあるのですが・・・。
561 :
デフォルトの名無しさん :2001/04/19(木) 02:29
マングルされた名前 = されてない名前 @序数 か、 マングルされてない名前 = された名前 @序数 のどちらかだったと思う。埋めこみSQLでORACLEと 通信する時VCのインポートライブラリしか用意されてなくて、 (MSに対抗しているくせに気遣いないよね。ORACLEって。) こうしてうまくいった覚えがある。
ありがとうございます。ちょっと勉強してトライしてみます。
563 :
デフォルトの名無しさん :2001/04/22(日) 21:04
ゲームで60fps出そうと思ったら、やはりDirectXを使わないといけないのでしょうか? TPaintBoxを置いて、そこにTBitmapに描いた内容を転送してみたのですが、 ただ転送するだけで50fps位しか出ないので…
マングル返し。
>>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考えることないし。
569 :
563 :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に代入した値を参照するにはどうすれば良いのでしょうか?
CListCtrl& list=GetListCtrl(); int i = list.GetNextItem(-1, LVNI_SELECTED); if (i >= 0) { a1 = list.GetItemText(i, 0); a2 = list.GetItemText(i, 1); ... } つうのはだめ?
あ、VCだったよ、ごめんまちがえた
573 :
Dax :2001/04/24(火) 20:46
>>570 ShowMessage(ListView1->Selected->SubItems->Strings[0]);
こう?
574 :
570の名無し :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
579 :
Visor :2001/05/04(金) 02:35
Loadlibraryしてんの?>579
581 :
Visor :2001/05/04(金) 02:49
レスありがとうございます>580さん LoadLibraryというのは、「プロジェクトに追加」でchasen.libを追加することと考えてよろしいでしょうか。それは行っています。最初、それではエラーだったので、implibでlibファイルを作り直しました。 #include "chadll.h" も入れています。
リンクしてないだけだと思われ
583 :
Visor :2001/05/04(金) 08:13
HINSTANCE chasenDLL = LoadLibrary("chasen.dll"); でライブラリをロードして、 char *myanalyze = (char *)GetProcAddress(chasenDLL,"analyze"); で関数analyzeを取り出していますが、 analyze()を実際に使うとシンボルの未解決エラーでコンパイルできません。 DLLを使うのはほとんどはじめてでどうもうまくいきません。
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呼ぶのも遅そうだし、なんか方法ない?
587 :
586 :2001/05/10(木) 09:25
588 :
デフォルトの名無しさん :2001/05/10(木) 14:00
>>587 BmRegExpって奴ですな。俺もアレに一票。
589 :
586 :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の結果の上位ってどこにあるの?
590 :
586 :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++を知らない厨房的質問だとは思うのですが、 どなたか解決策をご存知でしたらご教授ください。
592 :
586 :2001/05/10(木) 19:10
__closure を使うのではないでしょうか? Delphiのメソッドポインタです
593 :
591 :2001/05/10(木) 19:26
>>591 ありがとうございます。
ちょっと調べてやってみたんだけど、上手くいかなかったんで、これから調査します。
グローバル関数のポインタテーブル自体はコンパイル通るんで、
メンバ関数への参照の問題の気がするんですが・・・。
594 :
586 :2001/05/10(木) 19:48
いや、そのコードじゃ通らないと思います。 オブジェクトを参照していませんから
595 :
586 :2001/05/10(木) 19:51
こんなふうなコードにする必要があるんじゃないでしょうか? void __fastcall (__closure *(func_list[]))() = { Form1.Func1, Form1.Func2, };
596 :
586 :2001/05/10(木) 20:07
もし
>>591 のように使いなら、
TMethod 型のポインタを作って Code フィールドにこのポインタを代入して
DataフィールドにはForm1を代入して、
これを __closure を使って作った メソッドポインタ型に型変換してから呼び出さ
なければならない筈です
標準C++で解決したいなら、 メンバー関数から: (this->*func_list[変数])(); 外から (Form1->*func_list[変数])(); メンバ関数へのポインタは、オブジェクトの実体がないと呼び出せない。 __closureはthisも併せて持っているので、this経由で呼べる。 その分、インスタンス無しで静的に登録しておく事はできない。 メンバ関数へのポインタを使う場合は、実行時にサブクラスのインスタンス経由で 呼び出す事もできる。・・が、使う事はほとんどないはず。
598 :
591 :2001/05/10(木) 20:50
ありがとうございます。
>>597 さんの方法でできたんですが、理由がサパーリです。勉強不足ですね・・・。
作りながら勉強します。
関数ポインタテーブルを使いたい場合、 ほぼ確実に設計が間違ってます。 仮想関数を使いましょう。
600 :
591 :2001/05/10(木) 21:06
ギャー、また知らない単語が出てきた。 ざっと調べたカンジ、基本クラスで派生クラスのメンバ関数を使うことらしいですが、 速度を稼ぎたいんでswitchの代わりに使おうと思ってるんですが、なんか間違ってます? つーか、クラスの継承なんてしていないというか分からないんで使えないんですが。 速さがほしけりゃ他のツール使えっつー突っ込みは無しの方向で、どうかひとつ。
>>600 ほぼ間違いなく、キミが実装した関数ポインタテーブルより、
継承して仮想関数を使ったほうが速いだろう。
ところでどういうことに使いたいの?
>>600 そうそう、関数テーブルをswitchの代わりに使って高速化という考えは間違ってない。
でもだね、C++の仮想関数は、まさしくそれをやるための仕組みなのだよ。
603 :
591 :2001/05/10(木) 21:30
>>601 趣味ゲー作ってて、主ステータスと副ステータスでswitchしてたら、
1関数が1000ライン超えて無駄な処理もバリバリ入り始めたんで、
ヤバイと思ってやり直すことにしました。
簡単なノベルゲーの積もりだったからそんなに量も逝かねぇだろうとか思ってたんだけど、
やり始めると色々欲が出てきてあれもこれもとなって……。
>>602 ありゃ、遭難ですか。
じゃあやっぱり、ちょっと止まって勉強することにします。
クラスの基本から。
604 :
デフォルトの名無しさん :2001/05/11(金) 13:14
「リファクタリング」読みましょう。サブクラス化でswitch文を なくす方法が書いてあります。例はJavaですけどね。
605 :
デフォルトの名無しさん :2001/05/11(金) 17:09
まず状態遷移を明確に文書化するべきでは?
>>604 探してみます。ありがとう。
でも、ちょっと高いですね・・・。
>>605 それも始めは要らないと思ってたんだけど、必要に気づいて書いてる途中です。
クソExcelで書いてるんで、効率悪いですが。
607 :
604 :2001/05/11(金) 19:56
>でも、ちょっと高いですね・・・。 高いですが、買う価値のある本です。とりあえず該当の場所を 立ち読みしてみては?
608 :
デフォルトの名無しさん :2001/05/11(金) 21:31
ListViewについて質問です。 プロパティで変えているところは RowSelectをtrue ViewStyleをvsReportです。 やりたいことは、マウスボタンを押して選択したら、選択行の背景に色を塗って マウスボタンを離したら元の背景色に戻したい。 選択行に色を塗るのはクリックしたら青色が自動でつくので解決。 元の背景色に戻すのはOnMouseUpイベントで ListView->Selected = NULL; にしたら色は元に戻りました。 が、選択行を囲ってある破線が消えません。 この破線の消したを教えてください。
>>608 はいよ。
ListView1->ItemFocused = NULL;
ListView1->Selected = NULL;
でもこの動作って、ウィンドウズの規則に反してないか?
蛇足かもしれないけど補足。 Selectedは選択状態のマークがつけられているアイテム、 ItemFocusedはキーボードで動かすカーソルのこと。 フォーカスを移動して、選択するわけね。
おぉ…もうレスが。
>>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; はなんかマズイような感じ
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 です。
615 :
612 :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;
でいいのかな?
TLabel(foo) とかは dynamic_cast<TLabel *>(foo) に置き換えられますよ。 出来ない時はコンパイラから起こられるから。 それにしても長いよね…。
>>615 おお、例外が出るのか。
ならちょっと違う。
dynamic_castで例外が出るのは参照のときだけだ。
ポインタ変換だと、NULLになるだけなのでやばい。
static_castならコンパイルエラーが出るからいいと思うんだけど、
例外を送出して欲しいなら、こう書くしかないな。
if (dynamic_cast<TCheckBox &>(*Sender).State == XX) YY;
>>616 コピーコンストラクタだと、スライシングが発生しないかい?
dynamic_castと等価なの?
てゆーか、SenderがTCheckBox *である事が確実な場合、
例えば、TCheckBoxのイベントでしか呼ばれない場合は、
static_castでもCスタイルのキャスト(
>>612 の形)でもいいんでないの?
推奨はされないだろうけど。
>>617 > static_castならコンパイルエラーが出るからいいと思うんだけど、
これってコンパイル時に変換可能かどうかわかるってことですか?
文法違反ではなくて、dynamic_castで0を返すような場合にってことです。
>>618 そこんところはわかりません。ごめんなさい。今の所dynamic_castだけで
事足りているので、static_cast等を使ってません。
ちょっと質問。 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なんてないから。
サンクス。
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なキャストだと思う・・・俺は。
あ、だから、 Sender as xxxとしたかった場所ではdynamic_castを使い、 xxx(Sender)としたかった場所ではstatic_castの方がふさわしいんじゃないの? が言いたかっただけね。
>>623 勉強になりました。キャストする場面や用途に応じて使い分けろ、
ということですね。
これからはstatic_castも使うようにします。
age
age
age
628 :
デフォルトの名無しさん :2001/05/14(月) 16:00
はじめまして、初心者です。 ASPにhttpでパラメータを渡してDB検索し、表を表示する処理をC++に移植しようとしております。 C++Builder5でInternetページのQueryTableProducerコンポーネントを使用すればASPのRequest.QueryStringと同じような働きが出来るようなのですが、ヘルプを参照しても実際の使い方が分かりません。何か参考になるサンプルソースか、情報があるページなど在りましたら教えていただけないでしょうか。よろしくお願い致します。
629 :
デフォルトの名無しさん :2001/05/15(火) 12:32
うーん、ないだろうなあ。 いい機能があってもメジャーなものじゃないと 使い方がわからないというのは かなりつらい。
631 :
628 :2001/05/15(火) 15:37
Delphiのソースも読めませんけどそれでも滅茶苦茶助かってます。どうもありがとうございます>630
632 :
デフォルトの名無しさん :2001/05/15(火) 16:10
ちょっと前にVC++かったばっかなんですけど 箱に入ってた、VC++以外のCDって何に使うんでしょうか? ちなみにProfessional Editionです
634 :
628 :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; }
IISの実行権限のあるフォルダにマップしてる?
636 :
デフォルトの名無しさん :2001/05/16(水) 02:42
Win98+BCB3でファイルのコピーを含むプログラムを標準ライブラリ系の 関数で作っていたら、対象ファイルのサイズが4GB近くて うまく動きませんでした(引数が32ビット符号付整数のため)。 VCL系のファイル操作関数はまだ試していません。 最近のUNIX系やVCでは_lseeki64()とか_lseek64()などの 関数があるようですが、BCB5ではどうでしょうか? あとVCL系のファイル操作関数は対応してますでしょうか。
637 :
628 :2001/05/16(水) 10:59
NTのadminiが不在でPWSで実行権限つけてやってみたら、ページとしては開きましたが、テキスト生成はできていませんでした。PWSだからダメなのでしょうか?
638 :
630 :2001/05/16(水) 11:18
当方もNTのPeerWebServerを使ってます。
フォルダの[読取][実行]は共にONです。
IUSR_<computer name>匿名ログオンの指定もしてます。
(ヘルプ参照)
[匿名を許可][クリアテキスト]も共にON
URLはローカルディレクトリを指定するのではなく、
http://computername/Scripts/hoge.dll の様に仮想ディレクトリのエイリアスで指定して下さい。
(呼びだし側のHTMLコンテンツも同じ。)
DLLを置換える時はWEBサービスを一旦停止する事を
お忘れなく。
639 :
628 :2001/05/16(水) 17:34
お蔭様で第1段階(WebModule1WebActionItem1Action)のバージョン動きました。 有難うございます。>630 が、次のPageProducerコンポーネントを使用したバージョンでコンパイルエラーが出てしまいました。 WebModule1WebActionItem1ActionでPageProducer1HTMLTagの内容を代入しているだけなのですが・・・。 Response->Content = PageProducer1->Content; が"E2235 メンバー関数は呼び出すかそのアドレスをとらなければならない"というエラーになってしまいます。初歩的な質問を繰り返し申し訳ありません。質問が不適切・板違いであればご指摘頂きたく。
変ですねえ・・・AnsiString型同士でoperator=を呼び出すから コピーが行われるはずなんだけど・・・ 変数に一旦代入してみては?
641 :
608 :2001/05/17(木) 00:06
またListViewについて質問です。 ViewStyleをvsReportに変えています。 列ごとに背景の色を変えたいのです。 On〜Drawイベントを使うのでしょうけれど、やり方がわかりません。 教えてくださいm(__)m
>>641 TCustomListViewから派生して、自分で全部描画するように
するしかないんじゃないかなぁ。
643 :
628 :2001/05/17(木) 09:35
申し訳ありません。やっぱりあほな間違いでした。 Response->Content = PageProducer1->Content(); 最後に"()"を入れていませんでした。Javaと同じだったんですね。C++は初めてで分かりませんでした。 愚問申し訳ありません。>630さん
644 :
630 :2001/05/17(木) 09:54
ああ、なるほど、TPageProducer側のContentはプロパティ じゃなくてメソッドでTWebResponse側はプロパティ なのね。(ややこし) 普段Delphi使ってると引数不要のメソッドは括弧付けないん で気が付かんかった。 っていうかメッセージ変えて欲しい。 「〜または関数呼出しの括弧がありません。」 しかしDBとかやるならDelphiのほうが有利な気がするけど 何故BCB選らんだの?周りにC++に詳しい人がいるなら別だけど。
645 :
608 :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];)
>>646 Pochi[j]->OnClick = foo;
648 :
デフォルトの名無しさん :2001/05/18(金) 22:37
IShellLink *aaaa ; と宣言すると、未定義のシンボルと言われちゃいます。 何をincludeすればいいんですか?
649 :
648 :2001/05/18(金) 22:45
Ver4だと #include "ShlObj.h" でできるんだけど、 Ver5だと怒られます。 どうして??
650 :
648 :2001/05/18(金) 23:04
Borlandのサイトで調べたら…Ver5のバグでした。 コンパイルオプションにNO_WIN32_LEAN_AND_MEAN を追加することで回避できました。 あー、ひどい目にあった。
age
age
age
age
age
656 :
作るの3回目 :2001/05/19(土) 18:53
>>647 なるほどわかりました。
一緒に書くべきだったことに今気づきましたが,
押されたボタンのプロパティには,どうやってアクセスするんでしょうか?
たとえば,イメージ的には,関数foo内で,
Pochi[i]->Caption=StrToInt(i);
みたいなことをする場合(要は,押されたボタンのCaptionに文字を書き込む)。
657 :
デフォルトの名無しさん :2001/05/19(土) 19:23
引数のオブジェクトが押されたボタンちゃうん?
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); }
どうでもいいけど、DirectoryExists()がパッケージなしでリンクできないのは なぜ?
661 :
wai :2001/05/22(火) 03:16
RichEdit上で表示中の単語文字列の間に線をひいたり、ネットワーク図みたいな自由に描画したいんだけれども、RicheditにはCanvasがなくて、どうしたものやらと困っています。どうかご存知の方お知恵をお授けください。
>>661 RichEdit1->Handle から GetDC したら?
けど,RichEdit の再描画と一緒にリペイントしなきゃいけないから
結構コードが複雑にならないか?
パスカルのソースで、Dsgnintf がないって言われんだけどさぁ、 BCB5からこのユニット、なんで消えてんの?
665 :
デフォルトの名無しさん :2001/05/22(火) 10:25
>>663 消えては無いと・・・ ToolsAPIにあると思うよ
コンポーネントの設計時に必要なだけのものだからアプリ開発時に入れなくて良いようにという発想なんでしょうね
BCBとはあんまし関係ないけど……。 GIFを読んでBMPに変えるだけのシンプルなツールを作ろうと思ったんだけど、 やっぱし権利関係でまずいですかね? 上手い具合に逃れる方法とかないっすか?
バイナリ暗号化ツールと銘打って、ドキュメントにも何も書かずに なぜかGIFストリームを流しこむとBMPストリームなって帰ってくる ようにする。だめか
668 :
デフォルトの名無しさん :2001/05/22(火) 16:24
>>悪魔の数字 Winの機能を使ってBitmapに変換できれば、問題ないんでないの?(というのが最近の解釈の主流だね)
TGifImageつかって、 英語のドキュメント読めませんといってりゃ問題なし GIfの特許を米UNISYSが所有しているということ すら"知らなければ"いいんじゃない。
第三十八条 法律を知らなかったとしても、そのことによって、罪を犯す意思がなかったとすることはできない。ただし、情状により、その刑を減軽することができる。
Winの機能って、OpenPictureDialogですか? GIF読めないんですが。
IEコンポーネントを使うって事かな?
Lempel氏ね!
IE4のデスクトップ統合して 縮小表示にしたらコモンダイアログでGifの縮小画像が表示される という話だったと思う。
OleLoadPictureってのがあるね。 このスレの真中らへんに腐ったソースあるよ。 これ使ってbmpに変換できるの確認した。 んぢゃ。 ああそうそう。ちなみにあのソース間違ってる(意味が無い)部分があるんで気を付けたほうが(・∀・)ィィ!よ 具体的には( ´∀`)こんな顔した奴。
あれ2重の意味で間違ってるやんそういえば。 monaって変数*そのもの*がいらないからね。
BCB4でもおっけーですか?
BCB5UP1+Win2kでやりましたー BCB4でどうなるかはしりませーん。 ただアレはC++だけで書かれているから多分大丈夫だとおもいまーす。 聞く前に試しましょう。
いや、試したんだけど、OLELoadPictureなんぞ無いといわれたから。 なんかインポートしないといけませんか? もしくはインクルード。
あー、すまん。 olectl.h だと思う。
すまんだなんて、とんでもないです。ありがたい。 とりあえずヘッダはあったのでこれから試してみます。 ところで、これがWin提供のAPIを使うからグレーなんでとぼけてもよさげなヤシですか? もちろん、自己責任ではありますが。
682 :
デフォルトの名無しさん :2001/05/23(水) 22:12
☆ぴかっ
/)_/) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,’ー’) <
>>681 きさま訴えるぞゴルァ!☆
_( U U) \____________________
許してたもれ
684 :
628 :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の方での問題について教えて頂きたく。
685 :
628 :2001/05/24(木) 17:21
自己レス ダイアログの方はDataBaseコンポーネントを使えば良いと分かりました。 で、NTの方はどうもBDEが入ってないからアクセスできないんでしょうか? BDEを使ってDBにアクセスしているプログラムをBCBが入っていないマシンで 動かすにはどうすれば良いのでしょうか?ランタイムみたいにして含められる のでしょうか?
>>685 BDEつかったアプリはBDE環境がないとうごかんです。
インストールシールドで配布するかDelphi6スレ見て
うまくいきましたぁ。 どうもありがとうございます>686
688 :
デフォルトの名無しさん :2001/05/26(土) 17:15
あげ おぶ えんぱいあ
689 :
628 :2001/05/30(水) 18:18
こんどはVC++で組んだプログラムをC++Builderに移植することになりました。 とりあえずそのままソースを追加してコンパイル掛けてみるとMFC関係 を直さなければいけないということは分かりました。 あと、それ以外で注意することとかありましたらよろしく?
>>689 「?」で終わってるのが
ヤンキーというかドキュソくさいです(ワラ
おらいりぃもBCB本出してくれないかなぁ・・・ でるふぁいが擬古猫らしいから、こっちは茂名亜で・・・
695 :
デフォルトの名無しさん :2001/05/31(木) 20:59
696 :
デフォルトの名無しさん :2001/06/01(金) 00:02
コードも解説も書いてあるんじゃん…
697 :
デフォルトの名無しさん :2001/06/01(金) 19:23
>これ幸いとばかりにユニシスはライセンス料の徴収を徹底して行う方針転換を断行する。それまでは徴収を免れていたGIFフォーマットを扱うフリーソフトに対しても、$5000という法外なライセンス料の支払いを要求してきた。 うそばっかりな板だな。
699 :
デフォルトの名無しさん :2001/06/01(金) 21:30
質問です。 C++Builderの仕事をたくさんしたいのですが、 どうしたら業界標準の開発ツールになってくれるのでしょうか?
700 :
デフォルトの名無しさん :2001/06/01(金) 21:35
>699 VCをたくさん勉強して、MSに入って、VCの開発チームに入って、 これまで以上にたくさんバグを入れる。がんばってね。
俺の記憶だと、ユニシスがGIFの使用料を実際に 徴収したとの話は聞いたことがないんだけど、 誰か知っている人がいたらソースおくれ。
>>699 案1 ボーランドがMSに買収される。
案2 MSがC++Builderのパクリ製品を出す。
704 :
デフォルトの名無しさん :2001/06/03(日) 20:15
WIN95で BCB 5Learningを使っております。 静的リンクで実行させると、必ず実行直前に"読み込み違反 EAccessViolation"が出てしまいます。 プロジェクトの再構築をしても同じです。 試しに、BCB起動直後の何も書き込んでない状態で実行させても同じ症状がでます。 よい解決策がありましたら教えてもらえませんでしょうか。
>>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やいくつかのフリーウェアでは問題なくコピー&ペーストできるのですが。 ペーストする際に他になにかするべきことがあるのでしょうか?
>>704 BCB4以前のプロジェクトをBCB5に移行すると、そうなることがあるよ。
BCB5の実行ファイルに、BCB4とかのライブラリをリンクしてハマる。
プロジェクトの設定や環境変数なんかで、BCB4以前のものが
混ざっていたら、それを消してからリビルドしてみよう。
>>706 Photoshopを持ってないから適当なことを言うけど、
24bitカラーの問題なら、
Image1->Picture->Bitmap->PixelFormat = pf24bit;
をやってから Assign してみたら?
ども。 プログラムアイコンにファイルをドラッグ&ドロップして 何か処理をさせるようにしたいんです。 ParamCount() と ParamStr() を使って ドロップしたファイル名を取得するようにしてるんですが、 ドロップする数が多いとエラーになってしまいます。 大量のファイルをドラッグ&ドロップできるようにするには どうすればいいんでしょうか?
709 :
706 :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;
}
>>708 DragQueryFile()じゃだめですか?
>>710 レスありがとうございます。
>DragQueryFile()じゃだめですか?
これってフォーム等に対するドラッグ用のAPIですよね?
私がしたい事は、あくまでプログラムアイコンに対しての
ドラッグ&ドロップなんです・・・。
712 :
706 :2001/06/05(火) 09:39
713 :
デフォルトの名無しさん :2001/06/05(火) 10:41
ショートカットをドラッグ&ドロップされた時は、ちゃんとターゲットを 開くようにしておくべし、って感じですか?
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です。よろしくお願いします。
717 :
turbo 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コンポーネントが便利。
>>715 Excelで描いた図形がファイルに落せるから便利だよね。
BMPからさらにJPEGに変換して図説をWebに上げる事も出来る。
(解像度はGIFの方がいいんだろうけどアレだしな。)
719 :
715 :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()とかを使わずに直接読んで代入できるメソッドってないですか? つまらない質問かもしれませんがお願いします。
724 :
turbo type D :2001/06/19(火) 10:28
>>723 TStringList->LoadFromFileじゃだめですか?
725 :
723 :2001/06/19(火) 11:35
>>724 あ、そうか。そうですね。それで大丈夫です。
ありがとうございます。
アホだなぁ、俺。
>>724 TStringList->LoadFromFile
と書くと非常に分かりやすいですが
正確にはTStrings::LoadFromFileですね。
TStrings *str = new TStringList; なんで名前が違うんですかね?
typedefじゃなくて?
>TStrings *str = new TStringList; >なんで名前が違うんですかね? TStringListの仮想基本クラスがTStringsなんだよ
>>727 >>728 -ヘルプより引用-
TStringList は TStrings によって提供される抽象プロパティおよびメソッドを実装し(以下略)
Builderで遊べるようになったらオブジェクト指向プログラミングの勉強をしてみるとよいと思われ。
731 :
turbo type D :2001/06/19(火) 16:01
TStringsは Memo1->Linesなども共通に扱える抽象クラスですね。 StringListにAddするのも Memo1->LinesにAddするのも同じ扱いに出来ます。 TStringsが使われてる所は他にも沢山
なぜ、sage進行なの?
>>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です。 対策を教えてください。
737 :
735 :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です。
739 :
735 :2001/06/21(木) 13:12
同じbprをBCB3でコンパイルすると何のエラーも出ませんでした。 BCB3でコンパイル出来て5で出来ないだけのようです。 Googleで検索してみたのですが #include <vcl/utilcls.h>を加えれば 大丈夫だ という情報しか出てきませんでした。
740 :
デフォルトの名無しさん :2001/06/21(木) 14:25
builderがもうバージョンアップされないって本当ですか?
>>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の圧勝だけど
ただし、肝心のVCLはObjectPascalだから注意ね。 それでBCB買って泣いてた友人を知っている(藁
746 :
735 :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]; };
パスカルってどんな言語なんですか?
ウチのBCB4には TAutoArgs(TAutoArgs& src); がない。
749 :
735 :2001/06/22(金) 11:01
文法的に間違いはないですよね? 何故エラーが出るんでしょう?
>>747 もともとは教育用言語。(BASIC+C言語)/2って感じ。
ObjectPascalはそれにオブジェクト指向しやすい要素を加えたもの。
知識人のつっこみ可。
751 :
デフォルトの名無しさん :2001/06/22(金) 12:41
スターリンが飼ってるアライグマの名前だよ。
状況を無視した単純比較ならBCBがDelphiより優れた部分はC言語のヘッダー使えること位。
なんでコンパイルが速いんですか?
755 :
デフォルトの名無しさん :2001/06/24(日) 01:05
曖昧さの少ない言語仕様だからじゃねーの? ま、言語の好き嫌いで選べばよし!
756 :
デフォルトの名無しさん :2001/06/24(日) 13:27
>>711 ParamStr()か_argv,_argc使った方が簡単
758 :
ナナシサソ :2001/06/25(月) 13:27
2バイト文字の混じったAnsiStringの部分文字列を取得したいのですが、 SubStringは2バイト文字には対応していないそうです。 他のクラスに置き換えとかすれば良いのでしょうか? Stringとかに替えてみましたが、うまく行きませんでした。 解決法ご教授願いたく。
759 :
turbo 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)); } //---------------------------------------------------------------------------
謝
761 :
デフォルトの名無しさん :2001/06/26(火) 15:15
DelphiのソースをBCBのソースにコンバートする ツールって無いですか? BCBでコンパイルできないコンポーネントとかを いじりたいんですけど、手作業だと面倒なんで。
762 :
デフォルトの名無しさん :2001/06/28(木) 16:02
763 :
YO :2001/06/28(木) 19:19
あるディレクトリのファイル一覧をTMemoに書き出したいんですが、 最後の一つしか表示されません。 -- struct dirent *ent; while ((ent = readdir(dir)) != NULL ) { Memo1->Lines->SetText(ent->d_name); } -- SetTextというのが間違ってると思うんですが、どういうのを使えばいいんでしょうか。
764 :
YO :2001/06/28(木) 19:35
Add()でできました。
765 :
デフォルトの名無しさん :2001/06/28(木) 23:27
フォームにコンポーネントぺたぺたはっつけると、 フォームクラスのメンバにはっつけたオブジェクトをポインタで宣言することになりますよね。 その後インスタンスを作ってないのに何でメソッド呼んだりプロパティいじれちゃうのかわかんないです。
自動で作られてる。詳しくはしんない。
767 :
はげ :2001/06/29(金) 00:01
メールクライアントの通信を監視するようなソフトって どうやって作るのでしょうか? OutlookExpress等ののメールソフトの定期受信を監視していて、 ヘッダだけ抜き出して表示する、みたいな。
>>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とかを参考にして下さい。多分かなりめんどくさい。
772 :
YO :2001/06/29(金) 14:15
AnsiStringから*charへの変換はどうすればいいんだい。
773 :
YO :2001/06/29(金) 14:26
AnsiString hoghoge.c_str()でできました。
>>YO 自己解決するのは素晴らしいが、書き込む前に10分だけ調べてみたらどうだ?
775 :
YO :2001/06/29(金) 15:15
>>774 うーん。たまたまなんだけど。書き込む前に1時間ぐらい調べ天だけど、
思わぬところから理解したりするんです。
C++は始めたばっかなんで、理解度が低いからだろうけど、頑張ります。
C++builderをキチンと理解できれば、VC++とかもすんなりいけますか?
C++を理解すればVC++もすんなりとは言わないけどいけるんじゃないかな? ただ、Builder⇔VCは、C++を介してるだけで、ツールとしては全然別物。
777 :
YO :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の実体、あるいはラッパーが含まれていないと いけないのでしょうか? それともコールするときに何かおまじないが必要なのでしょうか。
msimg32
781 :
YO :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では使えないのでしょうか?
使えるんじゃないの?
786 :
デフォルトの名無しさん :2001/07/04(水) 17:45
>>783 スタイルにTVS_CHECKBOXESを追加すれば作れるけど、
標準のコンポーネントでは何故か対応してないね。
しかし、このスレはまともな回答つかなくなったね。
Delphiの方はまだ親切な人多いみたいだけど・・・。
まともな質問ならBCB MLに投げた方がいいよ。
分散しすぎ。Delphi / Kylix だけで3つもスレがあるんだから。 VCL の話はそっちでまとめてもらいたいもんだ。
Borland統一すれがいるかも。
>>788 そこまで統一するのはどうかと思う
それならMicrosoft統一スレ作ってVB、VC、VS.NETを全てブチ込むかい?
790 :
デフォルトの名無しさん :2001/07/09(月) 16:53
>>783 コンポーネントになってないTreeViewのソースならつくったよ。
分離は自分でやってね。フィードバックしてくれるとうれしい。
ってありがたくないか(w
パスカルソースからcppへの変換って意外に簡単にできるよ。
792 :
デフォルトの名無しさん :2001/07/09(月) 17:28
793 :
はてな :2001/07/09(月) 18:47
サーバーアプリから呼ばれるdllを作成しております。 サーバーアプリのWebModule上で作成したTQuery オブジェクトは実行時に、ちゃんと実行先のDBを 見に行くのですが、DLLとしてDataModule上に作成 すると、作成時(コンパイル時?)の環境のPassを 拾ってしまい、サーバーで実行すると例外が発生 してしまいます。 TQueryやTDatabase等のコンポーネントが実行先の サーバーサイドのDBにアクセスするようにするには、 どうすれば宜しいでしょうか。
>>793 接続には何使ってるの?BDE?ADOExp.?IBX?
自APのパスをApplication変数のExeNameから取ってるのなら
DLLではその変数が初期化されないから駄目だね。
Iniファイルか何かに設定持つなどすれば?
そこでεπιστημηに虐められたのか? プログラマの性格としては普通だろ。 親切な奴なんかいるのか?
796 :
デフォルトの名無しさん :2001/07/10(火) 01:09
>>795 あれで済むならマシな方じゃねぇか?
俺だったら「何言ってんのかさっぱりわかんねぇ。質問の仕方でも勉強
してこいや」でけっ飛ばしてるぞ。
俺も先輩にそうやって鍛えられたしな。
っつーか、仕事ってのはそんなもんだ。
誰もが手取り足取り教えてくれるなんて思ってんのはアマチュア。
798 :
ジーコ :2001/07/10(火) 02:04
>795-796 お前らのくだらねえ負け犬哲学を聞きに来てる訳じゃ値園だよ。
>>790 具体的に性格が悪いことがわかる書込みと何で性格悪いのか提示してくれ。
>>800 読んだけどどこが性格悪い書込みなのかわからんかったから。
802 :
はてな :2001/07/10(火) 14:33
>>794 Oracle ODBC Driver です。
OracleでLAN内のデータソース名を設定していて、そちらの方で
接続は確認できております。サーバーのODBC設定も当然してあるので、
サーバーで初期化できればちゃんとDBにアクセスできると思っておりました。
どうやらそれが難しいようなので、別の手を考えようと思います。
直接Pathを指定できるドライバにすれば良いのですよね。
う〜ん、DB関係苦手だ・・・・(^^;
Pass×→Path● 鬱ダ死脳・・・
上げてしまった・・・スマソ
[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の実数部を単独に設定する方法はありますか? 以上
>なぜマニュアルを読まないのですか? エピスてめーにはきいてねえんだよ
>>804 ふつーの反応だと思うが。
マニュアル読めば書いてあるようなことを堂々と質問する方がどうかしてる。
なぜMSDN(英語)を読まないのですか? なぜVCLソースを読まないのですか? なぜBorland有償サポートを使わないのですか? なぜ....自分だけで解決しようとせずに人に聞くのですか? 調べればわかるような事を堂々と質問する方がどうかしてる。 という風にあなたは言われたいですか? どうかしていると思うなら無視しておけばいいのに 回答にもならない返事を書いて ストレス解消しているεπιστημηは逝ってよし
>>807 言われたかないから自分で調べるんだろう。馬鹿か?
809 :
デフォルトの名無しさん :2001/07/10(火) 16:59
教えて君を放置しておくと教え魔とセットで増殖していって、 「トラフィックは多いのに有用な情報はそのうちのごく一部だけ」 という状態になりがち。 (というか、プログラム系のメーリングリストで一日に何十もトラフィック があるようなところは、そうなってる所が多い)
>>808 ふつーの反応だという答えがあったから
それが普通の反応だとしたら
こうなるという例を出してやったんだろ、会話も出来ないバカか?
>>808 >>809 ではそういう所行くな。
他の言語や他の分野の勉強した事ないのか?
自分が初学者の立場にたったとき、
>なぜマニュアルを読まないのですか?
といわれたいらしいな。
>>807 ストレスの原因になる書き込みを平気でする奴に問題があると思うが。
>>810 例?って↓これか?
>なぜMSDN(英語)を読まないのですか?
>なぜVCLソースを読まないのですか?
>なぜBorland有償サポートを使わないのですか?
>なぜ....自分だけで解決しようとせずに人に聞くのですか?
どれ一つとってもなんも問題ないように見えるが。
MSDN(英語)を読めばわかるようなことを訊く奴は英語がわからないドキュソ。
VCLソースを読めばわかるようなことを訊く奴は分不相応のことをしようとして
いるアコガレ厨(ソースを読まなきゃわからんようなことが必要になる前に
設計でなんとかなる場合が多い)
そもそも有償サポートが必要になるほどの深刻な事態を他人にタダで訊こう
という奴はよほど図々しいか、事態を把握できていないドキュソ。
いろんなものを学んできた人から見ると どんな事であれ、新しい物事を学ぶ際には 自分自身がドキュソになるという事が言いたいのです ドキュソを馬鹿にしていると、自分がドキュソになった時 跳ね返ってくるのじゃないでしょうか。 よく知らない分野の事をたずねるに 具体的に質問しているのに 上級者の人から 「どうしてマニュアル調べたらわかる事を聞くのですか」 と一言だけ言われたら、私はいい気分はしません。 いろいろな物事に関して広く知っている人は 知らない知識を得ていく中で 初学者である事は多いので そういう事は身にしみていることと思います。 初学者でありドキュソの人を切り捨てるようなことをする人は あまり物事を広く知らない視野の狭い人のように 周りから見られてしまいませんか?
調べれば分かるであろうことを人に聞くのと、 調べても分からないことを人に聞くのじゃ大違い。 後者をドキュソと呼ぶならドキュソ歓迎だが、 前者をドキュソと呼ぶならお断り。 そもそも未来も感じられないし、フィードバックしてくれるとも思えん。 「どうしてマニュアル調べたらわかる事を聞くのですか」 と言われて気分を害しようが、聞いたほうが全面的に悪い。 勝手に気分を害されていてクレってカンジ。
残念だか視野の狭い人にはあまり言葉は通じないか。 いろいろ経験積んでくれとしかいえないな。
よく知らない分野ならなおさら「まず自分で調べる」が重要だろう。 まず自分で調べた形跡のない様な質問をして罵倒されても文句は言えない。 初学者だからって調べもせずに人に訊いて良いというわけではない。
横から失礼します。 最初はリンク先を見てなかったので、 そりゃ調べもせず聞く教えてくんが悪いだろう、と思ってましたが 「マニュアルに書いてあります。」 と書けばすむことを、わざわざ 「なぜマニュアルを読まないのですか?」と、 答えるあたりに性格の悪さが見え隠れします。 そこのBBSって質問に対して答える系のBBSじゃないんですか?
>「マニュアルに書いてあります。」 >と書けばすむことを、わざわざ >「なぜマニュアルを読まないのですか?」と、 >答えるあたりに性格の悪さが見え隠れします。 どっちの答え方をしても「意地悪い」ってとられるよ。
>>817 何を質問してもいいってもんじゃないだろう。
>>818 どっちも大して違わないと言う意味では同意。
意地悪ととるかどうかは主観による。
820 :
デフォルトの名無しさん :2001/07/11(水) 00:32
致命的なエラー:VCLDBX50.LIBが開けないといわれます(T_T) どうしたらよいのでしょうか? C++Builder5Learningです。アップデート1も入れてます。 BPRファイルを検索してVCLDBX50.LIBの文字列を削ったりもしましたが、 ダメでした。CD-ROMにも入ってないし、Googleで検索しても わかりませんでした。
>>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はあるのですが・・・
これを外していいのでしょうか?
何度も素人質問ですいません。
>>821 さん、解決しました。
vcldbx50とvclbde50を削ったらリンクできました〜!
ありがとうございました!
お礼だけのなのでサゲということで・・・
>>818 -819
たしかに意味としては変わらないが、ニュアンスは全然違う。
まぁ主観によると言われればそれまでだが、
少なくともあの答えに対して「ありがとうございました」を返す人間は稀だろう。
>>822 確かに質問者はマニュアルを読んだかどうか答えるべきだね。
それが無い以上、「質問者の弁護」はしようがないよ。
わたしが言ってるのは、「答え方が悪い」って事。
826 :
デフォルトの名無しさん :2001/07/12(木) 13:59
BCBでクラス内で宣言されているコンポーネントに ハンガリアンらしく m_なんてprefixつけるのは 基本的に間違っていますか?
>>825 >たしかに意味としては変わらないが、ニュアンスは全然違う。
同じだって。
一行レスはたいてい「ぶっきらぼう」とか「いやみ」って相手に思われるよ。
HELPの○○という項目に載っているのでそちらをご覧ください。 というレスなら文句ないだろう? 「ぶっきらぼう」とか「いやみ」に思うか? エピーのは明らかに「ぶっきらぼう」とか「いやみ」の類。
>HELPの○○という項目に載っているのでそちらをご覧ください。 教えて君相手にここまでしてやる必要なんか無い。 そもそもマニュアル読まずに質問するだけで激しく礼を失した行為なのに それにぶっきらぼうなレスを返すことに何の問題があるか。 レスがもらえるだけマシ。
>>827 >>同じだって。
>>一行レスはたいてい「ぶっきらぼう」とか「いやみ」って相手に思われるよ。
同じじゃねーよ。
あなたの感覚では「ぶっきらぼう」と「いやみ」は同じニュアンスなのか?
もし、そうならいくら話し合っても無駄だ。
>>829 >教えて君相手にここまでしてやる必要なんか無い。
>そもそもマニュアル読まずに質問するだけで激しく礼を失した行為なのに
>それにぶっきらぼうなレスを返すことに何の問題があるか。
>レスがもらえるだけマシ。
だったら「質問に対して答える系のBBS」なんかに居るべきじゃない。
「質問に対して答える系のBBS」である以上教えて君が来るのは必然。
「激しく礼を失した行為」になら、なおさら大人の対応をすべきじゃないのか?
「激しく礼を失した解答」は「質問に対して答える系のBBS」にとって好ましいものなのかい?
もし、好ましいものと思ってるならいくら話し合っても無駄だ。
て優香、そもそもそんな話をこのスレッドでしてること自体、無駄だと思われ。
>>830 に同意
オラExcelファンクラブって所も見ていますが
あそこはとてもいい感じ。
Excelというプラットホームは初心者が無理してがんばってVBAを組んだりするので
初心者的非常に要領得ない質問が沢山投稿されるのですが
(その上初心者は過去ログの検索も十分に使いこなせない)
解答者はそういう事を十分にわかっているので
すごく丁寧な解答がつく事が多いです。
会ったこともない人同士なのに
HELPをみるのを忘れたくらいでいやみを言われるのは嫌だろうナー
833 :
nanashi :2001/07/14(土) 23:28
C++Builder5の本でオススメあったらおしえてください なかったら、C++Builder4の本でもいいです
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 ○
[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でもここまで酷いレスはつかないと思うよ
ていうか日本語喋ってないじゃん>kou チャイニーズか?
841 :
デフォルトの名無しさん :2001/07/16(月) 15:09
>>837 SetLength メソッドは,AnsiString の長さを変更します。
AnsiString& __fastcall SetLength(int newLength);
843 :
デフォルトの名無しさん :2001/07/16(月) 19:21
マニュアルに書いてある程度のことをたずねる人は 「マニュアルを調べれば分かる」ということ(要するに情報の検索の仕方)を知らないので、
つうかさ、仲良くやろうよ。いがみ合うほど流行ってないんだから。 厨房もいつの日か飛び立つのよ。..多分。
επιστημηさん、結構あっさりした人なんだね。
あさり、っつーか、たたみ。
848 :
新人 :2001/07/19(木) 08:57
教えてください! Webブラウザを作るとき 4の時は入力したURLをHTMLコンポーネントの RequestDocメソッドへ渡せばできるはずですが、5に換え たら、CppWebBrowserコンポーネントはRequestDocメソッド が無かったです。代わりにNavigateメソッドを使いました。 しかし、引数の型エラーが出てきました。どうすればいいですか? ぜひぜひ、教えてください!!
850 :
新人 :2001/07/19(木) 12:11
委員長さん:
ありがとうございます!!
>>849
852 :
YO :2001/07/19(木) 14:28
ブラウザーのお気に入りをTPopupMenuで動的に生成する場合、 お気に入りディレクトリを再帰的に走査し、構造体に納めていく、 というのが一般的なんでしょうか。それとも、そういうディレクトリ構造の 取得に特化したクラスなど有りますでしょうか。
853 :
デフォルトの名無しさん :2001/07/19(木) 14:51
>>852 標準ではないようです。
自分で再帰でがんばってくださいな。
標準的に作成する場合
どうやって設計したらいいかな。
854 :
YO :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に使いたいカーソルを指定したのですが タイトルバーにマウス移動したり、右クリックでポップアップメニューを出すと、その時はデフォルトに戻ってしまいます。 ずっと同じカーソルにしておくやり方をご存じないですか?
やったことないけど、リソースにカーソルのイメージを置いておいて、 こうするのでは駄目かい? Screen->Cursors[crDefault] = LoadCursor(HInstance, "NewCursor");
859 :
デフォルトの名無しさん :2001/07/21(土) 19:13
860 :
デフォルトの名無しさん :2001/07/21(土) 19:14
861 :
857 :2001/07/22(日) 12:57
862 :
デフォルトの名無しさん :2001/07/23(月) 04:40
863 :
デフォルトの名無しさん :2001/07/24(火) 01:04
1==2000/09/20 えらく長寿なスレだナ・・・.
865 :
あげマン :2001/07/27(金) 15:32
いまさら上げます。 JAVA上がりでC++のことが良く分かってない厨房です。 1バイトと2バイト文字を含むAnsiStringを一定のバイト数 毎に切り取りたいのですが、方法がわからず困っております。 charに落として、とか色々聞いたのですが、適切な関数が見つかりません。 宜しければアドヴァイスお願いいたしますm(_ _)m
1バイトずつ取り出して1バイト文字か2バイト文字かを判断し、必要な所に書き込め 文字コードの判別法はSJISなりEUCなりで違うから、文字コード表を見ながら作れ
>>867 char配列化したあと、部分的に取り出す方法が分かりません。
すいません。
>>868 2バイト文字とかにこだわらないなら、
char* p = str.c_str();
for(int i=0;p[i]!='\0';i++){
printf("%c\n",p[i]);
}
いやだからこだわるから >1バイトと2バイト文字を含む って書いてあるんだろ
>>869 >>870 >1バイトと2バイト文字を含む
だけだと、どういった形にしたいか不明確でした。
中途半端な書き方になり申し訳ありません。
やりたいことは、もし切り取りたいバイト目の文字が
2バイト文字の片割れでも、そのバイトだけ切り取り、
あとで結合させたい、と思います。
>>868 さんのコードでそれが出来るかまだ分かってないので
調べております。
皆さんレスありがとうゴザイマス。
2つの時刻から、時間差を計算する方法教えてください。
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を受け取ることって 可能でしょうか?
>>875 >で、送信データが多い場合、何度かに分けて分割
>したいと思っているのですが、ひとつのAction
>イベント内で連続したPOSTを受け取ることって
>可能でしょうか?
同時アクセスとかどうするの?
普通はデータテーブルを別に作って、IPアドレスをキーにPOST
されたデータ放りこんでおいて(同じIPアドレスがあったら追加)、
あらかじめ定義された長さになったら、そのデータの処理を実行
する。
なるほど・・・
やはり、別々に受信してそろった状態で実行、となるのですか・・・
う〜ん、Indexやら何やら色々要りそうだなぁ・・。
謝々
>>876
>>871 mbstowcs() を使って加工するのではだめ?
元に戻したいときは wcstombs() で。
879 :
あげマン :2001/07/31(火) 21:26
>>878 さん
どうもありがとうございます。とりあえず、
>>876 さんに教えていただいた方法で
テストしようと思いますので、そのときの動作が期待するものでなかったら試させ
て頂きます。
さらにさらに質問させていただきます。TWebModuleを使用して、WebServerアプリ
ケーションを作成しております。クライアントからpostメソッドで要求を投げて
イベントを起こしたとき、サーバーサイドのイベントのコード中で接続しているク
ライアントのホスト名またはIPアドレスを取得する方法ございますでしょうか。
以上、よろしくお願い致します。
880 :
デフォルトの名無しさん :2001/08/01(水) 00:00
Delphiで作成したクラスにコンストラクタ追加しました。 それをBCBで追加したコンストラクタ呼んでるんですけどリンクエラーです。 宜しくお願いします。
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キーはなにを?, ここななに?, ここもなに?) てな感じで引数が分かりません。 おしえてください〜 おねがいします。
↑グロ
889 :
デフォルトの名無しさん :2001/08/02(木) 07:31
890 :
デフォルトの名無しさん :2001/08/02(木) 13:55
ボタンなどのインデックス配列ってどうすれば出来るんでしょうか? VBからBCBに移って3日目・・・
TButton *btns[10];
892 :
890 :2001/08/02(木) 15:36
画面のボタン自体には、付けられないのかな・・・ VB的な、発想でごめんなさい。
だから参照を代入すればよい。
894 :
デフォルトの名無しさん :2001/08/02(木) 17:28
>886 keybd_event()はキーを送るウィンドウがはっきりしないので、望みの結果が得られないこともあるぞ。 それよりも SendMessage(hwnd,WM_KEYDOWN,VK_F1,0); とか SendMessage(hwnd,WM_COMMAND,MAKELONG(IDOK,0),0);
ファインドコンポーネントで 名前の文字列からButtonを探すとよい。
896 :
新人 :2001/08/03(金) 14:14
質問ですけど、コンポーネントRichEditを使って、HTMLソースファイルを入れ、タグを 削除しようとしていますが、できなくて、どなたが教えてください!
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;
ってBuilderか、ごめん
899 :
新人 :2001/08/03(金) 15:06
ありがとう!確かめてみます! >>dema
なにができないのか明記してくれ。 HTMLソースを読むのができないの? タグを消すのができないの? ちなみに、タグ消しただけだと改行しないと思うけどいいのかな?
901 :
dema :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
なにも考えずにRichEdit1のLinesをRichEdit2にコピーしていけば? <を見つけたら>を見つけるまでは改行を除いてコピーしないの。
906 :
新人 :2001/08/03(金) 18:21
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
911 :
908 :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()
でできるよ。
914 :
908 :2001/08/04(土) 21:13
917 :
新人 :2001/08/05(日) 10:54
みなさん、ありがとうございます!
918 :
原人 :2001/08/05(日) 11:26
みなさん、あほでしょう!
一周年になる前に次スレに逝けるかな?
921 :
デフォルトの名無しさん :2001/08/07(火) 10:29
ブレークポイントを設置したんですけど 停止してくれない・・・(BCB5) 何故なんでしょう?
呪いデス
923 :
デフォルトの名無しさん :2001/08/07(火) 10:34
の・呪いですか・・・
924 :
デフォルトの名無しさん :2001/08/07(火) 10:37
まじレスをお願いします。
コンパイルはちゃんとされている? Delしかわからないけど ソースとコンパイル済みユニットの日付が可笑しくなって コンパイルされていない時に同じような症状に出会ったよ。
926 :
うんこマン :2001/08/07(火) 12:35
>921 それはねぇ。コンパイルしてるdllじゃなくって古いdLLで 処理を見てるんだな。きっと。 前に何度かそうなった時はそうだったよ。
一端統合環境を終了させた後、再構築
928 :
デフォルトの名無しさん :2001/08/07(火) 16:43
ダイアログタイトルと、アイコンのあるダイアログボックスを表示したいのですが 良い関数は、ないのでしょうか? MessageDlgだとタイトルが・・・ MessageBoxだとアイコンが・・・ レベルの低い質問をすいません。
>>928 MessageBox で良いんぢゃないの?
Application->MessageBox("メッセージ","タイトル",MB_ICONQUESTION | MB_YESNO);
私の環境ではこれでタイトルも編集出来ますし、アイコンも出てますが。
>>921 デバッガオプションで統合環境を使うにチェックが入ってない、とか。
終