[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/15 17:01 / Filesize : 113 KB / Number-of Response : 443
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++Builder相談室 Part19



1 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 16:30:32 ]
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
※2008/07よりCodeGear(Borland IDE/DB部門)はBorlandからEmbarcaderoに移動しました

【前スレ】
C++Builder相談室 Part18
pc11.2ch.net/test/read.cgi/tech/1188607282/

過去スレ・関連サイトは>>2-7あたり。

※Borland C++ Compiler 5.5.1についての質問は以下のスレへ
タダで使えるBorland C++ Part5
pc11.2ch.net/test/read.cgi/tech/1135127048/
※BDS(Borland Developer Studio)の総合スレはこちら
Borland Developer Studio 2006 No.13
pc11.2ch.net/test/read.cgi/tech/1175861395/
※CodeGear(Borland/Embarcadero)関連はこちら
【CodeGear】Embarcaderoオッチャ その10
pc11.2ch.net/test/read.cgi/tech/1216250111/

<関連スレ>
くだすれC++Builder(超初心者用)その3
pc11.2ch.net/test/read.cgi/tech/1171219191/
[Tips]Borland C++Builder ちょいテク No.01
pc11.2ch.net/test/read.cgi/tech/1154580209/
【Delphi】 Indyコンポーネント 【C++Builder】
pc8.2ch.net/test/read.cgi/tech/1093654251/


76 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 07:05:05 ]
>>75
もしよかったらバージョンいくつからの以降で、
どの程度ソースの変更が必要だったか教えて欲しい。

77 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 09:38:40 ]
>>76
えっと、CodeGearウオッチャスレにも書いてるから、
重複するけれども、こんな感じ。
まぁ、やり方が分かれば、手間は掛かるかもだけれども難しい事はないよ。

C++Builder2007とC++Builder5からの移行だよ。

例1)MessageBoxに直接文字列セット
 Applcation->MessageBox("mes","mes",MB_OK);
   ↓
 Applcation->MessageBox(L"mes",L"mes",MB_OK);
例2)AnsiString型に文字列をセットしてMessageBox出力
 AnsiString str="mes";
 Applcation->MessageBox(str.c_str(),str.c_str(),MB_OK);
   ↓
 UnicodeString str="mes";
 Applcation->MessageBox(str.w_str(),str.w_str(),MB_OK);
例3)DelphiのVCL登録
 Char→AnsiChar
 PChar→PAnsiChar

例4)C++Builder5からの移行
  C++Builder5から移行して、例1とか例2とかの修正後、
 リンカエラーが出た場合の対処として、新規プロジェクトを作成
 してフォームのCPPファイルを追加してコンパイルするとリンクも通る。

78 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 10:22:15 ]
>>77
ありがとう。L マクロか。

私も5からの以降なんだけど、
フォームは作り直さないとやっぱりダメ?
>フォームのcpp ←dfm の間違いだったらいいんだけど・・・


79 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 10:55:33 ]
>>78
あっ、フォームを作り直す必要はないよ。
作り直す必要があるのはプロジェクトファイルね。
新規でVCLフォームアプリケーションを作成して、最初にあるuit1をプロジェクト
から削除後、C++Builder5で作ったdfmのあるCPPファイルをプロジェクト
にD&Dすると、dfmとcppとhファイルが勝手に追加されるから、
その後ならリンクも正常に通るよ。

80 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 21:08:50 ]
>>79
ありがとう!
決心しました。
明日アップグレード金振り込んできます。

デヴェロッパーズキャンプとか出たのに、
そういう肝心なことは聞きにくかった。
っていうか、Builder5 からの移行って時点で
聞きにくかった・・・。

81 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:42:54 ]
>>80
お役に立てたら何よりだよ。

とりあえず、C++Builder2007でも通らなかったものはある。
具体的にはTarCtrlsっていうVCL。
これは、dsinintf.hppっていうのを使っているが、これがC++Builder2007
の時点でファイル名が変わってたっぽい。
で、そのファイル名に変更してみたんだが、クラス名も変わってるみたいで
簡単には移植できなさそうで諦めたよ。

そういったものを使ってなければ、移植に関してはそんなに問題はないと思うよ。


82 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 10:13:25 ]
>>81
重ね重ね、ありがとう。

VCL でも整理されたクラスとかあるんだね。
TarCtrls は多分使ってないと思う。
あんまり VCL でも変わったのは使わないようにしてるから、
意外と移植の手間は少なそうな気がしてきた。

それより、Lマクロがめんどくさそう・・・。

83 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 11:56:47 ]
AnsiString、WideString、UnicodeStringでtypedefで置き換えできる位の互換性持たせてくれと思う・・

84 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 14:07:34 ]
2009トライアル版にBCB6のプロジェクトを読み込ませてビルドを試みてるけど,書き直しが結構大変。
>>77のMessageBoxも沢山あるんだけど,何しろヘルプがバグだらけで正しい書き直し方がわかるまでに
時間がかかる。

・UnicodeStringのc_str()メソッドはwchar_t*を返すとヘルプには書いてあるが,実際にはchar*が返される。
wchar_t*を返すのはw_str()だった。

・ExceptionクラスのMessageプロパティの型はヘルプによればAnsiStringだが,実際にはUnicodeString。

・DateTimeToString関数のプロトタイプはヘルプではDateTimeToString(AnsiString, const AnsiString, TDateTime);
となっているが,正しくはDateTimeToString(UnicodeString &, const UnicodeString, TDateTime);らしい。
結局ヘルプではAnsiString→UnicodeStringの書き換えがまともに行われてないんだということがやっとわかった。
それにしても&くらい抜かさずにちゃんと書いて欲しい...

ところで2009ではTEditのTextやTButtonのCaptionなんかが軒並みAnsiStringからTCaptionという型に変わって
るんだけど,ヘルプにはTCaptionはstringだと書いてある。これってstd::stringのことなの?
だとすると,ToInt()とかないからstd::stringstream使わなきゃなんないし,今までインデックスが1からだったのが
0からになるし,エライ騒ぎなんだが...と思ったら,違うみたい。デフォルトではstringはUnicodStringだそうな。

もーようわからん。Delphiとごっちゃになったヘルプはなんとかならのか!



85 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 15:24:28 ]
>2009トライアル版にBCB6のプロジェクトを読み込ませてビルドを試みてるけど,

BCB6を使ってるとは同じ身だorz

誰か対応方法wiki化しる!

86 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 16:06:32 ]
>std::stringstream使わなきゃなんないし
#define _TCAPTION(str) std::string(str.c_str())
でいいじゃん

87 名前:84 mailto:sage [2008/09/25(木) 16:10:03 ]
>>86
いや,TCaption=std::stringじゃなくてTCaption=UnicodeStringだってことがわかったんでいいんだ。
紛らわしいこと書いてスマソ。

88 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 13:42:03 ]
うにこでStringはt_str()で_TCHARが返るよ

89 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 13:44:10 ]
うにこで初心者はここら辺見とくといいよ
ttp://www.ruche-home.net/?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%BE%AE%A5%CD%A5%BF%BD%B8%2FUnicode%C2%D0%B1%FE%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0

90 名前:80 mailto:sage [2008/09/29(月) 22:12:58 ]
ビルダー2009コネーヨー> ヽ(´Д`)ノ

もう2日まって来なかったら、連絡してみよう・・・。

91 名前:デフォルトの名無しさん [2008/09/30(火) 12:53:19 ]
StrToInt では16進数文字列が変換できないの?
自分で HexToInt なる関数をつくってしまったわい。

92 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:19:32 ]
>>91
変換する文字列の頭に 0x つければできるよ。

93 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 16:15:04 ]
>>91 m9(^Д^)

94 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 16:24:31 ]
こういうのは自作した方が良い。



95 名前:80 mailto:sage [2008/09/30(火) 16:25:12 ]
今日届いた。一応解決したからかきこんどきます。スレ汚し、スマヌ。
インストールする気が全く起きん・・・。

96 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:00:11 ]
>91
'$'+でももちろんおk

97 名前:貧乏学生 [2008/09/30(火) 19:27:05 ]
質問です。
ファイルをリストボックス上にスクロールダウンして
リストボックスにファイルのパスが表示されるプログラムが
出来なくて困っています。
ご存知の方いらっしゃいましたらご指導よろしくお願いします。

98 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:37:26 ]
>>97
どこの言葉だよ・・・。

99 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:32:09 ]
にh(ry

100 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:36:32 ]
リストボックスにD&Dでリストボックスにファイルパスを表示する
ということ?

101 名前:貧乏学生 [2008/09/30(火) 20:38:00 ]
>>100
そうです。お教えください。よろしくお願いします。

102 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:39:30 ]
貧乏な学生達はD&Dのことをスクロールダウンというのか・・・

103 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:48:38 ]
どこの国からの留学生だヨ。


104 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 23:20:09 ]
>>101
DragAcceptFiles を使う。
あとは DragQueryFile 辺りを調べてみて。



105 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 03:17:36 ]
コンポなかったっけ?まあ、APIでやったほうがパッケージ管理の必要ないから楽だけど。

>>102
D&Dっていったらダンジョンズ・アンド・ドラゴンズだろ

106 名前:デフォルトの名無しさん [2008/10/01(水) 08:27:09 ]
アイコンにファイルをドラッグ&ドロップしたら
アプリが起動するって
どういう仕組みになってるんだろ?

107 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 08:41:02 ]
>>106
それをやるのが OS の GUI。

108 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 09:47:12 ]
>>106
コマンドラインパラメータにドラッグ&ドロップされたファイル名が入ってくるから,
_argv[]とかParamStr()で取れるよ...って,そういう話じゃないのかな?

109 名前:デフォルトの名無しさん [2008/10/01(水) 11:32:30 ]
C++B 2009のトライアル版を使っています。
各コンポーネントのCaption表示をリソース管理でローカライズすることは
出来たのですが、動的に表示を変える場合に用意した文字列を、リソース管理
でのローカライズ方法が分かりません。どなたか御教授下さい。

ちなみに、Caption表示等のリソースファイル(dfm, rc)とは別に文字列を定義
するファイルを作らないといけないんですかね?

110 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 12:09:25 ]
EXEといっしょにリソース入れるなら分けた意味ないだろ。
入れ替えたいなら、普通DLLでリソース持つわな。

111 名前:デフォルトの名無しさん [2008/10/01(水) 13:38:11 ]
DLLですか・・・。
C++Bのエディットで表示したソース上で日本語以外のワイド文字が
入力出来ないみたいなんで、入力が出来るトランスレーションエディ
タで一緒に編集できる方法があればと思ったのですが。

112 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 14:05:49 ]
簡単に編集したかったら
>>109 のように独自定義ファイル作って、実行時に読み込んで割り付けると楽だと思うが。

別にリソースでわざわざ持たせなくてもいいんだろ?

113 名前:106 [2008/10/01(水) 15:21:24 ]
>>108
そういうことダス。
ベリベリサンキュ。

114 名前:デフォルトの名無しさん [2008/10/01(水) 15:26:33 ]
そうですね。
独自定義ファイルやDLLを作成するにしても外部ファイルが増
えてしまうので、出来れば増やしたくないってのがありますが
結局リソースファイル作る時点で増えるんで、独自定義ファイル
でまとめたほうが楽ですね。



115 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:32:12 ]
そうそう、独自定義ファイルをUTF-8で作っておいたら無問題。

それと編集しやすいファイル記述形式は、

>AAA=menu click

みたいな1行単位。

これだと、TStringListにロードさせたあとは、Valuesで取れるし、
テキトーにファイルにコメント書いても悪影響ないし、
それとか、いざ、Win以外の開発が発生してもロードクラスを簡単に作れる。

116 名前:115 mailto:sage [2008/10/01(水) 15:35:45 ]
さらに自分の場合、

>Form1="送信フォーム"
>Form1.Label1="送信設定"
>Form1.Button1="送信"

みたいにしといて、
TStringListを渡しておいたら、
勝手にフォームのコントロールを検索してのキャプション書き換える
クラス作ちゃったw

注意点は、メモ帳でファイル書き換えても自分の直した行しか変わらず問題ないが、
ワードパッドとかで書きかえるとファイル保存するときにUNICODE勝手にいじられちゃう。

117 名前:115 mailto:sage [2008/10/01(水) 15:40:46 ]
ついでにヒントを書いておくと、

・ファイルロードするTStringListクラスを保持したLangListクラス
・ロードしたものでコントロールのキャプション書き換えるクラス

は別々にしておいた方が良い。

なぜかというと、ロードしたクラスのみを使う場合があります。

例)
throw Exception(LangList.ValuesAnsi("MSG.CannotCreateFile") + SDestFile);

(LangListからUTF8でとるときは、LangList.ValuesUtf8("MSG.CannotCreateFile")とか書く)

118 名前:デフォルトの名無しさん [2008/10/01(水) 15:55:30 ]
109です。

>>115
似たようなことをやっていたのですが、
自分の場合リストからロードする時にValue使わずに、
わざわざ文字列比較して引っかけてたんで、すごく
参考になります。

わざわざ、独自定義ファイルの作り方を教えて下さって
ありがとうございます!!

119 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:03:06 ]
このあいだのデベロッパーキャンプで高橋さんが.pasファイルにresourcestringを書いといて
リンクすればいい、ってのをやってた希ガス。標準的な手法があるなら独自にやるのは無駄では?
ttp://dn.codegear.com/jp/article/38706
これのB3かな?あとは
ttp://dybdahl.dk/dxgettext/
こゆのとか。

120 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:26:23 ]
なるほど。それはいいことを聞いた。
で、ヘルプの「アプリケーションのローカライズ」で検索したらなんか出てきたよ。
今勉強中。

121 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 17:35:37 ]
AnsiStringで文字列末に\0を二つ追加したいのですが、

AnsiString str;
str += "\0\0";

ではだめそうでした。char* に変換するのも面倒で、
なんかいい方法無いでしょうか。


122 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 21:07:52 ]
>>121
大丈夫なようだが。

AnsiString str = "abc";

str += "\0\0";

Edit1->Text = str;

if (str.SubString(4, 1) == "\0") {
Label1->Caption = "\\0";
}
if (str.SubString(5, 1) == "\0") {
Label2->Caption = "\\0";
}

123 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 21:47:12 ]
悪い。AnsiStringでは"\0"のデータを直接演算できないみたいだね。
cat_printf()を使ったらうまくいった。

AnsiString str = "abc";

str.cat_printf("%c%c", 0, 0);

Edit1->Text = str;

Label3->Caption = str.Length();

if (str[4] == 0)
Label1->Caption = "\\0";

if (str[5] == 0)
Label2->Caption = "\\0";

124 名前:121 mailto:sage [2008/10/03(金) 15:45:35 ]
>>122-123 おお、cat_printfなんてものがあるんですね、
ありがとうございました!
使うところはもちろんSHFileOperationなのでした。



125 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 07:00:06 ]
2009でPNG画像使おうとするとうまくいかない

新規プロジェクトのフォームに貼ったTImageにPNGを読み込ませておいてビルド→
[ILINK32 エラー] Error: 未解決の外部参照 'Pnglang::_EPngInvalidCRCText' が C:\PROGRAM FILES\CODEGEAR\RAD STUDIO\6.0\LIB\OBJ\PNGIMAGE.OBJ から参照されました
(もちろん、Pnglang.hppとPnglang.objは存在する)

読み込ませずにビルドしても同じ。TImageを貼っただけではうまくいくので、PNGを読み込ませた時に挿入さ
れた#include <pngimage.hpp>を削ってみるとビルドはとおるが、TImageの(TPictureの)LoadFromFileなどで
読み込もうとしても未サポートの拡張子と言われる

じゃあ、TPngImageを使おうと思っても、これはpngimage.hppで宣言されているのでインクルードしないとコン
パイルできないが、インクルードするとリンクエラー

試しに別のマシンに2009インストールして試してみたけど同じだった(両方ともXPマシン)
まともに使えている人いる? おかしいのは俺のところだけか?
それとも、何か情報ある?


126 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 14:57:15 ]
>>125

リリースノートによると、画像処理のパッケージがVCLJPGからVCLIMGに代わったからその影響みたい。
ttps://forums.codegear.com/thread.jspa?messageID=17336䎸

その、VCLIMGパッケージがリンクできていないようだから、どこか適当なソースに、
#pragma link "vclimg.lib"か#pragma link "vclimg.bpi"を追加すれば出来た。


127 名前:125 mailto:sage [2008/10/07(火) 22:40:45 ]
>>126
さんきゅ 動いたよ!
今後の事考えると面倒なんで、Pnglang.hppに#pragma link "vclimg.lib"書き加えたw


128 名前:デフォルトの名無しさん [2008/10/09(木) 22:29:52 ]
フォームにパネルを均等に配置してるのですが、
最大化した時に、フォームのサイズに合わせて配置したパネルも一緒に拡大する方法を教えてください
オブジェクトインスペクタの設定でできますか?

129 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 23:41:18 ]
>128
Anchors

130 名前:デフォルトの名無しさん [2008/10/10(金) 20:41:01 ]
データダイアグラムの使い方がよくわかりません
誰か教えて

131 名前:デフォルトの名無しさん [2008/10/11(土) 01:36:14 ]
>>129
アンカーでどうやって均等配置できるんですか??
LeftとRightをtrueですか?
そうしたらLeftの位置は変わらないからRightが伸びてパネルがかぶるし・・・
どうすればいいんでしょうか?

132 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 12:25:15 ]
>>131
どういう状態にしたいかがよく分からんが、新しくPanelを作ってBevelOuter
をbvNoneにし、その上に今のPanelを置いてAnchorsを変えればいいんじゃない?


133 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 18:54:02 ]
>>128
OnResizeイベントでダメなん?

134 名前:デフォルトの名無しさん [2008/10/11(土) 19:26:56 ]
>>132
えとですね。
例えばフォームWidthが200として横に均等にパネルを4つ並べます。
こんな感じで↓(とりあえず横が分かれば縦もわかるので今は高さを考慮しない)
隙間(20)パネル(25)隙間(20)パネル(25)隙間(20)パネル(25)隙間(20)パネル(25)隙間(20)
これをフォームのWidthを倍の400にした時に
隙間(40)パネル(50)隙間(40)パネル(50)隙間(40)パネル(50)隙間(40)パネル(50)隙間(40)
こんな感じに間隔もパネル幅も倍になってほしいのですが。。。
これってプロパティだけでできますか?
>>133
自分で計算してパネルの位置と幅を調整しなさいよってことですか?



135 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 20:00:23 ]
普通こういう風にしないか?

void __fastcall TForm1::FormResize(TObject *Sender)
{
Panel1->Width = Form1->Width * 0.5;
Panel2->Left = Form1->Width * 0.5;
Panel2->Width = Form1->Width * 0.5;
}

136 名前:デフォルトの名無しさん [2008/10/12(日) 14:09:50 ]
>>135
それが普通かどうかはわかりませんが
オブジェクトインスペクタで設計時にやる方法があるのかなって思ってききました
できないならやはりResizeで自分で計算するしかないですよね

137 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 15:38:01 ]
>136
OnResizeで全部自前計算でFA。

138 名前:132 mailto:sage [2008/10/12(日) 21:32:48 ]
>>134
ん〜......
色々試してみたが、今の所できんかった。
こういうのって半分パズルだよなぁ......
できない事はないのかもしれんが、オレはちょっとできんかった。

139 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 22:40:16 ]
>>134
へたにフォームのプロパティでぐちゃぐちゃやるより、手で書いた方が良いと思う。

140 名前:デフォルトの名無しさん [2008/10/13(月) 12:33:23 ]
>>137
やっぱそれでFAですかね。
>>138
何か出来そうな気はするんですよね。でもたぶんできないっぽいような
>>139
アンカーとかである程度はできるから簡単にできるのなっておもいまして

とりあえずResizeでFindComponentでパネル取ってやりまーす
エロい人達ありがとう

141 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 00:24:22 ]
>>140
>134の状態だと、例えば1ピクセルだけフォームを広げてみた場合、パネルと隙間の増分ピクセル数が
小数になっちゃう
Anchorとかのプロパティでは、フォームのリサイズのピクセル数がそのまま各コントロールに影響するの
で、根本的に無理があるね



142 名前:デフォルトの名無しさん [2008/10/17(金) 17:47:42 ]
C++Builder6のIDEで質問があります。
ソース内の関数使用箇所から実装部へジャンプする操作(マウス・キーコンビネーションなど)
はないのでしょうか。
MyFunc();
をクリックか何かして
void MyFunc(void)
{
...
}
へジャンプするみたいな感じです。あちこちで調べたんですが、どうしてもわかりません。



143 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 18:22:16 ]
>>142
右クリック→定義の検索、ではだめなん?

144 名前:デフォルトの名無しさん [2008/10/17(金) 22:37:16 ]
142です。
右クリック->定義の検索 だと宣言部(.hの方)にジャンプしますよね?
.cppの方を見たいのです。人の作ったソースを追っかける時にこの機能が無いと不便で仕方ないんです…
それとも何か条件で.hに行ったり.cppに行ったりするのかな?
VC++だと一度ビルドしてクラス情報を生成しないとダメ、みたいなのがあるけど、BCBにもあるんですかね?
一応このプロジェクトはビルドしてEXE作ってるけど…



145 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 23:54:34 ]
.hに飛ぶのは、.cppの方がすでにビルドされていてバイナリになって
不可視になってる事があるからじゃない?

例えば配布されているライブラリとかそうじゃん。
.cppはいつもCtrl+Fで検索してるけど。

146 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 10:07:29 ]
test

147 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 16:15:58 ]
2007でエディタにアウトラインっぽいのがありますがこれOFFにできますか?

148 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 22:19:58 ]
できない

149 名前:デフォルトの名無しさん [2008/10/23(木) 11:56:54 ]
Memo1に60行の乱数を出したんですけど、この60行の配列の平均を取った数字を
Edit1に出したいのですがなかなかどうすればいいんでしょうか・・
どなたかアドバイスお願いします。


150 名前:デフォルトの名無しさん [2008/10/23(木) 13:19:28 ]
ヒント
Lines->Strings
StrToInt

151 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 13:20:52 ]
>>149
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int i = 0; i < 60; i++) {
Memo1->Lines->Add(AnsiString(std::rand()));
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
double sum = 0.;

for (int i = 0; i < Memo1->Lines->Count; i++)
sum += Memo1->Lines->Strings[i].ToDouble();

Edit1->Text = AnsiString(sum / Memo1->Lines->Count);
}

152 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 13:30:27 ]
データはコントロールじゃなくてコード内で保持した方がよくね?

std::vector<int> results;

void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(int i = 0; i < 60; i++) {
  int value = std::rand();
  results.push_back(value);
  Memo1->Lines->Add(AnsiString(value));
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
double sum = 0.;
for(std::vactor<int>::iterator it = results.begin(); it < results.end(); it++)
 sum += *it;
Edit1->Text = AnsiString(sum / result.size());
}

153 名前:デフォルトの名無しさん [2008/10/23(木) 16:01:04 ]
》150》151》152 ありがとうございました!おかげさまでなんとかつくり終えることができました

154 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:03:10 ]
そういう安価のつけかたもあんか
いや、あるんか



155 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:14:07 ]
>>153, >>154

さすがにコンパイルエラーになったけど, 150 >> 151 >> 152; ならコンパイル通ったw


156 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:18:52 ]
そう言えばC++Builderの<<、>>演算子のキモい使い方があったような
何に使うんだっけ?

確かビットを立てたり外したりするのに使った記憶が

157 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:27:23 ]
集合型のエミュレーションだね
Set型

158 名前:155 mailto:sage [2008/10/23(木) 16:29:41 ]
>>156
ヲイヲイ,<< と >> はCの時代からビットシフト演算子だよ。C++になってから >> cout とか別の使い方で
定義されるようになった。>>155だってビットシフトの意味があるからコンパイルが通るだと思う。
150数ビットもシフトしてどうすんの?...なんだけどw

159 名前:155 mailto:sage [2008/10/23(木) 16:30:30 ]
あぁ,スマソ。そっちの話か。

160 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:34:11 ]
>>157
ああ、それだ。滅多に使わないから忘れかけてた。
Delphiならスマートに書けるのだがC++Builderならムリヤリ感が。

>>158
まあそういう事だ。

161 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:44:00 ]
>>160
普段はオブジェクトインスペクタからいじっちゃうからね
コードでいじる場合はどうしてもヘルプ頼りに

162 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:52:42 ]
そういやオープン配列もだいぶ無茶してたよなあ
TVarRecとか
カッコを二重に書かなければならないのを時々忘れる

163 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:54:48 ]
オープン配列は大抵Formatに使うことが多いから、Format使わずにAnsiString::sprintf()でやってるな

164 名前:デフォルトの名無しさん [2008/10/29(水) 11:22:19 ]
すみません教えてください。。。
C++BuilderでVBスクリプト?を使ってSNMPで値の送受信を行いたいのですが
VBのソースは以下の通りです

Dim objSNMP
Set objSNMP = CreateObject("OlePrn.OleSNMP")
objSNMP.Open "192.168.0.40", "public", 2, 1000
Dim myObjectValue
ObjectValue = objSNMP.Get(".1.3.6.1.2.1.1.4.0")
WScript.Echo ObjectValue
objSNMP.Set ".1.3.6.1.2.1.1.4.0", CStr("e-mail:xxx@xxx.xxx tel:xxx-xxxx-xxxx")
Dim myChangedObjectValue
myChangedObjectValue = objSNMP.Get(".1.3.6.1.2.1.1.4.0")
objSNMP.Close()


これをC++Builderではどのような記述になるのでしょうか?
CreateObjectはたぶんこんな感じになると思うのですが
この続きの記述を教えてください。。

Variant cn = Variant::CreateObject("OlePrn.OleSNMP");




165 名前:デフォルトの名無しさん [2008/10/30(木) 16:49:46 ]
ブタ共さっさと教えてください

166 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 16:53:58 ]
Indyでやるだろ、jk。

167 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 16:58:20 ]
最近の子はマニュアル読んでとりあえずできるかテストしてみようって事しないんだな

168 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 17:02:53 ]
Indyならフォームにペタっと貼るだけ。

169 名前:デフォルトの名無しさん [2008/10/30(木) 18:41:08 ]
知らないならレスしないで下さいよ。ウザくてかなわん

170 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 19:02:18 ]
その程度ができないのになんでプログラムなんて書いてるの?バカなの?

171 名前:デフォルトの名無しさん [2008/10/31(金) 15:32:06 ]
アイコン化されたフォームを元に戻す方法を教えてブタ共よ

172 名前:デフォルトの名無しさん [2008/10/31(金) 15:37:40 ]
Application->Restoreでできたわ
ほんとお前らって何の役にも立たないブタだよな・・・

173 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 16:27:08 ]
役に立たないブタはageます

174 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 00:31:47 ]
自力でできたということは、自力でやらせようとした人間達の狙いは大成功したということで、
役に立たないどころかすべてが計算通りに進んだということですw



175 名前:デフォルトの名無しさん [2008/11/03(月) 20:06:59 ]
csv方式で

656,000,1123,5454
756,000,5454,3455
545,001,6565,4554       6565
545,002,5455,7775   → 5455
223,006,5656,9898 5656
054,004,5554,5554 5554
    ・ ・
    ・           ・
    ・           ・
843,022,6643,4443       6643
565,011,3434,4455 3434
656,000,3343,2432
789,000,5545,6665

こんな感じで配列が並んでいるのですが各数列の2番目数字が000以外のときに
3番目の数字だけを配列として順にMemo1にだしたいのですがどのようにすればよいでしょうか


176 名前:デフォルトの名無しさん [2008/11/03(月) 20:10:04 ]
ずれていたので再投稿します
csv方式で

656,000,1123,5454
756,000,5454,3455
545,001,6565,4554       6565
545,002,5455,7775   →   5455
223,006,5656,9898        5656
054,004,5554,5554       5554
    ・              ・
    ・              ・
    ・              ・
843,022,6643,4443       6643
565,011,3434,4455       3434
656,000,3343,2432
789,000,5545,6665

こんな感じで配列が並んでいるのですが各数列の2番目数字が000以外のときに
3番目の数字だけを配列として順にMemo1にだしたいのですがどのようにすればよいでしょうか






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<113KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef