新C++Builder相談室
■ このスレッドは過去ログ倉庫に格納されています
0001新人
NGNGよろしくお願いします!
0441デフォルトの名無しさん
NGNG439さん、私も知りたいです。
教えてください。
現在、2つエディットボックスを用意しといて
1つに、文字を入力させて、
もうひとつに、その文字のUNICODEを表示させたいと考えているのですが
うまくいきません。
0442デフォルトの名無しさん
NGNGあんたの逝っている事は、438と439が騙りあってる内容とはずれてないか?
UNICODEへ変換して、16進表示したいという事カナ?
0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG自作でGO。
>>443
Edit2->Text = IntToHex(WideString(Edit1->Text)[1]);
0445デフォルトの名無しさん
NGNGこいつは 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それは仕様どおりです。
呼ばれるようにするには~Bをvirtualにします。
というか基本的に
virtualでない関数を再定義しちゃダメです。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGデストラクタ(やメンバ関数)が存在しないと仮定されてるんでしょ。
ま、先行宣言しかないstruct(newはできない)がdeleteできるのは
C++の仕様的に正しいのか知らんけど。
0449デフォルトの名無しさん
NGNGint main()
{
A *p = getA();
delete p;
return 0;
}
bccだと警告止まりでコンパイルできてしまう。
0450デフォルトの名無しさん
NGNG> こいつは C++Builder のバグですか? それとももしかして仕様ですか?
(´-`).。oO( 気軽にバグとか言うなよー )
>>449
clでもコンパイル&makeできたよ。
でも、getA()からは有意な値を返せんから意味ないか…
仕様的にどうかは…
詳しい方の解説キボン
0451デフォルトの名無しさん
NGNG0452445
NGNGあー・・・気軽にバグって言っちゃダメなの?
仕様なのかどうなのか知りたかっただけにゃ・・・
原因が判れば回避は出来るんで、全然構わんのだけれども。
auto_ptr で自動的に解放されるはずのを
CodeGuard がメモリリーク報告するもんだから
意味不明状態が半日続いたよ。。。
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG> あー・・・気軽にバグって言っちゃダメなの?
別に私としては何の問題もありません。
ただ、処理系のバグに遭遇する事はそうあるものではありませし、
ましてやこの様な単純なコードではそうです。
で、気軽に“処理系のバグ?”とか逝ってるのを見ると、
オメデテーナ、と私は思います。
他の方がどう思うか知りませんし、
あなたがそんな事気になさらないなら、お好きに。
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG大概の場合はドライバやアプリが原因で、結果的にウィンドウズが固まる。
ま、それを回避できないのは腹立たしいけどな。
ともあれ、よくわかんないから「バグだ!」って叫ぶのは自分の無知をさらけだす行為だよ。
と、いうようなことを>>445に言いたかったのではないかと思われ。
0457デフォルトの名無しさん
NGNG>bccだと警告止まりでコンパイルできてしまう。
コンパイルできないほうが良かったと?
0458デフォルトの名無しさん
NGNGコンパイルはともかく、リンクはできちゃいけないと思うけど、試した人どうですか?
0459デフォルトの名無しさん
NGNG449のままではリンクできない、getA()の実体が無いから。
struct A *getA(){
return 0;
}
とすれば、bcc32とclではexeがでけたよ。
vc++のIDEからmakeしようとすると、
A*を扱うdelete演算子がないと怒られる。
0460デフォルトの名無しさん
NGNG“単純なコード”ってのは語弊があるかも。
“頻繁に使用される構文”くらいの意味です。
有名どころでは、
#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そういうのって病的なコード、っていわない?
0462458
NGNGさんくす。なるほどね。
話は全然違いますけど、これって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デフォルトの名無しさん
NGNGBCB5でlinkできました。clだとlink時に弾かれた。
Borlandマンセーな私としてはbcc32を擁護したいけど。
そういえばbcc32って、同一名のグローバルスコープ変数の実体が
複数あっても問題なかったような。
きっと根は同じなんだろうけど、仕様的に正しいかどうか、
なんちゃってプログラマな私にはサパーリわからない…
0465445
NGNGあ。警告が「すべて表示」じゃなくなってる!
きっと再インストールしたときに・・・
すべて表示にしたら警告出ました。
バグ呼ばわりした自分が愚かでした。
ゴメナサイ。めっちゃ鬱。
この件は解決ってことで。。
>>450 >>454 >>456
気を付けます。。。
>>460
ほんとだ・・・
ややこしいことしちゃいけないんだな・・・
0466デフォルトの名無しさん
NGNG> ややこしいことしちゃいけないんだな・・・
念の為、bcc32のバグです。
vc++なら問題ない、ガッデム!!
AnsiStringとかデストラクタでメモリを開放する
クラスだったりすると、見事アボーンしてくれます。
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNGリンカのオプションをなにか設定すれば、上手い具合にメモリ確保してくれますか?
0469468
NGNG0470デフォルトの名無しさん
NGNG物が欲しいんですが、どうすればいいでしょうか?
0471デフォルトの名無しさん
NGNGSetBounds()でウインドウサイズを変更すると、スプリットバーが非表示
になってしまいます。
DockManagerあたりが怪しいのですが、ヘルプにもまったく記載されて
いません。
ご存知の方いらっしゃいましたらよろしくおねがいします。
0472Delフサギコ
NGNG次のVersionでValueListEditor
http://hp.vector.co.jp/authors/VA013477/delphi/delinfo/del6/del6001.html
がつくからそれを待たれては?
∧,,∧ フリーコンポーネント 探してもいいかも。
ミ,,゚Д゚ミ
ミ ミ MOStringGridとか。
〜ミ,UU_ミ
0474デフォルトの名無しさん
NGNGやらなきゃいけないんですか?
0475デフォルトの名無しさん
NGNGやらなきゃいけません。
0476デフォルトの名無しさん
NGNGPascal くらい覚えなさい。
0477デフォルトの名無しさん
NGNGありがとう
でも、MOStringGridってC++Builder5で使えますか?
インストール方法がいまいちわからないです。
0478デフォルトの名無しさん
NGNGXStringGridはどうよ?
http://www.eye.ch/~mduerig/prog/index.htm
CellのMergeができるフリーのGrid Componentないかな〜。
0479デフォルトの名無しさん
NGNG>SetBounds()でウインドウサイズを変更すると・・・
俺もわからんが、下の本に方法が載ってるらしい(スマソ
「ここまでできるBorland Delphi4 パワーガイド」
小出 俊夫・仲村 忠晴・増田 武治
秀和システム \2,800
ISBN4-87966-884-2
別スレでも同じような質問あるけど、誰も答えてないね・・・
難しい問題なのか、一般常識なのか・・・
とりあえず、俺も方法わからん鬱
0480471
NGNGいまから本屋に向かうのも面倒なので(雪降ってるし)
アメリカのサイトを漁ったら以下のサイトが出てきました。
どうやらサンプルが落ちているようですね・・・
Delphiですが・・・
ttp://www.gajits.com/p_docking.asp
やはりCやC++より大事な言語は英語という事でしょうね・・・
0481デフォルトの名無しさん
NGNG0482Delフサギコ
NGNG,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < その本もってるけど、ナニカ調べましょうか?
UU""" U U \_______________
0483デフォルトの名無しさん
NGNG助かります。
XStringGrid
うまくインストールできないんですが、できたら教えてください。
0484デフォルトの名無しさん
NGNGおらはDel6でしか使ったことないんだが、
パッケージのインストールでXStringGrid_BC5.bpk開くか
直接XStringGrid_BC5.bpk開けばいいんでないかい?
0485デフォルトの名無しさん
NGNG{
AnsiString s;
f2(s);
}
void f2(AnsiStirng s)
{
s="test";
}
みたいにして、f1()でs="test"を取りたいんですが、
上記のままだとダメでした。
charのポインタ渡しみたいにしないとダメですか?
0486485
NGNG0487デフォルトの名無しさん
NGNGAnsiString f2()
{ return AnsiString("test");}
void f2( AnsiString &s )
{ s = "test"; }
あたりを使うのだろうか。
0488Delフサギコ
NGNG{
s = "test";
}
void f1(void)
{
AnsiString s;
f2(s);
ShowMessage(s);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
f1();
}
∧,,∧ これで動ききましたが
ミ,,゚Д゚彡 あってる?
ミつ[|lllll])
〜ミ ミ
U U.
すごく単純な事でつまっちゃうです
0489デフォルトの名無しさん
NGNGvoid f1(void)
{
AnsiString s;
s=f2();
}
AnsiString f2(void)
{
return "test";
}
では駄目なの?
C++の文法を知る事が目的?なら見当違いスマソ
0490デフォルトの名無しさん
NGNGメニュー
コンポーネント>パッケージのインストールから
追加ボタン>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をクリックしても何も起こらない
これは、インストールができてないのでしょうか?それとも使い方がまずいのでしょうか?
教えてください
0491485
NGNGレスどうもです。
実は引数は2つあるんで戻り値だとだめなんです。
んで、ウケ側で&つけるとアドレス渡しになる、みたいな理解でいいんでしょうか?
今環境がないんで、明日出勤して試してみます。
0492デフォルトの名無しさん
NGNG> んで、ウケ側で&つけるとアドレス渡しになる、みたいな理解でいいんでしょうか?
参照渡しと呼ぶが、それでいい。
つーか、C++をちゃんと勉強しる。
0493490
NGNGC++Builder5でXStringGrid使ったこと有る方
HELPお願いします。
0494471
NGNGDelフサギコ さん、ありがとうございます。
サンプルのとおりやっているのですが、スプリットがうまく動作しな
いなど、ドッキングの挙動が不審です。
BCBだからでしょうか・・・?
でも、DockManagerはDelphiのライブラリみたいだし・・・
おそらくDelphi4 パワーガイドの「ドッキング状態を復帰するには」
の章ではないかと思います。
DockManager->SaveToStream()
で、ドッキング状態を保存し(バイナリを16進数に変換してiniファイルに保存)
DockManager->LoadToStream()
で、ドッキング状態を読込んでいます(16進数からバイナリへ変換)
このやり方であっていますでしょうか?
0495471
NGNG上の方法であってました。
私の場合、DockSiteをパネルではなく、直接フォームに設定
していたのが原因のようです。
フォームにDockSite用のパネルを設置して、パネルにドッキ
ングするようにしたら解決しました。
お騒がせ致しました・・・
(でも、フォームをドックサイトにすると挙動おかしくなるよー
ってヘルプにちゃんと書いてほしかったなぁ・・>ボーランド)
0496デフォルトの名無しさん
NGNG遅レスだが試してみた。
一番簡単なインストール方法は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実際に試していただいてありがとうございました。
ご指摘がずばりあたっていました。
無事動きました。良かった・・・。
0498デフォルトの名無しさん
NGNGマニュアルは分厚いし、オンラインマニュアルは読みにくいし・・・。
基本的にC言語の基礎的な知識しかないので、CもしくはC++の入門本から
やり直そうといつも思うのですが、いつも途中で挫折して、BCBを使うところまで
たどりつけません。おすすめの学習方法を教えてください。アップグレードで
Ver1,3,4,そして5と購入しましたが、何一つソフトがつくれていません。
0499デフォルトの名無しさん
NGNGsample見れ。
Cの基礎知識があるんだったらとりあえず逝けるんでわないか?
BCB(Delも)使いはじめはVCLの使い方を覚えることが最短の学習方法だと思われ。
VB以上に直感的にソフト設計できるから、コードの書き方で悩む前に
IDEでComponentぺたぺた貼ってみては?
とりあえずHelloWorldを10回作れ。
0500498
NGNG「我をたたえよ」は10回以上も作りましたが、だめです。
上は冗談ですが、コンポーネントの使い方を覚えても身に付かないと言うか、
動く3Dを簡単に実現するコンポーネントとか、マイクから拾った音声を解析して
立体的なロゴを画面に表示するコンポーネントとか、自分の欲しいコンポーネントが
全然ないので学習がすすまないのです。そもそもコンポーネントの作り方がわからないので、
ソフトを作るとき、コンポーネントを組み合わせればいいから簡単とかいう話がありますが、
欲しいコンポーネントがないと意味がありません。
健康管理ソフトを作りたいので、血圧を測定するコンポーネントとか、体脂肪率を検査する
コンポーネントとか、肝機能検査のコンポーネントとか欲しいのですが、なかなか見つかりませんね。
0501デフォルトの名無しさん
NGNGハゲシクワラタ
0502デフォルトの名無しさん
NGNG欲しいコンポーネントを作るときに、
既存のコンポーネントを組み合わせる必要が(時間の経済性の要求から)
生じるんだヨ!
(´-`).。oO(なんでヘルプでクラスの階層構造を見た時に気づかないんだろ?)
0503マヂレスしてみよう
NGNG> 立体的なロゴを画面に表示するコンポーネントとか、自分の欲しいコンポーネントが
> 全然ないので学習がすすまないのです。そもそもコンポーネントの作り方がわからないので、
必要なComponentがないときにわざわざ一から全部作るかってなったら
VCLのクラス継承して作った方が効率的。
ふつうのアプリをざっくりと例えると、VCL的に
アプリの作成≒TFormを継承してカスタマイズ
っつーことだから、とりあえずそこから入ってみたほうがよさげ。
つーか血圧とかは最初手入力でもいーだろーが。
とりあえずUIだけ作ってみれ。
0504デフォルトの名無しさん
NGNGえー、質問なんですが、BCBのエディタで対応する括弧を検索するショートカットってないですか?
viの%みたいなヤシ。ないですか?とか聞いてるけど多分あるので、教えて下さい。
0505504
NGNG0506マヂレスしてみよう
NGNG>>504
Alt + [
Alt + ]
つーかヘルプ嫁。
0507デフォルトの名無しさん
NGNG本買えよ
0509デフォルトの名無しさん
NGNG60日ぐらいですか?
0510Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < Ctrl+Q+[ もしくは Ctrl+Q+] も
UU""" U U \_______________
0511デフォルトの名無しさん
NGNG外部 (=別の)エディタ使えばいい。
「ツール」に登録して起動すると ウマー
0512デフォルトの名無しさん
NGNGBCB5に付属しているPCRE(Perl互換正規表現ライブラリ)の
バージョンが古くて、Unicodeの正規表現に対応していません。
pcre.hを見ると、BCB用に変更してる部分もあるし・・・
BCBのPCREライブラリをアップデートする方法を知っている方
いませんでしょうか?
0513デフォルトの名無しさん
NGNG0514名無しさんに接続中…
NGNG自分で GetTickCount なり timeGetTime なりで計測してみるべし。
0515デフォルトの名無しさん
NGNGばいなりえじたのPowerWitch使えば変化部分もわかるよ
実際・・・見ないほうが後悔しない感じ。
ところであのexeサイズ圧縮のアプリ誰か使ってる?
カッコイイよね、あれ。実行展開後はサイズで会とはいえ、
メモリてんかいのみでやってたとしたらその腕はナカナカ
0516デフォルトの名無しさん
NGNGBCBのVCLなんてライブラリーがPascalとC++とごっちゃで半端だ
BCC用のフリーのRADツールがどっかにあるらしいが誰か知らない?
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNGてかちゃんと解析したか?
滅多に50kbきらないように氷魚が悪者ぶってちゃんとした
ものをつくらなかったんだよ。
つかっててかなりあたまにきたといってくれよ!!
かなーりのごみあるし、米業界の伝統にこだわったせいで
さいてきせいもおろそか。ま、OSかすだから結局同じ。
VCLもMFCも氷魚の自作自演だよ。初心者用。
まぁひとつの完成形ダトもいってたけどな、会った時。
本当にこの板の奴らもてあそばれてんねー(藁
もともとあいてにされていないだけ。
氷魚のおやぢより
0519デフォルトの名無しさん
NGNG結局能力の高い氷魚の一人勝ちになるのがいやでなんとか
教材ばらまいているつもりらしい。
他人には中と半端製品にしかみえんといってやれ。うざすぎる
だろ?あいつまじで現製品のほぼ八割を把握しているよ。
PS2もそれ。
0520デフォルトの名無しさん
NGNG俺色々つくりはしたんよ、あぷり。
そしたらぜんぶそれをうわまわるのをつくりやがった。
他の奴らも被害にあってるかとおもって、あいつの
つくりかけのC--をばらしてはみたのだが、
ま、俺でもぎりぎりじゃあ、他の奴らにはりかいできん
のかもね。BCV6はこそーり好きな人にだけわたしてるよ
0521デフォルトの名無しさん
NGNGココ数年の急激な業界の進歩なんて氷魚の(・∀・)
どのみちやつのC--に吸収されるよ。
だいたいせぐめんととメモリ保護もあいつぶちぬけるわけ
だし、それできるやつにしたってにほんでは、
あのゆうめいなふりーのべんちそふとだけ
それにも氷魚はコソーリと言ふ感じ。
有料でイイからもっとまともなOSとかを普及させろと
だれか逝ってやれって
0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNG0524T.O
NGNGありませんと表示されます。
どうして?
0526デフォルトの名無しさん
NGNG0527Delフサギコ
NGNG〜′,,,,,,,,,,ミ,,゚Д゚彡 < BuilderMLの一行レス&内容無関係Subject投稿
UU"""" U U \_なんとかしてーニャ
ミナカッタコトニスルカ
0528デフォルトの名無しさん
NGNG持ってる方がいたら教えてほしいのですが、
172ページ真ん中あたりにあるResourceフォルダというのが見つかりません。
検索しても駄目です。フルインストールしないと作られないんでしょうか?
0529528
NGNG解決しました
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNGワラタage
0532デフォルトの名無しさん
NGNG良い方法ありますか?
TMenuItem* item = new TMenuItem(this);
item->Assign(SubMenu->Items[n]);
PopupMenu->Add(item);
とやったら、Assign が「TMenuItem から TMenuItem への代入はできません」だって。
0533デフォルトの名無しさん
NGNG0534532
NGNGそれに RadioItem や GroupIndex の設定も含めてコピーしたいのです。
メインメニューに ToolBarの表示項目を設定する一連のサブメニュー項目があって、
ツールバーの右クリックでも同様のポップアップメニューを開くように改造中です。
メインメニューと同じ一連のメニュー項目を用意するのは保守性が悪いので、
デザイナで空のポップアップメニューを用意し、OnCreate時に動的にコピー
しようとしたのですがAssignがヘタレなので参ってます。
Assign使わずに、各プロパティを地道に代入するしか無いのかなぁ。
理想を言えば、TActionList からメインメニューとポップアップメニューの
両方を動的に生成したいのです。
0535デフォルトの名無しさん
NGNGActionListの数だけ作るだけでしょ?
0536523
NGNGfor (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 にコピーしたいのです。
0538デフォルトの名無しさん
NGNG0539536
NGNGVCLに機能が備わっているのではと期待したけど。
ところで TMenuItem::Assign が、同じTMenuItem型をソースにすると
例外を出すのは何故なのでしょう。普通できるだろうと思うのだけど。
0540デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています