トップページ⇒tech
946コメント287KB

C++Builder相談室 Part6

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


0449デフォルトの名無しさんNGNG
>>448
さんきゅ
未だ成功せず
リソース見てみたら集合写真はあるけど、Borzilla.wavが無い!?
本体ではなく他のに入ってるのか捜索開始します
0450デフォルトの名無しさんNGNG
Formを2つ作成し、Form1を上下左右に動かすと
Form2も連動し上下左右に動かす方法はないですか?
Formのイベントとか見てもそのようなものないし・・・。
宜しくお願い致します。
0451デフォルトの名無しさんNGNG
ある
0452デフォルトの名無しさんNGNG
>>447
BCB5では>>442の方法で出た
6は未確認
0453デフォルトの名無しさんNGNG
>>450
http://www2.big.or.jp/~osamu/Delphi/builder-browse.cgi?index=012852
0454デフォルトの名無しさんNGNG
MDIアプリのいいサンプルありませんか?
一応探してみたんですが、無かったので
0455434NGNG
int i=100;
AnsiString buff;
buff.sprintf("Value:%d",i);
これが通って

int i=100;
AnsiString buff.sprintf("Value:%d",i);
これが通らない。なんで?
0456デフォルトの名無しさんNGNG
いけね。名前そのままにしてた。
0457デフォルトの名無しさんNGNG
>>455
初期化でメンバ関数呼んで普通通ると思うか?
0458デフォルトの名無しさんNGNG
ふーん、そういうもんなんですか。
0459デフォルトの名無しさんNGNG
>>458
もう一度C++をよく勉強しなしゃい。
0460デフォルトの名無しさんNGNG
>>453
さんくす。
0461デフォルトの名無しさんNGNG
http://www.zdnet.co.jp/enterprise/0307/08/epn17.html
C#
0462  NGNG
C#Builderとは。
C++Builder7はまだ発売されないの?
もうすぐ金入るからBuilder6のProfessional買おうか迷ってるけど買ってすぐ7がでたらやだなー。
0463デフォルトの名無しさんNGNG
MDIアプリのいいサンプルありませんか?
一応探してみたんですが、無かったので
0464デフォルトの名無しさんNGNG
本買え
0465デフォルトの名無しさんNGNG
どの本に載っていますか
どこで買えますか
0466デフォルトの名無しさんNGNG
新規作成→その他→プロジェクト→MDIアプリケーション
の奴でいいだろ。
0467デフォルトの名無しさんNGNG
>>433
CodeGuard便利っすよ。
メモリーリークの他にも危険な操作も検出してくれるようです。
0468 NGNG
>>467
ありがとう!
プロフェッショナル版を買おうか迷ってたけど買おうとおもいます。
0469デフォルトの名無しさんNGNG
フォームのBorder StyleをbsNoneにしてフォームの
タイトルバーを消した状態でフォームの大きさを従来通りマウスで
変えたいのですが、どうすればいいのでしょうか?
0470デフォルトの名無しさんNGNG
>>469
"WM_NCHITTEST" と「リサイズ」でぐぐれ。

ところで、枠が無い状態でどこを掴んだときにリサイズさせたいの?
0471デフォルトの名無しさんNGNG
>>470
ウィンドウの端にマウスをもってくと枠がある時と
同様な操作がしたいもので
0472デフォルトの名無しさんNGNG
あ、ダメだ・・
ググっても発見できない
0473デフォルトの名無しさんNGNG
WM_NCHITTESTの説明見て理解しれ

BCBのサンプル
http://market.agr.tottori-u.ac.jp/ken/tech.html#FormSize
0474_NGNG
http://homepage.mac.com/hiroyuki44/
0475デフォルトの名無しさんNGNG
>>473
できました!
しかし今度はMouseDownイベントが発生しなくなってしまいました・・
WM_NCHITTESTメッセージを処理した後にデフォルトの処理を
走らせるにはどうしたらいいのでしょうか?
0476デフォルトの名無しさんNGNG
TForm::Dispatch(&msg);

でもこの場合、処理した後じゃなくて前に呼ぶ。
(後に呼ぶと自分で設定したmsg.Resultが、デフォルトの処理で書き換えられるので)
0477デフォルトの名無しさんNGNG
すいません。
変な例えですが、TStringListの様なクラスを配列で利用したいんですが、
初期化はどのようにしたらいいんでしょうか?
ヘッダに
TStringList *strlist[100];

とすると、初期化は?
strlist[]=new TStringList;
じゃダメですよね。
0478デフォルトの名無しさんNGNG
>>477
試してないけど、固定長配列でいいなら、

int i;
TStringList *strlist[100];

// 確保のコード
for( i = 0 ; i < 100 ; i++)
  strlist[i] = new TStringList;


// 解放のコード
for( i = 0 ; i < 100 ; i++)
  delete strlist[i];

じゃないかな?
0479477NGNG
ごめんなさい。
やりたかったことは、TListを使うとうまく行きました。
>>478
やっぱりその方法が一番手っ取り早いみたいですね。

もう使わないけど。
0480デフォルトの名無しさんNGNG
アスペルガー
0481デフォルトの名無しさんNGNG
アスベスト
0482デフォルトの名無しさんNGNG
Unit1.h
−−− ここから
class TForm1 : public TForm
{
__published: // IDE 管理のコンポーネント
TMemo *Memo1;
void __fastcall FormShow(TObject *Sender);
private: // ユーザー宣言
void __fastcall WMDropFiles(TWMDropFiles Msg); //←追加
public: // ユーザー宣言
__fastcall TForm1(TComponent* Owner);

BEGIN_MESSAGE_MAP //←追加
MESSAGE_HANDLER(WM_DROPFILES,TWMDropFiles,WMDropFiles) //←追加
END_MESSAGE_MAP(TForm) //←追加
};
−−− ここまで

Unit1.cpp
−−− ここから
#include <ShellAPI.h> //DragAcceptFiles()

//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
DragAcceptFiles(Handle,true); //Drag&Drop許可
}
0483デフォルトの名無しさんNGNG
↑はフォームにファイルをドロップするとWMDropFilesが呼び出されるプログラムです
DragAcceptFiles(Handle,true);
では正常に処理されるのですが、たとえば
DragAcceptFiles(Button->Handle,true);
として、ボタンにドロップしてもWMDropFiles内に書いた処理をしてくれません
MLなんかにはここを変えるだけでいいようなことが書いてあるのですが、
何か他にしなければいけないことがあるんでしょうか
0484買ってきたばっかNGNG
Borland C++ 6.0 Personalで
簡単なフォームを作って実行させたところ

[リンカ 致命的エラー] Fatal: ファイル名が必要 :

わかんないっすTT
0485デフォルトの名無しさんNGNG
>>483
WM_DROPFILESはButtonに送られるんだから、
Buttonをサブクラス化するとか、TApplication::OnMessageでWM_DROPFILESを捕らえて処理しないと。
0486デフォルトの名無しさんNGNG
>>484
漏れもなったことがある。
フォームにボタン一個貼っただけなのに、保存してからコンパイルしようとすると
[リンカ 致命的エラー]が出たり。
再インスコしたら直ったけど
0487デフォルトの名無しさんNGNG
>484
原因不明のエラーに対する自分なりの手順。
1)全て保存してやり直す
2)すべてのプロジェクトを再構築してやり直す
3)Builderを一度終了させてやり直す
4)OS再起動させてやり直す

個人的な経験では、再構築で直ること多し。
再インストールはやったことないな。。。
0488486NGNG
>>487
漏れの場合はそれ全部やってもダメだった。
んで再インスコ
0489買ってきたばっかNGNG
>488
再インスコでなおった@@;
アリガトン^^
0490デフォルトの名無しさんNGNG
C#Buidlerってどうなの?
0491デフォルトの名無しさんNGNG
SYOTI_F( char * ) test_time SYORI_P(( const time_t *tp, char *buf ));

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

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

C++Builderだとどうすれば良いのでしょうか?
0492 NGNG
test.hが必要ってエラーでてるじゃん
0493デフォルトの名無しさんNGNG
>>492
test.h 内で)が必要という意味みたいです^^;
0494デフォルトの名無しさんNGNG
SYOTI_FやらSYORI_Pっていあマクロらしきもののの中身さらさんとわからん
0495_NGNG
http://homepage.mac.com/hiroyuki44/
0496デフォルトの名無しさんNGNG
>>494
typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
SYORI_Pはこんな感じです。
#define SYOTI_F(type)extern type
となっています。
中身は必要ですか?

0497デフォルトの名無しさんNGNG
絶対SYORI_Pが違う。
#define SYORI_P(x) x
みたいになってるはず。
0498デフォルトの名無しさんNGNG
>>497
typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
では定義は不可能という事ですか?
0499 NGNG
おそらく
>typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
これはSYORI_Pのtypedefではなく_rewriteのでは。
そしてSYORI_Pはマクロです。
#define SYORI_P(PAR) (anyfunc)PAR
こんな感じ
0500 NGNG
>#define SYORI_P(PAR) (anyfunc)PAR
これちがうは
0501 NGNG
#define SYORI_P(PAR) (returntype(*)PAR)
こんなんかな
0502デフォルトの名無しさんNGNG
>>499
それがないんですよね〜
SYORI_Pはヘッダファイルのみの使用なんですが
いくら検索かけてもないんですよね

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

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

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

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

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

よろ..
0510デフォルトの名無しさんNGNG
自分で理解できないからって、、

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

すげーむかついたから、勝手にやってくれ。
0511 NGNG
そのソースが使われてるとこにあるライプラリなどから呼び込んでるかと
0512 NGNG
プ。じゃなっかた。ブだ。
0513デフォルトの名無しさんNGNG

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

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

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

質問のレベルが高すぎたのかなあ...ww
0519デフォルトの名無しさんNGNG
相互リンク
http://pc2.2ch.net/test/read.cgi/tech/1057580107/68-
0520デフォルトの名無しさんNGNG
>>491
この情報でどうやってわかれって。
0521デフォルトの名無しさんNGNG
>>520
koreigai naniga aruno?
質問に散々こたえたでしょw

0522デフォルトの名無しさんNGNG
デスクトップにあるアイコンより下にフォームを表示する方法を教えて
0523_NGNG
http://homepage.mac.com/hiroyuki44/
0524477NGNG
TListに独自のクラスをAddで追加したんですが
その追加したクラスを取り出すとき、void*型を独自クラスの形式に変換することが出来ません。
独自のクラスに変換するにはポインタを解析して行くしかないのでしょうか?
0525デフォルトの名無しさんNGNG
>>524
"キャスト"という言葉はご存じですか?
0526デフォルトの名無しさんNGNG
>>524
クラスやコンポーネントは実際はポインタだから、普通にキャストできると思うが。
var
 List:TList;
 p:TForm1;
begin
 List:=TList.Create;
 List.Add(Form1);
 p:=TForm1(List.Items[0]);
 List.Free;
 ShowMessage(p.Name);
end;
0527デフォルトの名無しさんNGNG
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;
これでキャスト出来ないんだけど、ドコが悪いの?
0528デフォルトの名無しさんNGNG
あっ!間違えた。
StrList->Add("abcdef");
//delete StrList;
0529デフォルトの名無しさんNGNG
sl=(TStringList*)List->Items[0];
こうだよん。
0530デフォルトの名無しさんNGNG
それやると、メッセージ表示される前に
フリーズしちゃうんですが…
0531デフォルトの名無しさんNGNG
TStringList* sl;
0532デフォルトの名無しさんNGNG
あー!
List->Addしたあと、delete StrListしてました。
お手数おかけしました。
0533デフォルトの名無しさんNGNG
ところで、何回も同じ変数でnewしても、
その回数だけdeleteする必要ってないんですか?
0534デフォルトの名無しさんNGNG
VCLとCLXの条件コンパイルはどうやってますか?
0535 NGNG
今までパーソナルだったけど気に入ったからProfessional版買ってきてインストールしたけど
起動が滅茶苦茶遅くなった。ペンティアム�Vの733ヘルツだと重いのかな。
0536デフォルトの名無しさんNGNG
要らないパッケージ外したら速くなるよ。それでも重いこた重いけどナー
0537 NGNG
>>536
パッケージが原因なんですか。
そういえばパーソナル版使ってるときに本やWeb上のサンプルをコンパイルしようとしたら
パッケージがないとか言ってコンパイルできないことが多かったよ。
あれはプロフェッショナル版の人が作ってたんですな。
まあ実行時パッケージを使って構築のチェックを外せばだいたいコンパイルできたけど。
でもたくさんコンポーネントが増えてうれしい。
ログが表示できたりCodeGuardが使えたりしてデバッグもぐっと楽になるだろうし。
秋葉原に買いに行ったらVC++.Netの2002年版のやつとVS.Net2003Professionl限定アップグレード版をセットで買うと
5万弱で買えるってお勧めの商品になってて迷ったけどこれでよかったんだよね、多分??
でも1万円以上高いのはちょっと痛いな。あっちはC++とC#とVBもついてるし。
0538デフォルトの名無しさんNGNG
今、悩んでいるのだけど
これからc++を始める人にとっては「c++builder」と「visual c++」の
どちらを選択すべきであろうか。
自分の中では「visual c++」がメジャーと思っていたので他の選択肢を考えていなかった。

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

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

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

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

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

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

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

0546デフォルトの名無しさんNGNG
それは君の心の中にあるのです。
0547デフォルトの名無しさんNGNG
>>545
コンソールアプリケーションを選択すれば出力される。
0548デフォルトの名無しさんNGNG
AnsiStringってもしかして怖い?
■ このスレッドは過去ログ倉庫に格納されています