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

C Builder相談室 Part3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-5あたり。
0140デフォルトの名無しさんNGNG
>>139
BCCはTASM自体が入ってないよ。
0141無責任だがNGNG
>>139
 ああそうか TASMを手に入れないとダメですね。 
0142Ð ë á t h ¹³NGNG
Σ(´Д`ズガーン 万策尽きたか・・・。
H2ASHと同じ事を手作業でやるという最終手段を使うしかないかな。

>>140 テレホタイムを浪費するところでした。ありがとうございます。
>>141 TASM単体に付いてくるということなんですね。

BCBのTASMと一緒に付けて欲しかったスBorlandサン。
0143無責任だがNGNG
ようするに、インラインアセンブラだと
 構造体メンバがバイトなのか16bitなのかとかが反映されないから嫌なんでしょ?

でもそれをインラインアセンブラで書こうというのが無理やりのように思う
あとで間違えないようにという事なら assert で サイズチェックを入れておいたら?
0144デフォルトの名無しさんNGNG
メインメニューやツールバーで使うアイコンを作るのがめんど臭い。
フリーで落とせるペーヅ教えてくださレ」。
0145Ð ë á t h ¹³NGNG
>>143 嫌なのは構造体のメンバのサイズが変わったときのコード修正でして
例えば
FLD  DWord ptr [ESI+.Value] を、
FLD  [(TValue PTR ESI).Value],
とできると、Valueがfloatからdoubleに変更になってもコードは変更しなくて済みますよね。
修飾してる場合は、全て修正しなくてはなりませんし、修正忘れが1つでもあるとバグになります。

こういう変更が時々あって、構造体もアセンブリコードもマグナムサイズなものですから、
楽でバグを出しにくい書き方のほうを使いたかったのです。

結局自前でstructと同じ構造のSTRUC〜ENDSを作ることになりそうですが。(*´д`)
0146デフォルトの名無しさんNGNG
>>90
過去ログ読んでて、気になって仕方がないんですが、
なんでOKなん?

char *型 "ABC"
AnsiString型 ローカル変数 testが動的確保した"ABC"
AnsiString型 戻り値が動的確保した"ABC"(testのコピー)
の3種類作られるけど、関数抜けた時点では最初の2つしか開放されないから?
そんなの実装次第じゃん、厨房な俺に教えてくれ〜

BCCとあまり関係なくてスマソ
0147無責任だがNGNG
>>145
 うーん x86に限ってはBCCもそれほど目立って効率の悪いコードを
 出す訳じゃないのと、特に浮動小数点コードを使うとその演算に隠
 れてしまうので、その手の構造体の絡んだコードをアセンブラで書
 こうとした事はありません

まあ自前で struct 変換ルーチンを作るのが簡単かも
0148無責任だがNGNG
>>146
 実装次第だから、その実装をそれでOKなように作っているという事では?
int testfunc()
{
 int test = 0xabcd;
return test;
}
なら 大丈夫なので、それと同じように使えるように AnsiStringクラスを作ったという事でしょう


それから、文字列クラスはもう一つ作られている筈です。
それは>>90のtestfuncの返値の隠れた文字列クラスです。
このコンストラクタは関数の呼び出し直前に呼ばれて、関数が帰って代入動作をすると消えます。
0149デフォルトの名無しさんNGNG
制作したプログラムの動作がいまいち遅いのですが
実行中、同時に音楽や動画を再生しても途切れなく再生できます。
自作のプログラムが固有するCPUの割合は調整できないのでしょうか?
0150デフォルトの名無しさんNGNG
>>149
動作が遅いといっても、他に何も同時実行させてなければ、CPUをフルに使えるはずだが。
他のプロセスやスレッドと同時実行させてて、そっちよりも優先的にCPUを使いたいってことなら、
SetThreadPriority や SetPriorityClass を使えばよろし。
0151デフォルトの名無しさんNGNG
>>148
解説サンキュー
必ず基本型と同じ感覚で使えるように作ってるってわけですか
(自分で作るとき、そこまで考慮してないけどなぁ)

C++の文法は大体わかったつもりだけど、このへんの暗黙のルールとか
ライブラリとかは、まだまだ理解不足だねぇ
頭の中はC言語とアセンブラのまんま〜

>それから、文字列クラスはもう一つ作られている筈です。
>それは>>90のtestfuncの返値の隠れた文字列クラスです。
>>146の3つ目がそのつもりだったんだけど書き方が悪かったね
0152デフォルトの名無しさんNGNG
ヽ(゚∀゚)ノ
0153デフォルトの名無しさんNGNG
教えていただきたいことがあります。

EDITコンポを2つ配置し"A"を名前"B"を読み仮名とします。

ユーザーが"A"に名前を漢字で入力すると"B"に読みが半角カナで仮表示
(ユーザーが修正可能)されるというものを作りたいのですが、どのよう
にしたら良いかわかりません。

"B"に何か別なコンポーネントを使えばよいのでしょうか?

アドバイスやここを見れと言うのでもかまわないのでご教示
お願いいたします。
0154デフォルトの名無しさんNGNG
>>153

Delの例ですが
ttp://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=25#0201.txt
に、そのままがありまっせ。
0155デフォルトの名無しさんNGNG
C++Builder初心者です。お手数ですが教えてください。
図1)のように、画面を分割したいのですが、縦分割は簡単にできたのですが、B領域とC領域の横分割がうまくできません。
TSplitterにて、AとBCの分割は、Align=alLeft、Left=分割位置、にて簡単にOKだったのですが、
BとCの分割を行おうとして、Align=alTop、Top=分割位置とすると図2のようになってしまいます。
Align=alTopを指定すると、Topの値は無視されるようです。

図1)
AAAAAAAA|BBBBBBBBB
AAAAAAAA|BBBBBBBBB
AAAAAAAA|BBBBBBBBB
AAAAAAAA|------------
AAAAAAAA|CCCCCCCCC
AAAAAAAA|CCCCCCCCC
AAAAAAAA|CCCCCCCCC

図2)
BBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBB
-----------------------
AAAAAAAA|CCCCCCCCC
AAAAAAAA|CCCCCCCCC
AAAAAAAA|CCCCCCCCC
AAAAAAAA|CCCCCCCCC

画面を縦に分割して、その分割した右側を横に分割する方法をアドバイスお願いします。
0156デフォルトの名無しさんNGNG
BCのところにTPanel乗せてから分けるってのは駄目なの?
0157155NGNG
>>156
ありがとうございます。できました。
TPanelにTSplitterを入れることができるのですね。
VCの考え方と全然違うのでとてもとまどってしまいました。
MFCの、CSplitterWndに相当するものを必死で探してしまいました(汗)。
0158デフォルトの名無しさんNGNG
>155
こないだの漏れと同じだ(笑)

・AをAlign=alLeftで作る
・Aの右にスピリッタ入れる
・BC領域にあたる部分にパネルを張る
・Bをalign=alTopでパネル上に作る
・Bの下、パネル上にスピリッタを入れる
・Cをalign=alClientで作る

パネルはBevelOuter=bvNoneにすると吉
0159.NGNG
始めまして質問させてください。

TEditを並べてVK_RETURNで次のEDITへ
SetFocusしてます。

そのとき、ポーンとBEEP音がなりうるさいのですが
なんとかならないでしょうか?

一行テキストですから本来入力できない リターンがくると
警告音がなるには当然ですが・・・
0160デフォルトの名無しさんNGNG
何でC++Builderの自動保管機能はあんなに使いにくいのですか?
いちいち読み込んでいて、埒があきません
0161デフォルトの名無しさんNGNG
私もそう思うので使わないようにしました。
0162デフォルトの名無しさんNGNG
Builder 6 で SOCK_RAW ソケットをオープンして setsockopt で IP_HDRINCL
を有効にして生ソケットを扱ってみたのですが、
sendto で WSAError の 10049 が発生します。
VC6 では問題なく実行できました。
何か原因考えられないですか?
0163デフォルトの名無しさんNGNG
>>159
試してないけどOnKeyDownで
if(Key == VK_RETURN)
 Key = NULL;
0164.NGNG
>>163
試してみましたがダメでした。
0165無責任だがNGNG
>>159
Delphiの場合、そういう場合はAbort例外を投げるんだけど
if Key=#13 then begin
Edit2.SetFocus;
Abort;
end;

Builderでも同じじゃないかな?
0166デフォルトの名無しさんNGNG
>>164
OnKeyPressでは駄目かな。とりあえずどちらかで出来たよ。
0167デフォルトの名無しさんNGNG
OnKeyPress で
Key = NULL;
0168.NGNG
ありがとうございます
OnKeyPressでAbortで出来ました
0169デフォルトの名無しさんNGNG
やっぱ、あの音要らないって人多いね。俺も消してる。
0170デフォルトの名無しさんNGNG
unable to open file SYSUTILS.RES
と言われるのですが、どうしたらいいのでしょうか?

windows.h はインクルードしていますが、VCL関連のヘッダは
インクルードしていません。
0171デフォルトの名無しさんNGNG
>>170 そのファイル自体は存在するんですか?
0172170NGNG
>171
あります。
\CBuilder\Lib\Objフォルダにあります。
プロジェクトオプションのライブラリパスでも通っています。

ファイル名は Sysutils.res と小文字ですが、関係無いですよね・・・。
0173デフォルトの名無しさんNGNG
>>172 エラーの出た行でどんなことしてますか?
0174170NGNG
コンパイラできました。
*.makファイルをいじったのがいけなかったようです。
0175デフォルトの名無しさんNGNG
ありゃ
0176デフォルトの名無しさんNGNG
(´-`)。o ○ (すげーな、オイ。コンパイラ作ったのかよ)
0177デフォルトの名無しさんNGNG
>176
つまんねーよ、カス
0178デフォルトの名無しさんNGNG
>>176
>>177
やめろーDelスレとかC言語スレみたいになる
0179デフォルトの名無しさんNGNG
C++Builderさっぱり分かりません。
0180デフォルトの名無しさんNGNG
みなさんC++Builderの操作方法ってどうやって
覚えたんですか?
0181デフォルトの名無しさんNGNG
自然に。
0182デフォルトの名無しさんNGNG
マニュアル
0183デフォルトの名無しさんNGNG
>>180はC言語スレ行っちゃたけど、タイミング悪すぎ。
0184デフォルトの名無しさんNGNG
NULL議論の真っ最中に・・・憐れ180
0185デフォルトの名無しさんNGNG
あ、1こレスもらってる
0186顔も名前も出さずに毎月100万円NGNG
Future-Web(フューチャーウェブ)登場
なんと10,000円単位の収入    

●10,000円単位の高収入
 1件につき最大10、000円の高額収入。月収100万円以上も可能。
●画期的なビジネス!
 インターネットを利用したこれまでにない斬新で画期的なビジネスです。
●誰でも出来ます!
 インターネットが出来る環境の方なら誰でも参加可能です。
●専門的な知識は一切不要!
 ビジネスに必要なツールはすべて当社で用意いたします。また、サポ
 ートも万全です。
●詳細は今すぐHPをご覧ください。
  http://www.future-web.tv/7823/
0187新米NGNG
Bitmapを読み込んで、その画像上に新しく図形などを描き込み、その画像を
セーブする方法で悩んでいます。Form上のCanvasプロパティを使って、読み込んだ
Bitmapに図形を書いたり、消したりすることができることがわかったのですが、
それでは、図形がBitmapに書き込まれたことにはならないので、Imageコンポーネント
にあるBitmapをセーブしてもNGですよね。 何か良い解決策はないでしょうか?
一度、書き込んだ図形の消去も可能にしたいのですが、よくやり方がわかりません。
どなたか助けてー
0188デフォルトの名無しさんNGNG
Delphiだけど、このへん読めばわかるんじゃないかな?
ttp://www.netjoy.ne.jp/~tuya/DlphTutor/DlphTutor5.html
ttp://www.netjoy.ne.jp/~tuya/DlphTutor/DlphTutor6.html
0189デフォルトの名無しさんNGNG
>>187
FormではなくImageのCanvasつまり Image1->Canvasに描くと
図形をBitmapに描いた事になる
0190デフォルトの名無しさんNGNG
。・゚・(ノД`)・゚・。ウワーン

Windows 98 SE + C++Builder5.5 にて、

他人(誰?)が書いたソースを使ってビルドすることを企てております。
どうしても struct _timeb と _ftime() が定義されていないという理由で
コンパイルが失敗します。

いちおう、
#include <sys\types.h>
#include <sys\timeb.h>
こんなふうにヘッダファイルをインクルードしてあるんですけれど、
ダメなんです。

#define _timeb timeb
とか、勝手にやっちゃえばいいんでしょうか? アヒャー(・∀・;)
0191デフォルトの名無しさんNGNG
>>190
いいんじゃない?
0192デフォルトの名無しさんNGNG
燃えagaーれー 燃えagaーれー 燃えagaーれー
0193デフォルトの名無しさんNGNG
バンダムー
0194デフォルトの名無しさんNGNG
天功ー
0195デフォルトの名無しさんNGNG
シカトー
0196190さんNGNG
>>191
よおーし、おじさん  (;´д`).。oO( やっちゃうゾー? )
(´-`).。oO( もとのソースがLinux向けだったらしいが不詳 )
0197デフォルトの名無しさんNGNG
質問です。
ttp://homepage1.nifty.com/cosmic/delphi/vcl.html
ここの「テキストファイルプレビュー機能付きオープン・セーブダイアログ」なんですが
テキストプレビュー部分で右クリックすると
親コントロールが無いと言われ例外が出てしまいます。
どうしたらいいんでしょうか。
0198197NGNG
環境書き忘れです。
BCB6です。
0199デフォルトの名無しさんNGNG
>>198
作者に聞けよ…
0200名無し~3.EXE NGNG
>199
作者のサイトに
>C++Builder に関する質問は、回答できない(する能力がない)ので送らないでください。
と書かれていたので
使ったことある人いるかな、と思いここで聞いたのですが。
0201デフォルトの名無しさんNGNG
BCB4 使ってるんですけどコンポーネントパレットのSampleページにある
TCSpinEditって、なんかおかしいような気がします。
数字入れるものとして使いたいのに、エディットの中でEnter押すと、
なぜか改行が入力されてしまいます。数字以外も入力できるし。
スピンつきの数値入力にはなにか別のものを使うんでしょうか?
0202デフォルトの名無しさんNGNG
>>197
BCB6持ってないから試せないけど、

unit TextDlgs;
 :        ←ここの、{$ではじまる行を全て削除してみるとか
interface
0203デフォルトの名無しさんNGNG
>>201
editとspin組み合わせてもそうなる、使用じゃないの?
0204デフォルトの名無しさんNGNG
>>197
TTextOpenDialog で起きるの?
0205デフォルトの名無しさんNGNG
>>197
Del6で試したけどエラー出る・・・。
>>202は関係なかったみたい。ゴミン無視して。
0206197NGNG
>204
はい、そうです〜。

>205
自分もDel6Personalいれて試してみました。
エラー出ますね。
ってことで一応作者の人にメールしておきました。
返答ありがとうでした。
0207デフォルトの名無しさんNGNG
FUMIKAさんが男なんて詐欺だ〜
0208Delフサギコ ◆zE1iiRdQ NGNG
   ∧,,∧∩  /騙されて
  ミ*゚Д゚*ミ < 一歩一歩
  (ミ   ミ   \大人になっていくのです
 〜ミ ,,, ミ
   し' `J

 最近は電車の部品の名前では...
 
なんとなく、.NET対抗age月間
0209デフォルトの名無しさんNGNG
Indy使ってるかたいらっしゃいますかぁー?

http://www.nevrona.com/Indy/download80.html
に書かれている

Please note that the install does work properly
with C++Builder 4, 5 and it will fail to generate
the compiler binaries on drives (E: and N:).
This is a failure in the installation ONLY and not in Indy itself)

という文章は、E又はNドライブにIndyを
インストールしちゃだめでっせ。という解釈で
よろしかでしょか?

当方、BCB5 Pro(Update1)でし。
0210デフォルトの名無しさんNGNG
コンパイラの出力先がE:かN:だと駄目。
0211209NGNG
らじゃーっす。

なんで、そんな制約があるんでしょうね。
TCppWebBrowserを越える使い勝手があることを祈ってまする>Indy
0212デフォルトの名無しさんNGNG
制約というか、バグでしょう。
なんでそんなバグかは非常に興味がある。
0213デフォルトの名無しさんNGNG
コンパイラ側には制約/バグは無いようだが。
Indy のインストーラがなんか変なことやっているのかな?
0214デフォルトの名無しさんNGNG
>>211
IndyとTCppWebBrowser?
比較対象がおかしいぞ。
0215デフォルトの名無しさんNGNG
とりあえず、TCSpinEditはくそだから使わないように。
0216201NGNG
>>203,>>215
ありがとうございます。
TCSpinEditを使わないとすると、
代替のブツはどのような方向性で作る(探す?)のがいいんでしょうか?
最悪、APIで組み合わせることになるとか?
0217Delフサギコ ◆zE1iiRdQ NGNG
  ハーイ
   ∧,,∧∩  /TEditと
  ミ*゚Д゚*ミ < TUpDownをセットで
  (ミ   ミ   \ お使いになるのが
 〜ミ ,,, ミ    よいと思います
   し' `J  
 TUpDown.Associateがあるぞよ
 ちょっとデザインが違うけどね
0218201NGNG
>>217
では、まずそいつらでいってみます。
ありがとうございました。
0219デフォルトの名無しさんNGNG
つまらない質問ですが、
オブジェクトや実データにつけるTとかFってどういう意味でしょう?
TはオブジェクトのTかなぁと思ってみたりもするのですが…。
0220デフォルトの名無しさんNGNG
>>219
オブジェクトのTって…強引すぎ(w
型(Type)のTな。
TurboPascal時代からの慣習だYO!
メンバのFはなんだっけ…
0221Delフサギコ ◆zE1iiRdQ NGNG
     ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ミ,,゚Д゚彡< フィーは♪フィー♪ルドの♪フィー♪
   'ミ つ旦)~~  \___________
  ⊂ミ",, ,,ミ つ
0222219NGNG
わー、ありがとうございます。TypeのTとFieldのFでしたか・・。
全然見当違いでした。知ってどうなるわけでもないけど結構気になってたので
聞いて良かったです。ありがとです。
0223211NGNG
>>214
ぐはっ、両者を比較するのは間違ってますか・・・・
やりたいことは、HTTPクライアントを作って
特定のURLを巡回し、指定されたHTMLファイルを
取得できるかどうかを調べる、簡易WEBサーバ監視ツールを
作りたいんですが・・・・・

TCppWebBrowserを使ってみたんですが、どうも思って
いた物と違ったようなので、winInet関連にもはしりましたが
Indyの中にもHTTPクライアントとして使えるような
コンポーネントがあると思っていたんですが・・・・

とりあえず、これからインストールしてみます。
0224デフォルトの名無しさんNGNG
>>223
それならIndyでOK
223自身も言ってるようにTCppWebBrowserを使うのが変
0225211NGNG
> 224
ありがとうです。
いま、インストールしてとりあえずサンプル動かしてみたんですが
winInetなんて使ってられないくらい便利ですね。

が、HTTPのステータスコード(TIdHTTP->ResponseCode:404 Not Foundとかのやつ)が
おかしな事になっています。

たとえば、
http://www.2ch.net/
http://www.2ch.co.jp/
を巡回すると、1つ目の方は当然のごとく200(OK)を返しますが、
2つ目の方でも200を返します。
本来、2ch.co.jpなんてのは実在しないんだから
NULLか0あたりを返してくれることを期待していたんですが・・・
何かご存じの方いませんか?
0226デフォルトの名無しさんNGNG
TCppWebBrowserってCGIやるとき使うの?
0227デフォルトの名無しさんNGNG
>>223
男ならTClientSocket・・・は使いにくいのでソケットAPI叩こう!
0228げるるんNGNG
>>227
いや、WinINETAPIで十分だろう
0229デフォルトの名無しさんNGNG
最近
ttp://www.bradsoft.com/topstyle/2.5/screenshots/1.gif
こういうデザインのソフト増えてきたけど
こういうツールバーとかタブってどうやって作ったら
いいんだろう・・・。
0230Delフサギコ ◆zE1iiRdQ NGNG
| WiniNETならここかしら。
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/
\
   ̄ ̄ ̄ ̄ Ο  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ο
♪   ∧,,∧゚ ♪
    ミ,,゚Д゚彡  ♪
    ミつ[|lllll]).
   〜ミ  ミ
    U''U
0231デフォルトの名無しさんNGNG
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Memo1->SetFocus();
  Memo1->SelectAll();
}

  SetFocusしないと SelectALlが効かないんですが、これってそういうもの?
 それから Memo1のReadonly=true;にしてあると
 CutToClipbordも効きません。

W2000でBCB5です。
0232Delフサギコ ◆zE1iiRdQ NGNG
 ∧,,∧  
ミσ゚Д゚ミσ

HideSelection=False?
ReadOnlyなんだから、Cutはできないのは普通じゃないかな?


0233231NGNG
>>232
なるほど、そう見えてないだけで実際には動いてたんですね。
ReadOnlyでCutToClipbordが効かないから判りませんでした
0234デフォルトの名無しさんNGNG
>>228
これって対応Windowsってどれどれ?
0235仕様書無しさんNGNG
>>234
そりゃア IE3 を動かせる Windowsでしょう。
(;´д`).。oO( ただし 3.1 を除く )
0236デフォルトの名無しさんNGNG
WinINET は IE が入ってる事が条件。
例によっての話、IEのバージョンによってバグの入り方は違う。

何でバージョンによってDLL名変えないのかねえ
0237デフォルトの名無しさんNGNG
BCBでDirectX 8を普通に使う方法は無いものですか
0238デフォルトの名無しさんNGNG
複数のコンポーネントを全部1つのパッケージに入れると、
どれか1つ使った場合も全部exeにくっついちゃうの?
0239デフォルトの名無しさんNGNG
スレタイトルに+って使えないんじゃなかった?
■ このスレッドは過去ログ倉庫に格納されています