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

C++Builder相談室 Part8

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


<過去スレ>
C++Builder相談室
http://piza2.2ch.net/tech/kako/969/969458279.html
新C++Builder相談室(C++Builder相談室 Part2)
http://pc.2ch.net/tech/kako/997/997074601.html
C Builder相談室 Part3
http://pc3.2ch.net/tech/kako/1016/10160/1016065855.html
C++Builder相談室 Part4
http://pc2.2ch.net/tech/kako/1035/10355/1035596146.html
C++Builder相談室 Part5
http://pc2.2ch.net/tech/kako/1045/10455/1045542179.html
C++Builder相談室 Part6
http://pc2.2ch.net/tech/kako/1054/10542/1054280736.html
C++Builder相談室 Part7(前スレ)
http://pc2.2ch.net/test/read.cgi/tech/1061594556/
0369デフォルトの名無しさんNGNG
>>368
それだと、移動位置にあの太いラインが出ませんよね。
移動位置を明確に示すあのインターフェイスがとても明確でわかりやすいと思うので、
ぜひ取り入れたいと思うんですが、何をどうやってるのかさっぱりで。

最初はDragCursorプロパティとかで簡単に出来ると思ってたんですが。
0370デフォルトの名無しさんNGNG
>>366
それ、Indy8ならともかく、9以降ではエラーが出るだろ
0371デフォルトの名無しさんNGNG
プログレスバーは通常posithionに応じて左から右に進むんですが
これを右から左に進むようにする方法はありませんか?
0372デフォルトの名無しさんNGNG
>>371
バーの色を変えて、Position = 100 - 値 とすればいいじゃん
0373デフォルトの名無しさんNGNG
>>370
それ以前にお前、>>366のはsocks鯖じゃねーか
0374デフォルトの名無しさんNGNG
>>372
バーの色変えられないんですよ

ImageにFillRectで代用することに決めたよ
0375369NGNG
まだやってるけど出来ません…。
スレイプニルがどの言語で書かれてるかは知らないけど、
BCB使ってるわけじゃなさそうなので、VCLの仕様じゃ出来ない設定なのかなぁ。
0376デフォルトの名無しさんNGNG
相談にのってください。
builderを使ってCで作ったプログラムの実行ファイルの作成とデータファイルを作りたいんだけど、
どうすればよいですか?
目標とするところは、データファイルの作成とそれを使ってのグラフの作成なんです。
他に良い方法があるなら、そちらでもかまいません。
とりあえずはCを使いたいので、その点だけは許してください。
お願いします。
0377デフォルトの名無しさんNGNG
>>376
きみ、>>309じゃないか?
0378デフォルトの名無しさんNGNG
また君かね!
妙齢の兄弟は居るか。話はそれからだ。
0379デフォルトの名無しさんNGNG
>369
OnDragOverで
void __fastcall TForm1::TreeView1DragOver(TObject *Sender, TObject *Source,
int X, int Y, TDragState State, bool &Accept)
{
TTreeView* tree = (TTreeView*)Sender;
TTreeNode* node = tree->GetNodeAt(X, Y);

if (node != NULL) {
TRect rt = node->DisplayRect(true);
tree->Canvas->MoveTo(rt.left, rt.Bottom);
tree->Canvas->LineTo(rt.Right, rt.Bottom);
}
}
こんな感じか?まぁ上のままだとかなり不都合があるが。
onCustomDraw使った方がいいかもね。
0380379NGNG
スマン。onCustomDrawじゃドラッグ判定ができんわな。
少し修正。
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
TreeView1->DoubleBuffered = true; //ちらつき防止
}
void __fastcall TForm1::TreeView1DragOver(TObject *Sender, TObject *Source,
int X, int Y, TDragState State, bool &Accept)
{
TTreeView* tree = (TTreeView*)Sender;
TTreeNode* node = tree->GetNodeAt(X, Y); //ドラッグの位置にノードがあるか

if (node != NULL) {
tree->Refresh();
TRect rt = node->DisplayRect(true);
int b = rt.Bottom - Y;
if (b > rt.Height()/2) { //ノードの上半分にマウスポインタがある
tree->Canvas->MoveTo(rt.left, rt.Top +2);
tree->Canvas->LineTo(rt.Right, rt.Top +2);
} else { //ノードの下半分にマウスポインタがある
tree->Canvas->MoveTo(rt.left, rt.Bottom +2);
tree->Canvas->LineTo(rt.Right, rt.Bottom +2);
}
}
}
void __fastcall TForm1::TreeView1DragDrop(TObject *Sender, TObject *Source,
int X, int Y)
{
TTreeView* tree = (TTreeView*)Sender;
tree->Refresh();
}
0381376NGNG
>>309とは違います。質問が初歩的すぎましたね・・・
リナックスでemacs+gnuplotという環境で過ごしてきましたが、
この度windowsの方でもプログラムをしたいなと思いbulder6が評判よかったのでこちらを選んだんです。
0382デフォルトの名無しさんNGNG
>>381
初歩的過ぎるんじゃなくて(それもあるが)、質問が曖昧過ぎる。
>>376じゃ誰も回答できない。
結局何が聞きたいわけ?
0383デフォルトの名無しさんNGNG
>>382
曖昧な質問でも適当に補完して回答すればいいだろ。
俺が手本をみせてやる。











>>376
ヘルプ読め。
0384デフォルトの名無しさんNGNG
>>383
おいおい、ヘルプにゃデータからグラフ作成プログラムなんて
載ってないだろ。そこはこうだろ

>>376
Cygwin使えば?
0385デフォルトの名無しさんNGNG
てst
0386376NGNG
cygwin環境ではできたのですが、将来的に(今の仕事が終わったら)C++の方に移りたいのでできればbuilderでって感じです。
もっと具体的にいうと、非線形方程式をシミュレーションで動かして近似解をデータとして保存し、
それをグラフで出力し振る舞いをみたいのです。そのグラフをパワーポイントなどに貼り付けられれば言うことない、です。
当面はlinux使いで問題はないんですけどね・・
0387デフォルトの名無しさんNGNG
なんだなんだ、そういうことか。やっとわかってきたぞ。










>>386
「曖昧」の意味がわかるか?
0388デフォルトの名無しさんNGNG
俺が補完してやる







linuxでパワーポイント使いたいよー
0389デフォルトの名無しさんNGNG
自作したclassのメソッドにTFormを渡したいのですが
何を渡せばいいのでしょうか?
0390デフォルトの名無しさんNGNG
>>389
TForm もしくは TFormから継承されたクラスのオブジェクト。
>>387
0391デフォルトの名無しさんNGNG
>>390
よくわからんけどとりあえずthisでOKでたわ
0392デフォルトの名無しさんNGNG
ひどいな...
0393デフォルトの名無しさんNGNG
質問ですが
LabelWndProc = Label1->WindowProc;
のようにカプセル化したときに
下のTMessageでLabel1のプロパティにアクセスする方法を教えてください
void __fastcall MaiWndProc(TMessage &Msg)
{
}
0394 NGNG
Cマガにボーランドの外人さんへのインタビューがあったけど、はっきりとC++Builderの打ち切りは宣言してなかったね。
ユーザーの意見を聞いてどういう製品にするか参考にしたいとか。
次バージョンを発表できる段階には無いらしいが。
自分はBoost100%のC++コンパイラにしてくれて、IDEのエディタとか使いやすくしてくれれば良いな。
Eclipseみたいにリファクタリングとか支援してくれれば嬉しいけど。
0395デフォルトの名無しさんNGNG
>>394
そいつ、去年末にレイオフ喰らってもう某にはいないぞ。
0396 NGNG
>>395
それマジなの?
0397デフォルトの名無しさんNGNG
C++Builder7に望むこと

トロくさいコード補完をなんとかしろせめてDelphiレベルにしてくれ
普通に使っていてエラーを吐くIDEはやめろ
アップデートをまじめにやれ頼むからライブラリのバグくらいは手を入れてくれ
0398デフォルトの名無しさんNGNG
>>397
>トロくさいコード補完をなんとかしろせめてDelphiレベルにしてくれ
無理なのだーC++Builderはキーワードが多すぎて。CPUをアップグレード
してください。

>普通に使っていてエラーを吐くIDEはやめろ
エラーを吐くのは仕様です。その後のエディット作業に支障を来さない
はずですのでそのままお使いください。

>アップデートをまじめにやれ頼むからライブラリのバグくらいは手を入れてくれ
DelphiやC++BuilderXの製品開発に精一杯で手が回りません。
0399 NGNG
キーワードの多さとか言うよりC++の文法の複雑さが補完速度に影響してるのかも。
0400デフォルトの名無しさんNGNG
ObjectPascalと比較されても。
機能まででるふぃなみに制限してもいいですか?
0401369NGNG
>>380
大分遅くなりましたが、ありがとうございます!
やっと時間が空きましたのでお礼の書き込みができました。

ラインを引くCanvasってややこしそうなイメージがあったんですが、
教えて頂いた通りにやると簡単でした。

ただマウスカーソルの方が少しチラつくようですが、それでもかなりの進歩です。
ありがとうございます。
0402デフォルトの名無しさんNGNG
>>396
まじ。MS にいった。
0403デフォルトの名無しさんNGNG
"Borland CTO Blake Stone resigns"
ttp://groups.google.co.jp/groups?hl=en&lr=&ie=UTF-8&edition=us&frame=right&th=45a0aea98c12b5b6&seekm=400d4bf8%40newsgroups.borland.com



0404デフォルトの名無しさんNGNG
C++Builder7はMSから出るんだな
0405デフォルトの名無しさんNGNG
「Borland CTO,Blake Stone氏直撃インタビュー」

今回の C Magazine のインタービューは、タイミング最悪だったな。
インタビューしていた時点で既に MS に行く気だったのかなぁ。
0406デフォルトの名無しさんNGNG
そんなことより>>393を教えてくだああ
0407デフォルトの名無しさんNGNG
>LabelWndProc = Label1->WindowProc
のところで Label1 も保存しておいたら?

ウィンドウプロシージャはクラスごとに同じものが使われるので WindowProc から
元のクラスのインスタンスを引くことはできない。(TLabel が二つあっても区別できない)

大体、MaiWndProc は誰の持ち物(どのクラスのメソッド)なんだ?
0408380NGNG
>401
上で書いたやつは Refresh() を多用してるので
更新が必要な場所だけ外部にでも保存しておいて
InvalidateRect() でも使って必要な部分だけ再描画してくれ。
(↑の場合、 DoubleBuffered はいらん。まぁ、メモリに余裕があればそのままでもok)
0409デフォルトの名無しさんNGNG
ボタンに、ビデオクリップを張り付けて、そのボタンをクリックして張り付けたビデオクリップを動作させたいのですが・・・

 ビデオクリップの取り込みは、「TAnimate」のコントロール使用しました
  �@ボタン、ビットマップボタンを使用
   ・「TAnimate」のコントロールを、ボタンの下に重ねた
   ・ボタン、ビットマップボタンは、透過する事が出来ないので、当然ボタン上にビデオクリップが表示されなかった
  �Aスピードボタンを使用
   ・「TAnimate」のコントロールを、ボタンの下に重ねた
   ・しかし、スピードボタンの前面にビデオクリップが表示され、ボタンとしてのクリックが不可能になった
   (メソッドで、前面、後背に移動の設定を行っても無理だった)

<質問>
 ・ボタン、ビットマップボタンを透過させることは不可能でしょうか?
 ・スピードボタンを、「TAnimate」のコントロールの前面に設定することはできないでしょうか?
 ・実現するとしたら、どのような対策があるでしょうか?

よろしくお願いします
0410デフォルトの名無しさんNGNG
>>409
Ani,ateやめて、ボタンはBitBtnにして
乗せるビットマップ(Glyph)をタイマーで切り替えればいいんでないかい?
0411デフォルトの名無しさんNGNG
少しスレ違いかも知れません。

TListViewなどのコントロールへ外部からWM的にメッセージを送る際の
定石みたいなのはあるのでしょうか?

具体的に言うと、ウィンドウが単なるListViewならSPY++とかで調べた
ウィンドウハンドルhwndに対して、

int count = SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0);

が効いたりするんですが、hwndがTListViewだとダメなんです。


よろしくおねがいすます。
0412デフォルトの名無しさんNGNG
>>411
TListView::Handleで普通にできると思うが?
0413 NGNG
>>411
メンバ関数のPerformがつかえるのでは?
0414デフォルトの名無しさんNGNG
TTableで指定フィールドでソートする方法を教えてください
0415デフォルトの名無しさんNGNG
>>414
ttp://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200304_03040018.html
0416デフォルトの名無しさんNGNG
>>411
定石かどうか知らんが、マクロは結構使えるかも。
ListView_GetItemCountとか
ListView_EnsureVisibleとか
0417デフォルトの名無しさんNGNG
Panel を透明にする方法はないでしょうか?
0418デフォルトの名無しさんNGNG
下のイメージを取ってきて貼り付ける。
0419デフォルトの名無しさんNGNG
>>417
というか、コンテナコンポを透明にする必要性が判らん。
単に隠したいならVisible=falseだが、それでは不味い訳か?
0420デフォルトの名無しさんNGNG
BorderStyleやAlign等の設定で解決できることに気が付いてないだけと推測
0421デフォルトの名無しさんNGNG
最大化ボタンが押下された際に処理を行いたいのですが、 OnResize イベントでは
変更後の WindowState が wsNormal のままでうまくできません。
どなたか方法を教えていただけないでしょうか?
0422デフォルトの名無しさんNGNG
WM_SYSCOMMANDメッセージを補足して
コマンドがSC_MAXIMIZEだったら処理する
0423417NGNG
>>418 〜 >>420
何がしたいのかというと、XPのビジュアルスタイルで表示された
CoolBar 上にボタンなどを任意の大きさで載せたいと思い、panel を
使ったのですが、CoolBarが微妙にグラデーション表示になっているので
panelを貼り付けたところが分っていまいます。
(見た目の問題ですが、、)
何かいい方法はありますでしょうか?
0424デフォルトの名無しさんNGNG
>>423
XPは使ってないんで上手くいくかどうか保証は出来ないが、
そういう場合はTPanel->ParentColorをtrueにする。
0425デフォルトの名無しさんNGNG
ちょっとはまってしまいましたので、教えを請いにきました。
環境は、Builder6でして、統計の標準偏差値を返す StdDev関数を使いたいのです。
ヘルプを見ると、ユニットはMath、カテゴリは統計ルーチンとあります。

void func(void)
{
double a[3] = {1.0, 2.0, 3.0};
double ret = StdDev(a,2);
}

のように使いたいのですが、コンパイルすると、
'未定義の関数StdDevを呼び出した'
というメッセージになります。

このMathユニットを使えるようにするにはどうすればよいのでしょうか?

0426デフォルトの名無しさんNGNG
>>425
#include <Math.h> とか。
0427デフォルトの名無しさんNGNG
>>425
VCLだと<Math.hpp>じゃないかな?
0428sokuNGNG
お邪魔します、質問させてください!
プログラマー初心者スレから誘導されてきました。

C++Builderで、ビットマップの表示に関して行きずまっています。
作っているのは、ある値の変化をメーターのように見れるように
タイマー割り込みでCanvasに描画する、といった感じのものです。
思惑通りに表示はできているのですが、問題は時たま画像が消える(描画が
とまってしまう)ことがある、というところです。

以前に同じようなことに挑戦していて、Penなどで描画するとことに限っては
ImageのCanvasが良くこの問題が出るのに対して、
PictureBoxのCanvasは安定していることを発見し、
PictureBoxのCanvasを使っていたのですが、ビットマップを読み込んで、
下地に使おうとすると(メーターの目盛りなど)、一定時間で下地だけ消えてしまう、
という問題がおきることがわかりました。

最初、ビットマップの読み込みは、ダミーのImageに取り込んだPictureを、
PictureBoxのDrawで吸い取っていたのですが、
以前上記のImageの問題に当たっていたので、Imageをできるだけ使わないようにと
(問題はImageにあると推測して)、
TBitmapのインスタンスを作ってそこにBitmapを取り込んでおき、
タイマーではTBitmapのインスタンスからのみ読み込むようにしてみたのですが、
やはりとまってしまうようなんです。

(長くて書き込めなかったので、次の番号に書かせていただきます)
0429sokuNGNG
(428の続き)

◇ソース要約
〜
(宣言)
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
〜
(フォームSHOW時一回だけ)
pBitmap = Im_Mater->Picture->Bitmap;
  //Im_Masterに下地ビットマップが入っています
〜
(タイマー割り込み処理)
Pb_speed->Canvas->Pen->Width = 1;
Pb_speed->Canvas->Pen->Color = clBtnFace;
Pb_speed->Canvas->Brush->Color = clBtnFace;
Pb_speed->Canvas->Rectangle(0,0,Pb_speed->Width,Pb_speed->Height);
   //PictureBox内消去

//Pb_speed->Canvas->Draw(0,0,Im_Mater->Picture->Bitmap);
   //メータービットマップ上書き(Imageを使うと、止まるため、下行の方法に変更

Pb_speed->Canvas->Draw(0,0, pBitmap);
   //ビットマップのインスタンスからコピーする

Pb_speed->Canvas->Pen->Color = RGB(0,0,255);
Pb_speed->Canvas->MoveTo(a, b);
Pb_speed->Canvas->LineTo(x, y);
   //ここでメーターの針を書いてます
0430sokuNGNG
(429の続き)

消え方は、別段操作しないでも、ふっと下地だけ消えて、
Penなどの描画処理している針だけがフラフラ動いているのが残る感じです。
(メーター等の場合)
タイマーのインターバルは、55msです。
一度消えてしまうと、Redraw()、Update()、Refresh()、Invalidate()等の
再描画を実行しても元に戻らず、ソフトを再起動するしかありません。

このような問題に出会われて、さらに解決された方がいらっしゃれば、
アドバイスなどいただければありがたいです!
よろしくお願いいたします。
それから、超長文大変失礼しました。
0431デフォルトの名無しさんNGNG
>>428
パッと見だけで言わせて貰うので、欲しい回答になっていないのがアレだけど、
宣言のところでオブジェクトを作っている pBitmap に
Im_Master->Picture->Bitmap を代入するのはまずいんでないの?
pBitmap が指しているオブジェクトが、Im_Mater->Picture->Bitmap の
代入によってどっかにいってしまわない?

それとタイマ割り込み内の Pb_speed はどんなオブジェクト?
内部で作った Graphics::TBitmap のオブジェクト?
0432425NGNG
>>427

ありがとうございました。できました。

VCLだと*.hpp となるんですね。知りませんでした。
これで、知識がひとつ増えました。
0433sokuNGNG
>>431さん
レスどうもありがとうございます。
あうーなるほど・・・いわれてみれば、かなり無茶苦茶やってるです。
とにかく逃がしたくて、割と考えずにいろいろやっていたので・・・

それから、Pb_speedは、PictureBoxです。
これはコンポーネントをフォームに置いたやつですので、
TBitmapのオブジェクトではないです。

う〜ん勉強不足。
もうちょっといろいろやってみます。
どうもありがとうございました!
0434^^NGNG
#include<stdio.h>

#define ORIG_STR "ymq\n"
#define CIPHERKEY 1

void cipher(unsigned char n, unsigned char *a)
{
while (*a !='0'){
*a=(unsigned char)(*a ^ n);
a++;
n++;
}
}

int main(void)
{
unsigned char a[4] = ORIG_STR;
unsigned char n=CIPHERKEY;

cipher(n,a);
printf("%s\n",a);
cipher(n,a);
printf("%s\n",a);
exit (0) ;
}プログラムを実行した結果は
xor
ymq
となりました。どうしたらこういう実行結果になるのですか?
ただし、英小文字をあらわすASCIIコードは、a〜zで16進数で61〜7Aです。


0435デフォルトの名無しさんNGNG
void mani(void){
mani();
}
void main(void){
mani();
}
0436デフォルトの名無しさんNGNG
>>434
スレ違い。念の為に言うとそのコードは実行できないはず。
あとは他のスレで聞け。
0437デフォルトの名無しさんNGNG
TForm の Height のみ AutoSize = true のようにしたいのですが、可能でしょうか?
borland のメニューフォームのイメージなのですが。
0438sokuNGNG
昨日の428のものです。
解決しました。
詳しくはわからないのですが、Bitmapなどのオブジェクトは同時に
4つまでしか保持できないみたいです。
ですので、新たな描画が始まると、あいている所を探して、
破棄してしまうことがあるみたいなんです。
そこで、描画前にCanvas->Lock()、
描画後にCanvas->Unlock()という手順を踏むと、
どうやら消えずにすむようです。
というか消えませんでした。

理由はまだあんまり良くわからないんですが、精進します。
どうもありがとうございました!

それから、ついでにまた質問なのですが、
Canvasに描画する作業をしているとよく、
「Canvasに対する描画ができません」というエラーが出てくることがあります。
最初はインターバルが短すぎるのかな、と思っていたのですが、
1msでも出ないときは出ない感じなんです。
これは何が原因なのでしょうか?

ご存知の方、一つよろしくお願いいたします。
0439デフォルトの名無しさんNGNG
>>438
んなもん、ソース見な誰も何も分からん
つか、デバッガ使って自分で追っかけることも覚えや
0440デフォルトの名無しさんNGNG
>>437
無理。自分でコード書くべし。
0441デフォルトの名無しさんNGNG
ヒジョーに初歩的な質問でガクブルなんですが、
int main(int argc, char **argv)
ってありますよね。このchar**argvと同じものを
AnsiString文字列を分解して作るにはどうしたらいいのでしょうか?
具体的には
int sub(int argc, char **argv)
という関数にAnsiStringを分解した引数を渡したいのです。
宜しくお願いします。
0442デフォルトの名無しさんNGNG
StringListじゃイヤなの?
0443441NGNG
int sub(int argc, char **argv)
のargvにTStringList*は渡せません…シクシク
0444デフォルトの名無しさんNGNG
>>441

いまいち何がやりたいのかよくわからん。

"int argc, char **argv"でmain(や441のsub)に渡される情報は
*複数の*文字列、一方441が分解して云々したいといってる
AnsiStringは*一つの*文字列なので、そもそも情報の「質」が
違う。

>>442がいっているように、StringListを argc と **argv として
渡すのがNGということは、たとえば

int sub(int argc, char **argv);

...

AnsiString s = "Sample String";
char *Buf;

Buf = new char[100];
strcpy(Buf, s.c_str());
sub(1, &Buf);

delete[] Buf;

こんな感じのことがしたいのか?
0445デフォルトの名無しさんNGNG
strtokみたいにトークン分割したいだけダターリ
0446441NGNG
>>444
説明が足らずに申し訳ありませんでした。

一晩考えて、こうしてみました。

static void sub(int argc, char **argv)
{
for (int i(0); i < argc; ++i)
ShowMessage(*argv++);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString as("This is sample string");
TStringList* listp(new TStringList);
for (int i(as.AnsiPos(' ')); 0 < i; i = as.AnsiPos(' ')) {
listp->Add(as.SubString(1, i - 1));
as = as.Delete(1, i);
}
listp->Add(as);

int argcnt(listp->Count);
char** argvp((char**)malloc(argcnt * sizeof(char*)));
for (int i(0); i < argcnt; ++i)
argvp[i] = listp->Strings[i].c_str();

sub(argcnt, argvp);
delete(listp);
}

何かおかしい点またはこうした方がいいという点がありましたら
引き続きご指導宜しくお願いします。
0447デフォルトの名無しさんNGNG
素直にTStringList渡せば?という気もするが、なんか理由があるんだろうな。

listpを設定している部分は
>listp->Delimiter = ' ';
>listp->DelimitedText = as;
で、置き換えられそう。

>argvp[i] = listp->Strings[i].c_str();
c_strが返すポインタは「その文でしか有効でない」というのが仕様。
ヘルプ参照。
0448デフォルトの名無しさんNGNG
age
0449441NGNG
>>447
Delimit関連はひとつ勉強になりました。ありがとうございます。

僕も出来ればTStringListでいきたいのですが、実はsub(int argc, char **argv)は
外部ルーチンなので、引数の仕様を変えられないのです。それで止む無く…。

c_strについてもありがとうございました。ヘルプを参照して

for (int i(0); i < argcnt; ++i) {
 char* cp(new char[listp->Strings[i].Length() + 1]);
 strcpy(cp, listp->Strings[i].c_str());
 argvp[i] = cp;
}

としました(あと、>>446ではfree(argvp);が抜けてました)が、
ループ内でnewした各cpについてはどうやってdeleteすればいいのでしょうか?
重ねてご指南宜しくお願いします。
0450デフォルトの名無しさんNGNG
>>449
やっぱりループでdeleteするしかないんじゃないかな。
ここ数年C++使ってないから詳しくはないんだけど。
0451崖っぷちNGNG
誰か助けてください!
大学でレポートが出されまして、これが明日までに出来ないと留年してしまいます!
どなたか宜しくお願いします・・・・(T_T)

配列Aのデータをソートせよ。ただしAの入力は Void getdata(int *n,double *a)
を呼び出せば入力できるものとする。

っていうものです。このままでは本当に留年が確定してしまうのでどなたか助けてください・・・・・
0452デフォルトの名無しさんNGNG
>>451
宿題スレに行ってください
http://pc2.2ch.net/test/read.cgi/tech/1075217631/
0453デフォルトの名無しさんNGNG
>>451
自分の力でできないのであれば、留年した方があなたのためになると思います。
0454デフォルトの名無しさんNGNG
マルチ
とっとと留年せぇ
0455デフォルトの名無しさんNGNG
>>441
つか、ParamStrじゃダメなのか?
0456デフォルトの名無しさんNGNG
>>455
コマンドライン引数が欲しいという話ではないようだぞ。
0457ふぁむNGNG
はじめまして

実はBCB6 proでDirectX9.0bを利用したいのですが
うまくいきません
そもそも使い方が良くわかっていないのも問題なのですが
DirectX9.0SDKをインストールし*.libをコンバートして
インクルードとライブラリを指定しました
新規のアプリにヘッダのインクルードを追加し
コンパイルすると
[C++ エラー] d3dx9math.inl(1552):
E2268 未定義の関数 'sqrtf' を呼び出した
と言うエラーが発生してしまいます。
たしかにBCBにない命令なのですが
皆さんは、どうやって回避していますか?

0458デフォルトの名無しさんNGNG
>>457 
ttp://www.nk.rim.or.jp/~m_iida/programming/directX/BCB_DX9.html
ここを参考に。
0459ふぁむNGNG
458さん

早速の回答ありがとうございます。
参考にして再度チャレンジします。

0460ふぁむNGNG
おかげさまでデファインやタイプは参照できたのですが
[リンカ エラー] 外部シンボル 'Direct3DCreate9' が未解決
が出るようになってしまいました(涙)
何が足らないのでしょう?
ソースはこんな感じなのですが。。。

#include "d3d9.h"
// 変数
D3DPRESENT_PARAMETERS param;

// オブジェクト
LPDIRECT3D9 lpD3D = NULL;
LPDIRECT3DDEVICE9 lpD3DDEV = NULL;

TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
lpD3D = Direct3DCreate9(D3D_SDK_VERSION);
}
//---------------------------------------------------------------------------



0461デフォルトの名無しさんNGNG
リンカエラーにソースを持ち出してくる時点で
ライブラリをきちんと指定してない可能性が大だな
0462デフォルトの名無しさんNGNG
Form上にPageControlを配置してTabSheetを作って使いたいのですが、
Formの色を変えた時にタブの部分(デフォルトでTabSheet1って書かれてる部分)
の色だけが変わってくれないのですが、
どうしたら全て同じ色に変えることができますか?
0463デフォルトの名無しさんNGNG
ちょっとアドバイス下さい

this->Parent->Controls->Refresh();
BCBで上のようなコードを記述するとちゃんとコンパイルできますが
自分で作ったクラスはアロー演算子をつなげることが出来ません
これはfunctionとしてオブジェクトへのポインタを返しているからでしょうか?
propertyとして参照すればいいのでしょうか?

またBCBではなくgccのようなコンパイラだと
一度ポインタ変数に代入しないとダメなのでしょうか?

おしえて!えらい人
0464デフォルトの名無しさんNGNG
>>462
やったことないけど、OwnerDraw=trueで自力で描画だと思う。

>>463
一から勉強しなおせ。
お前さんの書いてる文章は支離滅裂。
1つ1つの用語の意味を理解していない。
どうしても教えて欲しけりゃ取敢えずソース晒せ。
0465デフォルトの名無しさんNGNG
アロー演算子というのか。今まで知らなかった・・・。
0466ふぁむNGNG
461さん
鋭いご指摘です(大汗)
同じ名前で複数見れてたのが原因だったみたいです。
ライブラリを追加しなおしたら動作しました
くだらない質問してすいませんでしたm(_ _)m
また勉強させてください^^
0467デフォルトの名無しさんNGNG
構造体にAnsiStringを入れても問題ないですか?
0468デフォルトの名無しさんNGNG
無いよ。
■ このスレッドは過去ログ倉庫に格納されています