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

C Builder相談室 Part3

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-5あたり。
0002デフォルトの名無しさんNGNG
過去スレ
C++Builder相談室
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=969458279
新C++Builder相談室(C++Builder相談室 Part2)
http://pc.2ch.net/test/read.cgi/tech/997074601/

姉妹言語スレ
Delphi相談室その3
http://pc.2ch.net/test/read.cgi/tech/1010153466/
0003デフォルトの名無しさんNGNG
関連サイト
公式サイト
http://www.borland.co.jp/cppbuilder/
builder-ML 過去ログブラウザ
http://leed.issp.u-tokyo.ac.jp/~takeuchi/builder/browse.cgi
C++Builderのお部屋(Tips系)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/
C++Builderによるプログラミング(Tips系)
http://market.agr.tottori-u.ac.jp/ken/
Delphian World(コンポーネントライブラリ)
http://home1.infonia.ne.jp/~delphian/delphi/
C++Builder Bugs
http://www2.justnet.ne.jp/~tyche/bcbbugs/index.html
Borland C++Builder最新リンク2001(リンク集)
http://www2.famille.ne.jp/~akio1998/l_cpb.html
0004デフォルトの名無しさんNGNG
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | <  >>1 C Builderって何
   \|   \_/ /  \_________________
     \____/
   ______.ノ       (⌒)
  //::::::::|-、 ,-/::::::ノ ~.レ-r┐
/ /:::::::::::|  /:::::ノ__ | .| ト、
| /:::::::::::::::| 〈 ̄   `-Lλ_レ′
レ::::::::::::::::::|/::: ̄`ー‐---‐′
0005デフォルトの名無しさんNGNG
BCB5で質問!
0006デフォルトの名無しさんNGNG
( ´_`) (´_` ) 人いないね。 ウン。
         あげとこか。  ウン。
0007デフォルトの名無しさんNGNG
( '_') CPUウィンドウでJP命令見るとJMPって表示されるんだよ。 
    ('_' ) へー。
0008デフォルトの名無しさんNGNG
( '_') CPUウィンドウでFIMUL dword ptr〜命令見るとFIMUL word ptr〜って表示されるんだよ。 
    ('_' ) へー。

0009( '_')NGNG
・・・。
0010( '。')NGNG
( '_') CPUウィンドウで・・・
    ('_' ) へー。
0011( '。')NGNG
( '_') CPUウ・・・
    ('_' ) へー。
0012( '。')NGNG
( '_') C・・・
    ('_' ) へー。
0013( '。')NGNG
( '_') ウザイ?
    ('_' ) ウン。
0014デフォルトの名無しさんNGNG
スレタイトル間違えるとこうなると言う見本。
今度からは書き込みボタン押す前に5秒以上確かめろ。
00151NGNG
              ∧_∧  〔^^〕
               _,( ´Д`)⌒ i  |
          (⌒ ー  一 r.、!  〉
           ヽ弋 。 人 。 イ(` ー'
           〔勿\     ヽ
               )  r⌒丶 )  ドカ
     ドカ   ドカ  /   !  |'´
       ドカ    /   /|  |‖ ドカ
             (    く  !  ||‖  ドカ
           ドカ   \  i   | ‖|‖|
            ,__>  ヽヽ从/∧∧
            ⊂⌒ヽ从/ つ ゚д゚) ←>>14
0016(ΦωΦ)NGNG
( '_') MFCまみれで・・・
    ('_' ) ヘー
0017デフォルトの名無しさんNGNG
>>7,8
再現しないが、どうした?
0018( '。')NGNG
( '_') 直ってるみたいだね。
    ('_' ) ウソツキ。
0019デフォルトの名無しさんNGNG
ほかにはないのか? >> 17

0020( '。')NGNG
( '_') JMP・Jcond・LOOP系の命令が消えちゃうバグもあるんだ。
    CPUウィンドウの表示のバグじゃなくて本当に消えちゃう。
    もちろん最適化で省かれるんじゃなくて、絶対必要な部分なのに消えちゃう。
    でも原因がはっきりしないんだ。

    判ってるのはJMPのあとに現れる最初のジャンプ系の命令が消えることぐらい。
    それも↑方向のショートレンジのJMPを置くと起こりやすいみたい。
    でも条件はこれだけじゃないみたいで、再現したりしなかったり。

    でももう直ってるかな?今までの全部BCB3の話。
    早くお金ためてアップグレードしなきゃ。


    ('_' ) 長いよ。
0021( '。')NGNG
( '_') 忘れてたけどJMP先がラベルで指定してある場合ね。
    JMP $+xxに置き換えたら直るんだ。

    ('_' ) もう寝ようぜ。
0022( '。')NGNG
( '_') あれ?BCB6申し込んだらBCB5貰えるのって今日までだ。
    まだお金ないよ。

    ('_' ) 寝れ。
0023( '。')NGNG
( '_') 間違えた。$+xx に置き換えるのは消えちゃうほうね。
    置き換えると消えなくなるんだ。

    ('_' ) 氏ね。
0024デフォルトの名無しさんNGNG
BCB3 かぁ。そんな古いの今頃話題にされてもなぁ。
0025( '。')NGNG
( '_') 僕たち時代に取り残されてるみたいだね。

    ('_' ) 元気出せよ今度こそアップグレードするんだろ?
0026( '。')NGNG
( '_') でも貧乏学生に\36,750はきついね。

    ('_' ) おまえこないだ中退したろ。
0027( '。')NGNG
( '_') 4時だね。寝よう。

    ('_' ) 結局今日はほとんど人いなかったな。
0028デフォルトの名無しさんNGNG
( '_') 4時半だね。

    ('_' ) ひきこもりの俺らには関係ないさ。
0029デフォルトの名無しさんNGNG
4万円くらい、バイトして稼ぎなさいな。
0030( '。')NGNG
( '_') おはよう。寝てる間に2レスだね。

    ('_' ) こんな時間に覗くなよ。テレホーダイなんだから。
0031( '。')NGNG
( '_') バイトと言えば遺跡発掘のバイトしたことあるよ。

    ('_' ) ゴッドハンドはいなかったけどな。つか回線切れって。
0032( '。')NGNG
( '_') あれ、12時間経ってるのに誰も来なかったんだね。

    ('_' ) Delphi相談室とC++相談室あるしな。
0033( '。')NGNG
( '_') BCB5の無料期間終わっちゃたね。6がバグだらけだったらどうしよう。

    ('_' ) BCB3でGO!だな。
0034デフォルトの名無しさんNGNG
ヘルプとヘルプ内のサンプルを死ぬほど充実して欲しい。
ユーザーのコンポーネントを置くフォルダを規定して欲しい。
0035デフォルトの名無しさんNGNG
BCB3 もバグだらけだと思いますが?
よくそんな環境で我慢しているね。
短い人生を無駄遣いするのが趣味ですか?
0036( '。')NGNG
( '_') Borlandのサイトで新機能のヘルプが貰えるみたいだよ。

    ('_' ) 金が貯まるまでそれでも眺めてるか。
0037( '。')NGNG
( '_') 案内よく見たら動作環境がPentiumII/400MHz以上だってさ。

    ('_' ) あと67MHz足りねーな。
0038TabSheetについてNGNG
PageControlに動的にTabSheetを作成して、
いらなくなったTabSheetを破棄したいのですが

delete PageControl->ActivePage;

とやってOKなんでしょうか?
もっと気の効いたメソッドとかあるのかと思って質問させてもらいました。

前スレ966と重複書き込みです。すみません<m(__)m>
0039( '。')NGNG
あ・・・寝ようと思ったら上がってた。2日ぶりの浮上だね。

>>38
良いと思いますよ。
要らなくなったコンポーネントは deleteで
破棄してしまってOKです。
後処理なんかもデストラクタでしてくれます。
0040( '。')NGNG
あっ、あと気の利いたメソッドというのは無いと思います。

ですのでやはり delete PageControl->ActivePage で良いんじゃないでしょうか。
0041デフォルトの名無しさんNGNG
なんですかこのスレは!
スーパーハイソサエイティーハッカーのY.K氏の許可を得ているのですか?
age
age
0042TabSheetについてNGNG
>>39-40
ありがとうございました。安心して眠れます。^−^


0043デフォルトの名無しさんNGNG
#include <Filectrl.hpp>
で、
DirectoryExists(hoge)が、
プロジェクト>オプション にて、
「実行時パッケージを使って構築」のチェックを外して、メイクするとリンクエラーになります。
外部ライブラリを参照しない、単独exeにしたいんだけど、どうしたらいいですか?
0044デフォルトの名無しさんNGNG
>>43
ほんとだリンカエラー出るね。
合ってるか分からんけど *.bpr 開いて
<LIBRARIES value="Vcl50.lib vclx50.lib"/>
<SPARELIBS value="Vcl50.lib vclx50.lib"/>
って変更してみ。一応リンカエラーでなくなった。
004543NGNG
>>44
すげ〜、できた。
多謝
0046_NGNG
GUIで延々と処理を繰り返すプログラムを作るとメニューや×ボタンが
効かなくなるのですが、どうすればいいでしょうか?
0047デフォルトの名無しさんNGNG
Application->ProcessMessages()
とか、スレッド使うとか。
0048_NGNG
>47出来ましたー。
ありがとうございます^^;
0049デフォルトの名無しさんNGNG
>>47

それやると、やっぱり処理速度って落ちるよね。
ループとかしている方のメイン処理の。

Application->ProcessMessage()を入れないと
CPU100%使い切ってるのに、入れてやると
多くても70or80%くらいなんだよねぇ。

if(loopCount % 100 == 0) {
Application->ProcessMessage();
}

とかやるべきかねぇ?
0050デフォルトの名無しさんNGNG
>>49
じゃあスレッドで。
0051デフォルトの名無しさんNGNG
起動時に前回のプロジェクトが読み込んだりできる設定ってないでしょうか?
005249NGNG
>>50

やっぱ、パフォーマンス求めるならそうなるよね。
1度だけ、見よう見まねでスレッド使ったことがあるけど、
なんだか使いづらかった。
こんな程度の腐れは逝って良しですね。。。。
0053デフォルトの名無しさんNGNG
if(loopCount % 100 == 0) {
Application->ProcessMessage();
}
は良く使う手だよ。
プログレスバーの操作もその中にブッチこむよ。
0054デフォルトの名無しさんNGNG
使用許諾コードって貰わなくても問題ない?
メールアドレスとか名前とか取られるのがやなんだけど。
0055デフォルトの名無しさんNGNG
そんなに某が信用できないのなら今すぐここから出て行け
0056デフォルトの名無しさんNGNG
うるせー、厨某!
0057デフォルトの名無しさんNGNG
C++Builder 5 で外部のエディタを使ってコードを編集しています。
外部のエディタでソースを保存してBuilderに戻ると、
--------------------------------------------------
モジュールXXXXXXXのタイムスタンプが変更されました。
読み込みなおしますか?
--------------------------------------------------
と確認のダイアログが出るのですが、このメッセージを出さないようにする方法はありますか?
自動的に読み込みなおすようにしたいのです。
0058デフォルトの名無しさんNGNG
DirectXを使わずにピクセル単位で高速にビットマップを描画する方法
はないでしょうか?
Canvas->Pixels[x][y]=TColor;のループだと非常に遅い感じです。
0059デフォルトの名無しさんNGNG
>>58
ScanLine使え
0060デフォルトの名無しさんNGNG
質問です。

TMemoコンポーネントを使ってるんですが、
Lines->Add(ホゲホゲ)って文字列を追加していくと、
最後の改行の影響かなんかで、空白行が発生するんです。

これを無くすような文字列リストの追加方法を教えてください。

BCB5です。
0061デフォルトの名無しさんNGNG
挙げて
0062デフォルトの名無しさんNGNG
>>60
改行入れられたくないなら、
Memo->Text = Memo->Text + hogeじゃダメ?
0063デフォルトの名無しさんNGNG
>>62 ありがとうです。

文字列リストへAdd(ほげ)、Add(ほげ)…ってやった後に、
Text+=ちょめってやったら、
***********
ほげ改行
ほげ改行
ちょめ
***********
ってなるのかな?

素人おしえてくんスマソ。

自分でやってみます。
006463NGNG
自己レスです。

できました。

for(int i=0; i<10; i++) {Memo1->Lines->Add("これは中間行");}
Memo1->Text = Memo1->Text + "ここが最後の行";

これで最後の改行がきえました。

サンキュウデス。
0065デフォルトの名無しさんNGNG
CheckListBoxってItemsで文字列変更するとリークしない?
CodeGuardに補足されるのだけど。
0066デフォルトの名無しさんNGNG
>>65
http://homepage1.nifty.com/cosmic/delphi/tips_vcl.html#checklistboxbug
0067デフォルトの名無しさんNGNG
>>66
ありがとう。試してみたけど駄目だった。
こんな変なコンポーネント使うのも恐いので、他のもので代用することにした。
しかし、Delphi4で修正されたものがどうしてBCB5に残ってるのか。
0068デフォルトの名無しさんNGNG
>>67
D4でも直ってないし。
0069デフォルトの名無しさんNGNG
メモ帳から文字列を取り出して在る特定の
文字列を高速に別の文字へ置換したいのですが、

 AnsiString str;   // 文章
 AnsiString oldstr; // 置換対象の文字
 AnsiString newstr; // 置換後の文字
 int pos;      // 削除指定 先頭場所
 int length = oldstr.Length(); // 削除指定 長さ
 while ((pos = str.Pos( oldstr )) != 0)
 {
  str.Delete( pos , length );
  str.Insert( newstr , pos );
 }

この方法だと、文章50万文字中に置換対照の文字が
5000〜10000程あると、如何しても何十秒もかかって
しまうのですが、何か良い方法は無いものでしょうか?
0070デフォルトの名無しさんNGNG
>>69
素直に、StringReplace使えば?
0071デフォルトの名無しさんNGNG
>69
ほれ。
str = StringReplace(str, oldstr, newstr, TReplaceFlags()<<rfReplaceAll);
0072Delフサギコ ◆zE1iiRdQ NGNG
>>69
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < 文字列置換のコツがわかるかも
  UU"""" U U    \_______________

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1015685238

最初に出力するoutStrを用意して
SetLengthで予測される十分な長さを確保して
strからoutStrにコピーするのがいいです。
0073デフォルトの名無しさんNGNG
単にファイルにバイナリで書いた配列データを読みたくて
__finally使った下のコードで

[C++ 警告] xx: W8070 関数は値を返すべき って言われたんだけど
これは例外が起きた時に帰り値が不定になるって事だよね?
でも、じゃどう書けばいいの?

long *getBin(char *fname)
{long *mem;
 FILE *fp=fopen(fname,"r");
 if(fp==NULL) return 0;
 try {
  if( 0!=fseek(fp, 0, SEEK_END ) ) return 0;
  long size=ftell(fp);
  size=(size+3) &(-4);
  if( 0!=fseek(fp, 0, SEEK_SET ) ) return 0;
  mem =(long *) malloc( size );
   fread(mem,size/4,4,fp);
  return mem;
 }__finally{fclose(fp);};
}

007473NGNG
あ、途中の"r" は"rb"です
0075デフォルトの名無しさんNGNG
>>73
つーかそれ以前にBuilderは関数の途中でreturnしたら
__finally内は実行されないのでそのコードははげしく問題あるぞ。
007673NGNG
>>75 え? でもステップ実行したらちゃんと fcloseも実行しましたけど?
 気になって今、fcloseで改行入れてブレークポイントかけたらちゃんと 停止しました
007775NGNG
>>76
あれ?そうなの?
バージョン3か4の頃は通過しなかったんだが。
改良されたのか。古い情報でスマソ
007873NGNG
そうなんですか>>75

Delphiだと 単に exit するだけだから、 こういう処理スタイルでいいんだけど

C++とcライブラリの組み合わせで __finally って案外と使い難いですね。
・・・だから最初からfinallyが導入されなかったのかな
007975NGNG
>>78
たしかにC++だと__finallyよりauto_ptr等のように
スタックの巻き戻しでやるのが一般的かな。
とりあえず>>73のコードは return mem; を __finally の外に
書けば Warning は消えそうな気がする。
コンパイラの警告が __finally に完全対応していないのかな?
008073NGNG
>>79 あ!  何か return が2重に実行されそうな感じがして試してなかったけど
  __finally の下に return 0; 書いたら 警告はきえたし、ちゃんと動いた。
ありがとう。

cのライブラリだけだから例外が起きる可能性は無いと思うんだけど、そこまでは
コンパイラは判らないんだろうね
008173NGNG
スタックの巻き戻しを使う方式に書き換えてみた。
 たしかにコッチの方が __finally よりスッキリするみたい

long *getBin(char *fname)
{long *mem=0;
struct DFILE{
FILE *fp;
DFILE(char *n) {fp=fopen(n,"rb");};
~DFILE(){ if(fp){fclose(fp); };}
}f(fname);

if( 0!=fseek(f.fp, 0, SEEK_END ) ) return 0;
long size=ftell(f.fp);
size=(size+3) &(-4);
if( 0!=fseek(f.fp, 0, SEEK_SET ) ) return 0;
mem =(long *) malloc( size );
fread(mem,size/4,4,f.fp);
return mem;
}
0082デフォルトの名無しさんNGNG
vector<vector<AnsiString> > Table;
で、2次元配列をソートする方法ってありませんか?

0083デフォルトの名無しさんNGNG
Memoコンポの背景に画像を表示したいのですが、可能ですか?
0084デフォルトの名無しさんNGNG
>>82
どのようなソートを望むのだ。
008582NGNG
Table[i][j]で、iを列・jを行としたときに、
n番目のiをソートキーとして、行単位にソートしたいです。
0086Delフサギコ ◆zE1iiRdQ NGNG
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡< できると思いまフ>>83
  UU""" U U   \_______________
とりあえず
TCuteMemoを利用するなり
0087デフォルトの名無しさんNGNG
>>81
fseekの前にfpのNULLチェックしないの?
それと余計なセミコロンは癖ですか?
0088デフォルトの名無しさんNGNG
エラーチェックするなら、ついでに fclose の前に fflush をやって戻り値をチェックすべし
0089通り掛かりNGNG
>>58
こんなのでいかがですか。
void __fastcall TForm1::FormPaint(TObject *Sender)
{
char bmih[sizeof(BITMAPINFOHEADER)+4*256];
unsigned char Pixels[256][(256+3)/4*4];
BITMAPINFOHEADER *lpbi=(BITMAPINFOHEADER *)bmih;

lpbi->biSize=sizeof(BITMAPINFOHEADER);
lpbi->biWidth=256;
lpbi->biHeight=256;
lpbi->biPlanes=1;
lpbi->biBitCount=8;
lpbi->biCompression=0;
lpbi->biSizeImage=256*256;
lpbi->biXPelsPerMeter=0;
lpbi->biYPelsPerMeter=0;
lpbi->biClrUsed=0;
lpbi->biClrImportant=0;

RGBQUAD *lpQuad=((LPBITMAPINFO)bmih)->bmiColors;

for (int i=0;i<256;i++)
{
lpQuad[i].rgbRed =(unsigned char) i;
lpQuad[i].rgbGreen =(unsigned char) i;
lpQuad[i].rgbBlue =(unsigned char) i;
lpQuad[i].rgbReserved =0;
}

for(int i=0;i<256;i++)
{
for(int j=0;j<256;j++)
{
Pixels[i][j]=(unsigned char)j;
}
}
SetDIBitsToDevice(Canvas->Handle,0,0,256,256,0,0,0,256,Pixels,(LPBITMAPINFO)lpbi,DIB_RGB_COLORS);

}
0090デフォルトの名無しさんNGNG
AnsiString testfunc()
{
 AnsiString test = "abc";
return test;
}

main()
{
 AnsiString str;
 str = testfunc();;
}

というようにやった時strは元のtestがスコープ外に出てしまっているので
中身が不定になる可能性があるのでしょうか?
それともかならずstrの中身はabcになるのでしょうか?
0091デフォルトの名無しさんNGNG
>>90
大丈夫。だと思う。
VCLのソースをみた訳じゃないからなんとも言えないけど、
常識的な文字列クラスなら普通大丈夫。
0092デフォルトの名無しさんNGNG
BC++B6でboost::regexをmakeした人いる?
どうやればいいの?
0093デフォルトの名無しさんNGNG
>>90
常識的な文字列クラスなので、大丈夫。
0094デフォルトの名無しさんNGNG
>>85
行と列が逆なら簡単なんだけど、それじゃだめ?
009585NGNG
>>93
それでも良いです。
教えてください。
009695NGNG
>>94
の間違いでした。
0097デフォルトの名無しさんNGNG
( ゚д゚)σ)´Д`)
0098デフォルトの名無しさん NGNG
StringGridの固定セルをクリックできるようしたいんです。
できますか?

009994NGNG
ファンクタ作って渡せばいいよ。
コンパイラ通してなから間違いがあるかも知れないけど…。

typedef std::vector<AnsiString> StrVec;

class compare_by_nth : public std::binary_function<const StrVec&, const StrVec&, bool>
{
int i_;
public:
compare_by_nth(int i) : i_(i) {}
bool operator<(const StrVec& a, const StrVec& b) const {return a[i_] < b[i_];}
};

std::vector<StrVec> mat;
// mat...

std::sort(mat/begin(), mat.end(), compare_by_nth(1));

詳しいことはSTLスレで聞いて。


0100デフォルトの名無しさんNGNG
>>99
これでは一次元のvectorのソートじゃない?質問は二次元のvectorだった
ような気がするけど。
0101デフォルトの名無しさんNGNG
>>98
マウスクリックを感知できませんか?
010299NGNG
まちがえた。operator()ね。

>>100
1次元だったらstd::sortだけでできるじゃん。AnsiStringって<で比較できたよね?自信ないけど。
0103デフォルトの名無しさんNGNG
>>102
なるほど。std::vector<StrVec>という所で既に二次元になっているわけか。
ファンクタ作る所なんか、C言語のqsortを彷彿とさせますね。
0104デフォルトの名無しさんNGNG
>>102
<で比較すると、単純なバイトレベルでの比較となるそうだからOKじゃない?
ロケールまで入れるとAnsiCompareを使用。ほとんど意味無し。
0105デフォルトの名無しさんNGNG
http://www.sfdata.ne.jp/windev/cbuilder/
0106デフォルトの名無しさんNGNG
複数の画像をgifアニメのように
交互に表示するには、どうすれば良いでしょうか?
0107デフォルトの名無しさんNGNG
>>106
CppWebBrowserにNavigateメソッドでアニメーションGIFを読み込ませるw

色々方法があるから何とも言えん。
0108デフォルトの名無しさんNGNG
ここと>>105のMLへのマルチポストが多いね。
0109106NGNG
>>107
回答ありがとうございます。
そんなことが出来るなんて知りませんでした。
やっぱりbuilderって便利ですね。
0110107NGNG
>>109
(´д`).。oO(いや、アニメーションさせるためだけにIEコンポーネント使うのはメモリ消費量とかから見てどうかと・・・)
0111デフォルトの名無しさんNGNG
BCB6を先日買ってきたんですが、
アクションマネージャーの使い方がよくわかりません。

アクションマネージャーで作成したアクションの
プロパティを変更したい場合、どうやって指定したらいいのだろう・・・。

その方法か、参考になるページがあれば教えてください。
よろしくお願いします。
0112デフォルトの名無しさんNGNG
BCB5で
出力される exe のファイル名を設定するには
どうすればいいですか?
.bpr をメモ帳で開いて
<PROJECT value="ここ.exe"/>
を書き換える以外の方法で、おながいします。
0113デフォルトの名無しさんNGNG
>112
プロジェクト名を変える。
0114106NGNG
>>110に先日教えていただいた方法で試してみたのですが、
すでに指摘された欠点もありますし、
ファイル内にうまく組み込めなかったので、
何か他の方法を教えて頂けないでしょうか?

どうにかして、1秒おきに2枚の画像を
切り替えて表示する動作を実現したいのですが、
そのような方法をどなたかご教授ください。
0115デフォルトの名無しさんNGNG
>>114
2個のImageを重ねて置いて、1秒おきにVisibleをtrueにしたりfalseにしたりする。
0116106NGNG
>>115
あ、その方法がありましたか。
1つのオブジェクトをいじる事しか考えていませんでした。
どうもありがとうございました。
0117デフォルトの名無しさんNGNG
5から6へ移行してトラブルみたいなのはないですか?
0118デフォルトの名無しさんNGNG
           ρ(´-`ρ)
      ★BCB★
(σ´ー`)σ
0119デフォルトの名無しさんNGNG
BDEのTQueyを使って、パラメータを使用してデータを登録する場合に,
charのフィールドにNULLを登録するのはどうするの?
以下のやり方だと0が入るのですが

TQuery *sql;
(省略)
sql->SQL->Text = "INSERT INTO TBL ( FLD) VALUES ( :DAT)"
sql->Params->ParamByName( "DAT")->AsString = NULL;
sql->ExecSQL();

0120無責任だがNGNG
AsString ではなく Clear(); では? >>119

0121デフォルトの名無しさんNGNG
Clear(); だと項目"DAT"の型がわかりませんってエラーが出ますが・・・
0122デフォルトの名無しさんNGNG
>>121
「VALUES ( :DAT)」って、これでいいのかなぁ?
0123無責任だがNGNG
じゃあ ->DataType=ftString; を付けてみたら?

なにせ問合せでパラメータは使うけど挿入でそんな事した事ないや。
BDE なら sql->Insert();して sql->Fields を使うのがなんと言っても簡単だし
0124119NGNG
>>123
おぉ、行けました。
Clear();だけなら型がわからんから指定しとけってことだったのかぁ
さんきゅです
0125デフォルトの名無しさんNGNG
>>123
言いえて妙。

"INSERT INTO TBL ( FLD) VALUES ( :DAT)" なんて
文字列で SQL文を書いてしまうと、
せっかくのコンパイラのチェック機能がスルーされてしまうし。
…ってことかな?

   ヽ(;´Д`)ノ      アレ ?
     ( ____ )
@== > = >==
0126デフォルトの名無しさんNGNG
builder4のコンソールウィザードでプログラムを実行すると、
MS-DOSプロンプトで結果が表示された後すぐにウィンドウが閉じてしまうのですが、
閉じないようにするにはどうしたらいいのでしょうか?
MS-DOSのプロパティで「プログラム終了時にウィンドウを閉じる」のチェックは
はずしてみましたが駄目でした。
0127デフォルトの名無しさんNGNG
>>126
#include <conio.h>
int main()
{
  ...
  ...
  getch();
  return 0;
}
0128デフォルトの名無しさんNGNG
>>126
#include <cstdlib>
using namespace std;
int main()
{
..
..
system("pause");
}
0129デフォルトの名無しさんNGNG
>>126
int main()
{
  ...
  ...
  while(1)
   ;
}
0130デフォルトの名無しさんNGNG
>>127,128,129
(?∀?)ドレ?
0131デフォルトの名無しさんNGNG
あのの、パソナル版のアカデミ版ってないんですかぁ?
0132デフォルトの名無しさんNGNG
質問は元気よくageて言おう。
どれ、おいちゃんがageといてやろう。
0133デフォルトの名無しさんNGNG
BCB6ってば、更にサイズがでかくなってるね。
何も書かなくても450kbか。
0134デフォルトの名無しさんNGNG
>>130
>>127,128がいいと思う。129はブレークポイントを仕掛けておかないと
止まらなくなって(゚д゚)マズー。
0135デフォルトの名無しさんNGNG
>>134
>>126-130

漏れは、DOS窓を起動してから
ProjectHoge.exe [Enter] していますが、何か?

標準出力に何かを出力するアプリケーションなら、
リダイレクトしてファイルに採っておけばよいし。
0136デフォルトの名無しさんNGNG
>127-129 134 135
出来ました。
ありがとうございます。
0137Ð ë á t h ¹³NGNG
インラインアセンブラで↓のようなコードを書くと、×の行でシンタックスエラーが出ます。

struct TValue
{
  int Value1;
  int Value2;
};

asm
{
  MOV  [ESI+.Value1],EAX         //○
  MOV  [(TValue PTR ESI).Value1],EAX //×
}

STRUC〜ENDSで構造体を定義すると×の行もエラーは出ないのですが、
そうするとC++のほうで、その構造体が使えなくなります。

○の方法だとオペランドサイズのチェックをしてくれないので
どうしても×のようにチェックしてくれる方法を使いたいんですが、
何か方法(×の行のエラーの出ない書き方とか)はないでしょうか。
0138無責任だがNGNG
>>137
そういうふうにしたい場合は、H2ASH (使い方はTSM_UTIL.TXTに )で構造体を変換して
それをインクルートするのが普通じゃないかな

  MOV  [ESI+.Value1],EAX のような使い方だと、それはBCC32でコンパイルされると
  MOV  [ESI+0],EAX になってしまう
0139Ð ë á t h ¹³NGNG
>>138
ありがとうございます。そんなのがあったんですね。
なぜかうちのBCBにはH2ASHが無い・・・CDにも入ってない・・・。
バージョン古いからかな。

> MOV  [ESI+0],EAX になってしまう
そう、これで困ってました。即値になるだけで修飾はされないんですよね。
WEBでTSM_UTIL.TXT見るとH2ASHを使えば解決できそうですが、
無いものは仕方無いので、夜になったら(テレホなので(*´д`) )
フリーのBC++ダウンロードして入ってないか調べてみます。
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
スレタイトルに+って使えないんじゃなかった?
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の終わらせ方に問題があるのかも。
0278デフォルトの名無しさんNGNG
アプリ終了時、どんな風に処理すればいいのでしょうか?
XXXは勝手に開放されるのかな〜と思いますが
YYYはやっぱり開放しなきゃいけませんよね?
アプリ終了時何もして無かったです。
0279デフォルトの名無しさんNGNG
逆じゃないの?
XXXは明示的に開放が必要だよね。
0280デフォルトの名無しさんNGNG
間違ってました。
XXX->FreeOnTerminate = true;
XXX->Resume();
で、一個スレッド作ってから、そのスレッド内で

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

でした。
スレッドが動いてる最中にユーザーにソフトを終了された場合
どのようにスレッドを終了すればいいのでしょうか?
0281デフォルトの名無しさんNGNG
そのスレッドのTerminate()呼ぶ。
0282デフォルトの名無しさんNGNG
スレッドが現在実行中か、deleteで開放された後か、
調べる方法ってないですか?
0283デフォルトの名無しさんNGNG
>>281
ありがと
0284デフォルトの名無しさんNGNG
えーと、
C++ Builder 5.5 を使ってるんです。で、
プリプロセッサの出力結果とかは、
IDE のほうのオプション指定でテキストファイルに出力
できるのでしょうか?
0285デフォルトの名無しさんNGNG
>>284 CPP32.exe を単独で使えばいいんじゃないの
0286デフォルトの名無しさんNGNG
>>285
てへっ
く( ´�D`)

そしたら、名句ファイル吐かしてからやってみますです。

(´∀`) ありありがとう☆
0287デフォルトの名無しさんNGNG
C++Builder5.5?
0288デフォルトの名無しさんNGNG
       ___
  __ /     ヽ
  \   ̄\     \ ̄\     / ̄ ̄ ̄
  ||\ ___| (    )|_ \  < ・・・・
  ||\||  | | V ̄V| | _|| ̄    \___
  ||  || ̄ | | ̄ ̄ ̄| | ||
     .||  U       U .||
0289デフォルトの名無しさんNGNG
           从/

        __∧_∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      /(  ´Д`)V  < はッ!先生、ちがっ・・・!、2日間も寝たりなんかしてません!
  __ / /|  u゚_/ )   \________________________
  \  ( ( ̄ ̄⊆_ノ ̄\
  ||\ `ー⊃         \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0290デフォルトの名無しさんNGNG
Delphi相談室とC++相談室あるし、閑古鳥がなくのもしゃーない
0291デフォルトの名無しさんNGNG
すんませんが教えてください。
メニューをIEみたくドッキング可能にしたいのですが、方法がわかりません。
TControlBarを置いて、TMainMenuを作ったら、単にメニューがTControlBarの上に表示されてしまいました。
そもそもTMainMenuを使ってドッキング可能なメニューは作成できますか。
0292デフォルトの名無しさんNGNG
>>291
TMainMenu系は APIのCreateMenu InsertMenuのラッパです

windows標準のメニュー バーはオーバーラップ ウィンドウかポップアップ ウィンドウにしか付加できません
0293デフォルトの名無しさんNGNG
パーソナルでもやっていけますか。。?
0294デフォルトの名無しさんNGNG
DBとかWebサービスやらないならいける。
0295291NGNG
>292
ということは、TPanelにTSpeedButtonを張ってCaptionに、ファイル(&F)とか設定して
押された場合は自前でポップアップメニューを表示する・・・みたいにしなければならないと
いうことなのでしょうか。
0296292NGNG
え? >>295
http://info.borland.com/devsupport/delphi/downloads/index.html
TMenuBar をダウンロードしたらいんじゃないの?
0297291NGNG
>296
ありがとうございます。何とかできそうです。
なにせC++Builder使い始めてまだ3日なもので・・・(汗
0298デフォルトの名無しさんNGNG
メニューに「Ctrl + C」などのキーを割り当てるのってどうするのでしょうか?
Alt + Cならば、Nameプロパティに&Cってやればいいのは知っているのですが・・・
0299デフォルトの名無しさんNGNG
TShortCut
ヘルプに烈しく載ってる気が…
0300Delフサギコ ◆zE1iiRdQ NGNG
 ∧,,∧
ミσ゚Д゚ミσTMenuItem.ShortCutプロパテ
0301デフォルトの名無しさんNGNG
>>290
STLスレッドとWin32API 質問箱もあるからねえ。
0302デフォルトの名無しさんNGNG
今日から C++ Builder 使い始めようと思ってスレを検索したが、ここのスレタイに
++ がないから偽者にひっかかっちゃったよ。
0303デフォルトの名無しさんNGNG
質問です。よろしくお願いします。
C++Builder5にて、ファイル(F)-新規作成(N)-プロジェクトタブを選択-アプリケーションウイザード
にて、SDIアプリケーションを作成しました。そして、
http://www.borland.co.jp/tips/cbuilder/cb008/
に記述してある方法にて、タスクトレイに常駐させようとしたところ・・・
実行すると、EStackOverflow クラスの例外を生成しました・・・
というエラーが発生してプログラム起動すらしません。

調べたところ、
http://www.borland.co.jp/tips/cbuilder/cb008/task_2.html
に記述してある、
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_USER+1, TMessage, TrayEvent)
END_MESSAGE_MAP(TForm)
をコメントアウトするとプログラムの起動はするようになります。
なにがいけないのでしょうか。
0304デフォルトの名無しさんNGNG
>>303
リンカのオプションでスタックサイズ増やしてみれば?
0305303NGNG
スタックサイズはデフォルトで1MByteですけど足りないですか?
アプリケーションウイザードで作成してほんのちょっとのコードを付け足しただけなんですが・・・
0306デフォルトの名無しさんNGNG
END_MESSAGE_MAP(TForm) ←ここのTFormを自作フォームの名前にしてるとか
0307303NGNG
>>306
TMainForm になってます。
class TMainForm : public TForm
{省略}  です。
これは、自分が名前を付けたのではなく、アプリケーションウイザードが勝手に作成したのですが。
0308303NGNG
>>306
動きました。ありがとうございます。
END_MESSAGE_MAP(TMainForm)
を
END_MESSAGE_MAP(TForm)
に修正したら一発で動きました。
0309303NGNG
ヘルプを読んだら、
#define END_MESSAGE_MAP(base) default: \
base::Dispatch(Message);\
break; \
} \
}
base パラメータは,これらのマクロを使ってメッセージマップが宣言されるコントロールの基本クラスを指定します。
とちゃんと書いてありました。
これだけで3時間くらい悩んでしまった。
どうもありがとうございます。
0310デフォルトの名無しさんNGNG
うぃ
0311デフォルトの名無しさんNGNG
( ´・∀・`) 閑散としたこのスレも役に立っております
0312.NGNG
教えてください。
TlistBoxで Item->Add (XXXXX)でリストを増やしていき
枠外に出たとき、スクロールバーは出ますが追加した行は
そのまま枠外に出てしまいます。もちろん手動スクロールすれば
見れますが自動的に今追加した行が(行末)が出るように出来ないでしょうか?
0313デフォルトの名無しさんNGNG
http://www.borland.co.jp/cppbuilder/freecompiler/
があれば、Windowsアプリケーションは作れますか?
0314デフォルトの名無しさんNGNG
>>312 追加されたのが選択されてもいいなら
int Index = ListBox1->Items->Add("あいうえお");
ListBox1->ItemIndex = Index;

選択させずにスクロールさせる方法はちょっとわからないっす
0315デフォルトの名無しさんNGNG
>>312
SetTopIndex

>>313 あなた次第でいかようにも しかし初心者ならDelphiをお勧めします
0316315NGNG
おっと,単に TopIndex プロパティだな 
0317デフォルトの名無しさんNGNG
そんなプロパティがあったとは・・・。
雑魚い方法を晒してしまい申し訳ないっす。
0318312NGNG
ありがとうございます。うまくできました。
最近C++Builderを使い始めてよくわかりませんでした。
良いスレですね。昔からBORLAND派には悪人はいないと

ありがとうございます。
0319デフォルトの名無しさんNGNG
>>313
とりあえず、MSのサイトからPlatformSDKを落としてきてください。
で、sampleの"Generic"をいじってください。
0320デフォルトの名無しさんNGNG
Genericに飽きたら 
Windowsプログラムでゲームを作りたい。
http://mentai.2ch.net/prog/kako/957/957341074.html
とかやって、次は猫でもかな
0321volvicNGNG
動作環境の質問なんですが、クルソーで動かすのは不可能なんでしょうか?
インスコした途端、凍りまくりです。メモリは256でXPなんですが、
どうにかして簡単なプログラムなら回せるようになりませんか?
マジレスおながいします。
0322デフォルトの名無しさんNGNG
TBitmapを使おうとすると(builder6)
[C++ エラー] Unit1.cpp(16): E2015 'TBitmap' と 'Windows::TBitmap' の区別が曖昧
って言われるんだけどどうしたらいいか知らない?
0323デフォルトの名無しさんNGNG
Graphics::TBitmap?
0324デフォルトの名無しさんNGNG
すいません、少々質問をさせていただきたいのですが、よろしいでしょうか。
ボーランド本家 (http://www.borland.com) からBorland C++ Compiler 5.5をダウンロードしようとすると、
なぜか99%で切断されてしまいます。
これを最後までダウンロードするには、どうしたらいいのでしょうか?



・・・やはり付録ですか?
雑誌の付録からインストールしろという事ですか?
アナログ回線で30分もかけた労力と電気代を返せ!ヽ(`Д´)ノ ウワアアン
0325デフォルトの名無しさんNGNG
>>323
おおサンキュー
ユニット名が名前空間になってたんだね
知らなかった
0326デフォルトの名無しさんNGNG
>>324
今ダウンロードしてみたけど普通にできたよ。
30分かけてもう一度・・・
0327デフォルトの名無しさんNGNG
>>321 それはボーランドに相談した方がいいでしょう
>>324 iriaとかダウンロードツールを使ってみるとか、プロキシを使うとか
0328324NGNG
>>326さん
>>327さん

iriaを使ってダウンロードしていたのが原因でしょうか?
う〜ん、串を使ってもう一度試してみる事にします。
ありがとうございました。
0329デフォルトの名無しさんNGNG
Canvas->Font->Style += (TFontStyles() << fsBold);
とかやった後で
::DrawText(...)// WIN32API
でやってもスタイルに反映されません。
Delphi6でできたのに、C++Builder6では別の手順が
あるんですか?
0330デフォルトの名無しさんNGNG
Canvas->Font->Style = Canvas->Font->Style << fsBold;
ならどう?
0331デフォルトの名無しさんNGNG
>>330
やってみます。自宅に環境がないので明日確認します。
0332デフォルトの名無しさんNGNG
>>329
Canvas->Font->Style = Canvas->Font->Style << fsBold;
0333デフォルトの名無しさんNGNG
かぶっとるね
0334321NGNG
アリガトウゴザイマシタ>327
0335デフォルトの名無しさんNGNG
このスレで1000を取った奴はとても縁起が悪く、とんでもない目に遭います・・・
0336デフォルトの名無しさんNGNG
BCB6でboost::regexを使いたいんだけど、上手くmakeできないんです。
コンソールでは大丈夫でも、IDEからGUIアプリを作ろうとすると、AccessViolationで落ちちゃう。
BCB5では問題なかったんだけど、同じ症状の人、解決した人、いない?
0337デフォルトの名無しさんNGNG
>>336 たぶんこれでないかな
http://www.bcbdev.com/articles/boostregex.htm
0338デフォルトの名無しさんNGNG
でも、1.28なんですよ(bcb6.makもある。)
0339デフォルトの名無しさんNGNG
VCと違ってBCBにはプロファイリングのためのツールがついてませんが、
どこかにいいのがあったら紹介してほしいです。
0340デフォルトの名無しさんNGNG
>>339 プロファイラってどんな事が出来るの? 
BCBのCodeGuardは コンパイル時に余分なコードが付くから実行そのものが遅くなってしまうんだよね
0341デフォルトの名無しさんNGNG
>>338
1.28は、うちでも動かなかったので、1.27を使ってます。(BCB5でも駄目だった様な)
BCB6+1.27+bcbdev.comのメイクファイルなら動きました。
0342デフォルトの名無しさんNGNG
はじめまして。
初心者です。
C Builderとは関係ないかもしれませんが、
RGBからHSLへの変換方法を教えてください。
よろしくお願いいたします。
0343Delフサギコ ◆zE1iiRdQ NGNG
・色のお部屋
http://www2.justnet.ne.jp/~arion/iro.html
・Leafel's monochrome note
http://hp.vector.co.jp/authors/VA015850/program/mchrome.html

とりあえず、2個所ほど、リンクなど。
    ∧,,∧
   ミ,,゚Д゚彡 
    ミ つ旦)~~
  〜と,,,~),,~) 
0344デフォルトの名無しさんNGNG
デュアルCPUでC++ Builder使ってる人いますか?
やっぱりコンパイル速度も速くなるものでしょうか?

>>340
どの関数がどのくらい時間くっているか調べる奴じゃない?
0345デフォルトの名無しさんNGNG
>>342
http://rossm.net/Electronics/Computers/Software/C++/Algorithms/

HSL.hにRGB→HSL、HSL→RGB変換クラス有り。
0346デフォルトの名無しさんNGNG
>>344 デュアルCPU
なりません。
0347344NGNG
>>346
早速のレス、ありがとうございました。
複数ファイルのコンパイルを並列で処理してくれるのかな
と期待していたのですが、そうならないんですね。残念。
0348342NGNG
343,345さん有益な情報ありがとうございます
0349デフォルトの名無しさんNGNG
>>339
gprof
0350デフォルトの名無しさんNGNG
C++Builder6でモデムの着信を検知したいんだけど
どうしたらいいの?
0351デフォルトの名無しさんNGNG
>>350
 ポートを占有して RING 文字列を受け取ったら?
0352デフォルトの名無しさんNGNG
ふと思ったのですが、みなさん、BuilderでADO / ADOX使うとき
どうしてます? 6になってから、ADOは標準でコンポーネントが
付いてくるけど、ADOXは依然、自前で何とかしないといけないですよね。
私はタイプライブラリの取り込みで生成されるTCOM_XXXを使っています。
0353デフォルトの名無しさんNGNG
>>351
すみません、ポートの占有はどのようにすればいいのでしょうか?
TAPIを使えば出来ますか?
0354デフォルトの名無しさんNGNG
329です。
やはり
×Canvas->Font->Style += (TFontStyles() << fsBold);
 // ダメ
○Canvas->Font->Style = Canvas->Font->Style << fsBold;
 // オッケー
でした。ありがとうございました。
+=演算子の定義がヘンなんですかね。

0355デフォルトの名無しさんNGNG
>>354
それ、Canvas->Font->Style の get メソッドで帰ってきた戻り値である一時オブジェクトを変更するだけだから、本体に影響を与えないの。
0356355NGNG
・・・と理解してたのだけど今まで。よく考えると妙な気も。調べてみやう・・・
0357336NGNG
>>341 どうもありがとう。結局1.27+BCBDEVで無事動きました。
確かに、1.28はBCB5でもだめだった気がします(1.26に戻して使ってました)
時間があったら頑張って原因究明してみます。
>>337 もありがとう。
0358355NGNG
色々試してみた。355 の説で合ってるっぽい。
0359デフォルトの名無しさんNGNG
レジストリからダイヤルアップ接続名の一覧を取得したいのですが
Windows2000ではダイヤルアップ情報はレジストリのどこに記述
されているのでしょうか?
0360デフォルトの名無しさんNGNG
おおもりよしはる=ロリペドオタ、アニオタ、モーツアルトオタ、ベートーベンオタ、ブルックナーオタ、セガ信者
ひまわりと幼女のすじまんこに異様な執着心を燃やしているロリペド絵描き
2浪して九州大学歯学科に進むがプロのイラストレーターになるために大学を中退、
同人活動とUOに専念する日々を送るが、その生活は苦しいらしい(藁
自らを画家と呼び、ともすれば不真面目なものと見られかねないアニメ絵
それも、無毛のすじまんこすらも「芸術」の域にまで高めようとしている(らしい)。
心の支えは自分の描いたひまわりの絵らしい(ぷ
マスコミ(西日本新聞)で写真付きで取り上げられたこともあるらしい。
最強のネットゲーUOではIzumoでKanae、SASAWOというキャラを使用。
http://yasai.2ch.net/test/read.cgi/doujin/1021463865/
http://www.p80.co.jp/p/k_sinki/yoshiharu/oomori.html

@さぽーる
http://www.sub-all.com/test/read.cgi/dojin/019473696/
@MEGABBS
http://203.138.109.168/cgi-bin/megabbs/readres.cgi?bo=Baby&vi=1020753024
関連スレ
【すじ】 ようじょのすじ  【すじ】
http://www2.bbspink.com/test/read.cgi/erog/1017041827/
【抱き枕】すじ丸出し抱き枕ってどうよ?
http://mentai.2ch.net/test/read.cgi/otaku/1016198191/
0361デフォルトの名無しさんNGNG
>>359
レジストリ検索しても無かった。
APIのRasEnumEntriesで取得するといいんでないかな。
使い方分からなければ↓で聞いたほうがいいと思う。

Win32API相談室
http://pc.2ch.net/test/read.cgi/tech/1017072275/
0362359NGNG
>>361
お答え有難う御座います。
早速RasEnumEntriesを調べてみます。
0363359NGNG
>> 361
RasEnumEntriesを使用して、ダイヤルアップ一覧を取得することに
成功しました。
有難う御座いました。
0364デフォルトの名無しさんNGNG
ftp://ftpd.borland.com/download/bcppbuilder/BorlandCBuilder6Evaluation.exe
C Builder
0365デフォルトの名無しさんNGNG
>>364
English版かよ。
0366デフォルトの名無しさんNGNG
this->InsertComponent(child);
で、コンポーネント内にコンポーネントを持たせると、
プログラムの終了時にEACCESS vaiolationが発生します。

解決方法は簡単で、InsertComponentを使わないことです。
(Parentを設定して、終了時にデストラクタがちゃんと
 呼ばれさえすればいいみたい)
これはバグ?

注)
このときは、TV番組録画予約表のようにずらーっと時刻が並んだ表の
コンポーネントで親はTPanel、子はTDateTimePickerです。
0367デフォルトの名無しさんNGNG
俺BCB 5で作れるアプリは、まだテキストエディタだけ。
とりあえず、テキストエディタチュートリアルを35分以下で作れるように練習した(ヘルプファイルを除く)。
次は海洋生物データベースのチュートリアルだな。
0368デフォルトの名無しさんNGNG
> 海洋生物データベース
あったなこれ(w
0369デフォルトの名無しさんNGNG
あるコンポーネントから別のコンポーネントを作成し、作成元のコンポーネント
名をOwner->Name のようにして取得しようとしたのですが、コンパイルは出来る
ものの、実行するとエラーが出ます。なにがいけないのでしょうか?
0370デフォルトの名無しさんNGNG
作成元のコンポーネントがオーナーとは限らない・・・
コンストラクタの AOwner 引数に放り込んだものがオーナーになります。
0371デフォルトの名無しさんNGNG
Builder3を使っているのですが、
STLでsortは大丈夫なのにstable_sortを使うと必ずアクセス違反でコケます。
もしかしてバグでしょうか?
0372デフォルトの名無しさんNGNG
>>353
351ではないが、普通にCreateFileでシリアルポート開けてタイマーか別スレッドで
ReadFileしてればいいんでない?とりあえず初期設定のところだけ貼っておく
(ボーレート等は適切に設定してやること)。

bool PCtrl::OpenPort( char* pnum ) //引数例:pnum="COM1"
{
 DCB dcb;
 COMMTIMEOUTS cto;

 if ( this->h != NULL )
  return false;

 this->h = CreateFile( pnum,
  GENERIC_READ | GENERIC_WRITE,
  0,
  0,
  OPEN_EXISTING,
  0, 0);
 if ( this->h == INVALID_HANDLE_VALUE )
 {
  return false;
 }

 BuildCommDCB( "baud=600 parity=E data=8 stop=1", &dcb );
 SetCommState( h , &dcb );

 cto.ReadIntervalTimeout = 100;
 cto.ReadTotalTimeoutMultiplier = 0;
 cto.ReadTotalTimeoutConstant = 100;
 SetCommTimeouts( h , &cto );
 return true;
}
0373353NGNG
>> 372
ソースまで書いて頂いて有難う御座います!
これを参考にして試してみます。
0374369NGNG
>> 370
お答え有難うございます。

コンストラクタのOwnerには作成元のオブジェクトを
入れているつもりだったのですが、以下のように書いた
場合は作成元がOwnerとして渡っていないのでしょうか?

Form1上にButton1を配置してButton1からForm2を作成
する場合
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TForm2* NewForm=new TForm2(this);

NewForm->ShowModal();

delete NewForm;
}

とした時、thisで示されているオブジェクトはButton1では
ないのでしょうか?
0375デフォルトの名無しさんNGNG
>>374
そのthisはForm1で、Button1はSender
0376369NGNG
>>375
有難うございます。TComponentに型キャストしてSenderを渡した
ところ、呼び出し元のコンポーネント名を取得できました。
0377デフォルトの名無しさんNGNG
厨質問スマソ
cbuilderで作った実行ファイルってlinux(redhat)でも動くの?
0378デフォルトの名無しさんNGNG
動くよ。WineとかVMWareで検索してね。
0379デフォルトの名無しさんNGNG
あと Lindows とか
0380デフォルトの名無しさんNGNG
Lindowsってもう動くの?
0381デフォルトの名無しさんNGNG
たびたびの質問すみません。
ShellExecute()で外部プログラムを起動させることは
分かったのですが、起動させたプログラム中のボタン
を押したりテキストフィールドへ文字を入力したりする
にはどのような方法を取ればいいのでしょうか?
0382デフォルトの名無しさんNGNG
SendMessage
PostMessage
0383デフォルトの名無しさんNGNG
はじめまして
ファイルから呼んでメモリーに格納してある
JpegファイルのイメージをTJPEGImageに入れたいのですが
どうすればよいのでしょうか?
LoadFromFileでファイルから読めますが
インターネット(SOCKET)からJPGをメモリーに読み込んで
TImage->Picture=(TJPEGImage*)buff;// Socketで読み込んだデータ−
こんな感じにしたいで。どなたか教えてください
0384デフォルトの名無しさんNGNG
ストリームに読み込んで、Jpeg->LoadFromStream。
0385デフォルトの名無しさんNGNG
TMemoryStream* mem = new TMemoryStream();
mem->Read (m_pBody, m_iBodyLength);
TJPEGImage* jpg = new TJPEGImage;
jpg->LoadFromStream (mem);
View2->Picture = (TPicture*)jpg;
delete jpg;
delete mem;
こんな感じですよね?
ただ、これだとハングします・・・
0386デフォルトの名無しさんNGNG
すみません mem->Readでなく mem->Writeでした
でも、それでもダメでした mem->sizeはいい値を示していますが
0387デフォルトの名無しさんNGNG
いや、こう

TMemoryStream* Stream = new TMemoryStream;

Stream->Write(Buffer, Length);  //ReadじゃなくてWrite
Stream->Position = 0;        //使う前にPositionを戻す

Jpeg->LoadFromStream(Stream);
0388デフォルトの名無しさんNGNG
かぶった・・・
Read←→Writeを直してるなら、あとはPositonを元に戻すだけでできると思う。
0389デフォルトの名無しさんNGNG
>View2->Picture = (TPicture*)jpg;
これはいいのか?
0390デフォルトの名無しさんNGNG
>>389 大丈夫
0391デフォルトの名無しさんNGNG
あげとく c(゚Д゚c
0392デフォルトの名無しさんNGNG
BCB6でIRCクライアントのようなものを作りたいのですが
参考になるページは無いでしょうか?

IndyのTCPクライアントでconnectした後、どうすればいいのか
さっぱりわからない・・・。
0393デフォルトの名無しさんNGNG
http://www.alt-r.com/lib/rfc.html
0394デフォルトの名無しさんNGNG
>392
もう少し具体的に何がしたいのか書かないとアドバイスの
しようがないよ。
0395デフォルトの名無しさんNGNG
>393
とりあえず読んでます

>394
とりあえず、IRCクライアントとしての最低限の機能
(サーバ接続・目標のチャンネルに入る・ログの取得・発言くらいかな)
がしたいです。

0396デフォルトの名無しさんNGNG
WCHAR の配列を AnsiString であらわすことは可能でしょうか?
0397デフォルトの名無しさんNGNG
↑
可能
0398デフォルトの名無しさんNGNG
AnsiStringとStringって同じもの?
0399デフォルトの名無しさんNGNG
ランダムに3ケタの数を生成し、それをバケツソートでソートしたいのですが、
どう書いて良いかわかりません。どなたか、アルゴリズムを教えてください。
言語はC++です
0400デフォルトの名無しさんNGNG
>399
ガッコウノシュクダイハジブンデカンガエタホウガジブンノタメニナルヨ
0401デフォルトの名無しさんNGNG
MessageDlg のタイトルが「情報」とか「エラー」とか日本語で出るのを
英語にする方法ありますか?
0402デフォルトの名無しさんNGNG
>>401
素直にMessageBox使う。
0403デフォルトの名無しさんNGNG
英語版ウィンドーズを使う
0404401NGNG
MessageBox を使えばいけたんですね。
ありがとうございました
0405デフォルトの名無しさんNGNG
Xalan/Xerces(ApacheのXSLTプロセッサ/XMLパーサ)
使いたいんですけど、
Xercesがテスト通りません。
.regファイル入れたのにダメ。
当方BCB6パーソナルです。

どっかで成功しているバイナリをダウンロードできませんか?

Exceptions Test # 105: wrong DOM_DOMException thrown.
Exceptions Test # 109: wrong DOM_DOMException thrown.
Exceptions Test # 110: wrong DOM_DOMException thrown.
1 StringHandles.
1 StringHandles. 1 StringBuffers.
1 StringHandles. 1 StringBuffers.
Exceptions Test # 201: wrong DOM_DOMException thrown.
Exceptions Test # 202: wrong DOM_DOMException thrown.
Exceptions Test # 201: wrong DOM_DOMException thrown.
Exceptions Test # 202: wrong DOM_DOMException thrown.
0406デフォルトの名無しさんNGNG
「TClipboard のグローバルインスタンスの中身が変化した時」という
イベントは、どうやって作ればよいのだろう。

0407デフォルトの名無しさんNGNG
>>406
TClipboardを継承して、WndProcをオーバーライド。
SetClipboard関数でグローバルインスタンスを変更。
0408デフォルトの名無しさんNGNG
複数NICが刺さっていて、それぞれ別のIPアドレスを
割り当ててあります。
TServerSocketで、片方のIPアドレスにだけポートを
開くにはどうすればよいのでしょうか。
0409デフォルトの名無しさんNGNG
>>407
継承とかオバライドとか、
C++ の長所をすっかり忘れていますた (・∀・)=3

手順まで教えていただき、これでなんとかなります。
多謝!!(´▽`*)
0410Delフサギコ ◆zE1iiRdQ NGNG
ミ?゚Д゚彡

いわゆるクリップボードの監視をするときに使う
WMDrawClipboard
や
WMChangeCBChain
の方とは違うんですよね?

>SetClipboard関数でグローバルインスタンスを変更。
なんか、うまく解放してやらないと
クリップボードがあぼーんの可能性が??

昔、OSのクリップボードが吹っ飛んで
焦った事あったです。
0411デフォルトの名無しさんNGNG
>>410
Clipboard関数の最初の呼び出し時にインスタンスが作成されるので、
その前にSetClipboard関数を呼ぶ必要がある。
0412デフォルトの名無しさんNGNG
両方使ったことある人に聞きます。
C++BuilderはVC++よりいいですか?
0413名無し~3.EXE NGNG
>412
使う場面によります。
0414デフォルトの名無しさんNGNG
>>412
ちょっとしたプログラムをWindowsで組んでみたい時はC+Builderは便利。
本格的な実用プログラムを組むと、サイズが抑えられるのはVC++。
でもどちらが何ができるかと言うと、どちらでもいい。C++BuilderでもMFC
は使えるのだし。
0415名無しサンプリング@48kHzNGNG
IEコンポーネントスレにも書いてしまったんですが…
TCppWebBrowserコンポーネントで
_blank
で新規ウインドウを生成しないようにしたいんですが
どうしたら良いでしょう…(同一ページでリンク先に飛ばせたい)
ご存知の方がいましたらば情報キボンです!
0416名無しサンプリング@48kHzNGNG
TVariantで飛んできた値ってどうやって使うの?
0417デフォルトの名無しさんNGNG
C++Builder使えても就職ない?
0418デフォルトの名無しさんNGNG
>>417 どの言語が使えても同じ。 コードが書ける程度では仕事はない。
 去年迄の派遣シフト中は派遣なら就職出来た。派遣だと VC/VBが多いからね。
しかしもう派遣シフトも完了した状態。 海外シフトが始まってるし、コードが書けるだけ
ではいよいよ就職は出来ないよ。

就職したいなら、キャラクターを磨け。人付き合いの良さとか、創造力とかさ
0419デフォルトの名無しさんNGNG
どなたかWindowsXPのスタイル対応コンポーネントをお持ちでないですか?
Delphi用はこんなのが出てるんですけど、C++Builderでの作り方がわか
りません。

Delphi用
↓
http://member.nifty.ne.jp/~hiryu/download/xpct1004.zip
0420デフォルトの名無しさんNGNG
>>419
Delphiで書かれたコンポーネントは、そのままC++Builderで利用できます。
0421デフォルトの名無しさんNGNG
>>420
ありがとうございます!!いろいろ試してみた所、C++Builder6でDelphi用の
WindowsXPコンポーネントが使えるようになりました。

C++BuilderはDelphi相当のコンパイラを内蔵してるんですね!全然知りませ
んでした。
0422名無し~3.EXE NGNG
>421
相当っていうか、全く同じもの・・・。
0423デフォルトの名無しさんNGNG
おいらも、パスカルで書いてあるコンポーネントを勝手に?コンパイルしてくれたのには最初、驚いたよ。
っていうか、パスカルで書いてあるの知らずにコンポーネントのインストールをして、あとでソースを見たらパスカルだった。
Delphiって文法はだいぶ違うけど、クラスとかはC++とほとんど一緒なんだね。
0424デフォルトの名無しさんNGNG
>>419
いきなりzipファイルへのリンク書くなよ。
説明用のページを貼るくらいはできるだろ?
0425デフォルトの名無しさんNGNG
>>423
ということはDelphiで勉強してもBCBに簡単に移行できるって事?
0426デフォルトの名無しさんNGNG
>>424
スマソ。こちらで確認してからDLして下され。
http://member.nifty.ne.jp/~hiryu/

>>425
BCBはC++の知識が不可欠なので、Delphiからいきなり移ってきて
もキツいものがあると思う。でも、VCLを扱うプログラムだけなら、ほ
とんど何も考えずに手動でコンバートできる。
0427デフォルトの名無しさんNGNG
DelphiとC++Builderは操作は同じなの?
マウスクリックしてどうとか言うの。
0428デフォルトの名無しさんNGNG
>>427
VCLを使って実際にプログラミングしていくやり方の事?一緒だよ。
フォームにコンポーネントを貼り付けるやり方は全く同じ。
ただ、コードはC++で書かないといけないけどね。
0429うーNGNG
VB使えて、C++も理解してれば
VBみたいな感覚で使える?BCB。

欲しいんだけど
0430デフォルトの名無しさんNGNG
>>429
VBとC++も理解してるのなら大丈夫でしょう。
Delphiも使ったことがあればBCBで幸せになること間違いなし。
0431デフォルトの名無しさんNGNG
BCBあればDELは買わなくていいんだな。
というか、無料DEL+BCCでいいんじゃないのか?
0432デフォルトの名無しさんNGNG
>>431
難しいところだね。Delphiの爆速コンパイルを一度味わってしまうと、
なかなか他のコンパイラに移行できない。

BCBはやっぱり重いから、ある程度リッチなマシンでないとストレス
が溜まるかも。

俺はBCB Pro+無料Delで幸せ。DelphiのコンポーネントをBCBに
入れまくって遊んでいる。
0433429NGNG
買っちまったよ。
早速インスコして使ってるんだけど、これヨサゲね。
幸せの予感。


買うとき散々迷ったんだけど、もしかしてVC++.NETも似たようなインターフェース?
0434デフォルトの名無しさんNGNG
>>433
キタ━━━━━━(゚∀゚)━━━━━━ !!
これで仲間が増えた!!
俺はと言えば、Delphiの参考書片手にWindows APIとC++のお勉強。
DelphiのObject Pascalが、ほとんどそのまま何も考えずにC++に
移植できるのは一種の快感だね。
0435デフォルトの名無しさんNGNG
×もしかしてVC++.NETも似たようなインターフェース
○ C#.NET / VB.NET
0436デフォルトの名無しさんNGNG
BCB5なんだけど、

for(i=0;i<cnt;i++){
TTrackBar &bar =* new TTrackBar(this) ;
bar.Parent = this;
bar.Name = "BAR"+IntToStr(i+CRAMAdr);
bar.Top = i*bar.Height+45;
 ・・・略・・・

みたいに TTrackBarを動的に作成しようとしたら cntが1以上の場合
そのクラスは既にありますというエラーが出ます。

で、.PASで
procedure test(AOwner:TWinControl);
var i:Integer;
begin
for i:=0 to 3 do begin
with TTrackBar.Create(AOwner) do
begin
Parent := AOwner;
Top:=Height*i+32;
end;
end;
end;
と試験コードを書いて試した所、やはり同じエラーが出ます (このコードでもDelphi5なら成功する)

いったいどうやればいいんでしょう?
0437436NGNG
どうも >>436の件は、フォームに同じ種類のコンポを張るだけでダメという事で
どうやらBCBが壊れていたようです。インストールからやりなおしてみます。
0438436NGNG
やりなおした結果、 新規プロジェクトで試した場合には現象は止まりましたが
それまで作成していたものは、.dfm .cpp .h .bpr 以外のファイルを全て削除しても直りません
結局、別ディレクトリに作成し、ソースとフォームだけを
コピーして直りました。 なんだか訳が判りません・・・・
0439デフォルトの名無しさんNGNG
>>438
BCB5の賞味期限が切れた模様。BCB6を買いなされ。
0440デフォルトの名無しさんNGNG
>>438
お待ちしています
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧ ニヤニヤ
 ( ・∀・)
 (    )
 | 某|
 (__)_)
0441デフォルトの名無しさんNGNG
VCL使ってプログラムして初めて、256色(パレット対応)なんてモードが
用意されていることがわかったよ。

カナーリ気色悪いモードだねこれは。過去の遺物だとか本には書いてあっ
たけど。

WindowsもインテルのCPUと同じで、互換性を重視してバージョンアップ
していったら、いつの間にかアーキテクチャが汚くなっていたという奴か?
0442デフォルトの名無しさんNGNG
>441
9x系が不安定なそもそもの原因なのでは?>互換性を重視して〜
0443デフォルトの名無しさんNGNG
>VCL使ってプログラムして初めて、256色・・・
BIOS(SVGA)で対応している基本的なモードの一つだから当然だろ
0444デフォルトの名無しさんNGNG
>>443
なんでVGAと
0445デフォルトの名無しさんNGNG
>>441
256色インデックス(パレット)付カラーは 今でもGIFでおなじみだと思ったが
0446429NGNG
うわー、今まで簡単なツール類はVBで作ってたんだけど
BCBマンセー気味に。

はぁはぁ、もっとVCLが欲しい、、プロ版買っとくんだた(´_`
0447デフォルトの名無しさんNGNG
>>446
俺はBCBプロフェッショナルと
デルファイ6プロフェッショナルを
買ったが手に入れた事で満足してしまい
今じゃ押入れの中だ。
パーソナル版で充分だったな、、、、
0448デフォルトの名無しさんNGNG
>>446
ユーザ向けの優待販売使うとPro単体より若干、安い罠。
0449デフォルトの名無しさんNGNG
Modern C++ Design買ってきたから、BCBでLoki通るように改造してみたい。
多分無理だろうが(w
0450デフォルトの名無しさんNGNG
>>446
VCLコンポならインターネット上にたくさん落ちてるYO!
とりあえず ↓ から始めてみては?
http://home1.infonia.ne.jp/~delphian/delphi/
0451デフォルトの名無しさんNGNG
ほιゅ
0452デフォルトの名無しさんNGNG
このスレには初めて来たのですが、C++Builder で、ちょっと教えてもらいたいこ
とがあります。
StringGrid コンポーネントで、Cells[col][row] = "ABC" という具合に文字列
をセットしたあと、そのセルの文字列を中央寄せしたいのですが、うまくいきませ
ん。したいことは、

StringGrid1->Objects[col[row]->Alignment = taCenter

みたいな感じですが、エラーが出てしまいます。
判る方、どうか教えてください。
0453452NGNG
…ここ逝って勝手に解決してしまいました。
ttp://market.agr.tottori-u.ac.jp/ken/
『何だこいつは!!』とお思いください…。失礼しました。
0454デフォルトの名無しさんNGNG
SQLビルダってC++Builderをインストールすると使えるの?
ヘルプはインストールされてるけど起動方法がわかりません。
0455デフォルトの名無しさんNGNG
BCB面白そうだな。
BCB6Personalが一万円切ってたから、買ってみるかな。
0456デフォルトの名無しさんNGNG
>>455
BCB面白いよ。俺はPro版使ってるけど。Delphiと違って、コンパイルが
激遅なのが玉にキズだけど、MFCで培ったテクニックもそのまま使えて
幸せ。
0457デフォルトの名無しさんNGNG
C++Builder6を使っています。
フリーのコンポーネント(Pascalで書かれた)を登録しようと
パッケージを新規で作成して登録しました。
登録したコンポーネントを使ったプロジェクトをコンパイルすると
リンカエラーが起きます(登録したコンポーネントのコンストラクタは未解決等)
これはプロジェクトにそのコンポーネントをコンパイルした際に出たobjファイルを
プロジェクトに追加すれば出なくなるのですが おそらく自分のコンポーネントのインストール
手順が 何か抜けてる部分があるのだと思います。
このようなエラーが出る場合 どのような作業を行えばエラーは出なくなるのでしょうか?
0458デフォルトの名無しさんNGNG
>>457
エラーメッセージを詳細に書くナリ。
ありがちなリンクエラーは、namespace が違ってたり、パケージ選択
を間違えたりとか etc...
0459457NGNG
コンポーネントインストールするときに 出力ファイルのパスミスってただけでした。
すいません(鬱
0460デフォルトの名無しさんNGNG
>>454
SQLビルだって、たしかEnt版しか使えなかったような。
俺はPro版しか触ったこと無いのでわからんが・・・・
0461454NGNG
>>460
ごめん、TQuery右クリックで起動できた。
0462デフォルトの名無しさんNGNG
C++ Builder 6 を入れました。

コンポーネントを追加しようと、メニューから [コンポーネント] - [パッケージのインストール] の
[追加] で *.bpl を選択しました。

が、VCL50.BPL が見つからない、というようなメッセージが出ました。VCL60.BPL はあるようなので、
バージョンに関連したものではないかと思うのですが、このコンポーネントは Ver.6 では使えないの
でしょうか? それともどうにか使う方法はあるのでしょうか?
0463デフォルトの名無しさんNGNG
>>462
もしかしてコンポーネントがBCB5でコンパイルしたものじゃない?
BCB6でコンパイルし直さないといけないのでは。
0464デフォルトの名無しさんNGNG
どこかのページにWindowsXPスタイルに対応したコンポーネントが
置いてないでしょうか。
0465デフォルトの名無しさんNGNG
>>464
検索って物を覚えましょうね。


>>419-426
0466デフォルトの名無しさんNGNG
>>465
どうもすんまそん&アリガト。
早速インスコしてみたんだけど、これBitBtnもProgressBarもないのね。
一番よく使うのに。
MFCを紐解いて自作しないとだめなのか・・・・・・
0467デフォルトの名無しさんNGNG
>>466
BitBtn や ProgressBar は Manifest を(アプリケーションに)追加することで
new GUI になりませんか?


0468デフォルトの名無しさんNGNG
>>467
そうなんですが、配布する時のことを考えると、できれば
2000以前で普通のGUI、XPだとnew GUIと自動的に切り替わる
コンポーネントが欲しいんですよ。SP1で対応してくれるかもしれんけど。
0469デフォルトの名無しさんNGNG
>>468
だからこそ Manifest で良いのでは?
exeと同じフォルダに manifest ファイルを置くだけ。
もちろんWindows2000では無視されるのでXPに対してのみ効果があるし。
別に配布上問題はないと思ふが
0470デフォルトの名無しさんNGNG
>>469
そうかありがとう。そうしてみます。
0471デフォルトの名無しさんNGNG
ちゃんとリソースにして .exe にくっつけておきなよ。

>>468
SP1 では XP テーマ対応はしない。と明言しているはず。Delphi7 から。
BCB6 のコンポーネントは Delphi6 のそれと同じ物を使っているから BCB6 では
対応できない。

ただ「対応できない」というのは過去との互換性の部分がほとんどだから、3rd party
のコンポーネントを使ってしまえばすんじゃう話だよ?
新しくアプリケーションを作るのであればたいした問題じゃないよね?
あとは、ImageList の(Microsoft が作りこんだ)非互換性をどうするか、って
くらいしかめんどくさい話は残っていない。
0472デフォルトの名無しさんNGNG
>>471
がーん。対応しないんですか。BCB6では。

昨晩もマニフェストファイルを作ってみたんですが、XPスタイルになる
ものとならないものが混ざって醜いことこの上なかった。

外国のサイトでもさぐってみようかな。
0473デフォルトの名無しさんNGNG
Builder 6 のバグレポートとかがまとまったページって
ご存知の方いっらしゃいませんか?
0474デフォルトの名無しさんNGNG
>>472
互換性の問題とかいろいろ出てくるんですよ。悪いのはイベントの出方やイメージリストの
フォーマットを変えた MS。

互換性を気にしなければ XP 対応コンポーネントはごろごろ転がってるよ。
http://www.delphi-unicode.net/
0475デフォルトの名無しさんNGNG
>>474
ありがとうございます。無理にXP対応にしないようにしてみます。
世の中にはまだまだWin2000ユーザーも多いことですし、単に見映え
の問題ですからね。

ご紹介のホームページは今から覗いてみます。
0476デフォルトの名無しさんNGNG
C++Builder用のオフィシャルコース本がないので、Delphi6用の2冊組
を買ってきました。ちょっと値が張りましたが。

コンポーネントの使い方だけなら、これで十分です。もちろん中身は
Object Pascalで書かれているので、これをC++に翻訳するには相応
の言語力が要求されます。

と言ってもObject PascalとC++はよく似ているので、そんなに移植は
困難ではありません。逆だったら難しいかも。
0477デフォルトの名無しさんNGNG
>>476
>これをC++に翻訳するには相応の言語力が要求されます。

そうか?とバイリンガルなアタシはおもふ。
0478デフォルトの名無しさんNGNG
>>477
すげえな。C++の文法自体はわかっているのだが、Object Pascalが
サパーリなので、困難を極めます。Registerって何?のレベルです。
0479デフォルトの名無しさんNGNG
>>478
いや、Cにもその概念ありますがな・・・
0480Delフサギコ ◆zE1iiRdQ NGNG
                _____
      ∧,,∧___   /
    /ミ,,゚Д゚ミ/\<  この辺みてがんばってください
  /| ̄∪∪ ̄|\/ \_____
    |____|/

○C++(Builder)とDelphiの対応
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538&res=7
0481デフォルトの名無しさんNGNG
>>479
そうですね。コンポーネントの登録でした。あまり使いませんね。

>>480
ありがとうございます。今見せていただいていますが、この調子だと
Delphiが即マスターできてしまいそうな気がしてきました。
0482デフォルトの名無しさんNGNG
            ☆ チン
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) < BCB6 SP1まだ〜?
             \_/⊂ ⊂_ )   \___________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        |JBuilder7SE返品|/
         ̄ ̄ ̄ ̄ ̄ ̄ ̄
そろそろ出てもいいと思わない?
0483デフォルトの名無しさんNGNG
取得した使用許諾コードってどこ見れば分かるの?
0484デフォルトの名無しさんNGNG
>>482
アップデートは今暫くおまちください
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧ ニヤニヤ
 ( ・∀・)
 (    )  BCB6++ Personal/SE/Enterprizeヲ
 | 某|  ジュンビシテイルカラナ
 (__)_)
0485デフォルトの名無しさんNGNG
すいません、今から馬鹿な質問します
Bcc の 5.5.1 は WindowsXP 非対応らしいですが
BCB の 6 に含まれる Bcc は XP 対応済みですよね?
Bcc のバージョンナンバーはあがってますか?
既出でしたらすいません
0486デフォルトの名無しさんNGNG
>>485
BCC5.5.1はXPでも問題なく使えますよ。

BCB6にはBCC5.6が付属していますが、ほとんど変わってないようです。
大きく違う点は、STLPortが標準装備になったのと、C99にいくつか対応
したぐらいで、BCC5.5.1にSTLPortをインストールして使えば、実用上
ほとんど差はありません。
0487デフォルトの名無しさんNGNG
>>485
バグが増えますた。
0488485NGNG
486さん、487さん
教えてくれてどうもありがとう、助かりました
5.5.1がXPでも使えるのはとてもうれしいでふ
BCC 5.6は無料公開されないのかな?でもバグ増えてたら悲すいね
0489デフォルトの名無しさんNGNG
質問させてください.Builderとはあんまり関係ないんですが
GPSユニット+Super MAPPLEでパソコンナビをやってます.
mappleはCOM1〜6のうちの選択したポートからGPSのデータを
取り込んで地図上に現在位置を表示します.COMポートからは
データの受信のみをしているようです.

1) GPSユニットからは,精度のいいデータ(1/1000度単位)と精度の悪い
(1/100度単位)データが同時に出てきてしまうので,地図上に2本の
軌跡が表示されてしまいます.
たとえば,北東に進んでいるとき,精度のいい方のデータは斜めの
軌跡になるのに,精度の悪いほうは階段のようにぎざぎざになる.
GPSのデータを一回トラップしてやって精度のいいほうのデータのみを
取り出してmappleに食わせてやることができると気持ちいい.

2) GPSユニットからは,衛星の情報も同時に送信されているけど,
mappleでは確認する機能が無いため,データを途中でトラップして
やって衛星データを表示するソフトを作って同時に動かすと便利.

3) 曲がり角の座標に来たときに「次,右です」とか教えてくれるソフトを
作りたいのですが,mappleがCOMポートを占有してしまうので,
地図を確認する場合には音声ナビソフトを終了して(COMポートを
放して)mappleを立ち上げる必要がある.信号待ちの間にこれを
やるのはつらい.これもCOMからのデータを途中で取り出せれば
簡単.

だと思うのですが,何かいい方法はないでしょうか.
使っているパソコンにはCOM1,2の二つだけがついていて,COM3〜6
は空いてる状態なので,このへんにダミーのvxdでも作ってやれば
いいんだろーかとも思っているのですが,具体的な方法がさっぱりです.
それとも,もっと簡単な方法があるでしょうか.

教えて君ですんまそん.
0490デフォルトの名無しさんNGNG
BCB6ってさ、templateを使ってるソースでコード補完使うと氏なない?
特にsizeof(T)があるとかなりの確率で氏ぬです。

今はコード補完切ってるからいいけど、BCB5より補完や宣言表示が速いから
ホントは使いたいんだよね...。
0491デフォルトの名無しさんNGNG
PlatformSDKのサンプル「Generic」をビルドしようとしたら、brc32.exeでリソースがリンクできない‥‥
BCC 5.5.1のbrc32.exe呼び出してやると何事もなかったようにリンクできるんだが‥‥

バグ?
0492デフォルトの名無しさんNGNG
 
0493デフォルトの名無しさんNGNG
>>491
brc32 単体で動かすときのオプション指定を間違えていない?
0494デフォルトの名無しさんNGNG
>>493
「brc32 generic.rc generic.exe」
これであってるはずだけど‥‥

何故かリソースのコンパイル自体は行われているがexeファイルにリソースがリンクされていないと言う現象が‥‥‥
(エラーメッセージは-v付けても特になし)

うわぁぁぁん!!
0495デフォルトの名無しさんNGNG
TStringsからAnsiStringへの代入はどうすればいいでしょうか?
static_castもdynamic_castも、コンストラクタも全部エラーになります。

StringGrid1->Cells[NumCol][i + 1] = CheckListBox1->Items[i];
0496デフォルトの名無しさんNGNG
>>495
CheckListBox1->Items->Strings[i]
0497デフォルトの名無しさんNGNG
>>496
ありがとうございます。うまくいきました!
どうやら Itemsプロパティの扱い方が、DelphiとBCBで違うようです。

BCBの方がより文法に厳しいように思います。これでやってみます!
0498デフォルトの名無しさんNGNG
>>494
なんか思い出してきた。それ BRC32 のバグだった気がする。

BRC32 は実際にはりソースコンパイルはBRCC32 を呼び出し、
.exe とのリンクは ilink を呼び出しているのだ。

BCC32 に .rc や .res を渡した場合にも、BRCC32 や ilink を
呼び出しているんだが。BRC32 に ilink の呼び出しの不具合があった気がする。

ilink を呼び出してリソースリンクできないかな?たしかそうやって解決した記憶があります。
0499デフォルトの名無しさんNGNG
質問です。

あるもらい物のソースを make すると

 [リンカ エラー] 外部シンボル 'System::__linkproc__ __fastcall GetMem()' が未解決
(C:\〜.OBJ が参照)
 [リンカ エラー] 外部シンボル '__fastcall Controls::TControl::ClientToScreen(const Windows::TPoint&)' が未解決
(C:\〜.OBJ が参照)

というようなエラーが 20 〜 30 くらい出ます。名前からすると、C++ Builder に付属の
ライブラリがリンクされてないようなことではないかと思うのですが、今まで C++ Builder
にさわったことがなく、どうして良いものかさっぱり分かりません。

上の情報だけで何らか原因/解決法が分かりますでしょうか?
0500499NGNG
あれ?
再構築したら通っちゃった。
0501デフォルトの名無しさんNGNG
4月からCを始めて今BCBをやっています
初心者板が無いようなのでここで質問させて頂きます

漢字の練習帳みたいなマス目を作って、そこをクリックや
ドラッグするとそのマスごとに線や○×などを
表示させたいのですがなにか良いコンポーネントはありませんか?
ループで線を引いて、Originで始点のマス目を割り出して、、、
と考えていました
よろしくお願いします
0502.NGNG
>>501

http://pc.2ch.net/test/read.cgi/hack/1024113956/
0503501NGNG
>502
リンク先の>36ですか?w
使いようではそう言う動きも可能かと
0504501NGNG
2,3人友達に聞いてみたけどBCBを誰も知らなかったw
BCBって一般的じゃないんだ;´Д`) 
0505デフォルトの名無しさんNGNG
>>504
BCBとDelphiは内容的にはほとんど同じだと思うが、BCBがC++なので、
初心者に対して敷居が高いからのように思う。
0506デフォルトの名無しさんNGNG
言語としてはC++の方が一般的だから、C++を採用している方が敷居が低いのが普通と思うけどな。
0507デフォルトの名無しさんNGNG
初心者が見てC++のほうが敷居が低いと思うだろうか。
0508デフォルトの名無しさんNGNG
>>504
やっぱVC++があるから
0509デフォルトの名無しさんNGNG
すんませーん。TImageについて教えて下さい。

やりたい事はImage上にマウスカーソルが来たらImage上のBMPを別のBMP
に変化させるだけです。勿論、マウスカーソルがImage上に居なくなった
場合は元のBMPに戻すと言う事です。

よくある奴ですね。でも分からない・・・
たったこれだけの事がわからない・・・ あぁなんと情けなや・・・

どなたかご存知ありませんか? 説明が面倒くさければ、その説明のWebPage
だけでも・・・

BCB5+Win2000+SP1
0510デフォルトの名無しさんNGNG
と、、すいません。何が分からないのかを記載していませんでした。

Image1とImage2があり、それに既にBMPを読み込んで配置しています。
Image1にマウスカーソルが来た場合の判定方法と言う事です。
Leaveした時も判定したいです。
0511デフォルトの名無しさんNGNG
>>510
TImageをサブクラス化してWM_MOUSEHOVERとWM_MOUSELEAVEイベント拾えばいいんでないの?
TImageにWM_MOUSEHOVER飛んでくるかは知らんが。
0512デフォルトの名無しさんNGNG
うぉ〜ぅ。了解です。スグサマやってみます。
0513デフォルトの名無しさんNGNG
Delphiで悪いんだけど・・・なんかあまりにもソックリなんで

http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/browse.cgi?index=9631
0514デルファイの名無しさんNGNG
TImageはグラフィックコントロールなのでWM〜は来ないのでは?
CM〜なら来るかも
0515510NGNG
くぅ〜 感謝感激雨あられ。皆さん、やさすぃ〜
ありがとうござまーす。

この感激〜♪を何時までも♪
0516デフォルトの名無しさんNGNG
Delphiでメッセージに応答させたい場合は message 文を書けば
いいですが、BCBでこれに対応した構文はあるのでしょうか?
0517デフォルトの名無しさんNGNG
BEGIN_MESSAGE_MAP
 MESSAGE_HANDLER
END_MESSAGE_MAP

というやつ。
0518デフォルトの名無しさんNGNG
>>517
なるほどマクロで定義されているのですね。ありがとうございます。
しかしDelphiよりかなり汚いプログラムになってしまいますね。

C++にはもともとイベントハンドラという概念がないのでifやswitch
で分岐させるか、throwで処理するしかないわけですね。でも
throwは非効率的なので分岐処理となるわけですか。
0519デフォルトの名無しさんNGNG
汚いと言われれば確かにそうかも。
でもまあ仕方なさげ。
0520デフォルトの名無しさんNGNG
>>519
DelphiはWindowsに特化して作ってあるので、これの真似をC++で
しようとすれば、どうしてもあちこちにアラが見えてくるのは仕方ない
ですね。

最近なぜ私はDelphiに移行せずBCBにこだわっているのかわからなく
なってきました。MFCでさんざん苦労してきたからかもしれません。
0521デフォルトの名無しさんNGNG
俺の場合はやっぱC++が好きだからかな >Delphiに移行しない理由
Delphiもフリー版のおかげで触ることが出来たけど、やっぱC++の方が好きだったんで。
C++ & RADってことでBCB。
0522510NGNG
   ((( )))
   (  ´Д`)
   ⊂  ._つ
   人 Y
    し'(_)

出来ねぇ・・・ 

void __fastcall TForm1::OnMouseEnter(TMessage & msg)
{
if (msg.LParam == long(Image20))
{
ShowMessage("MouseEnter");
}
}

msg.LParam がいつも0・・・ どんなコンポーネントでもマウスを合わせ
たら拾ってきやがる・・・
誰かHELP ME・・・
0523デフォルトの名無しさんNGNG
>>522
それはフォームのCM_MOUSENTERを処理してるの?
サブクラス化してるようには見えないし、
そのコードだけだとよくわからない・・・。
0524デフォルトの名無しさんNGNG
>>521
私も同じです。元々C言語で仕事してきたので(今はC++MFCメイン)、
BCBの方がすんなり入れました。VCL使う時はどうしてもDelphiの参考書を
読むしかないですね。

BCBの本がほとんど無いのは悲しいです。

>>522
たった今作り始めてみました。出来たらうpします。
0525510NGNG

すんません。CM_MOUSEENTERです・・・

private:// ユーザー宣言
void __fastcall OnMouseEnter(TMessage & msg);
void __fastcall OnMouseLeave(TMessage & msg);
public:// ユーザー宣言
__fastcall TForm1(TComponent* Owner);

protected:

BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(CM_MOUSEENTER, TMessage, OnMouseEnter)
VCL_MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, OnMouseLeave)
END_MESSAGE_MAP(TForm)
0526デフォルトの名無しさんNGNG
>>524
ぐわぁ〜
つ、作って頂けると・・・
なんともありがたや、ありがたや・・・

と言いますか・・・ 漏れ、なんて情けなや・・・
0527511NGNG
作っては見たものの、マウスの動きが早いと取りこぼす‥‥鬱だ。
VCLのサブクラスがイマイチ解らなくてSetWindowLong使ってるしw
0528510NGNG
>>527様
成る程・・・ BCBでの実装は難しいのですかねぇ〜
うーんと。ToolBarで代用とか他の道を模索してみましょうか・・・
0529デフォルトの名無しさんNGNG
>>525
>>524さんがコード書いてくれてるみたいだけど(サブクラス化の方かな?)
それはTImageを継承してコンポーネントを作るときに使う方法。
0530510NGNG
>>529
コ・コンポーネント作成ですか!!
そこまでしないとBCBでは実装出来ないと!
簡単だと思っていたんですが・・・ 大甘だったと言う事ですか・・・
0531デフォルトの名無しさんNGNG
どうやらできました。
サブクラス化までは必要ないです。TFormが受け取るメッセージをディスパッチ
すれば十分なようです。

ただし、DelphiのMLにもありますように、Panelの上にImageが乗ってたりすると
うまく行きません。

protected:
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(CM_MOUSEENTER, TMessage, CMMouseEnter);
VCL_MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, CMMouseLeave);
END_MESSAGE_MAP(TForm);

void __fastcall TForm1::CMMouseEnter(TMessage& Msg)
{
// Image1 にマウスが入った?
if (reinterpret_cast<TComponent*>(Msg.LParam) == Image1) {
// 赤く塗る
Image1->Canvas->Brush->Color = clRed;
Image1->Canvas->FillRect(Rect(0, 0, Image1->Width, Image1->Height));
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CMMouseLeave(TMessage& Msg)
{
// Image1 からマウスが出た?
if (reinterpret_cast<TComponent*>(Msg.LParam) == Image1) {
// 白く塗る
Image1->Canvas->Brush->Color = clWhite;
Image1->Canvas->FillRect(Rect(0, 0, Image1->Width, Image1->Height));
}
}
0532デフォルトの名無しさんNGNG
ほんとだ。パネルに乗ってると駄目だね。
サブクラス化したほうはOKでした。
0533501NGNG
>>501ですがもう一度同じ質問宜しいですか?

漢字の練習帳みたいなマス目を作って、そこをクリックや
ドラッグするとそのマスごとに線や記号、○×などを
表示させたいのですがなにか良いコンポーネントはありませんか?

皆さん社会人のようで、土日と平日のレスの量に差がありますねw
0534デフォルトの名無しさんNGNG
>>532
サブクラスにした方がきっちり動くのは、Delphiでも同じですね。
これで胸がすっきりしました。

>>533
TLabelのCanvasに描画するだけのというのはダメ?
0535510NGNG
>>531
ぐぉーーーーーーー 本当だーーーーーーーーーーーーーーーーーー!!
出来たーーーーーーーーーーーーーーーー

んですが、Panel上に乗ってるんですよね・・・ バッチリと・・・
これは弱った・・・ いや、、、ゲームを作ってまして・・・
操作系は全てPanel上にのせてるんですね・・・ これがまた・・・

そうですか・・・ サブクラスを勉強します・・・

お付き合い下さった方、誠にありがとうございます。
0536デフォルトの名無しさんNGNG
>>535
サブクラスについてはまた後ほど書いてみます。
ただ、テレビで見たい番組があるので、ちと遅れます。

サブクラスを書くと、friend class宣言をしないと不便なことがあるかも
しれません。これは書いてみてまたお知らせします。
0537デフォルトの名無しさんNGNG
>>533
Canvasがあれば何でもいいけど、絵を保持してくれるTImageでどう?

>>535
>>530でびっくりしてるけど、コンポーネント作りは難しくないよ。
サブクラス化でやるならこんな感じ。

--- .h ---

TWndMethod OldImageWndProc;
void __fastcall ImageWndProc(TMessage& Msg);

--- .cpp ---

※置き換え
OldImageWndProc = Image1->WindowProc;
Image1->WindowProc = ImageWndProc;

※置き換える必要がなくなったら
Image1->WindowProc = OldImageWndProc;

void __fastcall TForm1::ImageWndProc(TMessage& Msg)
{
if (Msg.Msg == CM_MOUSEENTER)
{
ShowMessage("Mouse Enter");
}

OldImageWndProc(Msg);
}
0538デフォルトの名無しさんNGNG
         ∧_∧ >>536
         (´Д` ) 書き終わってリロードせずに貼ってしまいました。
         /  y/  ヽ 切腹しますた。
    Σ(m)二フ ⊂[_ノ
        (ノノノ | | | l )
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0539510NGNG
>>537
ウワァァァァァァァァァァァァァァァァァァァァァァァァァァァァァン!!! わかりません〜〜〜〜 ・・・・

・・・
・・・

.hの部分はどこに追加しますか?・・・
.cppの置き換えって・・・ ・・・なんでしょう?

ってレベルなんですね・・・ いや、、、 もっと調べまする・・・
すんません。VBからの移行組なもんですから、そこら辺りはさっぱり・・・
0540511NGNG
とりあえずWin32APIで。
VCLは初心者レベルなので勘弁w

//---------------------------------------------------------------------------
//フォームの配置はForm1(TForm)->Panel1(TPanel)->Image1(TImage)。
//動作にはWin98/NT4以降orWin95+IE3以降必須
//
TForm1 *Form1;
WNDPROC oldProc;
BOOL tmeFlag = TRUE;

LRESULT APIENTRY MyProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
/*
case WM_MOUSEHOVER://TPanelにセットしているせいか、Panel上にマウスがある時に常時流れているので使えない(;´Д`)
break;
*/

case WM_MOUSELEAVE:
//マウスが離れた時の処理
Form1->Image1->Picture->LoadFromFile("適当0.BMP");
tmeFlag = TRUE;
break;

}

return CallWindowProc(oldProc, hwnd, msg, wParam, lParam);
}

void __fastcall TForm1::FormCreate(TObject *Sender)
{
oldProc = (WNDPROC)SetWindowLong(Form1->Panel1->Handle, GWL_WNDPROC, (UINT)MyProc);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
if (tmeFlag == TRUE) {
//マウス進入時の処理
Image1->Picture->LoadFromFile("適当1.BMP");
tmeFlag = FALSE;
}

TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_LEAVE;
tme.hwndTrack = Panel1->Handle;
tme.dwHoverTime = HOVER_DEFAULT;
_TrackMouseEvent(&tme);

}
//---------------------------------------------------------------------------

0541510NGNG

いや、漏れが甘い夢を見ていたようです。
大人しく別の方法を模索します。

ありがとうございました。
0542デフォルトの名無しさんNGNG
なんか入り乱れてるけど、とにかく全部貼っちゃいます
>>539
ヘッダはこんな感じ

class TForm1 : public TForm
{
__published:
TImage *Image1;
private:
TWndMethod OldImageWndProc;
void __fastcall ImageWndProc(TMessage& Msg);
public:
__fastcall TForm1(TComponent* Owner);
__fastcall ~TForm1();
};

cppソースはこんな感じ

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
OldImageWndProc = Image1->WindowProc;
Image1->WindowProc = ImageWndProc;
}

__fastcall TForm1::~TForm1()
{
Image1->WindowProc = OldImageWndProc;
}

void __fastcall TForm1::ImageWndProc(TMessage& Msg)
{
if (Msg.Msg == CM_MOUSEENTER)
ShowMessage("Mouse Enter");

OldImageWndProc(Msg);
}
0543デフォルトの名無しさんNGNG
とりあえず茶でも飲め
     旦~
 旦~     旦~
     ヽ )ノ    ビュンビュン
旦~ ⌒(゚д゚)ノ 旦~
    /. ( ヽ
 旦~     旦~
     旦~
0544デフォルトの名無しさんNGNG
  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ・∀・) < たまに突然盛り上がるね。
 (つ旦と)   \______________
  と_)_)
0545511NGNG
   | \
   |Д`) BCBでWin32API直叩きはやっぱり邪道かな?
   |⊂
   |
0546510NGNG

>>536様 >>511様 >>542様

出来ました〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
ウキィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィ

はぁ〜 苦節1日・・・ ようやく出来ますたぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ

ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ

ご迷惑をお掛けいたすますたぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ

うれすぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃ
ぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃ
0547デフォルトの名無しさんNGNG
>>545
そんなことないですYO
APIも使えた方がいいに決まっとります (´・Д・`)ゝ
漏れはAPIあまり分かりませんけど…
0548510NGNG


ボソボソ・・・





何個もある場合はどうしたらいいんでしょう・・
Imageが40個もあるんですが・・
0549デフォルトの名無しさんNGNG
>545
俺もAPIで組める人尊敬ですよ
>546
おちけつ
0550デフォルトの名無しさんNGNG
>>548



                          ヤッパリw

コントロールに頼らず、画面サイズのテーブル作ってボタンの情報を格納、MouseMoveイベントで自力チェックしたほうが簡単な(・∀・)ヨカーン
0551510NGNG

ImageListからImageへの読み出し方ってご存知ないですか?
BCB使い初めてからずっと疑問なんですが、、、 わからない・・・



教えられついでにご質問します・・・
0552510NGNG

ここまで出来ればもう・・・ 出来たも同然なんですが・・・

>>550 それを言わないで・・・ 悲しくなって来ますので・・・

ウワァァァン!!!!
0553デフォルトの名無しさんNGNG
>>551
ヘルプのTCustomImageList::GetBitmap()
0554510NGNG
くっ・・・ 出来たと思ったのに・・・

後、もう少し情報をくださーい。
ImageList2->GetBitmap(1,Image165->Picture->Bitmap);

で、、、今までの関連TImageで交互に変化させようとしました。
すると、拾ってきません。いや、正確には拾ってくるのですが、ブレークポイント
を置いてF9すると変化します。
ですが、何もしないまま素通りさせると拾ってきません・・・

タイミングの問題なんでしょうか・・・
0555510NGNG
いやもう少し具体的に・・・

CM_MOUSEENTERでImageList2のindex0のBITMAPを。
CM_MOUSELEAVEでImageList2のindex1のBITMAPを。

となっています。

で、今まで御教授頂いたCODE上でBITMAPを変化させようとしています。
所が、何も変化しなくなってしまいました。
イベントには飛んで来ています。デバッグでは変化は成功しました。

ブレークポイントも何も置かない場合のみ変化しません。
と言う事です。
0556デフォルトの名無しさんNGNG
>>554
TImage::Refresh()で再描画させてみれば?
0557デフォルトの名無しさんNGNG
ちらつくようなら、
0558510NGNG

ってか、、、、 ここにいる方達は天才ですか?
と言いますか、漏れのつたない文章を理解し更に解答まで素早く用意する・・・

マジで天才ですか? いや、言わせて下さい。



出来ました!!!!! と!




おいおい、、、漏れの3ヶ月って一体何よ・・・
VBでの . が -> に変わっただけで分からないとか。

ImageListからBITMAPが取れないとか。 なんなんだ、漏れ。
本当に自信を無くしました・・・
0559510NGNG

これで漏れの殆どの疑問が解決してしまった・・・
凄い人達もいるもんだ・・・

世の中広いなぁ〜
0560デフォルトの名無しさんNGNG
   A
  (゚o゚)<よくわからないけど、おめでとう
  (ー)ー
   ))
0561デフォルトの名無しさんNGNG
Imageのサブクラスを作成した場合(例えば名前をTMyImageとする)、
これをIDEに登録(Register)してから、Formに貼り付けて使わないと
いけませんね。
0562510NGNG
何から何までありがとうございます。

全然、関係は無いのですがBuilderはINIファイルの書き込み・読み出しとかが遅
いとかを昔MLで聞いた事があるのですが本当なのでしょうか?
また、INIに書き込む事が出来ない事があるとも聞きましたが・・・

他にゲームの設定とかを暗号化したファイルに記憶させたいのですが、私のゲーム
はインストーラを使いません。インストーラを使わなくて暗号化したファイルを作
成する事って可能なのでしょうか?
0563TeamB/2ch ◆SE69s0c2 NGNG
>BuilderはINIファイルの書き込み・読み出しとかが遅
>いとかを昔MLで聞いた事があるのですが本当なのでしょうか?
>また、INIに書き込む事が出来ない事があるとも聞きましたが・・・

CBuilder 1 のバグ。といわれると否定できませんが、まずガセでしょう。

どちらの ML でしょうか。
0564510NGNG

http://dev.sfdata.ne.jp/cbuilder/
のMLでそのような事を仰っていた方がいました。

in,outの部分を一から作った方もいらっしゃったとか。
0565デフォルトの名無しさんNGNG
>>564
ML の番号とかお判りになりますか?
http://www.sfdata.ne.jp/windev/cbuilder/
で閲覧できます。
0566TeamB/2ch ◆SE69s0c2 NGNG
おっと。名無しさんになってしまった...

".ini" で検索した結果を見る分には問題となるような投稿記事を見つけることは
できませんでした。

NT で管理者権限云々の話は、OS のセキュリティ機構の問題ですからバグとは
いえないでしょう。書込み禁止の FD に書き込めないのはなぜだ?というような
話題ですから。
0567デフォルトの名無しさんNGNG
>>562
速度とか不安があるなら↓見ておくと良いのでは

・INI ファイルを扱うもう1つのクラス
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=5#0287.txt
0568510NGNG
>>566
申し訳ございません。私も探す事が出来ませんでした・・・
見たと思ったのですが・・・

関係無い事で時間を取らせてしまいました。この場にてお詫び申し上げます。

>>567
Tmeminiですか・・・ 初めて知りますた。
iniファイルが存在してそれを初めに読み込んでキャッシュすると言う認識
で大丈夫なんですよね。

成る程。こう言う物もあるのか・・・ 速そう・・・

全然話は違いますが、ファイルを暗号化する一般的な手法ってご存知無い
ですか? 解読をやろうと思えば何でも出来るので仕方無いのですが、素
人に有効であれば良い程度の暗号化なんですが・・・
0569デフォルトの名無しさんNGNG
XORでもやっとけば?
0570デフォルトの名無しさんNGNG
pascalコードでよければ 前に書いたのがあるから使って

http://pc.2ch.net/tech/kako/1017/10178/1017803412.html
77,84
0571510NGNG
>>570
う、、、うわぁ〜 む、難しい・・・

ぜんっぜん理解出来ません。これは・・・
Delphiだからとかではなく、、、、 例えBuilderだったとしてもさっぱり・・・

XORの原理から勉強しないと・・・ 漏れの脳みそでは・・・・
0572他のプログラムの起動NGNG
簡単なプログラムランチャーを作ろうと思っています。
あるプログラムから他のプログラムを起動するのってどんな関数
がありましたっけ。DOS時代には子プロセスの起動の関数が
あったように記憶しているのですが。。。

よろしくお願いします。
0573デフォルトの名無しさんNGNG
execXX系/WinExec/CreateProces
0574510NGNG

すんません。またまた質問です。

VBとかで言うPublic変数とかグローバル変数ってBuilderではどうやるん
でしょ。hのPublicに記載するんでしょうか。前やろうとした時に全然う
まく動作しなくて。

具体的にはForm1とForm2の両方が1つないしは2つの変数の値を参照します。
変数の値により何かを分岐させようと思っているのですが・・・

XOR・・・ 難しいですねぇ〜
0575デフォルトの名無しさんNGNG
>>574

C++とは言わん。最低限Cくらいは勉強しとくことをお勧めする。
とりあえずexternを検索しる。

XORはビット演算知ってれば簡単だと思うが。というか言語ガイド読んだか?
0576デフォルトの名無しさんNGNG
>>574
Form1かForm2のどちからのヘッダーファイルのグローバル部(クラス宣言の外)
に変数を定義する。

もう一方のグローバル部にはexternを付けて変数を外部宣言する。
0577510NGNG
>>575
そうですよねぇ。VBからCを素っ飛ばしてC++に来ましたから・・・
知識が滅茶苦茶飛んでるんです。

Builderで業務アプリは組んだんですが・・・ ま、小さい小さい物ですが。
どっちにしても知識不足は認識しておりますので、勉強いたします。

ありがとうございます。
0578510NGNG
>>576
ありがとうございます。スグサマ試してみます。
0579510NGNG
ウゥ・・・ 拾ってこないっす・・・

Form1のヘッダー・・・ つまり
extern PACKAGE TForm1 *Form1;
の下に
int phensu;
と記載しました。

そして、Form2のヘッダー extern PACKAGE TForm2 *Form2;
の下に
extern phensu;
と記載しました。

そして

Form1側で phensu = 1; Form2->Show(); として

Form2のFormActivateイベントでphensuが1であればこれ、phensuが2であれば
これと分岐させようとしました・・・ 

がphensuは 0 となっており、どれにも引っ掛かりません。

この場合の期待値は 1 です・・・ 何が悪いんでしょう・・・
0580デフォルトの名無しさんNGNG
>>579
ん?俺の所で試してみたけど動くぞ。

--form1.h--
int sema;

--form1.cpp--
void __fastcall TForm1::Label1Click(TObject *Sender)
{
sema = (sema == 1) ? 0 : 1;
Form2->Show();
}

--form2.h--
extern int sema;

--form2.cpp--
void __fastcall TForm2::FormActivate(TObject *Sender)
{
if (sema == 1)
Label1->Caption = "Active";
else
Label1->Caption = "Form2";
}

form1のラベルをクリックする度に、form2のラベルのキャプションが変わる。
0581510NGNG
すんません。やっぱり漏れの方では動きませぬ・・・ 理由がわからない・・・

余計なものを除いてとりあえず記載しときます・・・

Form1.h

__published:// IDE 管理のコンポーネント
private:// ユーザー宣言
public:// ユーザー宣言
protected:
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
int phensu;
//---------------------------------------------------------------------------
#endif

Form2.h

__published:// IDE 管理のコンポーネント
private:// ユーザー宣言
public:// ユーザー宣言
__fastcall TForm8(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
extern int phensu;
//---------------------------------------------------------------------------
#endif
0582510NGNG
Form1.cpp

phensu = 1; Form2->Show();

Form2.cpp

void __fastcall TForm2::FormActivate(TObject *Sender)
{

ShowMessage(phensu);

if (phensu == 1)
{
}
}

上記のShowMessageでは 0 となりまする・・・
記載する場所を間違えているのでしょうね・・・ 多分・・・
0583デフォルトの名無しさんNGNG
>>581
うーんこのソースからだけではおかしなところはないですねえ。
強いて言えば"TForm8"かな?TForm2なのに?

どこかいいうpろだ教えてくだされば、こちらで試作したファイルを
まるごとうpしますよ。
0584510NGNG
>>583
ごみんなさい。Form2ですた・・・

すんません。うpを知らないんですぅ〜〜〜〜〜〜〜〜〜〜〜〜
はふぅ〜 どーしよ

探してきます。
0585510NGNG
とりあえずざっと調べてみますた。

http://50megs.com/
50MB
http://angelfire.lycos.com/
50MB・FTP
http://elitecities.com/
5MB・FTP・MAIL
http://esmartstart.com/
20MB・FTP・MAIL
http://fortunecity.com/
25 MB・FTP
http://fsn.net/
30MB・FTP・CGI
http://geocities.com/
15MB・4月からFTP有料化・MAIL
http://graffiti.net/
20MB・MAIL
http://homestead.com/
12MB
http://internettrash.com/
10MB・FTP・MAIL
http://redrival.com/
20MB・FTP
http://tripod.lycos.com/
20MB・FTP・CGI
http://web1000.com/
50MB・FTP・広告無し・アダルト向け?
http://webprovider.com/
20MB・FTP・CGI
http://www.port5.com/
portland系・15MB・FTP・CGI・SSI・PHP・SENDMAIL・広告無し
<中国語>
http://heha.net/
不明
http://uhome.net/
38MB・FTP・CGI・SSI・PHP・SENDMAIL
0586デフォルトの名無しさんNGNG
>>585
せっかくうpロダを紹介していただきましたが、どれも登録が必要な
ようですので、2ch系のうpロダにうpしました。
番号は85のDoubleFormsです。
ZIPで圧縮しました。

http://hikky.tsukaeru.jp/clip/clip.cgi
0587510NGNG

http://kari.to/upload/index.cgi
って遅かった・・・
0588510NGNG

うぅ・・・ >>586様へ

>>586様のCodeでは動きます。確かに・・・
でも漏れの方では全然・・・

試作で別の奴を作ってみました。それは動くんです・・・

でも本番の奴では動かない・・・ あぁ・・・ 理由がわからない・・・
こうなると設定がらみでしょうか・・・ 
念の為に再構築もやってみましたが変わらず・・・

こんな所でつまずくとは・・・

0589デフォルトの名無しさんNGNG
>>588
外してるかもしれんけど、intの前にvolatile付けてみるとか。最適化で
うまくいってないのかもしれないから。
0590510NGNG

何から何までありがとうございます。

volatileを付けると・・・
「phensuが複数見つかった」とコンパイラに怒られますた・・・

タイミングとかの問題でしょうか・・・ もしかして・・・
0591デフォルトの名無しさんNGNG
>>590
volatile int phensuは一つだけ、後のファイルは全部
extern volatile int phensuにしてみたら?
0592510NGNG

こいつは手強い・・・

Form1.h

volatile int phensu;

Form2.h

extern volatile int phensu;

としますた。ダメっす・・・

宣言は上記2つしか今は無いっす・・・
0593510NGNG
Form1.h側の

volatile int phensu = 100;

とかにすると100を拾ってこれるんですがねぇ〜 これじゃ〜・・・
0594デフォルトの名無しさんNGNG
メンバとかローカルに別のphensuがあるヨカン
0595510NGNG
>>594様
その可能性も疑ったのですが・・・ 今試しに

ppppppphensu

と絶対ありえない変数で試したのですが・・・ やっぱり 0 ・・・
何か不味いんでしょうかねぇ〜

Formが多すぎるんですかねぇ〜

実際のFormは今現在 8つ あり、実際にはForm1 と Form8とのやり取りに
なっています。
多いからダメってのも無いとは思うんですが・・・
0596デフォルトの名無しさんNGNG
>>592>>593
おかしいねえ・・・・ここまでしたら動きそうなものだが。
どこかにケアレスミスがあると思うよ。
0597デフォルトの名無しさんNGNG
>>595
仕事のファイルでないなら、うpしてみませんか?
0598510NGNG
>>597
そうですねぇ〜 了解です。先程のうpの場所に上げてみます・・・

ただ、やばめな所は全部削除して置きます・・・
0599510NGNG

かなりの部分を修正しまくらなくてはならない事がわかったので、そのまま
うpしますた。
87番っす。Project1
0600510NGNG
>>597
って言いますかもろ仕事がらみなんですが・・・ まあどうでもいいっす。
グローバルすら出来なけりゃ仕事もくそもないですから・・・
0601デフォルトの名無しさんNGNG
>>599>>600
了解です。Getできましたので、もし差し支えがありましたら消しておいて
下さい。今から見ます。
0602デフォルトの名無しさんNGNG
俺、へたれだからグローバル変数使いたいときは
ヘッダファイルをインクルードしていた。

この場合は、Unit8.hで
#include <Unit1.h>
して、Form8.cppの中でUnit1->phensuとしてやると。
これって、純粋な意味ではグローバル変数とは言わないんだろうか?
ひょっとして俺は、いままで生き恥を晒してきたのだろうか。。。
0603デフォルトの名無しさんNGNG
borlandのリンカは、重複したシンボルがあっても
へいきでエラーなしでリンクしちゃうから、
Form1.hをincludeしてるそれぞれの.cppで
べつのアドレス(べつのphensu)を参照してるんじゃないかな。

てゆーかさ、ふつー、.hファイルは
extern int phensu;
ってかいといて、
どれかひとつの.cppファイル(Form1.cpp)に
int phensu;
って書いて実体を確保しとくもんじゃないの?
0604510NGNG
>>602
でも実現出来てるんですよね? 漏れは実現すら出来ないなんて・・・

OH〜 MyGod・・・
0605デフォルトの名無しさんNGNG
>>603
> てゆーかさ、ふつー、.hファイルは
> extern int phensu;
> ってかいといて、
> どれかひとつの.cppファイル(Form1.cpp)に
> int phensu;
> って書いて実体を確保しとくもんじゃないの?

だよな
0606デフォルトの名無しさんNGNG
>>602
Unit1でpublic変数として定義してあれば、どのクラスからも見れますから、
それでもいいんじゃないでしょうか。

この場合、phensuがどのクラスに属するべき変数であるかで、externに
すべきかクラス変数にすべきか決まります。Unit1->phensuでも構わない
と思います。

ところで、バグの原因がわかりました。Unit1.cppの347行目でForm8を
表示していますが、この時点ではphensuは0です。そして、この行は
一回しか呼び出されません。
0607510NGNG
うpしたファイルってどうやって消すんですかねぇ〜
消し方わからねーー
0608デフォルトの名無しさんNGNG
>>603>>605
BCBの場合フォーム一つにヘッダファイル一つが作られますから、
どちらでもいいと思います。
603さんのようにするには、すべてのフォームからインクルードする
ヘッダファイルを一つ作り、そこにextern宣言することになります。
0609デフォルトの名無しさんNGNG
>>607
画面の下に記事No.と削除キーを入れる所がありますので、そこに入力して
記事削除ボタンを押せばいいと思います。
0610510NGNG

>>606
誠に申し訳ございません!!!

283行目の方です・・・ で、「翌年」を押すと問題のForm8に飛びます・・・

紛らわしくてすいません・・・ です・・・
0611デフォルトの名無しさんNGNG
>>610
そうなんですが、「翌年」を押した時、最初の一回目は347行も実行されるん
です。mmonth==0だからでしょう。その時におかしいのだと思います。

「翌年」を二回目以降押すと、ちゃんと1になっています。
0612510NGNG
>>609
すいませんでした。下の方に削除ボタンがあるのを見落としておりました。

ご迷惑をお掛け致しました。
0613510NGNG
>>611

ぐわぁ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
本当だぁ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

完全なロジックミスと言う事だぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
なんとなんと恥ずかしいぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃ
0614デフォルトの名無しさんNGNG
つまり、280行でImage21Click()を呼び出していますが、Image21Click()の
347行目でphensu=0のままForm8を表示してしまっています。
0615510NGNG
?????????????????????????

あれ? 何にもしてねーのに拾うようになったぞ?
何かしたかな・・・ F9押してコンパイルはかけたが・・・

あれ?あれ?あれ?あれ?あれ? 何故? どうして?
0616デフォルトの名無しさんNGNG
とりあえず茶でも飲んで落ちつけ
     旦~
 旦~     旦~
     ヽ )ノ    ビュンビュン
旦~ ⌒(゚д゚)ノ 旦~
    /. ( ヽ
 旦~     旦~
     旦~
0617デフォルトの名無しさんNGNG
>>615
何を拾うって?
0618510NGNG
とりあえず・・・ 落ち着きます・・・ ふぅ〜

ってよく見たら、347行目近辺をコメントしてしまっていた・・・
もうアフォかと・・・ 何やってんだか・・・

ってかこれって会社で出すゲームなんだよな・・・ やっちまった・・・
0619602NGNG
みなさん、いろいろとありがとうございます。
まぁ、自分がやっていた方法もBCBに
かぎっては(?)あながち間違いでも無いようですね。

ただ、正直なところexternの方法は知らなかった(恥)ので
ちゃんと勉強して使い分けられるようになりたいと思います。

>>510
色々大変そうだけど頑張ってくださいね。
おかげさまで、自分も勉強になりました。
0620デフォルトの名無しさんNGNG
(´・Д・`) b グッドラック
0621デフォルトの名無しさんNGNG
>608
その通り、Form1つにつき.h1つだけどさ、
Form1内でForm2を使う時はForm2.cppでForm1.hをincludeするでしょ。
もちろん、その逆も。
そういう部分(.h)にextern無しの変数を宣言するなんて信じられないね。
0622デフォルトの名無しさんNGNG
>>621
うーむ、確かにCやC++の基本に忠実に沿えば、その通りですね。
私は他のフォームからどこかのフォームのヘッダファイルをインクルード
するなんて事はしてませんでしたから、今まで問題なかったようです。

これから気をつけます。
0623デフォルトの名無しさんNGNG
> 私は他のフォームからどこかのフォームのヘッダファイルをインクルード
> するなんて事はしてませんでしたから、今まで問題なかったようです。

これって、動的なフォーム生成すらやったことがないってことですね。
0624510NGNG
>>619
頑張ります・・・ こんな所でつまずいてばっかりですけど・・・
ギャグですね・・・ もはや・・
0625デフォルトの名無しさんNGNG
>>623
仕事で使ったことがないもんですから・・・・・・
まさにBCBは遊びのツール。でもC++は真面目に勉強してるぞーーー!!
どうもDelphiの快適さから抜け出すのに時間がかかりそうです。
0626デフォルトの名無しさんNGNG
Borland Kylix 3
Borland Breaks New Ground with C++ Technology for Linux
http://www.borland.com/news/press_releases/2002/07_23_02_Kylix3.html
0627デフォルトの名無しさんNGNG
>625
Delphiではusesに含めなくても他のフォーム(Unit)や
そのUnitに含まれる関数・グローバル変数等を使えるのかい?

てゆーかさ、Formに限らないけど、値の受け渡し等にinclude必須じゃん。
むしろ、includeしないで効率良くインスタンス間でデータが渡せるなら教わりたいよ。
(メッセージとかファイル/パイプ経由とかは無駄が多すぎ)
これがコンパイルを遅くしてる大きな原因なんだから。
0628デフォルトの名無しさんNGNG
>includeしないで効率良くインスタンス間
 コンポーネント型継承なら、実行型情報を使うといいよ
 毎回検索したら遅いから、 メソッド名やプロパティ名は
 最初に検索しておくといい
0629510NGNG
>>606様

お礼を申し上げておりませんでした。ありがとうございました。
本日「は」快適に作業させて頂いています。
0630デフォルトの名無しさんNGNG
>>627
Delphiはヘッダーファイルという概念がないので uses文で取り込む
コンポーネント等を指定しますが、その癖が抜けてなかったのです。
C/C++のexternは概念的には理解しているのですが、やはり実際に
使わないと覚えられませんね。

>>628
dynamic_castを使うのですね。Senderを動的キャストして使わなけれ
ばならない場面がたくさんあり、Delphiの is や as と似ていると思いま
した。

>>629
いえいえこちらこそ大変勉強になりました。プロジェクトが無事完結す
るといいですね。
0631デフォルトの名無しさんNGNG
皆様、MDI子フォームをnewで生成させる時、コンストラクタへ渡すOwner引数には
何を渡しているでせうか?
そのイベントハンドラを所有するフォームのOwnerプロパティ?
Application変数?メインフォーム?それともNULL?
その辺がまともな発想の範囲だと思いますが、
今回の仕事の前任者は、平気でMDI子フォームをOwnerに指定しまくっています。
個人的にはとっても気持ち悪いのですが、急ぎの仕事なので
明らかな弊害がなければ放置したいです。
とりあえず、「Owner消滅でそのフォームのOnCloseやOnDestroyが走らない事による弊害」
はないのが判明しているので、そういう甘えた気分でいるのですが・・・
皆様のご意見をお待ちしております。
0632631NGNG
・・・簡単なサンプルを示しますと、こんな感じです。

TMainForm *MainForm; //メインフォーム
に
TFirstChildFormやTSecondChildForm等の子フォームクラスがあったとします。

んでもって、こんな感じです・・・
void __fastcall TFirstChildForm::Menu1Click(TObject *Sender)
{
TSecondChildForm *s = new TSecondChildForm(this);
}
これでいいのか〜?と思う次第であります。
0633困ったNGNG
フォルダのアイコンをドラッグして自作プログラムに受け入れさせたいのですが
方法がわかりません。
VCLコンポーネント同士ならいろいろできるのは分かっているんですが、、
受け入れる情報は元ファイルのフルのパス名だけで十分です。
0634デフォルトの名無しさんNGNG
>633

http://www.google.co.jp/search?hl=ja&q=DragAcceptFiles+WM_DROPFILES+builder
0635困ったNGNG
うわ、どんぴっしゃりの例がでています。ありがとう >634
0636510NGNG

またまたまた教えてくらさい。

TreeViewの背後にBitmap等のイメージを貼り付けるのはどうやればいいん
でしょ。背後が白ではちょっとみっともないので・・・

0637デルファイの名無しさんNGNG
ヘルプのTCustomTreeView.OnCustomDrawの「例」
0638510NGNG
ありがとうございます。スグサマ試しました。

背景は確かに描画されましたが、Node回りが白くなってしまいます。
で、CustomDrawItemを調べたのですが、、、、 これがよくわからない・・・
HELPを見るに、自分で全て描画処理をしなければ行けないと言う事は理解出来た
のですが・・・

こんな感じで訳分からん状態っす。

TRect NodeRect;
DefaultDraw = false;
NodeRect = Node->DisplayRect(true);
TreeView1->Canvas->FillRect(NodeRect);

NodeRect = Node->DisplayRect(true);

TreeView1->Canvas->Brush->Style = bsClear;
NodeRect.Left = NodeRect.Left + (Node->Level * TreeView1->Indent);
TreeView1->Canvas->TextOutA(NodeRect.left,NodeRect.Top,Node->Text);

やりたい事はアイテム回りが貼り付けた背景と同化したいと言う事っす・・・
0639510NGNG

しまつた。これがDraw関連のコードです・・・

void __fastcall TForm1::TreeView1CustomDraw(TCustomTreeView *Sender,
const TRect &ARect, bool &DefaultDraw)
{
TCanvas *pCanvas = TreeView1->Canvas;

pCanvas->StretchDraw(ARect, Image14->Picture->Bitmap);

DefaultDraw = true;
}

//---------------------------------------------------------------------------
void __fastcall TForm1::TreeView1CustomDrawItem(TCustomTreeView *Sender,
TTreeNode *Node, TCustomDrawState State, bool &DefaultDraw)
{

TRect NodeRect;

DefaultDraw = false;

NodeRect = Node->DisplayRect(true);
TreeView1->Canvas->FillRect(NodeRect);

NodeRect = Node->DisplayRect(true);

TreeView1->Canvas->Brush->Style = bsClear;

NodeRect.Left = NodeRect.Left + (Node->Level * TreeView1->Indent);

TreeView1->Canvas->TextOutA(NodeRect.left,NodeRect.Top,Node->Text);


}
0640デフォルトの名無しさんNGNG
>>639
> TreeView1->Canvas->FillRect(NodeRect);
↑の代わりにCopyRectでビットマップを描画しないといけないのでは。

でも、TreeViewの背景にビットマップを表示するのはちょっと大変そう。
ヘルプにも
「背景ビットマップの描画は実際に CustomDraw によってサポートされていないため,〜」
って書いてるし。
0641510NGNG
>>640
何気に難しいんすよ・・・ 無地の白で行こうかなんて思ってたり・・・
でも画面のバランス的にはやっぱりまずいんですよね・・・

ってかずっとやってるのに未だに・・・
0642デフォルトの名無しさんNGNG
BCB6のStrUtilsを使うには何をincludeすればいいのでしょうか?
VB6からの移植で、LeftStr等の関数を使うと対比・確認がやり易くなるかと思ったんですが、
コンパイル時に「E2268 未定義の関数 'LeftStr' を呼び出した」と言われました。
0643デフォルトの名無しさんNGNG
>>642 #include <StrUtils.hpp>
0644642NGNG
>>642
事故レス、スンマソン見つかりますた
#include <strutils.hpp>
でした。
回線切って(以下略
0645642NGNG
>>643
ありがとうございますた
0646デフォルトの名無しさんNGNG
Personal版だと、シェアソフトとか作っちゃダメなのかな???
Professional版は、60000かぁ〜・・・
高い・・・・俺には買えない・・・・

0647デフォルトの名無しさんNGNG
>>646
シェアウェア作って売れれば元なんてすぐ取れるんですけど・・・・
0648デフォルトの名無しさんNGNG
>>647
売れればね...。
0649デフォルトの名無しさんNGNG
>>647
ベクターに登録後、DL件数550件余
未だに購入どころか要望やら批判やらも含めて何のメールも来ない。
きっと、シェアウェアとか言いながら、何の制限もかけてないせいだと思いたい。
0650デフォルトの名無しさんNGNG
>>649
それは寂しいね。あなたのソフトの質は高いのだと信じたいが、それに
しても冷たいユーザーだな。
0651デフォルトの名無しさんNGNG
何のメールも来ないってのは、ちょいさびしいな。
0652デフォルトの名無しさんNGNG
ワザと目に見えるバグを仕込む。これ最強。
0653デフォルトの名無しさんNGNG
すみません。Tableに手を出して行き詰まっています。

Delphiでは、DataSet.Fields[i].OnValidate という風に、入力値チェックの
イベントを呼び出すことができました。

しかし、BCBでは、TFieldsオブジェクトにValidateメソッドはありません。
だから、 DataSet->Fields[i].Validate() と書くとコンパイルエラーに
なってしまいます。これをどう解決したらよいのでしょうか?

それから、Delphiでは、イベントハンドラの有無を Assigned関数でチェック
できましたが、BCBでは同様のチェックをどのように行えばよいのでしょ
うか?

よろしくご指導のほどお願い致します。
0654デフォルトの名無しさんNGNG
TFieldsにはValidateメソッドはないが TField には Validateメソッドはある
DataSet->Fields[i].Validate() は2つの間違い
1、DataSet->Fields[i] は参照ではなくポインタを返す
2、Validateには・・・ヘルプをみろ

Assignedは、Delphiでは 引数無しのメソッドは () を付けないので
if xx.Onxx=nil then のように書くとOnxxxメソッドが呼ばれてしまう場合があるから必要なんだけど
C++では必要ない
CのようにNULL と比較してもいいし 論理型にポインタ型が代入される時の仕掛けを利用してもいいし
0655デフォルトの名無しさんNGNG
>>654
レスありがとうございます。
結局、次のような方法で動くようです。

1.関数が登録されているかどうかチェック
  if (&DataSet->Fields->Fields[i]->Validate)のように、関数のポインタ
  のアドレスをチェックする。

2.OnValidateの呼び出し
DataSet->Fields->Fields[i]->Validate(reinterpret_cast<void *>(&DataSet->Fields[i]))

しかし、まだ疑問が残ります。
2.で、確実にValidateが呼び出されているのかどうか、それから、実際の
フィールドにフォーカスを当てても、変更不可能となっていることなどです。
ここら辺の情報について、ヘルプでは情報不足で、BCB関連の書籍もない
ので、迷っています。
0656デフォルトの名無しさんNGNG
>>655
また間違えてました。

1.関数が登録されているかどうかチェック
  if (DataSet->Fields->Fields[i]->OnValidate)のように、関数のポインタ
  のアドレスをチェックする。

でした。Validate()は必ず存在しているので、この関数のアドレスをテスト
するのは無意味でした。
しかしこれも合っているのかどうか怪しいです。
0657デフォルトの名無しさんNGNG
>>655 2,は関数呼び出しスタイルになっているので 確実に関数が呼ばれます
0658デフォルトの名無しさんNGNG
>>657
亀レススマソ。
Validate()が void * を受け取る仕様になっているため、確実に実行
されているかどうか確かめるすべがないのです。

DelphiをC++に移植する時点で生じた食い違いだと思いますが、
だましだまし使っていこうと思います。

それにしても、マニュアルなりヘルプなりにValidate()の詳しい説明
があってもいいのに( ´Д⊂ヽ。
0659デフォルトの名無しさんNGNG
> 確実に実行されているかどうか確かめるすべ

というのは、Delphiで言うとどんなコード?
Delphiのコードで説明しても結構ここの人はわかるかもよ。
0660デフォルトの名無しさんNGNG
>>659
ありがとうございます。

実はDelphiオフィシャルコースウェア基礎編P276のコードをBCBに移植して
いてつまづいたものです。

元のコードは、

if Assigned(DataSet.Fields[i].OnValidate) then
try
DataSet.Fields[i].OnValidate(DataSet.Fields[i]);
except
DataSet.Fields[i].FocusControl;
raise;
end;

というものです。DelphiではOnValidateという述語にいろんな意味が持たせて
あるようですが、BCBでは厳密になっており、このような書き方はできません
でした。

もしわかりましたらご指導の程宜しくお願い致します。
0661デフォルトの名無しさんNGNG
こうだろうか。

if (DataSet->Fields[i]->OnValidate)
{
    try
    {
        DataSet->Fields[i]->OnValidate(DataSet->Fields[i]);
    }

    catch (...)
    {
        DataSet->Fields[i]->FocusControl();
        throw;
    }
}
0662デフォルトの名無しさんNGNG
if (DataSet->Fields->Fields[i]->OnValidate /* != NULL */)
でないかな。
0663デフォルトの名無しさんNGNG
>>661
私も最初はそのように書いたのですが、BCBのFields[]はTFields*型で
あって、TField*型でない(非常に紛らわしい)ので、OnValidate()メソッド・
イベントはメンバにないのです。

なぜこのような仕様になっているのかわかりません。

DataSet->Fields->Fields[i]のようにするとTField*型になってうまく行く
ようです。これで少し試してみます。どうもありがとうございました。
0664デフォルトの名無しさんNGNG
>>662
あっ、答えてくださっていたのですね。ありがとうございます!
0665デフォルトの名無しさんNGNG
TStringsやTxxxItemsなんかも、
同じようにStrings->String[i]や、Items->Item[i]で参照する。
Delphiのpropertyが、沿え字つきの間接参照を
一段省略出来る構文になっているんだと思う。
0666661NGNG
Σ(゚д゚ |||)ガーン >>662-663 そうなんだ。
           途中のバージョンで変わったみたいね・・・
           (BCB3はTFields型がなくて>>661でOKだったの。)
0667デフォルトの名無しさんNGNG
>>665
なるほど、そういうふうに解釈すると筋が通りますね。
Delphiの参考書と首っ引きで悩んだ末に出した答えが偶然合って
いたのか・・・・これからは論理的に理解して書けます。嬉しいです。

>>666
昔はそうだったのですね。BCBは6から初めて使っているので、
まだ全然わからないのです。Delphiと、C++を頭の中で融合させる
のに必死になっています。
0668デフォルトの名無しさんNGNG
Canvas->TextOutと入力すると、コード補完でTextOutAと出る
のですが、これは仕様でしょうか?
0669デフォルトの名無しさんNGNG
>>668 変だね TextOutA は WindowsAPIだと思うんだけど
0670デフォルトの名無しさんNGNG
>>669
そうですよね。で、TextOutAのままにしても、Aを削ってTextOutに
しても、どちらでもコンパイルは通って、実行も正常です。
0671デフォルトの名無しさんNGNG
たぶんwindows.h をインクルードすると
WinGdi.hで
#define TextOut TextOutA

てな定義がされている為 TextOutAを定義していないというエラーが出るのを防ぐ為に
どこかで誰かが TextOutAから TextOutへのJumpをさせてるのだと思うけど

どこで誰がやってるのかが判らないな
0672デフォルトの名無しさんNGNG
>>671
検索で"TextOut"を探してみましたが、どうもよくわかりません。
Vclフォルダのどこかにあると思うのですが。
自動補完でそうなるということは、何か意味があるのでしょう。
0673デフォルトの名無しさんNGNG
どぉこかで〜 誰ぁれかがぁ きぃっと待ぁって いてくれる〜

 雲は焼け 道は乾き 日はいつまでも沈まない

  心は昔死んだ 微笑にはあった事も無い

  昨日なんか知らない 今日は旅を一人

  けれどもどこかでお前は待っていてくれる

   きっとお前は風の中で待っている

どこかで誰かがきっと待っていてくれる
血は流れ 川は裂ける 痛みは生きている印だ
いくつ峠を越えた どこにも故郷はない
泣くやつは誰だ このうえ何が欲しい
けれどもどこかでお前は待っていてくれる
きっとお前は風の中で待っている


0674デフォルトの名無しさんNGNG
SP1はいつでるんだろう・・・
0675デフォルトの名無しさんNGNG
>>674
8月中には出そうなヨカーン。
0676デフォルトの名無しさんNGNG
>>675
8月は Kylix3 で忙しいから無理じゃないの?
今四半期(9月末まで)は Kylix3 なんでしょ?それともいっしょにパッチがでる?
0677デフォルトの名無しさんNGNG
lokiがBCCで使えるようになったとか聞いたけど
何処で落とせる???
0678デフォルトの名無しさんNGNG
おはようございます。

TFormコンストラクタのDFMリソースを必要としない形 TForm(Owner, int)
を使って新規フォームを作成し、そこにいろんなコントロールを貼り付ける
実験を行っています。

ここで疑問なのですが、各コントロールも new で生成していますが、
各コントロールのParentプロパティに親フォームを指定しておけば、親フォー
ムを delete した時に貼り付けた子コントロールも自動的に delete される
のでしょうか?それとも、一個一個 delete しなければならないのでしょうか。

ご指導宜しくお願い致します。
0679デフォルトの名無しさんNGNG
>>678
TControlのParentと、TComponentのOwnerのヘルプ見て違いを叩き込め。
0680デフォルトの名無しさんNGNG
>>679
レスありがとうございます。早速ヘルプを見てみたら、Ownerプロパティに


「オーナーのメモリが解放されると,その所有コンポーネントのメモリも解放される。
したがって,フォームが破棄されると,そのフォーム上のすべてのコンポーネント
も破棄される」

とありましたので、TFormがOwnerであると、その上に配置されたコントロールの
破棄はTFormに任せてしまってよいようですね。

また一つ勉強になりました。
0681デフォルトの名無しさんNGNG
>>675
BCB6 SP1 でてるじゃん。
日本版はまだかよ。

ttp://community.borland.com/cgi-bin/surveys/thanx.cgi?cb6reg_updates_down
0682デフォルトの名無しさんNGNG
>>681
BCB5の時は一週間もかからなかったように記憶している。
0683デフォルトの名無しさんNGNG
BCB6で作成した実行ファイルって、
素のWin98だと「欠落エクスポート」ってエラー出て動かないんですけども、
SP1あてれば直りますかね?
っていうか直ってくれないと使えないよ(泣
0684デフォルトの名無しさんNGNG
>>683
implibで該当DLLのインポートライブラリ作り直せば?
0685デフォルトの名無しさんNGNG
レスありがとうございます。
implibでoleaut32.dllのインポートライブラリを作ってリンクさせてみましたがダメですた。
おとなしくBCB5使ってます。。。(シクシク
0686デフォルトの名無しさんNGNG
>>685
ちゃんと素のWin98で作ったか?
0687デフォルトの名無しさんNGNG
>素のWin98だと「欠落エクスポート」
686 はガセ。
具体的な欠落しているエクスポート名は?

関連する情報をひとつ知っているけど Win95 の問題であって Win98 なら
出荷版から問題なかったはずなので。
0688デフォルトの名無しさんNGNG
素のWin98で起動すると以下のメッセージがあらわれます。

********.EXE は
欠落エクスポート OLEAUT32.DLL:173 にリンクされています。

173は10進表記ですかね? だとすれば、VarRound だと思います。
Win98のOLEAUT32.DLLには存在しないです。
0689デフォルトの名無しさんNGNG
>>688
173 は VarNeg だぞ。俺のは 98 2nd edition だが.
こんな基本的なのが落ちている。ってことは
ないとおもうんだが。
0690デフォルトの名無しさんNGNG
失礼しますた。 VarNeg でした。
でもやっぱり Win98 の OLEAUT32.DLL には存在しません。
ちなみに dll のバージョンは 2.20.4122.1 です。
0691デフォルトの名無しさんNGNG
>>690
すまん。このスレ見落としてた。

俺のは
2.40.4518.0

だいぶ進んじゃってるね。コモンコントロールアップデートかけてみたら?
0692デフォルトの名無しさんNGNG
ん〜boost最新版のRegex使えないのは何故?
BCCDevつかってBCC単品だけで使うのには大丈夫なのに・・・
0693デフォルトの名無しさんNGNG
BCB6 Update2 公開上げ。
ttp://community.borland.com/cgi-bin/surveys/thanx.cgi?cb6reg_updates_down
0694デフォルトの名無しさんNGNG
ほんとだ。でも6もってないや ⊂⌒~⊃。Д。)⊃ 
0695デフォルトの名無しさんNGNG
>>693
おい!
0696デフォルトの名無しさんNGNG
>>693-694
ゴルァ!!
ttp://www.borland.co.jp/download/cppbuild.html
0697デフォルトの名無しさんNGNG
あら?日本語版は1個も出てないのか 
どういうこっちゃ ⊂⌒~⊃。Д。)⊃
0698デフォルトの名無しさんNGNG
Borland Japanも盆休み。
0699デフォルトの名無しさんNGNG
Update1に不具合が見つかったので日本語版はより完全にしてから
出すんじゃない?ねえ某。
0700デフォルトの名無しさんNGNG
BCB7が出た後に提供いたします。
0701デフォルトの名無しさんNGNG
>>700
笑えんよ。
0702デフォルトの名無しさんNGNG
>>699
日本語 BCB6 は最初から Update1 の修正を反映しております。
が正解。US Update1 の日付、よく見てみ。

日本語 Update2 は盆明けの気がするよ....
0703デフォルトの名無しさんNGNG
>>692
Update2 で、コンパイラと STL が置き換わっている。
アップデートしてからやってみたら?
0704デフォルトの名無しさんNGNG
>702 日本語 Update2 は盆明けの気がするよ....

関係者?
某はここ見てるからなぁー
0705デフォルトの名無しさんNGNG
>>703
墓掃除しながら待ってみます
0706デフォルトの名無しさんNGNG
Up2になったらregexとかもう一度ビルドしなおさなきゃいけないのかなぁ?
(コンパイラいれかわってるなら
0707>>706NGNG
そのほうが安全だと思うけど?
0708706NGNG
>>707
そうですかぁ やりなおします
UP2でどれくらいの標準準拠度になるか楽しみ
完全準拠はBCB7でといってるから完全にはならないだろうけど…
0709デフォルトの名無しさんNGNG
Format関数で悩んでいます。

Delphiにはポインタ値という表現がありましたが、BCBで %p で表示
しようとすると、
「書式文字列 '%p' は正しくないか引数の型と一致しません」
というエラーダイアログが出てしまいます。

表示行は

const AnsiString CR = "\x0d";
char buf1[256], *pbuf, buf2[256];

strcpy(buf1, "ABCDEFG");
pbuf = buf1;
Label4->Caption = Format("buf1のアドレス = %p" + CR +
"pbufから見た文字列の先頭アドレス = %p",
ARRAYOFCONST((reinterpret_cast<int>(buf1), reinterpret_cast<int>(pbuf))));

と記述しています。書式文字列が "%.8x" だといいみたいなのですが、BCBでは
ポインタ値を使えないのでしょうか。
0710デフォルトの名無しさんNGNG
BCBっつーかCの仕様にないでしょ。
あと、両方の値は同じになって正しい?
0711デフォルトの名無しさんNGNG
>>710
レスありがとうございます。

"%.8x" にすると、どちらも 0012FF80 と表示されます。
オープン配列の概念が今ひとつつかめないので、ポインタ値という
表現にとまどっているのです。

このARRAYOFCONSTというマクロもくせ者で、unsignedにキャスト
して渡すとエラーを起こします。それは今回はいいのですが。

ということは、BCBでは "%p" という形式文字列は無意味だと考えて
よいのですね。
0712デフォルトの名無しさんNGNG
んお、ちとまった。今ヘルプ見たら、確かに%pというのがあった。
とりあえず、ARRAYOFCONSTなるマクロを使わずに、そのままbuf1,pbufを渡してみ。
0713デフォルトの名無しさんNGNG
>>712
了解です。やってみます。
0714デフォルトの名無しさんNGNG
あー、ダメだ、俺。ごめん、もっと詳しい人来るまでまって(;´Д`)
0715デフォルトの名無しさんNGNG
どうやら自己解決しました。

Format関数にはTVarRec型のオブジェクトを渡してやる必要があるの
ですが、このTVarRecの宣言が systvar.h 内でされていました。

このヘッダーファイルをじっくり読むと、Pointer型にキャストすれば
いいようです。

ARRAYOFCONSTマクロは必要です。もしくは、TVarRec型の配列を
自分で作って渡す必要がありますが、どちらも同じことになります。

unsignedでうまくいかないのも、Integer型しか宣言されてないためでした。

下にうまく動いた記述を書いておきます。

Label4->Caption = Format("buf1のアドレス = %p" + CR +
"pbufから見た文字列の先頭アドレス = %p",
ARRAYOFCONST((reinterpret_cast<Pointer>(buf1), reinterpret_cast<Pointer>(pbuf))));
0716デフォルトの名無しさんNGNG
できました(;´Д`)

const AnsiString CR = "\x0d";
char buf1[256], *pbuf, buf2[256];

strcpy(buf1, "ABCDEFG");
pbuf = buf1;

TVarRec v[] = { (Pointer)buf1, (Pointer)pbuf };

Memo1->Text = Format("buf1のアドレス = %p" + CR +
"pbufから見た文字列の先頭アドレス = %p", v, ARRAYSIZE(v) - 1 );

0717デフォルトの名無しさんNGNG
あら
0718デフォルトの名無しさんNGNG
>>716
すみませんわざわざありがとうございます。

ここの所VCL対応のソースを書くためにBCBを勉強しているのですが、
あちこちつぎはぎだらけという印象ですね。

C++だからなんとか格好はついたものの、ユーザーに負担を強いると
いう形になっているようです。

まあVCLはObject Pascalで呼び出されることを前提としているので、
全く他の言語であるC++から自由に呼び出せるという事自体驚異的な
事なのかもしれませんが。
0719デフォルトの名無しさんNGNG
Formatより個人的には AnsiString::sprintf/printfの方が好きかな
Formatを使うのとどっちがいいのかなぁ?
でも普段はstd::ostringstreamだからあんまり使わないけど・・
0720デフォルトの名無しさんNGNG
>>719
Delphiとの互換性を無視するなら、sprintf/printfの方が多機能で、C言語の
書式文字列にも準拠しているし、慣れていて使いやすいですね。
0721デフォルトの名無しさんNGNG
AnsiStringのdata()メソッドについて質問です。

次のようなプログラムを走らせると、Edit1->Textに2〜3文字しか入れて
ないのに、無意味なデータを表示する巨大なメッセージボックスが現れて
しまいます。

data()メソッドをc_str()メソッドに変えても同じです。何がいけないのでしょ
うか。

LPCTSTR lpName;

AnsiString ss;

lpName = static_cast<const char *>(Edit1->Text.data());
for (const char *p = lpName; *p; p++)
ss.cat_sprintf("%02x ", *p);
ShowMessage(ss);
0722デフォルトの名無しさんNGNG
TEditのTextプロパティは、実際にはTControl::GetTextメソッドで実現されています。
で、GetTextがAnsiStringを返しますが、どこにも代入してないので
すぐにデストラクタが呼ばれて実体はなくなります。
「data()で取得しているのは、まだ有効であった時代のアドレス値」であり、
実体が無効になった後には何が入っているかわかりません。
0723デフォルトの名無しさんNGNG
forで回してしまうとlpNameが保証されないんじゃないかなぁ?
ShowMessage(lpName);を取得直後と最後に呼べば分かるけど。
0724デフォルトの名無しさんNGNG
>>722
なるほど。ということは、Textプロパティにdata()を使うのはいけないみたい
ですね。一度AnsiString型の変数にTextを代入して、それに対してdata()
を使ってみます。

実はあれからいろいろ試行錯誤して、GetTextBufというメソッドを使って
うまく行ったのですが、LPTCSTRが使えなくなり、あまり綺麗とは言えない
プログラムになっていました。

>>723
ちょっと意味がわからないのですが、lpNameは変化させてないので、
大丈夫じゃないでしょうか。
0725デフォルトの名無しさんNGNG

        。|.      
    |  |。 |゚  y   
    ゚|  |  |io i|    
    。|  ゚i| 。i|,,ノ  |i.       
     i|゚ ||゚ /ii 。 ゚|i_/゚       
    `ヽoー|i;|y-ノ          
      ,;:i´i;ノ ,     ,  圜
     ('';ii'' ,    ,   ’        ‘
    ノii;;.i|      ||\/|\/|\/||
  ii\. ∧_∧   ||::::.|;;;;|:::::|;;;;;|::::|;;;;;||
 ,;;iiiイ( ´∀`)δ....||:::::|;;;;|:::::|;;;;;|::::|;;;;;||
;;:iiii+ii:( つ□つ┃ . !  ::;;|:::::|;;;;;|::::|;;;;;||
iiiイ+ ,,と_)__)、   旦~::;;|:::::|;;;;;|::::|;;;;;||
 ⊂ニニニニニ⊃| ̄ ̄|::|:::::|;;;;;|::::|;;;;;|| | ̄ ̄|
0726デフォルトの名無しさんNGNG
点滅するカーソルをTCanvas上で実装するにはどうしたらいい?
タイマーで処理?
0727デフォルトの名無しさんNGNG
オーナーのないインスタンスを動的に生成するには、コンストラクタの
引数に 0 を与えればいいんですか?
0728デフォルトの名無しさんNGNG
Applicationじゃダメなの?
0729デフォルトの名無しさんNGNG
>>728
実はDLLの中から生成するんです。こういう場合もApplicationで
よろしいですか?
0730デフォルトの名無しさんNGNG
>>729
ちなみに何のインスタンス?
もちろんVCLだよね?
0731デフォルトの名無しさんNGNG
>>730
ありがとうございます。TDataModuleです。引数無しでコンストラクタを
呼び出すとコンパイルエラーになります。
0732デフォルトの名無しさんNGNG
AnsiStringのメンバ関数であるsprintf()を生成時に使うには、
AnsiString().sprintf(...) のように書いてもよいでしょうか。
0733デフォルトの名無しさんNGNG
Win32の質問になるかもしれませんが・・・・・

BCBで作成したDLL内の関数をGetProcAddressで得ようとすると、
見つからないようなのです。

C++だから名前マングリングがなされているのでしょうか。
0734Delフサギコ ◆VzDeLphI NGNG
            _____________
    ∧,,∧    /Delphiで 
  _ ミ,,゚Д゚彡_<  DataModule1 := TDataModule1.Create(nil);
.=| |==U==U=| |= \としても正常動作してますが、、、
 | |@ミ  ミ .| |     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | | ∪''∪ | | もちろんDLLからです。
 | |      | |
0735デフォルトの名無しさんNGNG
>>734
やっぱりDLLはApplicationオブジェクトがないので 0 もしくは nil とするしか
ないですよね。
0736デフォルトの名無しさんNGNG
733です。
いやーぐぐったら、GetProcAddressはC++の時は結構厄介ですね。

予想通り名前マングリングが起きて、関数名が化け化けになっていま
すので、この「化け化け」を渡さなければなりません。

名前マングリングを避けるには、モジュール定義ファイルのEXPORTS
セクションに生の名前を書かなければなりませんね。ちょっとしたDLL
の実験の時はこういう面倒を避けたいのですがなかなか。
0737デルファイの名無しさんNGNG
>>735
dllでもApplicationオブジェクトありますけど…。
Controls.pasのソース参照。dllだろうが何だろうが問答無用で作ってます。

ただし、dll側はハンドルを持たないので、*.exe側のApplication.Handleを
dll側のApplication.Handleに渡してやると、ダイアログなんかが協調動作してくれるみたいです。
(実験したことは無いですけどね)
0738デフォルトの名無しさんNGNG
今週中にSP出るかな〜期待
0739デフォルトの名無しさんNGNG
>>738
でない。

..実は英語版ではなく国際対応版で、パッチに日本語の Readme が入っていることは秘密にしておこう。
ゆっくり日本語のインストーラーがでるまで我慢しなさい > 738
0740デフォルトの名無しさんNGNG
AnsiStringの入出力で質問です。

dstring.h を include すれば、istreamとostreamの<<演算子と>>演算子に
AnsiString型を適用できますが、ifstreamとofstreamはだめのようです。

ofstreamはc_str()メソッドを使うとして、ifstreamはやはりstringに一旦
代入しておいてからAnsiStringにコピーするしかないのでしょうか。
0741デフォルトの名無しさんNGNG
>>740
出来なければおかしいのだが…
0742デフォルトの名無しさんNGNG
C++Builder5での質問です。

例えば、TRichEdit型のウィンドウに「aaababaabaaa」と描画し、
「b」だけを赤くすることはできますか?
巧いやり方が思いつかないので助けて頂けると嬉しいです。
どうか、よろしくお願いします m(--)m
0743デフォルトの名無しさんNGNG
>>742
RichEdit->Lines->Textを適当なAnsiStringの変数に入れる
AnsiString::Posメソッドを使って b を探す
見つかった位置の文字色を赤にする
(TRichEdit::SelStart,TRichEdit::SelLength,TRichEdit::SelAttributesあたりHelpで見ればわかる)
0744デフォルトの名無しさんNGNG
>>740
そう思ってdstring.hの中身を覗いてみましたが、やはりistream用と
ostream用の>>と<<しか定義されていません。

それから、AnsiString.operator=(std::string)も定義されてないので、
AnsiStrng = string; とすることもできない事がわかったので、仕方
なく char[] に代入しておいて AnsiString(char *); で作っています。

困りました。
0745デフォルトの名無しさんNGNG
>>744
ifstreamはistreamをofstreamはostreamを継承しているから
出来ないはずがない。ということ
もしコンパイラの不具合かなんかで出来ないならキャストしてみな
それからincludeする順番としてvcl.h(dstring.h)をincludeする前に
iostreamをincludeあるいはVCL_IOSTREAMを定義しないと
AnsiString用のoperator<<はコンパイルされなくなっているが
それは大丈夫か?
0746デフォルトの名無しさんNGNG
C++Builder5で
map<AnsiString, AnsiString>にoperator[]を使って要素を追加しようとすると
アクセス違反が発生してしまいます。
付属のSTLとSTLPortどちらも駄目でした。
C++Builder3では大丈夫なのですが。
これはバグなのでしょうか?
0747デフォルトの名無しさんNGNG
C++Builder6では特に問題ないなあ
0748デフォルトの名無しさんNGNG
>>745
レスありがとうございます。
うーんやっぱりだめのようです。

VCL_IOSTREAMを定義しても、dstring.hの前にiostreamやfstreamを
持って行っても、istreamとostreamはAnsiStringを受け付けますが、
ifstreamとofstreamは受け付けてくれません。
0749デフォルトの名無しさんNGNG
>>748
ではキャストするとどうなる?
std::ofstream ofs("hoge") ;
dynamic_cast<std::ostream&>(ofs) << "korededouda" ;
0750デフォルトの名無しさんNGNG
>>749
だめでした。「ostreamにはAnsiStringのための定義が存在しない」だそう
です。何か根本的に間違っているような・・・・
0751742NGNG
>>743
レスありがとうございます。
全部の色を変えるのは分かるんですけど、
任意の文字だけ変えることも可能なんでしょうか?

秀丸とかを見てると可能っぽいんですけど、
文字数が多くなっても処理が重くなりませんか?
0752デフォルトの名無しさんNGNG
>>751
ほとんどの高機能エディタはRichEdit等を使わず自前で描画してると思う。
0753デフォルトの名無しさんNGNG
TNMFTPで取得したリストに年が含まれていないのですが、
どうすれば年を取得する事ができるのでしょうか?
0754デフォルトの名無しさんNGNG
はじめまして Builderマスターのかたがた
Builder好きですが 今度の仕事に使うか迷っています。

一番の イヤな部分は例外処理が自動的(?)に出る部分です。たとえば 
TNMFTPでConnectエラーで勝手にでるダイアログですが出ないように
することはできるのでしょうか?
Handled=trueにしても出てしまうです

0755デフォルトの名無しさんNGNG
>>754
こんにちは、ちょうどTNMFTPの話題をしているので
ちょっとお聞きしますが>>753ってわかりますか?
0756デフォルトの名無しさんNGNG
>>754
TNMFTPは使ったことないけど
ツール/デバッガオプション/言語固有の例外/Delphi言語の例外で停止 or C++言語の例外で停止
辺りかな?
0757デフォルトの名無しさんNGNG
>>756 ありがとうございます。
ただ、例外はとまりましたが ライブラリの親切ダイアログは
まだでるようです。TJpegだとJPEGエラーとか、TNMFtpだと
"530 login inc..."とかです。これらを消したいのですが
どのようにすればよいのでしょうか?
0758デフォルトの名無しさんNGNG
try...catchで囲んでればダイアログが出るのは
デバッグ時だけだと思うんだけど(JPEGはそうでした)
それも出したくないということかな
0759デフォルトの名無しさんNGNG
>>757 全然理解してなかった。
try〜catchで例外処理してしまうというのはどうかな?
Delphiですまんが、以下のようにしたらダイアログはでなかった。

procedure TForm8.Button1Click(Sender: TObject);
begin
 try
  NMFTP1.Connect;
 except
 end;
end;


0760759NGNG
うっ、かぶった・・・
0761デフォルトの名無しさんNGNG
おいおい、おまえら>>753誰かわかる奴いねーのかYO
つーか、>>754は聞くだけで、人の質問には答えねーのかYO
0762デフォルトの名無しさんNGNG
 _________
/∴∵∴ヽ
|∵∴∞ヽ|  _____________
|∴/= ♀=| <使ったことねーからわかんねーよ!
\|   ▽/   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ̄ ̄
0763デフォルトの名無しさんNGNG
そ、そうか・・・
んじゃーしょうがないな、
0764754NGNG
ありがとうございます。早速ためしてみます。

>>761 すみません CBuil初心者ですので。他のスレでわかる範囲で
   質問には回答するようにしてます。
0765デフォルトの名無しさんNGNG
引き際を知る >>763 にホレますた。
0766デフォルトの名無しさんNGNG
ァハ(*´Д`)DirectX使っている人います?
SimpleX,UDX,DDDDなどが動かせるみたいだけど
どれがイイんでしょうか。

いちお、SimpleXとUDXのサンプルを動かすことに
成功しやした。DDDDは本日中には・・・
0767デフォルトの名無しさんNGNG
Borland C++ オフィシャルコースウェアってバージョン4までしか出版してないな。
5を出版してくれないのか。
0768デフォルトの名無しさんNGNG
↑ Builderの誤りだった
0769デフォルトの名無しさんNGNG
     ______
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (6      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < DirectXは使ってるけど、正直そういうライブラリは未経験。
|| | | |  \ ┃  ┃/    \_________________________
| || | |    ̄  ̄|
0770デフォルトの名無しさんNGNG
C++Builder使おうか迷ってるんで質問させてください

Q1 VC++と比べて「良いところ」と「悪いところ」は?

Q2 C言語もコンパイルできますか?

Q3 フリー版はありますか?(BorlandC++はフリーありますよね)
0771デフォルトの名無しさんNGNG
>>770
(1)簡単
(2)できる
(3)ない
0772デフォルトの名無しさんNGNG
BCBしか使ってないので
両方使ってる人の意見をネットから適当に抜粋

> こうして並列して使っているとお互いが一長一短なのがよくわかる。
> エディタ、デバッカとしての使い勝手はVC++がはるかに上だが、
> BCBのGUIエディタを使った後ではVC++のリソースエディタとクラスウィザードはガキのおもちゃにしかみえぬ。
> でも、コンパイルはVC++の方が早いのだよなあ。

他にはこんな感じ

> 本やネット上の情報量はVCのほうがずっと多い。
> 最適化はケースバイケースだが一般的にはVCが上。
> ANSI 準拠度はBCBのほうがだいぶ上。

と、やはり一長一短のようで。 (´-`).oO(そのうちVCも買お
あとフリー版は無いけど、体験版(英語)アリ。
0773770NGNG
>>772
> でも、コンパイルはVC++の方が早いのだよなあ。
使うのやめます。(w

>あとフリー版は無いけど
試すのやめます。(w
0774デフォルトの名無しさんNGNG
そーそー。
C Builder なんかメリット無いんだから使うのやめな。
0775デフォルトの名無しさんNGNG
Delphiのほうがいいよ
0776デフォルトの名無しさんNGNG
>>770
C言語初心者ならBuilderはオスメス。
ツール類が恐ろしく簡単に出来ますYO!
0777777NGNG
   (V)∧_∧(V)
    ヽ(・ω・)ノ  フォッフォッフォッ
.     /  /
    ノ ̄ゝ


.          (V)∧_∧(V)
           ヽ(   )ノ  フォッフォッフォッフォッ
.           /  /
       .......... ノ ̄ゝ
0778デフォルトの名無しさんNGNG
BCB5&Win2000(SP2)使ってます

Cマガジン9月号の記事を見てタスクトレイにアイコンを
表示することに挑戦しています。

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//コンストラクタ部分でタスクトレイにアイコンを表示させる
NOTIFYICONDATA icn;
icn.cbSize = sizeof(NOTIFYICONDATA);
icn.hWnd = Handle;
icn.uID = 100;
icn.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
icn.uCallbackMessage = WM_USER + 1;
lstrcpy(icn.szTip,"デスクトップメモ");
Shell_NotifyIcon(NIM_ADD, &icn);

}

雑誌の記事を読む限り、これだけを書いてアプリを実行すれば
タスクトレイにアイコンが表示されそうなんですが、実際は
何も表示されません。コンパイル&リンクもエラーなく出来ています。

何が悪いんでしょうか?
0779デフォルトの名無しさんNGNG
icn.hIcon = Application->Icon->Handle;

が足りないかも
0780778NGNG
>>779
おっしゃるとおりでした・・・・
本では
  icn.hIcon = Icon->Handle;
となっていましたが。。。。。

Application->がなくても良いのはなぜなのか
疑問なんですが、これはもうちょい自力で考えてみます。
0781デフォルトの名無しさんNGNG
ああ、Application->Icon->Handle; は自分のアプリがそうなってたから(w
本のほうはフォームのIconプロパティのを使ってるんだろうけど、
要はアイコンのハンドル(HICON)を渡せばOK。
0782デフォルトの名無しさんNGNG
画像のコントラストを変換するプログラムを組みたいのですが、
どうしたらいいでしょうか?
0783デフォルトの名無しさんNGNG
>>7821ドットづつコントラストを変換する
0784デフォルトの名無しさんNGNG
そろそろ卒研の中間発表でつねw
0785デフォルトの名無しさんNGNG
>>782
ちょっとだけマジレスするが、コントラスト変換のアルゴリズムがわからないのか、
それともBCBで画像を扱う方法がわからないのか、どっちだ?
両方って答えは許さないぞ。それなら宿題スレに行け。
アルゴリズムがわからないなら画像処理スレに行け。
BCBがわからないなら、アルゴリズムを書いて改めて質問しろ。ココでいいぞ。
0786デフォルトの名無しさんNGNG
すみません、質問させてください。
ものすごく、基本的な事なのですが・・・

C言語を使ってBCBでソフト開発ってできますか?
また、C言語でソフト開発ができるなら、C++覚える必要ないですか?
0787デフォルトの名無しさんNGNG
んー、むしろBCBを使ってC言語の開発ができる。
でも、BCBを使わないでもBCCでもgccでもC言語の開発はできる。
C++覚える必要は、用途による。
Cの処理系で簡単にGUIアプリを作りたいなら、BCBを使いながらC++を覚えるのがよさげ。
0788デフォルトの名無しさんNGNG
>>787
えっと、GUIアプリを作りたいのですが・・・
やっぱり、GUIアプリ作りたかったらC++覚える必要ありますか・・・?
0789デフォルトの名無しさんNGNG
GUIを作りたいだけなら、C++っつーかBCBにこだわる必要はないよ。
DelphiでもVCでもVBでもHSPでもなんでも、選択肢は沢山ある。
>Cの処理系で簡単にGUIアプリを作りたいなら、BCBを使いながらC++を覚えるのがよさげ。
っつーことですわ。BCBでCだけでGUIを作るのは、ちとキツイ。
0790デフォルトの名無しさんNGNG
>>788
MFCとかVCLはC++のクラスを使っているので、C++を覚えた方が幸せ。
特にBCBはVCLにアクセスするために、複雑怪奇な方法を取っており、
それはC++からでないと使えないものが多い。
0791デフォルトの名無しさんNGNG
ひとつ、注意点としては>>790が書いてるようなMFCやVCLから始めてしまうと、
C++のキホソみたいなのが身につきにくいかも。
GUIアプリがそれっぽく動けばいいやー、ってなら気にする必要はないけど、
ちゃんとC++のキホソを覚えたいなら、MFCを使わないVCがいいかもね。
ただ、道のりは長いけど。
0792デフォルトの名無しさんNGNG
>>789-791
レスありがとうございます。
う〜ん、どの道通ってもC++は覚えないとだめなんですね〜・・・

BCB買ってきて、触りながらC++覚えることにします。
本当、長い道のりっぽいですね〜・・・(汗
がんばってみます!
0793デフォルトの名無しさんNGNG
>>792
CがわかってるならC++のさわりは難しくない。
とりあえずアプリできました程度なら簡単。
Delphi、VBやAppleScriptを新規に学ぶわけではないから最初の敷居は低い。
ガンバレ!
0794デフォルトの名無しさんNGNG
>>792
とりあえずクラスについて勉強して
VCLのコンポーネントはクラスだと思って使う程度で
いいと思ふ
0795デフォルトの名無しさんNGNG
すみません!
C++Builder、通販とかで売ってるサイトってありませんか?
俺ん所田舎で、VCしかないっす・・・・・

アマゾンにもないし、アマゾンしか知らないし・・・・・
どこか、信用の置ける通販サイトないですか・・・・・?
情けない質問で申し訳ないっす。
0796デフォルトの名無しさんNGNG
本家。
http://store.borland.co.jp/cbuilder/index_ver6.html
0797デフォルトの名無しさんNGNG
価格.com
http://www.kakaku.com/sku/price/030013.htm
0798デフォルトの名無しさんNGNG
>>792
継承と多態をきちんと理解できればVCLを使うのは難しくない。
0799デフォルトの名無しさんNGNG
継承と多態をきちんと理解できている人でないと(VCLを使うのは)難しい。
0800デフォルトの名無しさんNGNG
>>798-799
逆もまた真也sage
で 800
0801デフォルトの名無しさんNGNG
使うのは難しくないが使いこなすのは難しい、ではないのか?
800オメ
0802デフォルトの名無しさんNGNG
BCB買うなら
技術評論社「すぐわかるC++Builder」塚越一雄著
と合わせて勉強すると1週間くらいでBCB使いになれるよ。
(BCB使い=BCBに使われている段階を越えた状態)

0803デフォルトの名無しさんNGNG
>>792
VCL の場合だと IDE でフォームを作成し、イベントハンドラを生成してコードを
書くだけだと VB の C言語版のような感じで使えると思う。
ヘルプでコンポーネントの使い方を調べながら小規模なプログラムを作るぐらい
なら C++ の勉強をそれほどしなくても使える程度にはなると思う。

MFC の場合だとビュークラスとかドキュメントクラスを派生して作ることが
前提になっていて C++ の知識が(VCLより多く)いるし、フレームワークとしての
決まりごとも多く、勉強に要する時間が長くなる。
0804デフォルトの名無しさんNGNG
私がVCからBCCに乗り換えた訳
同じソースをコンパイルしてみて、BCCの方が3%ほど実行速度が速かったから。
最適化については、はいろいろ試行錯誤して最善値の比較です。
0805デフォルトの名無しさんNGNG
>>751
サンプルプログラムの、TextEdit とか RichEditをみなはれ。
SelAttributes
0806782NGNG
えーと、すみません質問変えます。
BCBでの画像の濃度値の取り出し方を教えて下さい。
0807デフォルトの名無しさんNGNG
Graphics::TBitmap型の bgについて
TColor c=bg->Canvas->Pixels[x][y];
で(x,y)座標のピクセルの色を取り出せる。

もっと高速に処理したいなら以下の方法を使う。

void f(Graphics::TBitmap* bg)
{
for(int k=0;k<bg->Height;k++)
{
Byte* line=(Byte*)bg->ScanLine[k];
int i,j;
for(i=0;i<bg->Width;i++)
{
j=i*3;
Byte blue=line[j];
Byte green=line[j+1];
Byte red=line[j+2];
}
}
}
この例はビットマップの形式に依存するので注意
Graphics::TBitmap* bg=new Graphics::TBitmap();
bg->HandleType=bmDIB;
bg->PixelFormat=pf24bit;
0808デフォルトの名無しさんNGNG
TChartの使い方を解説したHPは無いものかと・・・
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
0909デフォルトの名無しさんNGNG
名前にショートカットを付ければ((&A)とかする)少しはマシになる。
まぁ、使いにくいことには変わらないんだけど。
BCBのエディタは使いにくいは、定説ですなー。
0910デフォルトの名無しさんNGNG
ぜんぜん気にならん。慣れろ。
不器用な連中が多いな。
0911Delフサギコ ◆A6VzDeLphI NGNG
              _____________
  ,,,,,,,,,,,,,,,,∧,,∧   /$EDNAMEの前に$SAVEを付けたら
〜′,,,,,,,,,,ミ,,゚Д゚彡 < もっと便利
  UU"""" U U    \_____________
0912デフォルトの名無しさんNGNG
BCBでTCanvasの拡張をしたいのですが、できません。
例えば、
void Line(int x1,int,y1,int x2,int y2)
というメソッド{座標(x1,y1)へ座標(x2,y2)へ線を引く}を作るときは
どうすればいいのでしょうか?
0913デフォルトの名無しさんNGNG
>>912
MoveTo(x1,y1);
LineTo(x2,y2);

っていうことを聞いてるんじゃないんだろうなぁ・・・。
0914912NGNG
>>913
レスありがとうございます。それは、一例です。MoveTo LineToを一つにした
、新しいメンバ関数(Line)を作って、TCanvasを拡張したいっていう場合どうす
ればいいんでしょうか?っていう質問です。

普通なら
PaintBox1->Canvas->Move(X1,Y1)
PaintBox1->Canvas->LineTo(X2,Y2)

のところを
PaintBox1->Canvas->Line(X1,Y1,X2,Y2)
ってなかんじですね。やりたいことは別にあるんですけど、ここさえ解かれば問題
ないです。
0915デフォルトの名無しさんNGNG
>>914
それをやりたいなら PaintBox1をTPaintBox1から継承しなおして書き直すか
VCLソースを変更するしかないでしょう。

Line(PaintBox1->Canvas , X1,Y1,X2,Y2)  で我慢したら?
0916デルファイの名無しさんNGNG
どうしてもメソッド形式で呼び出したいのであれば、
C++のマジックとして、TCanvasから派生させたTMyCanvasを作り、
そこでnon-virtual関数だけ定義して、無理矢理キャストして使う荒技も…

激しく非推奨です。本当にやっちゃダメ(w
0917912NGNG
>>915
そ・・そうなんですよねぇ
Line(PaintBox1->Canvas , X1,Y1,X2,Y2)
ならできるんですけど、かっこ悪いから、嫌だったんですが・・・・。
てっきり簡単にできるもんだと思ってました。皆さんこれで、我慢してる
ようですね。親切なレスありがとうございます!

>>916
しょ・・・正直いって、ずぶの素人の俺にはなにをいってるかわかりません。も・・・もうしわけない。
0918デフォルトの名無しさんNGNG
BCBにはAssertみたいな関数はないのでしょうか?
0919デフォルトの名無しさんNGNG
Assertはないけどassertはあると思うよ。ヘルプで検索してみたら?
0920999NGNG
>>916
>>917
単に新しい関数をつくって呼べばいいだけなのでは?

void NewLine(int x1,int y1,int x2,int y2){
PaintBox1->Canvas->Move(x1,y1)
PaintBox1->Canvas->LineTo(x2,y2)
}

PaintBox1->Canvas->Line(x1,y1,x2,y2)
って呼びたいところを
NewLine(x1,y1,x2,y2);

これじゃあダメ?
0921912NGNG
>>920
今回は、私のクラスのお勉強なので・・・・
PaintBox2やPaintBox3になったら、引数として、あたえなくちゃいけなくなるので、
それは、ちとかっこ悪いかなぁ・・・と思いまして。できれば、別のアプローチで。
0922デフォルトの名無しさんNGNG
TCanvasを継承して 何も追加せずVMTが付かないようvirtualでないメソッドだけを追加して、無理やりキャストすれば

(TMyCanvas *)(PaintBox1->Canvas)->Line(x1,y1,x2,y2)
とは書けるけど、これはもっと格好悪いだろ?

JavaScriptなら後からメソッドも追加出来るけどねえ
0923912NGNG
つ・・つまり、Cはメソッドの追加はできないんですか?
TCanvasクラスが定義されている、ソースファイルを見つけて、Lineを追加するしかない
ということでしょうか?
この機能って絶対にあったほうがいいと思うのに・・・どうしてできないんだろう??
0924Delフサギコ ◆A6VzDeLphI NGNG
     ∧,,∧        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ミ,, ゚Д゚彡     <  PaintBoxがTCanvas使っているからでは
     〃つ_つ/  ̄ ̄ ̄/\_____________
   〜ミ,,, ,,|\ ./ レ ッ シ /
       '\/.======./
           ̄ ̄ ̄
クラスライブラリがそういう目的を考慮して作られてれば
いいんだけど、VCLはそうはなってないってことです。

それに、なんでも、継承で機能追加という
思想だと、階層が深くなりすぎてわけわかになるから
TCanvasの処理くらいは関数レベルで対応するほうがいいですよ。
0925デフォルトの名無しさんNGNG
こういうのはだめなの?
class MyTCanvas : public TCanvas {
 void MyLine(x1,y1,x2,y2){
  MoveTo(x1,y1);
  LineTo(x2,y2);
 }
}
0926912NGNG
>>925
それは、実際に使うときは
PaintBox1->Canvas->MyTCanvas->MyLine(10,10,20,20)
でやるんですか?それなら私的には全然OKですけど、うまくいきません・・・・。
0927デフォルトの名無しさんNGNG
>>925 >>922
0928デフォルトの名無しさんNGNG
実際に使う時は
MyTCanvas *)(PaintBox1->Canvas)->MyLine(10,10,20,20)

ただし、こんなクセ付けたらいけないよ
0929デルファイの名無しさんNGNG
ども、916です。
後で思いついたのですが、奇麗に書きたければ、
*.hppだけ書き換えてインライン関数を追加する程度なら問題ないような。

…他人とソースコードの互換性は無くなりますが。
(そういう意味ではまだTMyCanvasの方がマシ。どちらも実際にはやらない方がいいけど)
0930デフォルトの名無しさんNGNG
まじめにやるなら、

TCanvas から TMyCanvas を作って、メンバ関数 Line を追加
TPaintBox から、TMyPaintBox を作って、プロパティ Canvas の型を TMyCanvas* に変更
PaintBox1 の型を TMyPaintBoxに

ってとこかな。そこまでやれば、
PaintBox1->Canvas->Line(10,10,20,20)
できる。
クラスの勉強としては、勧められることじゃないとは思うけど
0931912NGNG
皆様ありがとうございました。親切にしてくださったことを感謝審査宇。以外に大変だっていうことがわかりました。今回私は、TCanvasにメンバ関数DrawGraph( )という関数を追加したかったのですが、どうも既存のクラスにメンバ関数を追加する事はできないようですね。今回私は

ヘッダ部
class DrawGraph
{
private:
int tatehaba;
int yokohaba;
int number_of_block_y;
int number_of_block_x;
int x0;
int y0;
public:
void __fastcall Execute(TPaintBox *PB);
void __fastcall SetValue(int Height,int Width,int HeightBlockNumber,int WidthBlockNumberint,int DrawStartX,int DrawStartY);
};

0932912NGNG

メイン部
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
DrawGraph *DG = new DrawGraph;
DG->SetValue(50,50,10,10,10,10);
DG->Execute(PaintBox1);
}
//---------------------------------------------------------------------------
void __fastcall DrawGraph::Execute(TPaintBox *PB)
{
for(int i=0;i<=number_of_block_x;i++) //横軸グラフ描写
{
PB->Canvas->MoveTo(x0,y0+tatehaba*i);
PB->Canvas->LineTo(x0+yokohaba*number_of_block_y,y0+tatehaba*i);
}
for(int i=0;i<=number_of_block_y;i++) //縦軸グラフ描写
{
PB->Canvas->MoveTo(x0+yokohaba*i,y0);
PB->Canvas->LineTo(x0+yokohaba*i,y0+tatehaba*number_of_block_x);
}
}
//---------------------------------------------------------------------------
0933912NGNG
void __fastcall DrawGraph::SetValue(int Height,int Width,int HeightBlockNumber,int WidthBlockNumber,int DrawStartX,int DrawStartY)
{
tatehaba=Height;
yokohaba=Width;
number_of_block_y=HeightBlockNumber;
number_of_block_x=WidthBlockNumber;
x0=DrawStartX;
y0=DrawStartY;
}
//---------------------------------------------------------------------------

というプログラムに落ち着きました。SetValueメソッドは、公開メンバ変数にして、直接代入してもよかったのですが、いちいちアロー演算子書くのが
面倒くさいので、こっちにしてみました。皆様の「継承もしてねぇし、クラスじゃなくていいじゃん!」という声が聞こえてきそうです。なにせ、厨房なもので・・・・。もっとかっこいい方法がありましたら、ご教授お願いいたします。

私から、話題に上っていたBuilder標準のエディタの使い勝手ですが、xkeymacsというソフトを使う事で、Emacsの操作性を補助に、結構使い勝手が向上します。ぜひ、トライしてみてください!
0934デフォルトの名無しさんNGNG
C++Bulderって、あの豊富なコンポーネントがおいしそうに見えてたまらん。
あのおいしそうな物を活用したいから、今この開発ツールを学習してるところだ。
実際に使ってる人に聞きたいが、やっぱりこれでWindowsアプリを作るのはおいしいかな。
0935デフォルトの名無しさんNGNG
せこいプログラムならMFCより10倍楽
本格的なプログラムならMFCの方が10倍情報量が豊富
0936デフォルトの名無しさんNGNG
さらに コンパイルはDelphiが10倍速い
0937デフォルトの名無しさんNGNG
>>936
たぶん100倍速い
0938デフォルトの名無しさんNGNG
zlib使ってるのだけど、GodeGuardに引っかかってしまいます。
同じアルゴリズムで初期化をinflateInitにしたときは問題ないのだけど、
inflateInit2にするとかなりリークが報告されます。
これってSTLの時みたいなCodeGuardの誤爆?
0939デフォルトの名無しさんNGNG
>>936
C++Builder常用のため、パソコンをCeleron 1GHzからPen4 2.53GHzに
グレードアップしました。

それでもまだコンパイル速度は遅いです。ちょっとコードを変更して
メイクする度に一瞬息をつきます。

コンパイルってコンピュータの一番重い処理の一つのようです。
0940デフォルトの名無しさんNGNG
CPUよりHDD早くするほうが効きそうだね。
0941デフォルトの名無しさんNGNG
>>939
そこまでくると、ディスクアクセスが遅いんじゃないの?
0942941NGNG
うげ、かぶった・・・
0943デフォルトの名無しさんNGNG
>>940>>941
IBM Deskstar120GXP(AVVA120GB)使ってます。

これで遅いとなると、もうRAID組むしかないのでしょうか(;´д`)トホホ・・・
0944Delフサギコ ◆A6VzDeLphI NGNG
        BCB MLが止まってて
    .∧∧   再開したのに連絡もないぞゴルァ
  ,.、ミ,,゚Д゚彡     /i
 ;'`;、. :,.:∪`゙:゙:`''':,'.´ -‐i
 '、;:.: .、.:',.: .:: _;.;. :.‐'゙゙~  ̄
  `` U U よく、こんなひどいML運営で
        誰も文句いわないもんだ...
     何?このDFreeって?
0945デフォルトの名無しさんNGNG
誰も文句を言わないMLをお前が作れ!




再登録ぐらいやってくれよとは思ったけどな。
0946Delフサギコ ◆A6VzDeLphI NGNG
      ∧ ∧   言うだけ言って
     ミ ゚Д゚彡  そろ〜と、逃げてみますた。
     ,," ⊃,,つ   
  〜(,,,"⌒ヽ  
( (  )ノ' '`J 
0947デフォルトの名無しさんNGNG
C++ Builder6買ったんだけど、参考書全然ないよ・・・
初心者用のホームページもないし、泣きそう。
VC.NETの方がよかったのかなぁ。うわーん。
0948げるるん ◆UaSHERPAhE NGNG
>>947
カットシステムの本は凄く(・∀・)イイ!
BCB4の時に凄く世話になった。
今はBCB6のが出ている。推奨します。
ttp://www.cutt.co.jp/book/4-87783-061-8.html

あと、↓も参考にせよ
ttp://www.borland.co.jp/bookinfo/cppbuild.html
0949bloomNGNG

http://homepage.mac.com/leverage/
0950デフォルトの名無しさんNGNG
>>944
ここら辺の考えがあっての事じゃないの?

おれは、所詮使わせてもらっている身という考えでいますんで
あんまり気にならないけど・・・・

−−−−−−−−−−−−−−−−−−−−
作業が終わって、登録できるようになりましたが、
DNSが行き渡っていないため、投稿できないので
ここのコメントにしておきます。m(__)m
#月曜日に発表かな?
#土曜日にDNS引けているかな?
0951デフォルトの名無しさんNGNG
>>948
カットシステムの本見てきました!すごくよさそうですた!
でも、激しく高いですね(;´Д`)vol.1だけで約5000ペソか〜
立ち読みしようかな・・・w
0952げるるん ◆UaSHERPAhE NGNG
>>951
確かに高い
BCB4のVol.1は\3,800.-ですた。
ページ数も多かったし。
内容の比較は未だしていないが、6でコンポーネントが増えたのに何故?と思った。
ttp://www.cutt.co.jp/book/4-87783-009-X.html
0953デフォルトの名無しさんNGNG
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | <  >>1 C Builderって何
   \|   \_/ /  \_________________
     \____/
   ______.ノ       (⌒)
  //::::::::|-、 ,-/::::::ノ ~.レ-r┐
/ /:::::::::::|  /:::::ノ__ | .| ト、
| /:::::::::::::::| 〈 ̄   `-Lλ_レ′
レ::::::::::::::::::|/::: ̄`ー‐---‐′
0954デフォルトの名無しさんNGNG
イマサラナニ?
0955デフォルトの名無しさんNGNG
>>953
そのままGoogleで検索してみろ、叔母加算。
0956デフォルトの名無しさんNGNG
DrawGridのマージってどうやったら良いのでしょうか?
0957デフォルトの名無しさんNGNG
C++Builder5 でIndy9のTIdIRC使ってるやついないかー?
鯖に接続した後でアプリを終了したら
EIdNotConnectedクラスの例外かEIdClosedSocket例外が生成されるんだけどさ。
なんか解決方法ないっすか?

0958デフォルトの名無しさんNGNG
新スレは?
0959デフォルトの名無しさんNGNG
どっちもよく分かんねぇけど、
単純にCloseしたソケットになんか送ろうとしてんじゃねぇの?
0960@_@NGNG
新スレのタイトルにはプラプラを入れてほすぃ
0961デフォルトの名無しさんNGNG
CプラプラBuilder相談室 Part4
0962デフォルトの名無しさんNGNG
でもスレにはブラクラを置かないでホスィー
0963デフォルトの名無しさんNGNG
CブラクラBuilder相談室 Part4
0964デフォルトの名無しさんNGNG
すみませ〜ん。 質問させてください。
FindDialogを設置して、ダブルクリックでコードエディタを開くと本にあるんですが、
ダブルクリックすると、おもいっきり検索ウインドウが開きます・・・。
ダブルクリック以外に、コードエディタで開くにはどうすればいいですか?
0965デフォルトの名無しさんNGNG
Eventタブに切り替えてから、
0966デフォルトの名無しさんNGNG
>>965
ありがとうございます。
イベントタグに切り替えて、OnFindって所ダブルクリックしたら開けました。
かなり初歩な質問に答えてもらって、ありがとうございます。
0967デフォルトの名無しさんNGNG
SP1まだか・・・>>関係者様方
0968デフォルトの名無しさんNGNG
BCBは見捨てられたのだろうなぁ
0969デフォルトの名無しさんNGNG
C++でVCLを使いたい人にはBCBはうってつけだね。
俺もObject Pascalをいじくるのはどうも肌に合わなかった。

ただ、残念ながらVCLがC++で書かれてない事がひっかかる。
0970デフォルトの名無しさんNGNG
>>967
だから SP1 はないんだってば。
現在 SP3 作成中。今すぐ必要なら SP2 を使え。ってば。
0971デフォルトの名無しさんNGNG
教えてください。
TOpenDialogにて、表示メニューを詳細に設定するにはどうしたら良いのでしょうか。
TListViewなら、ViewStyle=vsReport;にすればOKでしたが、TOpenDialogにはViewStyleがありませんでした。
よろしくおねがいします。
0972Delフサギコ ◆A6VzDeLphI NGNG
 ミ,,゚Д゚ミつ、あまり役に立たないかもですが見てみてください。

[Delphi:46188] Re: OpenDialog の状態設定
0973デフォルトの名無しさんNGNG
>>972
ありがとうございます。
簡単にはできないようですね。(涙
0974デフォルトの名無しさんNGNG
fstreamとTFileStreamはどのように使い分ければいいのでしょうか?
どちらも似たようなメソッドがあるので、よくわかりません。
0975デフォルトの名無しさんNGNG
VCLと連動させたいなら(DBのBlobとかTPictureとか)TFileStream,
そうじゃないならfstreamでいいんじゃない?
0976デルファイの名無しさんNGNG
fstreamってC++標準ライブラリのですよね?
一方TFileStreamはVCL独自。
ですから、どちらでもいいときはfstreamを使っておけば後々他の環境に移行する時も楽と思います。
一方、コンポーネントをストリーミングしたり、TMemoryStreamなどとの間で中身をコピーするなど、
VCL特有の機能が必要な時は、TFileStreamを使うしかありません。
0977デフォルトの名無しさんNGNG
>>975
なるほど、VCLと連動させるかどうかがミソなのですね。今コンポーネント
のストリーミングという所を演習しているのですが、これはTFileStreamで
ないといかんみたいですね。

どうもありがとうございました。
0978デフォルトの名無しさんNGNG
>>976
そしたらこうします。

fstream(標準ライブラリ)で済ませられる所はfstreamで書く。それ以外の
VCL特有のファイルアクセスにはTFileStreamを使う。というように。
0979デフォルトの名無しさんNGNG
TCustonForm::OnDestroy()と、TForm::~TForm()は、どちらを使用すれば
いいでしょうか?

フォームのコンストラクタはOnCreate()ではなくTForm::TForm()を使用する
ようにヘルプには書かれているのですが。
0980デフォルトの名無しさんNGNG
すみません TCustomForm::OnDestroy()の間違いでした。
0981デフォルトの名無しさんNGNG
ageますぅ
0982デフォルトの名無しさんNGNG
記念パピコV(^o^)V
0983デフォルトの名無しさんNGNG
BCBで.resファイルをリンクするには、プロジェクト→プロジェクトに追加
する以外に方法はありますでしょうか?

Delphiの{$R resourcefile} のようなものがあればいいのですが。
0984デフォルトの名無しさんNGNG
983です。自己解決しました。
#pragma resource "resourcefile" とすれば、Delphiの$Rと同様の効果を
得ることができました。
0985デフォルトの名無しさんNGNG
>>970
ところで、BCB6のSP2ってのはどこにあるの?
0986デフォルトの名無しさんNGNG
>>693
0987誘導NGNG
C++Builder相談室 Part4 作りました。

http://pc3.2ch.net/test/read.cgi/tech/1035596146/

0988デフォルトの名無しさんNGNG
>>987
乙
レス数が950を超えています。1000を超えると書き込みができなくなります。