トップページ⇒tech
988コメント362KB

C++Builder相談室 Part8

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-5あたり。


<過去スレ>
C++Builder相談室
http://piza2.2ch.net/tech/kako/969/969458279.html
新C++Builder相談室(C++Builder相談室 Part2)
http://pc.2ch.net/tech/kako/997/997074601.html
C Builder相談室 Part3
http://pc3.2ch.net/tech/kako/1016/10160/1016065855.html
C++Builder相談室 Part4
http://pc2.2ch.net/tech/kako/1035/10355/1035596146.html
C++Builder相談室 Part5
http://pc2.2ch.net/tech/kako/1045/10455/1045542179.html
C++Builder相談室 Part6
http://pc2.2ch.net/tech/kako/1054/10542/1054280736.html
C++Builder相談室 Part7(前スレ)
http://pc2.2ch.net/test/read.cgi/tech/1061594556/
0685デフォルトの名無しさんNGNG
>>684
気にせずPro版なりEnt版なり買え。切羽詰まったらマグロ相手の仕事を紹介してやる。
釣りが目的じゃないから、移動中にプログラム組めるだろ。

ということで。
0686デフォルトの名無しさんNGNG
64ビットのInt型整数を扱いたいのですが
C++Builderではどのようにすればよいのでしょうか?
0687デフォルトの名無しさんNGNG
__int64
0688 NGNG
コンポーネントを自作すると、設計時のキャプション変更のときCM_TEXTCHANGEDメッセージが一文字変更するごとに飛んできません。
Delphiで作るとちゃんとキャプションを一文字入力するごとに飛んでくるのに。これは自分だけですか?

private:
void __fastcall CMTextChange(TMessage & Message);
protected:
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(CM_TEXTCHANGED, TMessage, CMTextChange)
END_MESSAGE_MAP(TGraphicControl)

void __fastcall TSimpleButton::CMTextChange(TMessage & Message)
{
TGraphicControl::Dispatch(&Message);
Invalidate();
}
0689デフォルトの名無しさんNGNG
INT64
LONG64
LONGLONG
0690デフォルトの名無しさんNGNG
>>650

DataSet->FieldByName("平均")->DisplayFormat = 〜〜
0691デフォルトの名無しさんNGNG
どなたか、TButtonのボタンがフォーカス持った時に表示される
点線の四角形を表示させない方法を教えていただけませんか・・?
0692デフォルトの名無しさんNGNG
>>691
TBitBtnに代える。
0693691NGNG
>>692
変えてみましたが点線の四角は表示されてしまいますが・・
0694デフォルトの名無しさんNGNG
>>693
ごめん。TSpeedBtnに代える。
0695691NGNG
ありがとうございます。
TSpeedButtonはHandleプロパティを持ってないからどうしようか迷ってるんです・・。
BCBのデフォルトで付いてるコンポーネントでHandleも持ってて実現できるのは無いですかねぇ。
0696デフォルトの名無しさんNGNG
>>695
TButtonやTSpeedBtnのOnClickでFormのActiveControlをNULLにすると
フォーカスが外れる・・・と思ったけど押されている間はフォーカス表示が
出てしまう。う〜ん。
0697デフォルトの名無しさんNGNG
>695
私は押したままの状態になるボタンをTPanelで作った。
BevelInner/BevelOuterを両方bvLoweredにするとへこみ、bvRaisedにすると盛り上がる。
標準のボタンが気に入らないときは、たいていこれを使う。
0698691NGNG
>>697
おお、OnMouseDown/UpでBevelプロパティを変えたらいい感じになりますね〜
どうもありがとうございます。
696さんもありがとうございました。
0699デフォルトの名無しさんNGNG
TreeViewについて質問です。
Node単位で文字コード順にソートを行いたいのですがどの様な方法が良い
でしょうか?
これまで調べた内容では、AlphaSortは文字コード順ではない事がわかりました。
CustomSortProcというメソッドを使ってみたのですが、使い方がよくわかりません。
strcmpで比較できるようにソートする事が最終目的です。
0700699 NGNG
解決しました
0701デフォルトの名無しさんNGNG
>>700
どう解決したか書いてくれるとうれしいな。
0702デフォルトの名無しさんNGNG
DataSetで現在アクティブなフィールドを知るに
はどうすればいいですか?
0703デフォルトの名無しさんNGNG
誰もQueryPerformanceCounterを使ってないのかな?<ML
0704デフォルトの名無しさんNGNG
C++Builder6を使用しているのですが、画像を埋め込んだHTMLドキュメントを返す
CGIから画像を取得して取得したファイルをローカルフォルダに保存する方法が分
からなくて困っています。そもそもHTTPでネット上のリソースをダウンロードする事
って可能なんでしょうか?
0705デフォルトの名無しさんNGNG
>>704
WWWの基礎から勉強し直せ
0706デフォルトの名無しさんNGNG
>>704
一応参考
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/1512/
0707デフォルトの名無しさんNGNG
>>679
俺はサクラエディタを使うようにしてる。
補完機能自体はキーワード登録 (設定ファイル編集)が要るし、正直原始的なものではあるが
Builderのエディタなんぞより1億倍使いやすい。
0708デフォルトの名無しさんNGNG
固定長のファイルのレコードをTMemoryStreamで簡単に削除する方法教えてください
0709デフォルトの名無しさんNGNG
ラベルなどのコントロールの複製をコード上で作る様にしたいのですが、
どうやったらよいでしょうか?
ボタンを押すごとにラベルが増えていく・・・
みたいにしたいのですが、Loadなんたらで検索しても
みつからないので困ってます。

CBはVCよりよほど使いやすくていいですね。
0710デフォルトの名無しさんNGNG
>>708
不要なレコードをそれ以降のレコードで詰めるしかない
あるいは必要なレコードのみを新しいファイルにコピーするか

>>709
new そして TControl::Parent
0711デフォルトの名無しさんNGNG
>>709
>>2のビギナー向けtipsのページの「コンポーネントを動的に作成する」を見るといい
0712デフォルトの名無しさんNGNG
>>711
おー。なるほど。
わかりました。ありがとうございます。
0713デフォルトの名無しさんNGNG
猫のページのWinAPIプログラムのソース打ち込んでコンパイルしたら
Error: 外部シンボル’main'が未解決
って出てコンパイル出来ないんですが、どなたか何故か教えてくれま
せんか・・・
0714デフォルトの名無しさんNGNG
コンパイルというよりリンク出来てないのか・・・
0715デフォルトの名無しさんNGNG
>>713
-W
0716デフォルトの名無しさんNGNG
>>715
有難うございました!
初歩的な質問で申し訳ありませんでした・・・
0717デフォルトの名無しさんNGNG
>>716
それ以前にスレ違い

bcc32単独の話は↓
タダで使えるBorland C++ Part3
http://pc2.2ch.net/test/read.cgi/tech/1054390397/
0718名無しNGNG
データベースデスクトップで扱っているDBで、
MySQLとPostgreSQLユーザーに最適なRDBMSを教えてください。
0719704NGNG
>>706
遅レスすみません。
こういうページを紹介して貰えると非常に助かります。
ありがとう御座いました。
0720デフォルトの名無しさんNGNG
Builder6にて、フォームを追加したのですが
Unit2.cppを変更して実行(F5)してもコンパイルのみで
リンクされてないのか、実行したアプリは変更が反映されません。
再構築(F7)すると変更が反映されるのですが構築時間がかかってしまう・・・
効率の良い方法は無いですか?
0721デフォルトの名無しさんNGNG
乱数が毎回同じになるのでRandmizuを呼び出したいのですが、
ソース、ヘッダーのどの部分に、どよのように記述するかわかりませ。
ご教授おねがいします。
0722721NGNG
誤字だらけでした。
Randmize,どのようにの間違いでした。
回線で首吊ってきまつ。
0723デフォルトの名無しさんNGNG
Randomize
0724デフォルトの名無しさんNGNG
どっかに起動時に一回通るところに
randmize();
って書くだけ。
0725721NGNG
>>724
サンクス。
しょぼい質問、誤字だらけでスレ汚しすまそ。
0726デフォルトの名無しさんNGNG
質問です。
Templete(汎用)クラスを作ったんですが、ソースファイルとヘッダーファイルに分離すると、リンカエラーが出てしまいます。
これはC++の仕様なんでしょうか?

ちなみにヘッダー部だけで実装すると、リンカエラー無し(正常)です。
0727デフォルトの名無しさんNGNG
仕様を満たしていない、が正解。
0728デフォルトの名無しさんNGNG
>>726
そらスレ違いだろ

>>727
今んとこメジャーなコンパイラで"export"をサポートしたものは確かないんじゃ?
0729デフォルトの名無しさんNGNG
TStringGridでEXCELみたいにセルの結合ってできますか?
0730デフォルトの名無しさんNGNG
>>729
無理
0731デフォルトの名無しさんNGNG
マウス位置の絶対座標をゲットするVCL教えれ
0732デフォルトの名無しさんNGNG
>>731
GetCursorPos APIではダメか?
0733デフォルトの名無しさんNGNG
>>732
VCLつってんだろっ!

まあTMouseでOKでたからいいや
0734デフォルトの名無しさんNGNG
やれやれ
0735デフォルトの名無しさんNGNG
C++builder6で、監視式を複数登録しておいても、プロジェクトを
一度閉じて開き直すと、最初の1個以外は全て消えてしまうのですが、
消えないようにする方法があったら、教えてください。
0736デフォルトの名無しさんNGNG
すいません、TStringListにCSVデータを読み込ませてるんですけど、

AnsiString str = "aaa , bbb , C:\Documents and Settings\hoge\デスクトップ\test.txt";

TStrings *csv = new TStringList();
csv->CommaText = str;

上のようにやった場合、「 and 」っていう半角スペースに挟まれた文字列のところでも
区切られてしまうんですよね。
これを回避するには、一旦TStringsに読み込ませる前に文字列「 and 」を
他のユニークな文字列と置換しておいて、
その後で、再度元の「 and 」に置換し直すって方法しか浮かばないんですが、
他にもっと簡単な方法ってありますでしょうか?
0737736NGNG
あ、違う、「 and 」って文字列だけ区切り対象になるんじゃなくて、
半角スペースに挟まれた場所なら全て区切り対象になるようです!
やれやれ、とほほ。
0738デフォルトの名無しさんNGNG
>>736
QuoteCharでなんとかするとか。
0739デフォルトの名無しさんNGNG
>>737
言うとくけど、それが正常な動作。
CammaTextはシステムデータ形式なのでスペースも区切り文字として扱う。
ヘルプをちゃんと読むべし。
0740デフォルトの名無しさんNGNG
>>736
オレだったら何も考えず
boost::tokenizer
使うな。
0741デフォルトの名無しさんNGNG
ActiveXフォームを作ろうとしてますが、
ユーザ定義のイベントをどうやって実装すればよいのか
わからず困ってます。
(引数あり、なし共に)

解説しているサイトもあるにはあるのですが、
断片的でちょっとわかりにくいので、
詳しく説明しているサイト、もしくは知っている方が
おりましたらお教えください。
0742736NGNG
ありがとうございます。
boost::tokenizerなど色々検索してやろうとは試みましたが、
なんか#include<boost/tokenizer.hpp>
が開けないって言われちゃうし、
開けてもなんか
http://boost.cppll.jp/HEAD/libs/tokenizer/introduc.htm
↑こことか見ると、
hoge[2]で3番目の値を取得、みたいに簡単に出来そうにないし、
どうも難しそうなんでやめときます。

やっぱり、絶対にユニークな文字列を考え出して、置換→CammaText→最置換の攻撃で
ここはしのごうかと…。
0743デフォルトの名無しさんNGNG
>>742
アフォ。>>738-739をちゃんと読め。
というか、大抵のCSVファイルはスペースを含むレコードをクォーテーションしているはずだが?
0744デフォルトの名無しさんNGNG
>>742
絶対ユニークなんぞ存在しない。
boost::tokenizerつかえって。

>hoge[2]で3番目の値を取得、みたいに簡単に出来そうにないし、
君にとってなにが簡単かしらんが
std::advance か boost::nextの距離指定できる方を使え。

まあ、743が正しいこといってるよ。
0745736NGNG
>>743
>>744

QuoteCharってのはイマイチレファレンス見ても使い方がわからなかったんであきらめました。
Webで検索してもVCLのそれは極端にドキュメントが少なかったもんで。

で、なんか言われたとおりに、項目を二重引用符でちゃんと括ってやると普通に読み込まれましたよ!
そうかー、CSVってのはこういうもんだったのか。

>>744さん、せっかく教えてくれたブースと上手く使えなくてすいません。
名前かっこいいし使ってみようかと思いましたが、またの機会にさせて頂きます。
std::advance か boost::next…、メモメモ。
0746デフォルトの名無しさんNGNG
おまえらしらねーなら口だすなぼけ
>>736ー737
AnsiString str = "aaa , bbb , \"C:\Documents and Settings\hoge\デスクトップ\test.txt\"";
スペースが含まれると思われるとこは\"でかこんどけ
0747デフォルトの名無しさんNGNG
>おまえらしらねーなら口だすなぼけ
わかった。このスレでは今後回答しません。
0748デフォルトの名無しさんNGNG
>>746
( ´д)ヒソ(´д`)ヒソ(д` ) トックニカイケツシテイルノニ
0749デフォルトの名無しさんNGNG
リストビューで質問です。

追加するアイテムごとにフォントや背景色を変えるには
どうすればよいでしょう?
0750デフォルトの名無しさんNGNG
フォームがアクティブになっていない時でも、
どのキーが押されたかの情報を取得するにはどうすればいいのですか(´・ω・`)?
0751750NGNG
分かったー
ホットキーなんたらかφ(。。)メモメモ…
0752デフォルトの名無しさんNGNG
http://www.yukibow.com/bcb/index.html

>BCB Tips の全ページが、あるサイトのコンテンツのひとつと間違えられる形で無断リンクされておりました。
>当サイトのInformationにある通り、このような形でのリンクは禁じておりますし、管理者の意図する形態ではないため、
>残念ですが一時的に閉鎖と言う形を取らせて頂きます。


ヘタレなおれは愛用してたのにどこの馬鹿だ。
0753デフォルトの名無しさんNGNG
尻の穴が小さい奴だな
0754デフォルトの名無しさんNGNG
>>752
>あるサイトのコンテンツのひとつと間違えられる形で無断リンクされておりました。
何のことかよく判らんのだが、どっかのサイトが自分のサイトのコンテンツを装って
リンクしてたってことか?
それなら腹立てるのも無理ないが。
0755デフォルトの名無しさんNGNG
newしたものはちゃんと消すってのが鉄則らしいですが、
素人のくせに動的にページコントロールのタブをぽんぽん作成したりとか、
色んなところでnewし倒して、アプリを閉じる時に結局どれが消し忘れで残ってるのかわかりません。

終了時に、newしたものの内どれを消去し忘れたか確認するにはどうしたらいいんでしょうか?
って、そんなことが出来るかどうかもよくわからないんですが…。

なんかデストラクタというのを使うと便利らしいというのは何となくわかってるんですが、
どこの位置にどういう風に書いたらいいのかよくわかりません。

なにやらアドバイスよろしくお願いします。
0756デフォルトの名無しさんNGNG
>>755
確認したいなら、コードガード使ってみたら。

あとは
std::auto_ptr
か
boost::shared_ptr
使ってみて。
0757デフォルトの名無しさんNGNG
>>755
つか、TComponent属ならOwnerを設定していれば自動で破棄されるがな。
つう訳でちゃんとOwnerを設定しろ。
0758デフォルトの名無しさんNGNG
もう一言
>なんかデストラクタというのを使うと便利らしいというのは何となくわかってるんですが、
デストラクタも知らんようでは話にならん。C++の解説書を1冊きちんと仕上げるべし。
0759デフォルトの名無しさんNGNG
ありがとうございます!

今まで
TTabSheet *TabSheet = new TTabSheet( this );
TCppWebBrowser *CppWebBrowser = new TCppWebBrowser(this);

だったのを

TTabSheet *TabSheet = new TTabSheet( Owner );
TCppWebBrowser *CppWebBrowser = new TCppWebBrowser(Owner);

に変更しました。
オーナーの設定って思ったより簡単ですね。

後は自力でデストラクタとやらの勉強をしたいと思います。
生まれて初めてプログラム書いてアプリ作ったのでわからないことばかりで大変でした。
みなさん、ありがとうございます。

あと、756さん。
またboostつかえなくてゴメンナサイ(´・ω・`)
0760デフォルトの名無しさんNGNG
>>759

メチャクチャなプログラミングをやってるな...。
「自力でデストラクタとやらを」っていうのも、C++を運転にたとえるなら
「あとは自力でブレーキとやらを」って言ってるのと同じだよ。

書籍スレで手も動かさずに「次は何を読めばいいでしょうか」と言ってる
初心者も問題だが、あなたのように基本無視で手を動かしだすのもかなり
問題だな。

ま、自分で楽しんでいる分にはいいんだろうけど。
とにかくここのスレでなんとアドバイスされようと、
boostを使うのにはまだまだ早すぎるのは確かだな。
0761デフォルトの名無しさんNGNG
>>759
おーい!勘違いしてるぞ(w
仮にForm1のイベントハンドラ(またはメンバ関数)の中の処理だとすると、

 TTabSheet *TabSheet1 = new TTabSheet( this ); //TabSheet::OwnerにForm1を指定
 TTabSheet *TabSheet2 = new TTabSheet( Owner ); //TabSheet::OwnerにForm1->Ownerを指定

TabSheet1の指すオブジェクトはForm1が破棄されるときに破棄される
TabSheet2の指すオブジェクトはForm1のOwner(通常はApplication)が破棄されるときに破棄される
基本的にはどっちでも構わないよ。
TComponent属以外のオブジェクトはOwnerなんて便利な機能はないから自力で破棄する手当てを
しなきゃならない。

BCBは見よう見まねでもそれなりにアプリが組めるが、それだと直に行き詰まる。
結局、C++なりオブジェクト指向の知識が大事。
まぁ、がんがって勉強してちょ。
0762デフォルトの名無しさんNGNG
うー、うー、みなさん、叱咤、励ましのお言葉どうもありがとうございます。
わかりやすい説明で勉強になります。

しかし自分ではガンダムに出てくるハロのようなものを工作してるつもりでいましたが、
実はハロどころか単なるたこ焼き以下のものだったとは…。

がんばります(`・ω・´)
0763デフォルトの名無しさんNGNG
ttp://www.gangslab.com/bcb/
こ、これは・・・!
0764デフォルトの名無しさんNGNG
この文書は http://www.yukibow.com/bcb/index.html に上って来ている
BCB 関連チップ整理文書です.
翻訳は翻訳機で回した後 Gangsが整理しました.
一応あまりにも多い関係でウェップ翻訳機にリンクをかけておきました.
日本語になった部分は元々文書でありゆっくり翻訳をする嵐閧ナす.
全然しないかも知れないが...分かって見てください...-_-;; 以下...本文..
0765デフォルトの名無しさんNGNG
というか、newとdeleteはいつもワンセットで書く癖をつけるのが一番良いと思うぞ。
明示的に消してやるほうが気分がいいし。
0766デフォルトの名無しさんNGNG
>>763
うわ、韓国語も対応でパワーアップして復活してきた!
ありがとう!ゆきぼうさん!
0767デフォルトの名無しさんNGNG
>>766
> >>763
> うわ、韓国語も対応でパワーアップして復活してきた!
> ありがとう!ゆきぼうさん!

違うでしょ。
ttp://www.gangslab.com/
ここから勝手にリンク貼られてるんですよ。試しに
ttp://www.gangslab.com/bcb/index.html
の上の「Home」ないし「Top」をクリックしてみ。
前者はttp://www.yukibow.com/home/index.htmlに、
後者はttp://www.yukibow.com/にリンクが貼られている。

ロクなもんじゃねえ韓国人が勝手にパクったと推測しているが。
0768デフォルトの名無しさんNGNG
ttp://www.gangslab.com/bcb/index.html
の中の韓国語コンテンツに見える部分は、navarというサイトにある
日韓自動翻訳cgiで翻訳する形でリンクされているようです。
0769デフォルトの名無しさんNGNG
【IT・電機】日韓技術情報総合スレ 42【機械・ナノテク】
http://ex2.2ch.net/test/read.cgi/korea/1077203043/
で相談しています
0770デフォルトの名無しさんNGNG
・・・・・>>767って素だったのか・・・・・・
0771デフォルトの名無しさんNGNG
↑766ですたスマン
0772デフォルトの名無しさんNGNG
すげー痛い。韓国人相手に解決なんてするか?
0773デフォルトの名無しさんNGNG
>>770
んなわけねーだろ(;´Д`)
0774デフォルトの名無しさんNGNG
>>768
>>769
そのスレじゃ韓国からのアクセスを蹴れって風に言われてるけど、
NAVERの翻訳にリンクされてるのは既にバックアップ取られて、
韓国野郎のサイトにアップされてる日本語版じゃん。

韓国のやつらにとってはttp://www.yukibow.comはすでに何の関係もないんだよ。
まぁ自分でコツコツTips書きためて来た作者はたまらんだろうけど。
0775デフォルトの名無しさんNGNG
韓国のやつらに関係ないってのは著作権の話じゃなくてもちろんアクセスとかIPで蹴ればって話のことね。
0776デフォルトの名無しさんNGNG
じゃー解決は期待薄で、俺らはお預けを食ったままということですか
そうですか
0777デフォルトの名無しさんNGNG
どこの馬鹿の仕業かと思えば韓国人かよ・・・・
愛用してたのに・・・・(´・ω・`)


ところで、騒ぎの中質問スマソですが、BCBで、自作のマウスカーソルを使う方法は
あるのでしょうか?
resファイルいじってLoadCursorやってみたのですが、全然認識してくれません。
どうかよろしくお願いします。

ちなみにバージョンは6.0です。
0778デフォルトの名無しさんNGNG
>>777
TScreen::Cursors
0779777NGNG
すみません、ヘルプにある通り、HInstanceを指定したら動きました。
お手数かけました。

//ぐぐってた漏れって一体・・・(-_-;)
0780デフォルトの名無しさんNGNG
プロジェクトをメイクしようととしたら、bcbidl60.bplのアドレス違反が出て、コンパイルできなくなってしまいました。
どうすれば解消できるでしょうか?
BCBのバージョンは6.0
OSはWinXPです。

どうか、よろしくお願いします。
0781デフォルトの名無しさんNGNG
BCBの次バージョンってもう出ないの?
0782Delフサギコ ◆A6VzDeLphI NGNG
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂,,,,,,,`つ≡≡(´⌒;;;≡≡≡
ズザーーーーーッ    (´⌒(´⌒;;

エンタープライズ:変わり始めたボーランドの製品戦略――「C++製品群は、C++BuilderXに統合される」
http://www.itmedia.co.jp/enterprise/0311/05/epn10.html
0783デフォルトの名無しさんNGNG
>781
BorConでBorlandの人に聞いてみたけど、C++のVCLのサポートは今後も続けていくけど、まだ社内でもめてるって・・・。
上の記事にもあるけど、C++は組み込み系重視したいみたいです。
0784デフォルトの名無しさんNGNG
BCBもDelphiももうおしまいかなあ。
正直、かなり使いやすいGUIの開発環境だったんだけどな。
Winも.NETになっていくし、もうネイティブコードを吐く
ラクチンGUI開発環境はなくなるんかなあ。
■ このスレッドは過去ログ倉庫に格納されています