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

C Builder相談室 Part3

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-5あたり。
0809デフォルトの名無しさんNGNG
>>808
弊社サポートまでどうぞ
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧ ニヤニヤ
 ( ・∀・)
 (    )  トウゼン 有償サポートダカラナ
 | 某|  
 (__)_)
0810デフォルトの名無しさんNGNG
フォームのデストラクタってどう書けばよいのでしょうか?

対象フォームのcppファイルに

__fastcall TForm1::~TForm1()
{
  //処理
};

と書いたら、
[C エラー] Form.cpp(42): E2171 関数 '_fastcall TForm1::~TForm1()' の本体はすでに定義されている

と怒られたので、ヘッダーファイルに

class TForm1 : public TForm
{
public:// ユーザー宣言
__fastcall TForm1(TComponent* Owner);
__fastcall ~TForm1();
};

と1行付け加えたら無事コンパイルも通りました。
しかし、どうも処理が行われていないようなので
ブレイクポイントを仕掛けてもとまってくれません。
他の部分(コンストラクタとか)ではブレイクポイントが
きちんと動作しているので、何がなんだかさっぱりわかりません。
0811デフォルトの名無しさんNGNG
うちはちゃんと止まるけどな。。。
0812810NGNG
>>811
スンマソン。実は自分>>778なんですが
アプリのメインフォームが非表示なやつなんで
Ctrl + F2で終了させてました。
これだとデストラクタの処理が走らないようです。
一時的にフォームを表示させて、右上×ボタンとかで
終了させたらきちんと動作していました。

#そーいうことはきちんと書いておけっ!!>Cマガ
0813virtualNGNG
>>812
そりゃたんにフォームのインスタンスが破棄されていないからデストラクタが実行されてないだけじゃ・・・

>#そーいうことはきちんと書いておけっ!!>Cマガ
強制的に終了するとデストラクタが走らないと書けと文句をいっているのか?そりゃさすがに酷かと.
0814デフォルトの名無しさんNGNG
CTRL+F2で終了してるってことはきちんと書いておけっ!!>>812
0815デフォルトの名無しさんNGNG
すいません、質問があります。
エクスプローラーで実装されている右クリックによるドラッグアンドドロップを
私のアプリケーションで実装したいのですが、
builderのサンプルは左クリックを前提としたものが多く、
右クリックドラッグアンドドロップの定石がよくわかりません。

OnDown イベントハンドラで BeginDrag を記述すると、
(1)リストビューの項目の上で右クリックでポップアップメニューを出し
(2)メニューを出したまま別の項目で右クリックによるドラッグ&ドロップ
を行うと、(2) のドラッグ中のアイテムが選択状態になりません。

と、色々問題がありまして、もし定石がありましたら知りたいと思っております。
ご存知の方いらっしゃいましたら、よろしくお願いします。
0816812NGNG
>>813 >>814
いいんです、ほっといてください。
バカの遠吠えですから。。。。
こんなバカでも、プログラム書いてて楽しいっす!!
0817782NGNG
>>807
ありがとうございます。
自分へのレスだと気づかずお礼が遅れました。スミマセン(;´Д`)
あとは自力でなんとかしてみます。
0818デフォルトの名無しさんNGNG
俺はbcc32が好きで使ってるのですが、
どうしても、関数のリファレンスがないと不便です・・・。
そこで、C++Builderを買おうと思うのですが・・・
C++Builderのコンパイラは、bcc32と同じ関数が使えますか?
それと、もし使えるならbcc32関数のリファレンスとかありますか?
0819デフォルトの名無しさんNGNG
>>818
Builderのコンパイラはbcc32そのもの、ライブラリも同じ
ただしBuilder6はbcc5.6でStlportを使っている。
5.5のRogue Waveも使えるし、基本的には何も違いはないが一応。
それから5.5のリファレンスだけなら英語版がUSサイトからダウンロードできる
0820デフォルトの名無しさんNGNG
>>819
そうですか!
では、C++Builderを買う事にします
ありがとうございました
0821デフォルトの名無しさんNGNG
これでbcc32ユーザがまた一人減った。
0822デフォルトの名無しさんNGNG
その代わりBCBユーザが増えた
0823デフォルトの名無しさんNGNG
大丈夫、BCB6ユーザな漏れもBCC32を使うことは有る。
0824デフォルトの名無しさんNGNG
というかbcc32.exe Ver5.6、信用ならないんですが‥‥

VCL使わないのは全部bcc 5.5.1でビルドしてたりする‥‥
0825デフォルトの名無しさんNGNG
>>824
bcc 5.6.1 をなぜ使わない?
0826デフォルトの名無しさんNGNG
>>825
どこにあるの?
0827デフォルトの名無しさんNGNG
つーかさ、SP1まだ?9月に入ったよ〜
0828デフォルトの名無しさんNGNG
>>826
C++Builder入れたら、bcc5.6にパスが通ってるよ。
コマンドラインなどで、bcc32とだけ打ってバージョンを確かめるがよろし。
0829デフォルトの名無しさんNGNG
5.6はBCB6付属だけど5.6.1はどこ?
0830デフォルトの名無しさんNGNG
>>829
そそ。俺も5.6だったよ。もしかして>>825は某か?
0831デフォルトの名無しさんNGNG
@ECHO OFF

SET PATH=D:\Developer\bcc55\bin\; %PATH%
ECHO 環境変数をBCC5.5.1用に変更しますた(´-`)y~
0832デフォルトの名無しさんNGNG
>>739 よんだ?
0833デフォルトの名無しさんNGNG
>>831
え?それはなぜ?
5.6の方が良いのでは・・・?
そもそも、5.5からどう変わったのか分らない・・・
0834デフォルトの名無しさんNGNG
フレームワーク使わないで
分割ウインドウするにはどうすれば?
自分で分割すんの?
0835デフォルトの名無しさんNGNG
              ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) < SP1まだ〜?
             \_/⊂ ⊂_ )   \______
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        |  愛媛みかん  |/
0836デフォルトの名無しさんNGNG
age
0837デフォルトの名無しさんNGNG
BCB6でQt使おうとしたんですが、Qt.hppで多くのインライン関数が

inline QEventType __cdecl QEvent_type(QEventH* handle)
{
return QEvent_type(handle);
}

てな実装で無限ループに陥るんですけど、どう対処すれば良いのでしょう??
0838デフォルトの名無しさんNGNG
タスクバーのボタンを右クリックしたときのメニュを
変更する方法が分かりませぬ。
元のサイズ、最小化を無くしちゃいたいのだけど、どうすればいいのでしょう?
0839デフォルトの名無しさんNGNG
BCB6の最初から入っているindyを消して
indyサイトから落としたやつを入れることはできるの?
0840デフォルトの名無しさんNGNG
>>839
できる。コンポーネントの追加/削除は自由にできる。
少々面倒臭いが。
0841デフォルトの名無しさんNGNG
スレ違いだけど、鱈セレ1.3G/768MからPen4 2.53/DDR1Gにしたらようやく
BCBのコンパイルが軽快になった。

パソコンショップの店の人に「鱈セレで重いってどんなソフトですか?」と
質問されて、BCBだと答えたら知らないようだった。
0842デフォルトの名無しさんNGNG
>>841
そんな店員マハパンチだ!
0843デフォルトの名無しさんNGNG
>>841
不要になった鱈セレきぼんぬ。
0844デフォルトの名無しさんNGNG
BCB5で StringGrid を ダブルクリックした時に
DrawCellイベントを呼びたいのですが、DrawCellイベントの下記の引数のうち
(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)

TRect &Rect, TGridDrawState State の渡し方が分かりません。

どなたか分かられる方、教えて下さい。
0845デルファイの名無しさんNGNG
DrawCell"イベント"は、描画が必要になった時に勝手に呼ばれるもので、
意図的に呼ぶようなものじゃ無いと思えるのですが、
(ダブルクリックした時だけ書き直しても、他のウィンドウが被さったら消えてしまう)
具体的に何がやりたいのか、書いていただけます?
0846デフォルトの名無しさんNGNG
Controlsプロパティについてわからないことがあります。

Controls[i]->Nameでコントロールの名前が取得できますが、Controls[i]->ClassName()
ではオブジェクトインスタンスの型を表す文字列が取得できるはずなのに、実行すると
AccessViolationとなってしまいます。

なぜだかご存じの方いらっしゃらないでしょうか?
0847デフォルトの名無しさんNGNG
846です。自己解決しました。

ClassName()はShortStringという、BCBではあまり使われない型で返して
くるのが原因でした。

AnsiStringのコンストラクタで変換してやるとうまく動きました。
0848844NGNG
>>845
レスありがとうございます。
ダブルクリックしたセルの背景色を変更したいのです。
0849844NGNG
現在の状態は、
ダブルクリックしたセルにフラグをたてています。
そのフラグをみて背景色を決めるという処理を DrawCellの中に
書いているのですが、
ダブルクリック直後は、当然、 DrawCellイベントは発生せず、
セルを移動したら、ダブルクリックしたセルの背景色が変わるという
状態です。
0850デフォルトの名無しさんNGNG
Repaint?
0851844NGNG
>>850
Repaintされないのです。
0852デフォルトの名無しさんNGNG
Repaintって自分で呼ぶものなんだけど
0853デフォルトの名無しさんNGNG
あ、Invalidateの方がいいのかな?
それかAPIのInvalidateRectかも
0854844NGNG
>>853
Repaint → ×
Invalidate → ×
でしたが、
InvalidateRect で変更されました!
ありがとうございました。
0855デフォルトの名無しさんNGNG
あれ、Repaint駄目かな?
ハンドラの中で単にRepaint()とするとForm->Repaint()になっちゃうから、
Grid->Repaint()とすれば再描画してくれる(DrawCellが呼ばれる)はずだけど。

もちろん、この場合は一部を書きかえるだけだし、
Repaint()すると場合によってはGrid全体がちらつく(と思う)ので
範囲を指定してInvalidateRectでいいとは思う。
0856844NGNG
>>855
Grid->Repaint()でOKでした。Grid-> って書いてなかったです・・・
ごめんなさい、ごめんなさい、ごめんなさい。ひどいポカですね。
丁寧なレスありがとうございました。
0857デフォルトの名無しさんNGNG
AnsiStringとi(f)streamの関係でわからなくなっています。

istream、ifstreamからAnsiStringに文字列を読みとる時は、string型と
違い、CTRL+Zが押されるまで、改行コードも含めて読みとってしまい
ます。

これを、改行までを一区切りとして読みとる方法はありますでしょうか?
0858デフォルトの名無しさんNGNG
BCB4です。
マウスカーソルをオリジナルのもの(16色程度の動かないやつ)に変更したいのですが、
用意されてるエディタだとモノクロしかありません。
どうしたら良いでしょうか? なにから手をつけていいやら、分かりません。
0859デフォルトの名無しさんNGNG
>>858
カーソルエディタを探す。
0860デフォルトの名無しさんNGNG
Turbo Debuggerでクラスのメンバ変数をWatchするにはどうしたらいいですか?
0861デフォルトの名無しさんNGNG
カーソルエディタを探してLoadCursorファイルなんちゃらを使ったらできました。
thx
0862860NGNG
無理なんでしょうか・・・
0863デフォルトの名無しさんNGNG
>>860
Turbo Debugger関連の話ならここ行った方がいいと思う。
http://pc3.2ch.net/test/read.cgi/tech/1030493157/
0864860NGNG
>863
誘導thxです
0865デフォルトの名無しさんNGNG
>>864
もう移動したかもしれんが、例えば class Aのメンバ変数 i を見たければ
インスタンスを A a; で生成したとすれば
add watch で a.i[enter] と入力すればよい。
privateとか関係ないから。
0866デフォルトの名無しさんNGNG
濃淡画像(グレイスケール)のBMPファイルの画素(8ビット)を
取り出すにはどうすればいいでしょうか?
0867デフォルトの名無しさんNGNG
BITMAPのフォーマット調べれば?
ネットにもMSDNにもどこにでも転がってる。
0868866NGNG
>>867
すみません。。。見つけれなかったです。。。
0869デフォルトの名無しさんNGNG
>>866
TBitmap->Canvas->Pixels[int X][int Y]
0870デフォルトの名無しさんNGNG
TListView
で
ReadOnlyをfalseにして
クリックするとアイテムの文字列編集できるようになりますが
もっとレスポンス素早く(StringGridみたいに)やりたいのですが、
文字列編集モードに素早くするメソッドとかありますか?(EnterやF2ですぐにできるようにしたい)
あと、
サブアイテムも編集したいのですが無理ですかね?

0871デフォルトの名無しさんNGNG
ListBoxに表示されているデータを右クリックで選択して、
ポップアップメニューだしたいんですが、
どのようにしたらいいのでしょうか。
0872デフォルトの名無しさんNGNG
ヘルプでTListBoxのプロパティを見ると、
0873デフォルトの名無しさんNGNG
すんませんが、教えてください。
C++Builder5 Pro/Win2000です。
HELPを見るときに、プロパティやメソッドが別ウインドで表示されますが、そのウインドのサイズと表示位置を変更
しても、記憶してくれずにデフォルトに戻ってしまいます。なのでとても使いにくいです。
表示位置とサイズを記憶させる方法はありませんか。
直接プログラミングの質問ではなくてすいませんが、よろしくおながいします。
0874デフォルトの名無しさんNGNG
C++ Builder6って「.NET」とやらに対応してますか?
だったら買おうと思うんですが・・・

Builderってなんか評判悪いんで怖いんですよね・・・
0875デフォルトの名無しさんNGNG
対応してないよ

> 評判悪いんで

Σ(゚Д゚ )y-~~ マジか
0876デフォルトの名無しさんNGNG
>>875
>対応してないよ

Σ(゚Д゚ )y-~~ マジか
0877866NGNG
>>869
最初から出せよな。
サンキュ
0878デフォルトの名無しさんNGNG
>>875
じゃあもうBuilderは買う価値がないということでしょうか?
Delphiは対応してましたよね、確か。
0879デフォルトの名無しさんNGNG
そりゃ.NETやりたい人には、
今のBCBは価値ないのでは。
0880デフォルトの名無しさんNGNG
Delphiも7でやっと.NETに対応します。
Delphi7が出たらBCB7も出るのでは。
0881デフォルトの名無しさんNGNG
.NETよりも素で最新のDirectXがコンパイルできるようにして欲しい。
0882関係者NGNG
BCB7は.netに対応しません。
0883デフォルトの名無しさんNGNG
>>882
関係者信用ならん。盆明けにSP2出るとか言っといて出なかったし。
0884デフォルトの名無しさんNGNG
     /|  
   ヽ('A`)ノ (VS持ってるから、俺も>>881に同意しとこう・・・ 
     ( )    〜bor.dll配るのなんかイヤだし。)
    / ̄くく ̄ ./|
  /   ´´ / .|
  | ̄ ̄~~ ̄|´ |
  |    .  | ./
  | .     |/
   ̄ ̄ ̄ ̄
0885デフォルトの名無しさんNGNG
BCB6SP2出ないから英語版SP2入れたら
メニューの一部が英語になった
0886873NGNG
>>873だす
やっぱ誰も分からないってーことですか。
みなさん使いにくくありませんかぁ
0887デフォルトの名無しさんNGNG
>>886
BCB6にする。
0888デフォルトの名無しさんNGNG
確かに不便かもなあ、と思いつつ今見てみたら
いつのまにか位置と大きさ記憶されるようになってた。プロパティ一覧とかの別ウィンドウも。

BCBだけじゃなくてあの形式のヘルプ全部のようなので、Windows自体にそういう機能がついたのだろか。
最近入れたのはWin2KSP3とIE6とVS.NETだけど、そのどれかのおかげかも。
0889デフォルトの名無しさんNGNG
>>886
ぜんぜん使いにくくない。
つか、慣れた。
0890873NGNG
ちょっと調べてみますた。
winhlp32.exeのバージョンは、5.00.2195.3649  タイムスタンプは2002/07/13 04:13 です。
XP Proでもやってみたのですが、現象はWin2000環境と全く同じで、ウインド状態を保存してくれませんでした。
また自分の環境は、win2000SP3でOSは最新状態です。IE6.0 VS.NETも入っています。
なので、winhlp32.exeのバージョンアップで改良された訳では無いみたいです。
とりあえず、ウインドーの位置とサイズを定期的にチェックして変更するプログラムをつくりました。
なんか違うなぁとは思うのですが、とりあえず便利です。
どこかのレジストリに書き込めばいいのかなという気はしますが・・・
0891デフォルトの名無しさんNGNG
俺のほうがちょっと新しいな

2002/07/22 12:05
バージョン5.0.2195.4751
0892デフォルトの名無しさんNGNG
で、位置と大きさが.GIDファイルに書き込んであった。

(´-`).oO(最近、>>888の他になにか入れたっけな・・・)
0893デフォルトの名無しさんNGNG
ソケット通信なんですが、
Java側で

 ObjectOutputStream oout = new ObjectOutputStream(socket.getOutputStream());
 PrintWriter out = new PrintWriter(new OutputStreamWriter(oout, "SJIS"));
 out.println("hogehoge");
 out.flush();

と送って来て、それを受信しているんですが、
文字化けしてしまいます。

unicode変換とかが必要なんでしょうか?
0894デフォルトの名無しさんNGNG
TADOQuery->SQL->Textに3000ByteほどのSQL句を代入したら、
AccessViolationでたんですが、
文字数の制限とかありましたっけ???

ちなみにC++Builder5です
0895virtualNGNG
>>893
なぜObjectOutputStreamをつかってるののだ?
ObjectOutputStreamはヘッダをつける(Javaのオブジェクトをシリアライズするためのもなんで)からばけてるのでは?

OutputStream out = socket.getOutputStream();
PrintWriter writer = new PrinterWriter( new OutputStreamWriter( out, "SJIS" ) );
writer.println( "hogehoge" );
writer.flush();
ではだめ?
Unicode -> SJISへの変換は OutputStreamWriter( out, "SJIS" ) でなされていると思われ.
0896デフォルトの名無しさんNGNG
C++Builder5 ProのTQoeryで質問
指定した日時のデータを取得するためにをSQLに
select * from FastData where Dt=#09/30/2002#
って書くとキーワードの使用が無効ってエラーがでます、
select * from FastData where Dt = cast( '"2002/07/07"' as DATE)
ってやったらCASTはつかえませんってエラーがでます

どうやったら日時でデータをゲットできるのでしょうか?
0897デフォルトの名無しさんNGNG
>>896
TQueryね、失礼
0898デフォルトの名無しさんNGNG
>>896
DBの名前とバージョンを書いたら親切な人が
教えてくれるかもしれないよ。
0899デフォルトの名無しさんNGNG
『インターネットプログラミングプログラミング入門 C++Builder』
って本のソースをVisual C++ 6.0でコンパイルしたいんですが、
C++BuilderのプログラムをVisual C++に移行するって可能でしょうか?
0900デフォルトの名無しさんNGNG
>>899
その本の中身は知らないけど、あなたのスキル次第。
コンパイルは、ソースそのままでは絶対通らないでしょう。
コピペで楽しようと思ってるならあきらめた方がいい。

よく見ると「プログラミング」が二重になってるね。
0901899NGNG
色々やって見たのですが前半の方はリソースとか自作してソース書き換えて
何とかコンパイル通るんですが、中盤移行はかなりきついです。。
vcl.h とかVC++にあるとありがたいんですが・・。
もう少しやってみて駄目っぽかったらあきらめようと思います。

>よく見ると「プログラミング」が二重になってるね。
書き換えた時重複したようです・・(お恥ずかしい。。
0902デフォルトの名無しさんNGNG
著しく場違いなこと(もしくは既出)かも知れないが、
内蔵のタコみたいなコードエディタは外部エディタに変更出来ないのですか?
BCB5、BCB6
0903デフォルトの名無しさんNGNG
無料掲示板http://gooo.jp
0904デフォルトの名無しさんNGNG
>>902
ツールでテキストエディタを登録してなんとかやりくりして下ちぃ。
0905デフォルトの名無しさんNGNG
>>902
具体的にどうすれば良いのでしょう…?
0906デフォルトの名無しさんNGNG
TBitmapでグレイスケールのビットマップを扱うにはどのようにすればいいでしょか?
パレットのいじり方がよくわからなくて困ってます。
0907デフォルトの名無しさんNGNG
http://www.google.co.jp/search?sourceid=navclient&hl=ja&q=PixelFormat+%83O%83%8C%81%5B%83X%83P%81%5B%83%8B
0908デフォルトの名無しさんNGNG
>905
Borlandのページにはこう書いてあるけど、これはこれで使いにくい。
http://www.borland.co.jp/tips/cbuilder/cb009/onept_1.html#idx_3
レス数が900を超えています。1000を超えると表示できなくなるよ。