トップページtech
984コメント343KB

新C++Builder相談室

■ このスレッドは過去ログ倉庫に格納されています
0001新人NGNG
C++Builder相談室が後少しで1000になりますので、新しいスレを...
よろしくお願いします!
0441デフォルトの名無しさんNGNG
>>439
439さん、私も知りたいです。
教えてください。

現在、2つエディットボックスを用意しといて
1つに、文字を入力させて、
もうひとつに、その文字のUNICODEを表示させたいと考えているのですが
うまくいきません。
0442デフォルトの名無しさんNGNG
>>441
あんたの逝っている事は、438と439が騙りあってる内容とはずれてないか?
UNICODEへ変換して、16進表示したいという事カナ?
0443デフォルトの名無しさんNGNG
そうです
0444デフォルトの名無しさんNGNG
>>440
自作でGO。

>>443
Edit2->Text = IntToHex(WideString(Edit1->Text)[1]);
0445デフォルトの名無しさんNGNG
デストラクタ A::~A が呼ばれません。
こいつは C++Builder のバグですか? それとももしかして仕様ですか?

------------ unit2.h ------------
struct A;
struct B{
 A* a;
 B();
 ~B(){ delete a; }
};
------------- unit2.cpp ----------
#include "unit2.h"
#include <cstdio>
using namespace std;
struct A{
 ~A(){ printf("A::~A()\n"); }
};
B::B()
{
 a = new A();
}
------------ unit1.cpp -----------
#include "unit2.h"
int main()
{
 B b;
 return 0;
}
0446デフォルトの名無しさんNGNG
>>445
それは仕様どおりです。
呼ばれるようにするには~Bをvirtualにします。

というか基本的に
virtualでない関数を再定義しちゃダメです。
0447デフォルトの名無しさんNGNG
すいません、ボケてました。忘れてください。
0448デフォルトの名無しさんNGNG
struct Aの先行宣言しか見せて無いから、
デストラクタ(やメンバ関数)が存在しないと仮定されてるんでしょ。
ま、先行宣言しかないstruct(newはできない)がdeleteできるのは
C++の仕様的に正しいのか知らんけど。
0449デフォルトの名無しさんNGNG
struct A *getA();
int main()
{
 A *p = getA();
 delete p;
 return 0;
}

bccだと警告止まりでコンパイルできてしまう。
0450デフォルトの名無しさんNGNG
>>445
> こいつは C++Builder のバグですか? それとももしかして仕様ですか?
(´-`).。oO( 気軽にバグとか言うなよー )

>>449
clでもコンパイル&makeできたよ。
でも、getA()からは有意な値を返せんから意味ないか…
仕様的にどうかは…
詳しい方の解説キボン
0451デフォルトの名無しさんNGNG
gccだと駄目みたい。
0452445NGNG
>>450
あー・・・気軽にバグって言っちゃダメなの?
仕様なのかどうなのか知りたかっただけにゃ・・・

原因が判れば回避は出来るんで、全然構わんのだけれども。

auto_ptr で自動的に解放されるはずのを
CodeGuard がメモリリーク報告するもんだから
意味不明状態が半日続いたよ。。。
0453デフォルトの名無しさんNGNG
BCB for Linux 期待!
0454デフォルトの名無しさんNGNG
>>452
> あー・・・気軽にバグって言っちゃダメなの?
別に私としては何の問題もありません。
ただ、処理系のバグに遭遇する事はそうあるものではありませし、
ましてやこの様な単純なコードではそうです。

で、気軽に“処理系のバグ?”とか逝ってるのを見ると、
オメデテーナ、と私は思います。
他の方がどう思うか知りませんし、
あなたがそんな事気になさらないなら、お好きに。
0455デフォルトの名無しさんNGNG
ウィンドウズが固まるのはバグですか?仕様ですか?
0456デフォルトの名無しさんNGNG
>>455
大概の場合はドライバやアプリが原因で、結果的にウィンドウズが固まる。
ま、それを回避できないのは腹立たしいけどな。
ともあれ、よくわかんないから「バグだ!」って叫ぶのは自分の無知をさらけだす行為だよ。

と、いうようなことを>>445に言いたかったのではないかと思われ。
0457デフォルトの名無しさんNGNG
>>449
>bccだと警告止まりでコンパイルできてしまう。
コンパイルできないほうが良かったと?
0458デフォルトの名無しさんNGNG
>>457
コンパイルはともかく、リンクはできちゃいけないと思うけど、試した人どうですか?
0459デフォルトの名無しさんNGNG
>>458
449のままではリンクできない、getA()の実体が無いから。
struct A *getA(){
return 0;
}
とすれば、bcc32とclではexeがでけたよ。

vc++のIDEからmakeしようとすると、
A*を扱うdelete演算子がないと怒られる。
0460デフォルトの名無しさんNGNG
>>454
“単純なコード”ってのは語弊があるかも。
“頻繁に使用される構文”くらいの意味です。

有名どころでは、

#include<stdio.h>
struct T{
int i;
T(int a) : i(a) {printf("%d, T:T()\n", i);}
~T(void) {printf("%d, T:~T()\n", i);}
};
void main(void){
true ? (true ? T(1) :T(2)) : (true ? T(3) :T(4)) ;
}

こんな単純なコードでも、手元のbcc32でコンパイルすると、
いやんな動作をしてくれる…
0461デフォルトの名無しさんNGNG
>>460
そういうのって病的なコード、っていわない?
0462458NGNG
>>459
さんくす。なるほどね。

話は全然違いますけど、これってBCB5でリンクできます?
BCB3ではリンクできて、実行すると"A"という表示が出たんですけど。

----file1.cpp----
extern void Test(void);
int main(int argc, char **argv)
{
Test();
while(1);
return 0;
}
----file2.cpp----
#include <stdio.h>
void Test(void)
{
printf("A");
}
----file3.cpp----
#include <stdio.h>
void Test(void)
{
printf("B");
}
0463デフォルトの名無しさんNGNG
>>462
BCB5でlinkできました。clだとlink時に弾かれた。
Borlandマンセーな私としてはbcc32を擁護したいけど。
そういえばbcc32って、同一名のグローバルスコープ変数の実体が
複数あっても問題なかったような。
きっと根は同じなんだろうけど、仕様的に正しいかどうか、
なんちゃってプログラマな私にはサパーリわからない…
0464458NGNG
>>463
やっぱりできちゃいますか。某国マンセーは同じだけど、これはダメでしょ。

俺はDelphi屋だけどね。BCBは2年ほど使ってない。
0465445NGNG
>>449
あ。警告が「すべて表示」じゃなくなってる!
きっと再インストールしたときに・・・

すべて表示にしたら警告出ました。
バグ呼ばわりした自分が愚かでした。
ゴメナサイ。めっちゃ鬱。

この件は解決ってことで。。

>>450 >>454 >>456
気を付けます。。。

>>460
ほんとだ・・・
ややこしいことしちゃいけないんだな・・・
0466デフォルトの名無しさんNGNG
>>465
> ややこしいことしちゃいけないんだな・・・
念の為、bcc32のバグです。
vc++なら問題ない、ガッデム!!
AnsiStringとかデストラクタでメモリを開放する
クラスだったりすると、見事アボーンしてくれます。
0467デフォルトの名無しさんNGNG
ここら辺の CBuilder のバグレポートってどこらへんから入手するんですか?
0468デフォルトの名無しさんNGNG
フォームにTImage貼り付けて、そいつを2048×4096にして、pf24bitにするとOSごとあぼーんされるんですが、
リンカのオプションをなにか設定すれば、上手い具合にメモリ確保してくれますか?
0469468NGNG
すんまそん、俺の勘違いでした。
0470デフォルトの名無しさんNGNG
オブジェクト インスペクタ見たいな、GridとComboBoxが合体したような、
物が欲しいんですが、どうすればいいでしょうか?
0471デフォルトの名無しさんNGNG
BCB5を使っていて、ドッキングウインドウのサイズを指定したいのですが
SetBounds()でウインドウサイズを変更すると、スプリットバーが非表示
になってしまいます。
DockManagerあたりが怪しいのですが、ヘルプにもまったく記載されて
いません。
ご存知の方いらっしゃいましたらよろしくおねがいします。
0472DelフサギコNGNG
>>469
次のVersionでValueListEditor
http://hp.vector.co.jp/authors/VA013477/delphi/delinfo/del6/del6001.html
がつくからそれを待たれては?

  ∧,,∧  フリーコンポーネント 探してもいいかも。
  ミ,,゚Д゚ミ
  ミ   ミ  MOStringGridとか。
〜ミ,UU_ミ
0473DelフサギコNGNG
  ∧,,∧  >>470宛てでした。ゴメソ
  ミ,,゚Д゚ミ
  ミ   ミ
〜ミ,UU_ミ
0474デフォルトの名無しさんNGNG
C++Builderを使っていくと結局ObjrctPascalを
やらなきゃいけないんですか?
0475デフォルトの名無しさんNGNG
>>474
やらなきゃいけません。
0476デフォルトの名無しさんNGNG
>>474
Pascal くらい覚えなさい。
0477デフォルトの名無しさんNGNG
>>472
ありがとう

でも、MOStringGridってC++Builder5で使えますか?
インストール方法がいまいちわからないです。
0478デフォルトの名無しさんNGNG
>>477
XStringGridはどうよ?
http://www.eye.ch/~mduerig/prog/index.htm

CellのMergeができるフリーのGrid Componentないかな〜。
0479デフォルトの名無しさんNGNG
>>471

>SetBounds()でウインドウサイズを変更すると・・・

俺もわからんが、下の本に方法が載ってるらしい(スマソ

「ここまでできるBorland Delphi4 パワーガイド」
小出 俊夫・仲村 忠晴・増田 武治
秀和システム \2,800
ISBN4-87966-884-2

別スレでも同じような質問あるけど、誰も答えてないね・・・
難しい問題なのか、一般常識なのか・・・
とりあえず、俺も方法わからん鬱
0480471NGNG
479さん、返答ありがとうございます。

いまから本屋に向かうのも面倒なので(雪降ってるし)
アメリカのサイトを漁ったら以下のサイトが出てきました。
どうやらサンプルが落ちているようですね・・・
Delphiですが・・・

ttp://www.gajits.com/p_docking.asp

やはりCやC++より大事な言語は英語という事でしょうね・・・
0481デフォルトの名無しさんNGNG
で、いつになったらBCB6は出ますか。
0482DelフサギコNGNG
>>479-480
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < その本もってるけど、ナニカ調べましょうか?
  UU""" U U   \_______________
0483デフォルトの名無しさんNGNG
>>478
助かります。

XStringGrid
うまくインストールできないんですが、できたら教えてください。
0484デフォルトの名無しさんNGNG
>>483
おらはDel6でしか使ったことないんだが、
パッケージのインストールでXStringGrid_BC5.bpk開くか
直接XStringGrid_BC5.bpk開けばいいんでないかい?
0485デフォルトの名無しさんNGNG
void f1(void)
{
 AnsiString s;
 f2(s);
}
void f2(AnsiStirng s)
{
 s="test";
}

みたいにして、f1()でs="test"を取りたいんですが、
上記のままだとダメでした。
charのポインタ渡しみたいにしないとダメですか?
0486485NGNG
すんまそん、ageさせて下さい。
0487デフォルトの名無しさんNGNG
矢張りここは
AnsiString f2()
{ return AnsiString("test");}
void f2( AnsiString &s )
{ s = "test"; }
あたりを使うのだろうか。
0488DelフサギコNGNG
void f2(AnsiString &s)
{
 s = "test";
}

void f1(void)
{
 AnsiString s;
 f2(s);
 ShowMessage(s);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 f1();
}
  ∧,,∧   これで動ききましたが
 ミ,,゚Д゚彡  あってる?
  ミつ[|lllll])
〜ミ  ミ    
  U U. 

すごく単純な事でつまっちゃうです
0489デフォルトの名無しさんNGNG
>>485

void f1(void)
{
 AnsiString s;
 s=f2();
}
AnsiString f2(void)
{
 return "test";
}

では駄目なの?
C++の文法を知る事が目的?なら見当違いスマソ
0490デフォルトの名無しさんNGNG
環境はC++Builder 5

メニュー
コンポーネント>パッケージのインストールから
追加ボタン>XStringGrid_BC5.bpkだと
正しくないパッケージファイルといわれ

次に、
コンポーネント>コンポーネントのインストール>既存のパッケージに追加から
ユニットファイル名 XStringGrid_BC5.cpp
パッケージファイル名 XStringGrid_BC5.bpk

で、インストールを選択すると
[C++ 警告] XStringGrid_BC5.cpp(3): W8058 プリコンパイルヘッダーを作成できない : write failed
と出て、(対象のLineには#pragma hdrstop)
それと、XStringGrid_BC3.bplがインストールされたメッセージが出ててきますけど

その後、FormにXStringGridとComboCellEditorを置いて、
XStringGridをColumn propertiesでColumns1のCellにComboCellEditor1を設定
ComboCellEditorのプロパティのItemsに文字列設定

これを実行してGridをクリックしても何も起こらない
これは、インストールができてないのでしょうか?それとも使い方がまずいのでしょうか?
教えてください
0491485NGNG
>>487-489
レスどうもです。
実は引数は2つあるんで戻り値だとだめなんです。
んで、ウケ側で&つけるとアドレス渡しになる、みたいな理解でいいんでしょうか?
今環境がないんで、明日出勤して試してみます。
0492デフォルトの名無しさんNGNG
>>491
> んで、ウケ側で&つけるとアドレス渡しになる、みたいな理解でいいんでしょうか?
参照渡しと呼ぶが、それでいい。
つーか、C++をちゃんと勉強しる。
0493490NGNG
すみません、あげさせて・・・
C++Builder5でXStringGrid使ったこと有る方
HELPお願いします。
0494471NGNG
>>482

Delフサギコ さん、ありがとうございます。
サンプルのとおりやっているのですが、スプリットがうまく動作しな
いなど、ドッキングの挙動が不審です。
BCBだからでしょうか・・・?
でも、DockManagerはDelphiのライブラリみたいだし・・・

おそらくDelphi4 パワーガイドの「ドッキング状態を復帰するには」
の章ではないかと思います。

DockManager->SaveToStream()

で、ドッキング状態を保存し(バイナリを16進数に変換してiniファイルに保存)

DockManager->LoadToStream()

で、ドッキング状態を読込んでいます(16進数からバイナリへ変換)

このやり方であっていますでしょうか?
0495471NGNG
すいません、自己レスです。

上の方法であってました。
私の場合、DockSiteをパネルではなく、直接フォームに設定
していたのが原因のようです。
フォームにDockSite用のパネルを設置して、パネルにドッキ
ングするようにしたら解決しました。

お騒がせ致しました・・・
(でも、フォームをドックサイトにすると挙動おかしくなるよー
ってヘルプにちゃんと書いてほしかったなぁ・・>ボーランド)
0496デフォルトの名無しさんNGNG
>>490
遅レスだが試してみた。
一番簡単なインストール方法はXStringGrid_BC5.bpkを
ダブルクリックでBCB起動させてインストール。

> で、インストールを選択すると
> [C++ 警告] XStringGrid_BC5.cpp(3): W8058 プリコンパイルヘッダーを作成できない : write failed

[オプション]->[コンパイラ]のプリコンパイルヘッダーのファイル名を$(BCB)\lib\vcl50.csmとか
にすれば回避できる。
プリコンパイルヘッダーを作成できないだけなんでたぶん問題なし。

> これを実行してGridをクリックしても何も起こらない

こちら(BCB5.0Update1 + Win2k)ではDelと同様にうまくいったぞ。
XStringGrid->OptionのgoEditingあたりがクサいな。

ちなみにColumn Propertiesのダイアログで日本語化けるけど特に問題なし。
がむばって栗。
0497デフォルトの名無しさんNGNG
>>496
実際に試していただいてありがとうございました。
ご指摘がずばりあたっていました。
無事動きました。良かった・・・。
0498デフォルトの名無しさんNGNG
C++builder5をもっているけど、なかなかつかいこなせません。

マニュアルは分厚いし、オンラインマニュアルは読みにくいし・・・。
基本的にC言語の基礎的な知識しかないので、CもしくはC++の入門本から
やり直そうといつも思うのですが、いつも途中で挫折して、BCBを使うところまで
たどりつけません。おすすめの学習方法を教えてください。アップグレードで
Ver1,3,4,そして5と購入しましたが、何一つソフトがつくれていません。
0499デフォルトの名無しさんNGNG
>>498
sample見れ。

Cの基礎知識があるんだったらとりあえず逝けるんでわないか?
BCB(Delも)使いはじめはVCLの使い方を覚えることが最短の学習方法だと思われ。

VB以上に直感的にソフト設計できるから、コードの書き方で悩む前に
IDEでComponentぺたぺた貼ってみては?

とりあえずHelloWorldを10回作れ。
0500498NGNG
>499

「我をたたえよ」は10回以上も作りましたが、だめです。

上は冗談ですが、コンポーネントの使い方を覚えても身に付かないと言うか、
動く3Dを簡単に実現するコンポーネントとか、マイクから拾った音声を解析して
立体的なロゴを画面に表示するコンポーネントとか、自分の欲しいコンポーネントが
全然ないので学習がすすまないのです。そもそもコンポーネントの作り方がわからないので、
ソフトを作るとき、コンポーネントを組み合わせればいいから簡単とかいう話がありますが、
欲しいコンポーネントがないと意味がありません。

健康管理ソフトを作りたいので、血圧を測定するコンポーネントとか、体脂肪率を検査する
コンポーネントとか、肝機能検査のコンポーネントとか欲しいのですが、なかなか見つかりませんね。
0501デフォルトの名無しさんNGNG
>>500
ハゲシクワラタ
0502デフォルトの名無しさんNGNG
>>500
欲しいコンポーネントを作るときに、
既存のコンポーネントを組み合わせる必要が(時間の経済性の要求から)
生じるんだヨ!
(´-`).。oO(なんでヘルプでクラスの階層構造を見た時に気づかないんだろ?)
0503マヂレスしてみようNGNG
> 動く3Dを簡単に実現するコンポーネントとか、マイクから拾った音声を解析して
> 立体的なロゴを画面に表示するコンポーネントとか、自分の欲しいコンポーネントが
> 全然ないので学習がすすまないのです。そもそもコンポーネントの作り方がわからないので、

必要なComponentがないときにわざわざ一から全部作るかってなったら
VCLのクラス継承して作った方が効率的。

ふつうのアプリをざっくりと例えると、VCL的に
アプリの作成≒TFormを継承してカスタマイズ
っつーことだから、とりあえずそこから入ってみたほうがよさげ。

つーか血圧とかは最初手入力でもいーだろーが。
とりあえずUIだけ作ってみれ。
0504デフォルトの名無しさんNGNG
>>500はネタでしょう。ネタにマジレス(・∀・)カコワルイ! とかいってみるテスト。

えー、質問なんですが、BCBのエディタで対応する括弧を検索するショートカットってないですか?
viの%みたいなヤシ。ないですか?とか聞いてるけど多分あるので、教えて下さい。
0505504NGNG
スンマソン、ageさせて貰います。
0506マヂレスしてみようNGNG
今日はマヂレスの日(w

>>504
Alt + [
Alt + ]

つーかヘルプ嫁。
0507デフォルトの名無しさんNGNG
>>498
本買えよ
0508504NGNG
>>506
マジレスどうもです。
でも、使いにくいショートカットですねぇ、コレ。
0509デフォルトの名無しさんNGNG
Borland.comのBCB_Entのトライアル版て何日間使えるんでしょう?
60日ぐらいですか?
0510DelフサギコNGNG
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < Ctrl+Q+[ もしくは Ctrl+Q+] も
  UU""" U U   \_______________
0511デフォルトの名無しさんNGNG
>>508
外部 (=別の)エディタ使えばいい。
「ツール」に登録して起動すると ウマー
0512デフォルトの名無しさんNGNG
スレ違いかもしれなくて申し訳ないんですが・・・

BCB5に付属しているPCRE(Perl互換正規表現ライブラリ)の
バージョンが古くて、Unicodeの正規表現に対応していません。
pcre.hを見ると、BCB用に変更してる部分もあるし・・・

BCBのPCREライブラリをアップデートする方法を知っている方
いませんでしょうか?
0513デフォルトの名無しさんNGNG
質問です。コンパイラオプションで、命令セットが386とか486とかPenとか選べるけど、どれほど変わるもんなのでしょ?
0514名無しさんに接続中…NGNG
>>513
自分で GetTickCount なり timeGetTime なりで計測してみるべし。
0515デフォルトの名無しさんNGNG
>513
ばいなりえじたのPowerWitch使えば変化部分もわかるよ

実際・・・見ないほうが後悔しない感じ。
ところであのexeサイズ圧縮のアプリ誰か使ってる?
カッコイイよね、あれ。実行展開後はサイズで会とはいえ、
メモリてんかいのみでやってたとしたらその腕はナカナカ
0516デフォルトの名無しさんNGNG
>>515 サイズが気になるならばコンポーネント使わないほうがよい
BCBのVCLなんてライブラリーがPascalとC++とごっちゃで半端だ

BCC用のフリーのRADツールがどっかにあるらしいが誰か知らない?
0517デフォルトの名無しさんNGNG
KOL+MCK じゃなくて?
0518デフォルトの名無しさんNGNG
>516
てかちゃんと解析したか?
滅多に50kbきらないように氷魚が悪者ぶってちゃんとした
ものをつくらなかったんだよ。
つかっててかなりあたまにきたといってくれよ!!
かなーりのごみあるし、米業界の伝統にこだわったせいで
さいてきせいもおろそか。ま、OSかすだから結局同じ。

VCLもMFCも氷魚の自作自演だよ。初心者用。
まぁひとつの完成形ダトもいってたけどな、会った時。
本当にこの板の奴らもてあそばれてんねー(藁
もともとあいてにされていないだけ。

氷魚のおやぢより
0519デフォルトの名無しさんNGNG
米は氷魚のいってたとーりで、一括生産なんてしてないんよ。

結局能力の高い氷魚の一人勝ちになるのがいやでなんとか
教材ばらまいているつもりらしい。
他人には中と半端製品にしかみえんといってやれ。うざすぎる
だろ?あいつまじで現製品のほぼ八割を把握しているよ。
PS2もそれ。
0520デフォルトの名無しさんNGNG
もうまじにあたまにきたよ。
俺色々つくりはしたんよ、あぷり。
そしたらぜんぶそれをうわまわるのをつくりやがった。
他の奴らも被害にあってるかとおもって、あいつの
つくりかけのC--をばらしてはみたのだが、
ま、俺でもぎりぎりじゃあ、他の奴らにはりかいできん
のかもね。BCV6はこそーり好きな人にだけわたしてるよ
0521デフォルトの名無しさんNGNG
もういっかいよーく調べなおせよ。

ココ数年の急激な業界の進歩なんて氷魚の(・∀・)
どのみちやつのC--に吸収されるよ。

だいたいせぐめんととメモリ保護もあいつぶちぬけるわけ
だし、それできるやつにしたってにほんでは、
あのゆうめいなふりーのべんちそふとだけ
それにも氷魚はコソーリと言ふ感じ。
有料でイイからもっとまともなOSとかを普及させろと
だれか逝ってやれって
0522デフォルトの名無しさんNGNG
なんだ?電波か?
0523デフォルトの名無しさんNGNG
電波はそっとしておいて、>>517 から再開〜
0524T.ONGNG
C++Builderで作成したアプリケーションを起動するとVCL50.BPLのランタイムが
ありませんと表示されます。
どうして?
0525 ◆woDeLPHI NGNG
>524 プロジェクト->オプション->パッケージタブ->実行時パッケージを使って構築にチェックを外す
0526デフォルトの名無しさんNGNG
リンカの「共有RTL DLLを使う」のチェックも外しとけ。
0527DelフサギコNGNG
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄新年早々ですが
〜′,,,,,,,,,,ミ,,゚Д゚彡 < BuilderMLの一行レス&内容無関係Subject投稿
  UU"""" U U    \_なんとかしてーニャ

ミナカッタコトニスルカ
0528デフォルトの名無しさんNGNG
アスキーからでてる「C++Builder4 オフィシャルコースウェア 基礎編」
持ってる方がいたら教えてほしいのですが、
172ページ真ん中あたりにあるResourceフォルダというのが見つかりません。
検索しても駄目です。フルインストールしないと作られないんでしょうか?
0529528NGNG
すいません
解決しました
0530デフォルトの名無しさんNGNG
俺のおかげだな。
0531デフォルトの名無しさんNGNG
>>530
ワラタage
0532デフォルトの名無しさんNGNG
MainMenuのサブメニューを、設定を丸ごと PopupMenu の子にコピーしたいけど、
良い方法ありますか?
TMenuItem* item = new TMenuItem(this);
item->Assign(SubMenu->Items[n]);
PopupMenu->Add(item);
とやったら、Assign が「TMenuItem から TMenuItem への代入はできません」だって。
0533デフォルトの名無しさんNGNG
TActionList使ったら
0534532NGNG
>>533 TActionList は使っています。その上で複製を作りたいのです。
それに RadioItem や GroupIndex の設定も含めてコピーしたいのです。

メインメニューに ToolBarの表示項目を設定する一連のサブメニュー項目があって、
ツールバーの右クリックでも同様のポップアップメニューを開くように改造中です。
メインメニューと同じ一連のメニュー項目を用意するのは保守性が悪いので、
デザイナで空のポップアップメニューを用意し、OnCreate時に動的にコピー
しようとしたのですがAssignがヘタレなので参ってます。
Assign使わずに、各プロパティを地道に代入するしか無いのかなぁ。

理想を言えば、TActionList からメインメニューとポップアップメニューの
両方を動的に生成したいのです。
0535デフォルトの名無しさんNGNG
>534 いや動的に作成したらいいと思うけど 何が判らんの?
 ActionListの数だけ作るだけでしょ?
0536523NGNG
ActionList の数だけってことは、こういうことですか?
for (int i = 0; i < ActionList1->Count; ++i) {
        TMenuItem* m1 = new TmenuItem(this);
        TMenuItem* m2 = new TmenuItem(this);
        m1->Action = ActionList1->Actions[i];
        m2->Action = ActionList1->Actions[i];
        m1->GroupIndex = 1;
        m2->GroupIndex = 1;
        m1->RadioItem = true;
        m2->RadioItem = true;
        SubMenuItem->Add(m1);
        PupupMenu->Items->Add(m2);
}
同じ設定値を m1 と m2 の両方に設定するのはアホっぽいんで、
m1 に設定した内容を m2 にコピーしたいのです。
0537536=532NGNG
名乗りを間違えた。ゴメン>>523
0538デフォルトの名無しさんNGNG
>536 なら関数にすればよろし
0539536NGNG
>>538 やっぱり、そうなりますか。
VCLに機能が備わっているのではと期待したけど。

ところで TMenuItem::Assign が、同じTMenuItem型をソースにすると
例外を出すのは何故なのでしょう。普通できるだろうと思うのだけど。
0540デフォルトの名無しさんNGNG
関数が嫌なら TmenuItem を継承してメソッドを追加しろ
■ このスレッドは過去ログ倉庫に格納されています