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

C++Builder相談室 Part4

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

ありがとうございました。
がんばって勉強します。
0684山崎渉NGNG
(^^)
0685デフォルトの名無しさんNGNG
スレッドの殺し方がわかりません。

new で作って
スレッドに命令するんですが、
スレッドがずっと実行したままなので止めたいです。
お願いします。
0686デフォルトの名無しさんNGNG
>>685
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
0687デフォルトの名無しさんNGNG
>>685
開発者ガイドの11-6
0688デフォルトの名無しさんNGNG
起動時の引数を取得するためにParamStrを利用しているのですが
この時にパスが「Program Files」などスペースが入っている場合に
ParamStrに格納される文字がわかれてしまうのですが、
これをわかれないようにするにはどうすればいいのでしょうか?
0689デフォルトの名無しさんNGNG
BCB5・learningエディションを持っているのですが、
BCB6・Standerdエディションを買って得することはありますか?
自分はデータベースもLinuxもインターネットアプリも興味ありません。
一応BCB6Proを買う予算はあります。
0690☆NGNG
>>688

Test.exe Program Files

って書いたときに、"Program Files" というファイル/ディレクトリを指定したいのか
"Program" と "Files" という二つのファイル/ディレクトリを指定したいのか、プログラム側からは
判定できないだろ?

空白などの区切り文字を含んだファイル/パス名をパラメータとして渡すときは、
渡す側が "Program Files" と引用符で括ってあげる必要がある。
そうすれば ParamStr に一つの引数として(引用符がはがれた状態で)格納される。
0691デフォルトの名無しさんNGNG
すいません、開発者ガイドってなんですか?
ガチレスです
0692デフォルトの名無しさんNGNG
また割坊かよ
0693デフォルトの名無しさんNGNG
プロファイラとか、そんな機能ってついてるの?
0694デフォルトの名無しさんNGNG
>>691-692
Personal版にはついてないみたいですね。
ヘルプで
「ほかのスレッドによる終了をチェックする」
を検索してください。

簡単に書くと、
「自分で実装しろ」
ちゅーことではないかと。
0695デフォルトの名無しさんNGNG
5のラーニングにはついてたのにね。
0696債務不履行の名無しさんNGNG
開発者ガイドって,参考にしている人いるの?
当方,5,6,7と未だに読んだことがない。
0697デフォルトの名無しさんNGNG
へたな解説本よりよほどいい出来だと思うけど。
0698デフォルトの名無しさんNGNG
アカデミック版のライセンス、もうちょっとどうにかならないかなぁ…
せめてPersonalと同程度に。できればVS.netと同じに。
3月までに変更してくれたら買っちゃうよ。
そうじゃなきゃVSに鞍替え。
0699デフォルトの名無しさんNGNG
TabControlでタブが表示されているところの背景部分を特定色でマスクし、
タブ以外を透過させるフォームを作りたいんですが、タブの背景のCanvas
を塗りつぶすにはどのように書いたらいいでしょうか?
0700699NGNG
すいません。
上の質問の仕方がおかしかったです。
聞きたいことを整理してからもう一回聞きます・・・
0701デフォルトの名無しさんNGNG
SendMessageでなく、Performメソッドを使うメリットっていうのは何なんでしょう?

「SendMessageの呼び出しは同期的です」とか書いてあるのを見ると
SendMessageの方が便利なように思えるのですが。
0702デフォルトの名無しさんNGNG
BCB6にしたけど、DsgnIntf周りの変更が面倒すぎる・・・。
コンポーネントの開発なんてやめたほうがいいのだろうか。
0703デフォルトの名無しさんNGNG
そういや、Delphi6対応でもBuilder6では動かないコンポーネント増えたね
そのせい?
0704デフォルトの名無しさんNGNG
すいません。
1msec毎に命令したいのでTimer使ってるんですが
Timerでは1msec毎にうまく動いていないと思います。
いやいや絶対動いていません。
効率の良い方法キボンヌ
0705デフォルトの名無しさんNGNG
あげまくり
0706デフォルトの名無しさんNGNG
>>704
StrongTimer()を使いなさい。
0707デフォルトの名無しさんNGNG
>>704=705
氏ね
0708デフォルトの名無しさんNGNG
>>704
マジレスです。 Windowsで動かすのは諦めなさい。
シーケンサとか PICマイコンとかを使いなさい。
0709デフォルトの名無しさんNGNG
そうですか…わかりました。
ありがとうございました
0710デフォルトの名無しさんNGNG
>>707
ついでに>>706も。
0711デフォルトの名無しさんNGNG
>>701
オブジェクト指向っぽくなる
0712701NGNG
>>711
ん…、それだけっすか。
ウェブ上にあった例を見てたら、
Synchronizeした関数先でPerformしてたりして、あんまり格好よくないなあなんて思ってました。
スレッド分けてる場合はSendMessage使った方が良いんですかね…?
0713デフォルトの名無しさんNGNG
素朴な質問っす
なんでVC++つかわないのですか?
業界ではVCは糞でBuilderがスタンダードって本当ですか?
VCLはAPIのラッパーですか?
0714デフォルトの名無しさんNGNG
>>713
理由は人それぞれだと思うが、俺の場合はDelphiも使ってるから、
インターフェースが同一なのですぐ移れて使いやすい。

VCが糞というのは言語仕様が糞なだけで、使われてるのはVCの
方が圧倒的に多いだろう。
0715デフォルトの名無しさんNGNG
>>713
VCはM$純正だからってメリットはある。
ただし、MFCよりVCLの方が良い設計であるのは周知の事実。

ところがMFCの方が資料がたくさんあるので
調べものがしやすいというメリットがある。

どっちがいいかは自分で判断しる。
0716715NGNG
カブタか。
俺は両方使っているのでどっちでもいいと思うけど。
0717713NGNG
なるへそ
なんかBuilderがMFCもサポートしてるみたいなんで
IDEが使いやすいほうを選んだほうがよさそな

でも、VCのほうがプログラムを組んでるようなきがしるよ
0718デフォルトの名無しさんNGNG
>>717
私はプログラムを組んでる気がしない方が良いんですけど
BCBで十分その気にさせられてしまいまつ。
0719デフォルトの名無しさんNGNG
11歳の女の子の裸を描画したいんですが、
画像を描画するコントロールは何を使ったらいいですか?

普通にTImageBoxを使って大丈夫ですか?
すじとかもアップで映ってるんで。
0720デフォルトの名無しさんNGNG
>>719
TImage+TScrollBoxで良いよ。
完成したらうpね。
0721デフォルトの名無しさんNGNG
>>719
TImageBox ってのは知らんが、TImage なら、TPaintBox のほうが速い
ことが多い。ただし、OnPaint で再描画するように。
0722デフォルトの名無しさんNGNG
>>720-721
ありがとうございます。
頑張ります!
0723デフォルトの名無しさんNGNG
>>719
TImageに年齢を指定するプロパティのageっていうのがあるんで、
それを11にする。
女の子だからプロパティsexをfemaleにしてShow()すればオケー。

すじをアップにする方法はしらん。教えて(;´Д`)

ビルダーがあるおかげでおかずに困らないよね。
0724デフォルトの名無しさんNGNG
>>723
(・∀・)マヂデスカ!?
0725デフォルトの名無しさんNGNG
既存のフォームの継承ってどうやるんですか?
ファイル→新規作成→その他で現在開いているフォームを選択すると、
もう一つフォームができますが、これとは違うんです。

あるプロジェクトで作ったフォームを利用して、別のプロジェクトを作成
したいのです。
0726デフォルトの名無しさんNGNG
>>725
開発者ガイド
0727デフォルトの名無しさんNGNG
staticな変数 static double x を他ファイルでextern double xとしたら
”外部シンボル'x'が未解決”というエラーメッセージが出てしまうのですが
ナゼなんでしょうか?
0728デフォルトの名無しさんNGNG
長年VC使ってきて、C++Builder使い始めて5日目です。
厨房質問ですいませんが、フォーム、フレーム、ユニット、リポジトリ
という用語の意味がいまいち理解できません。
かいつまんで教えて下さい。
0729デフォルトの名無しさんNGNG
>>728
フォーム
http://www.borland.co.jp/qanda/cbuilder/c0003052.html

フレーム
http://www.borland.co.jp/cppbuilder/cb5/cb5feaben/cb5fb10.html

リポジトリ
http://www.borland.co.jp/qanda/cbuilder/c0002845.html

ユニットは、Delphiが ユニット という概念を持っているので、

ファイル単位に自動的にネームスペースが付き、コンストラクタ・デストラクタも付けられる一種のクラスと思えばいい
0730デフォルトの名無しさんNGNG
インターネットを介さない通信について教えてください。

現在以下のような構成で動かしています。
 [機器]―(RS232C)―[PC:設定ソフト]

今度以下のように遠隔地からでも操作できるようにしたいという要望が出てきました。
 [機器]―(RS232C)―[PC:設定ソフト]―[携帯電話]〜(電話回線)〜[携帯電話]―[PC:設定ソフト]

質問は、BCB5.0で作成した設定ソフトについてです。
インターネットを介するならTServerSocketとTClientSocketでなんとか出来そうなんですが、
今回のはFAXのように、インターネットを介さない通信なのでやり方の検討もつきません。

FAX、通信、電話、等で検索しては見たものの参考になるものが見つけられませんでした。
通信初心者な私に助言等よろしくお願いします。
0731デフォルトの名無しさんNGNG
>>727
staticが激しく正しく機能してるじゃないか。
http://www.google.com/search?q=static+%83%8A%83%93%83P%81%5B%83W
0732組込もしまっせNGNG
>>730
いつの間にか、インターネットを通した方が簡単と思える時代になったんだね。
通信は THandleStream か、 スレッドを作るならCreateFile /ReadFile/WriteFile のAPIで直接
ボーレートの設定とかは CDROMにあるWinAPIの日本語ヘルプで通信の概要を見るといい
問題は携帯電話を通過する個所かな
たぶんUSBモデムを使うのだろうけど、ATコマンドをエミュレートしてくれてるなら
ATDT で電話かけて 電話が繋がったらコマンドは自分で作ればいい
Windows附属のターミナルソフトで試してみればいい
0733デフォルトの名無しさんNGNG
メインのスレッドとは別にもうひとつスレッドを作り、
そのスレッドで
while(1) ShowMessage("TEST");
とかやると、何回目か(回数は不定)で、

プロジェクトhoge.exeがEInvalidOperationクラスの例外を生成しました。
'Canvasに対する描画ができません'

という例外が発生するのですが、何が間違っているのでしょうか?
0734組込もしまっせNGNG
>>733
ShowMessage は関数ですが内部でVCLを呼んでいるので 別スレッドで実行してはいけないようです。

1、Thread,SyncronizeやSendMessage/PostMessage を使ってメインスレッドに処理させる
2、MessageBox を使う

のどちらを使えば良いでしょう
0735デフォルトの名無しさんNGNG
>>733
デッドロック
0736733NGNG
>>734-735
ありがとうございます。
Synchronizeで私のやりたかったことはできそうです。
(MessageBoxがデッドロック発生しないというのもためになりました。)

しかし、マルチスレッドってプログラムがごちゃごちゃしそうですね…
0737733NGNG
あ、もうひとつ聞いてもよろしいでしょうか。

Syncronize,SendMessage,PostMessage
という関数はヘルプで見つかったのですが、Threadというのは無いようでした。
Threadというのも関数なんでしょうか?
0738デフォルトの名無しさんNGNG
>>737
TThread、VCLのクラスです。
0739デフォルトの名無しさんNGNG
俺も>>723を見て12歳の女の子のあそこを表示しようと思ったのだが
ageとかsexなんていうプロパティは見つからないぞ・・・

ググッてもダメだった・・・(鬱
このスレの識者の型、どうやったら小中学生の裸が見れますか?
0740デフォルトの名無しさんNGNG
>>739
MXでもやれば?
0741デフォルトの名無しさんNGNG
>>740
TMXクラスも今検索してみましたが見つかりません(´Д⊂
0742デフォルトの名無しさんNGNG
>>741
Indyの最新版入れてみれ
TIdMxな
0743デフォルトの名無しさんNGNG
やっぱりみんなも子供の裸が好きだったのか・・・ヨカタ
俺だけだと思ってたから変態なのかと悩んでたよ。安心した。
すれ違いスマソ

ちなみに9歳〜13歳が好きです。
0744デフォルトの名無しさんNGNG
エムエークスで、12歳ぐらいの女の子がバイブで弄られて逝って
いる動画がありました。でもスク水着着るとやっぱり子供だね。
声だけ聞くと大人と変わりません。萌え。
0745デフォルトの名無しさんNGNG
>>743
俺も小学生(特に5,6年)が大好きだ。同士よ。
0746デフォルトの名無しさんNGNG
TMediaPlayerでロリ動画を再生して(*゚∀゚)=3ハァハァしているスレは
ここですか?
0747デフォルトの名無しさんNGNG
配布用にexeファイルを作るとどうしても
500kb近くになってしまうんですが
どうすればもっと小さくできますか?
0748デフォルトの名無しさんNGNG
>>747
プロ�cなんて知らんが探してみたら、UPXつーもんがあるらしいで。これでええんか?
http://urikire.hypermart.net//UPXF.htm
0749デフォルトの名無しさんNGNG
>>747
共有RTLDLLを使うオプションでコンパイルしておき、
http://www.csdinc.co.jp/archiver/lib/runtimes.html
http://www.geocities.co.jp/SiliconValley-Bay/8862/razip.html
↑ここからランタイムだけDLしてもらう。

一度ランタイムをDLしてもらえば、以降共有RTLDLLでの配布
が可能になる。
本当はCLWinがC++Builderに対応していればいいのだが、まだ
のようだ。
0750デフォルトの名無しさんNGNG
>>748
へぇ。。そんなものがあるのかぁ。
0751730NGNG
>>732
いただいた返信にあった、ATDTという単語をキーに検索してみたところ下記のHPを見つけました。
ttp://web.kyoto-inet.or.jp/people/quantum/PT/index.html
ここを読んでずいぶん通信が分かってきました。
恥ずかしながら、今までボーレートなどは"COM1"等の通信にのみ関係することだと思ってました。
携帯電話データ通信USBケーブルの箱裏を見てみたところ、
「モデム制御コマンド:ヘイズATコマンド準拠」と書いてありました。
ということで、後はATコマンドとモデムのオープン方法を調べればなんとかなりそうです。
ありがとうございました。
0752デフォルトの名無しさんNGNG
あるプログラムを実行すると無限ループになる可能性があるか否かを判断する
プログラムを作ることはできないと聞いたことがあります。
どなたか、簡単に証明をお願いします
0753デフォルトの名無しさんNGNG
>>752
C++Builderでの話?
0754デフォルトの名無しさんNGNG
>>752
スレ違いだけどな

asoko:;
goto    asoko;

これをプログラムで判断できない訳ね。へーあっそう。
0755デフォルトの名無しさんNGNG
>>754 まあまあ、そうつっかからんで…(^^;
754のは無限ループの可能性しかないわけで一般的ではない、
というか、無限ループの可能性しかないかどうかをプログラムで
判定することは可能だ、ということですわなぁ。
しかしこれでは質問に素直に答えてはいない。

>>752
だが、754は逆説的にであるが、答えを出してくれているぞ。
明らかな無限ループ以外のループ、すなわち変数を使った
判定条件を伴うループが無限ループになる可能性があるかどうかを
判断するのは困難だということだ。
しかし、それが不可能かというと必ずしもそうではない。
われわれプログラマはしばしば机上デバッグで無限ループを発見する
からね。
すなわち条件判定に使用される変数に対するすべての入力条件を
追跡することで、無限ループになる可能性がないか否かは判断できる。
0756デフォルトの名無しさんNGNG
>>754
任意のプログラムに対してそれが無限ループを含むか判定するプログラムが存在するかってことじゃないか?
0757デフォルトの名無しさんNGNG
>>756
無限ループかどうかは、結局>>754の構造を含んでいるかどうかということに帰結する。
条件分岐において可能性のある条件をすべてしらみつぶしに検証すれば、任意のプログラムにおいても
無限ループを含むかどうかを、一般解として生成することは可能だ。
つまり、>>752の命題は論理的には間違いである。
しかしながら、現実問題として、すべての条件をしらみつぶしに検証した場合、数百年いや1京年かかっても
検証が終わらないプログラムなどざらだろう。
0758組込もしまっせNGNG
無限ループになるかどうか難しいって話しは マンデルブロ集合とかからじゃないの?

input C;

Z:=0;
while |Z| < 5 do Z:=Z*Z+C;
0759デフォルトの名無しさんNGNG
>>758
soreda!
0760デフォルトの名無しさんNGNG
ねぇ・・・(;´Д`)
本当にどうやれば12歳のおまんこが見られるのか
教えてください・・・
もう我慢汁が出てきてるんですけど・・・
0761デフォルトの名無しさんNGNG
>>760
だーかーらーエムエークスやれってば。
タイーホ予備軍の人が列をなして並んでますから。。。
0762デフォルトの名無しさんNGNG
>>761
ビルダーで見たいんですよ・・
0763デフォルトの名無しさんNGNG
>>762
MediaPlayer1->FileName = "ロリ動画.mpg";
MediaPlayer1->Display = Panel1;
MediaPlayer1->Open();
MediaPlayer1->DisplayRect=TRect(0,0,Panel1->Width,Panel1->Height);
MediaPlayer1->Play();

NY の方が、楽でええよ。鼻くそほじくってる間に大量のロリ動画が。
0764デフォルトの名無しさんNGNG
TListViewで、MultiSelectプロパティを変更したときにOnDeletionイベントが起こるのは
仕様なんでしょうか?

ヘルプに書いてある事と挙動が違うと思うんですが。
> OnDeletion イベントは,リストビュー内の項目が削除されようとしたときに発生します。
0765..NGNG
>>752 あたり
CBuilder というよりは純粋数学の問題だから、数学板に行くべき。

チューリングの定理:任意のプログラムが停止するかどうかを判断できるようなアルゴリズムは存在しない
http://www.miv.t.u-tokyo.ac.jp/~yabuki/tip/lisp/unknowable/turing.html

単純無限ループは「停止しないプログラム」の一部でしかないので間違えないように。
複数スレッドによるデッドロックとかも有るし。

「停止問題」と「チューリング」で google 引けば、証明も含めいろんな情報が手に入るよ。

この議論は『すべてのアルゴリズムに対し「停止するかどうか」を確実に判定する』アルゴリズムの
非存在証明であって、
『あるアルゴリズムが無限ループになるかどうかを判定する』アルゴリズムの存在は許している。

両者の違いが分からなければ、論理学/数学/国語をもう一度勉強すること。

非存在証明だから、現実世界にはあまり実用性は無い。
0766デフォルトの名無しさんNGNG
>『あるアルゴリズムが無限ループになるかどうかを判定する』アルゴリズム

>>754だな
0767デフォルトの名無しさんNGNG
∃∀と∀∃の違い棚
0768デフォルトの名無しさんNGNG
本日23:00時より祭りを開催いたします。
是非、参加下さいます様、お願いします。
携帯PHS
迷惑メールサイト一斉訪問お祭り開催
http://cocoa.2ch.net/test/read.cgi/phs/1043309596/
0769デフォルトの名無しさんNGNG
BCB6で、次のプログラムをコンパイルすると
エラー E2316 strcmp.cpp 7: '__strcmp__' は 'std' のメンバーではない(関数 main() )
と出ます。何が間違っているのでしょうか?

#include <cstring>

int main()
{
char f1[10], f2[10];

std::strcmp(f1, f2);
}
0770デフォルトの名無しさんNGNG
>>769
std::をとってみ。
0771デフォルトの名無しさんNGNG
>>770
std::を取ると動きますよね。でも、using宣言してないので、stdがないと
コンパイルできないはずですが、これってBCBが標準とずれていると
いう事でしょうか?
0772山崎渉NGNG
(^^)
0773デフォルトの名無しさんNGNG
なんかオプションあったでしょ。strcpyとかをインライン展開するかどうかってやつ。
0774デフォルトの名無しさんNGNG
std名前空間に含まれるのが標準なの? >strcmpとか
VCもstd::つけたらエラーでたけど。
0775デフォルトの名無しさんNGNG
>>773
#pragma intrinsic -strcmp
をヘッダファイルの宣言部の後に置いたら、無事コンパイルできました。
ありがとうございました。
0776デフォルトの名無しさんNGNG
Builderってプロファイラーとか自動テストツールとかってありますか?
0777 NGNG
台湾のエロ画像掲示板が今一番ホットと言えませんかね?

http://wossal.k-server.org/tw/

0778デフォルトの名無しさんNGNG
俺、仕事はVCやGCCで家ではBCB6使ってる。
BCBは6になってから、スゲー重くなったね。
XPで使ってるけど、不安定でBuild中によく落ちる・・・。
ソースエディタはVCの方が、細かい点で便利。
デバッガもVCの方が使いやすい。
BCBがVCよりも優れてる点は、GUIアプリ作成が容易なのと
豊富なコンポーネントだろうね。
趣味で使う分にはBCBは楽しいけど、情報源が少ないのが残念だよね。
(DelphiのTipsはそのまま使える場合が多いけど)
0779デフォルトの名無しさんNGNG
>>778
俺も仕事ではVC6とgcc、趣味ではBCB6だ。同じだね。偶然だ。
BCB6になってから確かに重くなったのでマシンを買い替えた。
それでも重いのでワクチンソフトを外した。ようやく納得いくコンパイル
速度になった。

元々ワクチンソフトはほとんど役に立ってなかったので、前から外そう
としていた。

VCの方がヘルプが親切だ。BCBはヘルプが貧弱でよほどVCLやWin32
を理解している人でないと使いこなせないと思った。

BCBはデータベース機能が強力なので、そのうちこれを利用して何か
作ってやろうと思っている。
0780デフォルトの名無しさんNGNG
俺もBCBは3から使ってるけどBCB6の安定度は最悪。

まぁ、MFCなんて使いたくないから仕方ないけどさ。
会社のライブラリを使えるのなら自宅でもVCでいけるのだけどなぁ。
流石にマズイらしい。
0781デフォルトの名無しさんNGNG
質問、BCB5です。
Application->ExeName で実行ファイルのパス付き得られますが全部大文字で得られます。
元の形で簡単に得る方法ありますか?
0782デフォルトの名無しさんNGNG
>>781
ParamStr(0) ではどうか。
0783781NGNG
>>782
ParamStr(0)のほかにGetModuleFileName()も使ってみましたが
どちらも大文字化済で返ってきました。
■ このスレッドは過去ログ倉庫に格納されています