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

C++Builder相談室 Part10

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-5あたり。
0528デフォルトの名無しさんNGNG
>>522
いいわけ無いだろ。

C++Builderでデバッグする限り他のモニタツールは使えないんだよ。
0529デフォルトの名無しさんNGNG
>>527
じゃおまえの作ったソフトは仕事で使えないな。
0530デフォルトの名無しさんNGNG
>>528
C++Builderでデバッグしないか我慢すればいいじゃん。この話題終了。
0531デフォルトの名無しさんNGNG
C++Builderユーザーって致命的で根源的なバグを容認し
低性能なデバッガを気にせず使うのか。
そして一切の批判には蓋をする。なんかΩに似てるね。
0532デフォルトの名無しさんNGNG
夏はなついよね
0533デフォルトの名無しさんNGNG
今は都合が悪いと夏で逃げられるいい季節ですな。
0534デフォルトの名無しさんNGNG
>>533
夏厨って良い言葉だよね。
0535デフォルトの名無しさんNGNG
>>531
一部の意見を、C++Builderユーザーって纏めるなよ夏厨。
0536デフォルトの名無しさんNGNG
つーかBuilder自身のバグをユーザー側で議論して意味あんのか?
バグがありました。
↓
Borlandに報告
↓
終了
でいいだろ。
それとも割れ物だから報告できないのか?
0537デフォルトの名無しさんNGNG
>>536
割れ物ではなくて俺は正規ユーザーだから報告すべきなのか?
くだんのBBSのユーザーは割れ物を使っているから報告できないのかも知れんな。
あまり期待しないで待ってろ。もしかしたらUpdate#5が出るかもしれんな。
0538デフォルトの名無しさんNGNG
まさかDelphiは関係ないよな?>MMルーチン
0539デフォルトの名無しさんNGNG
>>538
知らんけど試してみな。
0540デフォルトの名無しさんNGNG
そのBBSめちゃ頭の悪いやり取りして無いか?
0541デフォルトの名無しさんNGNG
RTLってリビルドできるんだね。
誰かどう修正すればいいか教えて♥ (他人任せ
0542デフォルトの名無しさんNGNG
#define malloc(size) malloc((size==1048575)?1048576:size)
0543デフォルトの名無しさんNGNG
1048575限定だっけ?
0544デフォルトの名無しさんNGNG
こうだろ
#define malloc(size) malloc((((size)==1048575) || ((size)==1048574) || ((size)==1048573)))?1048576:(size))
0545デフォルトの名無しさんNGNG
malloc(size) malloc((size+15)&0xfffffff0)
0546デフォルトの名無しさんNGNG
>>545
ええー?
0547デフォルトの名無しさんNGNG
コンパイラのバク程度で騒いでいるのはガキ。
BCCは所詮バグだらけ。もちろんBCC以外のコンパイラもな。
0548デフォルトの名無しさんNGNG
騒ぐ必要が無いのはその通りだけど、
そもそもコンパイラのバグじゃないんだけど。
それさえ理解できないアフォはもう来なくていいよ。
0549デフォルトの名無しさんNGNG
>>548
字句解析時に1048575を9999999に取り違えるバグなんだよ。
0550デフォルトの名無しさんNGNG
VCL使ってれば関係ないのね、これ。
0551デフォルトの名無しさんNGNG
VCLでnew使わないのか?
0552デフォルトの名無しさんNGNG
別のルーチンが使われるってこと。
0553デフォルトの名無しさんNGNG
VCLでnewしたときとmallocしたときにバグが出ないことを確認したのかしてないのか
0554デフォルトの名無しさんNGNG
もちろんした。
0555デフォルトの名無しさんNGNG
Update #5 キタ━━━━(゚∀゚)━━━━ッ!!
0556デフォルトの名無しさんNGNG
一応釣られてやるか。マンドクセ。
http://community.borland.com/cgi-bin/surveys/thanx.cgi?cb6reg_updates_down
0557デフォルトの名無しさんNGNG
すみません、Builder5.0での環境の質問なんですが、
TListBoxで 例えば 項目がItemが四つあり、
通常Itemの上で左クリックすると、その項目が選択されますが、右クリックでも同じ動作は可能でしょうか?

MouseDownでItemAtPosで座標を取って、Selectedでtrueを試したところ、
MultiSelectがtrueになっていれば動作するのですが、
複数選択したくないのでfalseにすると「リストが範囲を超えていますと」エラーが出ます

どなたか良い知恵お貸しいただけますでしょうか?
無知ですんませんすんません(´・ω・`)
初心者ですすみません(´・ω・`)

前レス読んでみたら、こういう質問が少ないので、もしかしたらスレ違いかしらヽ(;´д`)ノ
0558デフォルトの名無しさんNGNG
> MouseDownでItemAtPosで座標を取って、Selectedでtrueを試したところ

これで別に問題なかったよ。どんなコード書いてるの?
0559デフォルトの名無しさんNGNG
ちゅうかエラーメッセージによると、単にItemAtPosの戻り値を範囲チェックしてないってだけか。
0560557NGNG
>>558
レスありがとうございます
コードは、めっちゃ簡略化すると

void __fastcall TForm1::ListBox2MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Button == mbRight){
int Index = ListBox1->ItemAtPos(Point(X,Y), true);
ListBox2->Selected[Index] = true;
}
}

こんな感じです
やはりMultiSelect = True の場合でしか動作しません。

初心者でごめんなさいごめんなさい
0561デフォルトの名無しさんNGNG
ItemAtPosは何も無いところでは-1を返す(第2引数がfalseなら項目数を返す)ので、
↓こうする

if (index >= 0 && index < ListBox1->Count)
  ListBox1->Selected[index] = true;
0562557NGNG
>>561さんを元にして修正しました
書き忘れましたが、ListBox2のItems内には、

あ
い
う
え

と入れておいています


if (Button == mbRight){
  int Index = ListBox1->ItemAtPos(Point(X,Y), true);
  if (Index >= 0 && Index < ListBox2->Items->Count )
   ListBox2->Selected[Index] = true;
}


ここで、 「 い 」を右クリックすると、「リストのインデックスが範囲を超えています(1)」

・・・(´・ω・`)

私もプログラム的に自信をもって挑んだので、ほんと原因不明なんです
MultiSelect = Trueにすると正常動作するし・・・(´・ω・`)

trueにして、Index以外のリストをfalseにするとか、アホなことしようかすぃら
0563デフォルトの名無しさんNGNG
>int Index = ListBox1->ItemAtPos(Point(X,Y), true);
ここは ListBox1 で、

>if (Index >= 0 && Index < ListBox2->Items->Count )
>ListBox2->Selected[Index] = true;
こっちは ListBox2 だけどあってんの?
0564557NGNG
>>563
うは・・・ミスりましたすみません
でも結果はやはり一緒でした

クリックに限らず、ボタンですっごく単純に

  ListBox2->Selected[0] = true;

これだけでも出てしまいました。

0565デフォルトの名無しさんNGNG
新規プロジェクトでその単純なコード試しても駄目なら、BCBがぶっ壊れてるのでは
0566557NGNG
>>565
や、やっぱりその結論に至りますよね・・・

どうもご迷惑おかけしました(´・ω・`)
ありがとうございます
0567デフォルトの名無しさんNGNG
ヘルプファイルってどうやって作るんですか?
0568デフォルトの名無しさんNGNG
TPageControlのタブの部分の色は変えられないのですか?
0569デフォルトの名無しさんNGNG
TTabSheet->Brush->Color
0570デフォルトの名無しさんNGNG
TCustomGrid::Paintはヘルプに
Paint メソッドは,グリッドが Windows 描画メッセージを受け取ったとき呼び出されます。
とありますが、この日本語相当するソースはVCLソースのどの部分のですか?
0571デフォルトの名無しさんNGNG
すいません、タブっていうかキャプションの部分です。
0572デフォルトの名無しさんNGNG
TTabSheet->Font->Color
0573デフォルトの名無しさんNGNG
すいません、キャプション部分の背景のことです。
0574デフォルトの名無しさんNGNG
OwnerDrawで
0575デフォルトの名無しさんNGNG
新規作成でUnitを作って、そこに新しいクラスを定義しても、
エクスプローラバーみたいなやつ(ツリービューでクラスとか関数とかが表示されるやつ)に
すぐに反映されません。

すでに表示されているクラス内で、ヘッダをincludeしてやると表示されますが、
意味なくinclude文を書いて消すのは面倒です。

何か良さげな方法を知りませんか?
0576デフォルトの名無しさんNGNG
クラスを定義する場合にはUnitを作らずに手作業で.hと.cppを
作るのが定石だよ
0577デフォルトの名無しさんNGNG
>>512

本スレ>>294 に既出だが単にprintfデバッグしたいだけなら
これで充分でないの?実行PCに開発環境を入れておく必要もないし

__fastcall TForm1::TForm1( TComponent* Owner) : TForm( Owner )
{
  ::AllocConsole();
}

void __fastcall TForm1::FormMouseDown( TObject*, TMouseButton,
  TShiftState, int nX, int nY )
{
  HANDLE hStdout = ::GetStdHandle( STD_OUTPUT_HANDLE );
  if( hStdout != INVALID_HANDLE_VALUE ){
    TCHAR Message[ 1024 ];
    DWORD dwLength = (DWORD)::wsprintf( Message, TEXT("%d, %d\n"), nX, nY );
    DWORD dwLengthWritten;
    ::WriteConsole( hStdout, Message, dwLength, &dwLengthWritten, NULL );
  }
}
0578デフォルトの名無しさんNGNG
>>577
printfデバッグするだけでそれだけコード書かなきゃいけないんでうすか?

そうとうめんどうですね

VC++のASSERT等を期待していたのですが、所詮BCBですねw
0579デフォルトの名無しさんNGNG
VC++を使ったらいいのでは?
0580デフォルトの名無しさんNGNG
>>578
おいおい、これは実装例だってば。
表示処理部分を自前printf関数にすりゃすむ問題でしょ
0581デフォルトの名無しさんNGNG
これなら1行
freopen("debug.log", "a", stdout);
0582デフォルトの名無しさんNGNG
C++ Builder 5.0 Update pack 1 を使い始めた者です。(VC++は慣れているが、BCBは初めてです。)
クイックスタートのTextEditorチュートリアルの作成から始めてみようと思いましたが、いきなりつまづきました。
コンポーネントパレットの表示がStandardページだけしかなく、しかも左上向きの矢印とFramesコンポーネントしかありません。
クイックスタートの図のように、多数のコンポーネントが機能別にグループ化されて並んでいるようにするにはどうしたら良いでしょうか。
どなたか教えて下さい。
0583デフォルトの名無しさんNGNG
↑
インストールユーザとログインユーザが違うとそうなる。

CDからレジストリのインストールをすると直る。
0584デフォルトの名無しさんNGNG
おお、ずばりその通りでした。解決しました。
ありがとうございます。神様です。
0585本田NGNG
>つーかBuilder自身のバグをユーザー側で議論して意味あんのか?

ある。

>バグがありました。
>Borlandに報告
>終了
>でいいだろ。
>それとも割れ物だから報告できないのか?

malloc()みたいなランタイムライブラリのバグなら、
ソースコードを持ってる人は自分でパッチつくって、
ボーランドや必要としている人にに送るといい。
0586デフォルトの名無しさんNGNG
>>585
> malloc()みたいなランタイムライブラリのバグなら、
> ソースコードを持ってる人は自分でパッチつくって、
> ボーランドや必要としている人にに送るといい。
議論じゃねえじゃん。
0587デフォルトの名無しさんNGNG
必要だよ
0588デフォルトの名無しさんNGNG
話題に上っていればパッチを作るだけのスキルを持った人の目に付く可能性が増える
0589デフォルトの名無しさんNGNG
個人レベルで対応できるならパッチ等の作り方を
議論するのは必要な人にとって意味のあることでは.
スキルのある人が指導してくれればなおさら.

0590デフォルトの名無しさんNGNG
TListViewにエクスプローラみたいにローカルにあるファイルの
アイコンを表示するものを作ってます。

TCustomImageList* imageList = new TCustomImageList(32,32);
TIcon* ico = new TIcon;

(HICON)SHGetFileInfo(fn.c_str(), att, &shfi, sizeof(SHFILEINFO), flg);
ico->Handle = shfi.hIcon;

imageList->AddIcon(ico);

delete ico;

ってな感じで、TCustomImageListに追加していって
TListViewのLargeImagesに指定しています。

http://up.isp.2ch.net/up/60d0659d3b4e.gif
ところが↑のように、Windows XPだと、フォルダのアイコンなどが
エクスプローラに比べてアイコンの影の部分が汚くなってしまいます。
これを綺麗にするには、どうすれば良いでしょう?
0591デフォルトの名無しさんNGNG
夏休みだからといって暴れてる餓鬼がいるな
0592デフォルトの名無しさんNGNG
>>591
お前みたいのがな。
0593デフォルトの名無しさんNGNG
こういう脊髄反射が夏ならではなんだよねえ。
0594デフォルトの名無しさんNGNG
with Sender.Canvas do
if Assigned(Font.OnChange) then Font.OnChange(Font);

ってC++Builderではどういうふうに書けばよいのですか?
0595デフォルトの名無しさんNGNG
TFont* font = Sender->Canvas->Font;
if (font->OnChange)
 font->OnChange(font);
0596590NGNG
すみません。いろいろ試してたら、

imageList->BkColor = clWindow;

というふうに背景色設定すれば綺麗になりました。
0597デフォルトの名無しさんNGNG
TStringGridのセルを点滅させることはできますか?
とりあえず、TThredで0.1秒ごとに再描画させてDrawCellで色をかえる
といった処理をしています。
0598デフォルトの名無しさんNGNG
>>597
ただそれだけのためにスレッドを作るの!?
かなり非効率でしょ…

Timerで直接TStringGridのCanvasに色を塗ったら?
0599デフォルトの名無しさんNGNG
QuorityCentrulにメモリエラーのレポート出しといたけど
あれは英語しかつかえない専用プログラムになってしまってようだね?
初めて使ったよ。
と言う訳で本当にバグレポートを送れたかどうか怪しいけど
一応出しといた。英語も適当だし上手く行ったか分らんけど。

0600デフォルトの名無しさんNGNG
そりゃBorlandにいるのは外人なんだから英語で書かなきゃ意味無いだろ
0601デフォルトの名無しさんNGNG
#include <iostream>
using namespace std;
int main()
{
AnsiString a = "a";
return 0;
}
をコマンドラインからコンパイルしたい
bcc32 hoge.cpp
なにをincludeすればイイのですか?
0602デフォルトの名無しさんNGNG
よく覚えてないけど
コンソール(VCL使用)用のプロジェクトを作ってみて
それを真似したら?
0603デフォルトの名無しさんNGNG
>>601
vcl.hもしくはsystem.hpp
さらにrtl.libをリンクする必要がある。

//includeディレクトリをgrepすれば必要なヘッダはわかるはず。
//そのままdstring.hをインクルードするとsystem.hpp使えと怒られるが(゚∀゚)
0604デフォルトの名無しさんNGNG
>>603
追加
iostreamを先にincludeすること
そうしないと
AnsiString str = "hoge";
std::cout << str << std::endl;
でエラーになる
0605デフォルトの名無しさんNGNG
>>604
BCB5を使っているのですが、rtl.libがありません。

BCB6ではあるのですか?
0606デフォルトの名無しさんNGNG
>>605
6しか持ってないからわからないが./Lib/Releaseか./Lib/Debugに入ってないか?
BCB5じゃなくてBCC5.5.1ってオチだったら知らん
0607本田NGNG
>BCB5を使っているのですが、rtl.libがありません。
少なくともBCB6と同じディレクトリには見つからない。

>BCB6ではあるのですか?
ある。

0608デフォルトの名無しさんNGNG
TCppWebBrowserを使い、HTTPアプリと接続してみたところ、
あるマシンではググルのページ検索サービスにつながってしまいます。

これはどうしたことでしょう。
0609デフォルトの名無しさんNGNG
あらまあ。どうしたことでしょう。
0610デフォルトの名無しさんNGNG
あらあら奥さん。お気の毒ですわね〜
0611デフォルトの名無しさんNGNG
HTTPアプリと接続ってどゆこと?
0612デフォルトの名無しさんNGNG
>>611
HTTPサーバみたいなアプリで、HTML文書をリターンする。
0613デフォルトの名無しさんNGNG
それをNavigateしたらぐぐるのページが表示されたとゆうことかな
0614デフォルトの名無しさんNGNG
>>613
ググルのページですが、ググルのIPサーチページみたいな。

XXX.XXX.XXX.XXX ページを探しましたが見つかりませんでした、みたいな。
で、直リンテキストみたいなのが貼ってあって、それをクリックするとHTTPアプリにやっと接続する。
0615デフォルトの名無しさんNGNG
意味和漢ねー
キャプチャしてうぷろだにでもうぷしろよ
0616デフォルトの名無しさんNGNG
>>614
ふむふむ。

いやもう僕にはさっぱりですな '`,、(´∀`) '`,、
0617デフォルトの名無しさんNGNG
BCB9は?
0618デフォルトの名無しさんNGNG
TNMPOP3で新着メールの判断方法を教えてください
0619デフォルトの名無しさんNGNG
やだ
0620いなむらきよしNGNG
僕、奇形(*^_^*)
0621デフォルトの名無しさんNGNG
夏だねぇ〜
0622デフォルトの名無しさんNGNG
IndyのPingはどこにありますか?
0623622NGNG
TIdIcmpClientにありますた。
pingで取れる以上の情報をとる手段を教えて欲しいで津。
0624デフォルトの名無しさんNGNG
ポートスキャソ
0625デフォルトの名無しさんNGNG
TXMLDocument
ってどうやって使うの?
0626デフォルトの名無しさんNGNG
IndyではSubnet Maskは分かりませんか?
0627608NGNG
>URL 192.168.2.200に関する情報は見つかりませんでした。
>
>URLが正しい場合は、ここから192.168.2.200を開いてみてください。
>"192.168.2.200"を含むページの検索
↑
こんなページが開いてしまいます。
で、リンクをクリックしてやっとHTTPアプリに繋がる。
何ででしょうか。
■ このスレッドは過去ログ倉庫に格納されています