トップページ⇒tech
1001コメント234KB

C++Builder相談室 Part11

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-6あたり。
0334デフォルトの名無しさんNGNG
ねぇ、BCBってアカデミックパックなんてのあるの?
0335デフォルトの名無しさんNGNG
>332
普通に考えてソースがおかしい
確保してる部分と、実際にInternetSessionを呼び出している部分を晒すのが
解決への近道
0336デフォルトの名無しさんNGNG
>>333
> I stands for unko.
     ↑ この s はなんですか?(w

0337デフォルトの名無しさんNGNG
>>336
中学生ですか?(w
0338あぼーんNGNG
あぼーん
0339デフォルトの名無しさんNGNG
くそ、踏んじゃったじゃんかよ
んなとこに、糞すんじゃねーよ、ぼけ!!!
0340デフォルトの名無しさんNGNG
>>334
有る
ttp://www.borland.co.jp/sales/a_plan_p.html
0341デフォルトの名無しさんNGNG
その道で行こうと思うなら、学生さんは地道にVCやlgcc辺りでやりなよ
就活時に不利になるぞ
0342デフォルトの名無しさんNGNG
BCBはいつ64ビットに対応しますか?
このままではマイクロソフトしか選択肢がありません
0343デフォルトの名無しさんNGNG
別に使っていただかなくても結構ですが、なにか?
0344342NGNG
今まで作ったBCBのソースが膨大にあり、64ビット化したいのです。
0345デフォルトの名無しさんNGNG
Microsoftさんと競り合おうなんて思っていませんから・・・
0346デフォルトの名無しさんNGNG
C++相談室 part35
http://pc5.2ch.net/test/read.cgi/tech/1093958200/

の次スレおながいします
0347デフォルトの名無しさんNGNG
なぜにこのスレに?
んなことしてたらまた重複スレになるだろ。
0348329NGNG
>>335
ああごめんなさい
解決してます そのカキコが>>333です

>>336
ああああまたしてもウンコを漏らしてしまったw
I am fuckin' shit !!!!!!
0349デフォルトの名無しさんNGNG
> 337 名前:デフォルトの名無しさん [] 投稿日:04/09/26 16:04:21
> >>336
> 中学生ですか?(w
0350デフォルトの名無しさんNGNG
>>317
恐ろしいことに、MLで捨て台詞を吐いて荒らしまくるやつもいる。
0351デフォルトの名無しさんNGNG
>>350
それはそれで粋だよね
こことはちょっと違うから・・・
ここなら誰でも強気?w
0352デフォルトの名無しさんNGNG
ToolBarのButtonWidthを変更してもすぐ値が元にもどってしまってボタンのサイズ変更できないんですが
0353デフォルトの名無しさんNGNG
>>291
>>352
0354デフォルトの名無しさんNGNG
教えれつってんだぼけが
0355デフォルトの名無しさんNGNG
C++相談室part36がなかなか立たないね。
0356デフォルトの名無しさんNGNG
しかしちんこたった
0357デフォルトの名無しさんNGNG
TToolBarToolButtonを動的に作成する方法を教えてくれ
0358デフォルトの名無しさんNGNG
>>352
ButtonWidthが効くのはToolButtonだけでそれ以外のボタンには効かないよ。
ToolBarのヘルプ見てみ。
ToolButtonの作り方は分ってると思うけどToolBarを選んで
マウスの右ボタン|ボタンの新規作成
0359デフォルトの名無しさんNGNG
なんかShowCaptionsがtrueだとToolButtonでもButtonWidthを指定できないみたいだけどね。
TB_SETBUTTONSIZEを送れば幅を変更できるから、VCL側の問題だろうか。
0360デフォルトの名無しさんNGNG
RichEditだっけ文字列ぼんぼこつっこめるボックス
あれって好き放題Text更新してもメモリ関連のやりとりはちゃんと
安全にやってくれてますか?
0361デフォルトの名無しさんNGNG
>>359
おくりかたおしえて
0362デフォルトの名無しさんNGNG
>>360
ええ、一定以上はつめこめないから大丈夫ですよ
0363デフォルトの名無しさんNGNG
プロキシの関係上IEしか外に出れない環境でファイルのダウンロードする処理を行う方法を模索しています
TCppWebBrowserを使えばhtmlの表示が出来るのですがバイナリのファイルを直接指定し
保存ダイアログを表示しないでローカルに保存する方法が解らなくて困っています
これってセキュリティ上そもそも無理だんですか?IEのコンポーネントだと
0364デフォルトの名無しさんNGNG
IEと言ってもhttpプロトコルを使ったただのアプリに過ぎないので、
自分でhttpプロトコルを使ったアプリを作ればいいだけ。
0365363NGNG
プロキシがユーザエージェントのチェックまで行っているんで
なるったけ現在のIEを使いたいんです(;ω;)
それにTCppWebBrowserを使うとローカルのIEの設定のまま動作するんで
特殊な設定をされた環境下でもプログラムの中からあんまり
気にしなくていいのも大きいし・・・・・
0366デフォルトの名無しさんNGNG
プリンタの解像度って言うか何ピクセルまで使えるかを取得するのって何だっけ?
0367デフォルトの名無しさんNGNG
>>359
AutoSizeプロパティが効かないのかね?
ShowCaptionsがtrueでサイズの自動調整。
ShowCaptionsがfalseでサイズはButtonWidthの値。

どちらもAutoSizeは動いてくれない?
バグか?

0368デフォルトの名無しさんNGNG
PostMessageとSendMessageってどう違うの?

URLを貼るんじゃなくて、説明して
0369デフォルトの名無しさんNGNG
SendMessage

メッセージを処理し終わったら、制御を返します。

PostMessage

メッセージを処理するのを待たずに制御を返します。
0370デフォルトの名無しさんNGNG
>>369
なめてんのかおまえ
0371デフォルトの名無しさんNGNG
ホント、気違いには事欠きませんね ;-)
0372デフォルトの名無しさんNGNG
わかりやすい説明じゃん
0373デフォルトの名無しさんNGNG
>>362
Thx
0374デフォルトの名無しさんNGNG
SendMessage
今すぐメッセージを処理して結果を返してくれる。

PostMessage
後で暇なときにメッセージを処理するのでメッセージの結果は見れない。
0375デフォルトの名無しさんNGNG
>>374
それならよし!
0376デフォルトの名無しさんNGNG
>365
UserAgentの設定をすればいいだけじゃん。
0377デフォルトの名無しさんNGNG
>>374
あんたアフォでしょ?
SendMessage
メッセージに対応するウィンドウプロシージャがなくてもよい
PostMessage
メッセージに対応するウィンドウプロシージャは必須
が正解です
0378デフォルトの名無しさんNGNG
template <class T> class foo
{
private:
 T value;
public:
 foo(T v):value(v){}
};
//class bar{
//public:
 foo<int> x(0);
//};

このコードなんですが、このままだとちゃんとコンパイルできるんですが、
コメントを削除して、x をクラスのなかで宣言すると、

>[C++ エラー] Unit1.cpp(25): E2293 ) が必要

というエラーがでます。
関数のなかで宣言してもエラーになりませんが、
なぜかクラスのなかで宣言するとエラーになります・・・oTL
クラスのなかで使用するにはどうしたら良いのでしょうか?
0379デフォルトの名無しさんNGNG
インスタンス変数ってその場でコンストラクタ呼べないんでは?
0380378NGNG
>>379
そうか〜、たぶん、それ正解だ。
ググったけど根拠みつけられなかったけど。
エラーメッセージがおかしかったんで気がつかなかったけど。

別の解決策探します。ありがとうでした。
0381デフォルトの名無しさんNGNG
?解決策ってfooのvalueの初期化と同じでそ
class bar {
public:
 foo<int> x;
 bar() : x(0) {}
};
0382デフォルトの名無しさんNGNG
>>380
379の発言は、雰囲気だけは正しいけど、間違ってるから気を付けろ。
「クラスメンバの宣言」「クラスメンバの初期化」「コンストラクタ」あたりのキーワードでググれ。
0383380NGNG
>>381
それでもいいんですけど、foo は自作クラスで、コンストラクタの引数が結構多いので、
コンストラクタで初期化するのやめて、コンストラクタはデフォルトコンストラクタのみ、
初期化は、別関数にしようかな・・・・と。コンストラクタで例外発生しなくなるし。

>>382
間違ってるんですか?
ttp://www.ne.jp/asahi/yamashita/programming/tips/cpp_basic.html
をみても正解な気がするんですが。
0384デフォルトの名無しさんNGNG
>>383
>>379だけなら不正確で意味不明ってことだね。
「クラス定義の中でメンバ変数を宣言すると同時に
初期化することは(限られた例外を除き)不可能」
って言えばいいのかな?
0385デフォルトの名無しさんNGNG
ttp://www2.big.or.jp/~osamu/Delphi/builder-browse.cgi?index=036523
これと同じエラーになるんですけど、回避策ってないですか?
dclusr ってすぐリンカエラー起こすのよね・・・。
0386デフォルトの名無しさんNGNG
BCBで最も安定した、というか使いやすいシリアル出力ライブラリはどれでつか?
0387デフォルトの名無しさんNGNG
>>377
いや、逆だろ。
SendMessageはウィンドウプロシージャを呼び出してメッセージを送りつけ、PostMessageはメッセージをメッセージキューに貯めるだけだから。
0388デフォルトの名無しさんNGNG
TListViewのSelectItemイベントの中でTListViewのReadOnlyプロパティを変更するとエラーがでるんだけど
これどうしてなんですか?選択こうもくによってキャプションの編集できるのとできないのをわけたかったんだけど
0389デフォルトの名無しさんNGNG
StringGridを使用しています。
SetEditTextイベント内で、入力された値を書き換えると
書き換えたtextが反転してしまうのですが
それを回避する方法はないでしょうか?
0390デフォルトの名無しさんNGNG
>>388
エラーは再現できないのでわからないけど、
OnEditingのAllowEditをいじれば、編集開始するか否か決められる。

>>389
書き換えた後、EditorMode = falseにするというのは?
こういう動作じゃなくて編集状態は維持したいのかな?
そうならさらにその後、EditorMode = trueにするとか。
0391デフォルトの名無しさんNGNG
StringReplace を使って文字列を置換する関数を書いていたんですが、
問題があることがわかりました。

変換前の文字列と変換後の文字列の組を渡すのですが、
変換後の文字列に変換前の文字列が含まれると思った通りの結果になりません。

具体的には、
変換規則1 A→B
変換規則2 B→A
という規則の時、入力文字列が AB、欲しい結果は BA だとすると、
StringReplace を使って1.2.の順番に規則を適用すると
AB →(規則1)→ BB →(規則2)→ AA
となってしまいます。
2.1.の順番に適用しても欲しい結果になりません。
変換規則の変換前、変換後の文字列の長さがどちらも1なら自分で関数
書いてもどってことないんですが、実際にはどちらもユーザーが入力する
ので長さは不定です。

なんか解決策ないでしょうか?
0392デフォルトの名無しさんNGNG
>>391
何がしたいのか全く分からん。

その程度の質問しか出来ないなら99.99%の確率で
お前の書いたソースが悪い。
回答がほしけりゃソース晒せ。
0393デフォルトの名無しさんNGNG
>変換規則1 A→B
>変換規則2 B→A
>AB →(規則1)→ BB →(規則2)→ AA
当然でしょ?
0394391NGNG
一度、変換した文字列はもう変換して欲しくないわけなんですよ。

入力が "AB" のとき、「AはBに変換したい」、「BはAに変換したい」と思ってる
わけですから、1文字目のAはBに、2文字目のBはAになって、"BA"になって
欲しいんです。

しかし、StringReplace は変換規則は1度にひとつしか適用できないので、
規則を順番に適用すると、思ったとおりの結果にはなりません。

複数の変換規則を同時に与えられる StringReplece があればいいのですが、
VCL にはないようなので、どうしたらよいものかと。

0395デフォルトの名無しさんNGNG
>>394
変換処理が終わったところは2回目の変換対象から外す
0396デフォルトの名無しさんNGNG
>>394
>>393の動作は全く当然の動作なのでStringReplaceに
問題があるのではありません。

>変換した文字列はもう変換して欲しくないわけなんですよ。
それを実現するための方策はプログラマが考えることですね。
自分で思いつかなかったら、具体的な変換規則を提示した上で
再質問すれば親切な誰かがアドバイスをしてくれるかもしれませんが、
いまの質問の仕方なら、「自分で考えろ」以外の回答はありえません。
0397デフォルトの名無しさんNGNG
”プログラムは思った通りには動かない。書いた通りに動く”

典型的なこれだなw
0398394NGNG
>>395
そうですか。それしかないですか。
変換があったら、変換済みと未変換な部分に分割して、未変換な部分に次の規則を
適用する・・・を繰り返すなら StringReplace を使って実現できそうですね。
けっこうコードが長くなりそうなので、やりたくなかいんですが・・・・。

>>396
書き方がわるかったですね。
StringReplace に問題があると言ってるわけではなくて、
StringReplace を使っていたら問題がある関数になってしまったと言いたかったんです。

具体的には、文書のなかの氏名等を一括置換したいんです。

下記のような、部長が交代する人事異動が発生したとします。
         旧     新
総務部長  イチロー ジロー
営業部長  ジロー  イチロー

名前だけかえちゃえば使える文書が多いので、文書中のイチローはジローに
ジローはイチローに換えたいわけなんです。

0399デフォルトの名無しさんNGNG
Delphiのコンパイルはなんでむちゃくちゃ早いの?
それにくらべてBCBはなんじゃこりゃ
0400デフォルトの名無しさんNGNG
C++ が Delphiに絶対的に優越している分野はありますか?
0401デフォルトの名無しさんNGNG
なにひとつない
0402デフォルトの名無しさんNGNG
postは郵便ポストにいれる。
sendは直接送り届ける。

>>399
言語仕様。
とくにC系はヘッダファイルの読み込みと解析に時間が掛かる。
0403デフォルトの名無しさんNGNG
>>391
文書と置換文字列中に絶対出現しない文字列Xを介してはどう

文書中のAをXに置換
文書中のBをAに置換
文書中のXをBに置換

あるいは

文書中のAをX1に置換
文書中のBをX2に置換
文書中のX1をBに置換
文書中のX2をAに置換
0404ミ,,゚Д゚ミノ ◆A6VzDeLphI NGNG
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂,,,,,,,`つ≡≡(´⌒;;;≡≡≡
ズザーーーーーッ    (´⌒(´⌒;;

とりあえずもまえら、えらそうに
回答するならソース晒すとか
作成ヒントとか伝えてやれよ。
まつたく。

>>398
漏れはなかったから作った。どぞ。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=230
0405ミ,,゚Д゚ミノ ◆A6VzDeLphI NGNG
あ、、BCBだつた!・・・

orz
0406デフォルトの名無しさんNGNG
大まかな流れを掴むため、プロトタイプを作成した。
h、cpp合わせて1500行しかないのにバイナリ637KB
ってどういうことよ
ホントあきれるわ > Borland殿w
0407デフォルトの名無しさんNGNG
>406 バカ?
0408デフォルトの名無しさんNGNG
行w
0409デフォルトの名無しさんNGNG
>>398
イチローをうんこイチローに置き換え。
↓
ジローをイチローに置き換え。
↓
うんこイチローをジローに置き換え。
0410389NGNG
>>390
EditorModeをfalseにしたあとtrueにすることで目的の動作が出来るようになりました。
ありがとうございました。
0411デフォルトの名無しさんNGNG
えらそうに文句しかほざいてねえ奴って文句しかいわねえでアドバイス等は一切ねーよな
0412デフォルトの名無しさんNGNG
安い挑発キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0413デフォルトの名無しさんNGNG
>>411見たいな奴がアドバイスした事も一切ねーよな
0414デフォルトの名無しさんNGNG
BCBはテンプレートのインライン展開がショボイから、
find_ifとbind2ndとか組み合わせるようなSTLバリバリの書き方すると、
forでループさせるより遅くなっちゃうのが難点だね。
0415デフォルトの名無しさんNGNG
>>414
例えばどんなのかな?VC7.1+STLPortで比較してみたい。
0416デフォルトの名無しさんNGNG
URLDownloadToFile APIを使いたくてFormのヘッダに#include <urlmon.hpp>を追加
プロジェクトにurlmom.libを追加したんですがURLDownloadToFileが未定義の関数として
コンパイル出来ません、Builderは5です
urlmon.hをインクルードしてもダメだったし・・・
どうすればURLDownloadToFile APIを使えるのでしょうか?
0417デフォルトの名無しさんNGNG
>>416
6だとurlmon.hで普通にコンパイル通るが・・・
だめならURLDownloadToFileAでやってみれ
0418416NGNG
>>417
う〜〜む、AもWもダメだったんですよ・・・・
未定義のエラーだからよろしくないのは解ってるがプロジェクトのディレクトリに
urlmon.hをコピーしてincludeしてみたけど変わらず
ボタン1個の新規プロジェクトを作って試してみたけどダメ
いったいどこが引っかかってるんだろ・・・
0419デフォルトの名無しさんNGNG
>>416
色々試してるみたいだけど
 urlmon.libをプロジェクトに追加
 urlmon.hをインクルード
これでやってる?
urlmon.hppはVCLのヘッダなので関係ないよ。
0420416NGNG
>>419
うん・・・libはプロジェクトに追加済み
#include <urlmon.h>をFormのヘッダの方とcppのどちらにつけてもダメ・・・
オブジェクトにねぇよ!って言われずに関数が定義されてないって
言われるからヘッダの中が旨く通ってなさそう;;
コンパイルの時の条件に何か違いあるなのかなぁ>5と6
0421デフォルトの名無しさんNGNG
bcb5でも問題なく通る。
とりあえず、新規プロジェクトでもう一度テストしてみたら?

関数が未定義ってタイポの可能性もあるが。
0422416NGNG
>421
URLDownLoadToFile>URLDownloadToFile
_| ̄|○ 俺は何をやってるんだ・・・・・

大文字小文字区別無しで検索とかGrepしてたから気がつかなかった
っていうか文字フォントを小さくしすぎてたよ(ノД`)
マジで申し訳ない(´;ω;`)
0423デフォルトの名無しさんNGNG
ィ�`
0424デフォルトの名無しさんNGNG
腹を切って死ぬべきである
0425デフォルトの名無しさんNGNG
>>422
( =゚ω゚)っ[ Ctrl+Space ]
0426デフォルトの名無しさんNGNG
ブラウザのURL入力ボックスみたいにエンターキー押したらメソッド呼ぶっていうふうにするには
どうしたらいいでつか?
OnEnterかと思ったらなんかフォーカスした時点で呼びに行くわエンター押しても無視だわで
0427416NGNG
罪滅ぼしまでに(ノД`)
>>426
OnKeyPressを使います
void __fastcall Thoge::hogehogeKeyPress(TObject *Sender, char &Key)
{
if (Key == VK_RETURN){
(なにかの処理)
Key =NULL;
}
}
0428デフォルトの名無しさんNGNG
>>1-427
さっさと9を出してください
0429デフォルトの名無しさんNGNG
( ・∀・)っ9
0430デフォルトの名無しさんNGNG
reinterpret_cast とCのキャスト( (int)xxx みたいな )って
どう違うの?

<T>がポインタに制約される以外に違いわかんないんだけど、
それ以外に、reinterpret_cast に利点ってあんの?
0431デフォルトの名無しさんNGNG
>>430
C++のキャスト演算子はわざと「醜く」なるような形をしているので、後から
reinterpret_castその他のキャストしてある場所を検索するのが簡単。

それから、templateを使って自作のキャスト演算子モドキを作れるような格好
をしている。
boost::lexical_castのような。
0432426NGNG
>>427
ラジャー
0433デフォルトの名無しさんNGNG
>>430
reinterpret_cast/static_cast/const_castの3種類を使い分けて始めて意味がある。
■ このスレッドは過去ログ倉庫に格納されています