くだすれC++Builder(超初心者用)その2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/04/06(木) 16:33:24もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。
Borland Home Page
http://www.borland.co.jp/
<前スレ>
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/l50
<兄弟スレ>
くだすれDelphi(超初心者用)その31
http://pc8.2ch.net/test/read.cgi/tech/1142594051/l50
0348デフォルトの名無しさん
2006/09/02(土) 00:51:41>>344で言ってるコードは、VCLの提供する変数や関数へアクセスする際のコードの話。
そして関数の中に入ってしまえば、当然同じコードが走るのでDelphiとC++の差は無い。
(だからVCLがなした?と。)
それ以外の部分は、当然差はあるよ?どちらも得手不得手あるだろうし、
DelphiとC++はどちらが速いかなんて不毛な議論はするつもりはないけれど。
0349デフォルトの名無しさん
2006/09/02(土) 01:32:03コンパイラ、リンカは双方の差はない。
VCLは全く同じ仕組みということで良いのでしょうか。
ならばC++を使う分には絶対にVC++使いますけどね。
DELPHIもVC++も使えるので、BCB使う理由がないですよね。
0350デフォルトの名無しさん
2006/09/02(土) 01:33:03馬鹿はすぐになんとなく遅いとか言い出す。
そして測定すると逆の結果だったりする。
あるいは、Builderの方だけ最適化がデフォだったりとかな。
気がするとか無意味で間抜けなこと言っている暇があるなら測定すれ。奴阿呆。
0351デフォルトの名無しさん
2006/09/02(土) 01:36:17そりゃ別にいいよ。そう思うなら好きにすればいい。
0352デフォルトの名無しさん
2006/09/02(土) 02:18:440353デフォルトの名無しさん
2006/09/02(土) 11:36:36自分的にはVCLとSTLの両方が使えるBCB最強。
0354デフォルトの名無しさん
2006/09/02(土) 12:42:32おれはVCLの変な仕様が気に食わないのでそうしてるんだが。
0355デフォルトの名無しさん
2006/09/02(土) 13:52:43BCBとVC++ではBCBのほうがVBに近い感覚でポトペタプログラムが作れるから
ずっと楽だよ。
なので客先からVC++を指定されない限りBCBで開発してる。
0356デフォルトの名無しさん
2006/09/02(土) 20:12:44NMUDPで文字列の送受信を自身に対して行いたいのですが
どうにも受信出来ません。
ヘルプを参考に記述し、SendBufferに関する公式FAQも参照しました。
void __fastcall TForm1::BSendClick(TObject *Sender)
{
char buff[10];
strcpy(buff, "hoge");
NMUDP1->RemoteHost = "127.0.0.1";
NMUDP1->ReportLevel = Status_Basic;
NMUDP1->LocalPort = 7743;
NMUDP1->RemotePort = 7743;
NMUDP1->SendBuffer(buff, sizeof(buff), strlen(buff)+1);
}
void __fastcall TForm1::NMUDP1DataReceived(TComponent *Sender,
int NumberBytes, AnsiString FromIP, int Port)
{
char buff[10];
int i;
if(NumberBytes <= 10){
NMUDP1->ReadBuffer(buff, sizeof(buff), i);
Memo1->Lines->Add(*buff+": received "+IntToStr(i)+" bytes from "
+FromIP+" on port "+IntToStr(Port));
}else{
Memo1->Lines->Add(IntToStr(i)+" bytes incoming, buffer too small");
}
}
0357デフォルトの名無しさん
2006/09/02(土) 20:51:42VCLの変な仕様って?
0358デフォルトの名無しさん
2006/09/02(土) 20:56:18大人になっていく過程で、世の中の多様性に触れて学習していく。
つまり>>354は、まだまだお子ちゃまってことだ。
0359デフォルトの名無しさん
2006/09/02(土) 23:22:470360デフォルトの名無しさん
2006/09/03(日) 00:39:12解説本で収益を得るのはおk?
0361356
2006/09/03(日) 03:34:26しかし機能してませんねこのスレ
0362デフォルトの名無しさん
2006/09/03(日) 04:36:520363デフォルトの名無しさん
2006/09/03(日) 08:22:29True/Falseで表示されるわけですが、
これをカスタマイズして例えばTrueなら"True"という文字列ではなく、
代わりに"○"を表示したい場合どうすれば良いですか?
0364デフォルトの名無しさん
2006/09/03(日) 13:26:49機能していないのではない。
君自身のせいだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
それと自己解決したら、どうやって解決したかを書くのが礼儀だ。
君は、スレ違いの上に、ただのクレクレ君だ。
もう少し自分自身を顧みなさい。
0365356
2006/09/03(日) 13:28:14むしろ雑談してる奴がスレタイ嫁って感じだ
0366デフォルトの名無しさん
2006/09/03(日) 13:46:59>356 名前:デフォルトの名無しさん 投稿日:2006/09/02(土) 20:12:44
>361 名前:356 投稿日:2006/09/03(日) 03:34:26
質問した時間帯とか考えれば、レスが付かないのは不思議ではありませんねぇ。
ここは>>356専用のなんでも相談室ではありませんよ。
0367デフォルトの名無しさん
2006/09/03(日) 16:00:070368デフォルトの名無しさん
2006/09/03(日) 17:25:22もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
0369356
2006/09/03(日) 17:26:280370363
2006/09/03(日) 19:14:170371デフォルトの名無しさん
2006/09/03(日) 19:16:050372デフォルトの名無しさん
2006/09/03(日) 22:08:430373デフォルトの名無しさん
2006/09/03(日) 23:34:490374デフォルトの名無しさん
2006/09/04(月) 00:15:56論理型フィールドの状態によってOnCalcFields内で○か×を文字として代入。
0375デフォルトの名無しさん
2006/09/04(月) 00:30:47あとTShiftStateの扱いもちんぷんかんぷんです。
解説お願いします。
0376デフォルトの名無しさん
2006/09/04(月) 06:55:370377デフォルトの名無しさん
2006/09/04(月) 07:49:330378デフォルトの名無しさん
2006/09/04(月) 08:05:57if (Shift.Contains(ssShift))
ShowMessage("Shift+Delete");
0379デフォルトの名無しさん
2006/09/04(月) 08:13:59あり^^
0380デフォルトの名無しさん
2006/09/04(月) 09:13:20AAA->SizeというようにUnkoまでをAAAに置き換えて
省略する方法があったような気がしますが忘れてしまいました。
どなたか教えていただけないでしょうか?
ソースが横に長くなりすぎて辛いです。
0381デフォルトの名無しさん
2006/09/04(月) 09:16:040382デフォルトの名無しさん
2006/09/04(月) 09:21:56申し訳ないです。C++の質問スレッドを探します。
Builderユーザーなのですが基本からやり直そうと思います(つд`)
0383デフォルトの名無しさん
2006/09/04(月) 09:29:08Unko_Type *unko = Osiri->Koumon->Unko;
荒らしてる356とその騙りは無視しとけ。
0384デフォルトの名無しさん
2006/09/04(月) 10:21:390385デフォルトの名無しさん
2006/09/04(月) 10:22:210386デフォルトの名無しさん
2006/09/04(月) 10:26:00スレ違いに答えてんじゃねーよ帰れ
0387デフォルトの名無しさん
2006/09/04(月) 11:09:580388デフォルトの名無しさん
2006/09/04(月) 11:39:500389デフォルトの名無しさん
2006/09/04(月) 14:27:58new deleteも禁止。
データベース禁止。
0390デフォルトの名無しさん
2006/09/04(月) 14:32:17newできなかったらTStringListが使えないと言う場合は
TMemo->Lines推薦。TMemoポトペタVisible=falseでよろしく。
0391デフォルトの名無しさん
2006/09/04(月) 14:34:57下の様なプロジェクトがあり、
Project1.Unit1からProject2.Unit2を呼び出す場合(.Show)、どの様なコードを書けばよいのでしょうか?
#include "Unit3.h"をしただけでは「未解決の外部参照'_Form2'がC:\\~~から参照されました。」とエラーが出てしまいます。
ProjectGroup1
+-Project1.exe
|├Project1.cpp
|├Project1.res
|+-Unit1.cpp
|├Unit1.cpp
|├Unit1.dfm
|└Unit1.h
+-Project2.exe
├Project2.cpp
├Project2.res
+-Unit2.cpp
├Unit2.cpp
├Unit2.dfm
└Unit2.h
0392デフォルトの名無しさん
2006/09/04(月) 14:58:54超初心者には無理。
別の高度なスレで質問すれば可能になる。
ヒント:プロセス。フック。メッセージ。
0393391
2006/09/04(月) 15:10:03http://www2.big.or.jp/~osamu/Delphi/builder-browse.cgi?index=017979
頂いたヒントに沿うものが、上記ulrにも書いてありました・・・。
他のところで聞いて見ます。
ありがとうございました。
0395デフォルトの名無しさん
2006/09/04(月) 19:37:29DBGrid->Columnsでフォントカラーを背景と同じ色にして文字を特大にして、
さらにTrueの場合はDBGridのOnDrawColumnCellイベントで
ハンドラとしてColumn->CanvasにTextRectで描きたいマークを上塗りする事により解決しました。
その際、フォントとキャラセットを正しく設定しないとマルチバイト文字は化けてしまう事が分かりました。
以上報告まで。
ありがとうございました。
0396デフォルトの名無しさん
2006/09/04(月) 19:38:45俺の真似しないで下さい><
0397デフォルトの名無しさん
2006/09/04(月) 20:14:02まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
まずは、スレタイトルをよく嫁。はっきり言ってスレ違いだろ。
0398デフォルトの名無しさん
2006/09/04(月) 20:19:09法規があっても、それが解釈の余地があるなら、
弁護人によっていかようにも解釈できてしまうからだ。
0399デフォルトの名無しさん
2006/09/05(火) 11:13:39TCartをフォームに配置して、適当な棒グラフを追加。
次にTChartコンポーネント上にTButtonを配置
それで実行したらTChart上でマウスホイールをぐるぐる回すと回した方向に棒グラフが上下するんです。
TChartコンポーネントの上にボタンをおかなければ起きなかったんですが、
何か知ってる方いませんか?
0400399
2006/09/05(火) 11:16:35BDS2006なのでBCB10、TChartはPro7.07
TComboboxでも動きました。
TLabelやTpanelでは動きません。
0401デフォルトの名無しさん
2006/09/05(火) 12:07:50スクロールするようだけど。
0402399
2006/09/05(火) 13:41:29自分か子にフォーカスがある場合、スクロール無効な処理をいれれば解決しそうですが・・・?
0403デフォルトの名無しさん
2006/09/05(火) 13:53:430404デフォルトの名無しさん
2006/09/05(火) 15:05:17OpenDialogで一度に取得できるファイルの数に制限があるのでしょうか
OpenDialog->Files->Countが1540にしかなりません。
また、コンポーネントの制限に関する記述はヘルプのどこを見れば出てきますか
BCB4では"制限""TMemo"といったキーワードで出てきたと思うのですが。
どうかよろしくお願いします。
0405デフォルトの名無しさん
2006/09/05(火) 15:45:51MSDN GetOpenFileName Function より
Note, when selecting multiple files, the total character limit
for the file names depends on the operating system and the
version of the function.
Windows 95/98/Me: (only ANSI is supported) no restriction
Microsoft Windows NT4 and earlier: 32k limit
Windows 2000/XP: (ANSI) 32k limit, (Unicode) no restriction
いまどきなら
Windows 2000/XP: (ANSI) 32k limit
これにひっかかりそう
0406デフォルトの名無しさん
2006/09/05(火) 16:10:49MultiSelectBufferSize = High(Word) - 16;
...
...
nMaxFile := MultiSelectBufferSize else
と書かれているので、この辺りに上限があるのでは?
0407404
2006/09/05(火) 16:25:26早速ありがとうございます。
StringListの32kB制限って、OSから来ていたんですか! 知りませんでした。
となればOpenDialog->Filesがその影響下にあるので、当然そのような制限があるということですね。
ありがとうございました。
ヘルプにはその辺の理由は無くとも、制限が如何程のものか明示して欲しいところだと思いました。
日本語と併せて勉強してきます。
0408デフォルトの名無しさん
2006/09/05(火) 16:27:150409デフォルトの名無しさん
2006/09/05(火) 17:40:42TApplication::OnMessageで、WM_MOUSEWHEELを監視して、
Chart1に来たらHandled=trueにすればいい。
0410デフォルトの名無しさん
2006/09/06(水) 00:02:05あれって要するに、C++のポリモーフィズムによって
いかようにも(その子孫達に)化けて渡せるって事ですか?
0411デフォルトの名無しさん
2006/09/06(水) 01:28:060412410
2006/09/06(水) 02:32:30久しぶりに勘が当たりました
あり^^
0413デフォルトの名無しさん
2006/09/06(水) 09:47:520414399
2006/09/06(水) 14:11:43言われたとおり、ApplicationEvents1Message内に以下を書いたのですが、
Chartの上に配置したボタンにフォーカスがあるとうまくいきません。
GetClassNameはフォーカスのあるコントロール名が返ってくるようなので、
Chartから見た「子」全て識別する必要があるのでしょうか・・・?
AnsiString w_char = "";
char w_ccc[100];
if (Msg.message == WM_MOUSEWHEEL) {
GetClassName(Msg.hwnd,w_ccc,100);
for (int i = 0; i <= 99; i++) {
w_char = w_char + w_ccc[i];
}
this->Caption = w_char;
if (w_char == "TChart"){
this->Caption = "チャートキター";
Handled = true;
}
}
0415デフォルトの名無しさん
2006/09/06(水) 17:18:59void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled)
{
if (Msg.message == WM_MOUSEWHEEL && Msg.hwnd == Chart1->Handle)
Handled = true;
}
0416399
2006/09/06(水) 17:58:40ありがとうございます。
超スマートになりました・・・。
しかし、チャートはフォーカスを持つ事がない様なので一生走りそうにありません。
Msg.hwndにはTChartの子コントロールとなっているボタンのハンドルが入ってきます。
子コントロール全てを対象にする方法は、
「指定のスレッドに関連する子ウィンドウをリストアップする」
WindowsAPIのEnumChildWindowsで、TChartを指定して〜というかんじだと思うのですが、
EnumChildWindowsのコールバックというのが意味不明です。
わかりやすく言うとどういうことですか?
0417デフォルトの名無しさん
2006/09/06(水) 18:44:14if (Msg.message == WM_MOUSEWHEEL) {
HWND hwnd = Msg.hwnd;
do {
if (hwnd == Chart1->Handle)
Handled = true;
} while ((hwnd = GetParent(hwnd)) != NULL);
}
子→親と辿った方が楽。
0418デフォルトの名無しさん
2006/09/06(水) 20:14:10VCLフォームアプリケーションとSDI・MDIフォームアプリケーションの違いって何ですか?
0419デフォルトの名無しさん
2006/09/06(水) 21:27:04VCLフォームに全部自分でポトペタ、プロパティ設定すれば何の違いもない。
0420デフォルトの名無しさん
2006/09/06(水) 22:03:35昔のようにブ厚いマニュアルが付いてないし、ヘルプは大雑把だし、
ネットで見てもユーザーが少なくて参考にならない等、苦労してます。
試行錯誤でいろいろ自力で解決しましたが、いまだに解らないのか、
イメージエディタってやっぱり昔のをコピろってことなんでしょうか?
まぁ、ファイル3つ移植するだけで済むんですけどね。
0421420
2006/09/06(水) 22:09:24アドビが可愛く見えるっす。
0422デフォルトの名無しさん
2006/09/06(水) 22:55:100423Delフサギコ ◆A6VzDeLphI
2006/09/06(水) 23:17:18∧,,∧ / >>420
ミ,,゚Д゚彡< XN Resource Editor
ミ つ□) \
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪
0424デフォルトの名無しさん
2006/09/07(木) 00:19:18BCB6使いやすすぎ
0425デフォルトの名無しさん
2006/09/07(木) 01:14:33分厚いマニュアルは、リアル紙では付属していないけど、
ちゃんとヘルプの中に入っている。
0426デフォルトの名無しさん
2006/09/07(木) 02:05:30SP1とSP2の中にな。
しかも、紙をペラペラめくる感覚でいかんだろ。
0427420
2006/09/07(木) 02:31:29お返事ありがとうございます。
苦労したおかげで、今では充分に理解していますよ。
リソースなんていくらでも編集する手段ありますし。
ただ、製品としてツールがあるのかどうかが知りたかっただけ
なんですけどね。マニュアル嫁とでも?
>>425
DELPHI(WIN32)部分じゃ全く苦労してないです。
ずっと5を駆使してきたから。
初めて使ったとして、あのあらずじしか書いてないヘルプじゃ
いきなり理解できないですよね。
関数やらを調べるのにしてもF1とかCTRLで使うとしても、
英文でしかもサンプルの無いページに飛ばされるわけですよ。
(それでも拙い読解力で頑張って読んでますけどね)
まぁ、5の分厚い日本語マニュアルでもワケがわかなかったけど...。
0428デフォルトの名無しさん
2006/09/07(木) 05:49:46同感です。
「Delphi6 プログラミングバイブル」という良本があるが、
これを商品に標準で付ければ、開発ツールとしての価値は
断然上がると思う。
Turboシリーズの日本語化の際には、ぜひ考えてほしい。
商品価格は上がってもいいから。 >ボー様
0429デフォルトの名無しさん
2006/09/07(木) 08:55:59本屋で買うかどうか決められる方がいい。
0430デフォルトの名無しさん
2006/09/07(木) 09:23:340431デフォルトの名無しさん
2006/09/07(木) 09:40:290432デフォルトの名無しさん
2006/09/07(木) 13:52:21表示したサイトに付いているボタン押下判定がしたいのですが、
TApplicationEventsを使って出来ますか?
例
WebBrowser1->Navigate("http://www.google.co.jp")
で、Googleの検索ボタンを押した!というのをフックしたいの。
TWebBrowserで表示したサイト内のコントロール全てが子ウィンドなんてことはないでしょうか
0433デフォルトの名無しさん
2006/09/07(木) 14:37:54コントロールのメッセージの監視というのは無理。
0434デフォルトの名無しさん
2006/09/07(木) 14:45:32TApplicationEventsでは無理。
DOM使うのがノーマルなやり方だろな。
0435デフォルトの名無しさん
2006/09/07(木) 14:53:25無理ですか
DOOM?(´・ω・`)
DOMについて調べてみます。
ありがとうございました。
0436デフォルトの名無しさん
2006/09/07(木) 18:33:15TEditのOnDragOverイベントを使うのでしょうか?
0437デフォルトの名無しさん
2006/09/07(木) 20:07:49具体的にはIHTMLDocument2インタフェース
JavascriptでHTMLドキュメント内の要素を自在に操作できるスキルあるなら簡単。
0438デフォルトの名無しさん
2006/09/07(木) 22:51:50クソドキュメントのせいじゃないとしたら、
普及してないせいだね。
0439デフォルトの名無しさん
2006/09/07(木) 22:56:29試すだけでも半日掛かった。
まさか、マニュアルに書いてあるとでも?
0440デフォルトの名無しさん
2006/09/07(木) 23:13:180441デフォルトの名無しさん
2006/09/07(木) 23:21:38なになにが足りませんとか言われるからそれを持ってくるだけですよ。
>>440
口ばかり達者なのはミエミエだから黙ってろ。
0442デフォルトの名無しさん
2006/09/07(木) 23:25:000443デフォルトの名無しさん
2006/09/08(金) 00:12:55自演の初心者なのが痛々しくて、そっちはどうにも見てらんない。
0444デフォルトの名無しさん
2006/09/08(金) 02:33:32ショートカットキーのCtrl + Shift + Cによるクラスのコード補完みたいなのはないんでしょうか?
0445デフォルトの名無しさん
2006/09/08(金) 03:06:090446デフォルトの名無しさん
2006/09/08(金) 03:30:31すみません、質問が悪かったです。
そのショートカットキーを教えて下さいorz
0447デフォルトの名無しさん
2006/09/08(金) 04:09:47キーはない。
しばらく待つだけ。
設定はツール→エディタプロパティ→支援機能
■ このスレッドは過去ログ倉庫に格納されています