1 :
デフォルトの名無しさん :
04/03/29 15:30 C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは
>>2-5 あたり。
2 :
デフォルトの名無しさん :04/03/29 15:31
3 :
デフォルトの名無しさん :04/03/29 15:31
4 :
デフォルトの名無しさん :04/03/29 15:31
5 :
デフォルトの名無しさん :04/03/29 15:33
6 :
デフォルトの名無しさん :04/03/29 15:47
C++Builder Mobile Edition とは何でつか?
乙
しかし、どうしてそこまでフリーカーソルを嫌うのかな・・・ 変にカーソルがあっち行ったりこっち行ったりせず、 実に素直な動作をしてくれて気持ちいいのに。
11 :
デフォルトの名無しさん :04/03/29 19:32
もうC++Builderの新版は出ないのでしょうか?
Borland のインスペクタって、時代が下るごとに 使いにくくなっていくような気がする。 BuilderX って使ったこと無いけど、どんな感じなの? もし便利だったら買い換えたいんだけど。
>>13 >フリーカーソルだと「自分で右の終端を判断」しなくちゃならない。
も一つ教えて。何で右の終端を判断する必要があるの?
>14 某島の中の人?だったらBCB7を頼む。 真面目に答えりゃ、横スクロールしちゃうとウザいから。
フリーカーソルが嫌われる理由。
1.たいていのエディタはフリーカーソルじゃないのが標準なので、
乗り換えてきた時に面倒。
2.(1.にも非常に関係するが)行末にカーソルがあって、
次行の先頭に移動したい時、右カーソルを押すという操作が
身についてしまっている。
3.(1、2のことから)プログラムを書いている時に、急に思いも
かけないカーソルの動きをされると、それだけで思考が分断
されて非常に不快になる。
要は普段慣れているやり方で書かせろってこった。
>>14 だってHome・Endで左右、PageupとPagedownで上下しか
許されていないエディタだったらいやだろ。そういうこっちゃ。
17 :
デフォルトの名無しさん :04/03/30 03:18
秀まるおと提携汁
>>11 おれも知りたい。Windowsの処理系を買おうかと思ってるんだけど、
おれとしてはC++Builderがいいのよな。昔、会社で使ってたから。
ライブラリが好きでね。
でもディスコンらしいとか噂で聞いたので心配なのよ。
19 :
デフォルトの名無しさん :04/03/30 11:48
あくまで参考情報。 英語版買いましたけど、 ”.NET interoperability”シールが貼ってありますた。 BCBXは無くても他社製品やGNUがあるけど、BCBが無くなったら氏ぬ。
BCB6の日本語版CD4枚で、BCB6(E)は7枚。 枚数が全てじゃないけど。 その内訳は、Kylix3、C++ Mobile Edition for C++ BUILDER、e-Larning。
>>19 ありがとうございます。.NETの対応を進めてるってことは、
まだボーランドは見捨ててないと考えてもよさそうですね。
ホントにそうなのかはわかりませんけど。
ま、そう信じて買うことにします。
今まで身の回りのちまちましたユーティリティはgccや
Rubyで作ってましたけど、やっぱネイティブなコンパイラで
ウィンドウをバシッと開きたいなあ、なんて思いましてw
>>20 とりあえずどれもいらんかな…。あれば嬉しい程度、だけと悔しいなあ。
22 :
デフォルトの名無しさん :04/03/31 14:14
アセンブラで BCB用の処理を書こうとして 高速化の為なので_fastcall 手続きを使おうとしました。 BCB5のヘルプだと >_fastcall 修飾子を使うと,引数をレジスタで渡す関数を宣言できます。 関数の最初の 3 つの引数は,レジスタに収まるサイズであれば(左から右の順で)EAX,EBX,EDX で渡されます。 引数が浮動小数点または構造体型の場合はレジスタは使われません。 とあるのですが、試しに引数2つで BCC32 -S で どうなるか見ると EAX EDXが使われているように見えます。 これはヘルプのミスですよね? それとも俺の目が節穴?
レス貰ったけど、作ってみて、やっぱり2番目はEDXでないと正常に動かないのでした。
同じヘルプ内でEAX,EBX,EDXという記述と、EAX,EDX,ECXという記述の2通りあるので、 まあお察しください。
フリーカーソル切るのにツール入れにゃならんのか…
C++Builder5を使用しているんですが VC++の、Win32 Application風な作成がしたいんですが BCBの新規作成から何を選択すれば良いんでしょうか? C++Builderの新規作成 -> アプリケーションだと勝手にフレームとか作られてしまうんで。 出来ればソースを書いて、リソースを作成してって手順で作成したいんですが…
独自定義した構造体を他のヘッダ内の構造体で参照したいんですが ヘッダをインクルードしてもコンパイルが通りません。 typedef struct { int a; int b; } test; 他のヘッダーで typedef struct { test aa; int bb; } test2; とやってもtest構造体が見つからないと出ます。 いろいろなところでそのヘッダをインクルードしてるのが 原因でしょうか?
>>28 その書き方じゃtestとtest2は別の型になるよ。
それからC++ならtypedef要らないでしょう。
前スレのレス飛んだんでもう一度 Builder から Win32API だけの プログラム作ることは出来ますか?
>>28 BCBとは関係無いな。
常にtest2の宣言より先にtestの宣言が来るようにincludeすれば良い。
33 :
デフォルトの名無しさん :04/04/02 10:52
TSpeedButtonでDownプロパティーがfalseの時にボタンが押されてOnClickが入るのと Down=true(元々押されてる状態から)OnClickが入る時に区別する方法を教えてください
>>29 >>31 include の順番を色々変えてみたらできました。
ありがとうございました。
すぐ前に出てたのね スマソ&thx
36 :
デフォルトの名無しさん :04/04/02 15:45
効果音を鳴らしたいと思っています。 C:\hoge.exeが実行ファイルで、 C:\fuga.wavが、鳴らしたいファイルです。 PlaySound("fuga.wav",NULL,SND_FILENAME); だと鳴るのですが、 PlaySound("C:\fuga.wav",NULL,SND_FILENAME); だと鳴りません。 ファイル名のみを指定したら鳴って、フルパスだと鳴らないということです。 PlaySoundの使用方法などをググったりしまたが、どうにも解決できませんでした。 分かる方、どうぞよろしくお願いします。
C:\→C:\\
38 :
デフォルトの名無しさん :04/04/02 16:03
>>37 即レスありがとうございます!できました。
大変恐縮なんですが、もう一つよろしいでしょうか?
ファイル名の変わりに変数を使用する事はできないのでしょうか?。
C:\\fuga.wavをSoundという変数に入れて
PlaySound("Sound",NULL,SND_FILENAME);
だと、できないのです。
よろしくお願いします。
。 。 / / ポーン! ( Д )
"Sound"→Sound
SoundにAnsiString使ってるなら。 String Sound = "C:\\fuga.wav"; PlaySound( Sound.c_str(), NULL, SND_FILENAME );
42 :
デフォルトの名無しさん :04/04/02 16:22
>>40 それも試してみたのですが、出来ませんでした。
・'AnsiString'型は'const char*' 型に変換できない
・'pszSound'はconst char*型として定義されているので、AnsiStringは渡せない
という二つのエラーがでてしまいます。
AnsiStringで宣言しているからかと思い、charで宣言しましたが、こちらもダメでした。
どうでしょうか?
>>41 書き込んでいる時にレスをもらったみたいです。
無事できました。ありがとうございます。
>>43 確かに、勉強不足のようでした。
もう一度入門書を読むことから始めます。
レスをくださった方々、どうもありがとうございました。
TreeViewのNodeで子ノードがなくてもHasChildrenは 常にtrueを返すのは私の目の錯覚なのでしょうか?
(・3・) エェー 返さないYO
>>46 (・3・) エェー ボクの顔 勝手に使わないでYO!
>>32 レスサンクス。
そんなところにあったのか…
つーか何故コンソール!?そんなの見つからないYO!ヽ(`Д´)/ウワーン
それと、リソース スクリプト(rcファイル)を作成するリソースエディタとかBCB5にありませんか?
フォームとか選ぶと勝手にサブクラス化(?)されてしまうんで。
rcファイルを取り込む機能があるのにエディタが無いはず無いとは思うんですが…
VC++で作ったアプリをBCCで構築できる事を確認したのに何故BCB5でコンパイルできない!?
しかも、Winuser.h…
ボーランドが提供してんのになぜそんなところでエラー??
もうワケワカラン。
>>45 やってみたけど返さないよ。
Application->MessageBox((TreeView1->Selected->HasChildren) ? "true" : "false", "");
>>48 ダイアログエディタはBCCFormでもツールに登録して使うしかない予感。
暇なんでVC++みたいだけどBOB向きの リソースエディターを 暇なんでVC++みたいだけどBCB 向きのリソース編集ソフトつーのを 作ってみるわ。もちろんWindows ネイティブな。少しまちなー。
。・゚・(ノД`)・゚・。
ワラタ
リソースワークショップってのがBCBのCDに無いか?
55 :
デフォルトの名無しさん :04/04/03 23:49
C++ビルダーでクラス内に、以下のように文字列定数を宣言すると、コンパイラに怒られてしまいます。 static const AnsiString mStrBaseFileName = "hozon"; 同じやり方で数値定数の場合だと怒られません。 static const int mintValue = 10; クラス内で文字列定数宣言をするにはどうすればよいのでしょう?
>>55 組込型以外の型はクラス内での初期化はできないよ。
外部で
const AnsiString Class::mStrBaseFileName = "hozon";
としたら?
文字列「定数」なら char[]にすればいいんでわ
59 :
デフォルトの名無しさん :04/04/04 01:14
>>56 サンクス。結局その案にしました。
>>57 char配列の文字列定数でもコンパイラは通らないようです。
クラス宣言内で初期化できるのは static constな整数だけ。 それも即値でしか初期化できない。 これ以外の型であれば必ずクラス宣言外で定義が必要だし、 そこで初期化するしかない。 なお、クラス宣言内で初期化した static constな整数には実体がない。 実態が必要になるときは、これまたクラス宣言外で定義が必要。 要は、static const int mintValue = 10; が通るのが極めて例外的だということ。
↑補足 >これ以外の型であれば必ずクラス宣言外で定義が必要だし、 >そこで初期化するしかない。 もちろん、staticメンバの話ね。
>>50 レスサンクス
そうですか…やっぱ、BCBは、BCBなりの開発しなくちゃならんわけですね。
フリーのBCCFormを一応とってくる…
DFMファイルから自分でテキスト形式のリソースファイルに変換して、それを取り込めばいいんじゃないの?
65 :
デフォルトの名無しさん :04/04/06 12:29
パネルを置いたんですが、コンポーネントをその上に置けないです。 parentとか何かが関係しているのかと思い、ググりましたが、当たり前すぎるのか、探せませんでした。 どなたかご教授お願い致します。
パネルはTPanelの事? 具体的な置こうとしたコンポーネント名は? どういう操作で置けなかった?
67 :
デフォルトの名無しさん :04/04/06 15:25
>>66 はい、パネルはTPanelの事です。
置こうとしたコンポーネントは、TLabelです。
フォームに置いてあったラベルを動かして置こうとすると、パネルの上に置くことができないんです。
パネルを先に置いてから、新たにラベルを選択して初めからパネルの上に置いた場合は正しく置けます。
>>67 オブジェクトインスペクタでオブジェクトの親子関係をよく観察しましょう。
また、親子関係の変更はオブジェクトインスペクタで変更する事ができます。
69 :
デフォルトの名無しさん :04/04/06 15:54
>>68 改めてオブジェクトインスペクタのプロパティを一つづつ検討してみましたが、やはり見あたりません…
パネルの上に置けているオブジェクトと、置けていないオブジェクトのプロパティを比較してみましたが、位置座標以外は同じでした。
親子関係はParentでいじるのかと思い、試しましたがやはり無理でした。
もう他に打つ手無しです。。
ドラッグでは無理。ラベルを選択してCtrl+X、その後パネルを選択してCtrl+V。 元の位置によってはパネルからはみ出るから、パネルを大きくして確認。 という話でいいのかな?
一番簡単なのは、パネルに移動したいラベルを選択しておいてから、CTRL+Xで切り取って パネルを選択して貼り付ける事だと思うけど?
>>69 すまん、インスペクタをツリーに置換してくれ
73 :
デフォルトの名無しさん :04/04/06 17:20
>>72 どうやって置換するんでしょうか?
すまんわからんです。。。
74 :
デフォルトの名無しさん :04/04/06 17:33
すみません。Builder初心者なのですが、ちょっと教えてください。 StringGridやDrawGridの各セルをDockSiteにする方法ってないのでしょうか。 また、DockSiteに乗っかったコンポーネントに表示される移動用のハンドル(?) のようなものは、コンポーネントの上部に表示されますが、 これを右端に垂直に表示する方法もあるのでしょうか。 もしお分かりでしたら、ご教示ください。
>>74 前半は不可能
後半は良く分からんが多分無理
DocSiteの実装を自分で書けばできるんじゃない? そのためのサンプルとかも付いてたと思う
>>75 >>76 レスさんこーです!
やっぱり実装を書くしかないですか。
GridをDockSiteにしているアプリを見かけたので、
Builderで出来るのかなーと思っていましたが、
単純にプロパティいじっただけじゃやっぱり無理ですよね。
ちょっとサンプルを見てみます。
ありがとうございました!
78 :
デフォルトの名無しさん :04/04/07 19:56
ちょっと基本的なことを質問しますが、 class AA { public: __fastcall func( String ss ); }; class BB : public AA { public: __fastcall func( String ss ) { AA::func( ss ); ここで↑をやらずにAA::funcを呼び出す方法を教えて下さい。 } };
80 :
デフォルトの名無しさん :04/04/08 12:38
あ
>>78 ですが、例えば
コンストラクタに : TForm(Owner)ってありますよね?
これってやっぱりコンストラクタのみ指定できるものなのでしょうか?
>>79 まずそれを見てみます。
>>80 それはメンバ初期化構文という。
文字通り、そのクラスのメンバを初期化するためのもので、
コンストラクタでのみ使用できる。
こんなのは基本中の基本。
C++の入門書をきっちり読め。
それをせずに2chを渡り歩いても身につかんぞ。
BCB6 + SP4にて。 32ビットなんだから8バイト単位にすることもなかろと思ってC++、Pascalコンパイラ共に データの配置境界を4バイトに設定した。 ところが、Delphi6で作成したクラスがどうも正常に動作していない。メンバ変数に入るべき 値がちゃんと入っていない。Delphi6だとちゃんと動く。 で、アセンブラコードを眺めてみると、メンバ変数アクセス時のオフセットが、C++側では おかしいことが判明。データの配置境界オプションが効いてない様子。Pascalコンパイラの 方は、オプションを変更するとちゃんとオフセットが変化する。参った。 多国語リソースのフォーム編集がテキストだったり(!)BCB6は問題多いなあ。 せっかく買ったからBCB5に戻る気にはなれんし、何より共通ライブラリDelphi6で作ってるから BCB5じゃ使えないものも多いしなあ。はぁ。
83 :
デフォルトの名無しさん :04/04/09 12:12
あ、俺もデータの配置境界アレを4バイトでやっとる 俺BCB5だが、大丈夫なんかなあ
>>83 俺の場合はDelphiで作ったコードがあり、PascalコンパイラとC++コンパイラ
との相違が問題になった。Delphiコードが混ざってないならオプション効いてなくても
大丈夫なんでない?まあVCLはDelphiなわけだが。(w
しかしなんで8バイトがデフォになっとるんだろね。
レジスタばかり考えてないで、CPUのデータバスも考えれ。
COMの周辺が変なのはそのせい? EOleSysErrがDelphi6で補足できるのが BCC5.6ではできなかったり、EACCESSが飛んだり。
87 :
デフォルトの名無しさん :04/04/11 11:05
C++Builder8はでないのか?
Borland.Vcl.dllを、managed C++から使えばそれが(ry
89 :
デフォルトの名無しさん :04/04/12 15:50
>>84 sizeofでアレしたら見事にぬかったわ!
BCB で boost 使ってる人いる? spirit 使ってみようと思ったんだが、コンパイルエラーで挫折。 regex は BCB でも動くみたいだが、 spirit 使ってるネ申いたら詳しく教えてくれ。
漏れはregex使うとリンカエラー吐かれる‥‥∧||∧ 普通に(STL-port)boostビルドして_USE_OLD_RW_STL定義したプロジェクトでそのlib使ってるのがいけないのか‥‥orz
94 :
デフォルトの名無しさん :04/04/13 19:04
Ocxを作ったのですが、 配布するときに各アプリ開発者、更にそれを使うユーザに regsvr32 を使わせるのはわずらわしいので、 なんとかregsvr32を使用させずにOcxを使わせることは可能ですか? DllRegisterServerあたりを使えばよいらしいのですが、 どう使うのかまでは載ってなくて。。。 すみませんが知ってる方お願いします。
96 :
デフォルトの名無しさん :04/04/13 23:06
TTreeViewで、指定の項目を選択(反転)するには どうしたらいいですか?
>>96 目的のノードの Selected プロパティを true にするか、
TTreeView のオブジェクトの Selected プロパティに
目的のノードを代入してあげれば選択された事になる…筈。
これでできんかったら、TTreeView のオブジェクトの
HideSelection が true になっていたりしない?
98 :
名前は開発中のものです。 :04/04/14 10:37
作成されるアプリの名前を変更するには、 何処を変更すれば良いのでしょうか?
>>98 プロジェクトに名前を付けて保存メニューで、プロジェクト名を変える。
100 :
名前は開発中のものです。 :04/04/14 10:40
101 :
デフォルトの名無しさん :04/04/15 15:06
BCB8はいつ出るの?
三分ほどしごけば出る
候だな。
BCB8 が出るとして、どんな機能を期待するの?
107 :
デフォルトの名無しさん :04/04/16 02:59
サイズを小さくする機能
D言語化
>>106 JBuilderとの統合。
ついでにC#と.Net Frameworkぐらいは付けてもらおうか。
統合って? なぜ、統合しなきゃいけないの?
XP64にネイティブで対応して欲すい
__VA_ARGS__
Delphiが8だからでしょ。 つか、以前にも1から3に飛んだし。BCB
けど、年末には Win32/.NET 2.0 をサポートする次のが出るんだし... BCB 8.5 か BCB 9 にでもなるかな?
>>114 あ、やっぱBCB2ってなかったんだ。情報ないと思ったら存在がなかったのね。
俺はBCBは5からの付き合い。
Delphi2 BCB 1 Delphi3 BCB 3 って順番。最初の BCB だから Version 1 にしたんだけど、実行時パッケージの バージョン番号とかがわかりづらくなるので、Delphi3 ベースの BCB 3 の時に ベースにしている Delphi の番号にあわせた。ということ。
118 :
デフォルトの名無しさん :04/04/17 18:43
ああ Builder (;´Д`)'`ァ'`ァ ああ ビルダー'`ァ,、ァ'`ァ,、ァ'`ァ (;´Д`) '`ァ,、ァ'`ァ,、ァ'`ァ ボー・・・・(*´Д`) (*´Д`)=3 (´∀`)=3 (・∀・) スキーリ
119 :
デフォルトの名無しさん :04/04/17 20:23
BCB1にはバージョンナンバーがなかった
120 :
デフォルトの名無しさん :04/04/17 21:05
BCB5使ってるんだけど、エディタが使いづらい。 キーのカスタマイズができんのが致命的。 実際には、プログラムを組めばできるらすいが、そんなんいちいちやっとられん。 だから、外部エディタ使うことが多い。 外部エディタだと、ヘッダファイルだけ内部エディタで変更すると、反映が消えたりとかあって これはこれで使いにくい。 BCB6はどうなってるか知らないが、次期バージョンが内部エディタ簡単にキーカスタマイズできるようになってるなら買う。
BCB6のフリーカーソルを無効化するアドインがある。 俺はこれを入れたままにしている。ブロックインデント機能 もあるしな。
>>120 Delphi8でもやっぱりダイアログからはカスタマイズできないよ。なのでしばらくBCBでも無理でしょ。
いっそのこと自分用にキーカスタマイズbpl作ってしまう事をお薦めする。意外と簡単。
C++Builderのほうは知らないんですけど、サンプル付いてないかな?
クラスエクスプローラが激しく使えないのいいかげんなんとかしてくれ VSと同じにすればいいじゃないか
>>125 あーゆーのは各メーカーが特許を握っているからなぁ
127 :
デフォルトの名無しさん :04/04/19 18:52
別にBCBのエディターで不都合感じたことねーや 俺はむしろ秀丸をBCBと同じキーにアレして使ってるわー
>>127 フリーカーソルが嫌いな人には受け入れられないんじゃないかと。
オプションで切れないし。
>>126 特許なんかあるのか?
じゃあJmEditorと一緒にしてくれボーランド
Vxドトネトに慣れちゃうと、BCBのフリーカーソルが使いづらいことよりも コードリージョンで折りたためないとか、構造(対応する括弧とか)を強調表示してくれないとか new式でクラス名を補完してくれないとか とにかくその辺がつらくね?
すっトロいコンパイルと補完処理の速度がツラい。 C++だから仕方ないと思っているけど Delphiも併用しているから、どうしてもイラつく。
>>131 自動補完切って必要な時だけCtrl+SpaceやCtrl+Shift+Space使うとよし。
コンパイル速度はC++コンパイラの中ではマシな部類
>>131 C++BuilderはDelphiより何をさせても全体的に重いから(IDE)、
Delphi並に快適になろうとすると一クラス上のパソコンが必要になる。
134 :
デフォルトの名無しさん :04/04/20 12:15
StatusBar1->Panels->Items[1]->Text= "ABC"; でステータスバーに文字を表示していますが、 文字の色を替えるには・・・?
>>134 TStatusBar::OnDrawPanel
136 :
デフォルトの名無しさん :04/04/21 13:48
>>136 勝手にリンクしているサイトがあるって怒りまくっていたが、
結局これが目的か。(;´Д`)ハァ
138 :
デフォルトの名無しさん :04/04/21 14:54
無料だったのがいきなり6000円かよ。 ぼったくりもいいとこだな。 こんなもの、誰も会員なんてならんだろ。 事前に全部落としておいてよかった。
>>138 俺は落としそこねた。
くそーーー、悔しい。
たぶん悔しがるほどのことじゃない。
無断リンクに怒るなら、会員制にすればいいことで、有料化は関係ないですねぇ。 かつてのCyberSyndromeみたく、日本人にしかわからない質問をキーワードにしてもいいわけだしね。 ざっと見たところ、非常に低レベルなtipsしかないわけですけど、あれで金になるならおれも tips屋始めようかな(w オレならもっとハイレベルなの作れるぞ、と。
>>137 隣国からのリンクが多かったようだ。既にアチャラ語に翻訳
されて向こうにはパクリBBSも立っているし。有料化なんか
して、もう終わったな。
Tipsサイトまた探さねばw
チョンは氏ね…と
145 :
デフォルトの名無しさん :04/04/21 22:27
>141 っていうか、低レベルだからこそ、それなりの人気があったんだよ。 初心者が藁にもすがる思いでやっとたどり着いたとね。 それに、きれいに項目別にまとまってるし、見やすいからね。 簡単なことをきれいにまとめてあるとこって、なかなか無いから。 でも、あんなものに金は出さないだどうね。 どうせ、そのうち、nyで流れてくるだろうし。
ってか、「これで金とるのかっ!」てサンプルコードも多々目にした記憶があるが・・・
だから有料化とか糞シェアウェアは非難囂々なんだよな・・・
>>145 >それに、きれいに項目別にまとまってるし、見やすいからね。
>簡単なことをきれいにまとめてあるとこって、なかなか無いから。
これは軽視されやすいけど重要なんだよな。
有料化自体も悪いとこととは思わないんだが、
しかし、適正価格と1桁違うんじゃ?(w
昨日からC++始めた厨ですがようやく見つけたサイトが有料化…鬱
150 :
デフォルトの名無しさん :04/04/22 06:57
6000円もあれば良書が2冊買える
>>149 心配するな、そこにあるのと同等な情報は検索すれば他にいくらでも見つかる
1tip1円以下って書いてあるだろ。 つまり月に最低500のtipsが追加されていくんだよ。 これを考えれば安い安い。
153 :
デフォルトの名無しさん :04/04/22 10:26
Formにある指定コントロール全てのフォントサイズを変えるために for( int i = 0; i < ComponentCount; i ++ ){ if( cls == "TSpeedButton" ){ dynamic_cast<TSpeedButton *>(Components[i])->Font->Size = siz; } else if( cls == "TComboBox" ){ dynamic_cast<TComboBox *>(Components[i])->Font->Size = siz; } } なことをしているのですが、特定コントロールでキャストせずにする方法はありますか? 例えば、 Components[i]->Font->Size = siz; みたいな感じで、
「所詮タダで読ませてる文章だから誰の著作権も何もない、ウチで書いてるといえばウチのもんだよ。」 「これで有名になったんだから良かったと思ったほうがいい。」 「当サイトでの謝罪文はネチズンとしてのイメージを損ねる恐れがあるため、告知にとどめさせていただく。」 「サイトURLの公開は品位を損ねる可能性があるので公開はやめていただきたい。」 「これ以上の妨害を行えば○○様を訴えることになります。」 あの国の事だからパクリの苦情に対してこんな返事が返ってきたのではないかと想像。 サイトの説明をみると3年間無料で公開していたみたい。 180度方針を変えたのはかなりひどい対応をされた為ではないかな。
>>153 一度 TControl * にキャストすればいいんでない?
TContol *cntCast;
for( i = 0 ; i < ComponentCount ; i++ )
{
cntCast = dynamic_cast<TControl *>(Components[i]);
if( cntCast != NULL)
{
cntCast->Font->Size = siz;
}
}
cntCast で NULL かどうかを見ているのは、
TControl から派生していない TTimer のような
Font プロパティを持たないコンポーネントをはじくため。
>>154 このスレを読んでる人でこのネタがわかる人は半分もいないのではないかと。
元ネタがあるの?
159 :
デフォルトの名無しさん :04/04/22 12:48
>>155 お!!
TContol てTFontプロパティあったんでしたっけ?
いやー、助かりました。
早速試してみますー
160 :
デフォルトの名無しさん :04/04/22 13:19
>>155 嗚呼・・
試してみたのですが、TControl のFontてprotectedなので
アクセスできませんでした・・
これアクセスする方法ってあるのでしょうか?
//--------------------------------------------------------------------------- class THackedControl : public TControl { __published: __property Font; }; //--------------------------------------------------------------------------- for( int i = 0 ; i < ComponentCount ; i++ ){ TControl *cntCast = dynamic_cast<TControl *>(Components[i]); if( cntCast != NULL){ ((THackedControl*)cntCast)->Font->Size = siz; } } これでOK。 ・・・本気でTips集作ろうかしら(w っつうか、BCBの基礎テクニックだから覚えとけよ、と。 (__published よりも public にしといたほうがいいかも。)
みんな同じFontでいいならFormのFontを替えればいいだけじゃなかったけ。 ParentFontプロパティかなんかをTrueに設定してれば。
>>162 正解!
・・・気がつかなかった_| ̄|○
>>161 うほっ、ありがとうございます。
つかでもこれって基礎から一歩踏み出したテクニックっぽいですねー
ちょっと僕には考えつかなかったです、ええ勉強不足でした。
>>162 いえ、指定したコントロールのみをアレしたかったもので
165 :
デフォルトの名無しさん :04/04/22 15:16
BCB3でDirectMusicを使おうとしているのですが、 dmusici.hで 「'line number' 行目で始まった条件構文の途中でファイルが終わっている」 というエラーが出てコンパイルできません。 みたところ #ifndef _DMUSICI_ の部分なのですが、ファイルの終わりにはきちんと#endifもあり、 特にほかの部分でもおかしなところは見られなかったので 解決方法がわかりません。 どのようにすればコンパイルできるようになるのでしょうか? DirectXのSDKのバージョンは9です。
>>167 単純なものを作って見ましたがやっぱり
コンパイルが出来ませんでした。
エラーは以下のようになっています。
[C++エラー] dmusici.h(282): Unexpected end of file in comment started on line 281.
[C++エラー] dmusici.h(283): Unexpected end of file in conditional started on line 10.
[C++警告] dmusici.h(283): Structure packing size has changed.
どちらのエラーと表示されている行にも
おかしなところは見られませんでした。
"*/" これが抜けてるっぽい
スクリーンセーバーを起動する方法で SendMessage(hwnd, WM_SYSCOMMAND, SC_SCREENSAVE, NULL ); 以外の方法はないですか?
>>169 ためしにコメントを外してみましたら上のほうのエラーがなくなりました。
ありがとうございます。
下のほうのエラーは相変わらず出てきます。
そもそも本来は1800行近くあるファイルなのに
283行でファイルの終端のエラーが出るというのが
おかしい感じがするのですが・・・
なんとなくファイルの読み込みが
途中で強制的に終了されているような感じです。
たまたまコメントの途中で終了されると上のエラーがでるのも分かりますし。
そういうことはあるのでしょうか?
>>172 教えてください。
現在 Textfileでtips作成中。まだ3つしかないけどねーw
それにしても見難いw。Sakura Editorのアウトライン解析だとわりと見やすいかな・・・
175 :
デフォルトの名無しさん :04/04/22 20:02
GroupBoxのEnabledをfalseとしたときにのってるコントロールをグレー表示にする方法を教えてください
>>174 PSDKドキュメントによると ISensLogon::StartScreenSaver だそうだ。
後は知らん
178 :
デフォルトの名無しさん :04/04/23 03:36
デルのソースはコンパイルできるそうだが、 ビルダーのソースをデルはコンパイルできないそうな。 さすが一段高水準な言語だけはある。 デルの方が速いなんてゆってるやつもいるが、 2、3秒速かったらなんだというのだろう。1行書いては コンパイルするという厨房的プログラミングスタイルの人たち なのだろうか。
>>178 XPを否定してるから
RAD生命絶たれるんだよ
>>178 2、3秒? マジで100倍くらい違うぞ。
181 :
デフォルトの名無しさん :04/04/23 10:14
182 :
デフォルトの名無しさん :04/04/23 13:32
dbExpressってライセンスがいるんですか? BCB6Proで使おうとしたら怒られた。 なんでパレットにあるんだろ。
183 :
デフォルトの名無しさん :04/04/23 13:41
>>178 は、Delphiの情報量の多さや、バージョンアップが
早いことに納得がいかない様子。
使い分けが肝心だぜ、ベイベー。
俺は個人的なライブラリはDelphiで書いて、
仕事で使えそうなものはBCBで極力VCLから
切り離して書くようにしている。
ベイベー。
あ、仕事だけじゃねーや。違うOSに持っていけそうな クラスとかもな。 ベイベー。
185 :
デフォルトの名無しさん :04/04/23 14:08
最近C++を勉強しだしました。 それでMDIアプリケーションの演習をしたところ以下のようなエラーメッセージがでました。 [C++ エラー] EditUnit.cpp(49): E2034 'Set<TMsgDlgBtn,0,8>' 型は 'TMsgDlgButtons' 型に変換できない [C++ エラー] EditUnit.cpp(49): E2342 パラメータ 'Buttons' は TMsgDlgButtons 型と して定義されているので Set<TMsgDlgBtn,0,8> は渡せない 本に書いてある通りに書いたはずなのですが・・ 御教授よろしくお願いしますm(__)m
死ねくそども
( ´,_ゝ`)なにそれ、煽り?
>>185 どういうコードなのかも書いてくれないと。
MessageDlg("hoge", mtWarning, mbOK, 0);
↑もしこんなコードなら↓こうする
MessageDlg("hoge", mtWarning, TMsgDlgButtons() << mbOK, 0);
189 :
デフォルトの名無しさん :04/04/23 15:37
現在のグローバルIPアドレスを調べるコードはどのようにすればよろしいですか? 環境はC++Builder5です。 ネットワーク環境はルータ越しに外に出て行く感じで このコンピュータには、192.168.0.*のようにプライベートアドレスが振られてます。 ルータがNATの仕事をしているので、ルータにはグローバルアドレスがありますが 他のPCに関してはグローバルIPが割り振られていない状況です。 外から見えるグローバルIPを表示するようなサンプルプログラムか 数行の関数を提示していただけると嬉しいです。 よろしくお願いします。
190 :
デフォルトの名無しさん :04/04/23 17:23
COMを呼び出そうとすると [リンカ エラー] 外部シンボル '__stdcall _com_issue_error(long)' が未解決 と怒られます. どうすればよいのでしょう? C++Builder6.0です.
>>189 直接取得する方法は無いはず。
httpでルーターや診断君なんかに接続すれば
グローバルIPが書いてあるはずなので
そのhtmlを解析して取得するしかないと思う。
実際にDiCEなんかはその手法で動いてるようだし
192 :
デフォルトの名無しさん :04/04/24 16:46
aviファイルからのbmpファイルの抽出について教えてください。 また、何か参考になるHPもありましたらよろしくお願いします。 C++Builder6です。
>>161 これって THackedControl から派生した物にしか
その下の for〜 な文は使えないよね?
>>153 のコードにゃ使えんと思うんだけど。
って、もしかして俺とんでもない考え違いをしているのかな。
あー、すまん。呆けてた。193は忘れてくれ orz...
開発環境のキーボードショートカットはカスタマイズ不可ですか? 環境:C++Builder6.0
>>195 できるけど、OTA使わないといけないのでめんどい。
Delphi6なら、Demos\ToolsAPI\Editor Keybinding\Emacs\Emacsbasebindings.pasとかが
参考になるけど、私はBCBは持って無いので…同じようなサンプル無い?
>>195 とりあえずMS-VS用に変更すれば、Windows的には使い勝手が良くなるよ。
>>189 どっか適当なIPにTTLを短くして送ればICMPで途中のルータから返事がある
筈だからそれを拾えば良いと思うけど(tracerote)詳しくは分からない
>>198 NATがICMPメッセージ内のパケットヘッダもいじるタイプの
場合、無理。(これが、結構ある)
>>191 のように、ルータの外で得たアドレス情報をデータ内部
に入れる方法の方が確実。
ヘルプの「フレームの使い方と変更方法」で、 >埋め込みフレームの修正に関して 1 つだけ制限があります。それは,コンポーネントを追加できないことです。 とあるけど、追加後再構築なり行えば問題ないような気がするけど、やっぱだめ?
201 :
デフォルトの名無しさん :04/04/26 08:17
C++Builder7はいつ出るの?
>>191 >>198 >>199 ありがとうございます!
NAT内から、自分のグローバルIPを見つける方法って
簡単そうで案外複雑ですよね・・・。
確認君のURLをソース内にハードコーディングしてもいいけど
将来的に確認君が消えてしまったときに、グローバルIPが取得できなくて
やばいですよね・・・。
ルータのIPアドレスを拾って来るにしても、
ルータの機種の違いがあるので、ある機種で動くソースでも
他の機種では動かない事もあり得ると・・・。
そう考えると、traceroute が確実が気もしてきました。
でも、これもルータの機種によって、
情報がカットされている可能性もあると・・・。
四面楚歌の罠。
IP取得URLをレジストリかiniファイルに書き込んどけば良いんでは。 Builderならレジストリやiniの読み書き関数準備されてるんだし。
204 :
デフォルトの名無しさん :04/04/26 17:35
ある動作と同じ動作をするようにするにはどうすれば良いのでしょうか? 例えば、一定の時間が来たら、ボタンを押したのと同じ動作をさせたいのです。 自分なりに検索したり書籍にもあたりましたが、どうにも解決できません。 どなたかよろしくお願いします。
自分のアプリケーションの話ならTButtonのClick()で押したのと同じ事になるよ。 他のアプリケーションならメッセージを送ると良いんじゃないですか。
>>204 ・ある動作をする関数を作る。
・ボタンのOnClickからその関数を呼び出す。
・TTimerのOnTimerからその関数を呼び出す。
BCB6 ファイル操作で FILE *outf outf=fopen("*********","w"); の*********のところにFileListBoxで選択したファイルを代入するには どうソースをかけばいいでしょうか? 入門書4冊買ったのにどれにも載ってないウワァァァァン(ノ△T。) どなたかおねがいします。
209 :
デフォルトの名無しさん :04/04/26 18:31
受信拒否って最近どうです?
>>208 普通にヘルプにしっかり目を通せば判る筈なんだが
ファイル一つなら次でOK.
outf=fopen(FileListBox1->FileName.c_str()","w");
が、FileListBoxはwin3.1時代の遺物だぞ?
ファイルを開く画面を自作するならともかく
普通にファイルを開くだけなら
OpenDialogやSaveDialogを使ったほうがいいと思う
その場合でもやりかたは同じね。
>>209 別にこちらには来てないねえ
ウィルスとかって普通にアドレス偽装じゃないのか?
>>211 レスありがとうございます
本にwin3,1系のやつしか載ってなかったです
FILE *outf;
void __fastcall TForm1::o_btClick(TObject *Sender)
{
AnsiString filename;
o_dialog->DefaultExt = "txt";
o_dialog->FileName = "*.txt";
if (o_dialog->Execute()){
filename = o_dialog->FileName;
}}
void __fastcall TForm1::FormCreate(TObject *Sender){
outf=fopen("o_dialog->FileName.c_str()","w");
}
void __fastcall TForm1::input_btClick(TObject *Sender){
String l_name=Edit1->Text;
int l_score=StrToInt(Edit2->Text);
fprintf(outf,"%s\n%d\n",l_name,l_score);
Edit1->Text="";
Edit2->Text="";
}
void __fastcall TForm1::exit_btClick(TObject *Sender){
fclose(outf);
Close();
}
こんな感じにしてみたんですけど
これにするとコンパイルはできるけどプログラムを実行すると
メモリを書き込めないという理由で強制終了してしまう...
なんでだヽ(`Д´)ノ
とりあえずfopenの第一引数が摩訶不思議なことになっとるが。
>>213 ちょっとずれるがOnCreateイベントはBCBでは非推奨。コンストラクタに書くが吉。
>>213 そんな古い本は何冊あっても役に立たない。
悪いこと言わんから、BCB6版の「コンポーネント活用ガイド&実践プログラミング」を買いなさい。
値は張るが余計な試行錯誤をしなくてすむから時間と手間の節約になる。
ダウト! OnCreate かコンストラクタのオーバーライドかどちらかを使用すればOK。 ・・・と記憶してたんだが、今、ヘルプ見てみたら、キミの言うとおりでした。 以前は、どちらか使えばOKだったと思うんだけどなぁ・・・。 ぼくは、いままで、みんな OnCreate に書いてたぞ・・・。 どうしよう;;
TImage で画像の一部を拡大表示させることってできますか? 環境:BCB3 On WinNT4SP6
FILE *outf;
void __fastcall TForm1::o_btClick(TObject *Sender){
if (outf != NULL) fclose(outf);
if (o_dialog->Execute()){
outf = fopen(o_dialog->FileName.c_str(),"wt");
if (outf != NULL) input_btClick->Enabled = true;
}
}
void __fastcall TForm1::FormCreate(TObject *Sender){
//outf=fopen("o_dialog->FileName.c_str()","w");
input_btClick->Enabled = false;
}
void __fastcall TForm1::input_btClick(TObject *Sender){
int l_score=StrToInt(Edit2->Text);
fprintf(outf,"%s\n%d\n",Editl->Text.c_str(),l_score);
Edit1->Text="";
Edit2->Text="";
}
void __fastcall TForm1::exit_btClick(TObject *Sender){
fclose(outf);
Close();
}
解決が随分先になりそうな予感がしたので、
>>211 を「多分、動くもの」
にしてみた。プルーフ付き。ただし未コンパイル。
これで、何が間違ってたかを完全に把握してくれたまい。
>>218 テンポラリのTBitmap用意してCopyRectでよろしいかと。
>>214 ,215,216
指摘ありがとうございました。
最終的に
FILE *outf;
void __fastcall TForm1::o_btClick(TObject *Sender)
{
if (o_dialog->Execute()){
outf = fopen(o_dialog->FileName.c_str(),"a");
}
}
void __fastcall TForm1::input_btClick(TObject *Sender)
{
int l_score=StrToInt(Edit2->Text);
fprintf(outf,"%s\n%d\n",Edit1->Text.c_str(),l_score);
Edit1->Text="";
Edit2->Text="";
}
void __fastcall TForm1::exit_btClick(TObject *Sender)
{
fclose(outf);
Close();
}
これでできました
>>216 古い本じゃないけど,言語コードがchineseです...
リアルの都合で中国に住んでるけど、中国に来る前はC++builderの存在
すら知らなかったから、入門書とかも中国で買ったんです
amazonは国外対応らしいのでその本注文してみる
>>219 本当に助かりました、ありがとうございました。
で、141氏は本気でTip集をつくるつもりなのだろうか? 過去ログからサンプル漁っただけでも結構な量になりそうだな。
>>222 ええ、会員制で月会費5000円でやろうかと。
226 :
デフォルトの名無しさん :04/04/27 08:39
BCBで作ったexeをBCBインストしてないPCにもっていくと 使えないのはなにが足りないから?
>>227 プロジェクトオプションのパッケージタブで実行時パッケージを使って構築を外して再構築
>>227 実行時パッケージを使用するのチェックを外せ。
外さないとVCLがダイナミックリンクになる。
>>227 でもファイルでかくなるぞ。覚悟しとけ。
232 :
デフォルトの名無しさん :04/04/27 13:23
むしろそれが普通の実行ファイルのサイズと思え
>>227 まあ例えは悪いがVB6ランタイムを入れずにVB6のプログラムを
動かせ、と言っているようなものだからな。.NetになってからOS
レベルでUpdateされるようになってかなり様子が変わったが。
画面キャプチャソフト作ろうと思ってるんだけど onekeyでprtscrして画像を自動的に指定したフォルダに保存させる 画像名はfor文処理して1.jpg 2.jpg 3.jpg 4.jpg 5.jpg・・・・・・ って感じにする 2回目以降の起動はファイルの上書きを防ぐために 存在してる名前をとばす 作れそう? おれどうコード書いたらいいかわからんヨ
>>227-231 あれ、
リンカ→共有 RTL DLLを使う
のチェックもはずさないとダメでしょ、確か?
質問です。 AnsiStringをメンバーに持つクラスをつくる場合でも、やはりコピーコンストラクタは定義しておかないといけないのでしょうか?
メンバー自体がコピーして(コピー先とコピー元)両方同時に使っても支障がない型の場合、 コピーコンストラクタは不要。 (コンパイラが各メンバーのデフォルトのコピーコンストラクタを使用する コピーコンストラクタを自動的に作成するため)。
ということは, 例えば class TFoo { public; TBar anInstanse; }; TFoo a, b; ・・・・・ b = a; などという場合は、代入(b=a;)の時に、TBarのコピーコンストラクタが(定義されていれば)、自動的に呼ばれるのでしょうか?
あー そうですね。 サンクス、何となく理解できました。またキマス
>>225 テストアプリを作ってみましたが、うまくいきません。
なにか根本的に間違っているような気が…
Form に TImage と TButton 各1個を置いて、Form の OnShow で
Image1->LoadFromFile() でビットマップを読みこませています。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap *BmpTemp = new Graphics::TBitmap;
TRect RectSrc, RectTgt;
RectSrc = Rect( 0, 0, 100, 100 );
RectTgt = Rect( 0, 0, 100, 100 );
BmpTemp->Canvas->CopyRect( RectTgt, Image1->Canvas, RectSrc );
Image1->Picture->Bitmap->FreeImage();
Image1->Picture->Bitmap->Assign( BmpTemp );
Image1->Invalidate();
delete BmpTemp;
}
Image1->Stretch == true としているので、上記でビットマップの
( 0, 0, 100, 100 ) の部分が拡大表示されると期待したんですが…
できません。なぜなんでしょう?
想像してたのとちょっと違うコードができてきましたが^^; BmpTemp の大きさを指定してから、 RectTgt = Rect(0, 0, BmpTemp->Width, BmpTemp->Height) でいいと思う。 (試してないけど)
RectSrcとRectTgtの大きさが同じでなんで拡大されんの?
246 :
デフォルトの名無しさん :04/04/28 14:47
MEMOコンポーネントのLINESで、特定のSTRING行を強調表示(FONTの色を変えるとか) するには、どうすれば良いのでしょうか。
>>246 Memoコンポーネントを使わないでRichEditを使う
>>247 ありがとうございます。試してみました↓
RichEdit1->SelAttributes->Color = clRed;
RichEdit1->Lines->Add("RED RED");
またひとつ利口になりました→SelAttributes
(後々の事を考えるとMEMOは使わない方が良いのかも?)
>>235 void __fastcall TForm1::fullClick(TObject *Sender){
int i;
AnsiString file_i;
file_i="i.bmp";
Sleep(500);
Application->ProcessMessages();
HDC DC = GetWindowDC(0);
Image1->Width = Screen->Width;
Image1->Height = Screen->Height;
BitBlt(Image1->Canvas->Handle,
0, 0,
Screen->Width, Screen->Height,
DC, 0, 0, SRCCOPY);
//デバイスコンテキストを開放する
ReleaseDC(0, DC);
Show();
for(i=0;i<100;i++){
if(FileExists(file_i)){
break;
}
else{
Image1->Picture->SaveToFile("../i.bmp");
break;
}
}
}
とりあえず某所からソースパクってbtnclickで
ファイル保存って感じにしたんだか、
コンパイルできたけどクリックしても反応なし......
やっぱi.bmpって表現無理しすぎたかな?
for(int i=0;i<100;i++){ // ファイル名作成 file_i.printf("%d.bmp", i); if(!FileExists(file_i)){ Image1->Picture->SaveToFile(file_i); break; } } こんなかんじにやってみれ
>>249 for(i=0;i<100;i++){
if(FileExists(file_i)){
break; //<もしファイルが存在したらここでforを抜ける。continueの間違い?
}
else{
Image1->Picture->SaveToFile("../i.bmp"); //<書き込むファイル名は"i.bmp"であって1.bmpや2.bmp等ではない
break;
}
}
}
>>250 >>251 指摘してくれてサンクス!
おれの未熟さに呆れる(´Д`;)
んでタスクトレイにアイコン置いて
program実行させるとこまで成功したんだけど
プログラムを起動するときFormが出てしまう
Formを出さすにタスクトレイのアイコンだけ表示させるのは
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
}
にApplication->ShowMainForm = false;
を追加したらいいと思うけどどうやって追加したらいいかワカリマセン...
タスクトレイにアイコンあるだけじゃアプリケーションが
常時実行されてるとは言えるかな?
hotkeyを設定してプログラムがタスクトレイに表示されてるとき
onekeyで画像キャプチャ実行って感じにしたいけど
常時実行状態じゃないとやっぱり無理ぽ?
エロい人おながいします;;
253 :
デフォルトの名無しさん :04/04/28 22:09
教えてくだされ。 MDIアプリケーションで子フォームの一覧をメニューに表示するには、 WindowMenuプロパティを使えばいいのはわかったのですが、 BCBのIDEのように、イメージ付きでメニューを表示するにはどうしたら いいんでしょか?
解決しますた
レスくれたみなさんありがとうです。
>>244 >>243 の CopyRect の前に次の2行を挿入してできました。
BmpTemp->Width = 100;
BmpTemp->Height = 100;
コピー先のビットマップの大きさを設定することで…中では
どんなことがおこったのでしょう?
>>245 CopyRect() で元画像の一部だけを別のビットマップに
コピーし、それを TImage に表示させています。TImage 自体の
大きさは(元画像を表示していたのと)変わらないので、
TImage のストレッチ機能で、コピーされた一部分が全体に
拡大表示されるという目論見です。
これって方法としては邪道でしょうかね?
BCB6で開発をしている者です。 単純なPGでも作成したEXEサイズがエライおっきいんですが これを小さくすることはできないんですかね? どなたか教えて頂けたらありがたいです。
>258 いまUPXで圧縮して人に渡したりとかしてるんですけども どうも圧縮したEXEを渡すのって気持ちが悪いので・・・ つか、UPXの話がいきなりでてくるってことは、 C++Builderの設定で小さくすることは不可能って認識でおっけーなんですかね?
>>259 正解
VC++で言えばmsvcrt.dllとmfc*.dllがスタティックリンクされてる状態だからどうしても大きくなる。
>>259 他のM$の言語のようにウン十MBのランタイムがいらないことを考えると、
十分小さく思える。
とりあえず「ランタイム使用」でメイクして、必要とされるdllのみ同梱して配布すると 物によっては配布ファイル合計サイズは小さくなる、 かもしれない。
257です。レスありがとうございます。
>>260 さん
そういえば260さんがおっしゃるようにMFCでもスタティックリンクにするとでっかくなりますね。
>>261 さん
そういえばそうですね・・・
相手がMSランタイム持ってるって前提があるから小さくできてるだけで・・・
>>262 さん
やってみます。
でもまぁどうしても小さいEXEがつくりたきゃWindowsSDKで作れってこってすね(´д`)
GUIの作成はやっぱBCBが楽なんで、サイズくらい目をつむることにします。
皆様、お返事ありがとうございました。勉強になりました。
C++ Builder、C# Builder、Delphiって言語以外大した違いがない気がするんだけど、 何か他に決定的な違いってありますか?
C#Builderは知らんけど、C++BuilderはDelphiにC++の皮をかぶせたような感じなんで、 大して違わんのはまあ当然かな。 Delphi言語はいじってて面白い。クラス参照型なんかは慣れると結構便利。
C++Builder は大量にあるC/C++のライブラリを、 少々の修正で使えるのがメリット。 (少々の修正ですまない場合もある・・・ 今のぼくは boost/spirit が使えないのが悩みorz) それから Windows 関連のコードって、 やっぱり VC++ で書かれてる例が多いので 移植は簡単。 でも、コンパイルは Delphi より遅い。 バージョン6以降発売されてないので、 このまま消滅するのでは・・・と心配している。 C# Builder はCOMコンポーネントをいじるような プログラムはVB並にラクチンにできる。 ただし逆コンパイル可能なので商用ソフト作るのには 向かないかも。 作成されたプログラムが .NET Framework が入ってない環境では 動かないのが僕的にはいや。
Delphi は VCL 関連はやっぱり C++ Builder よりだんぜん 情報多いので、VCL理解できるまでは、C++ Builder じゃなくて Delphi 使ってみるのもいいと思われ。無料版もあるし。 (C#Builderもある。だけどC++Builderはない。) コンパイルはすげー早い(みたい)。 あと、linux に移植したくなったら kylix 使えるのも大きなメリット。 僕的には、 begin - end と何回も書かされるのが不快。 便利な with もよくわからないうちに使うと、検出困難なバグを作り込む 原因になる点もいや(昔よくハマッタ)。 C 使いには procedure/function を区別しなきゃいけないというのもよくわかんない。 BCB使いから見るとこんな感じ。(Delphi好きに怒られそうですが) っていうか、Borland は BCB と Delphi を早くセットで割安販売するようにして欲しい。 (ところで、BCB5 にアップグレードしたとき、Delphi と J Builder の古いバージョンがオマケで ついてきたんだけど、このサービス今はやめちゃったの?誰かおしえて。)
(Kylix 3 で C++ にも対応してるみたいです。)ゲショ
>>265-268 なるほど。Delphiはちょっと使ってたことあるんだけど、Pascalに慣れてないせいか
ちょっと違和感があったなぁ。まぁそれがまた面白いんだけど。
ただ普段はC++使ってるからBCBとかの方が頭の切り替えいらずで便利そう。。
過去の資産も利用できそうだし。アハァ、フリー版ほすぃ(*´Д`*)。
>>269 某がBCBのフリー版出したとすると、それと同時に「今後BCBの
開発は停止します」なんて言い出しそうで怖いじゃないか。
そうでなくても開発停止してるらすぃのに。
271 :
デフォルトの名無しさん :04/05/01 04:36
age
272 :
デフォルトの名無しさん :04/05/01 09:08
C++BuilderでVBのfor eachのような操作はできますか?
vectorとiterator
HSPしかやった事のない阿呆が粋がってBorland C++ builderをインストールしてがんばっているんですが、 DOS窓とかそういう概念がないのでまずそこから学びたいのですが何処かいい所を知りませんか?
>>276 ありがとう!立派なプログラマーになって帰ってくるよ!
>>275 正直、趣味でプログラムやるなら、いまからDOS勉強してもあまり使うところがないのではないかという気が。
C# Builder やったほうがいくね?
(まぁ、趣味なんだから自分が一番好きなのやればいいとは思うけど)
ところで、今、ボーランドのサイト行ってみたら、 Delphi の personal 版ってダウンロードできなく
なっちゃったみたい・・・。CD持ってたら、ライセンスキーの発行はするみたいだけど。
280 :
デフォルトの名無しさん :04/05/04 12:56
堤さやか \952 「とびっきりSUNDAY,・・・fall in love ♥」
StringGridのスクロールバーをListBox等と同じようなバーにするのはできますでしょうか… 使いにくい…
>>282 OptionsのgoThumbTracking = trueで一歩近づく。
StringGridのスクロールバーを消して ScrollBoxに入れる。
BCB6のWindowsAPIの日本語Helpってどこにありますか?
見つかりました。Disk2にあったw
C++Builder5 + ADODatasource + Access2000で動いてたアプリケーションがAccess2003で動かなくなったんだけど、C++Builder6では大丈夫なんだろうか? データの読み書きできてるんだけど 「BOFとEOFのいずれかがtrueになっているか・・・」 というエラーがでることがある。
>>288 ディスク2の\INFO\EXTRAS\JPHELP
ヘルプのカスタマイズでIDEからF1で表示させることも可能。
ちなみにPersonal版にも入ってる。
それ大昔のやつでしょ。>>日本語ヘルプ まぁ、概要を読んで勉強するのにはいいけど、 実際にリファレンスとして使うときは 現行のヘルプと照らし合わせが必要だよ。
>>291 最新の情報は英語ヘルプを見ろと書いてあるのにその英語ヘルプもやや古かった気が‥‥
HTMLHelp版なり現行のDocumentExplorer版のPSDKドキュメントを直接呼び出せれば便利なんだけど‥‥
>>289-292 サンクス。確認できました。これ、俺Borland-C++5.02Jの正規
ユーザなんだけど、そいつに入ってる奴と同じみたいだね。
Borland-C++はとうの昔にHDDから消したから、忘れてた。
英語版と違い、Win95/2000の違いが全く書いてないので今使う
には注意が必要だけど、これはこれであっても面白いね。
待てよ、英語版でも2000についてのドキュメントは無いか・・・・ 2000のAPI本があるからそれを見てるけど、分厚くてねえ。
BCBのHELPは糞_| ̄|○
当時は見やすいと思ったんだけどね。 メンテナンスされてないから。
297 :
デフォルトの名無しさん :04/05/06 10:23
StringGridのGetEditMaskで0〜255までの入力制限をさせたい場合どのように記述すればいいのでしょうか?
TFormのOnResize時にコトを起こしたいのだけれど、OnResizeってFormのクローズ時にも呼ばれちゃうのねん。 ホントにFormのリサイズ時にしかコトを起こさないようにするにはどーすれば? おせーてエロいシト。
>>297 ヘルプで FormatMaskText の項をみるべし。
301 :
デフォルトの名無しさん :04/05/06 14:11
>>300 それは見たんですが、入力範囲を指定する方法がわからなくて・・
>>301 実はアレをみても解決しない^^;ちょっと冷やかしてみたかったの。
GetEditMask ではキミのやりたいことは多分できない。
(ぼくの知識がたりないだけかもしれないが)
OnSetEditText イベントで数字が範囲内に収まってるかチェックするか、
OnSelectCell と OnExit を使って、当該セルからフォーカスが移動した時にチェックするのが、
常道なのではないかと。
それとも、GetEditMask にこだわる理由があるの?
間違えたって言えない人間か
304 :
デフォルトの名無しさん :04/05/06 19:08
>>302 いえGetEditMaskにこだわる理由はまったくないのですが、
そのイベントのヘルプをみたらそれらしいことを書いてたのでできのかなって思ったもので
OnSetEditText って入力されるたびに発生するのですが、l
それが最後に決定されたかどうかはどうやって判断すればいいのでしょうか?
ぼくも使ってみたのは昔のことなので、うろ覚えとことわったうえで回答しますが、 OnSetEditText は1文字入力するごとに発生したと思います。 (っていうか、それぐらいは質問せずに、自分で実験しろよ、と) 決定されたかどうかは、編集中のセルが移動した(OnSelectCell)もしくはフォーカスが他の コントロールに移動した(OnExit)をもって判断すれば良いのではないかと思います。 これが方法1。 で、試してないのでなんともいえませんが、OnSelectSell で EditorMode プロパティを 参照すれば、確定済みかどうかわかるかもしれません。方法2。 まぁ、方法2のほうがお手軽なんで、試してみてだめだったら、方法1で実装すれば? 差し支えなかったらなに作ってるのか教えて。それがわかれば、また、別の アドバイスのしようもあるかもしれないし。
>>304 >それが最後に決定されたかどうかはどうやって判断すればいいのでしょうか?
OnSetEditText内で判定するのは不可能。
普通はセルから出ようとするとき、つまりOnCellSelectで判定する。
OnCellSelectは移動する直前に発生するので、
不正な値が入力されているときは移動させないことができる。
ただし、Cellを移動せずにStringGridから出たときも入力値のチェックが必要になると思う。
あとは、TDBGridを使うことを考えるというのも実際的な判断。
>>305 EditorModeをどのイベントが判定するのか?という問題が残るので
OnSelectCell and OnExitを使うしかない。
あとはTDBGridつかうか、いっそカスタムコンポ作るか。
追加。 入力値に制限があるときは、そもそもインプレースエディタを使わず 別に入力フォームを出すというのもありだな。 つか、オレだったら多分こっちにするわ(w
>>307 OnSelectCell 内で
if(EditorMode){
// 編集中
}else{
//確定済み
}
みたいにかけないかなぁと、ふと思いました。
試してないんだけどね。
(・・・OnSelectSell と書いているよ、オレ orz)
>>309 問題になってるのは「どのタイミングで入力値の検査をするか?」でしょ。
たとえば入力値を訂正するときなんか、一時的に不正な値が入力されることは多々あるので、
入力値の検査はエンドユーザが入力を確定したときに行うのが理想。
TDBGridなんかはそのように実装されている。
でもTStringGridをそのまま使うならOnSelectCellかOnExitで検査するしかないと。
その場間と、わざわざEditModeは見る必要は無いと思う。
まぁ、
>>303 氏が何を考えてるか分からんから何とも言えんけど。
void __fastcall TForm1::Button1Click(TObject *Sender) { while(1){ } } void __fastcall TForm1::Button2Click(TObject *Sender) { } Button2の中になにをいれれば1のループを抜けれますか?
>>298 実験していないのでアレですが、OnResize の中で
TForm の ComponentState だったかっていうプロパティを
見て、コンポーネントが破壊されている途中かどうかを
判定するという方法はとれないですかね。
>>311 そのままでは不可能。
Button1Clickの実行中にButton2をクリックしたとしても、
Button1Clickから戻らない限りButton2Clickは実行されない。
手としては、Button1Clicを止めるためのフラグを用意して、
Button1Clickのループ内でProcesMessages()→フラグ判定。
Button2Clickでフラグをいじる。
もしくは、スレッドを使うか。
スレッドだろうな。 状況次第だが、ビジーループは避けたほうが無難。
Form上のコンポーネントをダイナミックに配置換えしたいのですが、 遅いマシンだとパラパラと動いている様子が見えてしまいます。 配置開始時に親フォームのVisible=falseにして、終了時にVisible=trueにしても なんかいまいちなのですが、何かテはありますでしょうか?
>>315 LockWindowUpdate(Form1->Handle);
// コントロールの移動
LockWindowUpdate(NULL);
これで移動する様子は見えなくなる。と思う。
>>315 TWinControl::DisableAlign()
TWinControl::EnableAlign();
>>313 >>314 void __fastcall TForm1::Button1Click(TObject *Sender)
{
while(1){
if(Flag) break;
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
CreateThread->MyThread;
}
Unit2.cpp
__fastcall MyThread::MyThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
void __fastcall MyThread::Execute()
{
Flag=true;
}
こんな感じ?
> Button1Clickの実行中にButton2をクリックしたとしても、 > Button1Clickから戻らない限りButton2Clickは実行されない。 これをおもくそ無視してるな
>>318 ビジーループ方式ならこう。
//bool FlagはTForm1のprivateメンバ
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Flag == false;
while(1){
ProcessMessages();
if(Flag) break;
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Flag == true;
}
スレッド方式だと、大筋は同じなんだが、
ループ処理をTThread::Excute内に書き、別スレッドの処理とする。
ProcessMessages()は不要。
フラグはTThread::Terminatedが用意されているのでこれを使う。
あとはTThreadを使うときのお約束がいくつかあるのでそれはヘルプを読むと。
↑訂正 あいや、代入が等号になってら。 Flag = false; Flag = true; です。
>>316 ,317
THX!
僕の望んでいた動きをするのは316でした。
でも317もありがとう。
AnsiString stra; int b=10000; void __fastcall TForm1::set_cClick(TObject *Sender) { stra=InputBox("TIMER","input autocap timer",""); b=StrToInt(stra); } void __fastcall TForm1::fullClick(TObject *Sender) { Sleep(b); } sleep();の()の中の数字をinputBox関数で入力するにはこんな感じでいいですか? コンパイル通ったけどうまく作動しないです
解決しました 数字を入力し間違えただけでした
>>324-325 それだと数値以外が入力されたら例外が出るぞ。
StrToInt を StrToInDef() に変えて数値が入力されて無い場合にも対応した方がいい。
スマン。 ×StrToInDef() ○StrToIntDef() の間違い。
void __fastcall TForm1::Button1Click(TObject *Sender) } Button1->ShortCut = HotKey1->HotKey; } これでhotkeyを設定してますけど hotkeyを押しても作動しません なぜでしょうか? hotkeyを何回か変えてみたけどだめみたい
>>329 そらTButtonにShortCutプロパティは存在しないからだな。
という突っ込みはさておき、TMenuItemなりActionなりのShorCutに
代入すれば問題無く動作するはずだが?
動作しないとしたら別のところに問題がある。
>>330 TPopMenuに代入してみたけど
window状態だと動作するけど、タスクトレイに収まってるときは動作しない
これが問題?
>>332 ってことはタスクトレイをアクティブ状態にしたらいいのか?
なんか解決法ないかな
次バージョンのBCBは年内に出るだろうか? それとも投売りしてるBCB6を買うべきか…悩
先ほどコンパイル中にIDEが落ちて(不正な処理ダイアログ出ず)、 再起動させようとするとBCB6のスプラッシュウィンドウが表示されるだけでIDEが起動しなくなってしまいました。 どうしたもんでしょう? 解消する手がかり知りませんか?
>>336 とりあえずPCを再起動してからためしてください
>>335 どうもBCBは6で終わりって話らしいデスヨ
おまいら BCBX を忘れていませんか? つまりそういうこった。
>>340 何言ってるかわかりませんが。
BCBX が BCB の後継だと思ってるなら、それは間違いです。
>>341 340の言ってることも間違ってるとはいえない。
要望が出れば統合もありうるらしいから
BCBX と BCB が統合されちゃったら、 Kylix との棲み分けをどうするのかヒジョーに疑問。 だから、統合はないと思うんだが。
345 :
デフォルトの名無しさん :04/05/10 05:15
C++BuilderXに統合されても、別製品として、VCLやCLXをサポートする ものが出ると思うけど。 もし、VCLやCLXがサポートされない場合はDelphiを使うしかないかな。 C++BuilterXでコンパイルしたものをDelphiで使うことは可能だと思う。
>336 直前まで開いていた(つまり今回BCB6が開こうとしている)プロジェクトの .dskとか.resとか.tdsなんかを削除してから起動してみて下さい。 BCB5ではこんなことなかったんだけどなー。 話し変わって便乗質問。 「スプラッシュウィンドゥ」ってどうやって組み込めばいいのでしょうか?
>>346 TApplication::Runのヘルプ嫁
新規作成のスレッドオブジェクトで Unit2.h class TReverseImage : public TThread { } として、 Unit1.h private: TReverseImage *mReverseImage; とすると、以下のエラーが出ます (TReverseImage *mReverseImage;)->E2303型名が必要、E2139宣言に;がない ヘッダーファイルは読み込んでるんだけど な〜んでかな? ちなみにBCC5Learning
>>349 Unit2.hがその通りの記述なら、Unit2.hでTReverseImageクラスが宣言されていない。
>>350 あ、間違えました
Unit2.h
class TReverseImage : public TThread
{
};
記入漏れでした→';'
宣言できてると思うんだけどエラーにナリマツ
スペリングミスに一票
テレビで47氏が押収されたものとしてC++Builderが出てきてたね。 誇らしい。
ある関数に引数としてコンポーネントを与え、そのコンポーネントのOnClick時にコトを起こしたい。 って、ココまではOnClickイベントを奪取(上書き)すれば出来ますよね。 でも、奪取する前に元々記述されていたOnClickイベント時の動作も行いたい。ってのはどうすればよいのでしょうか?
>>354 表現が非常に不正確で何が言いたいか明確に分からん。
プログラミングの質問なんだから用語をきちんと使いなさい。
イベントハンドラも関数なので、別関数から普通に呼べるし、
コンポーネントの各イベントに対するイベントハンドラは
代入により動的に変更できる。
これだけ分かってたら何とかなるだろ。
何とかならんかったら、もうちっと明確かつ具体的に質問汁。
>>353 Winny2はC++Builderで組まれたものだろ。(Winny1はVC++)
358 :
デフォルトの名無しさん :04/05/11 22:15
>>351 Unit1.hで#include "Unit2.h"とかして、Unit2.hで#include "Unit1.h"とかしてないか?
んで、Unit2.hが#ifndef〜#define〜#endifされてないと見た。
>>355 しゅいましぇん。
class Hoge {
TButton* buttonp;
public:
Hoge(TButton* _p) : buttonp(_p) { buttonp->OnClick = onclick; }
__fastcall void onclick(TObject* sender);
};
こうすると、引数で与えられたTButtonのOnClickイベントを変更出来ますが、
このTButtonに元々書かれていたOnClickイベントも(onclickの後に)実行したいのです。
ご助力を〜。
360 :
デフォルトの名無しさん :04/05/12 11:03
>>358 それぞれの.hはそれぞれの.cppにincludeされてました。
#ifndef〜#endifもBCCが作ってくれてました。
で、シコシコ いじってたんですけど…
private宣言ではエラーになるので、.cppファイルのメソッドの外で宣言したらコンパイルできました。
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
static TReverseImage *mReverseImage;//Unit1.hのprivate:で宣言できなかった
//---------------------------------------------------------------------------
void __fastcall TMainForm::StartButtonClick(TObject *Sender)
{
mReverseImage = new TReverseImage(false);
}
void __fastcall TMainForm::StopButtonClick(TObject *Sender)
{
mReverseImage->Terminate();
}
>>359 元のを保存しておくしかないんでない
class Hoge {
TButton* buttonp;
TNotifyEvent oldOnClick;
public:
Hoge(TButton* _p) : buttonp(_p) {oldOnClick = buttonp->OnClick; buttonp->OnClick = onclick; }
__fastcall void onclick(TObject* sender)
{
:
if (oldOnClick)
oldOnClick(sender);
}
};
>>360 >それぞれの.hはそれぞれの.cppにincludeされてました。
それならUnit1.hではTReverseImageは宣言されてないじゃないか。
//Unit1.hで
class TReverseImage; //先行宣言
class Form1 : TForm {
private:
TReverseImage* mReverseImage;
・・・
あー、初心者の「ヘッダファイルはインクルードしてます」を鵜呑みにしたらあかんと。
>>359 TButtonから派生させたら早いんでないの?
>>363 ご指摘のとうりでした...首洗ってイラクへ行ってきまツ
みなさま サンクスコ
メインフォームとサブフォームの2つのフォームがあるのですが、この2つのフォーム両方を 常に手前に表示することはできるのでしょうか? (例えば、メインフォームとデバッグ用フォームを常に他のウィンドウより手前に表示しておきたい) SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); このAPIを両方のフォームに適用しても両方が常に最前面に表示されません。 /* サブフォーム、メインフォームの順にSetWindowPosすると一見両方に適用されたかのようになりますが サブフォームをクリックしてアクティブにすると、両方のフォームの最前面表示が解除されてしまいます。 */ どなたか教えてください。
質問でーす クロージャって、C#でいうデリゲートの事ですか?
おー・・・・ 見捨てられてなかったか。
>>367 メソッドのアドレスをインスタンスと一緒に保持する点は同じ。
デリゲートの他の機能はナシ。
373 :
デフォルトの名無しさん :04/05/13 18:25
ListViewのEditedイベントでEnterキーで編集を決定するとKeyUpイベントが呼ばれてしまいます。 キャプションの編集をEnterで完了してもKeyUpイベントを呼ばれないようにするにはどうすればいいですか?
>>373 そら、キーが押され離された以上、KyeUpイベントは発生するがな。
KeyUpイベントを使うなら、その中で判断するしかない。
↑補足 キャプション編集時だけの問題なら その間だけKeyUpイベントを無効にするという手はあるな。 TListView::OnEditingでTListView::OnKeyUp=NULL; TListVew::OnEditedでTListView::OnKeyUp=<もとのイベントハンドラ>
BCB9を早くも心待ちにしています。今度はVC7.1に負けない 最適化コンパイラにしてくれよ。それとboostが通るように template周りのバグを取ってくれ・・・・と言っても無理か。
無理だろうなぁ・・・
BuilderXの追加パッケージみたいなのに、100%コンパイラとやらのプレビューみたいなのがあったから、 boostは大丈夫じゃない? 最適化は…Borlandは最適化よりもコンパイル速度を取るようなとこだから…
>>372 "市販のウィニー作成ソフト" ワロタ
この記事書いた奴 ほんとアホだなー( ´∀`)
何故か知らんが、「市販の」ってついた途端に妙に胡散臭くなるな・・・。
うーん、この手の記事はK冊の発表の通りじゃないのかな?
>>372 ,380
わははは。きっと、
『ウィザード形式で、アナタも簡単にウィニーが作れる』
というセールストークで、ソースネクストあたりが売っているに違いない。
TWinnyというコンポーネントはどこにありますか?
>>384 C++Builder9 Underground に搭載されます。
それは、どこで売ってますか?
>>386 もちろん、nyにフリーでながれますよ。
nyで落としたのかと思ってたんだが、外したか。
これが有名な "市販のウィニー作成ソフト" ですか
世間に認知され誇らしいですね ホr(ry
「わたしはこれ(BCB)で、人生ボウにふりました」 ・・・とかって、CMしたら少しはBCBも普及するかなぁ・・・
厳密にいえば、最初のWinnyは確かVC++で作ってたはずだから、 まずそっちで棒に振ったんだけどな。
棒に振ったのか? うちのアホプログラマーとリプレイスしたいくらいなんだが。
>>395 そこで働くことになれば、まさに棒n(ry
ふ〜ん、これと同じBCBであんなプログラム作れちゃうんだなぁ ・・・と思いつつ、ジッとIDEの画面をながめている鬱なオレ。
>>397 nyはアイデア勝負で技術的にはさほどのものでもないと思うのだが?
>>398 どうだろうねえ、仮想ネットワークを構築してあれだけ
安定して動くのはなかなかのものだと思うんだけど。
暗号化が弱いのがちょっとって感じかな。
でもパケット暗号はキー交換して動的に公開鍵暗号使っているんだからなかなかのものだと思うよ。 キャッシュ暗号はさすがに変換速度からして複雑な暗号はできないみたいだけど。
>>398 単純にAPIの使い方とかTCP/IP知ってるだけで組めるものじゃない。
P2Pとグリッドの知識が必要。
別に悪用する気はないけど、ソース見てみたいね。 まぁ見てもオレには殆ど理解できないだろうが。
クライアントサーバシステムを作るのもデバッグ大変そうなのに、P2Pになるともっと大変そうだな・・・。
棒とボーランドの「ボー」をかけてることに気づけ
406 :
デフォルトの名無しさん :04/05/16 06:50
>>406 そのサイトがこのスレでどう思われてるか知りたかったら過去レスよめ。
408 :
デフォルトの名無しさん :04/05/16 11:58
>406 いない もうnyで流れてるんじゃないの。 それとも未だに会員数ゼロで宣伝カキコか
409 :
デフォルトの名無しさん :04/05/16 14:07
毎月500円って・・・あの内容では会員なんて誰もいないでしょう。
始めてみる純粋な初心者さんならあるいわ。
最低6000円払わないといけないんなら、パワフルテクニックあたり買ってきたほうがいいな。
検索すればどっかしらのページで解説されてるよな。 オレはいつも「C++Builder-ML 過去ログ検索」だが。 ここの検索で疑問点が解決しなかったことないし。
そこってさぁ、更新止まってない?最近のメールは引っかからないようなんだが。
最新のはないけど、逆に定番の質問ばかりだからかえって便利。
実質FAQだね。それに旧VerのBCBでの回答の方が上位互換あるし。
少なくとも
>>406 に出ているTipsくらいならすぐに調べられる。
415 :
デフォルトの名無しさん :04/05/16 17:56
お助けを… BCB6 UPD#4とIndy9.0.14を使ってます 新規作成=>アプリケーションで新たなフォームを出します unit1.cppで #include <shlobj.h> を入れ、[プロジェクト]-[オプション] の [ディレクトリ/条件] タブにある[条件定義] に NO_WIN32_LEAN_AND_MEAN を追加します。 ここまでは無問題でコンパイルできます。 次にInduClientのIdHTTP1をポトリとフォームに落としてコンパイルしようとすると、 [C++ エラー] winsock2.h(###): E2238 '*****' の宣言が複数見つかった [C++ エラー] winsock.h(###): E2344 一つ前の '*****' の定義位置 というエラーの列がズラズラ出て最後は [C++ エラー] winsock2.h(625): E2228 エラーあるいは警告が多すぎる でコンパイルが止まります。 何故?皆さんのはならないですか?
タイポした InduClient ではなく IndyClient でした
>>415 その通りやってコンパイルはできた。でもIdHTTPを使うコードを書くとリンカエラーが出た。
で、<shlobj.h>を<shlobj.hpp>にしてNO_WIN32_LEAN_AND_MEAN を外したらコンパイルできた。
>>417 ありがとうございます
あなたはネ申です
ちらつきを抑えるほうほうってない?
>>419 それだけの質問だと、「モニタのリフレッシュレートを上げろ」が回答になってしまう。
質問は具体的かつ明確にすべし。
とりあえず
>>315 あたりを読むと参考になるかもしれない。
ならんかったら質問しなおせ。
421 :
デフォルトの名無しさん :04/05/17 20:29
BCB9が出ると仮定して、BCB9に何を求めます? とりあえず、ヘルプのリンク切れは直しておいてほしいが・・
VisualStudio.netライクなコードエディタ
>>421 まともにboostが使えるコンパイラとエラー吐かないIDE。
DirectX開発環境標準添付。
426 :
デフォルトの名無しさん :04/05/17 23:44
427 :
デフォルトの名無しさん :04/05/18 00:13
428 :
デフォルトの名無しさん :04/05/18 00:14
C++Builderってダイアログベースなアプリしか書けないのですか?
>>428 MDIでもサービスでもドライバ以外ならなんでもできる。
430 :
デフォルトの名無しさん :04/05/18 00:35
VC++みたいにModelとViewの分離は自分でこさえるしか ないのんかしら?
431 :
デフォルトの名無しさん :04/05/18 01:58
万が一にでもBCB9が出る兆候はあるのかい? だいぶ前Cマガで某島の偉い人のインタビューがあって BCBの次回作について聞いたらお茶を濁してたんだが
433 :
デフォルトの名無しさん :04/05/18 05:54
C++Builder 9がマジなら俺は即購入するよ。 いまは5使ってるしね。
オレも、即、nyで探す。
やっぱり 「日本語版がリリースされること」 かな? 日本語化されなくてもいいから、日本語を扱える開発環境。かな?
はじめから多言語対応してて フォントさえ正しく設定すればなんでも動くようにしてあればいいんだよね フォントの設定はインストール時に各言語選べるようにしておけばいいんだし
439 :
デフォルトの名無しさん :04/05/18 11:13
gvimと完全連動
440 :
デフォルトの名無しさん :04/05/18 11:41
エディターどうにかしてくれい。 キーのカスタマイズできるようにしてくれい。
441 :
デフォルトの名無しさん :04/05/18 11:56
442 :
デフォルトの名無しさん :04/05/18 13:54
TreeListやListViewEnabledをfalseにすると全リストが灰色表示になるのですが これ灰色にならずに普通に触れないようにするにはどうしたらいいのですか?
>>442 ウィンドウプロシージャを切り替える等して、
ユーザー入力に対応するイベントを潰すくらいしか思いつかん。
灰色じゃ駄目なの?ユーザーから見たら灰色の方が分かり易いと思うけど。
>>442 ReadOnly=true
じゃいかんのかな?
445 :
デフォルトの名無しさん :04/05/19 02:10
C++Builder ver6 personalを使ってます。 インターネット上からファイルをダウンロードするライブラリはないでしょうか?
446 :
デフォルトの名無しさん :04/05/19 02:21
nai
Winsockかな。
>>445 単に落とすとかならそれで十分だが、色々やりたいならIndy入れてみ。
450 :
デフォルトの名無しさん :04/05/19 11:42
>>443 いや灰色はいいんだけど、全ツリーが灰色になるんで
ツリーをクリした後にこれになると選択したノードがどれかわからなくなってしまうから
>>444 いかないですそれ。
最新のC++Builderは "-P" が含まれるフォルダにあるプロジェクトがビルドできない不具合解消されてんのかな?
452 :
デフォルトの名無しさん :04/05/19 16:36
質問させてくださ〜い。 既にデータセットされてるテーブルに、新しいフィールドを追加するにはどうすればいいんですか?
>>452 再構築する。動的にやりたかったら新たにテーブルを作ってデータをコピーする。
454 :
デフォルトの名無しさん :04/05/20 12:05
大規模なデータを操作するためデータベースの使用を考えています 具体的には株価データで、操作は、 (1)ある特定の銘柄の過去のデータ(5年分の日々のデータ)の読み込み (2)最新の一ヶ月分程度のスパンで全銘柄のデータを読み込み が必要です。 はじめは、データベースの知識が無いので銘柄ごとにファイルを分割して、時系列に並べる構造を考えました。 (1)は高速に行えると思うのですが、(2)は、この方式だと効率的に管理できないと思います。(アクセス時間が莫大になる) このような用途では、データベースが良いのではないかと想像してます。 Personalなので、データベースコンポーネントが付属してません。 Proを買ってもいいのですが、どうやら新バージョンがでるそうなので躊躇します Office付属のMsAccessは持っているので、こちらにアプリケーション間アクセスのような手法で Pro版を買わずに実装できないでしょうか?
>>454 データベースの知識がないのに、自力でデータ操作のプログラムができるわけないな。
ま、がんばってADOのプログラム書けば、自力で書けるだろうけど。
こういう質問してるところ見ると、その力はないと思うけどな。
で、MS-Accessで「大規模」なデータを扱うべきでもないな。
MSDE使えばいいのかな。
457 :
デフォルトの名無しさん :04/05/20 13:19
>>456 どうもありがとうございますm(_ _)m
>>455 次からはそういうポエムではなく、まともな回答を心がけて下さいね(^^;
無理して第三者とか言わなくていいです(^^;
>>459 じゃあ、無理せずCOMからやってくれ。
「バカにつける薬はない」
>>455 は、ポエムじゃないだろう。きわめて「まともな」回答以外の何者でもないぞ。
自分の耳に厳しいことは「まともな」回答に聞こえないのかい?
しらない単語が並んでるので、ポエムにしか見えなかった、に50VCL
463 :
デフォルトの名無しさん :04/05/20 14:39
こんな風に何回も連続で書き込むほどキレるようなことかなぁ・・・(^^;
464 :
デフォルトの名無しさん :04/05/20 14:45
>>453 ありがとうございます。
テーブルデザインを直接変更することはできないんですね(´・ω・`)
仕方ないのでもう一つ新しいテーブル作ってBatchMoveでコピーしたら
今度はフィールド名が正しく設定されないし・・・。
フィールド名の最後の文字が"_(アンダーバー)"になってしまうのはなんなんでしょ?
ちなみに14個フィールドを追加したうちの2個がそうなってしまいました。
>>454 455とケコーンしてしまったわけだが。
要は、COMコンポーネントとしてADOがあるから、それを使えってこと。
BCB9が出るかどうかまだ判らんし、素直にProを使え。
特に、業務であるならばその工数分はペイできるはずだから、上司と相談しろ。
>>455 ,457-460
正直、すまんかった。逝ってくる
∧||∧
( ⌒ ヽ
∪ ノ
∪∪
>>463 おれは連続して書き込んではないけど、被害妄想にとりつかれたら、自分に対する意見はすべて同じ人物からに見えるものだな。
もう一回だけ書いといてやるけど、COMでAccess操作するくらいなら、データベース操作用に抽象化されたADOでやったほうがいい。
でも、ADOを生で使うのは、それなりに面倒なので、覚悟したほうがいい。
出るか出ないかわからないBCB9を待つよりはPro買え。
それにAccessは大量データを扱うのには向いてないから、せめてMSDEでやれ。
もちろんCOMでやってもいいけど、ADOがやってくれてる部分も自分で書かないといけないから、勧めない。
ここまで書いてやってもポエムとかほざくようなら、一回死んで次に生まれたときにバカが治ってることを祈った方がいい。
467 :
デフォルトの名無しさん :04/05/20 14:55
>>466 > 被害妄想にとりつかれたら、自分に対する意見はすべて同じ人物からに見えるものだな。
そこまで自分のことがわかっているなら、ちゃんと反省しましょうね(^^;
みんな親切だなぁ・・・。 全然通じてないみたいだけど(苦笑
>>467 >そこまで自分のことがわかっているなら、ちゃんと反省しましょうね(^^;
反省だと?
ここまで人々が様々なアドバイスをして、それがすべてあなたの反応に起因している
のにまだ気づかないのか?
反省すべきはあなたの態度じゃないのか?
>>465-466 お疲れ。あんたが逝くこたぁないよ。
>>470 気持ちはわかるけど、そろそろスルーしようぜ。
>>471 すまない。熱くなってしまった。大変申し訳ない。
473 :
デフォルトの名無しさん :04/05/20 16:38
この人、最後まで被害妄想にとりつかれて相手を同一人物扱いしたままだったね(^^;
>>470 tnx
荒れ気味になってしまった要因は俺にもあったから、お詫びに一個話題を振ってみる。
BCBのパッケージに付いてくるCompanion Toolsにあるいくつかのコンポーネントってどうよ。
LMD-Toolsは前から使っていて重宝しているけど、他のはどう?
取りあえず、TMS Grid PackとABC for Delphiはインストールしたけど、こいつらを使ったことがある奴いる?
TurboPowerのやつもインストールしたから、俺のコンポーネントパレットはタブがすごいことになっている。(w
476 :
デフォルトの名無しさん :04/05/20 17:06
アクセスあるなら、アクセスで簡単にできるだろ。 SQLなんて一週間もあれば余裕で理解できるから、SQL憶えることだな。
>>475 いまだにDelphi5.0なので微妙に異なるが、
TMSは3年以上使っているけど、マジにお勧め。Gridもさることながら、
附属のコントロールは非常に重宝している。正式版購入した方がいいかもよ。
>TurboPowerのやつもインストールしたから、俺のコンポーネントパレットはタブがすごいことになっている。(w
自分Delのタブの数数えてみたら60くらいあった。ほとんど中毒症状だわ…。
なんかタイミング悪いときにきちゃったみたい(´・ω・`)
なんか板違いな質問のようで恐縮なんですが… MS Excelでいうところの「INT」と同じ機能な、一発で値を返してくれる関数ってないでしょうか? 『INT:数値を超えない最大の整数を返す。例:INT(8.9) = 8』
>>479 static_cast<int>(std::floor(8.9))
ではどう?
(int)8.9 じゃダメなの?
>>479 それって
int(8.9); // = 8
でいいんじゃないの?
>>478 BDE-API 使え
理解するのに苦労するが
>>483 それも、負だと未定義。
floor関数でいいじゃん。
>>480-485 考えてみたらBCBじゃなくてC++な質問でした。
板違いな質問にご回答頂きありがとうございました。
すいません。BCB6+SP4を使っています。 エディタについて質問させて下さい。 普通のエディタだと、選択してdelを押せばその文字は全部消せますよね。 BCBのエディタでは、それが消せないように思うんですが、なんとかなるもんなんでしょうか? なんか使いにくくて(泣)
>>487 うちのBCB6+SP4も消えてくれるが
>>488-489 えーっ! なにがイカンのだろう……?
エディタ設定でなんかなるんですかね(泣)
>>487 普通は
>>488-489 のように消せる筈ですが、僕のBCB6+SP4もたまに
>>487 のようになります。
選択した状態でdelキー押しても、選択していないときと同じ動作をします(よね?)。
コレはBCB5の頃からです。僕はマシンを再起動すれば直りますが、それでも直らなければ
BCB或いはOSの再インストールか、はたまたメモリが不良品か。
>>491 そうですね。del1コ分の動作をします。
あいうえお
かきくけこ
さしすせそ
を、「あ→そ」の順で選択してdelを押すと、「あ」だけ消えます。
……で、今やってみたら治りました(なんでだ(泣))
>>3 のフリーカーソル無効化アドインをさっき入れたんですが、
そのためでしょうか。
なんにしても、
>>488 >>489 >>491 さん、ありがとうございました。
TFormにTMainMenuなどを貼り付けると、ビジュアルコンポーネントを貼り付けられるFormの範囲が狭まりますよね? その場合の有効範囲(と言うべき?)の取得はどうすればいいのでしょうか?
自己解決しました。 ClientWidth/ClientHeightでした。 お騒がせしました。
495 :
デフォルトの名無しさん :04/05/21 13:49
数値を123,456,789みたいにカンマで区切って文字にする方法を教えてください
FloatToStrF(123456789, ffNumber, 15, 0);
497 :
デフォルトの名無しさん :04/05/21 13:57
普通は、FormatFloat 使うだろ。 FormatFloat( "###,###,###", 123456789);
別にどっちが普通ってこたないと思うが…
499 :
デフォルトの名無しさん :04/05/21 14:18
RS232C通信をするとき、皆さんはどうしているんですか。 市販とかフリーのコンポーネントを使ってますか。 それとも自分でラップクラスかコンポーネントを作りましたか。 もしくは、APIを直接使ったりしてますか。
う〜ん、うまくいかない・・・(´・ω・`) BDE使うとすると作成したプログラムはどこでも実行できなくなっちゃいますよね? で、結局考えたのが 項目を追加した新しいテーブルを作成→元のテーブルからデータをコピー→ 元のテーブル削除→新しいテーブルの名称を元のテーブル名に変更 って具合にとりあえず作ってみたんだけど次の問題が・・・ 1,データ型に「オートナンバー」をうまく設定できない(ftAutoIncでもダメでした)。 2,フィールド名の最後の文字が「_(アンダーバー)」になってしまうものがある。 なんかものすごい単純なことかもしれない気がするんだけど・・・ みなさんのお力をお貸しください。
HTMLから呼び出して使用するActiveフォームを作成しようとしています。 ActiveXの動作を動的に変更したいため HTML内に<param>を設定してパラメータを引き渡したいのですが BCB側で取得する方法が分かりません。 どなたかご説明いただけないでしょうか。 また、解説などされているページををご存知ならお教え下さい。 よろしくお願いいたします。
HTMLから呼び出して使用するActiveフォームを作成しようとしています。 ActiveXの動作を動的に変更したいため HTML内に<param>を設定してパラメータを引き渡したいのですが BCB側で取得する方法が分かりません。 どなたかご説明いただけないでしょうか。 また、解説などされているページををご存知ならお教え下さい。 よろしくお願いいたします。
HTMLから呼び出して使用するActiveフォームを作成しようとしています。 ActiveXの動作を動的に変更したいため HTML内に<param>を設定してパラメータを引き渡したいのですが BCB側で取得する方法が分かりません。 どなたかご説明いただけないでしょうか。 また、解説などされているページををご存知ならお教え下さい。 よろしくお願いいたします。
困ってるのは解ったから4個目は書くな。
質問でーす。 ブラウザのドキュメントを動的に操作する方法がわかりません。 例えば以下のように、メモリ上に確保したストリームからデータを食わせようと思っても hr = pPersistStreamInit->InitNew(); の部分で例外が発生してしまいます。 もうダメダー(><) DHTMLvoid LoadHTMLFromStream(TCppWebBrowser* pBrowser,IStream* pStream) { HRESULT hr; IPersistStreamInit* pPersistStreamInit = NULL; _di_IDispatch doc=pBrowser->Document; hr = doc->QueryInterface( IID_IPersistStreamInit, (void**)&pPersistStreamInit ); hr = pPersistStreamInit->InitNew(); hr = pPersistStreamInit->Load( pStream ); pPersistStreamInit->Release(); }
507 :
デフォルトの名無しさん :04/05/22 16:28
Web上の操作を自動化するソフトをつくりたいのですがどうしたらいいでしょうか? 例えば、Googleを開いて、検索キーワードを自動で入力し、検索ボタンまで押してしまうような アプリケーションが作りたいです。 (似たソフトで懸賞サイトで住所などの入力を自動化するソフトがありました。このようにフォームやパスワードを 自動で入力するソフトを作りたいのです) IEにキーボード入力の信号をだまして送るようなことは可能ですか?
可能です。
>>508 どうしたらいいのでしょうか?っていう質問にはちゃんと答えてあげたら?
IEなんかあてにしなくても、HTTPでやりとりしてやればいい。
上のほうのレスをみると、結局IEで用意されてるコンポーネントを使うのが楽なのかもしれんが。
>>506 InitNewのところで駄目ってことはDocumentが空っていうオチではないよねぇ。
うちの環境だと同じようなソースで問題なく出来てるけどね。
511 :
デフォルトの名無しさん :04/05/22 17:04
>>509 ありがとうございます。Pro版にあるWebBrowserコンポーネントのことですね。
たしかにそのほうが結局簡単かもしれません。調べてみます
>>510 いえ、この関数を呼ぶ前に、きちんと”about:blank”にナビゲーております。
で、DocumentComleteイベント内でCreateStreamOnHGlobalを使ってストリームを作成し、それに文字列をセットした後で
件の関数を呼んでいるのですが・・・
DHTMLを操作するためのDLLが組み込まれていないとかが原因かなぁDTL
ナビゲーる。って初めて聞いた
頭悪そう
515 :
デフォルトの名無しさん :04/05/23 03:03
キーダウンイベント時に”ポーン”と音がしてしまいます。 回避する方法はあるのでしょうか?
スピーカーを窓からなげすてる。
>>516 窓からスピーカーを投げ捨てたわけではないですが、
解決しますた。
スピーカーの為にも解決方法は書くべし。
>>518 Enterを入力した場合、改行できませんよと知らせてくれている
らしいので処理の最後に
Key = 0;
と付け加えると回避できます。
520 :
デフォルトの名無しさん :04/05/23 08:19
おまいら1日何時間C++Builderしてるんだ?
521 :
デフォルトの名無しさん :04/05/23 09:29
んこしながらC++Builderかよ
524 :
デフォルトの名無しさん :04/05/23 12:54
Buttonを10個ぐらい並べておいて、全てのボタンのブロパティを 簡単に変える方法はありますでしょうか?
>>524 オブジェクトのポインタをTButton*[]でもTListでもstd::vector<TButton*>どれでもいいから配列につっこんどけ
526 :
デフォルトの名無しさん :04/05/23 13:11
BCBはアマチュアプログラマーで使ってる人は多いと思うのだけど プロで業務アプリを開発してる人っておるの?
>>526 テストツールはほぼC++Builderだな。
>>526 業務アプリというか製造装置や検査装置に組込んで使ってる。
昔手伝っていたメーカーはNTにVC++で作ってたけどね
自社製品はBCBのほうが慣れてるし。
529 :
デフォルトの名無しさん :04/05/24 00:28
業務アプリはVC++がデファクトスタンダードだろ?
インターフェイスは作らんだろ デファクトっちゅったらVBじゃね?
>>524 例えばPanel1上に貼ったTButtonのプロパティを一斉に変えたいとき
for (int i(0), j(Panel1->ControlCount); i < j; ++i) {
TButton* buttonp(dynamic_cast<TButton*>(Panel1->Controls[i]));
if (buttonp)
buttonp->Caption = "Changed.";
}
>>526 以前いた会社では、POS用のアプリをBCBで作っていた
画面の調整がしやすい&DBの扱いが楽で(゚д゚)ウマー
>>531 ちと整理する。勝手してスマン。
for ( int i=0; i<Panel1->ControlCount; ++i )
if ( TButton* buttonp = dynamic_cast<TButton*>(Panel1->Controls[i]) )
buttonp->Caption = "Changed.";
j(Panel1->ControlCount); i < j の部分はそのままで良いんじゃないか? 些細な事だが、ループの度に Panel1 のメンバにアクセスするよりはローカル変数の方が早いだろ。
525のTButton*[]を使うのが普通だと思ってたけど、どうなんだろね。 因みに、TButtonの名前を Button1,2,3,.....10と連番になる様にしておくと、↓の様な方法でも変更出来ますね。 for (int i=1; i<11; i++) { dynamic_cast<TButton*>(FindComponent("Button" + IntToStr(i)))->Caption = "Changed."; }
>>535 Delphi育ちの人はControls[]を使う傾向にあるようだな。
素からC++の人は配列やらstd::vectorやらを使いたがる。おれもだけど。
そもそもdynamic_castはできるだけ避けるってのが染み付いてるわけで。
>>534 最適化してくんないかな?
>dynamic_castはできるだけ避ける なんか理由あるの?
>>537 例外でるでそ。コンパイル時の型保証ができないでそ。
そうか。 「できるだけ」って書いてあったね。
>>536 偉そうな事言ったけど C++ & プログラム 暦 1 年の俺には無理だ。
ここから最適化出来るなら俺も知りたいな。
ループの最適化なんてスレ違いだろうけどさ。
>>533 気になさらずに。みんなでより良いサンプルを作ろう。
>>534 仰る通り。その意図です。
>>535 確かに可能な方法だが、文字列を使う方法ってなんか遅い気がして。
それに、コンポーネントの名前に依存しない方が後々いい気がする。
エラそーにスマソ
542 :
デフォルトの名無しさん :04/05/25 10:17
gifファイルを読み取るのはどうしたらいいでしょうか? Delphiではコンポーネントが存在するようですが、Builderではみつけられませんでした。
542です。susieを呼び出すサンプルを見つけて解決しました。
先日誤って3回も投稿してしまいましたが 問題が解決しないので再度投稿させていただきます^^; HTMLから呼び出して使用するActiveフォームを作成しようとしています。 ActiveXの動作を動的に変更したいため HTML内に<param>を設定してパラメータを引き渡したいのですが BCB側で取得する方法が分かりません。 どなたかご説明いただけないでしょうか。 また、解説などされているページををご存知ならお教え下さい。 よろしくお願いいたします。
それくらいなら手っ取り早く自分で構文解析。 htmlの文法あやまりが無いと仮定してもよければ HTMLのソースを直接探索して<PARAM>みつければ良いかと。
>>537 禿本にそう書いてあるから(w
「キャストは必要悪、仮想関数使わんかゴラァ!」
ってのは確かに原則としては正しいと思う。
それが、VCL使ってるとそうも言ってられないけど。
多重継承が使えると楽なんだけどね。>VCL
>>540 あー、
>>536 は”コンパイラが最適化してくれるんじゃないの?”って意味ね。スマソ
小技だけど、コンパイラの最適化が期待できないなら、けつからループ回すって手はある。
for ( int i=Panel1->ControlCount-1; i>=0; --i )
C++ Builder 6について質問させてください。 Builder 5で作成したプロジェクトを開いたところ、 プロジェクトマネージャで表示されるファイルの順番が バラバラになってしまいます。 保存し直したり、再起動しても変わりません。 6のプロジェクトマネージャでは、ファイル一覧は ファイル名でソートされて表示されないのでしょうか?
>> 547 5は知らないけど6は任意だよ。 ドラッグ&ドロップで順番を入れ替えられる。
>>548 そうでしたか。ありがとうございます。
以前のになれていると有り難くない仕様変更ですね・・・。
なお、移行作業自体は問題ありありです(笑)
Update4になって、いい加減、こなれたかな、と期待して
いたのですが、何か 5 -> 6 になって退化しているのでは
とさえ思いたくなってきました・・・。
現在は、タイプライブラリの取り込みで悪戦苦闘中です。
メソッドとかプロパティが違う型で取り込まれるようになって
しまったので、コンパイルが全然、通らなくなってます(涙)
特に、今までTVariantInParam型で取り込んでくれていたものが
全て単なるVARIANTで取り込むようになっているのが痛いです。
他の移行組のみなさんは全然、問題なかったでしょうか???
550 :
デフォルトの名無しさん :04/05/25 18:05
某からDMきた 5→6へのアップグレード案内 もう5〜6回くらいは来たような気がする。 申し込み期限が12月20日になってるから、今年じゅうは、新バージョンの発売はないんだろうね。 それとも在庫処分に必死なのかな?
>>546 あ、そう言う事ね。こちらこそ勝手に勘違いしてすまん。
コードの最適化[速度優先]、リリースモードでビルドして逆汗して見たら
ループの度に TWinControl::GetControlCount が呼ばれてた。
どうもしてくんないようだね。
けつからループは思いつかなかったよ。今度試して見る。
んなとこの最適化、コンポーネントが1万個あっても意味ねぇ!
まぁそうだけどさ。気になったから調べてみたんだよYO!
「よ」がダブってるよYO。
気づかなかったよYO...orz
557 :
デフォルトの名無しさん :04/05/25 23:42
BorlandC++6.0 Professional WindowsXPで、 GraphEditを使いたいのですが、使えますか?
558 :
デフォルトの名無しさん :04/05/26 11:04
559 :
デフォルトの名無しさん :04/05/26 12:21
>>551 (゚∀゚)キタ--!!!
ってこれマジなんですか?
560 :
デフォルトの名無しさん :04/05/26 12:48
>>551 なんで、C++Builder version 9 なんですか?
C++Builder version 7〜8は何処へ?
デルファイが9だから。 なんでかというと、デルファイとBuilderで共通な コンポーネントライブラリのバージョン管理が大変なことになるからです。 同じ理由でBuilderは2もロストナンバーのはず。
生殖能力のない個体がロストナンバー扱いなんでしたっけ?
563 :
デフォルトの名無しさん :04/05/26 21:28
C++BuilderでDLLの作成を行いたいのですがエラーが出て作成できません。 bcc32 -WD -e hoge.dll hoge.obj hoge.defでコンパイルしようとすると Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland エラー E2194: ファイル 'hoge.dll' が見つからない hoge.def: エラー E2141 hoge.def 2: 宣言の構文エラー エラー E2206 hoge.def 2: 不正な文字 '@' (0x40) *** 2 errors in Compile *** となります。 hoge.defの内容は EXPORTS _hoge@0=hoge のような内容です。 解決方法を教えてください。 おねがいします。
>>563 オプションの書き方がまちがっとる
ヘルプの「コマンドラインオプションのディレクトリの入力」に-Lスイッチ使ったサンプルあるから見れ
あとdefファイルはあらかじめimplibでlibファイルに変換すること
TComboBoxのItemsプロパティに"200×200","300×300","400×400"と入れました。 次に"500×500"を追加しようと[・・・]のボタンをクリックした所、 「RichEditでの行の挿入エラー」 と出て編集できません。今は仕方なく.dfmファイルを直接編集してしのいでいますが、 これはバグなのでしょうか。 BCB6 Professional(SP4) + Windows XP SP1 Professional での症状です。
>>551 なんて書いてあるの?
いま都合でみれなくて。ちきしょー・
>>566 BCB6SP4 + Win2kSP4でも中に×や÷が入ってると再現性ありのエラーが出た。
とりあえず"500x500"等の半角英数にしとけば問題なし。
>>567 Yup, that's right: information has been leaking (in a controlled way) about a possible forthcoming new (VCL!) edition of C++Builder,
with the version number 9. Just like there never was a C++Builder version 2, we will skip version 7 and 8 - most likely to get 'on par' with Delphi 9 at the time of shipping.
Official words still have to follow, but read Anders Ohlsson's blog for some more details. And Michael Swindell also mentions C++Builder in his blog now.
569 :
デフォルトの名無しさん :04/05/27 00:12
dynamic_arrayとvectorはどちらがお勧めなの?
ちょとおしえてください。 TEditでAlignmentのプロパティがないんですけど、右揃えとかできないんですか? TMemoは複数行になっちゃうし・・・ 1行限定で右揃えができる入力系コントロールってないですかね・・・ それが実現できればいいんで、どなたかご存じであれば教えていただけないでしょうかー。
>>570 エディットコントロールはSetWindowLongによる動的なスタイル変更ができないらしいので
TCustomEditを継承、CreateParamsを()をオーバーライドしてCreateWindow時にES_RIGHTを入れてやる必要がある。
>>570 カスタムコンポ作ってつかってるな。
つか、カスタムコンポというほどのものでもなし。
TEdit(またはTCustomEdit)から派生させて
CreateParamsをオーバーライドしてTCreateParams::StyleにES_RIGHTを追加するだけ。
もちろん、TextAlignmentプロパティを追加して動的に変更するようにしてもよし。
↑あいや、かぶったか。
>>569 DynamicArrayのことかいな?
それならDelphiとの互換のためにあるので、
それが必要無かったらstd::vector使うよし。
>>572 動的に変更できるのはXPだけらしい。
2000だとSetWindowLongで試した限りでは_。
>>575 そうなんか。自分じゃCreateParamsしか使ったことなかったよ。
フォローThx.
577 :
デフォルトの名無しさん :04/05/27 01:58
BCB6でmakeファイルを作成し、コマンドラインから bcc32 -m Project1.mak とするとエラーがたくさん出てmakeできません どうすればいいの?
>>577 make -fProject1.mak
エラーの内容を書け。話はそれからだ。
580 :
デフォルトの名無しさん :04/05/27 02:55
やってみりゃわかるよ
>>568 亀レスになるが、サンクス。やっぱりバグか・・・・・・
BCB9に期待しましょう。にしても昨日BCB6Ent版への乗り換えアップグレード
の案内がしつこく某から来たのだが、データベースへの接続でもしない限り
必要あらへん・・・・ローカルデータベースで十分だもんなあ。
うちにもアップグレードのDMは来たわけだが、 これで、もし、アップグレードの締め切り後にBCB9の発表、 バージョンアップの案内ときたら、客をなめてる話だよな。 むかし○ストシステムが同じようなことしたけど、 与太郎はあれでシェア落としたんじゃないのかな。
>>582 逆じゃないの?
シェアが落ちているから、そういうことをするわけだ。
570です。みなさんレスありがとうございます。 いまから会社いってやってみます。ノシ
>>582 D9 が今年末で、それを考えると BCB9 は年末から来年となるが。
某としてはBCB9もEnt版を買って欲しいんだろうな。でもエンドユーザーには さすがにEnt版はオーバースペック。ついでに価格もオーバースペック^^;。 Pro版でさえ持てあまし気味なのに。
587 :
デフォルトの名無しさん :04/05/27 15:48
bitmap->gif もしくは ps->gif に変換してくれるコンポーネントはありまつか? あれgifって著作権問題で駄目なんだっけ?
みんなおすすめのBCBのopensourceサイト を教えてくれーー 日本には少ない(ない?)と思うんで英語圏と中国圏のでもいいから・・・ 一通り基礎を学んだけどいざ自分でプログラムコードを書く になるとどこからやったらいいかわからない_| ̄|○
590 :
デフォルトの名無しさん :04/05/27 20:52
質問です。 通常、クラスの宣言は*.hで実装は*.cppに書くと思いますけど テンプレートを使ったクラスは皆さんどうしています? 僕は*.hppに全て書いて#includeしてますが、間違いでしょうか?
591 :
デフォルトの名無しさん :04/05/27 20:52
質問です。 通常、クラスの宣言は*.hで実装は*.cppに書くと思いますけど テンプレートを使ったクラスは皆さんどうしています? 僕は*.hppに全て書いて#includeしてますが、間違いでしょうか?
*.hpp にする理由って何? 俺はヘッダに全部書いてるな。実装とヘッダに分けてヘッダに実装を include する方法もあるけど。
593 :
デフォルトの名無しさん :04/05/28 02:09
>>588 ありがとうございました
やっぱgifは駄目でつか
>>593 特許問題。
もし使えるライブラリがフリーであっても、それを使うならウニシスに特許料払う必要がある。
>>594 その特許はあと1ヶ月弱で切れるけどな。
596 :
デフォルトの名無しさん :04/05/28 13:10
>>595 まぞですか?
そしたらもう普通に使っても特許料払え( ゚Д゚)ゴルァ!!って言われないの?
>>596 アメ公では既に特許切れていると記憶しているが…。
アメリカは2003年6月20日で切れた。 日本は2004年6月20日。
599 :
デフォルトの名無しさん :04/05/28 21:35
BCB5ですが、クイックすタートチュートリアルのデータベース(魚のやつ)で メークすると、rcpndr.hのコンパイルエラーが出るんだけど、どうやって回避 するのが正解なの?
hppってなんの拡張子ですか?
>>599 エラーメッセージの内容を示すべし。
>>600 c++のヘッダファイル。ただし標準ではない。
600
>>601 サンクス
もう少し質問させてください
LONG width,height;
RECT capRect;
HDC DesktopDC;
↑大文字のLONGと小文字のlongは意味同じ?
あとこのRECTとHDCって何型ですか?
>>603 全て大文字の識別子は、一般的にはマクロであることを覚えておこう。
#defineかtypedefなりされているもののはず。
で、Windows環境でマクロがでてきたら、何はさておきWinAPIのヘルプをあたると。
>>601 「{が必要です。」とか「構文エラー」とかです。
コピペしたいんだけど、会社のPCなので。
会社からは2chへのアクセスはブロックされてるし。
>「{が必要です。」とか「構文エラー」とかです。 そう言う事です。
?typedefがマクロ? 大文字/小文字は、コーディング規約っていうか、 スタイルによるだろ。
>>606 C++やるにはCDからインストール舌だけの.Hファイルを
自分で修正出来るスキルが必要なのか...ふふふ
連続カキコすまんですが、最新版でバグの無いrpcndr.hって どっから入手出来るの?
逆コンパイルと逆アセンブルってどう違うんだ? C++で書かれたexeの不完全ソースを手に入れるのは逆コンパイルだよな? 逆アセンブルはアセンブラを出力するものだと認識してます.
>>609 rpcndr.hのバグとは限らないよ。
というより、あなたのちょんぼである可能性のほうが高そうだ。
コンパイラの吐く構文エラーメッセージは、実際にエラーが含まれる個所を
指すわけではないからね。
実際のところはエラーメッセージ見ないと誰にも分からない。
簡単なエディタ作ったけど。 このエディタにIEの表示→エンコードのように エンコード変更をできるようにしたいけど、どうしたらいいんだ
「表示」-「エンコード」のメニューを付ける
さすがに某サイトのTipsよりレベルが低いぞ。
>>613 >>というより、あなたのちょんぼである可能性のほうが高そうだ。
どのようなケースが考えられるかご教示下さい。
もしかしてインクルードする順番とかですか?
>>コンパイラの吐く構文エラーメッセージは、実際にエラーが含まれる個所を
>>指すわけではないからね。
もう少し詳しくご教示下さい。
>>際のところはエラーメッセージ見ないと誰にも分からない。
先にも書きましたが、会社のPCでの話しなので今は再現出来ないです。
メッセージは「rpcndr.hにエラーが有る。」旨の内容だったのですが...
どなたかお時間のある方、魚DBのチュートリアルでエラーが出るかどうか
試して頂けませんか?
>>599 自分はBCB6だし、魚DBってのがなんなのかわからんのだけど、
rpcnd.hを使うなら
__REQUIRED_RPCNDR_H_VERSION__
とか設定必要じゃなかったっけ?いらなかったっけ?関係ないか。
あと、エラー出たんなら、ソースの周辺洗って直接原因か、
間接原因を特定して、間接原因なら、逆方向にデータフローを
辿っていけば直接原因にあたらない?
コンパイラが構文エラー出してくれるって事は、かなり初歩的な
ミスだから、コントロールフロー辿った方が速いかもしれないけど。
本当にrpcヘッダのバグなら大発見だし。ぜひ、解析して報告して
欲しい。
619 :
デフォルトの名無しさん :04/05/30 10:12
ってか、エラーメッセージ見れば大体原因は想像付く。 ただエラー発生するから、教えてクレクレ君には、正直勘弁だな。 ちゃんとしたレスほしければ、エラー内容くらいコピペしてこい。
>>618 インシデントとは直接関係無いけど。
BCB5までについてたチュートリアルのDB編。>魚DB
BCB6からはチュートリアルがCLX利用のものに変わったので
BCB6しか知らない人は見たこと無いはずです。
昔に作ったことあるけど、エラーなんか起きなかったが。
つか、用意されてるサンプルデータベースに接続するだけだから
エラーの起こしようが無いんだけど。
621 :
デフォルトの名無しさん :04/05/30 13:16
>エラーの起こしようが無いんだけど。 メカ屋なんかからよく聞く台詞でな〜w
622 :
デフォルトの名無しさん :04/05/30 13:32
BCB6でプログラミングしているんですが、 関数からリターンするところで、かってにブレイクしてデバッガが起動します。 エラーメッセージは表示されずに、アセンブラのソースが表示されて、 ntdll.DbgBreakpointというところで停止します。これはなんでしょうか?
623 :
デフォルトの名無しさん :04/05/30 20:34
TRichEdit で特定の行だけフォントを変える方法があればどなたかお教えください・・
>623 VCLだとこんな感じ。 LineIndexを好きな行番号に置き換えて使うよろし。 int TempSelStart = RichEdit1->SelStart; //現在行 int LineIndex = RichEdit1->Perform(EM_LINEFROMCHAR, -1, 0); //選択してフォント指定 RichEdit1->SelStart = RichEdit1->Perform(EM_LINEINDEX, LineIndex, 0); RichEdit1->SelLength = RichEdit1->Lines->Strings[LineIndex].Length(); RichEdit1->SelAttributes->Color = clRed; RichEdit1->SelStart = TempSelStart;
RichEditを空白の状態で表示させるにはどうしたらいいですか? EditみたいにText属性がないので...
>626 ヘルプ読め。
>>627 あーい
読んだけどわからない_| ̄|○
>>630 おお、感謝です
いままでRichEdit1->Clear();
でやってきたよ......
632 :
デフォルトの名無しさん :04/05/31 10:04
内部スクリプトコマンドで動作する機器を制御するプログラムを c++_uilderで作成したいのですが、C++Builderから直接スクリプト を実行するにはどのようにすればいいのでしょうか?スクリプト 言語はJavaScriptです。
633 :
デフォルトの名無しさん :04/05/31 10:59
Telnetクライアントプログラムを作りたいんだけど 参考になる書籍 or HPってある?
>>622 >>629 >>634 原因不明ですか・・・BCB側のバグですかね?
自作クラスのデストラクターが悪さしてるのではないかと想像しながら、理由が分からずあきらめてます。
BCB6を経由せずに実行すると何とも無いので、いまは、無視しています
つまりまともにWindows Updateもしていない香具師がBuilderのバグだと騒いでいたってことか。
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose) { int a,b; CanClose=true; if(edit1->Modified){ CanClose=false; a=Application->MessageBox("you will exit?","",1); if(a==1){ b=Application->MessageBox("save as file?","",1); if(b==){ saveasfile(); CanClose=true; } else CanClose=true; } } } ↑これなんだけど FormCloseQueryには型指定子は指定できない とコンパイルエラーが出るけど、間違ってると思えないんだがなんでだろう
if(b==1) 1が抜けてる でもコンパイルできない
>>638 その引用した部分の前で、タイプミスが無いか確認してみ。
引用部分には問題ないので、間違いがあるのはその前方。
下手したらヘッダ内。
>FormCloseQueryには型指定子は指定できない
以前に質問が出てた構文エラーもそうだけど、この手のエラーメッセージは
実際にエラーがある場所を指しているとは限らないので、
その周辺を根気良くチェックしていくしかない。
判らなかったら、一度そのイベントハンドラを削除(もちろん正しい手順で)した上で、
コンパイルしてみ。
>>640 おっしゃるとおりでした
ありがとうございます
>>636 ... そのコード入れたままで製品出荷するなよ...
カーネルにパッチ当てているコードなんだから、XPSP2 で動かなくなっても泣くなよ。
643 :
デフォルトの名無しさん :04/06/01 10:09
TImageでTransparent=trueで描画している時に、たまにTransparentがfalseになったみたいな状態になります 実際プロパティをみるとTransparentはtrueなのですが、TImageの上に乗ってるコンポーネントとTImageが消えた状態になります ちょっとはっきりしたタイミングがわからないので申しわけないが、そんな状態になってしまいます。 何が原因でしょうか?
BCB5でyaneSDK3rdまともに使えてる人居る? いたら正しい使い方を教えてほしいんですが。
BlobフィールドのあるDB間でコピーする場合、以下のような関数をwhile (!_srctblp->Eof)のループの中で呼びますと、途中で「開いているBLOBが多すぎます」という 実行エラーが起きてしまいます。CopyBlob()が終了する度に_wrttblp->Close()を呼べばうまくいくのですが、while文の中でいちいちOpen/Closeを呼ぶのはオーバーヘッドが大きそうでイヤなのですが、これは仕様でしょうか? bool CopyBlob(TTable* _srctblp, TTable* _wrttblp, const AnsiString& fieldname) { TStream* srcstrmp(_srctblp->CreateBlobStream(_srctblp->FieldByName(fieldname), bmRead)); try { _wrttblp->Edit(); } catch (EDBEngineError& e) { delete srcstrmp; return false; } TStream* wrtstrmp(_wrttblp->CreateBlobStream(_wrttblp->FieldByName(fieldname), bmWrite)); if (wrtstrmp != NULL) { wrtstrmp->CopyFrom(srcstrmp, 0); try { _wrttblp->Post(); } catch (EDBEngineError& e) { delete srcstrmp; delete wrtstrmp; return false; } delete wrtstrmp; } delete srcstrmp; return true; }
他のアプリケーションを起動するにはどういった関数を使用すればいいのでしょうか? 例えば、フォームに配置されたボタンをクリックすると メモ帳が起動するといったような処理をさせたいのですが やり方がわかりませんでした。 オンラインヘルプで「exe」「呼び出し」といったようなキーワードで 調べてみたのですが、目的にあったトピックを見つけることができなかったため 質問させていただきました
CreateProcess ShellExecute ShellExecuteEx WinExec
>>647 レスありがとうございます
助かりました
649 :
デフォルトの名無しさん :04/06/02 13:23
ちょっと教えてください #define AAACOUNT 8 上のようなデファインの値を動的に変更することは可能ですか? 8を12とかに
650 :
デフォルトの名無しさん :04/06/02 13:27
#defineで定義した名前はコンパイル前に置き換えられてしまうので無理。 変更したかったら普通に変数にしましょう。 int AAACOUNT = 8;
651 :
デフォルトの名無しさん :04/06/02 13:42
>>650 お返事ありがとうございます
変数ですと構造体などで定義している変数の要素数にそれを指定するとエラーになってしまうので・・
あとはifdefで分けるしかないのでしょうか・・
配列は、コンパイル時に要素数を指定しなければいけない(C99,gcc拡張を除く) それが嫌なら、配列自体を動的に確保する
>649 スレ違い。CかC++の相談室に逝くがよろし。 実行後に配列の要素が決まるような場合は、必要な要素数が決定した時点でnewするなりして配列の領域を取得するのが普通だろな。
>>651 ifdefもコンパイル前に決定されてしまう。
「動的に変更」って自分で書いてて意味分かってる?
655 :
デフォルトの名無しさん :04/06/02 14:27
#define AAACOUNT aaacountvar int aaacountvar = 8;
TListでもstd::vectorでも好なき方を使えば良さそうなもんだが。 プリプロセッサ指令で「動的に変更」することを考えるよりはるかに簡単だ。
659 :
デフォルトの名無しさん :04/06/02 16:09
660 :
デフォルトの名無しさん :04/06/02 16:23
それ定数じゃないYO
662 :
デフォルトの名無しさん :04/06/02 19:25
663 :
デフォルトの名無しさん :04/06/02 19:37
ちょっと割り込み質問ですが DynamicArray を解放するには,Length に 0 を代入します。ってヘルプに書いてますが 必要なくなったらLengthを0にして開放すべきなのでしょうか?
>>663 普通に使う限りは必要ないんじゃないか?
スコープから外れたらデストラクタ呼ばれるわけだし。
665 :
デフォルトの名無しさん :04/06/02 22:53
BCB6でMD5使うにはどうしたらいいですか?
666 :
デフォルトの名無しさん :04/06/02 22:53
666 G E T ' S
>>665 普通のC/C++用のライブラリで何か不満があるか?
TIdCoderMD5を実装しようと思い TIdCoderMD5 *MD5; AnsiString str; AnsiString result; MD5.Create(); MD5.Reset(); MD5.SetKey("ABC"); MD5.CodeString(str); result = MD5.CompletedInput; としてるのですが、肝心のTIdCoderMD5が未定義となります。 なにをインクルードすればいいのでしょうか。 あと、上のコードはなんとなく作っただけなので間違いだらけだと思いますが、 正しいコードを教えてもらえないでしょうか。
MD5. はMD5->の間違えです。
>>668 (=゚ω゚)っ[ grep ]
定義がわからなければIncludeディレクトリの中検索しる
>>670 #include <idcodermessagedigest.hpp>
でできました。
で、
TIdCoderMD5 *MD5;
AnsiString str;
AnsiString result;
MD5->SetKey("ABC");
MD5->CodeString(str);
result = MD5->CompletedInput();
とするとコンパイルはできるのですが、実行すると読み込みエラーがでます。
正しい実装方法を教えてもらえないでしょうか。
>>671 C++の入門書嫁。
>>671 の何処がまずいか自分で分からんようじゃどうにもならん。
ポインタを定義してもそれが指す実体は生成されんぞ。
MD5 = new TIdCoderMD5(NULL); でできたぽいんですが、結果を16進で表示するにはどうしたらいいんですか?
解決しました。 オマエラのレベルの低さがよくわかったので、 このスレではもう質問しません。 サイナラ。
最近、香ばしい香具師が続くな。 一人消えても次の一人が来るからめんどくさい。
同じヤツだよ。
ずっとsageいれてない
>>646-647 便乗質問失礼します。外部アプリを実行した場合、呼び出し元で外部アプリの実行エラーを取得する方法って
どういったものが考えられますでしょうか?
>678 ヘルプ嫁 スレ違いだろ。
680 :
デフォルトの名無しさん :04/06/03 11:49
ヘルプ読めとかいう基地外はレスするなウザイ
ここで聞く前に自分で調べてからにしれ、ボケ
>>680
そう、最近事前にろくに調べもしないでCやC++に関しての一般的な質問をするバカが増殖してるな 例の香ばしい同一人物なのかもしれんが。サイナラと言ったのだからもう来るなよ。
ぐぐっても見つからん。 About Delphi でもダメだった。 たぶん、このスレでもダメな悪寒がしてるんだが、 知ってる 神 いたら教えておくれ。 先週まで普通にビルドできていたプロジェクトが、 ビルドしようとすると、 >[リンカ エラー] Fatal: Access violation. Link terminated. と1行だけエラーが出ます。 再構築でも同じです。 他にエラーメッセージはでません。 念のため再起動しても結果は同じです。 他のプロジェクトは正常にビルドできます。 コードの修正を多少したくらいで、ビルドできなくなるような 大きな変更をした覚えはありません。 明日、締め切りなんだよ〜;;
>>684 うちも経験あるが、原因は不明。これはどうもIDEのバグっぽいなぁ。
そのときは結局プロジェクトを新規で作りなおした。
ユニット類はそのまま使用したがビルドできるようになった。
>>684 助けてあげたいが、それだけの情報ではなぁ
みなさん、レスありがとうございました。 685さんのレスは読んで試してみましたが、 残念ながらダメでした。 ビルドできなかったプロジェクトをほかのコンピュータに コピーしてビルドしてみたら無事ビルドできたので、 「こりゃ環境の問題だ」と思い、 BCBを再インスコしたらビルドできるようになりました。 687さんとお688さんのレスを読んだのは、再インスコ後 だったので、残念ながら試せませんでしたが、 勉強になりました。 ・・・結局、問題解決に6時間も使ってしまいました。 今夜は徹夜な悪寒・・・orz
BCB3で使える複数選択可能なTreeViewはないでしょうか? VirtualTreeViewというものは見つかったのですが BCB4以降でしか対応していないのでダメでした。
C++ Builder 5 Pro+WindowsXPにおいて、 Button1のCaptionを実行時に変更しているんですが もともとCaptionにHOGEと表示されてる場面で HOGEhogeのように後ろに文字列を追加したいので Button1->Caption+="hoge"; とやると、CaptionがHOGEのまま変わってくれません。 Button1->Caption=Button1->Caption+"hoge"; ならば意図したとおりにCaptionが変わります。 同様に、RichEditにて文字の色を変えながら数文字ずつ追加するために RichEdit->Lines->Strings[i]+="hoge"; とやっても表示には反映されません。 何が問題なんでしょう?
>>691 VCLのプロパティは実際には関数の呼び出し。
Button1->Caption+="hoge";
これだとTButton::GetText()の戻り値であるAnsiString型一時オブジェクトに"hoge"を
追加していることになる。Button1のCaptionには反映されない。
以下同様。
>>692 すばやいお答えアリガトン
そうすると、CaptionはButton1->Caption=Button1->Caption+"hoge"; でやればいいとして
RichEditの追加は
RichEdit->Lines->Strings[i].Insert()あたりを使うしかなさそうですね。
ちょっと書いてみますです。
>>693 TStrings::Stringsも関数の呼び出し。戻り値はAnsiString型。
参照を返すわけじゃないから戻り値に追加しても
TRichEdit::Linesには反映されない。
>>694 そのようで。 突っ込みどもです。
少々ややこしい形ですがなんとか実現しますた。
せっかくなんでここに書いておきますね。
//SelStartを書き込みする位置に移動(i行目の行末に追記)
int NowLine=RichEdit1->Perform(EM_LINEFROMCHAR,RichEdit1->SelStart,0);
RichEdit1->Perform(EM_LINESCROLL,0,i-NowLine);
RichEdit1->SelStart=RichEdit1->Perform(EM_LINEINDEX,i,0)+RichEdit1->Lines->Strings[i].Length();
//データ挿入
RichEdit1->SetSelTextBuf("hoge");
Paradox形式のテーブルを使用したアプリを作成中です。 テーブルの初期データ入力はExcelを使用したいのですが、 ExcelのワークシートをParadox形式に変換する方法を ご教示頂きたく宜しくお願いします。
698 :
デフォルトの名無しさん :04/06/05 17:41
複数のビットマップからAVIファイルの作り方を教えてください。
702 :
デフォルトの名無しさん :04/06/06 14:52
ttp://www.yukibow.com/bcb/ 月会費 500円 です。現在のTips量から換算すると、1Tips1円以下の料金になります。
現在は、年間単位でのご契約(年間6000円)のみとなり、お支払いは銀行振込のみとなります。
(※ 振り込み手数料はユーザー様にてご負担下さい。)
今後は月単位でのご契約やクレジットカードによるお支払い、銀行自動引き落とし等も
考えておりますが、今のところ年間契約+銀行振込みのみとなります。
又、会費は今後Tipsの増加と共に値上がりする事も考えられます。
しかし、契約会員様に対しては値上げする事は考えておりません。
ご契約をした時の金額のまま契約を継続して頂けるような形で考えております。
(なので早めに会員になった方が長い目で見た場合、お得だとは思います。)
何か変じゃない?
ん? 会員になる人はいないだろうし、いいんじゃない?
numInput(EDIT)で、 UpButtonをクリックしたらnumInputの数字を1つ増やすといった コードを組みたいと思っています。 下のでは実行できず(数字が増えない) その下のだと予想どうり動かす事ができます。 ・・・ただ、何故上のだと駄目なのかよく分からないのですが、 どなたか、説明して頂けないでしょうか? やってる内容は同じだと思うのですが・・・>< /*こっちはNG*/ void __fastcall TMainForm::UpButtonClick(TObject *Sender) { int num; num=numInput->Text.ToInt(); num++; numInput->Text.printf("%d",num); return; } /*こっちはOK*/ void __fastcall TMainForm::UpButtonClick(TObject *Sender) { int num; AnsiString tmpStr; num=numInput->Text.ToInt(); num++; tmpStr.printf("%d",num); numInput->Text=tmpStr; return; }
FAQだなぁ。
>>691 から始まるレスを読みなさい。
>705 お返事ありがとうございます。 ちょっとややこしいみたいですね。 とりあえず自分の中では納得しました。
707 :
デフォルトの名無しさん :04/06/06 16:03
BCBV4で自動応答機能を入れたHTMLブラウザーのプログラムをつくっています。 HTMLタグやクッキーの処理はできたけどJAVASCRIPTの解析ができません。 JAVASCRIPT処理のコンポーネントなどはないでしょうか?
>>697 レスありがとうです。
でも、BCB側に新たな処理を追加するのではなくて、
ExcelワークシートをPradox形式で保存する方法、
もしくはParadox形式に変換するツールがないかと思って質問したのですが。
言葉足らずですみません。
>>708 だったら変換用のツール作っちゃえば?
そんなに難しくないでしょ
>>708 それなら、激しくスレ違い。
ACCESS 使えば済むと思うが(未確認)。
Windowsアプリケーションの開発をすることになったのですが、 VisualC++とC++Builderはどちらがいいですか? 今までC++はUnixでしかしたことがありません。よろしこ。
>>711 このスレに質問する時点で、本人の意志は決まってるんじゃないかと思うんだが。
また>711みたいなバカが増殖してるのか。 うんこしたいけど和式と洋式どっちがいいでしょうか・・・っていうレベルの質問だな。
俺は洋式がいいな。
>>712 確かにBuilderに傾いてます。
できるだけ短期に開発しやすい方を選択したいんですが。
>>713 自分は洋式派です。
>>716 HTTP、POP3、SMTPをしゃべるGUIのクライアントと
機械の測定結果をグラフにして解析するソフトです。よろしこ。
決め手はグラフ。
>>719-720 グラフの処理はVCよりはやりやすいんですね。サンクスコ。
早速明日注文します。
BCB6はmain()でasm文使うとローカル変数へのアクセスがおかしくなるバグがある。 ebpでアクセスすべき所をespでアクセスしたり、初期化されていないebpを使ったり で最悪ハングアップする。関数作ってmain()から呼び出せば何ともないが。 でもそもそもコンソールアプリケーションでasm文使う香具師も少ないが。
だめだ。main()以外の関数にしてもバグ発露。何とかしてくれ #include <stdio.h> #include <windows.h> unsigned sub() { union { __int64 t; struct { unsigned l32, u32; }; } a, b; __asm { CPUID RDTSC MOV dword ptr [a.u32], EDX MOV dword ptr [a.l32], EAX } Sleep(1000); __asm { RDTSC MOV dword ptr [b.u32], EDX MOV dword ptr [b.l32], EAX } return static_cast<unsigned>(b.t - a.t); } int main(void) { printf("%uMHz\n", sub() / 1000000); }
データベースデスクトップでエリアスを作成してデータをセットします。 TableとQueryのDatabaseNameに作成したエリアス名をセットしたアプリを作ります。 このアプリをInstallShieldExpressで配布したいのですが設定の仕方が判りません。 オブジェクト/マージモジュールの画面でBDEを適当にチェックするのですが、 インストール先でアプリを起動すると-認識できないデータベースです、エリアス****-と怒られます。 優しい兄貴、お助けを!
728 :
デフォルトの名無しさん :04/06/07 12:32
C++BuilderX personalなんですが、 マルチプロセスのデバッグはできないんでしょうか? ボーランドのサイト行ってもできるという記述がみあたりません。 どなたかわかる方いらっしゃったらやり方と共に教えてください。
今日C++Builder6のTrialをダウンロードして使ってみたんだけど、 何これ、スゲー簡単。VBみたいな感じでプログラム作れるじゃん。 なんで早く教えてくれなかったのさ。VC++とは比べ物にならん簡単さだわ。
だってRADツールだもん
>>730 もまえさんが聞きになかったからだ。
それはともかくBuilderの世界へようこそ。
>732 日本語で書いてくれると有り難いのだが・・・ どちらのお国の方ですか?日本語は難しですか?梅干しは食べられますか?納豆は大丈夫ですか?
735 :
デフォルトの名無しさん :04/06/07 19:24
日本語難しアルか?
標準語以外は日本語にあらず。
さっきAmazonでC++ Builder6 Personalが残り1本だったから衝動買いしてしまった。
最適化入れてやってみたけど、うちでも再現しないなぁ。
>>740 >>739 を見ていただくとおわかりだと思いますが、設定もしていないebpを
使ってアクセスしてるんです。そして最後はespをベースにロード。結果は
当然でたらめになります。ebpの値いかんではアクセスバイオレーションが
出ますね。
もう一度再インストールしてみようかなあ。
Personalは・・・(´・ω・`)
Personalは駄目なんですか? 学生なんで研究用にしか使わないんですが。。。
>>743 データベース機能がないよ。Borlandはアカデミック価格というのはないんだっけ・・・・
>>744 DB接続ならODBCのAPIを直接叩くコードを作ってて、
それを流用するのでいいですよ。
アカデミック版はあるよ。
いまなら通常版でも安く出回ってるような気がするけど。
>>743 学生ならむしろデータベース機能が有ったほうがいいんじゃないかな。
それ以外にもPersonalは制限が多いし。
ちなみに
>>725 はうちも再現せず。
ただし、某のアカデミックライセンスは制限があるので某のサイトにある使用許諾契約を買う前に読んでおく事
>>739 引数のない関数だからスタックフレームが消えてるYO
プロジェクトオプションで強制的に作る設定にしよう
#pragma option push -k #pragma option pop でその関数だけ囲ってもいいNE!
>>749 >>750 ありがとうございました。仰せの通りでした。BCBのasm文はスタックフレームが
存在する事を前提にコードを吐くようですが、デフォルトで-k(標準スタックフレームを
使用する)のはずですがなぜかオプションで強制的に指定しないとダメなようです。
>>738 >>740 お騒がせしました。無事動きました。
あ、
>>746 さんもお騒がせしました。感謝感謝です。ううっ
753 :
デフォルトの名無しさん :04/06/09 12:14
TThreadのExecuteをTerminate( );で抜けた時に、再度Executeを走らせたい場合はどうすればいいのでしょうか?
>>753 もう一度 new TTreadからやり直す。
Personalはネットワーク関係のコンポーネントも無かったっけ? TChartはあったかなぁ、無かったかな。
>>700 で紹介されてたMAX Componentsのインストールに成功した方います?
インストールしようとしてもなぜかMAXEdit.cppで
[C++ エラー] MaxEdit.cpp(267): E2268 未定義の関数 'max' を呼び出した
[C++ エラー] MaxEdit.cpp(267): E2268 未定義の関数 'min' を呼び出した
といったエラーが出てインストールできないので、よかったら
インストール方法を教えていただけないかなと。
ちなみにこれ以外のコンパイルエラーは何とかなりました
ちゃんとstdlib.hもインクルードされてるのでmaxもminも宣言されているはずなんですが、
もしかしてBCB Ver5用に作られたコンポーネントはBCB Ver6では使用できないのでしょうか?
あ、自分が使用しているのはBCB Ver6 ProでダウンロードしたMAX CompはBCB Ver5用のものです
XPのビジュアルスタイル適応時のTToolBarのおかしくなるヤツ、
http://www.namakoworld.com/lowtech/d6tips/dtips4.htm BCB6でもおかしくなってしまうわけだけど、
実際の所「WM_USER + $500」 はなんのメッセージだかわかる方いますか?
もしくは、ここらへんの事情しってませんか?
>>757 BCB6で使ってます。といっても相当改造しているので原形とどめていないのですが。
max,minはSTLのをつかってみてはと。
#include <algorithm>
using namespace std;
をソースの先頭の方に書いてみて。
無事MAX Compインストールできました 教えていただいてありがとうございます STL使わなきゃいけなかったのか WM_USER + $500 MSDNライブラリとか見てみたけど、結局何なのかわからなかった・・・ 何もお返しできなくてゴメン・・・
760 :
デフォルトの名無しさん :04/06/10 11:44
自分で作ったフォームを持たないクラスにMESSAGE_MAPでメッセージを受け取るには どう記述したらいいのでしょうか?
>WM_USER + $500 WM_USERとはメッセージのユーザ用領域=意味無し でしょ。
762 :
デフォルトの名無しさん :04/06/10 15:30
>>753 ひとつのスレッドで何度も処理を行いたいのなら
SetEvent() と WaitForMultipleObject系API を利用しては
どうかな?
Execute() 内(大意)
while( Terminated ){
DWORD result = WaitForMultipleObjectsEx( イベント配列 );
switch( result ){
case イベント1に対応する処理; ...
case イベント2に対応する処理; ...
case イベント3に対応する処理; ...
case 終了イベントに対応する処理; ... Terminate();
}
}
処理が終わるたびに WaitForMultipleObjectsEx() で次の処理の
待機状態になるので、終了指令もイベントのひとつで
処理してやることになるけど
こういうことじゃなくて?
763 :
デフォルトの名無しさん :04/06/10 21:12
TListViewでスペースキーでのアイテム選択を無効にしたいのですが、 どうすればよいでしょうか?
スペースキーでなんか起きたっけか
>>764 アイテムがいくつかある状態かつアクティブな状態で一つアイテムが選択されていないときに、
スペースキーを押すと、カーソル(マウスのじゃなくて)のあるアイテムが選択される。
これを何とかなくしたいのですが...。
ああほんとだ。 まあなんとでもなるだろうけどお手軽なとこでOnKeyPressを使ってみる。 void __fastcall TForm1::ListView1KeyPress(TObject* sender, char& key) { if (ListView1->Selected == NULL && key == ' ') key = 0; }
>>766 ありがとうございました。できました。
KeyDownの方で何とかしようとは試みていたのですが、どうもダメであきらめていました。
768 :
デフォルトの名無しさん :04/06/11 01:04
Delphian Worldでコンポーネントをダウンロードしてきました。 ・コンポーネントのインストールで「既存のパッケージへ追加」と「新規パッケージへ追加」は どちらを選べばいいの? ・インストール後はダウンロードしたアーカイブは削除してもOK?
>>768 どちらの質問に対しても、「好きにしろ」
ただし、
1つめの質問→カスタムコンポーネント用のパッケージを用意するのが多分普通。
2つ目の質問→再インストールが必要になったらもう一度ダウンすることになる。
770 :
デフォルトの名無しさん :04/06/11 20:43
DBGridに表示されてる内容を他のアプリで利用可能な形式(.txt,.xls等)で ファイルに保存する方法を教えて下さい。
>>770 悩む間にSavaToStream/SaveToFileメソッドを持つDBGrid継承クラス書いたほうが早いと思われ。
実質SaveToStream実装するだけだし。
772 :
デフォルトの名無しさん :04/06/11 22:52
>>771 ばかかおめー、それが分かんねーから聞いてんじゃんよ
>772 低脳さんですか?
ワロタ
>>772 は自分ではないです。
>>771 >>実質SaveToStream実装するだけだし。
すいません。分かりません。よろしければ詳しくご教示下さい。
>>775 SaveToStreamメソッドでGrid内のデータをTStreamに書き出すだけ。ループ使って全要素さらえば簡単だろ。
SaveToFileの実装は他のSaveToFileとSaveToStream実装してるVCLクラスのソース嫁。
777 :
デフォルトの名無しさん :04/06/12 00:54
お前ら本当アフォだろ? VCLクラスのソースを読める奴がそんな質問するわけねーじゃん ちょっとは考えろよ
うーん、さすがに
>>776 の回答は無茶だろ。
質問者がソースを読めるのか?という以前の問題。
・・・書いてる本人、意味が分かって書いてるのか?
>>770 氏
とりあえず、
1.書き出すのは選択された項目かTDBGridに表示されている全てか
2.書き出すフォーマット
以上を明確にして。
際安いくらで買えんの? てか何買えばいいんだ?
>>778 >>1.書き出すのは選択された項目かTDBGridに表示されている全てか
全てです。
>>2.書き出すフォーマット
スペース区切り又はカンマ区切り形式です。
Gridの内容をテキストに落とすくらい自分で考えてできないということはプロじゃないよな?
ってか、ど素人だろ。ファイル入出力程度の知識も無い・・・
可哀想にな
>>770 素人だって書くと「素人は免罪符じゃねー」と言って怒られ
書かなければ書かないで嘲られ…
ここじゃどうにもならんよ。ゆきぼう氏の板で聞いてみれば?
回答は散々既に出ている訳でこれで理解できないということは Cの基本的知識が欠落しているということ。 TDBGridの問題とは全然関係ないレベル。
>785はDelphiのサンプルだったわ…スマソ。
単にループしてファイルに出力すればええんでないのかい。 それじゃあだめなんかい。へーそうかい。瀬戸内海。
初心者が意味不明瞭な質問をすると荒れるなぁ。
回答者のレベルが低いんでしょうね。 (だから受け付けられる質問の幅が極めて狭い)
>>770 単純にループを回すとこんな感じ。
//ヘッダファイルの追加
#include<memory>
//書出し処理
//CSV形式にするためTtringListを2つ使う
std::auto_ptr<TStringList> file(new TStringList);
std::auto_ptr<TStringList> line(new TStringList);
//書き出すTDataSetを指定する
TDataSet* pDS = DBGrid1->DataSource->DataSet;
pDS->First();
while ( !pDS->Eof )
{
line->Clear();
for ( int i=0; i<pDS->FieldCount; ++i )
line->Add( pDS->Fields->Fields[i]->AsString );
file->Add( line->CommaText );
pDS->Next();
}
file->SaveToFile( "export.csv" );
ただし、これ,ですめば簡単だが、すまないことも多々ある。
それはそのとき按配して。
>>787 すまないんだよ。
汎用のSaveToStream/SaveToFileを実装しようと思ったらかなり面倒。
>>788 初心者の質問であるが、意味不明ではない。
むしろ今回の質問は回答の方に見当はずれがめだったぞ。
>>791 >初心者の質問であるが、意味不明ではない。
そうかなぁ?質問をたった2行ですまそうってのはあんまりだと思うけど。
DBGrid の中全体を書き出したいのか、選択されてる行限定なのかとか、
Excel でもいいっていうけど、Excel がある環境限定でいいのかとか、
>>770 を読むと、いろいろ問いただしたくなる。
答えてやりたい気持ちはあるんだが、
しかし問いただすの面倒なので放置ってのが
オレは多いんだが。
短い質問に答えると、
>>708 みたいな目にも合うし・・・・ orz
>>792 >>770 の質問者はExcelとは言ってないけど?混乱してない?
「不明確」と「意味不明」じゃ違うでしょ。
>>770 は、おれにとっては.、不明確な点はあるが意味不明ではない
レベルの質問だけど、まぁ、この辺の受け取り方は人それぞれだわな。
それより、この質問は”BCB Tips”にあってもいい内容だけど(w
794 :
デフォルトの名無しさん :04/06/12 17:17
そもそも、Builder6ってバグだらけで...Builder5のまま入れ替えてないよ。
795 :
デフォルトの名無しさん :04/06/12 17:19
そもそも 6でプロジェクトファイル勝手に書き換えると、 二度とプロジェクト開けなくなるのはどうしてなのさ?
796 :
デフォルトの名無しさん :04/06/12 17:21
6ってバグだらけだから、遣うんだったら5がいいよ。
>>790 その方法を試してみようと思います。
自分は初心者なので、ご教示頂いたソースを見ても分からない所が有りますが、
ヘルプを見ながらがんばってみます。
798 :
デフォルトの名無しさん :04/06/12 20:30
Builderにあるファイル読み込んでそのファイルのアドレスの値を書き換えることって可能?
>>797 データベース周りは確かにとっつきにくい。
経験がないとBCBのヘルプだけではしんどいよ。
自分で調べることも大事だが、きちんとした内容の解説書を読むと
不必要な試行錯誤をしなくてすむ。
BCBだと「コンポーネント活用ガイド&実践プログラミング」が定番。
今のところ5巻まで出ている。
まぁ全部買う/読むとしんどいので2、3巻あたりをどうぞ。
ってか、普通にcsvで出力すると何か問題があるんか? 処理も超単純だし。 それにデータベースの話ではないと思うが。 単純杉でTipsにもならんと思うが。
>>793 >Excelとは言ってないけど?
Excel でとは限定してないけど、「xls 等」とはいってるでしょ?
意味不明とはぼくも言ってないよ。
ただ、たった2行の質問では答えにくいと言ってるだけ。
そして、キミの言うとおり回答が「見当はずれ」だとしても、
それは、質問の不明瞭さが招いた結果であって、
人に回答してもらおうとおもうなら、
せめて、明確に、でも簡潔に書くべきなんじゃないかなと
思っただけ。
まぁ、2行の質問だろうが、答えようと思う人はいるし、
それで良しと思う人もいるだろうから、
「お前がでるまくじゃねぇよ」と言われれば、
まぁ、そうなんですが。
>>799 そういう事を知ってる人も教えてくれる人も自分の周りには皆無...
ありがとうです。
>>800 >>ってか、普通にcsvで出力すると何か問題があるんか?
問題無いです。
>>801 csv形式と限定したら、レスが付きにくいのでは?と思ってしまい、
あいまいな質問をしてしまいました。ごめんなさい。
>>802 悪い子と言わんから君みたいな初心者はVBにしとけ。
VBなら、DBGRidをテキストに掻き出す方法なんてMSKKの
サポート情報検索サイトで一発で見つかる。
804 :
デフォルトの名無しさん :04/06/13 01:36
ListViewに項目を追加するとスクロールバーが一番上に戻ってしまうのですが、 それを一番下にするにはどうすればいいですか?
805 :
デフォルトの名無しさん :04/06/13 01:55
試行錯誤と引き替えにC++は強力な処理能力を手に入れるチャンスを与えられる わがままな漏れはC++じゃないと 胃に穴が空いてしまう でも試行錯誤してると納期に間に合わなくなるので胃に穴が空いてしまう
プロなら納期厳守。
>>804 ListView_EnsureVisible
(=TListItem::MakeVisible)
809 :
デフォルトの名無しさん :04/06/13 18:34
BCB6にJEDI JVCLをインストールしたいんですが、 JvCoreC6R.bplのところでエラーしちゃいます。インストールできた人います?
>>790 ありがとうございます。ばっちり動いて望む結果を得ることが出来ました。
>>799 早速3巻を注文しました。
812 :
デフォルトの名無しさん :04/06/14 21:41
>>810 JCLはインストール済みでしたが、今までSorceForgeのJVCLで悪戦苦闘してました。
早速試してみたところ、できました!
コンポーネントの数に驚き!これから色々試してみます。
Editor関連のコンポーネント、使えるかなぁ・・・。
>>812 おめ。
JVCLってDelphi専用だと思っていたから、BCBで使えるなんて知らなかった。
教えてくれてありがd。
で、気になってビルドに挑戦したら、同じく悪戦苦闘。
前にも似たケースがあって、CVSリポジトリからソースを拾ってうまくいったから、
もしかしたらと思ったけど、変わりすぎ。>JVCL
こんなに変わるんだったら、SourceForgeのアーカイブも更新して欲しかったな。
810さんの書き込みでJCL・JVCLの存在をしり早速インストールして、 サンプルがあるものをビルドして試しているます。 たとえば、examples\JvTrayIcon をビルドして実行すると、起動直後に 「EReadErrorクラスの例外を生成しました。」 となり実行できません。 同様の症状のものが結構あります。 デバッガによると、TCustomImageList::ReadD3Stream で止まっているようです。 サンプルをそのまま動かすにはどうすればよいでしょうか?
815 :
デフォルトの名無しさん :04/06/15 10:50
RichEditでCount行までループし for( int i = 0; i < RichEdit->Lines->Count; i ++ ){ } 各行の2バイト目から6文字の色を変えたい場合はどうすればいいのでしょうか?
816 :
デフォルトの名無しさん :04/06/15 11:07
>function StrToDateTime(const S: string; const FormatSettings: TFormatSettings): TDateTime; overload; なんで、上記のDelphi関数はBCBにないんですか? ShortDateFormatみたいなグローバル変数じゃ、困り松。
818 :
デフォルトの名無しさん :04/06/15 11:53
>>817 いや、マジ、マジ。
グローバル変数じゃ、マルチスレッド処理で困っちゃうし。
DelphiのSysUtils.pasにはTFormatSettings型があるけど、BCBのSysUtils.hppには無かったり。
for( int i = 0; i < RichEdit->Lines->Count; i ++ ){ RichEdit->SelStart=RichEdit->Perform(EM_LINEINDEX,i,0)+1; //i行目の先頭の位置を取得(API) +1(二バイト目の指定) RichEdit->SelLength=5; //選択範囲を決定 RichEdit->SelAttributes->Color=clRed; //色指定。他の設定もできる } こんなところか。 見やすくするため先頭が全角スペースなんでTABにでも書き換えてね ただし、コンパイルすらしてないので無保証、色をかえる位置とかは調整してくれ。 Builderの通常のメソッドとかに無くてもWindowsAPIにある機能で やりたいことができる場合が多いので一度Builderについてる 日本語helpでもいいから目を通しておくことをお勧めする
>>816 名前から予想するとTDateTime::FormatStringで事足りそうだけどどう?
で、なんで無いかって言うとそれはD7以降の関数なのでは。
>TDateTime::FormatString ヘルプだと、 >format で指定された形式を使って,TDateTime オブジェクトをフォーマットします。 なので、やりたいことの逆変換みたいでつ。 >で、なんで無いかって言うとそれはD7以降の関数なのでは。 そうですか。 無理やりpasファイルをリンクしてやろうかと思ったが、BCBじゃコンパイル出来ないか。 ごっそり、Del7ライブラリ差し替えるのも怖いし。
う、逆か。
「TDateTime オブジェクトをフォーマット」だから、 フォーマットしたあとに文字列を受け取ってくれるのかも。 今サンプルコード作ってる最中でつ。
やっぱだめです多。 TDateTime::FormatStringしたときに文字列が出来るだけで、 その後、Stringを放り込んでもWindowsのローケールにあった文字列しか受け取ってくれません。
9までお待ちください  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ ニヤニヤ ( ・∀・) ( ) | 某| (__)_)
>>826 分かったから発売しる!
BCBXはイラネ
_adopt_threadすごいな。感動した!
>>814 こっちでもビルドしてみたけど、ちゃんと動いたよ。
サードパーティのコンポーネントを使っていると、時々変なところでこけることがあるから、
$(BCB)\LIBの下にあるプリコンパイルヘッダ(vcl60.csm,vcl60#*)を一度削除して、
再コンパイルしてみたら?
Builder6なんですが簡単なプログラムを書いて実行すると リンカエラー 外部シンボル'_Form1'が未解決 というのが2つでてきます。 どうすればいいでしょうか?
>>831 多分、自分でも良く分からないのに変なことしたでしょ。
仕方が無い、最初(新規作成)からやり直しな。
つか、「ちゃんと入門書を読みなさい」ってのが一番あなたに相応しいアドバイス。
答えられないなら黙ってていいよ。 別にレスつけるのは義務ってわけじゃないからね。
>>833 >>831 の場合は最初から作り直しってのが一番妥当な解決策だと思う。
Form1がリンカエラーになるってのは、かなり変なことしてるはずだし、
それを掲示板のアドバイスで初心者に回復させるのはまず不可能でしょう。
JvEdit関連、使ってみたけど残念な結果に終わりました。 文字化け多すぎ・・・。 Editコンポ関連では、SynEditの方が使える。 あれはあれでワードラップの所で化けるんだけど・・・。
煽りしかできないなら氏んでいいよ。 別に生きるのは義務ってわけじゃないからね。
>>832 アドバイスありがとうございます。
原因がよくわからないのでもう一度参考書などを読んで出直してきます。
今でも初心者だけど、買ったばかりのC++Builderをいじくり回していて、
行き当たりばったりで作ったフォームの上にある部品の名前が気に食わなくて、
よせばいいのに手作業でつけなおそうとしたりしていると、リンカーエラーが
出たなぁ
たぶん、
>>831 さんも、中途半端にいじくり回して、いろんなものの名前の辻褄が
合わなくなっているんだと思う。長時間かけて修復するより、さっさとフォームから
作り直したほうがいいと思うよ。
>>831 初心者のやりそうな失敗ということで、あてずっぽうに言うと
Form1のユニットファイルとプロジェクトファイルを同名にして
片方をもう片方で上書きしてしまうってのがある。
この場合、修復は不可能なので結局最初からやり直し。
フォームを作るということもわかりません。 学校のBuilder3では動いたのですが、 3も6も同じようにすれば動くと勘違いしていたようです。 完全な知識不足のようなので勉強して出直してきます。
841 :
デフォルトの名無しさん :04/06/16 11:11
TIBQuery使ってます。(TQueryと同じインターフェース) Insert時に、TParams*型のParamで、 Param->AsString = "2004/06/16"; とかしてて、ほぼ動作するんですが、 ロケールで日付区切りが'-'とかになってるとExecSQL()で、 日付文字列じゃありませんエラーになります。 ロケールが'MM/DD/YY'になってる場合もあるし。。。 DBのデータ復旧ツールなんで、Paramが日付型なんて情報も分かりません。 なんらか回避する方法は無いでしょうか?
>>841 TParam::DataTypeで型を取得する手は使えないの?
843 :
デフォルトの名無しさん :04/06/16 12:53
>>842 Prepare()した後にも、どのパラメタもdtUnknownのままでつ。
質問でつ。 DLLからimplibやimpdefでlibファイルやdefファイルを作成出来るのは分かりましたが、 C++プロトタイプ宣言を出力する方法はありますか?
Delphiで作成したDLLをインポートしてもリンクエラーですが何で?
1つ質問したいのですが、よろしいでしょうか? 自作中のプログラムに、友人が描いてくれたアイコンを組み込んだのですが、 エクスプローラの右クリック→プロパティで見ると、 何故か、全般タブ内のプログラムアイコンが組み込んだアイコンではなく、 IDI_APPLICATIONを設定した時のアイコンとなってしまいます。 リソースの組み込みはILINK32.exeを使って行っているのですが、 BCBのリンカは素直にリソースを組み込んでくれないと言う話を聞いたので、 メインソース内で、 #pragma resource "Test.res" // リソーススクリプトをリンク と記述してリンクしてみたのですが、ダメでした。 なお、ILINK32.exeを使用せず、以下の手順を踏むと正常に表示されます。 1, bcc32.exeでビルド(Ex: bcc32 -tW Test.cpp) 2, brc32.exeでリソースを組み込む(Ex: brc32 Test.rc Test.exe) 実際のコンパイル処理の手順はメイクファイルに記述しているので、 上記のまま書けばいいじゃんと言われればそれまでですが、 BCBに吐かせたメイクファイルが、ILINK32.exeを使用している為、 なるべくそちらを使用したいので、解決策を知っている方がいたら、ご教授下さい。 ちなみに、下記のPCスペックからも分かる通り、 IDEは処理が重たくてあまり使いたくないので、IDEを使っての解決はご容赦下さい。 開発環境 CPU: MMXPentium 200MHz MEMORY:64MB OS: Windows98(各種パッチ適用済み) BCB: C++ Builder5 Learning Edition スレ違いだったら、申し訳ありません。 よろしくお願い致します。
申し訳ありません。 1つ、書き忘れてしまいました。 BCB5は、UpdatePack1適用済みです。
848 :
デフォルトの名無しさん :04/06/17 02:13
スレッドを30個も起してる馬鹿先輩がいます。 どうにかしてよ。まったく・・・
BDEのメモ型フィールドとTMemoとのやり取りはどうすればいいのでしょうか。 あまりに初歩的すぎるのか、HELP捜してもググっても見付からない…orz
851 :
デフォルトの名無しさん :04/06/17 14:15
>>138 >>142 有料化を認めないなら登録しなければいいだけの話。板ネタと関係ないはなし。
うらやみ・ねたみ・誹謗・中傷そのものだよ。再度”おやくそく”を読み直してみてよ。
頭のおかしな者達と思われないためにもね。
自己解決しますた。 TMemo->Lines->LoadFromStream / SaveToStream TBlobField->LoadFromStream / SaveToStream
>>852 TBlobField::AsStringですむような気がするが。
>>851 お前はいつの話をしてんだYO!!
古い話を蒸し返すのはよせ。
頭のおかしな者達と思われないためにもね。
とか言いながら当該ネタを引き伸ばす奴 ;-)
857 :
デフォルトの名無しさん :04/06/17 16:17
>851==本人ヵ? 無料がいきなり有料、しかも高額なんだから、当然予想される反応だろう。 しかもこの板とは関係が当然ながらある話。 有料になったことへの批判等をしちゃあいけないなんてそれこそ、頭おかしいとしか思えない。 言論統制なんて無理だよ。 ぼったくりはぼったくり。
> 批判等をしちゃあいけないなんてそれこそ、頭おかしいとしか思えない。 頭がおかしいのは、誰かが「批判等をしちゃあいけない」と言った、と 思い込んでいる人でしょうね。
>>851 なんと言おうとぼったくりはぼったくり。
ケチくさいTipsで金取んな。考え方が甘すぎ。
一ヶ月500円っていうウソがむかつきませんか皆さん。実際には年間6000円しか認めないのにです。年間利用料が6000円で、月換算なら500円相当って書くべきです。 料金を低く見せかけたいがためのまやかし、でたらめ、ウソ八百と思われても仕方ないと思います。反発を受けるのは当然ですよ。
863 :
デフォルトの名無しさん :04/06/17 22:16
>>863 おまいは何がしたかったんだよ。もしかして会員か?(w
おぉ、本人降臨
本人がここ読んでいない可能性は極めて低いだろうし、 ぼったくられたことに気づいた極少会員が逆切れしたようにも見えなくもない。 まあ会員なんていても数名だろうね。
現在フォームにモーダルなフォームやダイアログがかぶさっている状態かどうかを 得るにはどうすれば良いでしょうか?
>>869 Screen->ActiveForm->FormState をチェック。
872 :
デフォルトの名無しさん :04/06/18 00:45
C++Builderってぶっちゃけ、終わってね? VC++を超えることはできないよね FAの仕事してるとVC++のライブラリはあるがC++Builderはまずない まあ、implibすればいいが、不具合があった場合ベンダーは必ず 「VC++ようですから・・・」 まったく使えねーよ>C++Builder
ごめんなさい。 ダイアログ(OpenDialogとか)が開いている最中かどうかは Screen->ActiveForm->FormState でとれますか?
>>872 君の文章を読む限り、使えないのはベンダーだと思う。
>>872 「りくナビ」使ってる会社にいるなら一度見せてもらうといいかもよ。
C++Builder は意外に使ってるとこ多いよ。
そりゃあ、数ではCV++にはかなわんわけですが。
>>873 ダイアログはどうだろね。
やったことないのでわかりません。
>>873 ためしにやってみたところ IsWindowEnabled なら両方OKでした。
これでどう?
>>877 うまくいきました!
ありがとうございました!!
879 :
デフォルトの名無しさん :04/06/18 09:53
>>878 うまくいったか。そりゃあ、よかった。
ところで、フォームに他のウインドウがモーダルで被さってないか、
知りたいシチュエーションってのが思いつかないのだが、
どうして知りたいのか良かったら後学のため教えてください。
881 :
デフォルトの名無しさん :04/06/18 11:59
TUpDownのMaxやPositionてshortですがこれって32bitで扱う方法ありますか?
>>881 無理。もともとWindowsのUp-Down Controlがshortで指定することになってるから。
>>881 IE5以降の環境なら32bit用のメッセージが別にあるのでSendMessageしろ
884 :
デフォルトの名無しさん :04/06/18 14:05
886 :
デフォルトの名無しさん :04/06/18 16:50
知らない奴に限って
>>885 みたいなレスするんだよな(´,_ゝ`)
そう思わないとやっていられない状況なのはわかる。
>>880 OpenGLのアプリを開発していまして、
定石だと何も考えずOnPaintハンドラ内で描画処理をおこなうのがセオリーですが、
これだと意図していないタイミングのPAINTメッセージがやって来たときに、よけいな描画処理を行うことになります。
そこで意図していないときは、あらかじめ以前にレンダリングしておいた結果を保存しおいて、そいつをBltするようにしたわけです。
(画面が激しく動くアプリでないので)
この以前の「レンダリングしておいた結果」を保存するときのタイミングをTApplcation::OnDeactivateでおこなっています。
このときにダイアログなどが上にいるとそれが写ってしまいます。
なので、ダイアログが上にいたらその処理を行わないかわりに、
ダイアログが表示されるときに結果を保存する処理を入れたかった。
「描画をオフスクリーンにレンダリングしておいて」という方法もとれなくもないのですが、
ビデオカードによっては制限があるのでこのような処理をすることにしました。
てな感じです。いかがでしょうか?
Personal Edition ってフリーソフトの配布はOKなんですか?
レンダリングした結果を保存というのは、一度画面に表示された結果を その画面のまま取り込んでいるということでしょうかね。 OpenGLってセカンダリスクリーンバッファに直接描画とかできないのかな? できるならOpenGLの出力は内部バッファに直接レンダリングしてもらう OnPaintではただそのバッファを転送するのみ。 こうすれば、描画結果をかならずどこかに保持してるので そういう処理は楽にできますね。 あまり速度が出なくても良い場合の一番手っ取り早い方法は TImageコンポーネントをフォーム上に配置しておいて プログラムが描画するのはそのコンポーネントにだけ。 これなら、重い描画なんかはこちらの任意のタイミングのみですし、 あとの表示とかは全部TImageコンポーネントまかせでOKです。 OpenGL使ったこと無いので的を外してたらスマソ。
ちょっと脱線だけど、正直VCとBCB両方やったことある人はBCBに行ってる割合が高いと思うがどうよ?
BCBからVCに移行しようと思ってるけど 慣れたBCBから離れられず ○| ̄|_ -3 -3 -3
バグだと思うのですが、いつの頃からかフォームのpositionをpoDefaultPosOnlyにしても、 フォームの表示位置が画面の左上(座標0,0)に固定されてしまうのですが、 何か解決方法をご存知の方はいらっしゃいませんか? ちなみに*.obj等の一時系ファイル?を削除しても駄目でした。
896 :
デフォルトの名無しさん :04/06/19 01:19
Builder5でアドベンチャーゲーム作っています。 そこで人物描画時のマスクについて質問があります。 TCanvasに透過処理された人物を描画したい場合、 あらかじめマスク用の画像を用意しておいて (1) 背景を CopyMode = cmSrcCopy で CopyRect (2) マスクを CopyMode = cmSrcAnd で CopyRect (3) キャラを CopyMode = cmSrcPaint で CopyRect とすると思うのですが、マスク画像をプログラム内で簡単・高速に生成する良い方法はないでしょうか? よろしくおながいします。
>>895 コンソールアプリでない限りたいていのAPI関数はそのまま呼び出せる。
ただ、SetSystemPowerStateの場合、msdnの説明のとおり事前にシャットダウンする
権限を与える必要があるのでちと面倒。
んな感じ。
HANDLE handle;
DWORD length;
TOKEN_PRIVILEGES prv_1, prv_2;
OpenProcessToken(
GetCurrentProcess(),
TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES,
&handle
);
LookupPrivilegeValue( 0, SE_SHUTDOWN_NAME, &prv_1.Privileges[0].Luid );
prv_1.PrivilegeCount = 1;
prv_1.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(
handle,
false,
&prv_1,
sizeof(TOKEN_PRIVILEGES),
&prv_2,
&length
);
SetSystemPowerState(true, true);
ただし、オレ、今よっばらってるから失敗しても責任は持たんぞw
あー、ウォッカは効くわー。
>>896 そりゃ斧で外科手術するような手法だし。
ScanLine で 1 pixel ずつ重ね合わせるのがお勧め。
MMX の効果が絶大な処理なので、余裕があれば MMX で書いてみられたい。
パズルみたいで楽しいよ。
あと、1bit のマスクだと、きょーび、とても綺麗とはいいにくい絵になっちゃうので、
マスクを 8bit のアルファチャンネルとして用意してあげたい。
>>898 ぐはっ!ScanLineはぇぇぇ!
// マスク色の取得
TColor c = Pic->Canvas->Pixels[0][0];
// マスクパターン生成
for( int y=0; y<Pic->Height; y++ )
for( int x=0; x<Pic->Width; x++ )
if( Pic->Canvas->Pixels[x][y] == c )
Mask->Canvas->Pixels[x][y] = clWhite;
else
Mask->Canvas->Pixels[x][y] = clBlack;
こんなアホなやり方でマスクを生成して色々やってたんですが、
Byte *p1, *p2, svp;
for( int y=0; y<Pic->Height; y++ ) {
p1 = (Byte *)Pic->ScanLine[y];
p2 = (Byte *)BG->Picture->Bitmap->ScanLine[y];
// マスク色の取得
if( y == 0 ) c = p1[0];
// 合成処理
for( int x = 0; x<WkPic2->Width; x++ ) {
if( p1[x] == c ) p1[x] = p2[x];
}
}
PaintBox->Canvas->Draw( 0, 0, Pic );
これで簡単に合成できそうですね。
もう十時間以上に試行錯誤してました…。サンクスコ!
C言語で作ったパッケージ、組み込むと全部リンクしようとするからファイル サイズすんごくでかくならない? nodefault 効かないし。 いい加減だよ。 私の場合、全部 Pascal に書き直してる。
好きにすりゃええがな。
>>892 俺はVC、BCB併用に落ち着いた派
製品(ゲーム系やライブラリ)の作成にはVCを使用、
社内用ツールやデータのコンバータはBCBでサクっと作成
みたいに使い分けてるよ。
VisualAssistプラグインの中毒患者なんでコード自体は
ほとんどVCで記述してしまうけどね。
>>900 >for( int y=0; y<Pic->Height; y++ )
BCB3の頃、forループの終了判定でHeightプロパティとの
比較を行うと最適化有効時に変なコード吐くことがあったなー
とか思い出してしまったよ。(´・ω・)
>>903 VisualAssistプラグイン ってなに?
>>900 画像を単に90度回転するだけでもScanLine使うのと使わないのでは10倍くらい差がでるな
Java(JBuilder4)からC++(BCB6)へコードを変換するソフトはありますか?
J2C
909 :
デフォルトの名無しさん :04/06/20 22:15
会社に嫌なヤツおるねん。 なんか生理的に合わないヤツ。 でも一緒にプロジェクト組まないとダメなん。 あっちもこっち嫌ってる。 どうしたらいいんだ…。
スレ違いだが、 時間作って二人っきりで旅行に行け。 たいがいそれでOK。
なんとか温泉殺人事件?
>>910 旅行いけるくらいなら嫌わないっての。
もう、話すだけで殴りたくなる。
話してるのさえ聞きたくない。
顔見てるだけでイライラする。
そんなヤツ。
…スレ違いだな。スマン。
アップデートパック #4 を入れると CodeGuard でエラーが発生するようになってしまう不具合の 回避方法はありますでしょうか?。 #5 を待ってたのですが、もう1年以上放置されてますし…。 もし回避方法がない場合は #3 に戻したいのですが、旧パッチは公開されていますでしょうか?。 しかし Borland ではこの件について認識していないのかなぁ???。
あれってアップデートパックのせいだったのか。 俺一度もコードガードを有効にしてアプリを正常終了できたことなくて、なんだこの機能はって思ってた。
>>916 「実行時パッケージを使って構築」
「共有RTLDLLを使う」
両方ともON。
自分はこれで回避している。
>>917 感動したっ
回避できましたよ。ありがとう。
919 :
デフォルトの名無しさん :04/06/23 04:02
Builder6でジョイスティックの入力を認識させるためにDirectinputを利用したところ、 実行時に[リンカ エラー] 外部シンボル '_IID_IDirectInput8A' が未解決、と出てしまいます。 ライブラリ指定は行っているので原因はほかにあると思うのですがプログラム経験が浅く お手上げ状態です。 どなたか解決法ご存知でしょうか?
>>914 とりあえず殴ってみろ。男なら言葉は要らない。拳で解決。
922 :
デフォルトの名無しさん :04/06/23 17:44
TStringsをソートする方法を教えてください
TStringListにキャストしてSort。 どうせ実体はTStringListだろ。 と、決め付けてみる。
924 :
デフォルトの名無しさん :04/06/23 18:12
TComboBox
ComboBoxならSortedをtrueにすればいいやん
926 :
デフォルトの名無しさん :04/06/23 19:21
ComboBoxのItemsを作った関数に渡してそこでソートできないかなっておもt
TStringList* strings = new TStringList(); strings->Assign(ComboBox1->Items); strings->Sort(); ComboBox1->Items->Assign(strings); delete strings; ComboBox1->Itemsを受け取る関数でこれと同じ事をすればいい。 ソート方法を変えたかったらTStringList::CustomSortで。
C++Builderって業務アプリ作るならDBコンポーネント 使えばVBより速くてラクでしょ? 処理速度も問題ないだろうし。もっと使うべきだ。
929 :
デフォルトの名無しさん :04/06/24 09:55
>>927 ありがとうございます!
お返事遅れて申し訳ありません。非常に参考になりました。
>BCBからVCに移行しようと思ってるけど慣れたBCBから離れられず 私も同じです。 だから「MFCによるWindows95プログラミング」を読んで、 BCBでウィザードに頼らないMFCプログラミングを勉強中。
C++Builder5 (learning) ではキャンバスコンポーネントは使えないんでしょうか?
>>931 TCanvasのことなら使えるだろう。
933 :
デフォルトの名無しさん :04/06/28 09:51
タイトルバーの色をプログラムで変更したいのですが どのようにしたらよろしいでしょうか。
>>930 MFCは.NETでサポートされないんじゃないの?
いまさら何でMFC?
”.NET interoperability”シールが貼ってあるBCBの方が良いような。
935 :
デフォルトの名無しさん :04/06/28 19:39
>>931 SetSysColors使ってもグラデーションみたいになって
うまくいかないのです。Win2000 BCB5
>>935 具体的に、どのようなコードを実行したらどのような結果になって、
それをどのようにしたいのか書かないと誰も回答できない。
void __fastcall TForm1::Button3Click(TObject *Sender) { const unsigned long ColorArray[2]= {clYellow, clRed}; int ColorIndexAr[2] = {COLOR_DESKTOP, COLOR_WINDOW}; SetSysColors(2,ColorIndexAr, ColorArray); } Windows.pasあたりに定義が(ry
>MFCは.NETでサポートされないんじゃないの? >いまさら何でMFC? WindowsCEではMFCぐらいしかクラスライブラリがないのでは?!
939 :
デフォルトの名無しさん :04/06/30 02:38
BCB用のライブラリはあるけど、VC用はないってことはなくない? VC用のライブラリもBCBで使えるが、ベンダーは保証しない。 つか、VCのほうが初心者が入って来づらいんでよい BCBのポトペタコードでC++できますなんていう奴がいるから 腹たって仕方ないぞ!!!!
アセンブラのみの世界から見れば C++ なんて堕落の極み。 っていわれているぞ。釣りだと思うが、所詮程度問題。
>>938 WindowsCEさえ、WindowsCE.NETにいこうした、という以前に。
なぜにWindowsCE?
WindowsCEなんて台数出てない上に、
組み込みに必要なマイクロセカンドの動作が出来ないし、
一番困るのはOS本体の発売停止。
愚の骨頂。
組み込みの機能が無いからとT-Kernelを包括するとアナウンス、デモ、するも未発売。
発売したとしてもそのころにMFCは消えてるだろう。
942 :
デフォルトの名無しさん :04/06/30 10:02
フォルダ名に-(ハイフン)が含んでるとコンパイルできない? BCB5プロなんだけど
>>942 BCB6でもデスクトップフォルダだにプロジェクト作ると駄目だったり、結構フォルダに弱い。
それにインストール後に日付のロケール変えても、起動時にエラーったり。
そのへん、Del7では発生しないんだが。
944 :
デフォルトの名無しさん :04/06/30 10:55
>>943 滅茶苦茶悩んだ
同じソースを違うフォルダにコピーしてやったらコンパイル通るし
コンパイルエラーもVcl.Hが無いみたいなエラーだし・・
なんとかして欲しいねこれ系は
質問です C++Builder6のコントロールに中国語を表示したいのですが, うまくいきません。 Googleで検索しても,VisualCばかり出てきて,よくわかりません。 うまい方法ご存じの方,いらっしゃいましたらご教示ください。 よろしくお願いします。
Tntだっけか?Unicode対応のコントロールを使う か CLXを使う(QtのWin用ランタイムが対応してる) か SendMessageWやSetWindowTextWで直接…
>>942 -P じゃね?
ハイフンだけならOK。
[C++ エラー] Ex02_02.cpp(2): E2209 インクルードファイル 'VCL.H' をオープンできない
[C++ エラー] Ex02_02.cpp(4): E2303 型名が必要
・
・
・
・
でしょ?
ビルダーのデバッガが例外例外といってうざいです。 ある特定の例外はスルーするように設定できませんか?
デバッガオプションで無視する例外を指定できるじゃないか。
thx
952 :
デフォルトの名無しさん :04/07/02 18:51
StringGridのDrawCellイベントでカーソルがある行の色を変える方法を教えてください
954 :
デフォルトの名無しさん :04/07/03 20:37
PARADOX形式のDBに、A.bmpと言うビットマップファイルを登録するとします。 テーブル名称をHogeHoge、当該フィールド名をBitmapとし、 テーブルに対するクエリーをquery_HogeHogeとした時、下記の空欄には何を 入れればよいのかご教示下さい。 query_HogeHoge->Close(); query_HogeHoge->SQL->Clear(); query_HogeHoge->SQL->Add("UPDATE HogeHoge SET Bitmap = :Bitmap"); query_HogeHoge->ParamsByName("HogeHoge")->ここが分かりません = ここが分かりません; query_HogeHoge->ExecSQL(); 以上、よろしくお願いします。
質問です。 x=t x:進んだ距離 t:時間 のようにして、ビットマップ画像をPaintBox上で動かしたいんですけど、 やり方がよくわかりません。 よろしくお願いします。
956 :
デフォルトの名無しさん :04/07/05 21:48
VisualC++とかだとデフォルトボタン(エンター押すとOKボタン押したと見なされる、みたいなの)が 簡単に設定出来るんだが、 Builderで同じ事やろうと思ったらどうしたらいいんでしょう? ENTER押すと、OKボタンクリックしたと同じ処理をさせるようにしたいんだが・・
Delphi だと TButton に Default プロパティーがあるけど。 あと、TabOrder も重要。
958 :
デフォルトの名無しさん :04/07/05 22:30
Delphiじゃないと無理なのかな・・ TabOrderって関係あるの? フォーカスいじる必要あるのかな・・
>Delphi だと TButton に Default プロパティーがあるけど。 BCBでもちゃんとありますよ。 DefaultプロパティがEnterでCancelプロパティがEscに反応するのかな
>>957 てかヒント出た時点で自分で確認しろよ。
>>960 957 はオレだけど、回答のつもりなんだけど
964 :
デフォルトの名無しさん :04/07/06 12:13
>>964 age荒らしのお前ほどうざいものはない。
次スレのテンプレの関連サイトに載せるいいのあったらあげてちょ。 行方不明のサイトの移転先がもし判ったらそれも。
967 :
デフォルトの名無しさん :04/07/06 16:50
VC++とか、自動的に良い感じにインデントしてくれますよね? BCBでも、オートインデントってのがありますが、 これは自分で範囲を選択しなければいけませんが、 VC++みたいに、ソフトが判断してっていう「オートインデント」 はBCBでも出来ますか?
BCBのオートインデントも、自動的にインデントしてくれる機能だよ。 VCと違って"良い感じ"にはしてくれないけどね…
BCBのエディタは誰でも最初は「えっ?」って動作する。 だんだん慣れてくるけどね・・・
慣れない
フリーカーソルの話で始まってフリーカーソルの話で終わるのかこのスレ。
内臓エディタは正直ゴミレベル。 キーのカスタマイズさえもできない。
>>972 OpenToo......いや、なんでもないです。ごめんなさい。
今日、探し物してたら偶然見つけたので紹介だけ。
ttp://www.frasersoft.net/program/ >C++ Formatting Expert:
>
>This expert works in the IDE editor and takes
>the current selected text and formats it according
>to a set of rules. These rules are set in a configuration
>file (Indent.pro) and follow the unix standard for 'indent'.
こんなのありました。
>内臓エディタ よくある単純なtypoだが外科手術用の道具を想像しちゃったよ
977 :
デフォルトの名無しさん :04/07/07 11:57
別にC++Builderのエディタは何の問題もないけど? おまいらが普通に初心者なだけだろ(´,_ゝ`)
>>977 お前、あれだろ。釣りが下手だとよく人に言われないか?
>>978 「足りない」人なんだから、そっとしておいておやり。
980 :
デフォルトの名無しさん :04/07/08 00:16
bcbって6で開発終了?
ところで、次スレのテンプレにyukibow.comいる? 宣伝してやるみたいで個人的には歓迎しないんだが 初心者には必要な情報かもしれんし。
(゚听)イラネ
(゚听)イラネ
腐れシェアTipsは去れって方向で。
あと、BCB関連の推薦図書とかない? 「コンポーネント活用ガイド&実践プログラミング」は定番として。
>>986 ないんじゃないか?
C++とDelphiの本を併用すれば事足りるわけだし
>>986 >「コンポーネント活用ガイド&実践プログラミング」
これだけでいいと思う
つーか、これくらいしか手に入らないんじゃないか
>>988 同じく。3巻はデータベース、4,5巻はインターネットのプログラムを作らない人には
ほとんど不要だと思うが。
3〜5巻についてはDelphiで書かれた該当する参考書の方がいいような希ガス。
つぎスレまだ〜?
生め
993 :
デフォルトの名無しさん :04/07/09 00:37
ほあ
出口調査は「民主党」!
出口調査では「民主党」に清き一票を!!
\\ //
∧_∧ ∧_∧
∩´∀` )( ・∀・) アナタの一票が
ヽ .)( つ¶ 9 開票速報を変えます!
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|. ジャス研 新 党 .|
|________| /
.||. ∧_∧ ∧∧ || 出口調査は「民主党」!
.|| ( ´∀` ) ( ゚Д゚) || 出口調査は「民主党」!
||-────────|| どこに投票しても出口調査は「民主党」!
|| _______ .|| 出口調査で「民主党」に清き一票を!!
.||__ __|| \
.|〇〇|≡≡@≡≡.|〇〇|
.{二二二._[ ]_.二二二}
凵 凵
◇◇◇◇◇◇自民でも民主でもなく「マスコミにNO!」◇◇◇◇◇◇
◇◇◇「出口調査は民主党に清き一票を」キャンペーン開催中!◇◇◇
http://www.wafu.ne.jp/~gori/diary3/000306.html >今度の参院選挙で国民からマスコミへの不信を表明してみませんか?
名付けて「出口調査は民主党に清き一票を」キャンペーン
やり方は簡単です、マスコミが投票所出口で行っている投票動向調査を受けた人は、実際の投票内容に関らず「選挙区は民主党公認候補の名前、比例区は民主党(又は民主党候補の名前)」と答えるのです。
実際の投票数とマスコミの出口調査による分析との乖離が国民のマスコミへの不信任投票数となります。
もちろん最初は小さな声かもしれませんが、このキャンペーンが広がってとんでもない出口調査の結果が出れば、マスコミは国民の目を意識せざるを得ず、今後正しい世論を把握する為に公正で公平な報道を心がけなければならない訳です。
皆さん、選挙に行きましょう。そして今のマスコミのあり方に不信を感じている方、自民支持者も民主支持者も公明党支持者も社民党支持者も共産党支持者も無党派層も白紙投票の人も「出口調査は民主党に清き一票を」!
マスコミを国民が審判できるシステムを我々の手に!!
>WindowsCEさえ、WindowsCE.NETにいこうした、という以前に。 > >なぜにWindowsCE? >WindowsCEなんて台数出てない上に、 >組み込みに必要なマイクロセカンドの動作が出来ないし、 >一番困るのはOS本体の発売停止。 もうすぐWindowsCE5が発売されそうです。 > >組み込みの機能が無いからとT-Kernelを包括するとアナウンス、デモ、するも未発売。 >発売したとしてもそのころにMFCは消えてるだろう。 やはりMFC消えるんだろうか? 隠れたMFC勉強の目的は、 ほんとうはいきなりwxWidgets(wxWindow)を使いたかっんだけど、 日本語の入門書が無いもので、似た構造のMFCに手を出してみたんです。 難しい。
>>995 つか、MFCは失敗作だから難しいのさ。
1.0から2.0で別物に。
MAC版VC++ではWin版に接木するという、クラスとして意味の無い構造。
バージョンあがりGUI系統はActiveXの上、コントロールが激しく少ない。
ActiveXは素直に派生出来ないし、内部に処理を隠し持ってたり多国語で文字化けしたり。
ゴミは捨てた方が良いよ。
いったい何のスレかと思ったぞw
998 :
デフォルトの名無しさん :04/07/09 16:13
記念カキコ v(^-^*)
999 :
デフォルトの名無しさん :04/07/09 16:15
9日記念
1000 :
デフォルトの名無しさん :04/07/09 16:28
1000 千 銭 うぴぃ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。