トップページ⇒tech
1001コメント335KB

くだすれC++Builder(超初心者用)その2

レス数が1000を超えています。これ以上書き込みはできません。
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
0951デフォルトの名無しさん2007/01/27(土) 20:49:49
.iniの情報(文字列)を
ReadString("セクション","キー","");で読み込んでAnsiString型の変数mojiに格納。
文字列の範囲を指定するためif (moji >= "1" && moji <= "100")に入れた時、
moji = ”0”や
moji = "d"はガードできるのですが
moji = "1d"をガードできません。
解る方、どうか教えて下さい。
0952デフォルトの名無しさん2007/01/27(土) 20:52:40
↑
moji == "0"
moji == "d"
moji == "1d"ですた・・・。
0953デフォルトの名無しさん2007/01/27(土) 21:33:56
>>951
数字だけなら、一回数字に変換すればらくだが・・・
0954デフォルトの名無しさん2007/01/27(土) 23:57:25
>>953
どもです。
その通りで、数字だけ、文字だけならばどうにでもなるのですが・・・。
何故ダメだかはわかるのですが、ガードする方法は思い付けません。
0955デフォルトの名無しさん2007/01/28(日) 00:18:49
俺なら、strtolでも使って全部が数字の文字列であるか判定した後(第2引数を利用)
その数字の代償で比較するかな。
0956デフォルトの名無しさん2007/01/28(日) 12:41:02
>>955
ありがとうございます。strtol調べてみました。
第2引数は変換出来ない文字の格納先ですか。
ifでも使ってここの値に何かが入っていれば飛ばしてやればいいって事でしょうか?
0957デフォルトの名無しさん2007/01/28(日) 21:34:38
>>956
整数と判っているのであれば最初からTRegistryIniFile::ReadInteger()で読み込むのが楽だよ。
読み込み失敗時に返す第3引数に0でも指定してやっとけば範囲制限も簡単に解決できるんじゃないかな。

int n = Ini->ReadInteger( "Window", "Left", 0 ); // 整数として評価できない場合は0を返す
if( ( 1 <= n ) && ( n <= 100 ) ){〜


文字列として受け取らざるを得ない場合はAnsiString::ToIntDef()かAnsiString::ToInt()で
intに変換してから判断。(ToInt()は変換できないとき例外を投げる点に注意)
0958デフォルトの名無しさん2007/01/29(月) 10:55:27
フォームがアイコン化されたメッセージを取得する方法を教えてください
0959デフォルトの名無しさん2007/01/29(月) 11:15:16
すみません。フォームじゃないですねたぶん
Application->Minimize( );
でアイコン化した時に現在アイコン化されてるかどうかを識別する方法を教えてください
0960デフォルトの名無しさん2007/01/29(月) 11:24:58
IsIconicつーAPIはある
0961デフォルトの名無しさん2007/01/29(月) 14:48:10
自分で作ったクラスに、__propertyとか使いますか?
使わない方がいいんですか?
0962デフォルトの名無しさん2007/01/29(月) 17:07:07
Borlander(コアなBorlandファン)なら使うべきじゃない?
Delphi使いは、普通につかってるよ。
0963デフォルトの名無しさん2007/01/29(月) 21:43:35
__closure愛用してるから__propertyも平気で使ってる。
0964デフォルトの名無しさん2007/01/29(月) 22:39:53
いままでVB6使ってたんだけど、このままじゃだめだなと思い
C++Builder6を買いました。
初心者にお勧めのサイトを教えてください。m(_ _)m
0965デフォルトの名無しさん2007/01/30(火) 06:15:46
>>964
薄い方のマニュアルを、最初から順番にやっていくといいよ。
これが一番わかりやすかった。
0966デフォルトの名無しさん2007/01/30(火) 11:18:18
>>964
イベントハンドラにだらだらと実装書くのはやめましょう
0967デフォルトの名無しさん2007/01/30(火) 19:50:57
>>966
じゃあどうすれば?
0968デフォルトの名無しさん2007/01/30(火) 22:10:25
データ操作処理とGUI処理はキッチリ分けた方が管理し易い。
必要な情報だけコントロールから取り出して、本処理は
別のルーチンに整理するのが吉。

つーか最近、保守契約が切れた外注のプログラムをデバッグする機会が
あったんだが、ソースをのぞいたら不可視のコントロールを変数代わりに
使ってて死ぬほどウザかった。
リストビューをコレクション代わりに使ってたり。
職業プログラマってこんなもんなのか?
0969デフォルトの名無しさん2007/01/30(火) 22:13:25
そんなもん
ほんとにコード書ける奴は一握り
0970デフォルトの名無しさん2007/01/31(水) 00:23:39
ビューとモデルをごっちゃにする人はいるね、たまに。
そんな人ばっかりではないけど。

普通は、しないんだから。
0971デフォルトの名無しさん2007/01/31(水) 00:34:21
まあ、DelphiやBCBやVBやVC#やその他ポトペタ開発環境の多くが、
ビューとモデル、果てはデータまでいっしょくたに書けちゃうしなあ
0972デフォルトの名無しさん2007/01/31(水) 00:36:25
>>971
分離するためのデータモジュールとTAction〜コンポーネント
0973デフォルトの名無しさん2007/01/31(水) 05:34:04
クリップボードのデータ持ってくるのにTEditやTRichEdit使っちゃうのはダメですか
0974デフォルトの名無しさん2007/01/31(水) 06:18:33
Clipbrd をusesに加えて、Clipboard.AsTextで取得・設定
09759742007/01/31(水) 06:19:16
Delphiスレと勘違いしてた。スマソ
0976デフォルトの名無しさん2007/01/31(水) 07:03:39
>>975
ま、似たようなもんです。
Clipboard(void) で TClipboardオブジェクトを取得して操作、が
普通だよね。
0977デフォルトの名無しさん2007/01/31(水) 10:54:17
VCLフォームアプリケーション(Cソース含む)を作っているの
ですが、実行時にブレークできません。
ブレークポイント設定はしているのですが、何故か赤丸の中に
バツがあるアイコンが出ます。
ヘルプではコメント,空白行,不正な宣言位置への設定だと書か
れていますが、そのような行への設定ではないのですが。。

ブレークポイント設定できない理由をご存知の方、いらっしゃいますか?
0978デフォルトの名無しさん2007/01/31(水) 11:17:17
>>977
バージョンくらいかけぼけが
ぷろじぇくとおぷしょんこんぱいら
0979デフォルトの名無しさん2007/01/31(水) 11:41:41
>>978
プロジェクト→オプションを見ましたが、バージョン情報
載ってないです。

ヘルプ→バージョン情報は以下でした。
Borland(R) C++Builder(R) for Microsoft(R) WindowsTM
Version 10.0.2288.42451 Update 2
Copyright (C) 2005 BorlandR Software Corporation.
All Rights Reserved.
0980デフォルトの名無しさん2007/01/31(水) 11:53:31
>>977
そのソース内、どこでもブレークきかない?
0981デフォルトの名無しさん2007/01/31(水) 11:55:59
リリースビルドなだけじゃねーの
0982デフォルトの名無しさん2007/01/31(水) 11:58:51
>>980
はい、どこでもダメです。C++,Cどちらにはってもブレークしてくれません。
>>981
ビルド設定はデバッグ・ビルドになっています。
0983デフォルトの名無しさん2007/01/31(水) 23:34:20
フォルダの中に、いくつのファイルがあるか知りたいんですが、
FindFirst,FindNextで、数えていくのがよいのでしょうか。
0984デフォルトの名無しさん2007/01/31(水) 23:35:50
>>983
FileListBox 使うと楽だったりする。
0985デフォルトの名無しさん2007/02/01(木) 02:47:44
ごめん、どこっていうのも恥ずかしいところでした。

D言語のリファレンス訳書いている人んところですね。
0986デフォルトの名無しさん2007/02/01(木) 02:48:16
>>985
誤爆 orz
0987デフォルトの名無しさん2007/02/01(木) 06:14:26
>>984
FileListBox使ったこと無いですが勉強します。
レスありがとうございました。
0988デフォルトの名無しさん2007/02/01(木) 10:36:51
>>987
>>968

てか個数数えるだけならFindNextのループでカウントとるだけな気が‥‥

const AnsiString dir = "C:\";
TSerchRec find_data;
std::vector<TSerchRec> files;
if(FindFirst(dir, faAnyFile, &find_data) == 0)
{
 do
 {
  files.push_back(find_data);
 } while(FindNext(&find_data) == 0)
}

ShowMessage(AnsiString().sprintf("%s内のディレクトリを含むファイルの数は%d個", dir, files.size()));

ファイル名とか取る必要ないならvector使わずにカウンタでインクリメントしてけばいいだけ
0989デフォルトの名無しさん2007/02/02(金) 05:24:18
中古のbuilder6買ったばかりなんですが、
「Linuxとのクロスプラットフォーム開発を実現する、
CLX(Component Library for Cross platform)のWindows版も収録。」
っていうのは、どういうことなんでしょうか?

・CLXを使って書いたコードを、builder6でコンパイルしてできた実行ファイル

・CLXのライブラリを使えるようにしたlinuxのパソコンに
コードを持ってきて、それをコンパイルした実行ファイル

が同じ動きするということでしょうか?
linuxのビジュアル開発ができるんだったらすごいです。
0990デフォルトの名無しさん2007/02/02(金) 09:39:41
>>989
後者。
Kylix(Linux用Delphi/BCB)でビルドすればLinux上で動作可能。

まあ、現実にはPCの性能が上がったこともあってJava使った方gゲフンゲフン
0991デフォルトの名無しさん2007/02/02(金) 12:12:40
>>990
レスありがとうございます。
Kylix Open Edition2ベクターから、ゲットしました。

ユーザー登録しないといけないみたいですが、
試用許諾コードってもう入手できないでしょうか。

インストール解説してるページ見つけて、
”このページからアンケートなどに答えて取得して”ということで飛ぶと、
HP見てももうサポートしてないってページが表示されます。

ふんむー。
0992デフォルトの名無しさん2007/02/02(金) 13:28:40
>>989
それ以前に、Borland製品の場合、規約で中古ではいかなるライセンスも認めていないから、
商用はもちろん、フリーウェア配布にも使えないよそれ。
0993デフォルトの名無しさん2007/02/02(金) 14:05:33
ナ、ナンダッテー
0994デフォルトの名無しさん2007/02/02(金) 14:12:10
>[Linker Error] Unresolved external '__fastcall Outline::TCustomOutline::~TCustomOutline()' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\BCBSMP.LIB|.\cdiroutl.cpp

コンポーネントのインストールでエラーでます。
再インストールしてもこのエラー消えませんが、どうしたら良いですか?
0995デフォルトの名無しさん2007/02/02(金) 15:16:09
TListViewで行の挿入方法を教えてください
0996デフォルトの名無しさん2007/02/02(金) 20:02:57
>>992
そんなの言わなければばれないよ
0997デフォルトの名無しさん2007/02/02(金) 21:24:41
>995
Item = ListView1->Items->Insert(n);
単に追加ならAddで。
0998デフォルトの名無しさん2007/02/02(金) 23:37:44
>>992
シッーーーーー!!!
0999デフォルトの名無しさん2007/02/03(土) 00:26:29
へ?

とかいう間に>>999ゲット
1000デフォルトの名無しさん2007/02/03(土) 00:27:10
>>1000なら、
>>989は、製品版の新品を買うこと。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。