トップページ⇒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/
0263デフォルトの名無しさんNGNG
2つのTLabelコンポーネントの全部、または一部が重なっている時、どちらが前面に表示されるかは、
どのように決まるのでしょうか?
決定するプロパティなり、順番を入れ替えたり、指定したコンポーネントを
最前面に表示するメソッドを教えてください。
(Visibleをfalseにする訳にはいきません。一部のみが重なっている場合、両方を表示させたいので・・・)
0264デフォルトの名無しさんNGNG
>>262
ありがとうございます。色々試した結果
#include <HTTPProd.hpp>
#include <HTTPApp.hpp>
#include <IdComponent.hpp>
をヘッダに書けばデコード関数が動くみたいです。

どうもありがとうございます。
0265デフォルトの名無しさんNGNG
>>263
TControl::BringToFront

例えば
Label1->BringToFront();
0266デフォルトの名無しさんNGNG
すいません、TComboBoxでボックスの中身を編集不可にしたいため、
スタイルの設定をopDownListにしてるんですが、
それをやるとデフォルトで入れてるTextが空になってしまいますよね。

編集不可にしつつ、デフォルトの状態でTextに文字を入れておくにはどうしたらいいんでしょうか?
0267デフォルトの名無しさんNGNG
スタイルを編集可能にしつつ、実行時に編集不能にするってのは、
どうかね?
0268デフォルトの名無しさんNGNG
>>267
だめですー、StyleをcsDropDownListに変更したとたんに
デフォルトのTextに入ってる文字列が飛んじゃいますー。とほ
0269デフォルトの名無しさんNGNG
>>268
csOwnerDrawVariableでどう?
0270デフォルトの名無しさんNGNG
海外掲示板用オフラインリーダーを作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1072883528/

海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。

必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
0271デフォルトの名無しさんNGNG
>>269
だめですー。csOwnerDrawFixedにしてもダメでした。
しょうがないのでデフォルトの文字列をアイテムの一番先頭にして、実行時に
ComboBox->ItemIndex=0;

とやることで代用することになりそうです。

とここまでやって気づいたんですが、そんなことしないでも、インスペクタで初期値を指定できたようです…。

ただし編集不能といってもデリートボタンを押すとTextが空になってしまうので、
汎用的にOnChangeイベントにこんなコードを書くことで完璧になりました。

if(dynamic_cast<TComboBox*>(Sender)->Text.IsEmpty()==true )dynamic_cast<TComboBox*>(Sender)->ItemIndex=0;

おつきあいくださりどうもありがとうございました。
0272デフォルトの名無しさんNGNG
if (...IsEmpty() == true)
は、VCLを使うBCBでは非常によろしくないような
0273デフォルトの名無しさんNGNG
>>272
どういう意味?
詳しく教えていただけます?
0274271NGNG
>>272
あぁ、自分もよくわかんないで使ってたんですが、、、
もうちょっと正当な書き方があるんでしょうか。
0275デフォルトの名無しさんNGNG
プログラム初心者で趣味でやってます。
配列とかって動的に項目増やしたり項目数の調べたりするの面倒そうだし、
webでも詳しい使い方のってないので、代わりに全部TStringList使ってます。

これならBCBのレファレンスで詳しく使い方とかメソッドとか説明されてるんで安心。

…でも正直ちょっと不安です。
やっぱ何でもかんでもVCLばっかり使う(というかソレしか使えない)のってカッコ悪いですか?
0276デフォルトの名無しさんNGNG
>>275
TStringListを普通の配列に使うのは流石にやめれ。
std::vectorかTList使っておけと
0277デフォルトの名無しさんNGNG
漏れは構造体CSVに変換して
TStringListに格納して構造体配列の代わりに使ってた時期があるぞ。
当時は若かった…
0278275NGNG
なんかvectorってのがカッコ良さげだったのでとりあえず、
StringList使ってたとこを全てvector式に置き換えて見ました。

しかし、ただひとつsort使ってるとこだけコンパイルエラーが出ます。
「'sort'は'std'のメンバーではない」
ごく単純なミスだとは思うものの上手く修正できないのでどなたか見て頂けないでしょうか。

cppファイル
#include <vector>

フォームのメンバ
std::vector<AnsiString> hoge;

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){

hoge.push_back("田中");
hoge.push_back("加藤");
hoge.push_back("江田島");
std::sort( hoge.begin(), hoge.end());

}
0279デフォルトの名無しさんNGNG
#include <algorithm>
0280275NGNG
>>279
さんくす
0281デフォルトの名無しさんNGNG
何故若者は格好に拘るのだろう…
0282デフォルトの名無しさんNGNG
配列の末尾に追加するのにvectorのpush_back()とStringListのAdd()の速度を比較してみました。


AnsiString Tex="けっこう!君の手は犬のヨダレでベトベトだァ!それに荷物はさっそく召使に運んでもらう!";

int BeforeTime = Idglobal::GetTickCount();
for(int n=0;n<1000000;n++){
G_NameSearchPath.push_back(Tex);
}
int Time =Idglobal::GetTickCount() - BeforeTime;


int BeforeTime2 = Idglobal::GetTickCount();
for(int n=0;n<1000000;n++){
G_Source->Add(Tex);
}
int Time2 =Idglobal::GetTickCount() - BeforeTime2;

結果、ベクターの方のTimeは765、StringListの方のTime2は282でした。
頻繁に追加したりするには向いてないとは聞いてたもののベクター遅いっす…
0283デフォルトの名無しさんNGNG
>>282
ループ前にG_Sorce->reserve(1000000); してみ

つか、配列とリスト構造とその他の違いを勉強した方が良いとは思うが。
0284デフォルトの名無しさんNGNG
質問です。
TCppWebBrowserのNavigateでwebページ読み込んだ後、
マウスホイールでくるくるとページをスクロールしようとしても出来ません。

一度TCppWebBrowser内をクリックしてやるとくるくるホイールでスクロール出来るようになるのですが、
二度手間というか、スマートじゃなくて困ってます。

TCppWebBrowserがアクティブ状態になっていないんだと考えて、
CppWebBrowser->SetFocus() とかやっても効かないのでどうしたらよいのかと。

どうかお知恵を貸して頂けないでしょうか。
0285デフォルトの名無しさんNGNG
>>284
TCppWebBrowserの機能ではできない。

フォーカスを当てる
http://hogehoge2001.at.infoseek.co.jp/note-delphi.html
Delphiでのコードだけど。
0286デフォルトの名無しさんNGNG
ADO Expressを使用してAccessに接続しようとしたのですが、出来ません。
ttp://www.borland.co.jp/cppbuilder/papers/ado/ado02.html
1.フォームにTADOConnectionコンポーネントを配置し、ConnectionStringプロパティで接続文字列を指定する。
ということなのですが、そもそも、ADOConnectionが何処にあるのか分かりません。。。
助けてください。
0287デフォルトの名無しさんNGNG
>>285
遅ればせながらありがとうございます。
なんとか出来そうですー
0288デフォルトの名無しさんNGNG
すいません、PageControlに並んだTTabSheetを削除すると、
すぐ右隣のタブに強制的にアクティブが移りますよね。

そうではなく削除後のアクティブタブを自分で指定したいので、


TTabSheet *ActTabSheet =アクティブにしたいタブシート;
TTabSheet *DelTabSheet = 削除するタブシート;

DelTabSheet->PageControl=NULL;
delete TabSheet;
PageControl1->ActivePage=ActTabSheet;


といった風に書いてみると、確かに削除後に指定のタブシートがアクティブになるんですが、
その一瞬前にピョコっと削除したタブの右隣にあったタブにフォーカスが移ってしまいます。

この一瞬のピョコって動きがなんともみっともなくてイヤなのですが、
どう書けばこのピョコって動きなしに指定タブにアクティブを移せるんでせうか。
よろしくおねがいします。
0289デフォルトの名無しさんNGNG
ピョコっ
0290デフォルトの名無しさんNGNG
>>288

試していないのですが(もし試してもらえたなら結果をおしえてほしい)
「ピョコっと」なる所でWM_SETREDRAW を送って描画を止めてみたらどうだろう。
0291デフォルトの名無しさんNGNG
BCB5 LearningEdition
コンポーネントのインストールやろうとしたら
致命的リンカエラー:DSNIDE50.LIBがない

と、言われました。
しかし、コンピュータ内を探しても他の拡張子のはありますがDSNIDE.LIBと言うファイルはありません。
VirtualTreeViewを入れて見た頃から何かおかしくなりますた。

誰か助けて・・・
0292デフォルトの名無しさんNGNG
>>288
フォーカス移動してから削除じゃダメ?
0293Delフサギコ ◆A6VzDeLphI NGNG
>>286
 ミ,,゚Д゚ミつ Pro版の機能なのではないかと。
0294デフォルトの名無しさんNGNG
>>291
初歩的なミス、ググレ
0295288NGNG
>>290
それって
PageControl1->Perform(WM_SETREDRAW, false, 0);
  //削除してアクティブを移す処理
PageControl1->Perform(WM_SETREDRAW, true, 0);
PageControl1->Repaint();

↑こういうののことですよね。
やってみましたがやはりピョコたん効果は解消されませんでした。

>>292
フォーカスにするというのが

・これから削除するタブ
・削除後にアクティブにするタブ
・これから削除するタブの右隣のタブ

のどれのことかわかりませんでしたが、
とりあえず上二つについてはあらかじめSetFocusしておいても効果ないようです。

他に一時的にEnableをfalseにするなどもしてみましたが意味無し。
個人的になんかあの動きが気持ち悪くて困るんですけどねえ。

まぁ玄人さんなら難しいコード書いてサクっと直しちゃうのかも知れないけど、
自分にはどうも無理そうです…。
0296291NGNG
英語読めません・・・(鬱
0297デフォルトの名無しさんNGNG
>>296
じゃあ諦めろ
0298デフォルトの名無しさんNGNG
TChartで実行中にシリーズを変える方法を教えてくださ
0299デフォルトの名無しさんNGNG
Delphi でよければ。

TChart に SeriesList プロパティがあります。
これは StrlingList から継承された TChartSeriseList クラスです。
これを使って Serise を追加/削除したり列挙できます。

断片的ですが
ttp://www.berneda.com/publicnews/public/teechart6/general/76010000.htm
これが参考になるかな
0300デフォルトの名無しさんNGNG
>>299
ありがとうございます!
0301デフォルトの名無しさんNGNG
下記のようにMessageBoxの辺値でスイッチするコードを書いてみたのですが、NO
ボタンを押してもcase(IDNO):に飛んでくれません。
どこがおかしいのでしょうか?
よろしくお願いします。

switch (MessageBox( Handle,"変更しますか?","更新", MB_YESNO )){
case (IDYES): // 更新OK
break;

case (IDNO): // 更新NG
Abort;
break;
}
0302デフォルトの名無しさんNGNG
一見、正しそうだけど...

そこの前後でデバッグしたほうが簡単では?
MessageBox の返値をいったん変数に格納し、値をみてみなされ
0303デフォルトの名無しさんNGNG
TToolBarでShowCaptionをtrueにしたときに
ButtonWidthを指定した幅にする方法を教えてください
0304デフォルトの名無しさんNGNG
それは出来ないんじゃないかな?>>303
キャプションが全部表示できるように幅が勝手に広がるんだと思ったけど。
0305デフォルトの名無しさんNGNG
プログラム作って、自分のマシンでコンパイルしたんですが、できたexeファイルを
他のマシンで実行すると、ペイントボックスとかの大きさが変わってしまいます。
もちろん自分のマシンで実行するときは、作ったとおりのフォームになります。
これってコンパイラのバグなのか仕様ってよく分からないんですが、exeを使用するターゲット(OS,CPU)によって
コンパイラのオプションを変えなきゃいけないんでしょうか。
それともソースを使いたいマシンでそれぞれコンパイルするしかないんでしょうか。
0306デフォルトの名無しさんNGNG
>>305
もしかして単に画面の解像度が違うというオチじゃ・・・・
0307デフォルトの名無しさんNGNG
MDI子フォームのタイトルバー左のアイコンを消す方法を教えてください
0308デフォルトの名無しさんNGNG
>305
具体的に大きさがどのように変化したのかを家計
0309デフォルトの名無しさんNGNG
Builder5です。
整数a,bを引数として,aがbの倍数であれば1を、そうでない場合は0を戻り値として返す関数
int baisuu(int a, int b)
を作成する。この関数を利用して、入力した数が3の倍数であるか否かを判定するアプリケーションを作成せよ。

If(baisuu(x,3)==1){
Label1->Caption=”3の倍数です”;
}else{
Label1->Caption=”3の倍数ではない”;
}
を使うみたいです。Editに入力してButtonフォームを押したら判別されるらしいでのすがさっぱりです。誰か教えてください。
0310デフォルトの名無しさんNGNG
>>305
画面のプロパティの、デザインの「フォントサイズ」が、
「大きいフォント」になってるとかじゃないの?
とりあえず、TFormのScaledをfalseにしてみれば?
0311デフォルトの名無しさんNGNG
!(値1%値2)
0312デフォルトの名無しさんNGNG
>309
宿題は宿題スレ池
それに内容がレベル低すぎ。
おまいの頭寒すぎ。
もちっとまじめに勉学に禿目よ。
0313デフォルトの名無しさんNGNG
>>309
そもそも何を聞きたいのかわからない。
0314デフォルトの名無しさんNGNG
とりあえず自分で作ったのはこれです。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int ans=0,a,x,baisuu();
{
a=StrToInt(Edit1->Text);
ans=a%3;
x=baisuu();
{
if(ans==0)
{
return (1);
}
else
{
return (0);
}

-------------------------------------------------------------
double TForm1::baisuu(int x,int y);
{
if(baisuu(x,y)==1){
Label1->Caption="3の倍数です";
}else{
Label1->Caption="3の倍数ではない";
}
}
}

値が返せなくて困ってます。
0315デフォルトの名無しさんNGNG
>>309
やらしてくれる娘を世話してくれるなら、
「なんだ、こんなに簡単なことだったのか」
と顔を赤らめるくらいにまで、基礎を仕込んであげてもいいぞ。
0316デフォルトの名無しさんNGNG
baisuu って引数を二つ持つのに、どうして呼ぶときは引数無いの?

とりあえず、コンパイラエラーが出ない程度に修正してみましょうね
0317デフォルトの名無しさんNGNG
305です。

>>306
そういうのじゃなくて、例えば、正方形の縦が半分になっちゃう、とかだから。
具体的には、グラフを表示してるんですけど、下のほうが表示されませんでした。

>>308
具体的には上のとおりです。横軸は時間で、
縦軸はy = 300 - data8bit; みたいにして、dataが1増えると、1ピクセル上に行くという感じです。
ペイントボックスのHeightは、オブジェクトインスペクタで300以上の値が指定されてます。

>>310
とりあえず、自分のマシンが大きいフォントだったので、小さいフォントに変えてみました。
すると、ペイントボックスのHeightが300以下に変わりました・・・
オブジェクトインスペクタで指定する値って、単位はピクセルじゃないんでしょうか?
0318デフォルトの名無しさんNGNG
>>310の
>とりあえず、TFormのScaledをfalseにしてみれば?
を確認したのか?
0319デフォルトの名無しさんNGNG
>>314
あまりに滅茶苦茶で、救いようがない。
0320デフォルトの名無しさんNGNG
>>314
まずBuilderではなくCの基礎を勉強しなおしてこい
0321デフォルトの名無しさんNGNG
>>314
double TForm1::baisuu(int x,int y);
{
なんで";"が?
baisuuの中でbaisuを呼んでどうする?
最後に戻り値を入れろ

それよりも、倍数判定の方法を考えろ
算数レベルだぞ
ヒント:剰余
0322デフォルトの名無しさんNGNG
みんな優しいんだな
0323263NGNG
>>265
亀で申し訳ない。
ありがとう!
出来ました!!
0324デフォルトの名無しさんNGNG
DBGridを使用するときに毎回OnDrawColumnCellイベントで定型処理をするのでDBGridを継承したクラスを作成し、それを使おうと
思い下記のようにやってみました。
このままパレットから貼り付けて使う分には何とか使えるのですが、MYDBGridにOnDrawColumnCellイベントを書いてしまうと、せ
っかく書いた定型処理の部分が実行されなくなってしまいます。
それと、メソッドの隠蔽に関する警告を無視して使っているのもいやな感じです。
わかりにくいかもしれませんが、このような使い方をしたい場合には、どのようにすればいいのか教えていただけないでしょうか?

"MYDBGrid.h"
class PACKAGE TMYDBGrid : public TDBGrid
{
private:
TDrawColumnCellEvent FOnDrawColumnCell;
protected:
void __fastcall DrawColumnCell(TObject *Sender,const TRect &Rect, int DataCol, TColumn *Column,TGridDrawState State);
};

"MYDBGrid.cpp"
__fastcall TMYDBGrid::TMYDBGrid(TComponent* Owner)
: TDBGrid(Owner)
{
TDBGrid::OnDrawColumnCell = DrawColumnCell;
}

void __fastcall TMYDBGrid::DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
/*
適当な処理
*/
TDBGrid::DefaultDrawColumnCell(Rect,DataCol,Column,State);
}
0325デフォルトの名無しさんNGNG
DBGridを使用するときに毎回OnDrawColumnCellイベントで定型処理をするのでDBGridを継承したクラスを作成し、それを使おうと
思い下記のようにやって、コンポーネントとしてインストールしてみました。
このままパレットから貼り付けて使う分には何とか使えるのですが、MYDBGridにOnDrawColumnCellイベントを書いてしまうと、せ
っかく書いた定型処理の部分が実行されなくなってしまいます。
それと、メソッドの隠蔽に関する警告を無視して使っているのもいやな感じです。
わかりにくいかもしれませんが、このような使い方をしたい場合には、どのようにすればいいのか教えていただけないでしょうか?
VER:BCB6 OS:Win2K

"MYDBGrid.h"
class PACKAGE TMYDBGrid : public TDBGrid{
private:
TDrawColumnCellEvent FOnDrawColumnCell;
protected:
void __fastcall DrawColumnCell(TObject *Sender,const TRect &Rect, int DataCol, TColumn *Column,TGridDrawState State);
};

"MYDBGrid.cpp"
__fastcall TMYDBGrid::TMYDBGrid(TComponent* Owner) : TDBGrid(Owner){
TDBGrid::OnDrawColumnCell = DrawColumnCell;
}

void __fastcall TMYDBGrid::DrawColumnCell(TObject *Sender,const TRect &Rect, int DataCol, TColumn *Column,TGridDrawState State)
{
/*
適当な処理
*/
TDBGrid::DefaultDrawColumnCell(Rect,DataCol,Column,State);
}
0326324NGNG
連続で揚げてしまいました。すいませんでした。
0327デフォルトの名無しさんNGNG
>>325
DrawColumnCellじゃなくてDefaultDrawColumnCellかDrawCellをオーバーライドする。
DrawColumnCellじゃ駄目なのはヘルプを読むと分かる。
DefaultDrawColumnCellとDrawCellのどちらを使うかは定型処理に照らし合わせて判断する。
0328324NGNG
さっそくありがとうございます。
自分でいろいろやってみたのですがうまくいきません。
できれば宣言方法などをおしえていただけないでしょうか?
やりたいことは、行によって文字色を変えることです。

//-----------------------------------------------
// 奇数行時処理
//-----------------------------------------------
if( DataSource->DataSet->RecNo%2 !=0 ){
Canvas->Brush->Color = FOddColor;
Canvas->Font = FOddFont;
//-----------------------------------------------
// 偶数行時処理
//-----------------------------------------------
}else{
Canvas->Brush->Color = FEvenColor;
Canvas->Font = FEvenFont;
}
0329324NGNG
なんどもすいません。
Protectedに宣言し、下記のように実装してみたのですが、Brushの設定が反映されません。
どの辺が間違えてるのでしょうか?
普段DBGridのOnDrawColumnCellイベントでやってることを内包したコンポーネントを作りたいんですが。

void __fastcall TMYDBGrid::DrawCell(int ACol, int ARow, const Types::TRect &ARect, Grids::TGridDrawState AState)
{
//-----------------------------------------------
// 奇数行時処理
//-----------------------------------------------
if( DataSource->DataSet->RecNo%2 !=0 ){
Canvas->Brush->Color = clRed;
//-----------------------------------------------
// 偶数行時処理
//-----------------------------------------------
}else{
Canvas->Brush->Color = clBlue;
}
TDBGrid::DrawCell(ACol,ARow,ARect,AState);
}
0330デフォルトの名無しさんNGNG
割り込んで申し訳ないですけど
すでに書いてるコードのインデントとかを一括で揃える機能ってありますか?
関数とか条件分岐のカッコの下がりとかのことなんですけど。

自分で書いてあちこちにコピペしたり削除したりしてると、どうも見栄えが悪くなっちゃったんですが、
今さらいちいち1行ずつタブとかでインデントを調整するのも面倒でして。

もしBCBにそういう機能がなければ、既存の有名アプリで代用できたりできないでしょうか。
Dreamweaverとか、無理か…。
ウィンドウズです。よろしくおねがいします
0331デフォルトの名無しさんNGNG
>>329
実験してないから保証は出来んが、多分。
×Canvas->Brush->Color
○Columns->Items[ACol]->Color

DefaultDrawColumnCellをいじった方が楽かも?
0332デフォルトの名無しさんNGNG
>>330
ブロック単位のインデントの上げ下げなら、領域選択後、Ctrl-K-O / -K-I だったような...
ヘルプに乗ってると思う
0333デフォルトの名無しさんNGNG
>>332
全部一括で自動インデント、てのは無理そうですが、
これでも大分助かります。
ありがとうございます
0334324NGNG
>>329
CustomDBGridのDrawCellないでBrushが再設定されているようなので、呼び出し前にColorプロパティを設定することで解決しました。

しかし、できればDefaultDrawColmunCellをオーバーライドしたいのですが、やってみてもコードが実行されません。
DefaultDrawColumnCellを実行させるにはどうしたらよいのでしょうか?
0335デフォルトの名無しさんNGNG
>>330
-------------------------------------------------------
〔Ctrl〕+〔Shift〕+〔I〕ブロックをインデントする
〔Ctrl〕+〔Shift〕+〔U〕ブロックをアウトデントする
-------------------------------------------------------
だとさ
0336デフォルトの名無しさんNGNG
さっき

F1001 コードジェネレータの内部エラー

が出ますた。どうすればいいですか?
0337デフォルトの名無しさんNGNG
・そのコードを QC にポスト
0338デフォルトの名無しさんNGNG
ボタンが押されたときに呼び出される関数をプログラム中で変更したいのですが
どうすればいいのでしょうか

とりあえず
button->OnClick= 関数ポインタ
とやってみましたがだめでした
0339 NGNG
元のイベントハンドラ

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage("Button1Click");
}

新しく呼び出される関数

void __fastcall TForm1::NewFunc(TObject * Sender)
{
//TODO: この下にコードを追加してください
ShowMessage("New Func");
}

イベントハンドラの変更処理

void __fastcall TForm1::ChangeButtonClick(TObject *Sender)
{
Button1->OnClick = NewFunc;
//正確にはButton1->OnClick = this->NewFunc;
}

ちゃんとできたよ。ただの関数じゃなくてTOject型の派生クラスのメンバ関数で引数、戻り値は一致してなくちゃいけない。
代入するのはただの関数ポインタじゃないけど。
ヘルプで __closure を調べてみたら。
0340 NGNG
>>339
>引数、戻り値は一致してなくちゃいけない。
引数、戻り値の型が一致してなくちゃいけないだった。
関数のシグニチャとか言うやつだっけ。
0341デフォルトの名無しさんNGNG
>>339-340
ありがとうございました(TдT)
0342デフォルトの名無しさんNGNG
Button1->OnClick=Button3Click;

TButton型OnClickイベントの引数は(TObject *Sender)。
呼び出される関数とちゃんと合ってる?

あとだめでしたってどうダメだったのか、あるいはどんなエラーが出たのかを書くこと。
0343デフォルトの名無しさんNGNG
余所見してたら一足もフタアシも遅かったか(;´Д`)
0344 NGNG
ヘルプの__closureみてもほとんど何ものってなかったね。
メンバ関数のポインタとオブジェクトの二つを渡さなくちゃいけないんだけどBuilderではC++から拡張されてて

TNewObject* NewObject;
だったら
Button1->OnClick = NewObject->NewFunc;
とか書ける。

さっきのはForm1のメンバ関数内だから省略したけど、違うオブジェクトのメンバ関数を呼ぶようにするときは関数だけじゃ駄目だよ。
NewObject->NewFunc とオブジェクト名も書かなくちゃいけない。
0345 NGNG
>>344
>メンバ関数のポインタとオブジェクトの二つを渡さなくちゃいけない

「メンバ関数のポインタとオブジェクトへのポインタの二つを」だった。
無駄にスレ消費してすみません。
0346デフォルトの名無しさんNGNG
TChartのx軸のラベルを変更するにはどうすればいいでしょうか?
(縦棒グラフを利用しています。デフォルトの0,1,2,…の値を変えたいです)
BottomAxis辺りのプロパティを探ったのですがわかりませんでした。
0347デフォルトの名無しさんNGNG
おいてめーらさっさと>>307教えれ
0348デフォルトの名無しさんNGNG
透明なアイコンでも・・・
0349デフォルトの名無しさんNGNG
やなやつ >>347
あそこはクライアント領域ではないから書き換えるのは難しいと思うが。
MDI の Non-client 描画を分捕って処理しなきゃいけないよ。
という説明でピンとこなけりゃひっこんでなさい
0350デフォルトの名無しさんNGNG
やっぱめんどいか、ぶっちゃけ>>348のが簡単だな
>>349は普通にうんこだな、あばよ
0351デフォルトの名無しさんNGNG
簡単なやり方があるのに... >> 350
0352デフォルトの名無しさんNGNG
俺は350だが釣られんぞっ!!
0353デフォルトの名無しさんNGNG
あそ。ならいいよん。
0354デフォルトの名無しさんNGNG
ごめんなさい、教えてください
0355デフォルトの名無しさんNGNG
ワラタ
0356デフォルトの名無しさんNGNG
APIでフォームスタイルを定義すればいいだけの話じゃないの?
0357デフォルトの名無しさんNGNG
質問なんですが、コンパイルしてみると
Fatal: ファイル6.0BJが開けません
と出ます。
どうすればいいでしょうか・・・
0358デフォルトの名無しさんNGNG
>>357
ファイル6.cppを「プロジェクトに追加」
0359デフォルトの名無しさんNGNG
ファイル名に2バイト文字を使うのはDQN以下。
いや、「以下」だと含むから訂正。

ファイル名に2バイト文字を使うのはDQN未満。
0360デフォルトの名無しさんNGNG
え〜と。未だDQNじゃないって意味ですか?
0361デフォルトの名無しさんNGNG
Linuxで「予定」という名前のフォルダを作るとなぜか「嵐」という
名前に変化し、削除不能になる。
0362むこうの249NGNG
このスレには
http://pc2.2ch.net/test/read.cgi/win/1068705330/248-
の症状の人はいないかな?
俺以外にいなければBCBとは関係なしってことになるんだけど。
■ このスレッドは過去ログ倉庫に格納されています