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

C Builder相談室 Part3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-5あたり。
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
スレタイトルに+って使えないんじゃなかった?
0240デフォルトの名無しさんNGNG
>>238
 リンカが取り除けるものは取り除くけど
 使っているものはもちろん
 使われるかどうか判らないものはリンクされる。

使っているもの
 それぞれのunitの nitialization finalization

使っているかどうか判らないもの
 publishedな部分
 リソース
0241デフォルトの名無しさんNGNG
>240
>238さんじゃ無いけど。
ってことは、出来るだけパッケージ分けた方がいい?
0242240NGNG
>>241
 え? そんな事は言ってないよ。 
 Delphiで言えばusesしなければ、パッケージのほかのモジュールは何の関係もない
 のは常識として、追加の話をしただけで
0243デフォルトの名無しさんNGNG
>242
あー、すまんっす。
勘違いしてた。
0244デフォルトの名無しさんNGNG
>>237
implibでDLLからlibファイルこさえてSDKのヘッダファイルincludeすればいいだけだと思うが。
0245デフォルトの名無しさんNGNG
先日BCB6を買ってきました。
とりあえず、チュートリアル通りにエディタを作って
みたのですが、そこで少し疑問がでたので質問します。

この手のサンプルを見てると
「新規作成」を選ぶと画面をクリアするように
なってますが、エディタって大抵新しいウィンドウ(フォーム)を
開きますよね。
でも、その方法がわからないのです。

ご教授、よろしくお願いします。
0246デフォルトの名無しさんNGNG
>>245
TForm1.CreateModal();だったっけ?
0247245NGNG
>246
CreateModalというメソッド無いみたいなんですが・・・。
一応ShowModalかな?と思い試してみたんですが
「表示されているウィンドウをモーダルにすることはできません」
と言われてしまいます。
0248デフォルトの名無しさんNGNG
CreateNew
0249デフォルトの名無しさんNGNG
TForm *form = new TForm1(this);
form->ShowModal();
delete form;
0250デフォルトの名無しさんNGNG
>>245
>「新規作成」を選ぶと画面をクリアするように
>なってますが、エディタって大抵新しいウィンドウ(フォーム)を
>開きますよね。

メモ帳やワードパッドはそんなことないよ。と言ってみるテスト。

VCLにはメインフォームというものがあって、ちょっとやっかいな構造になっております。
新しいフォームを開くのはいくらでも出来るんですが、
最初に開いたフォーム(メインフォームと呼ばれる)を閉じると、
後で開いたフォームも全部閉じてしまうです。
・・・続き(解決編)聞きたい?
0251デフォルトの名無しさんNGNG
>>244
確か、8になってから
その方法でも使えなくなったってどこかで見たな。
0252デフォルトの名無しさんNGNG
D3DXが使えないらスィ
0253245NGNG
>250
うあ、そうだったんですか。
MDIアプリにした方がスマートなのかな・・・。

続き、一応聞きたいです。
理解出来るかはわかりませんが(苦笑
0254デフォルトの名無しさんNGNG
>>252
http://www.geocities.com/foetsch/cbuilder.htm
こんなものをどうぞ
0255デフォルトの名無しさんNGNG
>>254
〜bor.dllの配布がいやん。
0256デフォルトの名無しさんNGNG
             ヽ l //
         ――― ★ ―――
            // | \
           / /. |  \
             /   |

                 ワガママ 言うな!
        -   ̄ ̄ ―
     /
    /                ヽ
         ∧_∧_
   |     ( ´Д`)  ̄"⌒ヽ
   |    / ) ヽ' /    、 `、_
      γ  --‐ '    λ. ;  !
      f   、   ヾ    /   )
      !  ノヽ、._, '`"/  _,. ‐'"
      |  j   ヽ 〈_,,,ノ" ヽ
       !  ヽ   冫 y'   .ノ
       `、  \ | /   /
          \、ヾ | |  イ-、__
            l.__|   }_  l
            _.|  .〔 l  l
            〔___! '--'
0257デフォルトの名無しさんNGNG
>>253
エディタのフォームとは別にダミーのメインフォームを作ります。
これでエディタフォームは開いたり閉じたりしても大丈夫ですが、問題がいくつかあります。
1.メインフォームが邪魔
・・・画面外に追いやって見えなくするとか API を使って非表示にするとか。
2.個々のエディタフォームがタスクバーに現れない
・・・SetParentで親をNULLにするとか、WS_EX_APPWINDOWを付けるとか。
3.エディタフォームを全部閉じてもアプリケーションが終了しない(メインフォームが残ってるので)
・・・エディタフォームが全部閉じられたらメインフォームも閉じるよーにします。別にメモリに常駐しててもいいけど。

別なアプローチとしては、新しいフォームを開く代わりに自分の exe をもう1個起動させることも出来ます。これはカンタン楽チン。不便な面もあるけど。
0258デフォルトの名無しさんNGNG
>>256
モナーむこう側を向いてる方が絵的にいいなー。
0259245NGNG
>257
なるほど・・・。
何となく理解しました。

例えばタスクトレイに入れておく
ダミーのメインフォームを作って
そこから>249さんが書いてくださった方法で
開いていけばいいと。

頑張ってみます〜。
0260デフォルトの名無しさんNGNG
>>245
 タブにしたらどう?
TPageControl に挿入するか TTabControlにして 作成したフォームを一つだけ有効にするか
0261245NGNG
とりあえず>259に書いた方法でやってみました。
ウィンドウは開けるんですが、
一番最後に開いたウィンドウにしかフォーカス当たらない(苦笑。
ってことで、道は遠そうです。

>260
それもいいですね。
そうしてみようかな・・・。
0262デフォルトの名無しさんNGNG
>>261
ShowModal は、モーダルダイアログと呼ばれるやつです。他のフォームが全部使えなくなる。
ただの Show なら大丈夫。(でもすぐ delete しないように)
0263245NGNG
>262
おおっ、できました〜。
やっぱり自分が思ったとおりに動くと嬉しいですね。
これからも頑張ります〜。
0264デフォルトの名無しさんNGNG
MaskEditで例外処理が行われた時に出てくるメッセージを、
英語版Windws環境上で、英語メッセージが出てくるようにするには、
どうしたら良いでしょうか?
0265デフォルトの名無しさんNGNG
TTableを元にして、QuickReportを使用しています。
分レビューは正常なのですが、実際に印刷すると

C
A
B
C
D

となってしまいます。

実際にはデータは、A,B,C,Dしかないのですが。。。
BCB5 QR Ver3.0 です。m(_ _"m)ペコリ
0266仕様書無しさんNGNG
>>264
データを「リソース」にしておけばよかった…かな。
0267デフォルトの名無しさんNGNG
>>266
ありがと、試してみます。
難しそう・・・
0268デフォルトの名無しさんNGNG
C++ は長いことやってたんですが、VCLを使ったWinアプリ開発は初めてです。
質問があります。
自分で new をつかって作成したオブジェクトでも、delete しなくていい(しちゃいけない?)
ときってありますよね?
そこの線引きがよくわかりません。
たとえばImageListにnewでつくったBitmapを追加したとき、
その追加メソッドの呼び出しに渡したポインタはdeleteしてもいいのか、とかです。
なにかわかりやすい指標のようなものはないでしょうか?
それとも、なんか勘違いしてます?
0269デフォルトの名無しさんNGNG
わかりやすい指標→OwnerプロパティがあるVCLオブジェクトかどうか
かな?
0270デフォルトの名無しさんNGNG
>>268
基本的に自分で作った物はFree。

TListのデストラクタをオーバーライドして解放ルーチンを埋め込んだり。
0271268NGNG
>269,270
はいーわかりましたー。
もいっこ、確認ですが、 Owner を設定して new で作ったモノは delete
してもいい?しちゃだめ?
0272デフォルトの名無しさんNGNG
    (゚д゚)  してよし!
   ~(  )−
    / >
0273デフォルトの名無しさんNGNG
問題ないと思ふ
0274268NGNG
ダブルで即答だ、ぅわぁい。
これでVCLとは友達だ。
0275Delフサギコ ◆zE1iiRdQ NGNG
> もいっこ、確認ですが、 Owner を設定して new で作ったモノは delete
> してもいい?しちゃだめ?

      ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ミ   彡  < あえて言っておこう
     (ミ   ミ)    \_______
      ミ   ミ 
      ∪ ∪


      ∧,,∧ サッ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ミ,,゚Д゚ミ  < しなくてもいいんだ。
    ⊂   Om   \_______
     ミ、,, ミ,
      .しヾJ  してもいいけどネ
0276デフォルトの名無しさんNGNG
スレッドが動いてるときに、
xボタンでソフトを終了されると落ちるんですけど、
どうしたらいいでしょうか?

XXX->FreeOnTerminate = false;
XXX->Resume();
で、一個スレッド作ってから、そのスレッド内で

YYY->FreeOnTerminate = true;
YYY->Resume();
bool bn=YYY->WaitFor();
と、もう一個スレッドを動かしてます。

0277デフォルトの名無しさんNGNG
そのコードだけでは・・・。
アプリが終了したときのXXXとYYYの終わらせ方に問題があるのかも。
■ このスレッドは過去ログ倉庫に格納されています