C++Builder相談室 Part6

このエントリーをはてなブックマークに追加
491デフォルトの名無しさん
SYOTI_F( char * ) test_time SYORI_P(( const time_t *tp, char *buf ));

とGCCで書いてあるヘッダをC++Builderでコンパイルすると
[C++ エラー] test.h(38): E2293 ) が必要

となってエラーとなる...const が悪い??
ていうかこの部分が何を示しているのか良くわかってない^^;

C++Builderだとどうすれば良いのでしょうか?
492 :03/07/10 07:43
test.hが必要ってエラーでてるじゃん
493デフォルトの名無しさん:03/07/10 07:46
>>492
test.h 内で)が必要という意味みたいです^^;
SYOTI_FやらSYORI_Pっていあマクロらしきもののの中身さらさんとわからん
495_:03/07/10 07:55
496デフォルトの名無しさん:03/07/10 08:00
>>494
typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
SYORI_Pはこんな感じです。
#define SYOTI_F(type)extern type
となっています。
中身は必要ですか?

絶対SYORI_Pが違う。
#define SYORI_P(x) x
みたいになってるはず。
498デフォルトの名無しさん:03/07/10 08:20
>>497
typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
では定義は不可能という事ですか?
499 :03/07/10 08:51
おそらく
>typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
これはSYORI_Pのtypedefではなく_rewriteのでは。
そしてSYORI_Pはマクロです。
#define SYORI_P(PAR) (anyfunc)PAR
こんな感じ
500 :03/07/10 08:54
>#define SYORI_P(PAR) (anyfunc)PAR
これちがうは
501 :03/07/10 08:56
#define SYORI_P(PAR) (returntype(*)PAR)
こんなんかな
502デフォルトの名無しさん:03/07/10 09:04
>>499
それがないんですよね〜
SYORI_Pはヘッダファイルのみの使用なんですが
いくら検索かけてもないんですよね

typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));

は理論上成り立つのかなと...SYORI_P_rewrite の別名定義ですよね..
これって,,どうなんでしょw

いや、だから、UNIX系のソースによく見られる _P(...)マクロと一緒でしょ。
プロトタイプが有効なときには展開され、無効(古いコンパイラ)なときには空白にするっての。
だから>>497
504_:03/07/10 09:06
たぶん、config.hとかで
#ifdef ????
#define SYORI_P(arg) arg
#else
#define SYORI_P(arg) /* */
#endif
みたいになってると思うけど。
506デフォルトの名無しさん:03/07/10 09:16
ありました...
#define SYORI_P(proc)proc
って感じですが..
507デフォルトの名無しさん:03/07/10 09:27
説明はなしですか..ww
503に書いた内容じゃ不服か?
509デフォルトの名無しさん:03/07/10 09:51
問題は
SYOTI_F( char * ) test_time SYORI_P(( const time_t *tp, char *buf ));
マクロとマクロに囲まれたtest_time が何者か分からないわけで..

とGCCで書いてあるヘッダをC++Builderでコンパイルすると
[C++ エラー] test.h(38): E2293 ) が必要

このエラーがなぜ発生するのか分からないわけで..

よろ..
自分で理解できないからって、、

>えっと別スレで聞いたのですが説明なしで自己満足で終わられたみ
>たいなのでこのスレに投げます。

すげーむかついたから、勝手にやってくれ。
511 :03/07/10 09:58
そのソースが使われてるとこにあるライプラリなどから呼び込んでるかと
512 :03/07/10 09:59
プ。じゃなっかた。ブだ。
513デフォルトの名無しさん:03/07/10 10:01

分かっている事ばかり答えてもらってもしかたなか(-.-)
514デフォルトの名無しさん:03/07/10 10:02
答えるだけ答えさせておいて
バカにして終わりww
自己満足の境地www
定義されているのがtest.h内なら#ifdefの条件をdefineする
config.hならincludeする。

この程度が解決できないようじゃ、
どうせ他のところでもエラーが出て解決できないだろうがね。

>分かっている事ばかり答えてもらってもしかたなか(-.-)
516デフォルトの名無しさん:03/07/10 10:03
答えるつもりがないのだったら
時間の無駄だからこのスレにでてこないでください
517デフォルトの名無しさん:03/07/10 10:04
>>515
あのね その程度でつまってるんだったら聞かないでしょって
いってるのに!
518デフォルトの名無しさん:03/07/10 10:05
みなさん、そんなに興奮しないで下さい...

質問のレベルが高すぎたのかなあ...ww
>>491
この情報でどうやってわかれって。
521デフォルトの名無しさん:03/07/10 10:14
>>520
koreigai naniga aruno?
質問に散々こたえたでしょw

522デフォルトの名無しさん:03/07/10 10:52
デスクトップにあるアイコンより下にフォームを表示する方法を教えて
523_:03/07/10 10:57
524477:03/07/10 12:28
TListに独自のクラスをAddで追加したんですが
その追加したクラスを取り出すとき、void*型を独自クラスの形式に変換することが出来ません。
独自のクラスに変換するにはポインタを解析して行くしかないのでしょうか?
>>524
"キャスト"という言葉はご存じですか?
526デフォルトの名無しさん:03/07/10 13:08
>>524
クラスやコンポーネントは実際はポインタだから、普通にキャストできると思うが。
var
 List:TList;
 p:TForm1;
begin
 List:=TList.Create;
 List.Add(Form1);
 p:=TForm1(List.Items[0]);
 List.Free;
 ShowMessage(p.Name);
end;
TStringList *StrList=new TStringList;
StrList->Add("abcdef");
delete StrList;

TList *List=new TList();
List->Add(StrList)
//↑の変数はPublic属性

TStringList* sl=new TStringList;
sl=(TStringList)List->Items[0];
ShowMessage(sl->Strings[0]);
delete sl;

delete List;
これでキャスト出来ないんだけど、ドコが悪いの?
あっ!間違えた。
StrList->Add("abcdef");
//delete StrList;
sl=(TStringList*)List->Items[0];
こうだよん。
それやると、メッセージ表示される前に
フリーズしちゃうんですが…
TStringList* sl;
あー!
List->Addしたあと、delete StrListしてました。
お手数おかけしました。
ところで、何回も同じ変数でnewしても、
その回数だけdeleteする必要ってないんですか?
534デフォルトの名無しさん:03/07/10 16:47
VCLとCLXの条件コンパイルはどうやってますか?
535 :03/07/10 19:50
今までパーソナルだったけど気に入ったからProfessional版買ってきてインストールしたけど
起動が滅茶苦茶遅くなった。ペンティアムVの733ヘルツだと重いのかな。
要らないパッケージ外したら速くなるよ。それでも重いこた重いけどナー
537 :03/07/10 21:18
>>536
パッケージが原因なんですか。
そういえばパーソナル版使ってるときに本やWeb上のサンプルをコンパイルしようとしたら
パッケージがないとか言ってコンパイルできないことが多かったよ。
あれはプロフェッショナル版の人が作ってたんですな。
まあ実行時パッケージを使って構築のチェックを外せばだいたいコンパイルできたけど。
でもたくさんコンポーネントが増えてうれしい。
ログが表示できたりCodeGuardが使えたりしてデバッグもぐっと楽になるだろうし。
秋葉原に買いに行ったらVC++.Netの2002年版のやつとVS.Net2003Professionl限定アップグレード版をセットで買うと
5万弱で買えるってお勧めの商品になってて迷ったけどこれでよかったんだよね、多分??
でも1万円以上高いのはちょっと痛いな。あっちはC++とC#とVBもついてるし。
538デフォルトの名無しさん:03/07/11 07:15
今、悩んでいるのだけど
これからc++を始める人にとっては「c++builder」と「visual c++」の
どちらを選択すべきであろうか。
自分の中では「visual c++」がメジャーと思っていたので他の選択肢を考えていなかった。

「visual c++」の方が本や情報など探しやすい気がする反面で
「c++builder」を勧める人の方が多い気がもする。

先輩方のアドバイスを求む。
>>538
取り敢えず、このスレの主旨から言って、やはりBCBではないかと
ちなみに、VCのスレで聞かれたらVCを進める
理由は>>538だけじゃ、何に使うか分からんし
使い方によっては、gnuで充分だったりするので
540538:03/07/11 08:19
聞かれる気もしていたのですがあえて明記しませんでした。
まずはフリーソフトみたいな物を作りたいです。
考えているのはHP巡回ソフトの「WWWC」みたいなソフトです。
おそらくこれが完成するのにかなりの時間がかかるでしょう。

その後はDirectX関係を勉強してゲームもどきみたいな物を制作したいです。
単にキャラクターをパッドで操作できるだけの簡単な物でいいです。

こんな予定があるのですがどっちのc++がよいですかね?
まず、無料のコンパイラをDLしてC/C++というものをある程度理解して
それからWindowsなりネットワークなりだな。
同系ソフトにVCL製の
WWWDってのもあります。

情報をたくさん集めて判断すると
より後悔しない選択が出来るんじゃないかな。
そうだな。
フリーの環境 BCC55/Delphi/Java落としていろいろやってみてから 有償のものを買えばいい。

よく、お金出した方が真剣になるからなんて言い方する奴がいるが、
そんなものは幻想だ。
544デフォルトの名無しさん:03/07/11 17:15
coutやcerrに出力してるソースがありますが、
それらを標準入出力でなく、TMemoとかに出したいでつ。
BCBで出来ますか?
545544:03/07/11 17:32
というか、
「cout << "Hello world." << endl;」
が、どこにも表示されません。

いったいどこに出力されてるのだろう?

それは君の心の中にあるのです。
>>545
コンソールアプリケーションを選択すれば出力される。
AnsiStringってもしかして怖い?
>>548
どういうこと?
普通に使ってるZE!
>>548
怖くはないよ。すごく便利。
BCB3proにあったSQLビルダー、
BCB4以降Enterpriseにしかつかなくなったけど
proで使えるSQLビルダーないですか?
>SQLビルダー

って何するもんですか?

ウィザード形式で、

データを取得する表を選択して下さい
取得する列を選択して下さい
抽出条件を指定して下さい

→SELECT hoge FROM huga WHERE nullpo

みたいな?
そう。
またプログラム実行しなくても、
SQLビルダー内でクエリの結果も表示できるし
その結果をエクセルなどに簡単にコピペできたので
ちょっとした抽出なんがすごく便利だった。
おまけに、そのSQL文もウィザード形式で
作ってくれた。
だからBCB3以降使ってない。
SQLビルダーの復活を願いたい。
555538:03/07/12 11:21
アドバイスどうもです。
>542
自分はwwwcよりwwwdを使っているのですがwwwdに不満があって作ってみようかと(笑

もうちょっと考えてみますね。
556デフォルトの名無しさん:03/07/12 16:39
TStringList *sl=new TStringList;
sl->Add("AAA");
ShowMessage(sl->Strings[0]);
sl=new TStringList;
sl->Add("BBB");
ShowMessage(sl->Strings[0]);
delete sl;
こんな事した場合、メモリは2回取得されるんでしょうか?
それとも、同アドレスの変数が初期化されるだけでしょうか?
同アドレスの変数が初期化?
意味はワカランが、とりあえずメモリリークしてる。
>>556
2回別々に確保され、一回目のものはリークして2回目のものだけ開放される
やっぱり…
TListにドンドン追加してるんだけど、
追加し終わったあと(例えばTStringList)Deleteするとフリーズしてしまうんですが。
どうも、TListがコピーされたはずの物を参照せずに、コピー元ばかり見ているようなそんな気がします。
これじゃTListの意味がワカランのですが?
>追加し終わったあと(例えばTStringList)Deleteするとフリーズしてしまうんですが。

ソース出せ。お前の日本語ではらちがあかん。
>>559
コピー・・?
ポインタはいくらコピーしても指す先の同じものしか参照しないし
TListに格納するのはポインタなわけだが・・
>TListに格納するのはポインタなわけだが・・

と、言うことはTListはポインタのポインタと言うことですね?
TListだけをdeleteしてたりして
ボーランドのTListの例です。
new して追加した後、deleteしてないんですが…
>>565
気のせいでしょう。
!ごめんなさい。
forの所削ってました。(w
>>551さん
そうですか。
じゃ、構造体の問題かな・・・。

struct unko{
int i;
char hoge[8];
char chinko[4];
};

unko shitai;

strcpy(shitai.chinko,"chin");
strcpy(shitai.hoge,"hogehoge");

AnsiString aschinko;
aschinko=AnsiString(shitai.chinko);
ShowMessage(aschinko);

shitai.chinko の1バイト目が\0 になるんです。
基本的なことかもしれませんが、アドバイスあったらお願いします。


569デフォルトの名無しさん:03/07/13 00:47
>>568
char hoge[8]; // 8バイトである
char chinko[4]; // 直後にある

strcpy(shitai.chinko,"chin"); // 5バイト書き込む(最後は '\0')
strcpy(shitai.hoge,"hogehoge"); // 9バイト書き込む(最後は '\0')

ここで shitai.chinko[0]は '\0'になる
あ、順番を
strcpy(shitai.hoge,"hogehoge");
strcpy(shitai.chinko,"chin");
したらOKだ。


勉強しなおしてきまつ。
571568:03/07/13 00:56
>>569
そうでした。ありがとうございました。
今、ソケットで上記shitai を送信して受信してるのですが、
受信先でかならずある特定のcharの頭が'\0'になるのに悩んでるのですが、
手がかりを見つけたようです。
ただ。。送信直前では'\0'は入ってないんです。もっかい見直しマス。
>今、ソケットで上記shitai を送信して受信してるのですが、
冗談はよせよ。あまりおじさん達をからかうなよ。
573pp:03/07/13 02:48
>>572
横レス
冗談といいますとpp(興味津々)
574538:03/07/13 04:50
「c++builder」か「visual c++」で悩んでいた者ですが「c++builder」に決めました。
決め手は
本家や ttp://www.borland.co.jp/cppbuilder/competitive/comparison.html
ここの ttp://www.zdnet.co.jp/developer/0307/04/dvn01_3.html
ページにある「visual c++」ではGUIアプリケーションの構築に労力がかかる、という点で。

なんか相手の罠にかかったような感じですが(笑)、「c++builder」でがんばってみます。
575デフォルトの名無しさん:03/07/13 13:13
TOpenDialog OpenDlg=new TOpenDialog(this);

こうすれば、解放処理delete OpenDlg;しなくていいんですよね。
たしかにthisが開放されるときに勝手に開放されるが、それまでは残りっぱなし。
手動作成の一時的なダイアログ用なので
それだけ教えていただければ十分です。
>たしかにthisが開放されるときに勝手に開放されるが、

されるか?
TButtonを貼り付けnew TTimer(Button1)ってな感じでButton1を親にしてTTimerを動的に作成。
TTimerのイベントを適当に設定するとそのイベントが発生するが
Button1.OnClickで親であるButton1を開放するとTTimerも開放されイベントが発生しなくなる事が確認できる。
>>578
される
開放→解放 気づかなかった(汁
ヘルプでTComponent::Owner見りゃわかる
583デフォルトの名無しさん:03/07/13 16:53
newで構築したインスタンスをFree()メソッドで開放してもいいんですか?
ヘルプに従ったほうがいんでない。
>>572
冗談?
・・・・・。
Socket->SendBuff(&shitai,sizeof(sitai));

これは冗談の類なのでしょうか・・・・?
585=568でした。

冗談な理由を教えていただきたいです。
送受信できてるのが冗談なら別の方法を考えますので・・・・。
>>586
まあ、一般的に構造体というメモリイメージを直接送受信するのは
・バイトオーダー(エンディアン) (主にCPUの違い)
・アライン (コンパイラ、コンパイラ設定の違い)
・その他の内部表現 (浮動小数点や文字コードなど)
の不一致が問題を起こすから、そのプロトコルを使い続けていくと
いろいろ困ってくる。
>>587
レスありがとうございます。
挙げて頂いた注意点は気をつけてます。
では、固定長のバイナリデータを受信側で構造体に落とす、という使い方では
なにか不具合があるでしょうか?送信側では構造体で定義していないという前提で。

あ、受信側のコンパイラのアラインは1です。
Win2kSP4+BCB6ProUPD#4です
QuickReportファイル(*.qrp)をPDFに変換するライブラリなりコンポーネントなりは無いものでしょうか
591デフォルトの名無しさん:03/07/15 00:46
Delphiで作ったdfmファイルはそのままC++Builderで使えますか?
>>590
アクロバット(リーダーじゃないやつ)で印刷させる・・・・・。
ってのはだめですか?w
>>591
dfmだけでなく、pasファイルとセットでプロジェクトに組み込めます。
594590:03/07/15 09:02
>>592
いやぁ、フリーウェアなんで一緒に配布できるものがいいんですけどね・・・
それに別操作をユーザに強いるのもどうかと
595山崎 渉:03/07/15 09:35

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
アレの方法を教えてくれ
597山崎 渉:03/07/15 14:01

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
598 :03/07/15 15:51
CodeGuardによるメモリリークの検出のことなんだけど
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
TStringStream* ps = new TStringStream(OpenDialog1->FileName);
}
char *s = new char[1000];
}
でchar[1000]のほうは検出してくれるんだけどTStringStreamのほうは検出してくれないみたいなんだけど
なんか設定がおかしいのかな?
あとTStringStreamの読み込みは\nとかは一文字分にして読み込んでくれてるよね?
いわゆるテキストモードとか言うやつだよね。
599598:03/07/15 16:07
なんか馬鹿な事かいてました。
TStringStreamはファイルをオープンするわけじゃなく、コンストラクタの引数で渡した文字列を
ストリームとして表すものだったんですね。標準ライブラリのやつと同じ感じか。

それはわかったんですがなぜメモリリークが検出されないのでしょうか。
あとBuilderの関数とかにはテキストモードでのファイルの読み込みとかするやつはないのですか?
まあCやC++の標準ライブラリを使えばいいんだけど一応知りたいんです。
600デフォルトの名無しさん:03/07/15 19:50
>テキストモードでのファイルの読み込みとかするやつ
そういやPascalのResetとかReadとかEofとかはC++Builderで使えるのかな?
601デフォルトの名無しさん:03/07/15 20:42
現在BCB5Entを使用しています。
6にアプしようと思っているのですが、予算つごうでProになってしまいます。

そこでお聞きしたいのですが、5Entと6Proではどちらがよいでしょうか?
特に変わったものは開発してませんが、IBX等データベース関係を少しいじる
ことがあるので違いが気になります。
過去レスにあるようにSQLビルダもない様だし。
Builder6のInterbaseコンポーネントで質問があります。

InterbaseAdminタブのIbinstallコンポーネントを使おうとすると
「Ibinstall.dllがみつかりません」
とでます。

IB6もインストール済みですし、Ibinstall.dllもあります。

また、このコンポーネントが使えたとしてFirebirdに対して使用することはできるのでしょうか?
>>599
こーいうことかな??

class MyClass {
public:
MyClass() { }
virtual ~MyClass() { }
};

class MyVclClass : public TObject {
public:
MyVclClass() : TObject() { }
virtual __fastcall ~MyVclClass() { }
};


void __fastcall TForm1::Button1Click(TObject *Sender)
{
MyClass* obj = new MyClass(); // メモリリークが報告される
MyVclClass* vcl = new MyVclClass(); // メモリリークが報告されない
}
604509:03/07/16 02:14
>>603
おお、確かにTObjectから継承したやつは報告されませんでした。
TStringStreamはTObjectから継承してたからなのかな?
でもCodeGuradにそんな設定は見つけられないんだけどどっかにあるのかな?
それとも仕様なの?
他の人はどうなんでしょう。
アウトルックの左側についてるようなメニューのコンポーネントはないですか?
TListView
いま会社でC++Builder使ってるのですが、1からわかるような良い書籍はありますか?
池袋のビックピーカン覗いてもC++Builderの本が5冊ぐらいしかなかったので・・
>>607
C++の本と、VCLについてはDelphiの本を読むとよい。
C++Builderについての良書はほとんどないですから。
>>607

Sams Teach Yourself Borland C++ Builder in 21 Days
http://www.amazon.com/exec/obidos/ASIN/0672310201/

Borland C++Builder 6 Developer's Guide
http://www.amazon.com/exec/obidos/ASIN/0672324806/
610607:03/07/17 11:01
>>608
Delphiですか。C++Builderの本はホントにないですよね・・・

>>609
よさげなんですが、英語は読めないので・・・
英語ほうがしっかり書いてあるというはわかるんですが
>>607
株式会社カットシステムから出ていた
C++Builder4コンポーネント活用ガイド&実践プログラミングVol.1〜コンポーネント・リファレンス〜
http://www.cutt.co.jp/book/4-87783-009-X.html
C++Builder4コンポーネント活用ガイド&実践プログラミングVol.2〜プログラミング・テクニック〜
http://www.cutt.co.jp/book/4-87783-010-3.html
というのが、自分としてはカナーリ役に立ちました。今でも手元において活用してます。
が、もはや絶版です。

代わりに今は
C++Builder 6 コンポーネント活用ガイド&実践プログラミング Vol.1
http://www.cutt.co.jp/book/4-87783-061-8.html
C++Builder 6 コンポーネント活用ガイド&実践プログラミング Vol.2
http://www.cutt.co.jp/book/4-87783-062-6.html
というのが出てますが、収録内容は少なくなっているのに価格は上昇していて、4の本に比べると劣ります。
ただ、5以降の新しい部分(新しいプロパティとか)が網羅されているので
買って損は無いと思いますよ。
612新しいマスクの方法:03/07/17 17:04
BCB5で以下のようなバグを発見しました。

以下は
1、Canvasを最初に黒一色で塗りつぶす
2、Canvasに朱・オレンジで線を描画する
3、黒の領域をFloodFill(0,0,clBlack,fsBorder)で重ねぬりする。

Image3->Canvas->Brush->Color = clBlack;
Image3->Canvas->Rectangle(0,0,Image3->Width,Image3->Height);
Image3->Canvas->Pen->Color = (TColor)0x000f3fff;
Image3->Canvas->Pen->Width = 4;
Image3->Canvas->MoveTo( CX+R2*cos(NeedleAgl), CY-R2*sin(NeedleAgl));
Image3->Canvas->LineTo( CX+R1*cos(NeedleAgl), CY-R1*sin(NeedleAgl));
Image3->Canvas->Pen->Color = (TColor)0x002f6fff;
Image3->Canvas->Pen->Width = 2;
Image3->Canvas->MoveTo( CX+R2*cos(NeedleAgl), CY-R2*sin(NeedleAgl));
Image3->Canvas->LineTo( CX+R1*cos(NeedleAgl), CY-R1*sin(NeedleAgl));
//----魔法の一行 (何故上手くいくのか不明:2003/07/18発見)
Image3->Canvas->FloodFill(0,0,clBlack,fsBorder);

このプログラムを実行した結果、針の部分を覗いて
背景のImage1に貼り付けたビットマップが透過して描かれます。
つまり、針部分のみマスクされ、黒い部分は透明になる。

613新しいマスクの方法:03/07/17 17:04
もともとのプログラムでは、、、
黒一色でべた塗りして針を書き込むだけ、という
以下のようなソースでした。

Image3->Canvas->Brush->Color = clBlack;
Image3->Canvas->Rectangle(0,0,Image3->Width,Image3->Height);
Image3->Canvas->Pen->Color = (TColor)0x000f3fff;
Image3->Canvas->Pen->Width = 4;
Image3->Canvas->MoveTo( CX+R2*cos(NeedleAgl), CY-R2*sin(NeedleAgl));
Image3->Canvas->LineTo( CX+R1*cos(NeedleAgl), CY-R1*sin(NeedleAgl));
Image3->Canvas->Pen->Color = (TColor)0x002f6fff;
Image3->Canvas->Pen->Width = 2;
Image3->Canvas->MoveTo( CX+R2*cos(NeedleAgl), CY-R2*sin(NeedleAgl));
Image3->Canvas->LineTo( CX+R1*cos(NeedleAgl), CY-R1*sin(NeedleAgl));

この場合、(TColor)0x002f6fffで塗りつぶした領域が"透過領域"になります。
私には原因がわからないのですが、マスク処理が簡単に行えるので重宝してます。
原因をご存知の方はいらっしゃいますか?
614新しいマスクの方法:03/07/17 17:06
つまり、三回重ね塗すると透過領域になる???
今まで、このような事態に遭遇したことはなかったのですが・・・

連続投稿すみません(^^;
フォームを透明にできますか?
フォームにラベルをのせてそのラベルの文字だけが表示されるみたいなことを
したいので、ご存知の方宜しくお願いします。
それは透明にするんではなくて
不定形リージョンで出来そうなんだけど。
ぐぐってみ。
617デフォルトの名無しさん:03/07/18 11:29
今思ったんだけど、例外処理で
try{
}catch(...){}
と、例外の種類を設定するところで【...】とすれば
どんな種類の例外でもキャッチできるわけ?
俺どっかでこの【...】を使ってたの見てずっとこうしてんだけど
どうなの?
>>614
bool TCustomForm::TransparentColor
TColor TCustomForm::TransparentColorValue
>>617
言語ガイド嫁
620デフォルトの名無しさん:03/07/18 12:07
>>616
ビットマップではできるんだが、ラベルも可能?
TStaticTextをParentWindow = NULLにして透過させればいいんじゃない?
622デフォルトの名無しさん:03/07/18 13:03
>>621
すんません、C++Buier1使ってます
他のコンポで代用可能なのあるますか?
>>622
SetWindowLong(Handle, GWL_EX_STYLE, GetWindowLong(Handle, GWL_EX_STYLE) | WS_EX_LAYERED);
SetLayeredWindowAttribute(Handle, RGB(255,0,0), 0, LWA_COLORKEY);

ただし、Win2k以降専用
624デフォルトの名無しさん:03/07/18 13:20
>>623
それって2000とかの透明機能のアレですか?
これはこれで非常にありがたいです。
ありがとうございます。
625デフォルトの名無しさん:03/07/18 13:26
>>623
嗚呼・・
GWL_EX_STYLEとかWS_EX_LAYEREDとかのデファインがヘッダーにないです
626デフォルトの名無しさん:03/07/18 13:35
C++Builder5でExcelって簡単に操作できますか?
これに関するHPとかあったら教えて下さい
>>625
PlatformSDKなりbcc5.5.1なりからヘッダファイル持ってくれ
BCB5で黙ってこれ使っとけ!っていうDirectX9.0aのコンポーネントない?
ライブラリの改変やヘッダファイルの改変いらずですぐ使えるやつね
>>628
無い!




























と言ったら?
BCBでVirtualTreeviewってコンポーネント使ってる人いない?
Delphiでは普通に動くのに、BCBではインストールでつまづく。
対応してるって書いてあるのになぁ。もう少し互換性マシにならないかなぁ。
>>630
じゃあ自分で作る鳴りソースいじるなりしろや、ボケ。
社員がキレたw
BCBのランタイム集borlndmm.dll,cc3260mt.dll,rtl60,stlpmt45.dll,
vcl60,vcl60.bplてありますよね。普通、BCB持ってない人のために、
入れておくものですけど、これて、提供するソフトに入れても差し支え
ないのですかね。なんか、著作権違反しそうでやばそうですよね。
もともと、ボーランドのbinディレクトリーに入っているものですし、
勝手にこれらの物って、使用してかまわないんでしょうか。
よろしくお願いしま〜〜す。
>>633
聞く前に添付文書読め
>>631=>>634 はカルシウム不足
添付の文章なんかないですが。似たようなのにフリーソフトのパックに、
5.1のやつはあるようですが。BCB6に対応したものなのですが。また、Bin
ディレクトリーから、拝借した物なのですが。まあ、これなくても動くみ
たいですが。コードウォリアーズも、似たようなランタイムがセット
出来るみたいですが。いくらプログラムしても、これないとだめという話
なのですが、著作権はありますし。よく、わかりません。
VirtualTreeviewとやらは、あっさりインスコできたぞ。(BCB6)
インスコしたディレクトリにある deploy.rtf とか読めばいんでない >ランタイムの配布
>>636
割れ物かよ

それはともかく文書と言われて紙の文書しか思い浮かばないとか?
よんでみまつ。とうもありがとう。ランタイムの配布の項目
あるんでしたね。・・・・
BCB6ProにVBのInstrRevに相当する関数ってありますか?
>>642
Delphiには(Ansi)StrRScan()なる物があるからあるんじゃないか?
案外便利だよな。アレ。
>>642
char *相手ならstd::find_endとか
645642:03/07/21 09:56
>>643
ありました。ありがとうございました。
StrRScan((const AnsiString AText, const AnsiString& subStr);
ではなく
StrRScan(const char * Str, char Chr);
なのがチョイ引っ掛かるけど・・・
(キャストすりゃいいのか? ま、やってみりゃわかることですな)

>>644にも感謝
646デフォルトの名無しさん:03/07/21 10:06
c_str()
647デフォルトの名無しさん:03/07/21 21:15
初心者で申し訳ないのですが、
StringGridを印刷するにはどうしたらよいのでしょうか?
648デフォルトの名無しさん:03/07/21 22:12
>>647
Printscreen
>>647
QuickReportを使うか
RichEditにキャラクタを使って擬似テーブルを作って印刷するか・・・
650デフォルトの名無しさん:03/07/22 12:32
なあそろそろ>>626を教えてくれよ
>>650
全然簡単じゃないがOLE使えば出来る。
WSHでやった方が良いと思うが。
>650
前から微妙に気になってるが使ったことはない↓良さげなら教えてくれ(w
http://www.vector.co.jp/soft/win95/prog/se275929.html
http://www.vector.co.jp/soft/win95/prog/se231565.html
>>626
[プロジェクト]-[タイプライブラリの取り込み]でダイアログ表示して
Microsoft Excel ... を選択して、ユニットディレクトリ選択して
ユニット作成でエクセル使えるラッパークラス作成できる。
654デフォルトの名無しさん:03/07/22 14:49
オリジナルクラスが格納しているデータをディスクに保存したいんですが
TStream系のクラスを利用して出来るんでしょうか?
その前に、ストリームにクラスの内容を書き込む方法がわかりません。
誰か教えて。
655_:03/07/22 14:50
>>561
いやOLEとかWSHとかもうわからないんで
>>652
おっとこれってコンポーネントじゃなしにDLLなら使ってみるかな
>>653
ほほぅ、これって始めて見た。
ラッパークラス作った後はどう操作するんだろうか・・
これもあとでためしてみよう

みなさん、ありりん
657デフォルトの名無しさん:03/07/22 15:16
OpenDailogにラベルやEditボックスを追加したいんですが
どうすれば実現できますか?
659デフォルトの名無しさん:03/07/22 16:18
BC6で作成したアプリはmanifestファイルを使ってLuna対応にできるのでしょうか。
BC5ではTListviewをレポートモードにして使っているとダメだったのですが、
BC6+Update#4ではOKですか?
660_:03/07/22 16:24
>>659
Delphi7ならOKですよ。
662デフォルトの名無しさん:03/07/22 16:44
>>661
Delphi7相当なのはきっとC++ Builder7ですよね。出るのか知りませんが。
C++ Builder6はダメなのかな。
663_:03/07/22 16:47
Delphi7のVCLをC++Builderに移したりって出来るの?
BCBのヘルプ見にくいんですけど・・・
>>654は無視ですか?
>>666
はい
>>658
いやそれ系はググってアレしたんだけれども
コンポをインスコせずに自分でやりたいのですが
その方法を載ってることってどこでしょうか?
>>668
ソースみりゃいいだろ。
ここは夏厨のスクツのイソターネトですね
671 :03/07/22 20:21
コンポーネントパレットが表示されないようになってしまったのだけど、
なんとか直す方法ないですかね。
氏ねば
初めまして。5.0を使い始めた者なんですが、実行結果が表示されないんですけど・・・。
form1という何も表示されないウィンドが表示されるだけなんですけど。
別に多機能を使いたいわけではないので、基本的なコンパイルと表示ができれば満足なんですが。
どなたかご教授してもらえませんか?
↑はどうする?
まず、コンソールウィザードを使ってコンソールアプリのプロジェクトを作りましょう。
676673:03/07/23 01:29
できました!
でも今度は実行結果の表示時間が決められません・・・。
自分はまだ簡単なプログラムしか組めないので。
例えば・・・
{
printf("a\n");
}

だとaが一瞬表示されるだけで終わってしまいます。
ずっと表示させとくことはできないんでしょうか?
最後の方に、getch()でも入れておきましょう。
678デフォルトの名無しさん:03/07/23 02:24
Borland C++Builder を買おうと思ってるんですが・・・。
Personalでいいんですよね?
ProfessionalとかEnterpriseとかは仕事に使う人向けってことですか?
いやに高い気が・・・。
入門ならpersonalでも十分
Personal>Professonal>Enterpriseの順に添付されているコンポーネント数や
データ―ベースサポート等が増える。

PersonalになくProfessonal以上に有るコンポーネントでも
フリーのものが結構出回ってることが多いはづ
680673:03/07/23 02:46
>>677
そうですね。わざわざどうも!
エディタの一発ジャンプが…ライブラリよりこっちが重要。>>Pro
一発ジャンプって何?
宣言部と実装部を行ったり来たりしたり、
型や関数をCtrl+Clickで定義部分にジャンプしたり、
関数の宣言を書いてShift+Ctrl+Cで空の実装部を書き込んでくれたり。
684デフォルトの名無しさん:03/07/23 11:59
フォームにタイマーをセットして時間が来たらフォームをアクティブにしたいのですが
どうやったらいいのでしょうか?エクスプローラなどを上に置いておいて
時間が来たらそのエクスプローラより上に表示したいのですが
よろしくおねがいします
>>684
タイマーイベントで↓のSDK版の関数にフォームのハンドルを渡して呼ぶ。
http://techtips.belution.com/ja/vc/0012/
686デフォルトの名無しさん:03/07/23 12:36
>>685
お答えどうもです。
SetForegroundWindowは既に試していたのですが、どうにも最上位に
表示してくれませんでした。ちなみにForm1は非表示にして>>684はForm2で
行っているのですが、そこら辺がうまくいかないのと関係しているのでしょうか?
うまくいかなかった理由と解決方法が>>685のページに書いてあるでそ。
>>687
すまん、さっきちゃんと読んだら何か書いてた。ありりん
線を描きたいんだけどどうすればいいの?わけわからん。
690デフォルトの名無しさん:03/07/23 18:01
Shapeでも使ってろ
TCanvas::LineTo
692デフォルトの名無しさん:03/07/24 15:14
質問です、よろしくお願いします。
環境はWin2000SP4,BCB6Pro UPD#4です。

250kBのAnsiStringに42kBの\0(0x00)が混じっていまして、
この\0を除去したいので下記の様にしましたら、遅くてとても実用になりませんでした。
速く処理できる方法を教えてください。

\0の数は決まっていない上に位置も不定で、必ずしも一塊になっていません。
↓のgotdatが250kBの文字列です。
//-------その部分のダメなソース--------
while ( gotdat.Pos('\0') > 0){
gotdat.Delete(gotdat.Pos('\0'),1);
}
//------------------------------------

よろしくお願いします。
>>692
・空の dest を定義する。
・gotdat から dest へ、1文字ずつ加えていく。ただし、その文字が '\0' なら、加えない。
・gotdat = dest;
とか?

AnsiString の機能を知らないので、嘘かも。
694デフォルトの名無しさん:03/07/24 15:39
while(gotdat.Pos('\0') > 0){
lng_pos = gotdat.Pos('\0');
strtmp = gotdat.SubString(1,lng_pos-1);
gotdat = strtmp + Trim(gotdat.Delete(1,lng_pos));
}
695692:03/07/24 15:54
>>693
ありがとうございます
それ、やってみたんですが、やはり遅いです。
AnsiStringで一文字ずつというのは遅いようです。char*でやれば早いのかも

>>694
ありがとうございます
十分早いです。それで行きます。
char* p = text.c_str();
int   oldLength = text.Length();
int   newLength = 0;

for (int i = 0; i < oldLength; i++)
{
    if (p[i] != '0')
        p[newLength++] = p[i];
}

text.SetLength(newLength);

なら、一瞬でおわるど。
'0' → '\0' だ
698692:03/07/24 17:48
>>696
ありがとうございます
>>694の方法と比較してみましたら、>>696の方法の方が格段に早いです。
GetTickCount()で計測、6回試行しましたが概ね10msずつ早い
それに>>694の方法はある程度\0がまとまっている事を期待している感じですが、
>>696はまったくそういった依存関係が無い

やはりこういった処理はAnsiStringではなくchar*なんですね、勉強になりました。
ありがとうございました。
699692:03/07/24 17:57
AnsiStringがどうたらだけでなく、自分自身の領域の中で前に詰めていき、最後に後ろを切って捨てるってことですよね。
他の領域を使わないから、また更に早いと思っていいでしょうか?
ループの中でクラスを呼んでないことが一番効いているのだとは思いますけど。
ああそっか、AnsiStringのc_str()の戻り値は
const char*じゃなくてchar*だったっけ・・・。
>>699
> 自分自身の領域の中で前に詰めていき、最後に後ろを切って捨てるってことですよね。
たとえばstd::removeがとってる手法もこれだね。
こっちは後ろを「切って捨てる」のではなく、「新しい最後尾」を指すポインタなり
イテレータなりを返す仕様だけど。
ループのたびに'\0'の位置を検索したり、文字の長さを変えたりすれば
そりゃあ時間かかるよな。

'\0'の位置がまとまってなくてランダムな配置なら、
悲惨なほど時間がかかる。(250KBで試してるけど、いつまで経っても終わらない)
703692:03/07/24 18:18
>>701
c⌒っ*゚ー゚)っφ メモメモ...

>>702
>ループのたびに'\0'の位置を検索したり、文字の長さを変えたりすれば
仰せのとおりですね、毎回関数を呼んでいるからか・・・
704692:03/07/24 18:22
C/C++を知らずにいきなりBCBで始めたものでVCLにドップリ溺れています。
もっとポインタを活用することを学ばねば・・・
705デフォルトの名無しさん:03/07/24 21:27
classをnewしてsizeofすると何故かどのクラスでも
4しか取れないんですけど、コレってどういうことですか?
ポインタ変数のサイズ
次は、「じゃあどうやってクラスをファイルに書き込めばいいんですか!」かね?
>>707
public変数をそのまま書けばいいんじゃねーの?
>>707

class SerializeableObject
{
public:
 virtual std::string Serialize() = 0;
 virtual void Unserialize(const std::string &str) = 0;
}

ファイルから読み書きできるようにしたいクラスをここから継承して実装書く。
>>705
最適なスレッドかホームページがありそうですが、知らないので。

TYPE *p; と定義したとき、
sizeof(p) と sizeof(TYPE*) はポインタ変数のサイズで、sizeof(*p) と sizeof(TYPE) は TYPE の大きさです。

たぶん。
現在、メインForm(Unit1)からサブForm(Unit2)を
複数呼び出そうとしています。
複数、表示することは可能なのですが、
サブForm毎に制御することが出来ません。
良い方法はないでしょうか?
宜しくお願い致します。

> サブForm毎に制御
何のこっちゃ
サブFormをTListに入れていけば?
そしてサブForm解放時でTListから削除する。
具体的にはTサブFormとTサブFormManagerとでもして。
TサブFormManager->CreateサブForm()でサブFormを作成して返し、
こっそり内部のTListに追加しておく。ついでにサブFormのメンバ変数にTサブFormManagerを保存しとく。
そしてTサブFormのデストラクタではTサブFormManagerから自身を登録解除してもらう。
サブFormが1種類じゃなくて複数種類必要ならTサブFormを継承して使うようにすればいい。
あとはTサブFormManagerのプロパティからインデックスでTサブFormを参照できるようにしたり、
GetActiveサブForm()とか適当にメソッド入れていくと良いのではないだろうか。

TApplicationのComponentsプロパティをループ回して参照するだけでも良いけど。
Screen->Forms
>>712
分かりづらかったですかね。
簡単に言うと、Main画面はSub画面を呼び出す。
Sub画面はボタンにより、Formサイズの変更を行ったりします。
この動作を、MainからSubを複数、呼び出し、
Sub毎に制御を行いたいのですが、上手く動いてくれないのです。

>>713
ちょっとよく分かり辛いのですが。
すみません。

制御て何
>>716
動作をさせることです。
漏れ的解釈

void __fastcall TSubForm::Button1Click(TObject* sender)
{
  Width *= 2; // SubはボタンによりFormサイズの変更をしたりする
}

void TMainForm::hoge(void)
{
  SubForm1 = new TSubForm(this); // MainはSubを複数作って
  SubForm2 = new TSubForm(this);

  SubForm1->Button1->Click(); // Sub毎に…
  SubForm2->Button1->Click();
}
>>718
これだとhogeが動作したときにボタンが押されたと認識して、
サイズが変わってしまいますよね。
でも、これを参考にして作ったらできました。
どうもありがとうございます。
720デフォルトの名無しさん:03/07/25 18:11
質問ですが、
typedef struct{
 int  A1:1;
 int  A2:4;
} GG;
これでコロンの右の数字ってビット数ですか?
この構造体のサイズは4byteでA1ってHighになってるのでしょうか?
A1に1って代入してA1の値をみてみるとー1ってなってるのですが・・
721デフォルトの名無しさん:03/07/25 18:15
>>720
それはビットフィールドだろ?
コロンの右の数字はメンバーに割り当てるビット数。
722デフォルトの名無しさん:03/07/25 18:18
>>721
ありがとうございます。
でA1はLowとHighのどっちにとられるんですか?
>>722
処理系依存。
724デフォルトの名無しさん:03/07/25 18:22
>>723
ここはC++Builderスレな罠。
>>724
おお、そうだった(笑)
ビットフィールドのビットレイアウトを想定した記述はすべきでないから
どっちから詰められるかを意識したこともないわけだが、
いざ調べてみるとヘルプみても標準の処理系定義項目の設定内容がどこにあるのかわからん・・
726724:03/07/25 18:33
>>725
> ビットフィールドのビットレイアウトを想定した記述はすべきでないから

はげどう つーか鉄則か。
727デフォルトの名無しさん:03/07/25 18:52
ん?マジで?なんで?
メモリの少ない組込系ですら使ったことないんだが、
BCBでビットフィールドをあえて使う理由ってあるの?
ビットごとに決められているデータ(ヘッダとか)を扱いやすい。
>>729
それ、ビットフィールドのビットレイアウトを頭に入れないと・・・。
あえて使う理由→データがものすごく巨大になる時
数理計画とかやってるとすごいことにる。
>>729
C++ならビットレイアウトをクラスで隠蔽して、クラス内部でビット演算
すりゃいいじゃんと言うか正攻法だと思うんだけど。

>>731
せいぜい数百Mのデータしか扱ったことがないので気がつかなかった。
>>732
>せいぜい数百Mのデータ

・・・紙テープ換算か何か?ああ、DATか。
>>733
こういう突っかかり方も珍しいな
>>734
そっとしといてやれ。
常人の「寒い」が彼の「鋭い」なんだ。
736デフォルトの名無しさん:03/07/28 13:13
ようするに>>728-735ら辺ってファイルI/Oが下手でFA
737_:03/07/28 13:14
738_:03/07/28 13:16
Borlandのページにあった
Borland C++Builder 6 アップデートパック #4
を入れたらコンパイル時にリンカエラーとかが発生するようになって、
説明書のチュートリアル進められなくなったんでインスコし直したよ。
旧バージョンに戻したらコンパイルうまくいった。

環境Win98SE
Personal版 C++builder
740デフォルトの名無しさん:03/07/28 13:29
C++Builder7ってまだか?
741デフォルトの名無しさん:03/07/28 13:38
↑VC++にしる!
742デフォルトの名無しさん:03/07/28 15:27
VCなんてうんこは眼中にない
VC買ったんだけどWIN98じゃ動かなかった…
>>743
そんなウンコなOSを使うのは今すぐやめましょう
745デフォルトの名無しさん:03/07/28 15:38
質問です。
for (int i = 0;i<1000;i++){
Graphics::TBitmap *bmp = new Graphics::TBitmap();
Graphics::TBitmap *bmp2 = new Graphics::TBitmap();
BitBlt(bmp->Canvas->Handle,0,0,bmp->Width,bmp->Height,bmp2->Canvas->Handle,0,0,SRCCOPY);
delete bmp,bmp2;
}
これを実行するとメモリリークするんですが、どこらへんがわるいんですかね?
ちなみに↓でもリークします。

for (int i = 0;i<1000;i++){
TImage *bmp = new TImage(Image1);
TImage *bmp2 = new TImage(Image1);
BitBlt(bmp->Canvas->Handle,0,0,bmp->Width,bmp->Height,bmp2->Canvas->Handle,0,0,SRCCOPY);
delete bmp,bmp2;
}
746デフォルトの名無しさん:03/07/28 15:45
>>744
OSもVCもうんこ。このメーカー自体うんこだから( ´,_ゝ`)
>>746 お前がうんこ
>>745
deleteに変数並べるのはじめて見たけど、
それだとbmp2のデストラクタが呼ばれないみたいよ。
749745:03/07/28 16:27
>>748
あ〜、そうだったんですか。
ありがとう。
deleteのとこでなんか違和感を感じてたら…
750デフォルトの名無しさん:03/07/28 19:25
>>747=うんこ
くせースレだなおい
ということは俺って事か
program Test;
{$APPTYPE CONSOLE}
type
  TTest = class(TObject)
    procedure Init;virtual;abstract;
    constructor Create;
  end;
  TTestA = class(TTest)
    procedure Init;override;
  end;
  TTestB = class(TTest)
    procedure Init;override;
  end;
constructor TTest.Create;
begin
  Init;
end;
procedure TTestA.Init;
begin
  writeln('My name is TestA');
end;
procedure TTestB.Init;
begin
  writeln('My name is TestB');
end;
begin
  TTestA.Create.Free;TTestB.Create.Free;
end.

これと同じ事をC++でやりたいんですけどうまくいかないです。
どうすれば良いんですか?
コンストラクタで仮想関数呼んでも派生クラスのは呼んでくれないよ。
Initメソッドで初期化しないで、TTestA,TTestBにコンストラクタ作って、
そこで初期化しないと。
コンストラクタの呼び出し順(=仮想関数の決定順)がC++とobject pascalで違うからね。
言語ガイドに詳しく書いてある。
みんなデストラクタって何書いてる?
俺はとくに書くことがないんだが・・・
>>756
仮にコンストラクタでなんかの変数やクラスをnewすることがあっても、君はdeleteすることなく放置か?
>>757
初心者なのでまだnewって使ったことないっすw そっか、deleteするときに使うんだね・・
>>758
逆の気が…
初心者なのでまだdeleteって使ったことないっすw そっか、newしたときに使うんだね・・
>>759
deleteがしたくてしたくてたまらないからnewするんだよ!
悪いかよ!
デストラクタを使いたいからdeleteする
でもdeleteするモノがないからnewする
小4くらいのとき、マンコが穴だなんて思いもしなかった。
が、年の離れた兄貴のいる加戸は
「ヤッターマンコーヒーライター」
などという言葉を知っているいわば勇者的存在であった。
で、穴があることを知った俺たちだが、どうしてもそれが信じられない。
で、むしろ逆にガキであることを利用して調べようと思った。
ターゲットは音楽の教師である。美人だった。今にして思えば
20歳くらいだったのではないだろうか。短大出てすぐだったように思う。
実行はいたって単純。ガキ特有のカンチョーというあれである。
あれを前に突き刺すというのだ。
ガキなら許されるであろうという勝手な発想だが、
たしかにマンコすら知らない奴がほとんどだったからナイスな判断だったろう。
で、実行は加戸だった。
加戸はなんの躊躇もなくやった。
思い切り。
思い切ってやっちゃいかんだろ、と思った。なぜにおまえはフルパワーなのだ、と。
音楽教師は泣いた。20歳前後という年齢を考えればギャグでもきつい。
ガキからすれば大人だったのだが、今思うと娘だ。
むしろ、処女だった可能性すらある。すまん先生。
が、加戸も泣いていた。
両手人差し指骨折だった。第2関節より下で折れていた。
もろに刺さったんだと感心した。やはり勇者だ。
しかも、救急隊員に、マンコに指が刺さって折れましたと泣きながら事情を説明していた。
あの姿も相当かっこよかった
764デフォルトの名無しさん:03/07/29 13:19
つかデストラクタでdeleteすんなら、そのクラスはなくなるんだから
わざわざdeleteしなくてもいいんじゃねえの?
一緒にdeleteされるべ?
されねーよ
766デフォルトの名無しさん:03/07/29 13:32
TDatabaseのログインプロンプトが開かないんですがなんでですかね。
Database1->LoginPrompt = true;
ですが。
767デフォルトの名無しさん:03/07/29 13:39
>>765
あら
768766:03/07/29 15:06
Delphiのdblogdlg.pas/initializationが走ってないのが原因みたいですが、
BCBからinitializationをどうやって走らせるのやら。
769 :03/07/30 02:43
クールバーにコントロール(いちばん簡単なボタンを試してみた)を2個置くと2列になってしまって
ボタンがウィンドウの幅一杯に広がってしまいます。
小さくして2個とも一列に表示しようと思ってボタンをリサイズしても自動的ににウィンドウの幅一杯に広がってしまいます。
どうしたらいいのですか?
クールバーにツールバーとかパネル置いてから、そこにボタンを2個置くとか
771デフォルトの名無しさん:03/07/30 03:06
質問です。
今BCB4PROでGUIのソフト作ってます。
ClipCursorでマウスの移動範囲を制限したいのですが、
SetCursorPosやmouse_event、ShowMessageなんかでも制限が勝手に解除されてしまいます。
これらの関数を実行しなければ制限は有効なままなのですが、
制限した後にmouse_eventでマウスクリック処理などをするため困っています。
何か前もって実行しなければならない関数などあるのでしょうか。
772_:03/07/30 03:07
773デフォルトの名無しさん:03/07/30 13:21
C++Builer1で質問ですが
フォーム右クリでポップアップメニューを設定してそのメニューで「前面」項目があって
それをチェックされるとFormStyle = fsStayOnTopとして、外れると FormStyle = fsNormal;
としているのですが、うまく動作しません。
デバッガでステップ実行してるとちゃんと前面になるのですが、普通に実行すると前面になりません
なにが原因なのでしょうか?
774769:03/07/30 16:59
>>770
TCoolBandのBreakプロパティをfalseにするのを忘れてました。すいませんでした。
>773
少なくともうちのBuilder5のヘルプには
>注意実行時に FormStyle の値をなるべく変更しないでください。
って書いてあるよ。実行時に制御するためのプロパティじゃないでしょう。
素直にTControl::BringToFrontとかAPIのBringWindowToTop(HWND)で
Zオーダー変えるんじゃ駄目なの?
なるべくて
777デフォルトの名無しさん:03/07/30 19:37
>>775
実行時に使うなとは書いてないんですね( ´,_ゝ`)
>>775
俺の経験。FormStyle を実行時に変更したら、
ファイルのドラドラを受け付けるようにする DragAcceptFiles() の
効果が切れたよ。

何故か?までは追わなかったけど、FormStyle を変える事によって
ウィンドウが作り直されて、Handle プロパティが変わるからじゃないかな?

という事から考えて、Handle が不変であるという前提に拠っている
コードが悪影響を受けるから、ヘルプでは FormStyle を変更するなと
書いているんじゃないかな。
>773
FormStyle を使うのをあきらめて、Windows API で

// 手前に
SetWindowPos(Form1->Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
// 戻す
SetWindowPos(Form1->Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);

というのはどうでしょう?
780デフォルトの名無しさん:03/07/30 23:40
>>773
プロパティ変える方法だと、
例え出来てもチラつくしフォーカスも消えるし>>778さんの言うように変更後DragAcceptFiles()やらないとD&D効かなくなるし、
私は>>779さんのようにAPIでゴリッと変更する、に同意です。
781デフォルトの名無しさん:03/07/31 10:05
こんにちは、皆さんお答えありがとう

>>775
C++Builder1のヘルプにも書いてますね。
>>776
なるべくとは書いてないですね^^
>>777
書いてないですね
>>778
それは私も経験あります
でも確かShowイベでそれ書いておくと大丈夫だったような気がしましたが
>>779
あ、別にFormStyleじゃなくても、他のウィンドウより手前・戻すができればいいので
そのAPIを試してみます。情報有難うございます。
>>780
ええ、さっそくAPIを試してみます。

みなさん、ありがとうございます。
782デフォルトの名無しさん:03/07/31 10:23
ああ・・
SetWindowPosでもダメでした・・
HWND_BOTTOMだとちゃんと他のウィンドウより背面にいくのですが、
HWND_TOPMOSTでは前面にきてくれないです・・
これフォームが前面にできない要因が考えられるとしたら
どのようなことでしょうか?
>>782
日頃の行い
784デフォルトの名無しさん:03/07/31 11:43
じゃあ更に
Application->BringToFront();
してみるとか。
785デフォルトの名無しさん:03/07/31 12:11
>>784
色々ありがとうございます。
しかしダメでした・・
んー何が影響してるのかなあ
>>785
日頃の行い
787デフォルトの名無しさん:03/07/31 13:33
VC++という選択肢があるのにわざわざBuilderを選ぶやつはバカ
788デフォルトの名無しさん:03/07/31 13:41
Windowsという選択肢があるのにわざわざ携帯電話を使うやつはバカ

次は?
バイオハザードという選択肢があるのにわざわざゴースト・オブ・マーズを選ぶやつはバカ
790_:03/07/31 13:49
VC++なんてウンコなものを使う奴はウソコマミレでバッチィ
792デフォルトの名無しさん:03/07/31 14:29
>>791
まあまあ、>>787は汚物だから
793デフォルトの名無しさん:03/07/31 14:39
VC++>>>>>>>>>>>>>>>>>>>>>>>>>C++Builder
相手にしねぇでくれ。荒れる。
795_:03/07/31 14:47
796デフォルトの名無しさん:03/07/31 14:48
VC++ is better than C++Builder, in anything.
Got it!?
VC++ is the best all over the world.
It's the best product ever in history.
OK?

これでわかったか?猿ども
797デフォルトの名無しさん:03/07/31 14:52
彼女がいるのに風俗へ行くやつはバカ
>>797
それだけは承服しかねる。
風俗有るのに彼女作る奴は非プログラマ。
800デフォルトの名無しさん:03/07/31 16:12
>>797は童貞
彼女とのSEXと風俗は別物
それがわからんのはガキってこと
801デフォルトの名無しさん:03/07/31 16:12
アダルトDVDが
 最短でご注文いただいた翌日にお届け!
 http://www.dvd-exp.com 開店セール1枚 500円より
金払ってやるってのはプライドに反する。
803デフォルトの名無しさん:03/07/31 18:37
( ´,_ゝ`)ショボいプライドだな。夢見る子供の発想か
セックスフレンドは生きてく上で必要不可欠だよな。
805uwa:03/07/31 19:08
質問イイですか?
>>800
あまりに必死でワロタ
807uwa:03/07/31 19:12
C++ Builder6 を買ってインストールが終わり
チュートリアルに従ってテキストエディタでも作ろうかと
考えていたのですが。。
Images が赤く表示されてWindowsのデフォルトのイメージが使えません。
Comtrl32だかも 5.〜〜バージョンなので問題はないと思います

OS Windows XP
メーカー NEC VALUESTAR VT900/1
808uwa:03/07/31 19:17
すいません板間違えました
809デフォルトの名無しさん:03/07/31 19:17
>>807
NECとBorlandは仲が悪いからそうなる。
810uwa:03/07/31 19:21
>>809
ありがとうございます
解決策はないのでしょうか?
>>806
悔しいの間違いだろ( ´,_ゝ`)
812uwa:03/07/31 20:59
age
>>811
んー確かに>>800は相当悔しかったのかもしれんな。
笑ってすまそ。
俺がいるのに他の男とくっつく女共は全員バカ
むしろこのような糞レスする>814にくっつく女こそバカである。
てめーそれ以上俺の嫁さんの悪口ゆーな
>>816
どうせ電源入れてゲームスタートしないと会えない嫁さんだろ?
それは嫁さんじゃなくて恋人だろう。
C++Builderはアダルトグッズと(._.) φ メモメモ
アダルトじゃない!純情恋愛グッヅだ!
プラトニックなんだよ!
C++Builderでおなるのが今の流行とφ(..)カキカキ
おならない!純なんだ!本気なんだよ!
男がたくさんいるのに女に走る奴らは全員ウホッ
824デフォルトの名無しさん:03/08/01 11:01
ファイルをStringに読みたいんですが、下記の書き方であってますか?
もしかして、StringのLengthセットしとかないと、メモリ壊しますかねぇ。

String SFile;
TFileStream *FileStream;
FileStream = new TFileStream("test.txt", fmOpenRead);
FileStream->Write(SFile.c_str(), FileStream->Size);
825デフォルトの名無しさん:03/08/01 11:53
StringListでTXT読んじゃだめなんかい?
826824:03/08/01 11:54
じゃ、StringListしてみまつ。
UTF-8だけど大丈夫かなぁ。
827デフォルトの名無しさん:03/08/01 13:20
C++Builder7っていつでるか教えれタコ共
828山崎 渉:03/08/02 02:06
(^^)
  ∧,,∧  まずいかも。
 ミ,,゚Д゚彡 Delですが、参考どぞ
 ミつ日(ミ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1034090664&rm=100
さてはおめえ札付きのワルだな?
>>829
フォローされてるけど、フサギコ版はすごい遅そうだ
まさか1バイトづつFileStreamからReadBufferするとは驚異的だ(笑)
このすれは以後>>831がフサギコとは比べ物にならない驚異的なパフォーマンスを誇るコードの解説をするすれになりますた。
皆様ご静聴ください。
833831:03/08/02 19:16
>>832
つーかすごい古いコードのようだし、今はフサギコ自身もわかってるんじゃないの?
それにリンク先の2で十分だと思うが
今までC++だけで使って不自由を感じたことないけど
やはりPascalも勉強しておくか・・・
[C++ エラー] Unit1.cpp(691): E2015 '_fastcall Strutils::RightStr(const System::AnsiString,const int)' と '_fastcall Idglobal::RightStr(const System::AnsiString,int)' の区別が曖昧
と言われてるのですが、どう対処していいかわかりません。
対処法を教えてください。
----------------------------------------
#include <StrUtils.hpp>
:
:
AnsiString strtmp;
strtmp = LE1->Cells[1][2];
strtmp = RightStr(strtmp,17); // ここでエラー吐かれる
----------------------------------------
strtmp = Strutils::RightStr(strtmp,17);
>>836
ありがとうございます
で、同一関数内に下記部分があるのに、その部分でエラーにならず、
>>835部分でエラーになるのはなぜでしょ?
---------------------------------------------------
strtmp = MidStr(sltmp->Strings[sltmp->IndexOfName("host")],6,256);
LE1->Cells[1][2] = Trim(LeftStr(strtmp,strtmp.Pos("(")-1));
strtmp = MidStr(strtmp,strtmp.Pos("(")+1,128);
LE1->Cells[1][1] = AnsiReplaceStr(strtmp,")","\0");
strtmp = LE1->Cells[1][2];
strtmp = Strutils::RightStr(strtmp,17); // これならOK(修正箇所)
----------------------------------------------------
>>837の質問の意図は、直前にMidStrやLeftStrがあるのに、なぜRightStrだけ引っ掛かるのかという疑問です。
StrutilsとIdglobalの両方の名前空間にRightStrという関数があるから。
MidStrとLeftStrはIdglobalには無いんだろう。
>>839
idglobal.pasを見たら、その通りでした
くだらない事を聞いてすいませんでした
841BCB6Proにて:03/08/04 07:04
新規のアプリケーションを作成して、Form1のコンストラクタに

AnsiString str;

str = InputBox("aaa", "bbb", "ccc");

として実行します。
ダイアログが最初表示され、そこにIMEで漢字変換したときに例外が発生します。
これは既知のバグですか?それとも、私のマシンだけがおかしいのでしょうか?
また、デバッガからではなく、直接EXEを実行すると出ません。
暇がある方はやってみて報告していただけると助かります。

OSはXP HomeEditionです。
OS、BCBともに最新のアップデートをしています。
842デフォルトの名無しさん:03/08/04 08:07
C++ Builderの方がDelphiよりファイルサイズが大きいって本当ですか?
843_:03/08/04 08:08
844_:03/08/04 08:10
ヘルプのTWinControl::OnDockOverの例で出てくる、ComputeDockingRectという関数はなんなのでしょうか?
検索しても出てこないのですが。
>>842
本当
847デフォルトの名無しさん:03/08/04 09:39
Delphi(Delphi6で確認)だったら新規作成して何もしないプログラムで374 KBなのですけど、
C++ Builderではサイズはいくらになりますかね?
>>847
BCB6
460288bytes(BCB6SP4,リリースモード)
BCB3
248832bytes(BCB3修正パッチ当て済,リリースモード)
849デフォルトの名無しさん:03/08/04 09:55
バージョン6で、約460Kバイトですか。
では、Delphiと比べて何かメリットはあるでしょうか?
これはDelphi使うよりC++Builderでやった方が良いとかみたいな感じです。

実行速度もほぼ同じと聞いたのですけど、プログラムの処理する内容によって
大きく変化があるとかはあるでしょうかね?
例えば、画像処理はDelphiよりBCBの方が速いとかみたいな?(画像処理は例えです)
850841:03/08/04 09:55
補足ですが、メニューのツール>デバッガオプション>OSによる例外で
Access Violationを「デバッガが受け取る」に設定してからではないと出ません。
>>849
C++(ライブラリ含む)が使いたければBCB。
Object Pascalが使いたければDelphi。

速度が気になるならBorlandなんて使わないで
iccとかVC++.NET2003とか使えよ。
852デフォルトの名無しさん:03/08/04 10:18
わかりました。
どうもありがとうございました。
色々考えてみます。
Delphi7だと356KB(365056Bytes)
Delphi6は?
Delphi6
374 KB (382,976 バイト)
>>854は少し上の書き込みも見えない文盲なので説明しても無駄
857841:03/08/05 06:53
IMEを「Microsoft Natural Input 2002 ver. 8.1」から
「Microsoft Natural Input 2002」に変更したら例外が発生しなくなりました。
また「Microsoft IME Standard 2002 ver. 8.1」でも例外が出ますが、
「Microsoft IME Standart 2002」は出ませんでした。

とりあえずこれで回避できたので報告しときます。
859841:03/08/05 10:42
>>858
症状は同じことを言っているのかと思い、同じ対策をしてみましたが例外が発生しました。
やはりIMEを変更したほうが良いかもしれません。
ただの例外ならいいのですが、例外を出しているのにOSがハングしてしまうのです・・・。
>>859
ActiveIME の問題で無いのなら初めて聞く話ですね。
XP がでてから結構経つけど、初めてのケースでしょう。

例外の内容とか教えてもらえるとうれしいな。
861デフォルトの名無しさん:03/08/05 12:43
>>856
そんなに煽りたいなら2ちゃんでやれっ!!

ってここが噂の2ちゃんですか?( ´,_ゝ`)
862841:03/08/05 13:16
例外はAccess Violationです。
InputBoxのダイアログで例えば「あか」と
入れてスペースキーを押して変換しようと
した瞬間に発生します。
例外ダイアログが表示されてOKを押すと
ハングしてしまいます。
863デフォルトの名無しさん:03/08/05 14:22
マウスの移動範囲を設定する方法を教えて下さい
864デフォルトの名無しさん:03/08/05 14:47
Main画面からsub画面を複数作成するのにvectorを用いています。
Main画面でsub画面の存在の有無が知りたいのですが、
Main側で生成したvectorの中身を調べて、sub画面の存在の
有無を知る方法はあるのでしょうか?

sub画面を作成する処理は以下のようにしています。

vector <TSubForm *> tSubForm;

//sub画面生成処理
void __fastcall TMainForm::ButtonClick(TObject *Sender)
{
tSubForm.push_back( new TSubForm( this ) );
tSubForm[num]->Show();
tSubForm[num]->Refresh();
 num++;
}
865_:03/08/05 14:48
>>863
::ClipCursor(RECT)
867_:03/08/05 17:03
868デフォルトの名無しさん:03/08/06 01:02
Oracle 8iの配列フィールドはEnterprise版でDBGridに表示できるとあるけど
Interbaseの配列フィールドもEnterprise版でDBGridに表示できるのか?

Professional版で配列フィールドを表示するGridがサードパーティであれば
教えてください。
>>868
「配列フィールド」ってなんだっけ?IB にあったかな?
870デフォルトの名無しさん:03/08/06 10:20
アプリケーション インスタンスのハンドルの取得方法を教えて下さい。
871デフォルトの名無しさん:03/08/06 11:08
SetWindowsHookExでキーをフックしてるのですが
ここでキーが押されなかった事にするにはどうしたらいいのでしょうか?
それとも他になにかAPIみたいなのがありますか?
872_:03/08/06 11:19
>>871
-1を返せばいけるはず
>>873
おお!ありがとー
つかTRUE返してるんだけどこれって-1ではない?
ちょっと試してみます
嗚呼・・
やっぱり普通にAlt+Tabとかでアプリ切替できます
Alt-Tab や Alt-Ctrl-Delete は普通のキーでは無いから。
>>870
HInstanceグローバル変数
>>876
SetWindowsHookExではそれ系のキーの無効化はできないと?
つかAlt+TabやAlt+Ctrl+Deleteは無効にできないんですか?
>>878
フック行く前にOS側で処理されてるはず。
というか簡単に無効にできたら危ない。
>>879
確かに簡単にできたら危ないんだけどね
フック前にOSにアレされるとどうしようもないですね
DirectXの何かでそれ系あった気もしたがまあそれはいいや
ありがとう
眠い・・・
>>881
それはBCBじゃどうしようもないと思う。
昼飯の後と夕方のこれくらいの時間が一番眠いのはボーランドも認めてる
ほら、すべった( ´,_ゝ`)
885デフォルトの名無しさん:03/08/07 14:01
マウスクリックをフックする方法を教えて下さい。
886_:03/08/07 14:01
>>885
フックする種類を WH_MOUSE にすればいいんじゃないの?
あとはCBuilder付属のWin32APIリファレンス参照。
>>887
まったくその通りでした(;´Д`)
つかC++Builder1なんでAPIアレないんですよ
890デフォルトの名無しさん:03/08/07 18:09
これからプログラムを勉強しようと思うのですが
CとC++どちらを先に勉強したほうが効率がよいでしょうか?
悪いこと言わないからCからやっておけ。
100%C++
うひょー
むひょ
>>890
最初は難しく思えてもZ80とか簡単なアセンブラから始めておくと覚えやすいね。
BASICから始めた俺はレジスタが最初の壁だったな〜
Z80よっか8086っしょ

つか今はアセンブラ覚える必要全くなし!

もうアレなんだから普通にC++Builderでいいじゃん
ドレ?
898Indy使い:03/08/08 18:53
Indy9コンポーネント入れたいんだけど…いれられない
ダウンして解凍してFullc5.bat実行して,できたフォルダごと環境設定で
ライブラリにパス通してもパレットにでてこない
誰かHelp!!…
>>898
既出、過去を見れ
900デフォルトの名無しさん:03/08/09 03:44
900
                        / ̄ ̄ ̄ ̄ ̄ ̄ ̄
     /\      /\        < 糞スレ
     /  \    /  \        |  おめでとうございまーす
    /     \_/    \      \_______
    /               \
   /                ヽ___  ___
  /  /  ヽ__/  \    /     ゙Y"     \
 |         │  /      /               \
 |       丶/     /                 \
 \         / ̄ ̄ ̄ ̄)        *      ( ̄ ̄ ̄ ̄)
   ヽ_____|    ─<         |\      >─   (
           |      )     /  (|ミ;\    (      )
           ヽ    ̄ ̄)    /(___人|,iミ'=;\  (  ̄ ̄   )
           /" ̄ ̄ ̄ ̄   /    《v厂リiy\  ̄ ̄ ̄ ̄\
           /        /        ゙|,/'' v:,,、.¨)z,_       \
          /       /         ミ/ .-─ .゙》z、      \
          /      /           〔」″ノ‐ 、u ¨\      )
         (      /             ゙|, ..冫 .rー    ̄\_   |
          |      〔              ミ./′   ..r-ー __,,ア┐ |
          |      |              {. .,,,,   .′ .´′ .¨\|
          |       |              ∨   ノ冖′=vvvvvv¨\
          |     /               ミ.  ,i'          .゙\_
          |     /                .{. ノ  ,r¬″       .¨\
          |     /                 ゙|, |  ノ      ー'''''''''''  .ーミz
          |     |                  ミ.     .,、 ._,,,、、r   ,,,,_____ ゙┐
      _/"     |                  .ミ.   ./′ ´′      ̄⌒'h..¥
     (______)                  {.  }  ._,,,、  ,ノ冖''^¨    ″〕
                                 ゙|, .,| ./`  ,r'′  vvvv、   |
                                  .ミ、.` |    二、      〔  、 ,|
                                  .〔  |  .、 〔  rーー   |  |.,}
                                   .ミ .′ .|  〕  .} ─-「  y-リ
                                   .\   |,  ´v,,,]、、、v-  ..,/′
                                     ゙\ .\、    .  _/
                                      ¨'ーvu,,____''工レ-'″
C++Builder 、personalってDelphiみたいに無料で使えるのかと思(略
んで、BCCってC++Builderの開発環境を取り除いただけと聞いたことがあるんですが
C++Builderのソースコードをコンパイルして実行なんて、、できませんよね?
VCL使ってると無理だと思う。
905デフォルトの名無しさん:03/08/12 10:25
久々に使ったけど、エディタがぜんぜん進化してないのね。
builderは統合環境を使わざるを得ないんだから、
せめてVC程度のエディタは搭載してほしい。
外部エディタ使えばえぇやん
おいおい・・・
VCのうんこエディタのマシだってかよ・・
>>905は使いこなしてないっぽいな( ´,_ゝ`)
確かにBuilderの補完は遅すぎるね。
あまりにも遅いので切って使ってるし。
909デフォルトの名無しさん:03/08/13 14:36
・一括整形
・複数行インデント(複数行選んでTAB押し)

Builderってできたっけ?
Ctrl+Shift+I, U
一括整形は無理ぽ
912デフォルトの名無しさん:03/08/13 18:05
( ´,_ゝ`)一括整形 ?
VCでも一括整形ってできたっけ?
Vimぐらいしかシラネ
  ∧,,∧  VC#ではできたんじゃなかったかな?
 ミ,,゚Д゚彡
 ミつ日(ミ
VC6でもできるよ。範囲選択してAlt+F8で自動一括整形。
普通にアプリ作っているとき、
プログラムのなかに大量にprintfが入ってるとまずい?
アプリ終了時に原因不明のエラーが出てて、
これ外したらエラーが出なくなったんだけど。
917デフォルトの名無しさん:03/08/14 09:36
ファイルを分割してヘッダファイルが増えると

[C++ エラー] sysmac.H(58): E2040 宣言が正しく終了していない
って全然見た事もないヘッダファイルからエラーが発生するのですが..

extern "C" {//<-ここでエラー発生
#pragma option push -vi


extern "C" {
#pragma option push -vi

解決方法ありましたら宜しくお願いします
918デフォルトの名無しさん:03/08/14 09:38
もう二つ
BCB6のエディタで行番号を表示するにどうすればいいですか?

同じくエディタで改行コード記号を表示させてカーソルが
改行コードにフォーカスさせるにはどうすれば良いでしょうか?
919デフォルトの名無しさん:03/08/14 09:58
CPAD使えば良いだろ
920デフォルトの名無しさん:03/08/14 11:08
>>919
CPADだとコンパイルまでできるのですね
ありがとうございます。
921デフォルトの名無しさん:03/08/14 14:18
C++Builderで、DirectXとか、使わずに、
ゲーム作るとしたら、やっぱり、IMAGEつかう?
それとも、フォームに描く?
ビットマップに描いて、貼る場所は適当
923山崎 渉:03/08/15 15:26
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
924デフォルト:03/08/15 21:11
RichEdit->Perform(EM_SETOPTIONS,ECOOP_OR,ECO_VERTICAL);
これで、縦書きができる。うそかほんとかどっちでしょう?
925 :03/08/15 22:24
C++BuilderでDLEPHIのパスカルのコードのコンパイルできるの?
VCLはパスカルで書かれてるんでしょ。
926|д・彡 ◆A6VzDeLphI :03/08/15 22:49
>>924
OSに依存するみたい。
昔のRichEd32.dllをExeと同じフォルダに
おいておくと実現できたりもするとかしないとか。
927  :03/08/15 23:40
下がりすぎなので
age
>>925
ぉぅ, ょゅぅ
うそということになるみたいですね。
こんな感じで、縦書きになるみたいなのですが。
うまい方法、探すのに一苦労ですね。924でした。
どうも、ご清聴、ありがとうでした。
>>925
Delで書いたアプリでもそのままコンパイル通ります(゚∀゚)b
ていうかC++BuilderにはPascalコンパイラもついてくるしな(dcc32.exe)
932  :03/08/16 12:41
>>928 >>930 >>931
おお、ありがとう。
ちょっと試してみたけど統合環境からdelhiのプロジェクトを開いてもうまくいかなかったけど
pasをプロジェクトに追加したらコンパイルできた。
pasとcppの混ざったやつがコンパイルできてリンクできるんだね。すごい。
しかし二つの言語じゃ型やその他、色々違うのになんで特別なことしなくてもできるのだろう?
でもクラスエクスプローラがpasファイルを認識できないみたいなのが痛い。
delphiのパーソナルにもコードエクスプローラがついてないみたいだし。
933932:03/08/16 14:43
ちょっとやってみてDelphiのフォームに対応するpasやdfmをBuilderのプロジェクトに追加すると、プロジェクトのcppファイル(WinMainがあるやつ)に
  USEFORMNS("ChOwn1.pas", Chown1, Form1);
てのが追加されこれが#includeの役割と変数Form1を定義してるらしいことはわかったし、
ふつうのpasファイルとかを追加してコンパイルしたらhppファイルが追加されることもわかったけど
もっと詳しくBuilderでpasファイルを利用するやり方が書いてある本とかWebを知りませんか?


>>932
弊社のサポートなどいかがでしょう?
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧ ニヤニヤ
 ( ・∀・)
 (    )
 | 某|  
 (__)_)
久しぶりに見たなそれ
いっそのこと、Delphiと統合しちゃえばいいのにねぇ。
売り上げ減るからやらんのかもしれんが。
Borland Developer Studioでそのうち統合されます。
フリーコンパイラー使えよ、
なぜわざわざ買ってまでBCBとかVC++とか使うんだ?
>>938
貧乏人は勝手にフリーコンパイラーで手間隙かけてろ
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□

向こうのサイトでは
C++ Studioってなってるけど 何あれ
16bit版をだきあわせですか?
942デフォルトの名無しさん:03/08/19 10:17
つか、そろそろ次スレよろ
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
944VCLのTreeView:03/08/20 11:19
Borland C++6を使っているのですが
VCLのTreeViewの表示でノードの頭に画像を表示させたい
のですがヘルプだけではどう使って良いか分からなかった
のでVCLに関する内容が書かれた書籍ありましたらお教え
願います。
>>944
このページの下ぐらいにImageListを使った方法が載ってます。
http://www.philly.ne.jp/~hanya/vb/treeview.htm
ついでにTCustomTreeView::Imagesプロパティのヘルプも目を通して
おくとなお良いです。
947超初心者:03/08/21 20:58
教えてください。
TMainFormのコンストラクターで内部変数の初期化をしていたのですが、意図した動作を
しないため調べていたら、コンストラクターよりも先に、TMainForm::FormCreate
が実行されているように見えました。
自分は、クラスが生成されたら必ず最初にコンストラクターが走るものと思い込んでいた
のですが、TMainForm::FormCreateが先に実行されるのが正しい動作なのでしょうか?
>>947
ヘルプに、コンストラクタとFormCreate()の同時使用は避けるように
書いてあるでしょう。どちらか一方にしましょう。
>>947
ちなみにすべてのコンストラクタが済んでからFormCreate()が実行され
るのが正しい。
TCustomForm::OldCreateOrder() をヘルプで見て下さい。
>>948
はぁ?
>>950
だからTCustomForm::OnCreateをヘルプで見てみろっつーの。

「フォームのコンストラクタとのやり取りが不良になる可能性があるので,
C++Builder で OnCreate イベントを使うことはお勧めできません
(OldCreateOrder を参照)。かわりに,フォームコンストラクタをオーバーライド
することをお勧めします。」って書いてあるだろーが。
コンストラクタより先にFormCreateが呼ばれるのって、
BCB4だけじゃなかったっけ?
そや、これから質問の前にBCBのバージョンを書いてくれ。
俺が答えられるのはBCB6だけだぞ。
>>952
そうでもないよ
BCB6のSTLPortを新しい物に入れ替える方法を教えてださい。
>>955
4.5.3にか?かなりいじらないといけないしここには書ききれん。
余程根性があるなら今入っているSTLportを参考にちまちま
書き換えるしかなかろう。俺はやらん。必要ないし。
>>956
変更はいらないと思うけど。
srcの中のbcb60.makをmake.exeに食わせるだけじゃない?
>>957
ヘッダが全然通りません。
試してみれば分かると思いますが大量のエラー吐いてくれます。
すみません
いろいろと試したのですが
どうしても見つからないことが有るのですが
bcb6.0 proなんですが
スプレッドのようなコントロールは有りませんか?
グリッドは値が変更できなくて困っています
エクセルのイメージでデータを入力したいのですが

コンポーネントというのを作るしか無いのでしょうか?
>>959
グリッドの値が変えられないのは、プロパティの設定でエディット不可に
設定したままだからではないかな。

コンポーネントを選んだ貼り付けただけだと、デフォルトではエディット
不可です。
961960:03/08/22 05:43
>>959
960の続き。とりあえず、HELPで、TCustomGrid::Optionsを検索してみてください。
TStringGrid は、こいつを継承しています。

そうすると、
> goEditingセルの内容を編集できる。

という説明があります。(ほとんど情報になってないけど)

IDEのほうで、貼り付けたStringGrid について、オブジェクオインスペクタを見ると、
+ Options という項があるので、その+をクリックして展開すると、11番目くらいに
goEditing false なんて表示されるはずです。

ここを true にすれば、ひとまずセルのテキストは書き換え可能になります。
959です
>>961
とりあえず変更できますた。
あとは自分でがんばります
サンクス
963デフォルトの名無しさん:03/08/22 15:50
キーボードから入力されたときの処理を行うにはどうしたらいいんですか?
BCB6で。
OnKeyDown / OnKeyUp / OnKeyPress
965デフォルトの名無しさん:03/08/22 16:03
>>964
さんきゅー
966デフォルトの名無しさん:03/08/22 16:30
キーボードについた精子を綺麗にするメソッドを教えてください
落ち着いて1000ゲット
BCB6Pro. Win2kSP4 Indy 9.0.11にて IdHTTPコンポーネントのことで質問します。
ブラウザでhttp://www.vector.co.jp/vpack/filearea/winnt/net/www/fehiwhf.htmにアクセスすると
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<TITLE>Not Found</TITLE>
</HEAD>
 :
 :
てな具合にソースを取れます。
BCBで
---------------------------------------------------------------------------------
AnsiString strurl = "http://www.vector.co.jp/vpack/filearea/winnt/net/www/fehiwhf.htm";
AnsiString strtmp;

try {
strtmp = IdHTTP1->Get(strurl);
}
catch ( ... ){
}
---------------------------------------------------------------------------------
とやった場合、strtmpには何も入りません。
ブラウザと同様なhtmlソースをstrtmpに受けるためにはどうすればいいのでしょうか?
969968:03/08/22 21:41
因みに今はWinInetで誤魔化していますが、
IndyとInetの併用というのが気に入らないのです。
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
   
1000トリ合戦スタート!
973
974
975
976
977
978
979
980
981          
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。