C++Builder相談室 Part4

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-4あたり。
22ズサー:02/10/26 10:36
過去スレ

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/test/read.cgi/tech/1016065855/
33ズサー:02/10/26 10:36
44ズサー:02/10/26 10:40
BCB6/US SP1 は BCB6/JP 製品版に含まれています。
BCB6 SP2 は、
ttp://community.borland.com/cgi-bin/surveys/thanx.cgi?cb6reg_updates_down
でダウンロードできます。日本語ドキュメント内蔵。ただし IDE が部分的に英語に
なってしまいます。

BCB6 SP3 の噂が....
55ズサー:02/10/26 11:42
BCB6 SP2 を UI が化けないようにインストールする仕方。

上記(>>4)からダウンロード。シリアル等は必要なし。必要条件は CBuiler6 がインストール済みであること

SP2 をインストールする前に、bin ディレクトリの以下のファイルの拡張子を .jpn に変更しておく。

bcbide60.bpl -> bcbide60.jpn
coreide60.bpl -> coreide60.jpn

準備完了。BCB6_xxx_Upd2 を実行。

6デフォルトの名無しさん:02/10/26 12:23
    ∧_∧        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |\´ー`)/|  < どれどれ、おもしろそうなスレッドだ・・・
  ○  \/ζ ○   \__________
  |   |旦 |
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
  |                   |

    ∧_∧  ビリーー  / ̄ ̄ ̄ ̄ ̄
  |\ΦДΦ) /| < っざけんな!C++スレ多すぎだろが!
  ○  >  ζ > ○   \_____
  | <   旦 <  |
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
  |                   |
7デフォルトの名無しさん:02/10/26 16:34
↓↓こういうのがSP2では落ちなくなったね。
std::ifstream iff;
int main()
{
static std::ifstream ifs;

}

bcc32.exeが英語版になったのはご愛敬か?まあバグが取れているに
越したことはないけどね。
SP2になって改良された点は他に、STLを含むソースをコンパイルした時、
前バージョンではデバッグ画面がソースに一対一に対応せず、見づらかっ
たが、SP2では良くなっている。

これで、STLがどのように機械語にコンパイルされるのか研究しやすくなっ
た。BCCでSTLを勉強している人は、英語版になってもいいからSP2を当てる
べきだ。
C++Builder7はいつ頃出るのですか?
C++Builderのお部屋(Tips系)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/
C++Builderによるプログラミング(Tips系)
http://market.agr.tottori-u.ac.jp/ken/
Delphian World(コンポーネントライブラリ)
http://home1.infonia.ne.jp/~delphian/delphi/
C++Builder Bugs
http://www2.justnet.ne.jp/~tyche/bcbbugs/index.html
Borland C++Builder最新リンク2001(リンク集)
http://www2.famille.ne.jp/~akio1998/l_cpb.html
http://www.yukibow.com/bcb/index.html
↑もビギナーは使える
12デフォルトの名無しさん:02/10/29 21:53
閑古鳥スレage
13デフォルトの名無しさん:02/10/29 23:34
どなたかdbExpress使ってみたことのある方いらっしゃいますか?
バッファリングがサポートされてないので単方向のみのアクセスしか
できないらしいのですが、やはりInterbase Expressを使うしかない
のでしょうか?
14デフォルトの名無しさん:02/10/30 00:56
13です。
いろいろと参考書を見ていたら(Delphi用のですけど^_^;)TClientDataSetや
TSQLClientDataSetを使うことにより、バッファリングとアップデートが可能
になることがわかってきました。

データベースの使い方に関する資料が少ないので、まだ暗中模索の状態
ですが、データベースが自由自在に使いこなせるようになれば、C++Builder
の使用範囲がずっと広がりそうです。
>>13,14
まず、sage ることを覚えてくれ。

それと、マニュアルは読んだのか?
わかりづらいマニュアルだけど最低限のことはかかれている。
CBuilder-ML に質問投げるなよ。
どうせなら、こっちになげろよ。
175:02/10/30 10:17
BCB6 SP2 による Delphi Direct のダウンロード先を日本のサイトに戻すパッチ

-------- ここから --------
REGEDIT4

[HKEY_CURRENT_USER\Software\Borland\C++Builder\6.0\Direct]
"NewsURL"="http://www.borland.co.jp/cppbuilder/direct/headline.txt"
-------- ここまで --------

185:02/10/30 10:20
現在、コンパイラの日本語化ファイル作成中。
こいつらはファイルコピーではすまないので...

2ch と同程度の匿名性であぷできるところ、誰か教えて。
>>15
マニュアル読んでみたけど・・・・ひえ〜なんじゃこりゃ〜全然わからん。
これってある程度データベースを理解した人が読まないと、内容が
全く理解できないじゃん。

>>17
サンクス。
そりゃ、データベースアプリ開発ツールなんだから。
データベースのことは知っていることが前提。
たとえば SQL とは何か。とか。
>>20
ACCESSは一応簡単なプログラムならVBAで組んでいます。
SQLも理解しています。問題は、馴染みのないコンポーネントと
データベースをいかに結びつけるかということでして。

C+++Builderを使ってデータベースをいじろうと思ったのは、
ACCESSの速度に不満を感じたからでした。

しかし、私の会社の基幹業務は信じられない事にACCESSの
VBAで動いているのです。もちろんVBAなりの良い点はあり
ますが。
>>21
>馴染みのないコンポーネントとデータベースをいかに結びつけるかということでして。

使えるモノは大してVBと差はないだろ。後は勉強するだけだと思われ。
>>22
わかりました。精進します。

C++Builderは入り口は簡素なんですが奥行きが広いですねえ。
>>23
いや、必要最低限のことを覚えればいいと思われ。
VBシリーズがクソなのです。
>>24
VBはコンポーネントという考え方がないですからねえ。
それが分かれているだけだと考えればよいのかもしれません。

VBAは小規模なデータベースを操るには便利だけど、ちょっと規模が
大きくなると遅くて遅くて。インタプリタだから仕方ないけど。
26デフォルトの名無しさん:02/10/30 23:16
遅くなりましたが新スレおめです
えーとBCBで音を録音する、ということはできるのでしょうか
またはそれに該当するコンポーネントは無いでしょうか
Windowsの標準サウンドレコーダーじゃ60秒制限とかあるので・・・
27デフォルトの名無しさん:02/10/30 23:28
最近、思うのです。GUIプログラムつくるのは
簡単・早い BCB=Del<<VB<<VC 面倒・遅い
の順で修正や大幅な変更はVCの方が便利かと思うのだが。
BCBが一番気に入ってるんだけど。
なんせマイナーなんでいつまで先があるのかと…
>>25
> VBはコンポーネントという考え方がないですからねえ。
煽りにしては面白くないし、知識不足だとしたら馬鹿すぎる。
>>28
ただの無知は放置せよ
>>26
MediaPlayerコンポーネント使えば?
>>26
っていうか、録音ソフト探せよ。
325:02/10/31 13:12
作ったぞ。ゴラァ!!

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1036037417&rm=100

何か不具合あったら教えてくれ!
すげー。「コンパイラの日本語化ファイル」だね?手作業?

34 :02/10/31 13:33
SP2だとXPスタイルにしたコンボボックスでバックスペースキーを押すと
全角文字が化け化けな表示になるの直ってますか?
>>32
乙枯様
>>34
VCL 部分は Delphi が直らないと直らないぞ。

その件に関しては、AutoCompletion とかいうなまえのプロパティを False に
すれば OK.
>>32
ありがとう〜
39デフォルトの名無しさん:02/11/02 11:47
実行時パッケージを加えずに
できるだけ小さなEXEを作りたいのですが
なにかいい方法ありますか? 
500kByte以下にしたいです。(50KByteぐらい)

TFormとJpegとTImage使うだけで 500KByte
はちょっと大きい
>>39
MFC でも使ったら?
ObjectWindows(OWL)と言ってみるテスト
42デフォルトの名無しさん:02/11/02 12:39
>>26

2分や5分のウェーブファイルを、あらかじめ用意しておけばいいんじゃないですか。
これらのファイルは、サウンドレコーダで、データの挿入でつくれますよ
EXE圧縮するやつで潰す
4426:02/11/03 02:38
>>30さん >>42さん
レス有り難うございました
検索したらいろいろ出てきたので自分でもがんばって作ってみようと思います
45デフォルトの名無しさん:02/11/04 17:07
TCheckBoxにBS_PUSHLIKEを指定する方法しらない?
直接送ったらただのボタンになってしまった
>TCheckBoxにBS_PUSHLIKEを指定

http://yokohama.cool.ne.jp/chokuto/urawaza/prm/ctl_style.html
外見がボタンになるのが正解。だろ?
4745:02/11/04 19:59
外見だけじゃなくて動作までボタンになってしまう
へこんだままになってくれない
>>47
何がしたいのか目的を書けよ厨房。
TCheckBoxにBS_PUSHLIKEを指定したら、ボタンになって当たり前だろ。
49デフォルトの名無しさん:02/11/04 23:44
>>48
そのままだって。コモンコントロールでいうところのPUSHLIKEな
CHECKBOXにしたいのに、その無茶をすると
ただのPUSHBUTTONでのトグルになってしまう
(つまりTCheckBoxは単純にコモンコントロールを実装しただけではない)
プロパティには見つけられなかったがあるならそれでいいし、とにかく
その辺りを知っているなら教えてくれってことだ。(TCheckBoxではそもそも無理とか)
どうやらあなたはあまり詳しくないようだね
他の人よろしく
50:02/11/05 00:47
 BCB5で質問です。
 メディアプレーヤーコンポーネントでmp3とwavを同時に再生させるプログラムを作りました。
 これをXPのマシンで走らせると途中で暴走してしまいます。
 mp3の再生に問題があるみたいです。
 すいません、アドバイスいただけませんでしょうか。
 ∫,,,,,,,,,∧,,∧  
⊂,,,,,,,,,つ,,-д-ミつ

Win32 API by Object Pascal of Delphi
http://halbow.cool.ne.jp/ShousaiIndex.html

これみたら、いいかも。
52デフォルトの名無しさん:02/11/05 10:46
CBuilder5でSSL通信するコンポーネントってありますか?

APIベースで作るのがあたりまえなのかな?

すいませんがよろしくおながいします。
>>52
Indy
https でいいのなら WinInet.
口が悪いやつには教えたくないんだな
つーことで、borland の news に投稿。
57デフォルトの名無しさん:02/11/07 02:57
タスクトレイに常駐し(Windowは不可視)waveファイル等を
演奏するソフトを作成しました。
で、この自作ソフトに他のexeから何か信号を送って
ファイルの演奏や中止を操作したいのですが、
どうすればよいでしょうか?
タスクトレイのアイコンのハンドルをどうにか取得して
SendMessageやPostMessageあたりでどうにかなりそうなのかな?
というところまではたどり着いたのですが、そこから先がお手上げ状態です。
この考えは正しいでしょうか?
現在は、以下のようなソースになっているのでメッセージマップに
WM_PLAYとかWM_STOPとかを作って、それに対応した処理を書けば
良いのかな?と思っています。何かヒントだけでもお願いします。m(_ _)m

//ヘッダーファイルの一部
public:// ユーザー宣言
  void __fastcall TrayEvent(TMessage& Msg);
  BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_USER+1, TMessage, TrayEvent);
  END_MESSAGE_MAP(TForm)

//.cppファイルの一部
void __fastcall TFormMain::TrayEvent(TMessage& Msg)
{
  switch(Msg.LParam){
    case WM_RBUTTONDOWN:
    POINT P;
    GetCursorPos(&P);
    SetForegroundWindow(Handle);
    PopMenuIcon->Popup(P.x, P.y);
    break;
  }
}
正しいです。
5957:02/11/07 03:32
>>58
うぉーー!!!
ありがとう、これでまたやる気になってきたぞと。

たぶん、FindWindow(EX)関数を使うんですよね?
とりあえず、ガンガッテみます!!!
60 :02/11/07 11:17
今時Builder5なんだけど、イメージコントロール等を使って
二枚の画像を重ね合わせて表示させることって可能ですかいのう?
可能です。
62 :02/11/07 13:20
>61
ありがとう。やってみるにょ。
>>61の回答でいいんだったら、質問する前に試せよ・・・。
64 :02/11/07 13:31
ど素人だったのか・・・・?
65デフォルトの名無しさん:02/11/10 11:38
TTreeView で、 item が選択されるとの文字の背景が青くなり選択状態に
なりますが、フォーム内の他のコントロール(例えば TListView)に
フォーカスを合わすとその青い背景が見えなくなり、
どの item が選択されているのか分からなくなってしまいます。
SelectedIndex でイメージを変えるのも手ですが、
Explorer のように背景を灰色とかにできるのがベストなのですが、
どういった方法がありますか?
66ヒントだけやる:02/11/10 12:06
ヘルプでTreeViewをひけば10番め以内にある
67ほんとだ:02/11/10 12:25
すみません。見逃してました…
ヒントというよりほとんど答えだな
しかし、StringGridなどはどうしてこんな変なスクロールバーなのだろうか・・・。
あえて特殊にする必要ないような気が。
70デフォルトの名無しさん:02/11/12 12:03
BCB6で起動時に開くプロジェクトの設定はできないのでしょうか?
ショートカットを編集すれば?
昔はコマンドラインからプロジェクトファイルをビルドできたんだけど、
今のやつって無理なの?xml→makefile変換が面倒なんだけど。
>>71
最後に開いたプロジェクトをまた開いて欲しいな、と思ってるのでそれでは。
普通の統合環境ならこれくらいできるのだけどなぁ・・・。
[ツール]-[環境オプション]-[設定]-[自動保存の設定]-[プロジェクト デスクトップ]
>>73
最後に開いたプロジェクトが開いて欲しくない人もいる。ってことだけでしょ。
>>74
うまくいきました。ありがとうございます。

>>75
意味不明だよ。それくらい選択できるのが普通だってこと。
まぁ、Borlandの開発環境のUIがいまいちなのは伝統だからな。。。
78デフォルトの名無しさん:02/11/15 10:48
>>77
VCよりはマシだと思われ。
罵りあいは止めよう。
罵倒レスは無視。
80デフォルトの名無しさん:02/11/15 13:50
失礼します。
クリックした位置にグラフィックを表示したいんですが、
なんのコントロールを使ったらいいのでしょう?

要はクライアント領域を作成すればいいのでしょうが
TMemoやTRichEditでは蔵違いだと思うので・・・

当方Builder6です。
どうかよろしくお願いいたします。
質問の意味を理解しかねます
>>80
なにかこう、既存のアプリで似たようなことをしている物を紹介してくれると
質問の意図に気づきやすいんだけど。
8380:02/11/15 18:37
>>81-82
レスありがとうございます。

例えば、オセロのように
クリックしたところに石を置くような動作を実現したいのです。
どのオブジェクトを使ってもうまくいかなくて・・・(´Д⊂

どうかよろしくお願いいたします
グリッドでいいのなら TGrid と OwnerDraw.
DrawGridがいいかもな。
8680:02/11/15 21:12
>>84
>>85
ありがとうございます(´ー`)ノ

さっそく使ってみましたが、これでなんとかなりそうです。
まだ分かりませんが・・・

困ったことにヘルプを見てTGridなどの使い方を調べてみましたが
載っていません・(ノД`)ノ・゚・
また、DrawGridは「Additional」の欄に見つかりましたが
TGrid, OwnerDrawは探してもありませんでした。

何から何まですみません・・・
調べようにもヘルプにないのでどうしようもありませんでした・・・
87デフォルトの名無しさん:02/11/15 21:58
画像を読み込んで表示させたいときウィンドウまたは、Imageの大きさを変えたいのだが、
プロパティのWidth,Heightをいじってもうまくいかんことがある。どうしたらいいのですか?
>>87
stretchとか何とかいうメソッドがあったと思う。
89デフォルトの名無しさん:02/11/16 00:37
>>86
漏れも探してみたがヘルプにないな・・・
分からないときは鬱になるな。どこで調べればいいんだろう??
          _________
   ∧,,∧   / パレットアイコソをクリックした状態でF1お
  ミ,,゚Д゚彡<  押したり、TDrawGridで
   ミ つI)  \ 検索したりを、どぞです。
 〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ 

そもそも、グラフィックを全部自分で描画してはどうなのでしょうか?
まさか、参考になるとは思わないですが、

Delphiでライフゲーム
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1022733594&rm=100

Pascalを読むのはアレだと思いますが
TPaingBoxの使い方だけはわかるかと。

>>87
Inseder.NET DelphiプログラミングTips?? ウィンドウに画像を表示する
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1001489683&res=10&fi=no
中身簡単だから、FormResizeのStratchDrawだけ見るよろし。
C#コードもあるので、何か参考に。
TImageを動的に作成して、マウス位置に貼り付けるってのでも
良いのではないでしょうか?
なんとなくそっちの方が手軽な気がするんだけど、そうでもないのかな?
interbaseを使用しています。interbaseコンポーネントを使用してデータベースと
繋いでみたのですが、どうも日本語を認識してくれないようでエラーが出ます。
TIBDatabaseでは文字セットをSJIS_0208に設定してます。
そいつを継承したTIBTableを開こうとするとそのテーブルの中身に日本語が入って
いるため、例外が出ます。
TIBTableのどこかに文字コードを設定してやらないといかんのか?と思っていろいろ
調べましたが全然わかりません。
どなたか教えて下さい。よろしくお願いします。
9392:02/11/16 02:37
凡ミスだった。
interbaseの項目、よく見たらcharsetしてなかった。
スンマソン・・・。回線切って逝ってくる・・・。
94デフォルトの名無しさん:02/11/16 12:20
ファイルに通し番号をつけて保存したいのですが、
 SaveToFile((SaveDialog->FileName) + i);
とすると、拡張子の後に番号がつけられてしまいます。
 [ファイル名][番号].[拡張子]
とするにはどうしたらいいでしょうか?
あと出来れば、
 000,001,002,・・・,100
といった感じに桁数に応じた0を頭に付けられるとうれしいです。
ChangeFileExt(FileName, "")で拡張子無しのファイル名が、
ExtractFileExt(FileName)で拡張子が得られるので、
iを挟んでくっつければいいです。

上記手段は、二つの関数に別れているため、'.'の検索が二度手間で、
効率を気にするなら、自前で'.'を検索して、挿入した方がいいのでしょうが、
ファイルのセーブというより重い処理のついでなので、気にすることはないでしょ。
9694:02/11/16 13:25
>>95
即レス感謝です。おかげでできました。
ありがとうございます。
BCB5Proを使ってるんですが、
BDEをインストールさせずにADOを叩くことはできないんでしょうか?
 ミ,,゚Д゚彡 ここみると、ADOExpressはBCB5はEnt版だけです
http://www.borland.co.jp/cppbuilder/cb5/cb5feaben/cb5fb15.html
http://www.borland.co.jp/cppbuilder/cb5/cb5feature/cb5feature_comp.html

BCB6ならProでも出来るようでつよ。
http://www.borland.co.jp/cppbuilder/cb6/features.html
>>97

con = CreateOleObject("ADODB.Connection");
rset = CreateOleObject("ADODB.Recordset");

とかで逝ける・・・という妄想をしてみましたが
実際どうなんでしょうか?>識者の方々
100デフォルトの名無しさん:02/11/18 17:51
VCとBCBを区別するプリプロセッサ定義はないですか?
定義済みマクロ
>>100
VCは持ってないので知らんが、BCBなら __BORLANDC__ が定義される。
103デフォルトの名無しさん:02/11/18 21:15
CB5で同一ファイルの末尾を削除するにはどうしたら良いのでしょうか。
下記の方法ではサイズが元のままで減りませんでした。
APIとかを使った方が良いのでしょうか?

方法1.
fmOpenReadWriteでFileOpen→FileRead→データサイズ減→FileSeek(hdl,0,0)→FileWrite→FileClose

方法2.
fmOpenReadでFileOpen→FileRead→FileClose
→データサイズ減
fmOpenWriteでFileOpen→FileWrite→FileClose
>>103
chsize()
>>97
やった事無いけど、タイプライブラリの取り込みで
どうにかなるんじゃないの?
106デフォルトの名無しさん:02/11/19 12:02
>>104
ありがとうございます。

open()のO_TRUNCとか効果ないみたいですが、なんとか出来そうですね。
落ち着いて考えると、DeleteFileなんかと組み合わせればよかったのかな
>>97
ADOExpressを買うという手もあります。
>>106
例えば次のような例になります。FILEからfileno()でhandleを取得した場合、
fflush()を併用してもfclose()で切りつめたファイルが戻ってしまい、うまく
いかなかったです。

int main()
{
FILE *fo;
int handle;

if ((fo = fopen("test.txt", "w")) == NULL) exit(1);
fputs("1234567890", fo);
fclose(fo);

if ((handle = open("test.txt", O_RDWR | O_TEXT)) == -1) exit(1);
printf("ret code = %d\n", chsize(handle, 5));
close(handle);

return 0;
}
カットシステム刊のC++Builder6 コンポーネント活用ガイド&実践プログラミング
をVol1、Vol2と2巻続きで買ってきた。(\4,600 + \3,000ナリ。)

いやー予想以上に誤植がひどいですね。ある程度C++Builderの事をわかって
読まないと騙されます。

今までDelphiの入門書を読破してきたが、C++Builder用の書籍とだけあって、
BCBに特化した内容がないかと期待したが、そうでもなかった。まあいいか・・・・
Delphi用の書籍を読んで頭が痛くなる人にはいいかもしれない。
>>109
その感想では誰も買わないと思われ
>>110
だって俺は出版社の回し者じゃないから、正直な感想を書きたいのでちゅ。

Delphiをマスターしている人は今更C++Builderの入門書なんか買わんだろうし、
俺自身ちょっと買って後悔しているので。

Vol.1の方ははっきし言って俺には”いらん”かったが、Vol.2の方はなかなか
面白い内容かもしれない。
今まで買ったVCL関連の書籍の中で一番役に立っているものは、
ASCII刊のBorland Delphi6 オフィシャルコースウェア基礎編+応用編
です。

Object PascalをC++に移植する腕もこれで鍛えられた。
>>111
本人が後悔してるなら仕方ないね。
BCB関係で良い本ってないらしいからねぇ。
2,3冊買ったけど、どれも良くもなく悪くもなく。ユーザー数少ないからかなぁ。
115デフォルトの名無しさん:02/11/19 20:42
たしかに良い本は全くない。
だから、ANSI/ISO標準に対応した本を買うしかない。
評判の良い本だと言うのを買ってもダメダメなものばかり・・・。

ボーランドのユーザーが減っていくのは
初心者が使えるように解説した本がないというのが原因だと思う。
友人が買ってしまって教えるのに苦労しています。


解説サイトでもあればいいんだけど、ちょうどいいのがない。
一人で作るのも大変と言うことで
それぞれが解説をアップするサイトでも作るのはどうでしょう。
116デフォルトの名無しさん:02/11/19 20:44
暇なときにでも解説を書いて
1つのサイトにアップしていけば結構いいと思う。
分散させるとどこにあるかわからなくなるし。

どうしてもVC++やらVS.NETの本が多いからなぁ。

VS.NETとC++Builder,両方持ってる人います?
いたらどのように使い分けてますか?
(俺もなぜか,両方持ってるんだけど)
VS.NET・・・・・仕事用
C++Builer・・・・・趣味用
しまったC++Builderね。
RAD・・・・・初心者用
C++・・・・・中級クラス以上用

のような棲み分けがあるので、初心者がC++Builderに手を出すとC++で
つまずく。中級者以上がC++Builderを使うとVC.NETでいいかと思ってしまう。

ニーズが少ないんだろうね。仕事はあまりないし(Delphiの方が多い)、趣味
でちょこちょこっといじるには重すぎる。濃い内容を持っていながら、使う人
の層が限られているみたい。
C++Builder - ツール。クラスのプロトタイピング、テスト。
VC++ - 本体。

複数人でやる仕事は、C++Builder を使える人が少ないので、
どうしても VC++ になる。
ツールとか、組み込む前のライブラリとか、一人でやって問題ないものは
C++Builder でやる。そっちのが効率がいい。
カンマ編集CSVをそのままBDEで扱うにはどうしたらいいんでしょう?
普通にTQueryでSQL切ってオープンしたら、1行がカンマごと1つのフィールドになっちゃうんですが…
C++Builder便利なのになぁ。Borlandやる気なさそうだし仕方ないか。
>やる気なさそうだし
そう?

ところで CBuilder6 IDE のバグ、知っているのあったら教えて。
Update2 で直っていないやつがいいなぁ。
125デフォルトの名無しさん:02/11/20 15:48
VCで作ったスタティックライブラリをリンクする事はできますか?
>>125
無理
>>124
アップデータ出てたっけ?
日本語版のアップデータが全然でないしね。
やっぱ、BCBは対応悪いよ。
ん?Update2 あてればいいじゃん。
なんでわざわざ「日本版」をまつの?
会社で使ってるものに余計なことは出来ないから。
オフィシャルに英語版のアップデートを当てろという話があれば別だが。
オフィシャルに Kylix3 Open/日本語版がでないように
オフィシャルに Delphi7 Trial/日本語版がでないように

オフィシャルに BCB6 アップデートの日本語版は出なくなったのさ。

だけど全部本国のサーバーに存在する。
いつまで笹塚に期待する気でいるんだ?あいつらは俺たちのことはもう忘れてる。
132WPO:02/11/21 12:33
ftp://ftp.borland.com/pub/bcppbuilder/devsupport/patches/bcpp6/BCB6_STD_Upd_3.exe

ftp://ftp.borland.com/pub/bcppbuilder/devsupport/patches/bcpp6/BCB6_PRO_Upd_3.exe

ftp://ftp.borland.com/pub/bcppbuilder/devsupport/patches/bcpp6/BCB6_ENT_Upd_3.exe

日本語版の対応が悪いはどうしようもないな。
趣味で使う分には便利だから使ってやってたけど
今度からはVSに変えることを心に決めました。

なんでなんだよ?
やる気がなくなったのか?
133デフォルトの名無しさん:02/11/21 12:42
おおっ、UPDATA3だ。
>>132 サンクス

まあ、確かにあいつら最悪だな。
俺も乗り換えようかな。
>>なんでなんだよ?
>>やる気がなくなったのか?

ユーザーがバカばっかりだから日本に市場は無いと思ったんだろ。
んで、今度は何が直った?
とりあえず、
>>4 >>5 の方法で日本語 UI のまま動くことを確認しました。
既に .JPN ファイルを作っている人はそのまま Update3 を適用可能。

>>17 は必用なし。

コンパイラの文字列リソースが変更されている模様。
>>32 の BCC32.jpn は削除してください。改訂版は... 1日もらえる?

p.s. 今回は日本語ドキュメントが入っていませんね。方針が代わったのでしょうか。
おまえら日本語ごときにぐちぐちうるせーな。
そんなに嫌ならBorland商品なんか使うなよ。
>>137
それを英語で書けたらみんな黙って従うよ。
omaera Japanese gotokidegutigutiuruse-YO
sonnnani iyanara Borland syo-hin nankatukaunaYO
140デフォルトの名無しさん:02/11/21 16:15
クラス名(例:Onigiriクラス)が
COnigiriの場合は、普通のクラス
IOnigiriの場合は、インターフェースクラス

みたいなプリフィックスありますが、
オリジナル(?)で

TOnigiri ・・・ テンプレートクラス。内部の型を設定して使う。
BOnigiri ・・・ 継承して使う用(Base)。ウインドウ(コールバック部分)やスレッドクラスみたいなやつ

みたいな感じで
勝手にやっていいのでしょうか?
もし、開発チーム内でこんなことされたら勘弁と思う人とか居ます?

あと、
構造体名の場合は、SOnigiriでいいのでしょうか?
何かプリフィックすあったら教えてください。
141140:02/11/21 16:20
うええ
間違って、投稿しちゃいました。
C++相談室に行ってきます。

ここだと、
TOnigiri使うと怒られそう。
142136:02/11/21 16:55
ねぇ。132 さんはどうやってこのファイルの存在を知ったの?
まだどこにも記事が出てないんだけど...

それに「フィールドテスター」に対するライセンス文書も入っているし。
確かに Update3 なんだけど、ちょっと怪しい...
不思議な情報がいっぱい
   ∧,,∧   2タンはそいう場所なんでは?
  ,ミ ゚Д゚彡 
  ミ  ∪  
144WPO:02/11/21 18:09
>>142
たまたま。(~・~)

ボーランドはFTPサイトがいろいろあるんだよ。

145136:02/11/21 18:31
そうだね。まぁいいや。
Kylix3/Open のコンパイラのメッセージカタログが流用できそうなので、コンパイラメッセージの
日本語化は今晩か、明日にはどうにかなりそう。

コンパイラのバージョンが、5.6.2 にあがっていますね。
146デフォルトの名無しさん:02/11/21 19:13
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< きりくすきりくす!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< きりくすきりくすきりくす!
 ;きりくす〜〜〜!   >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」
               ̄     / /
俺もDelphiに乗り換えるかなぁ。vs.netは重いし。
148デフォルトの名無しさん:02/11/22 01:06
Updateが出ていないことについて、ボーランドに質問したよ
おまいらもここにメール送れ

[email protected]
VBのLikeに相当する処理をBCBで行いたいのですが、代替となるものはあるのでしょうか?
正規表現を一から勉強して作るのは時間がかかりすぎるし……
>>148
もし、まんがいち、返事がきたら転載よろしゅう。
151デフォルトの名無しさん:02/11/22 03:33
>>149
こんなのか(前半)
#define S1H(x) ((0x81 <= ((x) & 0xff)) && (((x) & 0xff) <= 0x9f))
#define S2H(x) ((0xe0 <= ((x) & 0xff)) && (((x) & 0xff) <= 0xef))
#define SH(x) (S1H(x) || S2H(x))
#define SL(x) ((0x40 <= ((x) & 0xff) <= 0xfc) && (((x) & 0xff) != 0x7f))
#define SP(p) (SH((p)[0]) && SL((p)[1]))
#define INC(p) ((*(p)) ? (SP(p) ? 2 : 1) : 0)

152デフォルトの名無しさん:02/11/22 03:34
後半:
bool like(const char *p, const char *s) {
 for (;;) {
  switch (*p) {
  case '\0':
   if (*s == '\0') return true;
   else return false;
  case '%':
   p++;
   for (;;) {
    if (like(p, s)) return true;
    if (*s == '\0') return false;
    else s += INC(s);
   }
  default:
   if (SP(p)) {
    if (p[0] != s[0]) return false;
    if (p[1] != s[1]) return false;
   } else {
    if (*p != *s) return false;
   }
   p += INC(p);
   s += INC(s);
  }
 }
}
153デフォルトの名無しさん:02/11/22 03:49
>>149
DelphiにMatchesMaskてのがあるから、dllにでもして(゚∀゚)アヒャ



それともBCB6に実装されてる?>持ってる人
BCB5には無いよ。
154デフォルトの名無しさん:02/11/22 03:51
Masks漢字とか対応してる?ってか
それ以前に真中とか先頭に*来るとちゃんと動かないよーな。
155デフォルトの名無しさん:02/11/22 03:59
正直Likeは便利すぎ。

結構厄介かもな。
>>153
BCB6にはあるようだね。masks.hppに。

正規表現で良ければ、boostのRegex++使うとかってのはどう。
157149:02/11/22 05:58
皆さんありがとうございます。

BCBの5なので無いです……Delphiもありません。

ハァ……
158デフォルトの名無しさん:02/11/22 06:09
Likeと同じ動作に拘るならMatchesMaskをさらにカヴァーして使うしかない。
(ただしバグがあったような? 要確認)

正規表現ならば>>156氏紹介のRegex++を。
include\PCRE.H は?
wchar でコンパイルすれば、そのまま使えるでしょ。
160148:02/11/22 17:19
以外と早く返事来た

日本語版C++Builder 6 はアップデート#1は適用されております。
アップデート#2、#3につきましては現在、公開準備を進めており
ます。今しばらくお待ちくださいますようお願い申し上げます。

ということだそうです。
>現在、公開準備を進めております。
何ヶ月放置してるんだよ..

JBuilder7 Update3 が3ヶ月遅れで公開されたことを考えると、Update#3 は来年頭か..
お盆前にもそんなような返事貰った記憶があるな。
163質問です:02/11/23 17:00
Printer()->Canvas->CopyRect(rect, PaintBox->Canvas, rect);
上のようにPaintBoxの描画内容を印刷しようとしたのですが、できませんでした。
TBitmapを使わずに、領域を直接コピーして印刷できないのでしょうか?
どなたか解決法を伝授願います。OSは2000、Versionは5proです。
BeginDoc()EndDoc()
165163:02/11/23 18:39
>>164
レスありがとうございます。
その命令の中に書いてあるのですが、印刷できません。
 ミ,,゚Д゚ミつ
D5の時点で2バイト文字にバグありです。>>158さん
その後治ったかどうかしらないけど、
どうせ治ってないんじゃないかな
(日本技術部ないし。)

この辺をみれば修正方法がのっているのですが
[Delphi:50700] Re: 文字列比較のワイルドカード文字
[Delphi:53856] Re: MatchesMask 関数でメモリーリーク
[Delphi:53862] Re:MatchesMask は 2 バイト文字非対応ですか?
[Delphi:53879] Re: MatchesMask は 2 バイト文字非対応ですか?

当然VCLのソースがいるんですな。
バグがちゃんと某から修正されていてその情報が
すぐに確認できればいいのにね。

どこか内緒の匿名でupりましょうか?
167デフォルトの名無しさん:02/11/24 00:07
僕のビルダーver.1なんだけど、
何とかヴァージョン6にグレードアップできないかな?
168デフォルトの名無しさん:02/11/24 00:46
>>166
50行程度の関数だから代わりを使うだけ。
>>151
のソースの%を*に変えてしまい、
?と[]の処理を追加すればいっちょあがり。
[]なしなら今手元にある。
>>163
TFrom->Print()じゃダメなん?
170149:02/11/24 04:49
重ね重ねありがとうございます。
まずDelphiかBCB6の購入を上申してみます。

あと、>>168さんのソースが気になる……
171デフォルトの名無しさん:02/11/24 06:43
>>170
bool wmatch(const char *p, const char *s) {
 for (;;) {
  switch (*p) {
  case '\0':
   if (*s == '\0') return true;
   else return false;
  case '*':
   p++;
   for (;;) {
    if (wmatch(p, s)) return true;
    if (*s == '\0') return false;
    else s += INC(s);
   }
  case '?':
   p++;
   s += INC(s);
   break;
  default:
   if (SP(p)) {
    if (p[0] != s[0]) return false;
    if (p[1] != s[1]) return false;
   } else {
    if (*p != *s) return false;
   }
   p += INC(p);
   s += INC(s);
  }
 }
}
>>167
6を買えばバージョンアップできるよ。
CLXコンポーネントのTTextBrowserを使って表示したリンクを初めてクリックした時、
テキスト(TTextBrowser->Text.Length() が 0になる)が消えるのは仕様でしょうか?
今のところ、初めてのリンククリックの時のみデータをリロードして誤魔化してますが
非効率極まりなくて泣けてきます。
174超初心者:02/11/24 15:32
あまりにも初歩的な質問ですみません。
コンパイルの方法を教えてください。
BCC32を実行はできますが、そこからのファイルのコンパイル方法が
どうしてもわかりません。どうすればよろしいですか?
よろしくお願いします。
175173:02/11/24 15:49
あ、ソース上げるの忘れてました。
コンストラクタでm_isEverLinkClicked = m_isEverLinkBug = false;としています。

void __fastcall TChatForm::TextBrowserClick(TObject *Sender)
{
if(m_URL.Length() != 0){
#ifdef _WIN32
AnsiString url = m_URL;
::ShellExecute(NULL,NULL,url.c_str(),NULL,NULL,SW_SHOWNORMAL);
#else
(略)
#endif
m_isEverLinkClicked = true;
}
}

void __fastcall TChatForm::TextBrowserTextChanged(TObject *Sender)
{
// Bug:Component
// 内容:TTextBrowserのリンクを初めてクリックした時、テキストが消える
// 対策:再度テキストをロードする
if(m_isEverLinkClicked && m_isEverLinkBug == false){
if(TextBrowser->Text.Length() == 0){
m_SendTextStream->Seek(0,soFromBeginning);
TextBrowser->LoadFromStream(m_SendTextStream);
}
m_isEverLinkBug = true;
}
}
>174はC++Builderじゃなくてこっちかな?
http://www.borland.co.jp/cppbuilder/freecompiler/devsupport.html
いずれにしろ、MS-DOS/コマンドプロンプトの使い方はスレ違い&板違いだけど。

でも、"BCB"って入力してないだけかも。
177デフォルトの名無しさん:02/11/26 15:02
C++Builderで、ボタンを押すとホームページを表示させることはできますか?
ちなみに、C++Builder5ラーニングバージョンです。
いくらでも方法はあるんだけど。
179デフォルトの名無しさん:02/11/26 15:26
インターネットエクスプローラを起動させることはできますかね。
できるよ。
ShellExecute(0, NULL, "http://hoge.net/hoge.html",NULL,NULL, 0);
WinAPIだけど。
182デフォルトの名無しさん:02/11/26 15:39
方法など教えてもらえませんか?
よろしくお願いします。
183デフォルトの名無しさん:02/11/26 15:41
かぶっちゃいました。ごめんチャイ。
184デフォルトの名無しさん:02/11/26 15:55
開くことができました。ありがとうございます。
185デフォルトの名無しさん:02/11/26 15:59
先ほどのページを開くもので、
String s = "http://www.yahoo.co.jp";
ShellExecute(0, NULL,s,NULL,NULL, 0);
としたところ、
'AnsiString' 型は 'const char *' 型に変換できない
と出ました。どのようにしたらよろしいでしょうか?
186デフォルトの名無しさん:02/11/26 16:17
みのもん
ShellExecute(0, NULL,s.c_str(),NULL,NULL, 0);
>>185
ヘルプくらい嫁
ありがとうございます。できました。
改行がCRLFのテキストファイルから1行ずつ読み込みたい(長さは一定ではない)のだがVCLさんにそんなやつないですか?
>>190
TStringList.LoadFromFile
>>191
なるほどw ありがとれす

AnsiString fName=ExtractFilePath(Application->ExeName)+"dummy.txt";
AnsiString dt;
TStringList *sl= new TStringList();

sl->LoadFromFile(fName);

dt=sl->Strings[0]; //1行目

ShowMessage(dt);

sl->Free();

>>191
TFileStreamばかりにらめこしてまつた。このへんはVCLに慣れてないととっさには出てきませんかね?
>>193
とっさというか私の定石なんで。
その代わりSAXとDOMの関係みたいに量が増えれば増えるほど効率は落ちますが。
ideに統合できるバージョン管理ソフトはないのかなぁ
「統合できる」って具体的にどんなことを期待しているの?
eclipseのような操作感を期待してます。
198貧乏学生:02/11/29 16:31
VC++で挫折しました。C++Builderはとっつき易そうでした。C++Builder
は貧乏な私が買う価値がありますか?それともC++の勉強不足だ、帰れな
のか教えてください。VBならAPI位なら使える程度です。
199貧乏学生:02/11/29 16:33
ニホンゴまちがえた。
>>198
Delphiが使えるなら大丈夫。
201貧乏学生:02/11/29 16:36
Delphiが使ったことありません。どうすれば、、、。
どの辺で挫折しました?
配列やリストのようなデータ構造とか、ソートのようなアルゴリズムで挫折したなら、
言っちゃ悪いけど何やっても無理。
ウィンドウ関数やMFC、APIなどで挫折したなら、RAD可能なC++Bのほうが
学習カーブは緩いので、大丈夫と言えるんじゃない?
203貧乏学生:02/11/29 17:27
 MFCでつまずきました。GUIが難しいんです。ぜんぜんVC++(ビジュアルじゃないC++)
C++Bの"->"でGUIを書くのが不思議な感じするけど、簡単そう。
この違いはなぜなんだろう。
たのむ。荒らす気がないならあげるな
>>203
それはVCLが優れているからです。GUIの部品をコンポーネントとして
持っていて、それを組み合わせるだけで、極めて少ないコーディング
量で、Windowsプログラムが出来てしまいます。

もっともこれはDelphiも同じ。
WindowsのExplorerのエクスプローラーバーのフォルダツリーのような
コンポーネントをCLXで作ろうと思っているのですが、
ネット等で調べたところVCLのサンプルしか見当たらず
class PACKAGE TDirectoryTreeView : public TTreeView
{
//(省略)
};

bool __fastcall TDirectoryTreeView::init(void)
{
  HIMAGELIST img_list_handle;
//(中略)
  img_list_handle = (HIMAGELIST)SHGetFileInfo(
    PAnsiChar(item_id_list), 0, &file_info, sizeof(file_info),
    SHGFI_PIDL | SHGFI_DISPLAYNAME | SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
  if(img_list_handle == 0){
    FIMalloc->Free(item_id_list);
    ShowMessage("SHGetFileInfo失敗\n" + AnsiString(__FILE__) + "\n(" + AnsiString(__LINE__) + ")");
    exit(1);
  }

上のようにImageListのハンドルを取得し、
this->Images = new TImageList(this);
this->Images->Handle = img_list_handle;
としている例しか見つけられませんでした。
どうやらTCustomImageList::Images->HandleはVCLにしか存在しないようなので
CLXでTImageListにアイコンを取得する方法をご存知の方がいらっしゃれば
御教授お願いいたします。
開発環境はWindows2000sp3、Borland C++ Builder6 Professionalで、
コンポーネント内のWindows、Linux固有のコードは#ifdef __WIN32__で
分けて書いています。
  ∧,,∧  えっと、TTreeView.Images
 ミ,,゚Д゚彡  にImageListを設定して
 ミつ[|lllll]).  TreeNodeのImageIndexを…
〜ミ   ミ   
  ∪''∪  いや、よくわかないです。
>>206
ユーザにイメージリスト作らせてそれ代入させれば良いんでは?
BCB Update3の日本語化エラーメッセージファイルが欲しいよ〜。
>>209
すまん。月曜夜まで待て。
>>207
すみません、私の説明不足でした。

TTreeView.Images に ImageList のポインタを設定して TreeNode の ImageIndex を
利用するのは分かったのですが、SHGetFileInfo で取得できるのは HIMAGELIST なので

TTreeView->Images->Handle = img_list_handle;
としているサンプルしか見当たらなかったのです。
しかし TTreeView.Images が Handle を持っているのはVCLだけのようなので、
CLXではどのようにしたら良いか分かりません。

HIMAGELIST が指し示す ImageList のポインタを TTreeView.Images に設定すれば
良いのだろうかと思ったので

TTreeView->Images = (TImageList *)img_list_handle;
も試してみたのですが、この行の実行時に AccessViolation を起こしてしまいました。

>>208
すみません、仰る事が上手く理解できませんでした。
あらかじめ用意しておいたイメージリストを、実行時にユーザーに選択させる
という事でしょうか?
もしそうならば、それは想定しているものとは違うものになってしまうので
残念ながらできません。
   ∧,,∧    /やっぱしよくわかなのですが
  ミ,,゚Д゚彡 < DelマガのVol22とかそれ前後の号に
   ミつ つ   \CLXでファイルマネージャを作っている
 @ミ  ミ      連載が載っているので
   ∪''∪     それを参考にしてみたらどうでしょうか。

ソースなら、Webでも手に入るし…
(本買わないとダウソだめかもですが)
213仕様書無しさん:02/12/01 14:24
外部EXEを起動するコマンドって何?
どっかのオブジェクトがメソッドとして持ってるのかな?
214206:02/12/01 14:29
>>212
ありがとうございます。
調べてみます。

>>213
system関数じゃダメですか?
215仕様書無しさん:02/12/01 15:05
>>214
system関数ですか!やってみます。
具体的にどうやって書けばいいですか?
>>215
help読め
>>210
楽しみにしております。僕も作り方が分かればお手伝いしたいのですが
全然わからなくて・・・
218仕様書無しさん:02/12/01 16:36
>>214
DOSプロが邪魔です。。
ほかの方法はないですか?
>>218
>DOSプロ
死ぬか?
>>219
オナエモナー(ププ
222デフォルトの名無しさん:02/12/01 23:07
>>1
     ______
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (5      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < こんなサイトを見つけた
|| | | |  \ ┃  ┃/    \  正直、スマンカッタ
| || | |    ̄         \_________
http://freeweb2.kakiko.com/saitama/
223デフォルトの名無しさん:02/12/01 23:07
>>213
何とかExecute
 ミ,,゚Д゚ミつ
WinExecかShellExecuteですか?>>213さん>>224さん
226 :02/12/02 13:24
VCLのヘルプをコンバートして、MSDNに突っ込んだりってできませんか?
PlatformSDKとVCLの検索が別々になってたりするので・・・
日本語エラーメッセージ結局来なかったな(´・ω・`)ショボーン
>>227
おらよ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1036037417&rm=100

待たせてすまん。
展開してでてくる bcc32.jpn を複製して comp32p.jpn を作ってください。
bcc32.jpn と comp32p.jpn を bin ディレクトリにコピーすることになります。
>>228
ありがとう&お疲れ様!
ホント、Borland Japanのサポート体制は腐っているよね。Update3どころか、
Update2も出てないんだから・・・・・

これで、最新のBCB環境を使うことができます。どうもありがとう!
230デフォルトの名無しさん:02/12/03 11:59
うれしいのでage
Update3 は、“Public Beta”扱いだ。と US newsgroups で説明がでています。
後はドキュメントを差し換えるだけだそうなので、バイナリ差し換えは起きないものと
思われますが。

>Borland Japanのサポート体制は腐っているよね。
そんなことは無いよ。既に彼らの管理外にあるのだからしょうがない。
勝手に管理外にすんなよ。藁
いろいろあるんだよ.... 表に出せない社会の裏を感じ取ってくれぃ。
某 ML 等に転記できる方、よろしくね。
それと、正式に Update3 日本語版が出たら“かならず”そちらを当てること。
そうしないと「最新のBCB環境」にならないような気がとってもするなぁ。
なるほど。感謝祭休みで日本の火曜日早朝までずれ込んだわけだな?
236デフォルトの名無しさん:02/12/03 13:04
無償のやつが使えません
自動設定setbccのstep3のパス優先度の選択の現在のパス設定に\command;がなぜかないのが原因っぽ いっす
C++Builder5,5です
237デフォルトの名無しさん:02/12/03 14:05
CPad使ってたけど
C++Builder5.5は
ダウンロードすべき?
せめて自分が使っている製品がなんて名前なのかくらい把握しといてくれ。

こっちの方が適切でしょう
http://pc3.2ch.net/test/read.cgi/tech/1030493157/
239デフォルトの名無しさん:02/12/03 14:57
サーンクス!!そんなスレがあったとは
240デフォルトの名無しさん:02/12/03 15:00
こんにちは。
コンパイラにC++Builder5.5のbcc32.exeとCpadを使っていますが、
構造体メンバの配列をとても増やしたら
(例えば
{double x[1800][1800]
double y[1800][1800]
double z[1800][1800]
})

Fatal: Error detected (LME1514)

こんなエラーがでてしまいました。
構造体メンバの配列の大きさは減らしたくなく、
このエラーをとりたいのですが…

どなたかアドバイスお願いします。
スタックサイズを超えてるからじゃない?
嫌がらせなのかなぁ?

C++Builder5.5 なんて製品無いんだってば。

CBuiler は 5 か 6
BCC は 5.5


ちなみにC++Builder6 ServicePack3(public Beta)に付属のBCCは
version 5.6.2ね。
>>243
製品名としては 5.6.x ってのは存在しないから。わかって言ってると思うけど。
>>240
どれだけのサイズになるか計算してみた?
(1800^2)*8*3バイトだよ。74メガ強だ。
さっさとGlobalAllocでもしなされ。
>>240
マジレスしようかどうか迷ったが・・・・

取り敢えず一番簡単な解決策はstatic領域に確保しなされ。
そーいやB-GEEKSを立ち読みしてたら、ワーム作成の解説しているところで
「フリーのコンパイラ、C++Builder5.5(bcc5.5)をダウンロードして、云々」って記述があった。
そのせいなのか?
bccはフリーだけどBuilderはフリーじゃないし5.5じゃないんだよぅと突っ込みたかった。
>>247
明らかに略になってないしなw
>>228
thx
ありがたく使わせてもらってます。
>>247
てーことは、C++Builder5.5 って表記している輩はワーム作成者かい?
251284.287:02/12/04 08:57
>>236は俺です
確かread me かなにかからコピーして5,5をつけたしただけです
PC初心者なんでウィルスみたいなのはつくれません
252284.287:02/12/04 09:01
read meです今確認、5,5はついてなかったので付け足したんだと思います
いろいろ検索したあとだったので、検索欄に書いてあったのをコピーしたのかもしれないけど
>>251-252
254284.287:02/12/04 09:08
C++Builder5,5と書いてしまっていたので迷惑をかけてました
255デフォルトの名無しさん:02/12/04 09:22
Windows2000 + C++Builder5で開発をしています。
Excelのワークシートをフォーム上に表示させるにはどうすればいいですか?
また、ワークシート上にある特定の名前を付けたオブジェクトの操作は可能ですか?

よろしくおねがいします。
256bloom:02/12/04 09:28
>>1-255
HTMLやってた時は楽しいからどんどん先に進めれたけど、
プログラミングの場合最初なんて変数とかポインタとか
つまらんもんばっか。
プログラミングでも最初から楽しくやれてるかたはいるのだろうか?
258デフォルトの名無しさん:02/12/04 09:48
>>257
PHPがオススメなんで、WebProg板へ逝け。
愚痴をこぼされても困ってしまいますが。
ちゃんとした先生/学校/教科書で、一度しっかり勉強したほうが後々楽だと思います。

まじめに、プログラムに不向きな人はいますから、楽しくないことを無理に覚えなくても
良いかと。
>>255
Excel を ActiveX として取り込めばよいんだけど。
この説明で解りますか?
261デフォルトの名無しさん:02/12/04 09:59
>>260
ありがとうございます、少し調べてみます。
262257:02/12/04 10:10
>>258
今はHP作る気はない。

>>259
>ちゃんとした先生/学校/教科書で、一度しっかり勉強したほうが後々楽だと思います。
趣味でやってるんだけど。


>まじめに、プログラムに不向きな人はいますから、楽しくないことを無理に覚えなくても
良いかと。
いや、別に不向きだとはいってないよ。
本屋の初歩的な参考書を参考してできるけど
別に大して面白くないやんって不思議に思っただけ。

つうかこの板を見た限り本当に面白い部分を誰も赤の他人なんかには
教えたくないってわけだと思うけど、ちがうか?
すぐに目に見える結果がないと面白くないのか?
だとすれば不向きだと思う。
趣味でやっていても、基礎を身につけるために勉強する方は世の中にたくさんいらっしゃいますが、
どう思われます?

本当に面白い部分って、人によって異なるから教えようが無い。ってのが真実ではないかな?

テクニックや技法は教えられるけど、意欲やモチベーションってのは教える/教わるものではないでしょう?

どう思います?
ネタはマ板でやれ
(・∀・)カエレ!
わざわざ C++Builder相談室で聞くような話でもないしねぇ。
昨日からうろうろしている初心者ちゃんが逆切れしたのかなぁ。


267257:02/12/04 10:32
>>263-264

「最初は基礎をいっぱい勉強せんといかんけどこれも
いつか俺がプログラマと呼ばれるための辛抱や。がんばるぞ!俺!」

っつーかお二人さんはこんなスタイルで勉強してきたんですか?
268デフォルトの名無しさん:02/12/04 10:33
>>260
Formula One を使用するということでしょうか?

Excelのexeを別に起動させるのではなく、フォーム上に*.xlsファイルの
ワークシートを表示させたいのですが・・・。

よろしくおねがいします。
269263:02/12/04 10:40
>>267
基礎部分そのものが面白いと思ってた。辛抱だとか思ったことはない。

BASIC パソコン付属のリファレンス
C K&R第2版
C++ TC++付属リファレンス、ARM
Delphi 付属リファレンス
だいたいこんなもので覚えた。
>>267
だから、技術が解らないのはおまえさんがアホだからなんだってば。
道具のせいにしちゃいかんよ。
271257:02/12/04 10:52
>>269
>C K&R第2版
すごいね、あんた。
アゲっぱなしだしなぁ。嵐して楽しいか?
HTML 作るより、結果がすぐ出るから、楽しいんだろうなぁ。
>>268
アプリケーションを動かす環境に Excel はインストール済みか?
> 251 さんへ。

ある程度は他人の意見も聞きなさいな。264 で問われている質問くらいは答えてちょうだいな。
275デフォルトの名無しさん:02/12/04 10:58
>>273
ローカルのマシンにはExcel2000が入っています。
つーか、物を覚えることがなぜ苦痛なんだろう。

辛抱とかって感情が出てくることが解らないよ。
>>275
BCB5 でしょ。コンポーネントパレットに Server ってなかったかなぁ?
無ければ ActiveX の取り込みで Excel を指定すればコンポーネント化できるんだが。
278263:02/12/04 11:08
>>271
別にすごくない。頭良くないし。
変な例えとかで解説されるよりも単刀直入に書かれてて
「それはそういうものなんだ」とスキップして困ったときにちゃんと
理解する方があってただけ。

BASICとCの間にZ80ASMをやってたからポインタはすぐ覚えた。
後は文法しか残ってないし、予約語が少ないからわりと簡単。
関数は必要なときに用意されてるかどうか調べる。
用意されてるのに自力で実装して大きく遠回りはしたけど。
279257:02/12/04 11:09
>>276
>つーか、物を覚えることがなぜ苦痛なんだろう。

どっかのスレで「一日6時間以上みっちり勉強しても
ちゃんとしたプログラムが出来上がるまで一年以上はかかる。」
ってなことが書かれてたけど、
さすがに俺にそれは無理だと思った。
280263:02/12/04 11:13
>>279
そんなの自分でやってみないとわからないだろ。
自分が作りたいものができればいいと思うし。

1ヶ月の研修で現場に放り出される職業プログラマと、どっちがいい?
小中学校の勉強も、大変でしたか?

>>264 に対するあなたの考えを聞きたいな。
>>257
コンピューターに限らず、何かを作るときってそれくらいの作業量は必要だと思うけどね。

もう少し大人になって、子供一匹育ててごらん。
24時間つきっきりで、独り立ちさせるまで18年くらいかかる。
それに比べりゃ...
283257:02/12/04 11:19
>>263
>変な例えとかで解説されるよりも単刀直入に書かれてて
>「それはそういうものなんだ」とスキップして困ったときにちゃんと
>理解する方があってただけ。

うん、確かにそのやり方の方が楽しそうだし、
自分でどんどん先に進められる気がする。
俺が使った本なんてのは、一つのこと教えるのに
何個もの例えで書かれてあって、
それをいちいち呼んで解析するなんてめんどくさいなと思った。
しかし、読み返してみると、257 はコミュニケーションを否定しているか、
他人の文章を読まずに感想を書き連ねているのだね。

まぁこれで彼の心のモヤモヤが晴れるのなら、付き合ってあげてもいいが。
285デフォルトの名無しさん:02/12/04 11:25
>>277
Serversはあります。

ワークシート上には、オブジェクトが配置されていますが、
そのオブジェクトも一緒に表示させないといけないのです。
可能でしょうか?
>>285
できなかったら質問してください。聞いてないでまずやってみれ。
287257:02/12/04 11:36
>>264>>274>>281

>趣味でやっていても、基礎を身につけるために勉強する方は世の中にたくさんいらっしゃいますが、
>どう思われます?

尊敬します。

>本当に面白い部分って、人によって異なるから教えようが無い。ってのが真実ではないかな?

では自作のソースコードを公開しようとしないヤツがいっぱいいるのは
どうしてだろうか?

>テクニックや技法は教えられるけど、意欲やモチベーションってのは教える/教わるものではないでしょう?

昔なら自然に趣味が身につくんだけど、
最近はどうも自分から趣味を探すようにしている。
俺には趣味を持つ余裕がないってことなのか?

>小中学校の勉強も、大変でしたか?

塾に通ってたんで毎日の宿題の量がすごくて大変だな
と思ったことあるが、学校ではないです。

>もう少し大人になって、子供一匹育ててごらん。

年バレてます?俺

>24時間つきっきりで、独り立ちさせるまで18年くらいかかる。

お母さん、お父さん今までご苦労様でした。
288257:02/12/04 11:38
つーかさっきから思ったんだけど、
>>285さんと>>286さんの邪魔してるみたいでスマソ。
>>257
悪いと思っているのなら、書かないほうが。行動で示しましょう。

>俺には趣味を持つ余裕がないってことなのか?
ほとんど人生相談なんだけど、冷静に自分を見詰めた結果がそれなら、そのとおりなのではないでしょうか。

尊敬はできるってことは理屈では解っている。ってことかな?
解っているけど体が動かない。ってことなら、もうどうしようもないですよ。
世の中には、体を動かす(学習する)人がいる。ってことで。
勉強する人が、すべて偉いわけでもないしね。

自分のペースでやりたいことをやったら?あんたの人生なんだし。

ただ、
>つうかこの板を見た限り本当に面白い部分を誰も赤の他人なんかには
>教えたくないってわけだと思うけど、ちがうか?
これは、逆恨みでしかないぞ。
290263:02/12/04 11:47
>では自作のソースコードを公開しようとしないヤツがいっぱいいるのは
>どうしてだろうか?
オナーニを公開しようとしないヤツがいっぱいいるのはどうしてだろうか?

つか、ソース公開したら「あなたの」何が変わるんだろ?
291257:02/12/04 11:55
>>290
そこらへんの教科書に書いてるようなつまらないコードではないはず
だから、技術をパクるに決まってるだろーが。
だから、「楽しい」コードと「つまらない」コードがある。ってところが幻想なんだってばさ。
動いてなんぼのこの世界。

そこまで言うなら、gnu のコード、一通り読んでごらん。
なるほど。
HTML 書いてました。ってのも、他人のページの HTML コードをコピペしていただけなのだな。
自分書いたコードってどれくらいあるんだか。

まだ間に合うから、考え直しなさい。世の中そこまで甘くない。
コードをパクる。ってのは技術を盗むとはまったく別なんだけどね。
その違いがわかるようになるには、いろんな苦労が必要だよ > 257
いままで楽した分、頑張ってください。
295257:02/12/04 12:03
>>292
無知な俺のために、ご教授ありがとうございました。
「無知な俺のために」余計な一言。
最後までアゲ嵐。

さすが。ガンガレ
297263:02/12/04 12:26
結局のところ、画面になんらかの表示が出るのが楽しいコードと言ってるように思える。
そんなのごく一部分で、ほとんどが「つまらない」コード。VCLのソースでも見てみれば?

おもしろいと思わなければやめられるのが趣味ってもんでしょ。
... じゃぁ、gnu じゃだめじゃん。彼の欲望を満たせない...
VCL コードも、カラフルとは言いがたいしね。

いっそ、Mozilla/Gekko の HTML レンダリングモジュールを読んでみては?
299工房:02/12/04 13:02
>>258-298

結局のところ、自分の知識のなさが問題を引き起こしたのだと思う。
もう一度プログラミングのことをきちんと勉強してから発言しようと思う。
たくさんのレスをありがとうございます。
高校生か。テスト休みとかかな?引きこもりでは無いだろうな。

無いことが解っている知識は、時間さえあれば習得できます。
知らないことに気づかない知識を得ることは、一人では不可能に近い。

若いうちに、コンピューター/ネット以外のことも含めて、いろんなことを、
まんべんなく身に付けてくださいね。
頭のやわらかいうちに覚えたほうが楽ですよ。
301デフォルトの名無しさん:02/12/04 18:22
Formula OneのスプレットシートにExcelのファイルを表示させるにはどうすればいいですか?
それらしきプロパティが見当たらずに困っています。


302デフォルトの名無しさん:02/12/04 18:37
>>301
できません。
304デフォルトの名無しさん:02/12/04 18:52
>>302
では、どうにかしてExcelのファイルを表示させる方法はありませんか?
305デフォルトの名無しさん:02/12/04 18:54
補足ですが、標準コンポーネントを使用して表示させたいのです。
クエリーなどから表示させるのではなく、
ワークシートの実態を表示させるにはどうすればいいでしょうか?
>>301
おまえ馬鹿か?教えてくれてるのに無視かよ。
>>305
OLE関係の標準コンポーネントあったと思うが。
>>306
たぶん
>>303はサラのExcelファイルにデータを入れて保存する方法だろうが!
すでに保存してあるファイルを表示したいんだよ! その手順のコードを
無料で全て書きやがれ、この低脳!!」
と、自分で何もしようとしない教えて君だと思われ。

>>307
そのレスは昨日もついたんだけどね・・・。>>277
Excel をアプリケーションに埋め込み OLE として表示させたい。
なのか
Excel のデータをスプレッドシートのまま(何かで)表示させたいのか。

どちらも結構めんどくさいから、Server コンポーネントで Excel を起動させちゃうほうが
簡単かつ確実だよ。Server コンポーネントの使い方が分からない場合はまたそのように。
310デフォルトの名無しさん:02/12/05 13:47
borland C++ builder 6 を使って
コンソールアプリを作りたいのですが、
次のようなヘルプに載っているプログラムでさえ
エラーが出ます。対処方を御指導願えませんでしょうか
//
// complex.cpp
//
#include <complex>
#include <iostream>
using namespace std;
int main()
{
complex<double> a(1.2, 3.4);
complex<double> b(-9.8, -7.6);
a += b;
a /= sin(b) * cos(a);
b *= log(a) + pow(b, a);
cout << "a = " << a << ", b = " << b << endl;
return 0;
}

エラー
コンパイル
[C++ エラー] complex.cpp(9): E2451 未定義のシンボル complex
[C++ エラー] complex.cpp(9): E2188 式の構文エラー
[C++ エラー] complex.cpp(10): E2188 式の構文エラー[C++ エラー] complex.cpp(12): E2268 未定義の関数 'sin' を呼び出した
[C++ エラー] complex.cpp(12): E2268 未定義の関数 'cos' を呼び出した

以上よろしくお願いします。
#include <math.h> // 追加

未定義のシンボル complex のほうはさいげんできないなぁ

>>310>>311
変だな。何もエラーが出ないよ。

//
// complex.cpp
//
#include <complex>
#include <iostream>

int main()
{
std::complex<double> a(1.2, 3.4);
std::complex<double> b(-9.8, -7.6);

a += b;
a /= sin(b) * cos(a);
b *= log(a) + pow(b, a);
std::cout << "a = " << a << ", b = " << b << std::endl;
}
>>312
無意識に math.h 追加しちゃったみたいだ... ウツダシノウ...
std::complexを引数に取るsin、cosはmath.hでは定義されてないよね。
borland.co.jp のニュースグループに記事かいてるね。こいつめ。
newsgroups は IP もれるから、気をつけて??

どこでも、回答者は重なっていることが多いから、一つどころに絞ったほうがよいよ。
>complex<double> a(1.2, 3.4);

>[C++ エラー] complex.cpp(9): E2451 未定義のシンボル complex

が出てしまう。ってことは、

using namespace std;

が間違っているのかなぁ。けど、存在しない名前空間名ならちゃんとエラー出すしなぁ。

.. まさか、自前の complex.hpp とかがどっかに落ちていない?
>>310
まだ見てるかな?
一度、マシンを再起動させてから、Examples\StdLib に移動して、
>make
ってやってみて。

それで complx.exe がちゃんと作成されるなら、あなたの IDE 環境かプログラムに問題がある。
318質問です:02/12/06 18:31
超初歩的な質問です

ある計算をするアプリを作ったのですが、
計算が終了するまでは「応答なし」になってしまい、ウィンドウの移動などもできません。
どうすれば計算中でもウィンドウの移動などができるようになるのでしょうか?

HELPやWEBなどで検索してみましたが、何をキーワードに検索すればいいのかもわからない
くらいの初心者です。
「〜〜をキーワードに調べてみよ」といったことでも結構ですので、よろしくお願いします。
ProcessMessages
320318:02/12/07 00:35
>>319

解決しました。
ありがとうございました。
321デフォルトの名無しさん:02/12/07 18:19
>>317
最初にエラーが出ましたが、2回makeやったら、
普通に実行ファイルが出来てきました。
レス感謝です^^
std::complexはstd名前空間に包まれているはずなのですが、次のプログラムを
コンパイルするとエラーが出ます。

#include <complex>

int main()
{
std::complex<double> a, b;

b = std::sin(a);
}

b = _STL::sin(a); とすれば通ります。_STLはSTLportの名前空間ですが、
stdと同じ意味になっているはずなので、どうもおかしいです。

algorithmのstd::removeも通りません。_STL::removeとすれば通ります。
C++Builder6は、名前空間に包まれている関数の多重定義の解決が
うまくできないバグがあるようです。
このバグのお陰で、boost::numeric::ublasが全滅です。std::absとかstd::sqrtを
全部_STL::absとか_STL::sqrtに書き換えないとなりません。ああ面倒くさい。
>>322
そのバグは見覚えがある。昔のバージョンでSTLPort使おうとすると出るんじゃなかったっけ
#define _STL std するという対策をどっかで見た気がする。

本当に使ってるC++Builderのバージョンは6か?
とりあえず、C++ Builder 4、5、6、FreeCompiler 5.5 で問題なくコンパイルできてるんだが…
>>324
C++Builder6でコンパイルすると>>322のような症状が出ます。BCB4やBCB5は
STLportでないので症状は出ないと思います。C++Builder6でも、_USE_OLD_RW_STL
という、Rogue WaveのSTLを使うマクロを定義するとエラーが出ません。

恐らくC++Builder6がSTLportに対応しきれてないせいだと思います。
326324:02/12/08 04:19
スマソ。もいっかい試したら確かに6だとエラーになった。
コンパイラ切り替えそこねてたみたい。

試しにSTLPortの最新版ならどうなるかと STLPort-5.0-0409 を落としてみたが
全然コンパイルが通らねぇ…
327sage:02/12/08 08:21
310です。
317さんのおかげで糸口をつくり、コンパイルできました。
すなわち、上のiostreamをiostream.hに変えたら通りました。
#include <complex>
#include <iostream.h>
using namespace std;
int main()
{
complex<double> a(1.2, 3.4);
complex<double> b(-9.8, -7.6);
a += b;
a /= sin(b) * cos(a);
b *= log(a) + pow(b, a);
cout << "a = " << a << ", b = " << b << endl;
return 0;
}
iostreamとiostream.hの違いがよくわかりませんが
解決しました。ありがとうございました^^
328デフォルトの名無しさん:02/12/09 17:49
PageControlにプログラムでタブを追加する方法を教えて下さい。
>>328

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TTabSheet* tb;

tb = new TTabSheet(this);
tb->PageControl = PageControl1;
}
>>328
スマソ。コンストラクタに与えるのがthisではまずいかも。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TTabSheet* tb;

PageControl1->MultiLine = true;
tb = new TTabSheet(PageControl1);
tb->PageControl = PageControl1;
}
331デフォルトの名無しさん:02/12/09 18:15
>>329-330
いえ、コンストラクタがthisでもOKでした!
ありがとうございます。
332デフォルトの名無しさん:02/12/09 18:19
あっ、もう1つ質問ですが、
TCppWebBrowserで表示しているページのURLを右クリックして出てくる
ポップアップメニューの「新しいウィンドウで開く」をクリックすると
IEが立ち上がってしまうのですが、これをTCppWebBrowserを新たに作成して
そこに表示させるためには、どのようにすればいいのでしょうか?
OnNewWindow2でなんかやっとけ
334デフォルトの名無しさん:02/12/09 18:25
>>333
御意!
335デフォルトの名無しさん:02/12/09 18:36
>>333
あぁすみません・・御意と言いつつちょっとわからないので教えて下さい。
OnNewWindow2イベントで以下のようにタブシートとTCppWebBrowserを作成、
int n = Pc->PageCount;
Ts[n] = new TTabSheet(this);
Ts[n]->PageControl = Pc;
Ts[n]->Name = Format( "Ts%2.2d", ARRAYOFCONST((Ts[n]->PageIndex + 1)) );
Wb[n] = new TCppWebBrowser(this);
Wb[n]->TOleControl::Parent = Ts[n];
Wb[n]->Width = 400;
Wb[n]->Height = 200;
Wb[n]->Left = 2;
Wb[n]->Top = 2;
Wb[n]->Align = alClient;
Wb[n]->Visible = true;
Wb[n]->OnDocumentComplete = CppWebBrowserDocumentComplete;
Wb[n]->OnDownloadBegin = CppWebBrowserDownloadBegin;
Wb[n]->OnDownloadComplete = CppWebBrowserDownloadComplete;
Wb[n]->OnNewWindow2 = CppWebBrowserNewWindow2;
Wb[n]->OnProgressChange = CppWebBrowserProgressChange;
Pc->ActivePage = Ts[n];
この作成したTCppWebBrowserに飛び先のURLを表示する方法を教えて下さい。
いや、俺も正確にやったことないんだけどさ、
Cancelして、新しいTabSheetに作ったブラウザでNavigate2すればいいんじゃないの?
飛び先アドレスの取得は、クリックならStatusTextChange等で(およそ)出来たはず。
およそと書いたのは、なんか問題があるらしいとあぼーんスレで読んだ気がするから。
よく読んでないからわからんけどね。
Navigate2するときのURLってどうやって引っ張ってくるのでしょうか?
StatusTextChangeってプロパティ?でアレですかー
んーこの辺はちょっと難しそうですねー
ここらの情報ってどこかに載ってるサイトないですかね?
あー何か「このイベントは使わないでください」っておもいっきり
書いてますねーこれ、あー、どうすればいいんだあああああああ
>337-338
私は遠慮なくStatusTextChangeイベントを使ってますよ。
特に問題はなさそう。
ただ、StatusTextChangeでは、#を含むURLが上手く取得出来なかったと
思います。(例えばGoogleの参照URLとか)
良かったら、これをどうぞ。

http://abone.pos.to/Code.txt
>>339
ふーふー(;´Д`)
激しく感謝します!
早速試してみます!!
341デフォルトの名無しさん:02/12/10 12:09
>>339
あ、すみません・・
StatusTextChangeイベントが発生しないのですが、何か設定が必要なのでしょうか?
また、教えて頂いたソースでやってみたのですが、飛び先URL
じゃなくて、何か自分のURLぽかったのですが、ちょっと私のやり方が
アレかもなので、再度トライしてみます。
TMediaPlayerで表示される.AVIや.MPGの表示ウィンドゥをユーザー定義のTPanel
にしているのですが、マウスでこの表示ウィンドゥのサイズを変更した時に、動画の
サイズが変わってくれません。

何が間違っているのでしょうか?

void __fastcall TViewForm::ViewPanelResize(TObject *Sender)
{
MainForm->MediaPlayer->DisplayRect.Right = ViewPanel->Width;
MainForm->MediaPlayer->DisplayRect.Bottom = ViewPanel->Height;
MainForm->MediaPlayer->Display = ViewPanel;
}
342です。自己解決しますた。

DisplayRectのRightとかBottomメンバを個別に変えていてはだめなようです。TRectクラスを
一度に与えるとうまくリサイズできました。

MainForm->MediaPlayer->Display = ViewPanel;
MainForm->MediaPlayer->DisplayRect = TRect(
MainForm->MediaPlayer->DisplayRect.Left,
MainForm->MediaPlayer->DisplayRect.Top,
MainForm->MediaPlayer->DisplayRect.Left + ViewPanel->Width,
MainForm->MediaPlayer->DisplayRect.Top + ViewPanel->Height
);
すいません、質問させてください。

ウインドウハンドルがわかっている他のアプリケーションのウインドウの
クライアント領域での相対的なマウスの座標を知りたいのですが、
先ず、GetCursorPos 関数でマウスのスクリーン座標を拾って
次にAPIの ScreenToClient 関数で目的の座標に変換しようとしたのですが、
コンパイルエラーが発生しました。
ならば今度はAPIの GetClientRect 関数でクライアント領域の左上の
座標を拾って目的の座標を計算しようとしたのですが、これもエラーと。
エラーメッセージを見た限りでは、これらのAPI関数はBCB6では使えないような雰囲気なんです。
何かいい方法・解決策がありましたら教えていただけませんか。

ソースの骨子は次のような感じです。
ヘッダーファイルはデフォルト状態から何も加えない状態で、目的のウインドウのハンドルを hWnd(既知)として、
{
POINT pm;
GetCursorPos(&pm);

ScreenToClient(hWnd,&pm); //←ここでコンパイルエラー

RECT rc;
GetClientRect(hWnd,&rc); //←ここもコンパイルエラー
}
せめて、コンパイルエラーの文言だけでもコピペしてね。

ScreenToClient を ::ScreenToClient にすればよくないかな?
346344:02/12/10 21:10
上手くいきました。ありがとうございます。
忠告もありがとうございました。
TStringGridの特定のRowだけondrowcellでrepaintしたいんですけど
うまくいかないです。

StringGrid->InvalidateRow(StringGrid->Row);
を試してみましたが、だめでした。
>>347
何で特定のRowだけなの?TDrawGridとかで描画の激しく重いオブジェクトを
収めているのならわかるのだが、Stringでしょ?
最近C++Builder6使い始めて思ったんだが、せっかく使いやすいのにトラブルシュートや
応用事例(自前コンポーネント製作)の資料が異様に少ないのが残念だよね…Delphiの資料は多いんだけどなぁ…
ここの板みたいな存在は貴重だね
>>349
Delphiの方に圧倒的にユーザーが流れているからだろ・・・・それに、VCLに関する
質問なら、Delphiに翻訳してから質問すれば、すぐ答えが返ってくる。
コンポーネントを自作するだけなら、Delphiの物がそのまま流用できるし。
区切り文字を指定して,AnsiStringをTStringListにばらすメソッドってないんかな?
区切り文字を指定して,AnsiStringをTStringListにばらすメソッドってないんかな?
>>352>>353
CommaText
>>353
やっぱり、DelimitedTextの方がいいや。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString text = "123,45!6,789";
TStringList* ts1 = new TStringList();
TStringList* ts2 = new TStringList();

ts1->CommaText = text;
ts2->Delimiter = '!';
ts2->DelimitedText = text;

StringGrid1->Rows[0] = ts1;
StringGrid1->Rows[1] = ts2;

delete ts1;
delete ts2;
}
>>355
ありがとうございます。
>>355
ありがとうございます。
358デフォルトの名無しさん:02/12/12 10:42
TCppWebBrowserでStatusTextChangeイベントが発生しないのですが
どうすれば発生するようになるのでしょうか?
359デフォルトの名無しさん:02/12/12 13:06
>>355
最新版にはそんなのがあるんだ。
BCB5->6の変更点で初めてうらやましく思った。
でも"で囲まれたところはやっぱり分割されないんだろうな…。
>QuoteChar プロパティは,DelimitedText プロパティで使われる引用符を指定します。
>(中略)
>QuoteChar プロパティを使うと,DelimitedText プロパティで各文字列を囲むのに
>使われる引用符を取得および設定できます。

というのが・・・あれ? "〜" 内に区切り文字があったら分割される方がいいの?>>359
>QuoteChar プロパティは,DelimitedText プロパティで使われる引用符を指定します。
>(中略)
>QuoteChar プロパティを使うと,DelimitedText プロパティで各文字列を囲むのに
>使われる引用符を取得および設定できます。

というのが・・・あれ? "〜" 内に区切り文字があったら分割される方がいいの?>>359
>>359-361
QuoteCharに'\0'を設定すれば、引用符は無視されるよ。
363デフォルトの名無しさん:02/12/13 14:01
TCppWebBrowserってエンターキーって受け付けてくれないのですが
例えば表示している掲示版とかに書込みをするときとかに
エンタキーを押しても何も反応しないんですよ・・
これって受け付けるようにする方法はありますか?
すいません、BCB5を使ってOpenGLを勉強してるんですがttp://www.wyatt100.freeserve.co.uk/download.htm
のGLPNGを使ってPNGファイルを読み込みたいんですが、
ライブラリがうまく入りません。

coff2omfでglpng.libとglpngd.libを変換してみたのですがうまく変換できていないみたいで、
512Byteのファイルが出来上がるだけです。
もちろんそのまま\libに持っていってもだめでした。
うまくライブラリを入れる方法はありますでしょうか?

#エディタでソース書いてコマンドラインでmakeなのでBCCでも良かったり・・・
365364:02/12/14 02:18
あれ?なんか改行が変になってしまった・・・
ごめんなさい
>>364
ソースが付属しているので、makefileをいじって新たにLIBファイルを作成したら?
367デフォルトの名無しさん:02/12/14 20:47
BorlandがMSの買収ターゲットに?
http://www.zdnet.co.jp/news/0212/14/nebt_05.html

I have not words...
368デフォルトの名無しさん:02/12/14 20:55
>>1
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/<先生!こんなのがありました!
 _ / /   /   \___________
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
http://freehost.kakiko.com/hiroyuki/
369364:02/12/15 00:29
>>366
ありがとうございます。
やはりそれしかないですか。
BCC用のMakefileがなかったので避けたかったんですががんばってみます。
>>369
TLIBはobjファイルをライブラリに追加する際に"+"記号をobjファイル名の前に
付けなければいけない事だけ注意すれば、割と楽に変更できました。
>>369
その他、再ビルドにはglut.hが必要な他、若干ソースをいじらなければいけないので、
↓のホームページを参照の事。
http://hem.passagen.se/roquero/borland_glut.htm
現在BCB6でCLXのVisualComponentを作っていて、Maskを用いてMouseDown等を矩形以外で捕獲したいのですが
TWidgetControlから派生したためにUpdateMask等をTCustomControl(qcontrols.hpp)を見真似で以下のように自前実装しています。
{
 Qt::QBitmapH *bitmap_h; Qt::QPainterH *painter_h; TCanvas *canvas;
 if(!Masked || !HandleAllocated()){ return; }
 bitmap_h = QBitmap_create(Width, Height, true, QPixmapOptimization_DefaultOptim);
 try{ painter_h = QPainter_create(bitmap_h, Handle);
  try{ canvas = new TCanvas();
   try{ canvas->Start(false); canvas->Handle = painter_h; DrawMask(canvas); canvas->Stop();
   }__finally{ delete canvas; }
   QWidget_setMask(Handle, bitmap_h);
  }__finally{ QPainter_destroy(painter_h); }
 }__finally{ QBitmap_destroy(bitmap_h); }
 return;
}
QBitmap_create等がqt.hpp(29067行)中で
#pragma option push -w-inl
inline QBitmapH* __cdecl QBitmap_create(int w, int h, bool clear, QPixmapOptimization p4)/* overload */
{
return QBitmap_create(w, h, clear, p4);
}
#pragma option pop
と宣言されているため、ネストして展開されてしまいスタックオーバーフローを起こしてしまいます。
ここでreturnされてるQBitmap_createは本来なら9775行目の
extern PACKAGE QBitmapH* __cdecl QBitmap_create(int w, int h, bool clear, QPixmapOptimization p4)/* overload */;
を指すと思われるのですが解決方法が見当たりません。どなたか御存知ないでしょうか?
373デフォルトの名無しさん:02/12/16 06:21
C++Builder6でImageListに150×150を入れると

Bcbが原因でエラーが発生しました と出るんですがどうしたら・・・
374超初心者:02/12/16 11:03
何処で質問したらイイのかわかりません、、、

void voice_change(int rx_flag, int tx_flag)
{
int size = BUFFSIZE; /* size of buffer to be processed */
int* src; /* pointer to the data source */
int* dst; /* pointer to the destination */

↑これの意味を教えてください、
375デフォルトの名無しさん:02/12/16 12:21
>>374
ネタかな。
釣られた予感
>>374
改行文字って言うんだよボウヤ
int* a; という書き方,嫌いなんだよな。
int* a, b; とすると,b が int へのポインタだと勘違いする馬鹿がいるから。
>>377
その馬鹿は俺のことでつか?
やべ、俺もその馬鹿でつか?
燃料燃料
>>377
自己レス

スレ違いでした。

ソースの見た目効率を語るスレ
http://pc3.2ch.net/test/read.cgi/tech/1002252975/628
>>373
エラー出ないよ。もしかしたらServicePack違いかもしれないから、このスレを
よく読んでSP3相当にしたらどう?

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap* tb = new Graphics::TBitmap;

ImageList1->GetBitmap(0, tb);
Image1->Picture->Bitmap = tb;
delete tb;
}
>>381
スレ違いでもいいから>>378-379を罵倒してほしかった・・・俺が378なわけだが。
384デフォルトの名無しさん:02/12/17 10:49
絶対にFAQだと思って、ボーランドのウェブページで何かサポート情報でも
ないかと思って探したのですが、見つけきれなかったので、ちょっと質問
させてください。

C++Builder6を先週購入して、チュートリアルを見ながら少しずつ試して
いるところです。

クイックスタートに載っているテキストエディッタのサンプルを試していて
気がついたのですが、『開くコマンドのイベント作成』(4-26)で、
RichEdit1->Lines->SaveToFile( ) を呼ぶように書かれています。

このままだと、ダイアログでファイルを選んで何かファイルをオープン
しようとすると、いきなりその選んだファイルに対して、現在の
テキストを上書きしてしまいます。(実際、既存のファイルを上書きされて
しまいました)

これ、本当は、LoadFromFile( ) が正しいと思うのですが、どうでしょうか?
>>384
正解。
ちなみにヘルプの方は LoadFromFile になってる。
386384:02/12/17 11:54
>>385
おお!? ヘルプファイルにはちゃんと書いてあったんですか・・・
(起動中 → ヘルプを確認)

はい確かに、ちゃんと書いてありました。情報ありがとうございます。

ファイルを開いても画面のテキストが変わらないからしばらく悩んで、
何度か試すときにいくつかファイルを『開いて』しまったので、ちょっと
ショックです(苦笑)。
>>386
自分は一体何をしようとしているのか、を理解しながら進めるのも大事だよ。






と、職場の糞ジジイ共に言ってるのだが、全くわかってくれない。
388デフォルトの名無しさん:02/12/17 19:37
TEditのTextをコピペをできなくする方法を教えて下さい、。
>>388
エディットもできなくなっていい?
390384:02/12/17 22:55
>>387
ごもっともです。実は、やっている途中で、「何か変だな?」という気はしたの
ですけど・・・ (負け惜しみ)

チュートリアルを見て打ち込みながら、「ああ、練習用のサンプルだから、
ユーザーへの確認とかは省略しているな」「ちゃんと作るなら、untitled.txt は
番号つきにして、新規作成ボタンを押すたびに数字を増やすほうがいいな」
なんてことは考えながら作業していたのですが、SaveToFile は、コード補完
機能を使って意味を考えずにそのまま打ち込んでしまいました。まあ、消えた
ファイルはどうでもいいテキストだったので、実害はないんですが。

まあとにかく、せっかくいい道具が手に入ったので、これから色々勉強して
いくつもりです。
>>384
ほんとに金出して買った?
>>391
まてまて・・・ 初心者的な質問だからといって、割れ物ユーザーとは限らないぞ。

もし割れ物ユーザーだったらヘルプしか見れないから、印刷物のクイックスタートの
誤植にひっかかることはあるまい。
393デフォルトの名無しさん:02/12/18 10:25
>>389
あー、いえ、エディットはしたいです。
何かいい方法はありますか?
>>393
すごく使いづらそうなソフトを作ろうとしている予感…。
>>393
サブクラス化するか派生コンポーネントで、
WM_COPYやWM_PASTEを処理しなければいい。と思う。
>>394
あらあら、随分と狭い視野だことw
>>395
ありがとうございます。
>あらあら、随分と狭い視野だことw
書き方からして、すごく使いづらそうなソフトしか作れない人の予感…。
398384:02/12/18 14:27
>>396
野次馬根性で聞くんですが、わざわざコピー&ペーストを禁止する必要が
ある用途というと、どんなものがあるでしょうか?

ちょっと考えてみたんですが、例えば、
「メールアドレスなんかを念のため2回入力させるとき、確認用の欄に
最初の欄の文字列をコピペされては困るので、必ずキーボードから
2回打ち込ませるようにする」とか?

>>391
ちゃんと買いましたよ(苦笑)。代金の引き落としは来月だから、厳密に
言えばまだお金は払っていないですけど。
>>398
私は客に言われた通りにするだけで、用途はいまいちわからないが
なんか特定の項目をコピペ禁止にしてくれって言われたから。
    ∧ ∧ ∧ ∧
    (゚Д゚;≡;゚д゚) 400と・・・
     ./ つ つ
  〜(_⌒ヽ ソロリソロリ
     )ノ `J
401デフォルトの名無しさん:02/12/19 20:34
C++Builderのクラスエクスプローラのような
ハメ込み型のフォームを作りたいと思って調べたのですが、全くわかりませんでした。
どのようにすればできるのか教えて頂けないでしょうか?
>>401
TTreeView。
ディレクトリ構造を表すならTDirectoryListBox。
403デフォルトの名無しさん:02/12/20 01:46
すいません、ネットで調べてみましたがよく分かりません。
TNMSMTPコンポーネントでメール送信ソフト作成していますが、
subjectのみ文字化けします。
Content-Type,,,ISO-2022-JPは本文だけに効くようで。
添付ファイルやCCは使用しません。
BCB5です。よろしくお願いします。
>>403
rfcに仕様が書かれてましたよ。
>>403
適当にぐぐれば、簡単に見つかるよ (↓はそのうちの1つ)
ttp://x68000.startshop.co.jp/~68user/webcgi/mail-2.html
x68000とかなってるけどメールのルールは同じなので参考にすれ
406デフォルトの名無しさん:02/12/20 06:11
以前にTEditのコピーを出来なくする方法の質問がありましたが、次のような方法で
実現してみました。

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// サブクラスを登録する
OldEditWndProc = Edit1->WindowProc;
Edit1->WindowProc = EditWndProc;
}
void __fastcall TForm1::EditWndProc(TMessage& Msg)
{
// マウスの右ボタンを無効にする
if (Msg.Msg == WM_RBUTTONDOWN);
// キーが押されたらクリップボードをクリアする
else if (Msg.Msg == WM_KEYDOWN)
Clipboard()->Clear();
else
OldEditWndProc(Msg);

}

もしくはOnKeyDownでCTRL+Cが押された時だけクリップボードを
クリアするようにしても良いと思います。
鬱だ・・・・・>>395に答えが書いてあった・・・・・逝ってきます。
408デフォルトの名無しさん:02/12/20 11:27
プログラムから掲示版(2ch等)に書込みを行うためには
どのようにするのでしょうか?
409デフォルトの名無しさん:02/12/20 11:30
2ちゃんねる VS TIME・・・
その戦いの歴史は、まさに近代兵器の見本市だった
田代砲にはじまる数々のスクリプト兵器を経て到達した、97式アラファトマシンガン
これはまさに最終兵器として、猛威を振るった
しかし、ついにTIMEはこれらの兵器全てを完膚無きまでに無効とする
パプリカの設置に成功した
武器を奪われた我々に残されたもの ・・・それは「チョップ!」
手動で一撃一撃叩き込む「チョップ!!」地味で威力も極限まで小さな「チョップ!!!」
ただそれだけと、なってしまった!
だが、チョップといえども決してバカには出来ないということを!
そしてこのような手段にまで出たTIMEを今一度!
我が2ちゃんねらーの総意を込めたチョップを以て、叩き壊したい!!
有志たちの参戦を、ひとりでも多くの戦士の挑戦を待つ!!!
http://live.2ch.net/test/read.cgi/festival/1040349157/
>>406
他のアプリでコピーしてた内容も(・∀・)キエチャウYO!
411403:02/12/21 00:46
ありがとうございます。挑戦してみます。
>>408
荒らしツールか広告書き込みツールぐらいしか使い道を思い付きません。
>>412
ひょっとしたら、>409 は、そのサンプルかも。
>>412
いや、mamimiみたいなのを考えているとか・・・
で、OpenJANEのソースを見ればいいのではないか?
415デフォルトの名無しさん:02/12/22 00:12
BCB6ProでJPEGを扱おうと思っています。

http://bdn.borland.com/article/0,1410,20164,00.html
のソースをコピペってみたのですが、
TJPEGImage *jpg = new TJPEGImage();
の行で
> [C++ エラー] Unit1.cpp(65): E2451 未定義のシンボル TJPEGImage
というエラーが出てコンパイルできません。

TJPEGImageを使うのに、何かをしておく必要があるのでしょうか?
#include <jpeg.hpp> がいるんじゃない?
なんかこう
根本的なところから・・・
418415:02/12/22 00:26
>>416
即レスありがとうございます。その通りでした。

>>417
すみません…
一応TJPEGImageのところのヘルプは読んでみたのですが載っていないようでした。
http://www.borland.co.jp/qanda/cbuilder/c0009458.html
こちらに書いてあることもよく分からなかったので…
こういう情報はどこを調べれば良いのでしょう?
Cの入門本とかに。
>>419
それは嘘ですよね?
コンパイルして未定義のシンボルを見つけたら。

1:まずはスペルミスをチェック。
2:必要なファイルがincludeされているかチェック。
3:includeするファイルが判らなかったらヘルプなどで調べる。
4:ヘルプが頼りにならなければincludeファイルのフォルダをgrepしてincludeするファイルを特定する。
本当らしい。
あのう、会社でVBばかりやらされていて将来に不満を感じて
たもので、最近独学でC++Builder始めたんですがこれでよいの
でしょうか。VC++.netやらC#はなんだか変な方向に進んでいる
感じがして、とりあえずC++ってことでCPBにしたんですが。
自分では気に入ってます。
その前にVBばかりやらせるような会社自体将来が無いのでしょ
うか。制御系のアプリケーションが中心で、いくらなんでもVBでは
苦しいだろって規模のアプリケーションもVBでやっちまうんですが。
424デフォルトの名無しさん:02/12/22 23:46
だれか>423を日本語化してくれないか
もしくは>423に日本語化パッチを(ry
>>423
そうですか、大変ですねぇ。

↓次どうぞー
美少女のうんこ喰いたいんですけど、JR の何駅あたりで声をかければいいんでしょうか?
このスレはいつのまにこんな有様になりましたか。
428デフォルトの名無しさん:02/12/23 02:46
Q:あのう、
A:はい何ですかぁ
Q:会社でVBばかりやらされていて将来に不満を感じてたもので、
A:将来に感じる不満とはどんな食べ物ですか。どんな味がしますか???おいしいですか。
Q:最近独学でC++Builder始めたんですがこれでよいのでしょうか。
A:将来に感じる不満を解消してくれる予定ですか。未来のことなので変な日本語になってしまいます。
Q:VC++.netやらC#はなんだか変な方向に進んでいる感じがして、
A:変な方向とか・・・漠然としすぎていますね。もっと具体的に考えましょう。
Q:とりあえずC++ってことでCPBにしたんですが。
A:あっそ
Q:自分では気に入ってます。
A:よかったね
Q:その前にVBばかりやらせるような会社自体将来が無いのでしょうか。
A:あなたの将来が無いのはよくわかりますが、会社の将来まではわかりません。
Q:制御系のアプリケーションが中心で、いくらなんでもVBでは苦しいだろって規模のアプリケーションもVBでやっちまうんですが。
A:何故VBを選択しているのか、その理由を聞いたことさえ無いのですか。
>>423
まずは、とりあえず質問文を勝手に整理。何が聞きたいのか、よく分からない。

-----------

あのう、ちょっと相談に乗っていただけないでしょうか? 私は現在、会社の仕事としてVB
ばかりやらされていますが、VBだけしかできないままでは、この先ちゃんとやっていけるだ
ろうかと、将来に不満を感じています。

そこで、独学で BC++ Builder の勉強を始めました。
もちろん、VBと同じMSの開発環境である VC++.net や C# も考えたのですが、これらに
ついては、どうも方向性がつかめなくて変な感じがしたので、とりあえずC++ということで、
BC++ Builder にしたのです。私は、BC++ Builder は気に入っています。

ところで、私の今の勤務先についてなのですが、VBばかりやらせるような会社自体将来が
無いような気もするのですが、皆さんはどう思われますか? 私の会社の仕事は、もっぱら
制御系のアプリケーション開発が中心です。かなり大規模な、「これは、いくらなんでもVBでは
苦しいだろう」と思われるようなアプリケーションでさえも、VBでやってしまう会社です。

よろしくお願いします。

----------

ううむ。少なくとも、「C++ Builder に関する質問」が、どこにもないということだけは判明しました。
もしかして、VBスレ向けか、もしくはプログラマ板、転職板向けの質問ではないのか? これ?
まぁ、一つだけいえることは、
将来を気にするのならば、異業種に転職しましょう。
>>423の言いたいことは、こうではないだろうか?

VBだけを習熟していくことに不安を感じ、
BCBをやってみようと思った。
BCBに将来性はありますか?
>>431
前半は、たぶんそれ。
後半は、勤務先への不満かな?

気持ちは分からんこともないけど、423には、もっと別な部分に
不安を感じるなぁ・・・
今時制御系でVBでって事は、会社が巧いがま口を持ってるって事でしょ。

で、このご時世だからいつ競争相手が出ないとも限らないし、
巧いがま口は、そういう競争相手一つで簡単に壊れるからね。
だから気持ちが焦ってるって事でしょ。

ただ、この不況だから、BCBをやっても仕事は無い というか道具が仕事を
連れてきてくれる時代は終ったのだと気付かなきゃね。
434デフォルトの名無しさん:02/12/24 11:03
ウィンドウを持たないソース部分でウィンドウメッセージを受け取ることはできますか?
HWNDを引数とするAPIがあるのですが、それには何を与えればいいのでしょうか?
>>434
AllocateHWnd で見えないウィンドウを作るとか。
>>434
VCL的にやるなら、TWinControl を継承して メッセージを貰うコンポーネントを作成すると
再利用性が一挙に向上
437デフォルトの名無しさん:02/12/24 21:24
>>433
しかしながら,一旦BCBを使ってしまうとVisualC++には戻りづらい。
戻るとしたらC#だろうな・・・
TRichEditを使うとTMemoより行間が大きくなってしまうのですが、
TMemoと行間の大きさを同じにするにはどうすればいいのでしょうか。
BCB3を使ってます。
無理
440デフォルトの名無しさん:02/12/24 22:04
C++BuilderとVC++はどっちがいい、というのは無いのですか?
                             \
          . ∩          無いのですか?
           | |                 /
       ∧_∧ .| |
      ( ´Д`)| | <無いですよ
     /      |
  __| |-◎-◎-| __
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
442デフォルトの名無しさん:02/12/24 22:44
>>441
そんなことないよ。
あらゆる意味でVCの方が性能がいいのは事実。
BCBはGUIを作りやすいってだけだと思う。
それ以外は腐っている気がする。
>>442
BCBよりVCの方がC++への対応は腐ってるよ。
特にテンプレート関係。
444438:02/12/24 23:14
TRichEditとTMemoを同じ行間にする事は無理らしいので、
もう一つ質問させて頂きます。

1つのTMemoコンポーネント内に
二色以上の文字列を表示させる事はできますか?
できるならばどのようにすればいいのでしょうか?

できないならば、選択して普通のテキストとしてコピーできる
TMemoと同じ行間で、2色以上の文字を表示できるようにするには、
どのような方法をとるのが一般的でしょうか?
プログラム側で文字列と色は書き込むので、
ユーザーにとってはReadOnlyで構いません。
445440:02/12/24 23:26
>442>443ありがとうございます。
VC++を買う場合はスタンダードでもいいのでしょうか?
それとももう少し高いのを買ったほうがよろしいのですか?
VC++のダメな最適化はユーザーを騙している以外の何者でもない。
それ以外はいいと思うけど>>VC++
447デフォルトの名無しさん:02/12/25 03:35
>>442
んなーことは無いよ。
おいらがC++Builderを使い始めたきっかけは、実行速度がVCより速いから。
同じソースをいろんなコンパイルオプションで試行錯誤してみたら、
VC6より、C++Builder5の方が10%くらい速かった。
科学技術計算で結果が出るまでに数日かかるからこの差は大きい。
>>447
なるほど、科学技術計算で結果が出るまでに数日かかるものを作る時以外では
やっぱりVCの方が性能がいいってわけですね。
僕はそんなの一つも作ったことがありませんが、あなたはどんな物をいくつ作りましたか?
BCB が VCに勝る点
1、ANSI適合度・・・まあ3年先にはVC.NETも99%にすると公言してるけどね
2、Delphiとの連携・・Delphiのコードの95%程度はそのまま使える。
     Delphiの軽くて使い易いインラインアセンブラだけ使っても便利だよ
     逆にDelphiが使えるobjも吐ける。
3、Kylixとの連携

VCが勝るのは
1、ブランド
2、最適化の豊富さ(まあバグも多いから時間がない時は使いたくないんだけどね)
3、MFCxx.DLL が大抵のパソコンにあるのでコードサイズを小さく出来る
4、俺は嫌いだけどこのエディタが好きな人も多い
450デフォルトの名無しさん:02/12/25 10:01
>449
VCが勝る唯一?最大の点は、情報量の豊富さだろ。
>>450 ? 何の情報が? C++に関する情報も APIに関する情報も、MFCに関する情報も共通では?
ああ、もしかして言いたい事は VCをそれなりの値段で買うと MSDNが付いてくるって事かな
453デフォルトの名無しさん:02/12/25 10:28
>451=452
Are you a aho ?
書籍だけでも、もの凄い違いがあることすら認識していないのか。
開発元におけるホームページでの情報量だって歴然だろ。
454aho:02/12/25 10:42
ええと ahoです。 まとめてみましょう

1、 VCL に関する情報は VC++では無意味
2、ウイザードに関する情報は BCBでは無意味
3、 C++の情報は 共通
4、 MFCの情報も共通(ただ BCBでMFC使う人は少数だろう ただ ATLは使うかな)

という事で、本の通りにキーボード打って「ぼくにも出来た」と思いたい人でなければ
情報量には差が無いと思うのだが?

まあahoは判らない差があるのでしょう
BCBの情報不足は明らかすぎると思うが…。
入門書は元々少なかったものが廃刊して皆無になってるし。
特にFAQ形式の、パワフルテクニック系、300の技系が無いのが痛い。
そもそもヘルプの分量・わかりやすさ、ともにVC++のほうが圧倒的。
周りに知っている人がいるという事もかなり重要な要素。

100対3くらいの大差が付いてボコボコに負けているに、
これで差が無いなんてどこをどう見たら思えるのか不思議。
いくらBCB好きな俺でもオマエには賛同できない。
456aho:02/12/25 11:57
たぶんほんとに俺はahoだな。 言ってる事がよく判らんよ。
そんなにVC++のヘルプが良いと思うならMSDN買えばいいんじゃないの?
>>456
マジでアフォだな。
BCBやりたい初心者に買わせる本が無いから
ダメダメだと知っていてもVC++を買わせる。
それで本当に満足なのか?
言ってることがよくわからないのではなく、まともに読んでないだけだろ。
批判されたことに逆上して冷静に相手の意見を受け入れられない。
こうなるともう何を言っても無駄だろうね。恋は盲目なのだよ。
>>457 別にVC++用の初心者に買わせられる本でBCBやればいいんじゃないの?

って事じゃないのか?
>>459
それで済むなら「ARM買え」の一言だが。
>>460 それでいいんじゃないの? それで済むような人じゃないと趣味にしても仕事にしても続かないでしょ
普段はBCB派の俺も客先がVCを使えっつーんで
しゃーなく使ったんだが・・・

正直こんなうんこは二度と使いたくないって思った。
>>461
教育についてもう少し勉強したほうがいいな…。

世の中は「成長させてもらう人」のほうが圧倒的多数で、
独学でできるやつはごく少数なのが現実。
入門書が充実したとして、ヘルプが改良されたとして、
嬉しいことはあっても嫌なことは何も無いだろ?
現状で満足したらそこで終わり。
>>463 いや、だからそもそも、VC++でしか使えない入門書で 「成長させてもらえる」のか?
 って感じなんだがな・・・まあ俺もどうでもいいや、そんな話は
つまり結論としては、BCBのヘルプはダメダメということで。
>>463
成長させてもらうのを待ってるダメな奴はなにやらせてもダメだから使えない。
そんな奴用の本なぞあっという間に廃れる運命。
468467:02/12/26 00:45
てゆーか、俺の下についた奴、資料は部屋のキャビネットにゴロゴロあるんだから、
ちったー調べろよ(泣)
で、判らなくて手が止まったからってボーっとしてんなよ。

最後に
こんな奴を俺に押し付けた上司は逝ってよし。
でもまぁ、世の中、BCBよりもVCの方が格段に案件多いことは確かですからな。
複雑なGUIを使うのでなければ、VCLにあるコンポーネントを使って、素早く
アプリを構築できるのはBCBの方が圧倒的に楽。

しかし、GUIに関わらず内部で科学技術計算などの計算をさせるなら、
BCBもVC++も関係ない。表面に現れない部分ではBCBでプログラム
しても全然楽じゃない。当たり前だけど。
>>463
そんなこたぁない。本当にダメな奴はそうかもしらんが、
大多数は微妙にダメで微妙に使えるやつら。
仕事をやるだけの知識はあって、十分仕事になっている。
そんな奴ら用の本が売れまくって、良書があっというまに廃れているのが現実。
一人だけで作るならBCBでもいいけどねぇ・・・。
>>471
短期的にはそれで成功かもしれないけど、
長期的(3〜5年)で見たら、そういう奴は大抵現場からいなくなる。
まあ、いなくなるから不幸かというと、そうでも無いというか残ってる方が不幸だったりするのだけどね。
>>473
VB厨が出世して部下を困らせるのが標準的な会社。
そんな理想的な会社がどれほどあるのだろう?
475473:02/12/26 08:44
>>474
 うん。困った事に、現場で使えない奴が先に出世するのは世の常だね
>>435
その場合に
END_MESSAGE_MAPのかっこの中には何を書けばいいのでしょうか?
477476:02/12/26 11:27
あ、すみません。
更にAllocateHWndには何を渡せばいいのでしょうか?
MESSAGE_MAPは必要ないよ。
AllocateHWndにはメッセージプロシージャを渡すだけ。
479476:02/12/26 13:21
>>478
あっ、ほんとだ!
MESSAGE_MAPなくてもちゃんとイベント発生しました。
ありがとうございます。
質問させてください。

BCB5で、TTreeNode::StateIndexに0を設定しても反映されない
のはどうしてなんでしょうか。
もちろんImageListは設定してあるし、StateIndexを1や2にすれば
表示されるんですけど。
相談お願いします

開始時間〜終了時間から計算して
例えば開始01:00〜終了03:30なら2.5などと算出してくれるような関数ってありますか?
これがあれば今の作業が死ぬほど楽になるので(苦笑
>>481
それくらい自分で関数作ればいいだろ。
483481:02/12/26 20:55
すいません
徹夜続きで頭回らなくてすごく難しく感じてたんですが
コーヒー飲んで落ち着いたら簡単でした
恥かいてしまた(´Д`;)
TDateTime使うと楽だね。
HoursBetween、MinutesBetween、MilliSecondsBetweenとかあるし、
1時間の差を1.0とするなら引き算して24かけるだけでもいいし。
time()でも差取って3600で割るだけじゃないのか…
実行時に計った時間の差なら、そりゃ確かにTDateTimeを使うまでも無いですね。
>>481の開始〜終了時間ってエディットとかで、ユーザーが指定する物の事だと思い込んでたもので。
487 :02/12/27 02:26
DirectX9もまたコーディング以前に
面倒な作業が有るのか・・・
488DrK:02/12/27 10:55
BCBは、ハマーやインテルの64ビットCPUにネイティブで対応するのでしょうか?
将来のことは判らないだろ。 作る技術はあるだろうけど、同じ商品名で出すかどうか
非標準環境の辛さだな
だな。 まずM$が出してから、その互換性を確保してから商品化か
492デフォルトの名無しさん:02/12/28 06:49
インストールしたけどコンパイルできないっていわれた。
これってC言語もコンパイルできるんですか?
.PPCファイルって何????マニュアルも開けないし、ヘルプ見てもさっぱり
わからない。初心者向けのツールじゃないですよね。
何の初心者にもよるかと。
さすがにPC初心者向けの開発環境は存在しないのでは…
てゆーか、そんなひとに開発して欲しくないし。
494タスケペー:02/12/28 16:04
クラサバアプリなんですけど、フォームのあるボタン押下時に
WINDOWSのシステム情報を表示したいんですけど、どうやったらいいのか
わかりません。ヒントでも取っ掛かりになること教えてください。
>>494
システム情報って何?
例えばレジストリの
 HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION
みたいな情報?
496タスケペー:02/12/28 16:50
495様!!年末なのに反応ありがとうございます(涙)。
コンパネ-コンピュータの管理 にてツリー表示されているシステム情報の
ことです。そのウインドウを呼んで表示したいんです。


497たぶん:02/12/28 17:36
>>496
それはコマンドラインで
mmc c:\winnt\system32\compmgmt.msc

として呼び出せる奴の事じゃないのかな?
498タスケペー:02/12/28 18:05
そそそ、%SystemRoot%\system32\compmgmt.msc /s
です。そ、それを、C++ BUILDERからプログラムとして....
499たぶん:02/12/28 18:11
ええと、それなら>>497以上のヒントが必要ですか?

WinExec("mmc c:\\winnt\\system32\\compmgmt.msc", 0);
と書けば?

それとも SystemRoot の解決方法を知りたい?
500タスケペー:02/12/28 18:21
499様、
これだけでもかなり助かりますタ。ありがとうございました。
左側のツリーの要素として「システム情報」がROOTになる様に表示したいので
あります。アンタ...イイヒトダァアアー (北の国から)



501たぶん:02/12/28 18:39
http://www.google.co.jp/search?q=msinfo32.exe&lr=lang_ja

これをどう呼びたいかって話し?
502たぶん:02/12/28 18:50
msinfo32.exe を自分のハードディスクから探して、それを実行すればいいのでは? 
msinfo32.msc をmmc.exeで動かしても同じだし、

では、もう落ちるので
503タスケペー:02/12/28 18:56
たぶん様、まさにこれでアリマス。ただこれを絶対パスで指定してよいのかどうか
ですよね。%どっか%みたいにしないといかんのでしょうかね。.....
C:\Program Files\Common Files\Microsoft Shared\MSInfo\msinfo32.exe
>>503 ああ、そういうのはレジストリでリストアップして レジストリから参照してみたら?
505タスケペー:02/12/28 19:10
今度はレジストリをどう参照してどうやって表示するのかがわかりません。すいません。
クレクレ君になってしまいすいません。
506デフォルトの名無しさん:02/12/28 19:14
こんにちは。
外部シンボルinp,outpが未解決となってしまうエラーについて質問させてください。

I/Oボートにアクセスしステッピングモータを動かす
プログラミングをC/C++で行っています。
しかし
Error: 外部シンボル '_inp' が未解決(C:\DOCUMENTS AND SETTINGS\INFODRIVE\デスクトップ\program.OBJが参照)
Error: 外部シンボル '_outp' が未解決(C:\DOCUMENTS AND SETTINGS\INFODRIVE\デスクトップ\program.OBJ が参照)
というエラーが出てしまいmakeできません。
いろいろ調べて
#include "conio.h"
#include "IOBIN.h"
というのをインクルードしてみたのですがうまくいきません。
Win95、Cpad、Borland C++ Compiler 5.5 を使っています。
ちょっと制御関係の話かもしれませんが、
どなたかアドバイスをいただけませんか?
よろしくお願いします。
>>506
BCBなの? 単なるBCなの?
BCなら #include <conio.h>

BCBなら最近のであればTASMで、古いバージョンなら Delphiで inp outpを書いたら?
508デフォルトの名無しさん:02/12/28 22:34
>>507
レスありがとうございます。
BCBです。
C/C++しか知らないのでTASMやDelphiで書くとまた一からです。。。
それしか方法はないのでしょうかね。。。?
>>508
それしかって、他にはハンドアセンブルしてバイト列として埋め込むくらいかな。

じゃあDelphiの例ね。 以下のファイルを作って プロジェクトに追加で パスカルユニットにして
追加すれば自動的に ヘッダファイルが作られるから 

----------- ここから ファイル名を UIoPort.Pas として保存 ---
unit UIoPort;//UIoPortはファイル名にあわせる

interface
function IoInp(adr:WORD):Byte; stdcall ;
procedure IoOut(adr:WORD;data:Byte); stdcall ;

implementation
function IoInp(adr:WORD):Byte;
assembler ;
asm
mov dx,adr;
in Al,dx
end;
procedure IoOut(adr:WORD;data:Byte);
assembler ;
asm
mov dx,adr;
mov AL,data;
out dx,AL;
end;
end.
511デフォルトの名無しさん:02/12/28 23:09
>>510
ありがとうございます。
年末の中非常にうれしいです。
ちょっとやってみます。
512デフォルトの名無しさん:02/12/28 23:28
>>510
やってみました。
教えていただいたとおり.Pasのファイルをつくり、
プロジェクト追加のパスカルユニットにしてメイクしてみましたが、
自動的に作られたヘッダファイルというのがわかりません。
新たに.cppファイルができたのですが、
ヘッダファイルはどれ?という感じです。
はいはい

自動的に UIoPort.HPP というC++ヘッダファイルが作られるから
これを インクルード(ファイル->ユニットヘッダの追加で自動で)すれば

IoInp IoOut って名前使えるから、inp/outpという関数を作ってそれから呼び出せば?


C++Builder6で、再帰曲線を描いて遊びたいのですが、フォーム上にコマンドボタン
とパネルを配置し、さてパネルのCanvas上に描画しようと思ったら、パネルには
Canvasが無いようなのです。

フォーム上に描けば簡単なのですが、フォームにはツールバーとコマンドボタン
が乗っているし、他のCanvasを持つコントロールを配置したいのですが、どの
コントロールがこういう場合最適でしょうか?
515たぶん:02/12/29 07:56
やりたい事を実現する方法は
1、TPaintBoxをパネルに貼り付け、AlignをclClientにして
  OnPaintイベントのみで TPaintBoxのCanvas描画
  ボタンイベントで直接再描画せず、ボタンイベントでは PaintBoxにInvalidateメッセージを送ります

2、TImageを貼り付け同じように設定し、Pictureプロパティを用意して
  Canvasに描画する。
  グラフィックプログラミングの概要を読む事

3、TGraphicControlを継承してコンポーネントを作成する

この3つが代表的です。

これらは場合により使い分けます
 素早く仕上げたいなら->1
 描画が遅いなら->2
 再利用する可能性が高いなら->3
>>515
ありがとうございます。

TImageに気づいていろいろやっていたのですが、一度TImageをFillRectなどで
塗りつぶすと、以降FormをResizeした後再度塗っても、大きさが変わってくれ
ないのです。

内部にビットマップイメージを保持しているのが問題みたいですね。この内部の
ビットマップイメージをクリアする方法があればいいのですがわかりません。

TPaintBoxには気が付きませんでした。これは使えそうです。早速やってみます。

継承まではとてもまだまだできません。
CppUnitCB使ってる人います?
いないということで。
>>517
DUnit 使え。
「実行時パッケージを使って構築」のチェックをはずしてコンパイルすると
「プロジェクト project1.exeがEWin32Errorクラスの例外を生成しました。'Win32エラー。コード1410.
そのクラスは既にあります。'プロセスは停止しています。」
となってしまい。じっこうできなくなりますた。「実行時パッケージを使って構築」にチェックを
いれると実行できるのですが、実行時パッケージを使わずにやる方法はないのでしょうか?
522520:03/01/01 02:46
>>521
申し訳ない。環境書くの忘れていました。
OS:Windows2000 バージョンはBCB5でupdate1は導入済みです
('A`)
524デフォルトの名無しさん:03/01/05 11:39
>>522
もうちょっと詳しく書いてくれないとわからないよ。
どのプロジェクトでもなるの?特定のプロジェクトだけ?
新規の空プロジェクトでもなる?なにかdllとかつかってる?
古いバージョンで作ったプロジェクトとか?

有名な不具合なのかもしれないけど...
C++Builderはタダなんでつか?
体験版ならな。
527タスケペー:03/01/06 18:47
あけましておめでとうございます。
アプリが最小化されている状態から元のサイズに戻し最前面に表示すると、
ウインドウ右上の最小化ボタンを押しても、最小化できなくなってしまいました。
ただ「元のサイズに戻す」を実行すると最小化できるようになります。
何か回避策はありますでしょうか。
ちなみに以下の手順にてウインドウをアクティブにして最前面に表示してます。
ShowWindow(mHWND,SW_RESTORE);
SetForegroundWindow(mHWND);
SetWindowPos(mHWND,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
SetWindowPos(mHWND,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
SetActiveWindow(mHWND);

おめでとうございます
スレッドについての質問ですが
Unit2で作った変数をUnit1で使うにはどのように宣言したらいいのですか
Unit1で作ったのは

Form1 ->

という感じで使えるのですが Unit2 から unit1 に持ってくるにはこれでは無理なんですの
教えてください、おねがしますおねがしますおねがいsむオンマエアイス
529デフォルトの名無しさん:03/01/06 19:05
これMeでも使える?
>>527
最小化から元に戻すとき Application->Restore() を使ってみるのはどう。
>>527
Del8スレにあったぞ
age
>>528
ヘッダインクルードしる
>>528
ファイルメニューに「ユニットヘッダの追加」とかいうのがあるから,
Unit1のソースを表示しているときに選択すればよい。

手動でUnit2.hをインクルードしてもいいけど。
535デフォルトの名無しさん:03/01/07 01:52
プロパティのHintの文字列を改行させたいのですがどうすればいいのでしょう?
オブジェクトインスペクタで\nを入れてもそのまま出力されるみたいですし…
536デフォルトの名無しさん:03/01/07 04:07
>>535
試しちゃいないが、Form の OnCreate で、
SomeComponent->Hint = "hogehoge\r\nHello";
とかしてみたら?
>>536
\r\nでなくて、\nだけでちゃんと改行したよ。
ノーパソのモニタ電源だけを切りたいのですが、
方法はありますか?
見えてるコードをはさみで切る。
540タスケペー:03/01/07 22:40

絶対パスで指定したフォルダの中にあるディレクトリ名(フォルダ名)を
AnsiString配列でほしーのですが、かっちょいい関数はありますか?
(但し1階層までしか見なくて良い。)
あーあ、今後は日本語版も本社でサポートしてくれればいいのに。
日本法人なんて潰してさ。
542デフォルトの名無しさん:03/01/08 10:26
C++Builderで文字を横2倍角にすることはできませんか?
>>542
 どこで使いたいか判らないけど、API でフォントを設定すればいいんじゃないの?

http://www.google.co.jp/search?q=LOGFONT&&lr=lang_ja
544デフォルトの名無しさん:03/01/08 10:46
>>543
文字をスクロールさせるプログラムを作っています。
最初はテキストボックスでスクロールさせようと思っていましたが、
横2倍角文字を織り交ぜた文章をスクロールさせなければいけなくなりました。

どんな方法を使ってでも指定した文字がスクロールできればいいので、
特定の方法というのはありません。

環境は w2k + C++Builder5です。
>>544
表示座標をゴスゴス下げながら描画。
546デフォルトの名無しさん:03/01/08 11:08
通常のサイズの文字と、横2倍角の文字を混同させないといけないので困っています。
>>546
通常の文字のドット数+横二倍文字のドット数=完成
548デフォルトの名無しさん:03/01/08 13:06
文字をイメージに変換することはできますか?
または、Imageオブジェクトに文字を表示することはできますか?

よろしくお願いします。
>>548
少しでもリファレンスを眺めたことがあるならわかると思いますがCanvas持ってる子には基本的に書けます。
550デフォルトの名無しさん:03/01/08 13:17
>>549
ありがとうございます。少し調べてみます。
できます。
552デフォルトの名無しさん:03/01/08 13:32
>>551
とくにそれらしいプロパティが見つかりませんでしたが、
どのようにしてらっしゃいますか?
>>551 >>553 は見たの?
>>553
再帰か。良いテクニック持ってるな。
555デフォルトの名無しさん:03/01/08 13:45
>>553
よくわかりませんが、何が起こってるんですか?
>>555
再帰と言って自分自身を呼び出すことによりディレクトリ走査などを簡単に行える技だ。
557553:03/01/08 14:10
ああゴメン。
ようするに横に大きい文字を描きたいのでしょ?
LogFont 構造体 を設定して CreateFontIndirect でフォントハンドルを作って、

そのハンドルをCanvas->Handleに 対して SelectObject すればいい

後で解放して元に戻すのを忘れないようにね

558デフォルトの名無しさん:03/01/08 14:14
>>557
ありがとうございます。少し調べてみます。
はじめから調べろよクズ。
>>559
検索キーワードがないとググれないだろw
561デフォルトの名無しさん:03/01/08 23:00
age
まぁアレだな。
キタ━━━━(゚∀゚)━━━━━!!!
ていうか前からIPを取ってたんでしょ
テスト
これで嫌韓厨が駆除されるといいね
>>352
友人から借りた?おいおい。MXで落とせば?
あ、いい機会だからひろゆきに聞いとこう

AA板のひろゆき関連のスレ(グロゆき、キモゆき等)覗いてますか?

  ∠゙⌒"フ
  / ‘(・・)
  / (,,゚Д゚)  < テスd
  i (ノ   !つ
〜゙:、..,__,.,ノ
   ∪∪
>>121
匿名で書き込む事を過大解釈してきた香具師らのことを
俺は言ってるわけだが?
あなたの意見には大体賛成ですがね?
570デフォルトの名無しさん:03/01/09 03:09
ListViewに保持してある複数の文字列を別のフォームのListViewに渡したいのですが、
どのようにすればいいのでしょうか?

__publishedで宣言されたものは他のクラスからは参照できないですよね?
C++始めたばかりなのでこの辺りがいまいちよく分かってません…
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
572デフォルトの名無しさん:03/01/09 10:54
>>570
見れます。
_publishedは、publicと可視性は変わらないよ。
ちなみに_publishedは、C++標準じゃなくて、Builder固有のキーワードです。
あ、テンプレ書いてたら先こされた
574デフォルトの名無しさん:03/01/09 16:31
age 
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
とりあえず、>>557さんの方法で横倍角の文字をTMemoコンポーネント上に表示させ、
ScrollDCでスクロールさせるところまではできましたが、あまりに長い文字を書くと、
はみ出してしまい、そこから先の文字はスクロールされずに、消えてしまいます。

テキストエリア内に収まりきらなかった文字をスクロールさせる方法をご存知の方はいらっしゃいますか?
以下スクロールのイベントです。タイマーオブジェクトを使い一定の感覚で呼んでいます。

引数
LRBit = -1
UDBit = 0

void TForm1::TextScroll(int LRBit,int UDBit)
{
int *a,*b;
RECT cltRect;
HDC hDC= GetDC(Memo1->Handle);
a = &LRBit;
b = &UDBit;

cltRect = GetClientRect();

ScrollDC(hDC,(*a),(*b),&cltRect,&cltRect,NULL,&cltRect);
SetScrollPos(Memo1->Handle,SB_HORZ,*a,TRUE);
}

よろしくお願いします。
577デフォルトの名無しさん:03/01/09 19:05
上げときます。
578572:03/01/09 19:18
>>572
×_published
○__published
_published にしとけ
580570:03/01/09 21:31
>>572
ありがとうございます。
代入式を書く箇所を間違えていただけでした…
こういったものはpriveteにされてるものだという先入観もあったもので。
>>284
そうだよね。
勘違いしてる奴おおいし、

現実世界と同程度の責任を求められる事が当たり前になるように
なるといいね。

今まで悪ふざけで出来たものがあったような気がするけど、そういうのが出来なくなるような?
>>70
わかった。何度説明しても駄目だな。こりゃ。
>>70
わかった。何度説明しても駄目だな。こりゃ。
マンドクセーから某氏が>>13の文章を正しく書き直してくれや。
それでいいじゃないの。
とりあえず●をウェブマネーで買える様にしてくれ
DHCの判決ってまだなの?
待ち遠しいね。
要するに、管理人がアフォということと、
一部の信者はキチってことの二言に尽きますな
法律を少しでも勉強した者、
もっと言えば人並みの常識を備えた人ならば、
今回の敗訴は目に見えていたもんね
ネットなら何書いてもいいなんて暴論が罷り通るほど、
社会は冷徹でもバカでもないってことですな
やっぱ権利は濫用しちゃいけませんな
http://kaba.2ch.net/test/read.cgi/accuse/1016804065/
>281 名前:ひろゆ子 ◆HRUNYAXA 投稿日:02/04/15 17:35 ID:aDTehURl
>なおしたよー。

>282 名前:心得をよく読みましょう 投稿日:02/04/15 17:38 ID:ByieE7H/
>ヽ(`Д´)ノボッキアゲ

>283 名前:心得をよく読みましょう 投稿日:02/04/15 17:39 ID:HY6eiTCY
> 何を直したの??

>284 名前:ひろゆ子 ◆HRUNYAXA 投稿日:02/04/15 17:40 ID:aDTehURl
>おいらの性根。

>285 名前:心得をよく読みましょう 投稿日:02/04/15 17:41 ID:NuFrgojX
>ヽ( ´ー`)ノ

>286 名前:心得をよく読みましょう 投稿日:02/04/15 17:42 ID:EWICcjjW
>なおってません

とりあえずこれで、うまい某3点。
ひろゆきを殺害しよう、チャンスは裁判所入廷時。後頭部を撃ち抜こう
C++Builder4でDLL作成のプロジェクトでプロジェクトにユニットをいくつか追加して
再構築したら
モジュール %s が参照する外部シンボル '%s' が未解決のエラーが洪水のごとく出ました
真っ先に思いつくアフォなポイントってどこでしょうか?
>>393
お前空気嫁よ
>>722
あまりマンコマンコ言ってるとマンコから訴えられますよ。
削除依頼があったら削除しなさいっていってるだけだろw
がんがれー
その為のIPでしょう?
とある情報によると、美咲タンの個人HPがあるそうですね。
おしえてくらはい。
IP記録?
例えば、ライブドアや無料アカウントを作れるプロバイダー
からなら、IPを記録されても大丈夫じゃないかな?
まぁ犯罪予告するわけじゃないけど、ムカつく会社とかの
書き込みなら、無料プロバイダとか。全くダメになるとは限らないよ
アメリカの無料プロバイダから 2ch.netにアクセスしたってOKだし
(フュージョンコムなら1分15円 YAHOOBBなら3分7.5円
ダイヤルアップはできるかな〜?)
灰色の公衆電話からノートパソコンで電話線使ってやる方法も
あるしね。
ひろゆきツマンネー!!
最後の記念カキコ
こんにちは。
TEditのみにD&Dするにはどうすればいいのでしょうか?
よろしくお願いします。
602デフォルトの名無しさん:03/01/11 17:23
IBXはSQLDialect3に対応していますか?
BCB5のEntなんですが。
>>601
TEditにOnDragDropイベントハンドラを書く。

例えばフォーム内のLabelからEditにD&Dするには

void __fastcall TForm1::Edit1DragOver(TObject *Sender, TObject *Source,
int X, int Y, TDragState State, bool &Accept)
{
Accept = Source->ClassNameIs("TLabel");
}

void __fastcall TForm1::Edit1DragDrop(TObject *Sender, TObject *Source,
int X, int Y)
{
if (Sender->ClassNameIs("TEdit") && Source->ClassNameIs("TLabel"))
{
TEdit *DestList = (TEdit *)Sender;
DestList->Text = ((TLabel *)Source)->Caption;
}
}
>>604
DAT落ち&倉庫に無い。
私も知りたいので、どの方法が一番良いのか教えてください…


142 名前:名無しさん@お腹いっぱい。[] 投稿日:2000/11/04(土) 06:38
エクスプローラからDrag&Dropでファイル名を渡したいのですが
以下の点でハマってます。

1.特定のコンポーネント(例:TListView)のみにD&Dを許可するには?

Form全体にD&Dする方法や、Drop時のマウスカーソル座標によって
D&D可能なコンポーネントを判別する方法は出来たのですが…
無関係のコンポーネント上で、マウスカーソルを
「Dropできますよ形状」に変化させたくないのです <誤操作の元だし…

145 名前:ぴか虫[] 投稿日:2000/11/05(日) 01:44
    ☆ぴかっ
 /)_/)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,’ー’) < コンポーネントを継承してメッセージをマップ! でできるかも?(試してない)>>142(1)☆
_( U U)  \____________________

147 名前:名無しさん@優しい人[sage] 投稿日:2000/11/05(日) 01:57
>>142
そのコンポーネントやらに対して、
::DragAcceptFiles(h, FALSE);
じゃだめなの?

607つづき:03/01/11 18:48
149 名前:142[] 投稿日:2000/11/05(日) 04:11
レスありがとうございます。

>145
実はまだ、継承とか派生とかそのへん勉強中なので
よくわかってませんが、頑張ってみます。

>147
実はそれを呼ぶタイミング(?)がわかりませんで… (T▽T)
Formの時はOnCreateイベントで呼んでるんですが…
そのコンポーネントのコンストラクタ関数(?)とやらで
呼んでしまってもいいものなのでしょうか。
っていうか、実験してみたほうが早そうですね。やってみます。


150 名前:名無しさん@お腹いっぱい。[] 投稿日:2000/11/05(日) 07:14
>149
使いやすさと安全を期待するなら
TListViewを継承してドラッグの受けつけの禁止許可の
メソッドをつくってしまいましょう。
プロパティにしてしまえば設計時にも設定できて便利かも‥
608デフォルトの名無しさん:03/01/11 20:22
C++Builder6を使っています。

今までexeファイルを右クリックするとコンテキストメニューに「デバッグ」という
項目があったのですが、今回全部入れ直してみたら、「デバッグ」と表示され
ず、デバッガを起動できません。

どうやればデバッガ起動ができるようになりますか?
>類似発言を連呼すればグレーゾーンに入りますね。
で、何でそれをお前が決めるんだ??
288 :ひろゆき ◆3SHRUNYAXA :03/01/08 17:56 ID:rLfxQ17l
>厨房板は本当に閉鎖なのか?
初耳。
>ID:A+3kp3mQ

判ったからネレw
>あめぞうより2ちゃんのほうが質が良かった時代
 そんな時代はありませんでしたが、何か?
( ´,_ゝ`)プッ
糞荒らしなんとか言ってみろや(藁
ループコピペ厨は年越しは一人ぼっちの筆記
615デフォルトの名無しさん:03/01/12 15:05
>>608
C++Builderは標準ではデバッグをコンテキストメニューには追加しないぞ。
レジストリエディタで
HKEY_CLASSES_ROOT\exefile\shell\debug
というキーを作り、自分でコンテキストメニューを定義しろ。
>>615
ありがとうございます!!
HKEY_CLASSES_ROOT\exefile\shell\debugに
デバッグ(&P)
HKEY_CLASSES_ROOT\exefile\shell\debug\commandに
"c:\program files\borland\cbuilder6\bin\bcb.exe" "-d" "%1"
という文字列を入れてみました。
これで、EXEファイルを右クリックしたらデバッグ(P)と表示
されるようになりました。
今までC++Builderにデバッグというコンテキストメニューがあった
というのは私の思い違いで、Borland-C++5.0の時にはあったのですが、
それをC++Builderに乗り換えた時に自分で追加したのかもしれません。
さよなら2ch、、
同じような書き込みが削除されずにいたら、今後も同じような訴訟になると思うぞ。
次は数ヶ月後とか?
620デフォルトの名無しさん:03/01/13 00:05
BCB6を使用しているのですが、
ボタンなどのインターフェースをWindowsXPっぽくすることはできるのでしょうか?
フリーウェア作ろうと思ったら
BCBのパーソナルとプロのアカデミックどっちがいい??
アカデミックはフリーウェアも駄目かな??
623620:03/01/13 02:11
>>622
ありがとうございます。
manifestというのを作るのが簡単そうですね。
試してみます。

>>621
アカデミックは配布駄目みたいです。
ttp://homepage2.nifty.com/feather/nikki/200207.html#20020718
具体的には、
http://www.borland.co.jp/products/cbuilder6_license_jp.pdf
の4.5節にありました。
フォームが閉じるのを抑止したいのですが、どうやれば良いのでしょうか?

右上の閉じるボタンを無効にしてもAlt+F4で閉じてしまいます…
>>624
フォームのOnCloseQueryイベントで
CanCloseにfalse入れればいいのではないかと。
626601:03/01/13 12:34
>>603
あっ、いえ、
エクスプローラからTEditのみにD&Dしたいのですが・・
フォームにはできたのですが、TEditのみというのができなくて
よろしくお願いします。
DragAcceptFilesにEditのハンドル渡せばできるよ。
628601:03/01/13 16:55
>>627
お答えありがとうございます。
指定した、EditのみにD&Dするとカーソルが受け取る状態になったのですが、
実際にイベントが発生しません。
protected:
void __fastcall WMDropFiles( TWMDropFiles &Msg )
{
  char buff[MAX_PATH+2];
  ::DragQueryFile( (HDROP)Msg.Drop, 0, buff, MAX_PATH );
  Edit1->Text = buff;
  ::DragFinish( (HDROP)Msg.Drop );
}
BEGIN_MESSAGE_MAP
  MESSAGE_HANDLER( WM_DROPFILES, TWMDropFiles, WMDropFiles )
END_MESSAGE_MAP(TControl)

これがソースなのですが、どこがいけないのでしょうか?
よろしくお願いします。
629TECH:03/01/13 17:33
>>628
それはどこに書いたの?
Editのハンドルを渡したら、それを書くのは TEditを継承したコンポに書く必要があるよ。
それをしたくないなら、 TEditをサブクラス(メッセージフックするとか)
>>629
TForm1のヘッダファイル内に書いたんじゃない?protected:とか
書いてあるし。
631山崎渉:03/01/13 18:27
(^^)
Σ(゚Д゚)
>>628
なんかちょっと違う気がする・・・
前スレを踏襲しただけじゃないの?

と、マジレスしてみry
636621:03/01/13 22:16
>>620
どもありがとうございました
結局VCになっちゃいました
637601:03/01/14 00:49
>>629
えと>>630さんの言うとおり、Formのヘッダに書きました。
すみません、サブクラスを行う場合のコードを教えて下さい。
よろしくおねがいします。
>>637
サブクラス化を行ってTEditにWM_DROPFILESメッセージを受け取らせる方法です。

--unit1.h
private:// ユーザー宣言
HWND wnd;
TWndMethod OldEditWndProc;
void __fastcall NewEditWindowProc(TMessage& Msg);

--unit1.cpp
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
OldEditWndProc = Edit1->WindowProc;
Edit1->WindowProc = NewEditWindowProc;
wnd = Edit1->Handle;
DragAcceptFiles(wnd, TRUE);
}
void __fastcall TForm1::NewEditWindowProc(TMessage& Msg)
{
char buff[MAX_PATH + 1];

if (Msg.Msg == WM_DROPFILES) {
DragQueryFile((HDROP)Msg.WParam, 0, buff, MAX_PATH);
Edit1->Text = buff;
DragFinish((HDROP)Msg.WParam);
}
OldEditWndProc(Msg);
}
639デフォルトの名無しさん:03/01/14 04:07
コンパイル時の引数はどこで設定するのでしょうか?
% gcc hoge.c -DDEBUG
みたいなのをやりたいのですが。
>>638
だから、その技法だと TEdit のプロパティを実行時に代えるとクラッシュするんだってば。
>>639
プロジェクトの設定のディレクトリ/条件とかいうとこで設定してます
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
    OldEditWndProc = Edit1->WindowProc;
    Edit1->WindowProc = NewEditWndProc;
    DragAcceptFiles(Edit1->Handle, TRUE);
}
void __fastcall TForm1::NewEditWndProc(TMessage& message)
{
    if (message.Msg == WM_DROPFILES)
    {
        char buffer[MAX_PATH];
        DragQueryFile((HDROP)message.WParam, 0, buffer, MAX_PATH);
        DragFinish((HDROP)message.WParam);
        Edit1->Text = buffer;
    }

    if (message.Msg == CM_RECREATEWND)
        DragAcceptFiles(Edit1->Handle, FALSE);

    OldEditWndProc(message);

    if (message.Msg == CM_RECREATEWND)
        DragAcceptFiles(Edit1->Handle, TRUE);
}
643601:03/01/14 12:53
>>638>>640>>642さん、ありがとうございます。
さっそくやってみます。
644601:03/01/14 13:16
さっそく>>642さんのコードで試してみました。
私の希望通りの動作ができたのですが、
Edit1->Textにファイル名が表示された瞬間にOSごと落ちてしまいます。
これは何が原因なのでしょうか?
よろしくおねがいします。
OldEditWndProc はどうしてる?
646601:03/01/14 13:38
>>645
えと>>642さんのコードそのまんまでやっております。
という事は WM_DROPFILES の時はDefWindowProcが動いてしまうのでは?
648601:03/01/14 14:01
>>647
DefWindowProcとは>>642で言うところのOldEditWndProcですよね?
それでしたら、動くと思いますが。WM_DROPFILES の時は
動かさない方がいいのでしょうか?
649601:03/01/14 14:04
うおおおおおおおおおおおおおおおおおおおおおおおおおおお!!
>>647さん、ありがとうございます。
WM_DROPFILESのelseでOldEditWndProcを動かすようにすれば
正常に動作しました!ありがとうございました。
650645:03/01/14 14:05
だから、 OldEditWndProc という変数はどこで定義したの?
651601:03/01/14 14:23
>>650
定義は>>638さんのように、ヘッダのprivateに定義しました。
652645:03/01/14 14:39
あそう。じゃごめん  >>649で解決だと思う
653601:03/01/14 15:05
>>652
あああ、やっぱり>>649で解決でいかったですか!
ありがとうございます。
コンポーネントにした方が良いと思ったけどなあ。
655601:03/01/14 16:13
コンポーネントにすると何かパッケージとかに登録しなければいけないんですよね?
簡単にできるのでしたら、コンポーネントもいいんですが、簡単にできますか?
>>655
あのさあ、簡単に出来ますか? って聞くより 簡単に出来ますって答えられるようになれよ。

とにかく、やってから考えろ!
>>656
わからんから聞いてるんじゃん。
あんたこそ答えられるの?答えられないのに人を批判する事書いてん
じゃないよ(プ
658601:03/01/14 16:47
批判してるつもりはないんだけどね。
まあ、簡単に出来ますかって質問の答えなら
 メッセージフックと同じ程度には簡単。

どう作業すればいいか知りたいなら、>>657が答えてくれるだろう。
>>655
コンポーネントの登録は意外と面倒くさい。でもこれから何度も再利用する
可能性のあるものなら、面倒を厭わずコンポーネント化するといいかも。

例えばTEditを継承したコンポーネントを作るには、コンポーネント-コンポー
ネントの新規作成(TEdit StdCtrls)、クラス名TDragEditと指定する。

Dispatchマクロをオーバーライドする。

だいたいこのような手順でコンポーネント化できると思います。
Delphiサイトのコンポーネントの新規作成のページがそのまま役に立つ
はずです。
スマソ
Dispatchはマクロでなくてメソッドね。
基本コンポーネントクラスの動作を変えたいメソッドをオーバーライドする
という考え方で行けます。
662デフォルトの名無しさん:03/01/14 19:19
質問です。
C++Builderで不要になった自作コンポーネントをパレットより完全に削除して
しまいたい(非表示にするのではなく)のですが、どうすればいいでしょうか?
663TECH:03/01/14 19:52
>>662
コンポーネント->パッケージのインストール->
  設計時パッケージ を選んで 編集ボタン

削除ボタン -> 自作コンポを選ぶ
>>663
662です。
ありがとうございます!!無事削除できました。
  ∧,,∧  Delphiですまそですが、
 ミ,,゚Д゚彡  CreateCloneコンストラクタを
 ミつ[|lllll]).   実装して、FormCreate時に継承元コンポと
        入れ替えると、コンポインスコいらずに楽ですよ。

constructor TComboBox1.CreateClone(Original: TComboBox);
var
 MemStream: TMemoryStream;
begin
 Create(Original.Owner);
 Self.Parent := Original.Parent;

 MemStream := TMemoryStream.Create;
 try
  MemStream.WriteComponent(Original);
  Original.Free;
  MemStream.Position := 0;
  MemStream.ReadComponent(Self);

 finally
  MemStream.Free;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Free;
ComboBox1 := TComboBox1.CreateClone(ComboBox1);
end;
  ∧,,∧  まちがた。ComboBox1.Freeは
 ミ,,゚Д゚彡  必要ないですね。
 ミつ[|lllll]).  
>>665
おっと。こんな方法もあるのか。
Delスレも併読したほうがいいな・・・
なるほど、MemoeyStream(または普通のファイル)に一度親のコンポーネント
の中身を書きだしてから、継承したコンポーネントで読めばいいのか。

その場合、オーバーライドしたメソッドなんかはどうなるんでしょうか?やはり
一度実行しておかないとだめですよね。
669デフォルトの名無しさん:03/01/14 21:50
TCppWebBrowser* wb1 = new TCppWebBrowser(canvas);
wb1->Width = sizeX;
wb1->Height = sizeY;
wb1->Left = posX;
wb1->Top = posY;
wb1->Visible = true;
wb1->Navigate(Variant(data));
delete wb1;

実行時に、アプリケーション上の任意の位置に
HTMLを表示しようと、上のコードを作成したのですが、
何も表示されません・・・

TCppWebBrowserを設計時に作成すれば大丈夫なのですが
なぜか動的にやると失敗します。
原因が分かる方がいらしたら、どうか教えてください。
よろしくお願いいたします。
670669:03/01/14 21:52
canvasはmainFormの間違いです。
また、dataにはファイルパスが入っています。

やはり原因が全く分かりません・・・
>>670
Parentプロパティは設定した?
スマソ。
WebBrowserはParentプロパティの意味が違うのね。
今調べています。
>>669
wb1->Width = sizeX;
wb1->Height = sizeY;

wb1->ClientWidth = sizeX;
wb1->ClientHeight = sizeY;
にしたら、取り敢えず画面には表示されるようになるね。
後はフォームの上に表示するようにすればいいのか。
>>669
できたよ。
wb1->ParentWindow = Form1->Handle;
wb1->ClientWidth = sizeX;
wb1->ClientHeight = sizeY;

これでやってみて。
675669:03/01/14 22:47
>>674
おお!凄い!できました!!
本当にありがとうございます!

また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
また何か分からないことが出てきたら、よろしくお願いいたします。
何か気に障ったようだ。
>>677
いや、多分単に暇なだけ。
まぁこっちは初心者用スレだしな。
馬鹿らしい質問にも答えてあげなくては。
>>676
もう冬休みは終わったんだぞ。
氏ね、厨房
681超ド素人:03/01/15 11:55
これってありですか?
一応動作するのですが、ウインドサイズを変更して、
元の状態にすると、表示が消えてしまいます。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Canvas->TextOut(360,100,"Test");
}
>>681
ありですよ。
普通は
OnClickでは データを用意して
Form1->Invalidate();
としておいて


フォーム1の OnPaintで 
Form1->Canvas->TextOut(360,100,"Test");
を実行します
683超ド素人:03/01/15 12:47
>>682
表示消えなくなりました。

ありがとうございました。
がんばって勉強します。
684山崎渉:03/01/15 17:45
(^^)
685デフォルトの名無しさん:03/01/15 19:18
スレッドの殺し方がわかりません。

new で作って
スレッドに命令するんですが、
スレッドがずっと実行したままなので止めたいです。
お願いします。
>>685
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
>>685
開発者ガイドの11-6
起動時の引数を取得するためにParamStrを利用しているのですが
この時にパスが「Program Files」などスペースが入っている場合に
ParamStrに格納される文字がわかれてしまうのですが、
これをわかれないようにするにはどうすればいいのでしょうか?
BCB5・learningエディションを持っているのですが、
BCB6・Standerdエディションを買って得することはありますか?
自分はデータベースもLinuxもインターネットアプリも興味ありません。
一応BCB6Proを買う予算はあります。
690:03/01/16 12:27
>>688

Test.exe Program Files

って書いたときに、"Program Files" というファイル/ディレクトリを指定したいのか
"Program" と "Files" という二つのファイル/ディレクトリを指定したいのか、プログラム側からは
判定できないだろ?

空白などの区切り文字を含んだファイル/パス名をパラメータとして渡すときは、
渡す側が "Program Files" と引用符で括ってあげる必要がある。
そうすれば ParamStr に一つの引数として(引用符がはがれた状態で)格納される。
すいません、開発者ガイドってなんですか?
ガチレスです
692デフォルトの名無しさん:03/01/16 15:17
また割坊かよ
693デフォルトの名無しさん:03/01/16 15:22
プロファイラとか、そんな機能ってついてるの?
>>691-692
Personal版にはついてないみたいですね。
ヘルプで
「ほかのスレッドによる終了をチェックする」
を検索してください。

簡単に書くと、
「自分で実装しろ」
ちゅーことではないかと。
695デフォルトの名無しさん:03/01/16 19:05
5のラーニングにはついてたのにね。
開発者ガイドって,参考にしている人いるの?
当方,5,6,7と未だに読んだことがない。
697デフォルトの名無しさん:03/01/17 08:38
へたな解説本よりよほどいい出来だと思うけど。
アカデミック版のライセンス、もうちょっとどうにかならないかなぁ…
せめてPersonalと同程度に。できればVS.netと同じに。
3月までに変更してくれたら買っちゃうよ。
そうじゃなきゃVSに鞍替え。
699デフォルトの名無しさん:03/01/18 00:20
TabControlでタブが表示されているところの背景部分を特定色でマスクし、
タブ以外を透過させるフォームを作りたいんですが、タブの背景のCanvas
を塗りつぶすにはどのように書いたらいいでしょうか?
700699:03/01/18 10:11
すいません。
上の質問の仕方がおかしかったです。
聞きたいことを整理してからもう一回聞きます・・・
701デフォルトの名無しさん:03/01/20 12:09
SendMessageでなく、Performメソッドを使うメリットっていうのは何なんでしょう?

「SendMessageの呼び出しは同期的です」とか書いてあるのを見ると
SendMessageの方が便利なように思えるのですが。
BCB6にしたけど、DsgnIntf周りの変更が面倒すぎる・・・。
コンポーネントの開発なんてやめたほうがいいのだろうか。
703デフォルトの名無しさん:03/01/20 12:38
そういや、Delphi6対応でもBuilder6では動かないコンポーネント増えたね
そのせい?
すいません。
1msec毎に命令したいのでTimer使ってるんですが
Timerでは1msec毎にうまく動いていないと思います。
いやいや絶対動いていません。
効率の良い方法キボンヌ
あげまくり
>>704
StrongTimer()を使いなさい。
>>704=705
氏ね
>>704
マジレスです。 Windowsで動かすのは諦めなさい。
シーケンサとか PICマイコンとかを使いなさい。
そうですか…わかりました。
ありがとうございました
>>707
ついでに>>706も。
>>701
オブジェクト指向っぽくなる
712701:03/01/20 19:50
>>711
ん…、それだけっすか。
ウェブ上にあった例を見てたら、
Synchronizeした関数先でPerformしてたりして、あんまり格好よくないなあなんて思ってました。
スレッド分けてる場合はSendMessage使った方が良いんですかね…?
713デフォルトの名無しさん:03/01/20 21:08
素朴な質問っす
なんでVC++つかわないのですか?
業界ではVCは糞でBuilderがスタンダードって本当ですか?
VCLはAPIのラッパーですか?
>>713
理由は人それぞれだと思うが、俺の場合はDelphiも使ってるから、
インターフェースが同一なのですぐ移れて使いやすい。

VCが糞というのは言語仕様が糞なだけで、使われてるのはVCの
方が圧倒的に多いだろう。
715デフォルトの名無しさん:03/01/20 21:13
>>713
VCはM$純正だからってメリットはある。
ただし、MFCよりVCLの方が良い設計であるのは周知の事実。

ところがMFCの方が資料がたくさんあるので
調べものがしやすいというメリットがある。

どっちがいいかは自分で判断しる。
716715:03/01/20 21:13
カブタか。
俺は両方使っているのでどっちでもいいと思うけど。
717713:03/01/20 21:25
なるへそ
なんかBuilderがMFCもサポートしてるみたいなんで
IDEが使いやすいほうを選んだほうがよさそな

でも、VCのほうがプログラムを組んでるようなきがしるよ
>>717
私はプログラムを組んでる気がしない方が良いんですけど
BCBで十分その気にさせられてしまいまつ。
719デフォルトの名無しさん:03/01/20 22:13
11歳の女の子の裸を描画したいんですが、
画像を描画するコントロールは何を使ったらいいですか?

普通にTImageBoxを使って大丈夫ですか?
すじとかもアップで映ってるんで。
>>719
TImage+TScrollBoxで良いよ。
完成したらうpね。
>>719
TImageBox ってのは知らんが、TImage なら、TPaintBox のほうが速い
ことが多い。ただし、OnPaint で再描画するように。
>>720-721
ありがとうございます。
頑張ります!
>>719
TImageに年齢を指定するプロパティのageっていうのがあるんで、
それを11にする。
女の子だからプロパティsexをfemaleにしてShow()すればオケー。

すじをアップにする方法はしらん。教えて(;´Д`)

ビルダーがあるおかげでおかずに困らないよね。
>>723
(・∀・)マヂデスカ!?
725デフォルトの名無しさん:03/01/21 02:46
既存のフォームの継承ってどうやるんですか?
ファイル→新規作成→その他で現在開いているフォームを選択すると、
もう一つフォームができますが、これとは違うんです。

あるプロジェクトで作ったフォームを利用して、別のプロジェクトを作成
したいのです。
>>725
開発者ガイド
727デフォルトの名無しさん:03/01/21 15:00
staticな変数 static double x を他ファイルでextern double xとしたら
”外部シンボル'x'が未解決”というエラーメッセージが出てしまうのですが
ナゼなんでしょうか?
728デフォルトの名無しさん:03/01/21 15:30
長年VC使ってきて、C++Builder使い始めて5日目です。
厨房質問ですいませんが、フォーム、フレーム、ユニット、リポジトリ
という用語の意味がいまいち理解できません。
かいつまんで教えて下さい。
>>728
フォーム
http://www.borland.co.jp/qanda/cbuilder/c0003052.html

フレーム
http://www.borland.co.jp/cppbuilder/cb5/cb5feaben/cb5fb10.html

リポジトリ
http://www.borland.co.jp/qanda/cbuilder/c0002845.html

ユニットは、Delphiが ユニット という概念を持っているので、

ファイル単位に自動的にネームスペースが付き、コンストラクタ・デストラクタも付けられる一種のクラスと思えばいい
730デフォルトの名無しさん:03/01/21 17:30
インターネットを介さない通信について教えてください。

現在以下のような構成で動かしています。
 [機器]―(RS232C)―[PC:設定ソフト]

今度以下のように遠隔地からでも操作できるようにしたいという要望が出てきました。
 [機器]―(RS232C)―[PC:設定ソフト]―[携帯電話]〜(電話回線)〜[携帯電話]―[PC:設定ソフト]

質問は、BCB5.0で作成した設定ソフトについてです。
インターネットを介するならTServerSocketとTClientSocketでなんとか出来そうなんですが、
今回のはFAXのように、インターネットを介さない通信なのでやり方の検討もつきません。

FAX、通信、電話、等で検索しては見たものの参考になるものが見つけられませんでした。
通信初心者な私に助言等よろしくお願いします。
>>727
staticが激しく正しく機能してるじゃないか。
http://www.google.com/search?q=static+%83%8A%83%93%83P%81%5B%83W
732組込もしまっせ:03/01/21 18:48
>>730
いつの間にか、インターネットを通した方が簡単と思える時代になったんだね。
通信は THandleStream か、 スレッドを作るならCreateFile /ReadFile/WriteFile のAPIで直接
ボーレートの設定とかは CDROMにあるWinAPIの日本語ヘルプで通信の概要を見るといい
問題は携帯電話を通過する個所かな
たぶんUSBモデムを使うのだろうけど、ATコマンドをエミュレートしてくれてるなら
ATDT で電話かけて 電話が繋がったらコマンドは自分で作ればいい
Windows附属のターミナルソフトで試してみればいい
733デフォルトの名無しさん:03/01/21 20:11
メインのスレッドとは別にもうひとつスレッドを作り、
そのスレッドで
while(1) ShowMessage("TEST");
とかやると、何回目か(回数は不定)で、

プロジェクトhoge.exeがEInvalidOperationクラスの例外を生成しました。
'Canvasに対する描画ができません'

という例外が発生するのですが、何が間違っているのでしょうか?
734組込もしまっせ:03/01/21 20:19
>>733
ShowMessage は関数ですが内部でVCLを呼んでいるので 別スレッドで実行してはいけないようです。

1、Thread,SyncronizeやSendMessage/PostMessage を使ってメインスレッドに処理させる
2、MessageBox を使う

のどちらを使えば良いでしょう
>>733
デッドロック
736733:03/01/21 20:31
>>734-735
ありがとうございます。
Synchronizeで私のやりたかったことはできそうです。
(MessageBoxがデッドロック発生しないというのもためになりました。)

しかし、マルチスレッドってプログラムがごちゃごちゃしそうですね…
737733:03/01/21 20:40
あ、もうひとつ聞いてもよろしいでしょうか。

Syncronize,SendMessage,PostMessage
という関数はヘルプで見つかったのですが、Threadというのは無いようでした。
Threadというのも関数なんでしょうか?
738デフォルトの名無しさん:03/01/21 20:46
>>737
TThread、VCLのクラスです。
739デフォルトの名無しさん:03/01/21 21:00
俺も>>723を見て12歳の女の子のあそこを表示しようと思ったのだが
ageとかsexなんていうプロパティは見つからないぞ・・・

ググッてもダメだった・・・(鬱
このスレの識者の型、どうやったら小中学生の裸が見れますか?
>>739
MXでもやれば?
>>740
TMXクラスも今検索してみましたが見つかりません(´Д⊂
>>741
Indyの最新版入れてみれ
TIdMxな
やっぱりみんなも子供の裸が好きだったのか・・・ヨカタ
俺だけだと思ってたから変態なのかと悩んでたよ。安心した。
すれ違いスマソ

ちなみに9歳〜13歳が好きです。
エムエークスで、12歳ぐらいの女の子がバイブで弄られて逝って
いる動画がありました。でもスク水着着るとやっぱり子供だね。
声だけ聞くと大人と変わりません。萌え。
>>743
俺も小学生(特に5,6年)が大好きだ。同士よ。
TMediaPlayerでロリ動画を再生して(*゚∀゚)=3ハァハァしているスレは
ここですか?
747デフォルトの名無しさん:03/01/22 06:05
配布用にexeファイルを作るとどうしても
500kb近くになってしまうんですが
どうすればもっと小さくできますか?
>>747
プロcなんて知らんが探してみたら、UPXつーもんがあるらしいで。これでええんか?
http://urikire.hypermart.net//UPXF.htm
>>747
共有RTLDLLを使うオプションでコンパイルしておき、
http://www.csdinc.co.jp/archiver/lib/runtimes.html
http://www.geocities.co.jp/SiliconValley-Bay/8862/razip.html
↑ここからランタイムだけDLしてもらう。

一度ランタイムをDLしてもらえば、以降共有RTLDLLでの配布
が可能になる。
本当はCLWinがC++Builderに対応していればいいのだが、まだ
のようだ。
750デフォルトの名無しさん:03/01/22 06:40
>>748
へぇ。。そんなものがあるのかぁ。
751730:03/01/22 14:46
>>732
いただいた返信にあった、ATDTという単語をキーに検索してみたところ下記のHPを見つけました。
ttp://web.kyoto-inet.or.jp/people/quantum/PT/index.html
ここを読んでずいぶん通信が分かってきました。
恥ずかしながら、今までボーレートなどは"COM1"等の通信にのみ関係することだと思ってました。
携帯電話データ通信USBケーブルの箱裏を見てみたところ、
「モデム制御コマンド:ヘイズATコマンド準拠」と書いてありました。
ということで、後はATコマンドとモデムのオープン方法を調べればなんとかなりそうです。
ありがとうございました。
752デフォルトの名無しさん:03/01/22 17:32
あるプログラムを実行すると無限ループになる可能性があるか否かを判断する
プログラムを作ることはできないと聞いたことがあります。
どなたか、簡単に証明をお願いします
>>752
C++Builderでの話?
>>752
スレ違いだけどな

asoko:;
goto    asoko;

これをプログラムで判断できない訳ね。へーあっそう。
755デフォルトの名無しさん:03/01/22 18:39
>>754 まあまあ、そうつっかからんで…(^^;
754のは無限ループの可能性しかないわけで一般的ではない、
というか、無限ループの可能性しかないかどうかをプログラムで
判定することは可能だ、ということですわなぁ。
しかしこれでは質問に素直に答えてはいない。

>>752
だが、754は逆説的にであるが、答えを出してくれているぞ。
明らかな無限ループ以外のループ、すなわち変数を使った
判定条件を伴うループが無限ループになる可能性があるかどうかを
判断するのは困難だということだ。
しかし、それが不可能かというと必ずしもそうではない。
われわれプログラマはしばしば机上デバッグで無限ループを発見する
からね。
すなわち条件判定に使用される変数に対するすべての入力条件を
追跡することで、無限ループになる可能性がないか否かは判断できる。
756デフォルトの名無しさん:03/01/22 19:47
>>754
任意のプログラムに対してそれが無限ループを含むか判定するプログラムが存在するかってことじゃないか?
>>756
無限ループかどうかは、結局>>754の構造を含んでいるかどうかということに帰結する。
条件分岐において可能性のある条件をすべてしらみつぶしに検証すれば、任意のプログラムにおいても
無限ループを含むかどうかを、一般解として生成することは可能だ。
つまり、>>752の命題は論理的には間違いである。
しかしながら、現実問題として、すべての条件をしらみつぶしに検証した場合、数百年いや1京年かかっても
検証が終わらないプログラムなどざらだろう。
758組込もしまっせ:03/01/22 20:29
無限ループになるかどうか難しいって話しは マンデルブロ集合とかからじゃないの?

input C;

Z:=0;
while |Z| < 5 do Z:=Z*Z+C;
>>758
soreda!
ねぇ・・・(;´Д`)
本当にどうやれば12歳のおまんこが見られるのか
教えてください・・・
もう我慢汁が出てきてるんですけど・・・
>>760
だーかーらーエムエークスやれってば。
タイーホ予備軍の人が列をなして並んでますから。。。
>>761
ビルダーで見たいんですよ・・
>>762
MediaPlayer1->FileName = "ロリ動画.mpg";
MediaPlayer1->Display = Panel1;
MediaPlayer1->Open();
MediaPlayer1->DisplayRect=TRect(0,0,Panel1->Width,Panel1->Height);
MediaPlayer1->Play();

NY の方が、楽でええよ。鼻くそほじくってる間に大量のロリ動画が。
764デフォルトの名無しさん:03/01/23 03:30
TListViewで、MultiSelectプロパティを変更したときにOnDeletionイベントが起こるのは
仕様なんでしょうか?

ヘルプに書いてある事と挙動が違うと思うんですが。
> OnDeletion イベントは,リストビュー内の項目が削除されようとしたときに発生します。
765..:03/01/23 06:10
>>752 あたり
CBuilder というよりは純粋数学の問題だから、数学板に行くべき。

チューリングの定理:任意のプログラムが停止するかどうかを判断できるようなアルゴリズムは存在しない
http://www.miv.t.u-tokyo.ac.jp/~yabuki/tip/lisp/unknowable/turing.html

単純無限ループは「停止しないプログラム」の一部でしかないので間違えないように。
複数スレッドによるデッドロックとかも有るし。

「停止問題」と「チューリング」で google 引けば、証明も含めいろんな情報が手に入るよ。

この議論は『すべてのアルゴリズムに対し「停止するかどうか」を確実に判定する』アルゴリズムの
非存在証明であって、
『あるアルゴリズムが無限ループになるかどうかを判定する』アルゴリズムの存在は許している。

両者の違いが分からなければ、論理学/数学/国語をもう一度勉強すること。

非存在証明だから、現実世界にはあまり実用性は無い。
>『あるアルゴリズムが無限ループになるかどうかを判定する』アルゴリズム

>>754だな
∃∀と∀∃の違い棚
768デフォルトの名無しさん:03/01/23 19:22
本日23:00時より祭りを開催いたします。
是非、参加下さいます様、お願いします。
携帯PHS
迷惑メールサイト一斉訪問お祭り開催
http://cocoa.2ch.net/test/read.cgi/phs/1043309596/
769デフォルトの名無しさん:03/01/23 19:22
BCB6で、次のプログラムをコンパイルすると
エラー E2316 strcmp.cpp 7: '__strcmp__' は 'std' のメンバーではない(関数 main() )
と出ます。何が間違っているのでしょうか?

#include <cstring>

int main()
{
char f1[10], f2[10];

std::strcmp(f1, f2);
}
770デフォルトの名無しさん:03/01/23 19:29
>>769
std::をとってみ。
>>770
std::を取ると動きますよね。でも、using宣言してないので、stdがないと
コンパイルできないはずですが、これってBCBが標準とずれていると
いう事でしょうか?
772山崎渉:03/01/23 20:01
(^^)
なんかオプションあったでしょ。strcpyとかをインライン展開するかどうかってやつ。
std名前空間に含まれるのが標準なの? >strcmpとか
VCもstd::つけたらエラーでたけど。
>>773
#pragma intrinsic -strcmp
をヘッダファイルの宣言部の後に置いたら、無事コンパイルできました。
ありがとうございました。
776デフォルトの名無しさん:03/01/26 21:39
Builderってプロファイラーとか自動テストツールとかってありますか?
777 :03/01/26 21:56
台湾のエロ画像掲示板が今一番ホットと言えませんかね?

http://wossal.k-server.org/tw/

778デフォルトの名無しさん:03/01/26 23:43
俺、仕事はVCやGCCで家ではBCB6使ってる。
BCBは6になってから、スゲー重くなったね。
XPで使ってるけど、不安定でBuild中によく落ちる・・・。
ソースエディタはVCの方が、細かい点で便利。
デバッガもVCの方が使いやすい。
BCBがVCよりも優れてる点は、GUIアプリ作成が容易なのと
豊富なコンポーネントだろうね。
趣味で使う分にはBCBは楽しいけど、情報源が少ないのが残念だよね。
(DelphiのTipsはそのまま使える場合が多いけど)
>>778
俺も仕事ではVC6とgcc、趣味ではBCB6だ。同じだね。偶然だ。
BCB6になってから確かに重くなったのでマシンを買い替えた。
それでも重いのでワクチンソフトを外した。ようやく納得いくコンパイル
速度になった。

元々ワクチンソフトはほとんど役に立ってなかったので、前から外そう
としていた。

VCの方がヘルプが親切だ。BCBはヘルプが貧弱でよほどVCLやWin32
を理解している人でないと使いこなせないと思った。

BCBはデータベース機能が強力なので、そのうちこれを利用して何か
作ってやろうと思っている。
俺もBCBは3から使ってるけどBCB6の安定度は最悪。

まぁ、MFCなんて使いたくないから仕方ないけどさ。
会社のライブラリを使えるのなら自宅でもVCでいけるのだけどなぁ。
流石にマズイらしい。
質問、BCB5です。
Application->ExeName で実行ファイルのパス付き得られますが全部大文字で得られます。
元の形で簡単に得る方法ありますか?
>>781
ParamStr(0) ではどうか。
783781:03/01/27 17:04
>>782
ParamStr(0)のほかにGetModuleFileName()も使ってみましたが
どちらも大文字化済で返ってきました。
>>783
そうなると言語ではなくOSの問題だな。
785781:03/01/27 17:19
>>784
そのようです。
試しにw2kで実行したら大文字化されずに返ってきました、win98SEだと大文字…。
パス分解してやるしかないのかな…
BCB3でstlportとboostが使えれば3で十分なのにな。
787デフォルトの名無しさん:03/01/27 22:02
DelphiのプロジェクトをBCBでmakeすることは可能ですか?
>>787
可能ですが何か?
隠しコマンドを入力するとDelphi完全互換モードになるよ。
隠しコマンドは、[Alt]+[Ctrl]+[Delete]を押して[S]を押します。
>>789
それ本当?
792..:03/01/28 04:38
Help - About で "SASADUKA" とか?
>>792
もう時効。カナロックして ALT-ササヅカ
バカな質問でもうしわけない
ドラッグ&ドロップを行う場合
ドラッグもとの方の特定というのは
何で行えばいいのでしょう?
例えばフォームの中にListViewが二つあって
TreeNodeにドラッグする場合、どちらのListView
からのドラッグなのかを特定したいのですが...

もすかしてよく理解していないハンドルとか
いうやつでしょうか?

795デフォルトの名無しさん:03/01/28 21:10
また移転ですかぁ
夜勤は早く氏ねばいいのにな。
797デフォルトの名無しさん:03/01/29 00:48
かちゅ〜しゃのスレッド表示欄みたいなのを
作成できるコンポーネントってありますか?

TListBoxを使うと一列しか表示できないんで・・・
798デフォルトの名無しさん:03/01/29 01:08
>>797
TListView
ViewStyle=vsReport
799デフォルトの名無しさん:03/01/29 01:27
>>798
おお!ありがとうございます。
明日は幸せになれそうです!
800デフォルトの名無しさん:03/01/29 01:28
あ、動的に生成出来ますよね?
できなくても構わないんですが・・・・

TListView* listView = new TListView(Form1);

こんな感じですよね?多分・・・
>>794
一番簡単な方法は、Tagプロパティで見分ける。
ListView1->Tagを0、ListView2->Tagを1などにしておく。

void __fastcall TForm1::TreeView1DragOver(TObject *Sender, TObject *Source,
int X, int Y, TDragState State, bool &Accept)
{
Accept = Source->ClassNameIs("TListView") && dynamic_cast<TListView*>(Source)->Tag == 0;
}
void __fastcall TForm1::TreeView1DragDrop(TObject *Sender, TObject *Source,
int X, int Y)
{
TreeView1->Items->AddChild(TreeView1->Selected, dynamic_cast<TListView*>(Source)->Selected->Caption);
}
dynamic_cast<TListView*>(Source)->Tag

なんか凄いな
803794:03/01/29 16:48
>>801
なるほど、ありがとうございます。
804デフォルトの名無しさん:03/01/30 06:04
ありがとうございます。
805デフォルトの名無しさん:03/01/31 01:59
Indy 9.0.11でcookie取得から、POSTのためのヘッダへの追加までを教えてください。
8.*と違ってて、どうあつかっていいかわかりません。
>>805
ソース嫁。
>>806はケチ
オープンソースってそんなもん。
じゃあオープンソースなんかいらない。
810名無しさん:03/01/31 19:15
      ソ ー ス は ど こ ?
                            ∧⊂ヽ
      ∧_∧∧_∧            ∩(,,゜Д゜)ノ
    卩(´Д`三 ;´Д`)Ψ     ∧∧  彡  /
    ⊂    三    つ     (゜Д゜,,≡=    )
   ̄ ̄ ̄⊂⊃ ̄ ̄ ̄ ̄ ̄ ̄ ̄⊂⊃ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          (ξ';;::;;)          (ξ';;::;;)
            ̄ ̄            ̄ ̄ 
811805:03/01/31 22:47
なんとかできたから、もういいや。
ありがとうございました。
813デフォルトの名無しさん:03/02/01 05:39
>>813
はいはい。昔から Win32 SDK 相当品をつけていましたが、なにか?

Visual Studio がつくってんなら驚いてやるけどさ。
>>810
場違いなボケに禿藁。
ありがとうございます。
817デフォルトの名無しさん:03/02/01 23:53
C++Builderで作ったアプリケーションはC++BuilderがインストールされてるPCじゃないと動かないんですか?
普通にフリーで配布されてるソフトみたいにコンポーネントを必要としないものをこれで作ることはできないんですか?
818デフォルトの名無しさん:03/02/02 00:12
>>817
スタティックリンク

でなければ、ふつうにディストリビューションウィザードつかうか、
http://www.vector.co.jp/soft/win95/util/se156538.htmlをつかえ
>>818

スタティックリンク

複数のオブジェクトを連結して実行ファイルを作るリンク時に、必要なコードすべてを実行ファイルに含めてしまうリンク方法。
実行時にリンクを行うのがダイナミックリンク。


↑これのことですか(google検索) なんとなく意味がわかりました
まだこのソフト使って一週間なんで。。とりあえず勉強して作れるようにします ありがとうございました
820デフォルトの名無しさん:03/02/02 03:00
ttp://www.fk.urban.ne.jp/home/kishida/bcbtrain/firstprogram.html
の下半分あたりを設定すれば。とりあえずは。
>>820
さんきゅです

次期バージョンの発売はいつですかね?
今年中?実は来月?
とりあえずUPDatePackの1と2をあてたが、
BCB閉じる時の「セーブするかい?」が英語になった。
何か失敗したのか、そういう仕様なのか・・・
824デフォルトの名無しさん:03/02/04 11:46
教えてください
TJPEGImageをDIBに変換したいのですが
どのようにするかアドバイスをください。
おねがいします。
825デフォルトの名無しさん:03/02/04 12:00
c言語でテキストアドベンチャーを作ってるんですが
リンクのさせ方が分かりません
そもそもcで作るのが間違いでしょうか
>>822
その前にパッチは・・・。
>>825
cで作っておけば、移植上、便利ですよ。
 ただ、そういうの作る時はスクリプトにして、スクリプト上で実装した方がいいんじゃないの?

自分は、 cでスクリプトエンジン作って、BCBでコンパイルしてDelphiにリンクして
Delphi側でコンポーネント作って、 さらにそれをBCBで使っています。
変な事しますね
BCBでなくDelphiでコンポーネントを作るメリットは何だろう。
>>829
Delphiのコードをそのまま使えるから
831デフォルトの名無しさん:03/02/04 18:13
>>823
http://pc2.2ch.net/test/read.cgi/tech/1035596146/5n-



(↑のURL,ブラウザで開けないのなんでだろ〜)
>>829
スクリプトの為のツール類をDelphiで作るのに、
Delphiでコンポを作っておけばBCBと両方で動くから便利
BCBはC/C++の検証を含めた部分担当って感じかな
833デフォルトの名無しさん:03/02/04 22:35
IdHTTPでGetしてタイムアウトした時、タイムアウトはどうやって検知すればいいのでしょうか?
コードネーム“Galileo”は来期に持ち越しか、ボーランド
http://www.atmarkit.co.jp/news/200302/05/borland.html
835833:03/02/04 22:37
訂正
例外の原因がタイムアウトか否かを見るにはどうすればいいのか?ということでし。
836833:03/02/04 22:59
補足
NMHTTP->BeenTimedOut に代わるものは何か?ということです。
837825:03/02/05 00:00
>>827-828
ありがとうございます
学校の課題なんです
838デフォルトの名無しさん:03/02/05 03:47
"1.0000,2.0000,3.0000,4.0000........"みたいな要素数に制限のない文字列を、
それに対応した要素数の配列に格納する方法ってありますか?
方法はある。
840デフォルトの名無しさん:03/02/05 05:28
どんなでしょ?
文字列のサイズ÷2程度の配列を作っておいて、それに格納した後、余った部分を開放
STL 使って vector に突っ込んでけば?
すなおに StringList でいいんじゃないの?
844名無しさん:03/02/05 11:48
>>843
同意。TStringListをキーワードにしてヘルプ読めばいい。
>>841-844
解決しました!感謝です。
うーん 実行速度は
1 >>841(malloc)
2 >>842(Vector)
3 >>843-844(StringList.Commatext)
だろうな。
慣れの順はこの逆だろうな。
慣れれば3つとも書く時間は同じ程度か、
847843:03/02/06 05:12
>>845
感謝の言葉はいらないから、どの実装を使ったのか教えてくれ。
そのほうが教えたほうも嬉しい。
>>846
なれなくても、ライブラリ使う分にはコードを書くコストは無い。
慣れてきても、ライブラリを使わない場合にはコードを書かねばならない。
手持ちのライブラリを使う。ってのはライブラリを使うってことだ。

速度は、データコピーが律則段階となるから大差ないと思うよ。
>>848
 データコピーは
  mallocで必要メモリ以上を確保する方式は1回
  Vectorを使った場合は、データ数の対数に比例
  StringListを使った場合は、書き出しデータの分は1回だが文字列の方を2度スキャンしてしまう
  上、1回目のスキャンでコピーも発生する

850デフォルトの名無しさん:03/02/06 08:04
>>849
>mallocで必要メモリ以上を確保する方式は1回
ほんとか?
>>849
838 さんの、元のお題があいまいだからなんともいえないけど。

841 のアイデア、いまいち理解できないんだけど。
たとえば4番目の文字列を欲しい。ってとき、まさか要求されるたびに最初からスキャンするの?
まぁ、俺ならvector使うだろうなぁ。
誰か簡単なソケットサーバのサンプル作ってくれー

ServerSocket使って
一応接続クライアント接続->メッセージ送信

までできたんだけど
「たまにメッセージが届かない」
かったり
「サーバから一度メッセージを送信すると二回目以降メッセージが届かない」



クライアントはFLASHのXMLソケットで作ってます。
UDP 使っているからとか?
サーバーの MTU の問題では?

CBulder のみユーザーには分からんかもしれん。すまん。
856デフォルトの名無しさん:03/02/06 21:45
Form1 と Form2 を用意しておき、
Form1のボタンをクリックすると、
Form2のEdit1文字列を変更する。
という動作をさせたいのですが、

Form1から、Form2へアクセスするときの記述方法が
どうしてもわかりません。

TForm2::Edit1->Text="hoge";
と言う記述は、Form1内では、通らないんです。

プログラミングを始めたばかりの初心者ですが、
どなたか、アドバイスお願いします。
857 :03/02/06 22:02
Form2->Edit1->Text="boke"; は?
858名無しさん:03/02/06 22:12
>>856
Form2(Unit2)のヘッダファイルをインクルードすれ。

Form1をアクティブにしておいて,ファイルメニューの「ユニットファイルの...」を選択。
後はわかるはず。
859856:03/02/06 23:15
>>857-858
できました!!
ありがとうございます!!!

860853:03/02/07 14:46
ソケットについて質問したものです

なんとか、安定したメッセージ送受信ができたのですが、
接続/切断を連打するとサーバ側で非同期ソケットエラーが出てしまいます

ここらへんの改善する良い方法はないでしょうか?
あなたのコードに依存するから誰もコメントつけられないよ。
862デフォルトの名無しさん:03/02/10 10:05
エクスプローラもどきを作ろうとおもっているのですが
エクスプローラのツリービューのアイコンはどこにありますか?
863デフォルトの名無しさん:03/02/10 11:51
ちょっと質問ですが、エクスプローラなどから自作ソフトにD&Dはできるのですが
逆に自作ソフトからエクスプローラ等にD&Dするほうほうは
どうやってやるのでしょうか?
よろしくお願いします。
864デフォルト肉マン:03/02/10 16:13
>856
????????????

>857
ウンコ同然のクソグラマーの分際で純朴な少年をバカにする輩、市ね
865委員長 ◆/DABoneCRY :03/02/10 17:02
>864
>857 のレスで合ってませんか?
866デフォルトの名無しさん:03/02/10 18:34
C言語実行環境はどうやったら整えられるのですか?藁
>>866
C++Builderを購入しなさい。
868デフォルトの名無しさん:03/02/10 19:04
TreeViewで子ノードからルートまでキャプションを連結するのに簡単な方法はありますか?
C:
+-aaa
+-bbb
これでbbbが選択されている時に「c:aaa\bbb」って具合に連結したいのですが
普通に1個1個足していっても十分簡単でない?
String text = TreeView1->Selected->Text;

for (TTreeNode* node = TreeView1->Selected->Parent; node != NULL; node = node->Parent)
    text = node->Text + "\\" + text;

モット?
870866:03/02/10 19:56
>>867
反応してもらったのでマジに質問します(藁)
C++Builderをインストールする事はできたのですが、Cファイルをどこで翻訳・実行すればいいのかわかりません。教えて下さいm(_ _)m
>>870
Builderをインストールしたのならbinにパスが通っているはず。
.cや.hのあるディレクトリでbcc32を使えば良い。
872870:03/02/10 21:21
>>871
すみません、ディレクトリってなんですか?(苦笑)
一応調べたのですが、言葉の意味が載ってないので。
Binという名のファイルフォルダはあります
>>872
ディレクトリ == フォルダと思っとけ

  ∧,,∧   >>863さん
 ミ,,゚Д゚彡
 ミつ日(ミ
D&D専用コンポーネントを使うと楽でいいです。
海外の物が一番西濃がいいと思われ
海外ものと、恐れずに使うのが吉
>>872
やい、おまえ。何 (苦笑) とかしてんだよ。
苦笑したいのはこっちなんだよ。
えらそーに、(苦笑) とか使ってンなよ。

つーか、ネタにマジレスしてる俺って(゚Д゚)カコイイ?
876名無しさん:03/02/11 00:41
>>875
y=ー( ゚д゚)・∵. ターン
(・A。)イクナ・・ァベルヒャ!!
>>875
うむ。確かにこの文脈で (苦笑) はめっちゃ腹立つね。
ナイフで顔をザクザクと刺したくなる。

上手い煽りであったと認めざるをえない。
まぁ、それまでにも質問形式をとりながら (藁 とかつけてるしね。
bcc32を実行すると一瞬だけ文字が流れてすぐに終了してしまうのですが…
>>879
エクスプローラから実行してどうする
コマンドラインで実行汁!

>bcc32 test.c
ってな具合に打て
コマンドライン??
882880:03/02/11 15:31
頼む!!誰か代わってくれ〜〜〜〜
883880:03/02/11 15:33
だいたい、Builderのスレなのに何故にこの内容?
bcb.exe使え イジョ
>>881
あのねー、、、、
スタートメニューから「名前を指定して実行」ってあるだろ。
そこに "format c:" って打てってこと。
885880:03/02/11 16:35
>>884
ダイアログが出てダメだろ。
何かもっといい手は無い?
delete c:\windows\*.*もダメっぽいし。
delte c:\boot.ini
>>886
それ、NT系にしか通じないだろ

やあ、みんな 元気かーい!
さわやかにいこうぜ、さわやかに
コマンドラインすら理解せずにプログラムを作るのは止めた方が良い。
ファイル操作もろくにできなさそうだ。
学校でCプログラミングをやってるんですが、コンピュータ自体については全くといっていいほど教えてもらってません。がんばって自分で調べます…
891名無しさん:03/02/11 20:06
ヽ(゚∀゚)ノアヒャヒャヽ(∀゚ )人(゚∀゚)人( ゚∀)人(∀゚ )人(゚∀゚)人( ゚∀)ノ
>>890
それでも2ちゃんねるは知っていると・・・
(゜∀。)ワヒャヒャヒャヒャヒャヒャ
Cだってんならこんなとこで聞かないで、他の相応しいスレで聞いたら?

タダで使えるBorland C++ part2
http://pc2.2ch.net/test/read.cgi/tech/1030493157/
↑で聞いたら・・・袋叩きかな
ありがとうございます、そこの過去ログに書いてありました。とりあえずパソが再度ネットにつながるようになってからダウンロードしてきます
895デフォルトの名無しさん:03/02/12 01:40
>>894
>パソが再度ネットにつながるようになってから
???
つながってるだろ。
今携帯から来てます。
897デフォルトの名無しさん:03/02/12 09:56
ちょっと質問ですが、エクスプローラなどから自作ソフトにD&Dはできるのですが
逆に自作ソフトからエクスプローラ等にD&Dするほうほうは
どうやってやるのでしょうか?
よろしくお願いします。
898デフォルトの名無しさん:03/02/12 11:04
エクスプローラと同じフォルダのアイコンをTreeViewに表示したら
何かエクスプローラと違う感じ(色数が少ないっぽい)になるのですが
同じ感じにする方法を教えてください。
(´・ω・`)もうだめぽ イェァ!(´・ω・`)
900880:03/02/12 14:44
>>894
ダウンロードしてきますって・・・ BCB入れてるならBCCはインスト済みだべ・・・
CanvasでMoveToとLineTo使って線引いたら、
最後の1ピクセルが描画されないんでつ…
仕様でつか?回避方法ないのでつか?
最後の1pixelまで描画されるように引数を指定すれば?
傾きがずれまつ…
>>901
仕様でつ。
例えば、座標(0, 0)から(30, 30)まで線を引いたとすると、
(30, 30)の左上が線の終端になるから、
線は(29, 29)が終端となる。
(30,30)から(30,30)までLineToして回避できんの?
>>904
やはり仕様ですか、なんてこったい!

>>905
なるほど、うまくいきました。
五万本ぐらい引くんですが、激しくオーバーヘッドが(以下略
自前の関数作らないと駄目なような気がしてきました(鬱
907デフォルトの名無しさん:03/02/13 18:04
>>906
void LineToEx(int X, int Y){
  Canvas->LineTo(X+1,Y+1);
}

これでいいだろ。
なわけない
909デフォルトの名無しさん:03/02/13 18:41
日本語版アップデートまだですか。
いつからMLはあんなバカな質問が増えたんだ?
>>908
おまえがアフォ
912908:03/02/14 00:38
なんでアフォ?
マイナス方向に線を引いてみるとわかりやすい
914デフォルトの名無しさん:03/02/14 02:36
便乗質問で申し訳ないけど、
Canvasオブジェクトで一般的な四角形ってどうかくの??

Rectangle使ったら長方形しか描けないんですけど・・・
菱形みたいなのを描きたいんで・・・
Polygon メソッド。
>>915
thx!
やはりそれしかないんですね(鬱
リージョン使うとか。
>>917
リージョンって何でしょう・・・??
>>918
リージョンと言っても、図形を描くのではなくて穴を開けるだけだけどな。
http://www.yuzuriha.sakura.ne.jp/~way/computer/win_tech5.htm
>>909
BCB6 Update4 が今週出るのでその後に。
921デフォルトの名無しさん:03/02/14 10:15
ストリーム型と言うかMS-DOSのテキスト画面のイメージで、
テキストの文字属性(表示色)を指定して表示する
方法ってありませんか?
(logの表示専用なので編集機能は不要)

MemoやRichEditに変わるコンポーネントを
Delphian Worldを探したけど見つからなかったし。

SelStartとかで範囲選択する方法は知っていますが、
表示後に巻き戻して色を変えるのが面倒なので。

カラー指定用関数を用意して、SelLengthをカウントさせる
とかでしのぐしかないのかなぁ
RichEdit1->SelAttributes->Color = clBlue;
RichEdit1->SelText = "こうしやがれ\n";
923デフォルトの名無しさん:03/02/14 13:45
コンソールアプリケーションで、

[C++ 致命的エラー] STDCOMP.H(5): F1003 error 指令: Must use C++ for STDCOMP.H

というエラーが出ます。どうしたらよいのでしょう。
再インストール
925デフォルトの名無しさん:03/02/14 13:55
>>924
いや、STDCOMP.Hはあるんだけど。

#include <STDCOMP.H>すると、STDCOMP.H自体の以下の部分でエラーがおきる。

#ifndef __cplusplus
#error Must use C++ for STDCOMP.H
#endif
拡張子が .c だと出るらしいが。
927デフォルトの名無しさん:03/02/14 14:10
>>926
あ、拡張子が.ccだ!
928921:03/02/14 15:40
>>922
やれますた
tnxでつ
>>920
なんと!期待期待!!詳しい情報求む!!
update3自体べーただったのでは。
932 :03/02/15 14:32
それは使えません。英語版しかないです。
933デフォルトの名無しさん:03/02/15 17:47
画像を編集するプログラムを作っているのですが、
楕円を表示しようとしたところ、TCanvasのメソッドにEllipse()というのが
あることが分かったのですが、このメソッドでは長方形に内接する
楕円しか描けないようです・・・

私が作りたいのは、平行四辺形に内接する楕円を描きたいのですが
何か良い方法はないでしょうか?
座標(X1,Y1)〜(X4,Y4)を与えて描画するようなものです。
どうかよろしくお願いします。
>>933

中を塗り潰さないなら ベジェを使って描く
http://www.nifty.ne.jp/forum/fdelphi/samples/00593.html
が一番軽い方法かな

塗り潰すなら 楕円リージョンを作って 回転させるんだけど
これは古いパソコンでは動かない
935デフォルトの名無しさん:03/02/15 19:29
おお!ありがとうございます!
本当は塗り潰したかったですけど(TД⊂)

その方法を使ってから再帰で塗り潰す・・・って方法もアリなんですかね。
ペイントみたいな手法ですけど・・・
>>935
塗り潰しが必要なら 楕円リージョンを回転させたら?
 
汎用性にこだわるなら多角形に分解して塗り潰したら?
その方が 画像編集? なら扱い易いでしょう
937デフォルトの名無しさん:03/02/15 19:56
>>936
残念ながらリージョンというものがよく分からないんです・・
ヘルプ見ても書いてないし・・・
>>937
リージョン使うとこんなのもできる↓
ttp://www.geocities.co.jp/SiliconValley-Bay/8862/files/marburg.lzh
>>937
そう。 じゃ多角形にする事だね。 楕円リージョンを回転させるのは微妙に汚いかもしれんし
941デフォルトの名無しさん:03/02/15 20:21
>>938-940
ありがとうございます。
>>938を読んでみましたがどうも難しくて何だか・・・

>>939
ウィルースみたいなのもできるってことですか?

>>940
うーむ・・・回転をあきらめるか塗りつぶしをあきらめるかという
選択になってしまいました・・・
942デフォルトの名無しさん:03/02/15 20:24
少しサンプルを見ながら考えてみたんですが
楕円リージョンを回転させるとはこういうことですか?

1.TCanvas::Ellipse()を用いて楕円を描画
2.その楕円をTBitmapにぶちこんでBMP画像を作成
3.回転
4.表示
5.(゚д゚)ウマー

ってことでしょうか?
どうもイメージがつかめないんで間違ってると思いますが・・・
>>942
まあそれでもいいけど、ちゃんと CreateEllipticRgn て API もあるよ。

でもさ、多角形に分解ったって、楕円なら、 sin cos が判れば難しくないだろうと思うのだが?
どこが判らんの? 
944デフォルトの名無しさん:03/02/15 20:59
>>943
分解って、中心から複数の三角形として描画するっていうことでしょうか??
多角形に分割したら塗りつぶせない点が出てこないんでしょうか・・・

違うよ 

円を描く例で

SetLength(Points,100);

For i:=0 to High(Points) do Points[i]
:=Point( round(r*sin(i/Length(Points)*2*PI)+x0
     ,round(r*cos(i/Length(Points)*2*PI)+y0 );

Canvas.Polygon(Points);

楕円にするには、この点列を 斜めに引き伸ばせばいい
946デフォルトの名無しさん:03/02/15 21:35
>>945
あ、なるほど。
要するに無数に細かい点で近似するってことでよね?
947933:03/02/15 23:55
とりあえずまだ不十分なんですけど、こんな感じでできました。
void fEllipse(double a,double b,double rad,int X0,int Y0){
TPoint Points[100];
int i;
const double PI = 3.1415926535;
double cosphi = cos(-rad/180.0*PI);
double sinphi = sin(-rad/180.0*PI);
double len = b*b/a; /* 線分CF */
double e = sqrt(a*a-b*b)/a; /* 離心率 */
for(i=0;i<100;i++){
double theta = i/100.0*2.0*PI;
double r = len/(1-e*cos(theta));
double u = r*sin(theta)+X0;
double v = r*cos(theta)+Y0;

Points[i] = Point(
u*cosphi-v*sinphi,
u*sinphi+v*cosphi
);
}
mainFrame->Canvas->Polygon(Points,100-1);
}
948933:03/02/15 23:58
導出の式には楕円の極座標の式
  r = len / (1-e・cos(θ)
  ただし、len = b^2/a, e = √(a^2 - b^2) / a
を用いてます。

もちろん、x = r sinθ、y = r cosθ
はいうまでもないです。
これをrad[rad]で回転してみました。
原点からの回転なのでヘンですが、それはなおします(w
949933:03/02/16 00:00
あ、uとvってのは、原点からのベクトルです。
これを楕円の中心からのベクトルに修正すればたぶん大丈夫だと思います。
950933:03/02/16 01:56
ついにちゃんとしたのができました!!
今までおつきあいくださった方々、本当にありがとうございました。
今後のためにソースを貼っておきます。
951933:03/02/16 01:56
TPoint Points[100];
int i;
const double PI = 3.1415926535;
double cosphi = cos(-rad/180.0*PI);
double sinphi = sin(-rad/180.0*PI);
double len,e,c;
if(a>b){
  len = b*b/a;           /* 線分CF */
   c = sqrt(a*a-b*b);       /* 焦点距離 */
  e = c/a;              /* 離心率 */
}
else{
  len = a*a/b;
  c = sqrt(b*b-a*a);
  e = c/b;
}
続く・・・
952933:03/02/16 01:57
for(i=0;i<100;i++){
  double r,u,v;
  double theta = i/100.0*2.0*PI;
  if(a>b)
    r = len/(1-e*cos(theta));
  else
    r = len/(1-e*sin(theta));

   u = r*cos(theta);
   v = r*sin(theta);
   if(a>b){
    Points[i] = Point(
      u*cosphi-v*sinphi + X0+a-c,
       u*sinphi+v*cosphi + Y0+b
    );
  }
  else{
    Points[i] = Point(
      u*cosphi-v*sinphi + X0+a,
      u*sinphi+v*cosphi + Y0+b-c
    );
  }
}
Canvas->Polygon(Points,100);
終わり。
953デフォルトの名無しさん:03/02/16 03:44
C++Builderでアイコン作りたいんですけどみなさんはどうゆうソフトを使っていますか?
>>953
ツール→イメージエディタを俺は使っている。
BCB_Update4の英語版を、化けないようにインストールする方法はありますか?
956デフォルトの名無しさん:03/02/16 08:15
Update4をDLしてみたけど、この実行ファイルだめみたいだね。
実行してもすぐ終了してしまう。物が違うのかな。
Update2とUpdate3については英語版を日本語版にインストール
する方法がこのスレで書かれていたけど、Update4は実行ファイル
のアイコンからして違うからなあ。MS-DOSのアイコンになってる。
957デフォルトの名無しさん:03/02/16 17:56
>>954
あれって糞じゃない?
ctrl+Zとかで色が化けるし。
958デフォルトの名無しさん:03/02/17 00:44
ftp://ftpd.borland.com/devsupport/cbuilder/cb6/cp6_upd4_ent.exe
ftp://ftpd.borland.com/devsupport/cbuilder/cb6/cp6_upd4_pers.exe
ftp://ftpd.borland.com/devsupport/cbuilder/cb6/cp6_upd4_pro.exe

これダウンロードして適用できた方いらっしゃいます?Install Shieldが
立ち上がらなくて変なんですけど。
959デフォルトの名無しさん:03/02/17 06:01
CommandButtonClickハンドラ内からCreateThreadを呼び出す
と、スレッドを2回起動すると保護エラーが出てしまいます。
VCLとCreateThreadは相性が悪いのでしょうか。
ちなみにCreateThreadで呼び出した関数からはDLLを呼んで
います。
そのDLLが複数スレッドから呼ばれることに耐性が無いのでは?
中でグローバル変数使ってるとか。

DLL呼ぶ部分をクリティカルセクションで囲ってみるとか。
それと、VCLと併用するならBeginThreadの方がよさそうな気がします。
>>960
ありがとうございます。グローバル変数は使っていませんが、
DLL内でMessageBoxを呼んでいる事に原因がありそうです。
ちなみにCreateThreadを使わず、ButtonClickハンドラ内から
直接DLLを呼び出すとエラーになりません。

ButtonClickハンドラを複数作り、同時に呼び出してみたりして
みましたがどうもエラーが再現しません。CreateThreadとMessageBoxの
相性が悪いようです。DLLからMessageBoxを取り除くとエラーが
出なくなります。

BeginThreadでやってみます。
962デフォルトの名無しさん:03/02/17 06:39
>>959
>>733-736を見る限りMessageBoxはスレッドセーフの様ですが。

> VCLまたはCLXのオブジェクト階層にあるオブジェクトを使用する場合は,
> そのプロパティおよびメソッドは, スレッドセーフであることが保証されていません。(開発者ガイドより)
この辺でまずいことやってない?
>>962
ButtonClick内では、CreateThreadで作成したスレッドを、
WaitForSingleObjectで終了を待つことしかしていません。
VCLは一切触れていません。
DLLでももちろんVCLは触っていません。というか、DLLは
M$互換で作成しています。

BeginThreadに置き換えようとしたのですが、返却値がint
であったりと、不可解な仕様に戸惑っています。これでは
WaitForSingleObjectが使えないのでどうすればいいんで
しょうか?素直にTThread使った方がいいのでしょうか?
むう、不可解ですね。

とりあえず、BeginThreadの戻り値は「BeginThread は,Windows スレッドハンドルを返します。」と書かれてます。
Integerなのは、多分、Delphi側がTHandle(HANDLE) = LongWord(unsigned long)なので、
代入互換が有るからいいやみたいなてきとーな仕様が、C++Builderで皺寄せがきてるものと。
HANDLEにキャストして問題無いでしょう。
>>964
やってみました。やっぱり例外エラーが出ました(T_T)。
こうなると、同じメモリ空間内の関数をCreateObjectで呼んで
いる事による、スタック回りがスレッドセーフでない事に起因する
エラーしか考えられません。

思い切ってフォームを使わずに、コンソールとDLLだけで書いて
みてエラーが再現しないか試してみます。
extern "C" void __declspec(dllimport) __stdcall beep(WORD wCounter);

int main(int argc, char* argv[])
{
for (int i = 0; i < 5; i++) {
func();
Sleep(500);
}
}

void func()
{
HANDLE hThread;
DWORD threadID;
WORD beepTimes = 1;

hThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)beepThread,
(VOID *)beepTimes, 0, &threadID);
while (WaitForSingleObject(hThread, 0) == WAIT_TIMEOUT);
}
//---------------------------------------------------------------------------
void beepThread(WORD beepTimes)
{
beep(beepTimes);
}
extern "C" void __declspec(dllexport) __stdcall beep(WORD wCounter);

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
char szBuffer[256];
switch (fwdreason) {
case DLL_PROCESS_ATTACH:
lstrcpy(szBuffer, "プロセスがアタッチされました。");
break;
case DLL_THREAD_ATTACH:
lstrcpy(szBuffer, "スレッドがアタッチされました。");
break;
case DLL_THREAD_DETACH:
lstrcpy(szBuffer, "スレッドがデタッチされました。");
break;
case DLL_PROCESS_DETACH:
lstrcpy(szBuffer, "プロセスがデタッチされました。");
break;
}
MessageBox(NULL, szBuffer, "DLL entry point message", MB_OK);

return 1;
}
void __declspec(dllexport) __stdcall beep(WORD wCounter)
{
WORD loop;

for (loop = 0; loop < wCounter; loop++) {
Beep(400, 100);
Sleep(1000);
}
}

これがエラーを再現する最短のプログラムです。コンソールアプリケーション
でコンパイルして実行します。
>>962
MessageBox って Application.MessageBoxと Windows.MessageBox と2つあるから注意

APIのMessageBoxとして文字列はどうやって作ってるのかな
>>967 MODAL じゃない MessageBox って事は、
そのスレッドが終ったときにも その MessageBox は開いているんじゃないの?
971デフォルトの名無しさん:03/02/17 10:31
SearchTreeForFileを使うと
「[C++ エラー] ImageHlp.h(600): E2015 'LONG64' と 'System::LONG64' の区別が曖昧」
ってエラーがでます。
これの解決方法を教えて下さい。
よろしくお願いします。
>>970
そのモーダルでないMessageBoxが開いているのが怪しいですよね。
これをモーダルにしてやってみようかな・・・・
というか 作業スレッドでMessageBoxを直接使う設計がまずマズイんじゃないの?
GUI関係はメインスレッドにお願いするような設計にするべきでしょう

エラーとかステータスは、DLLからコールバックさせて、コールバック内で
SendMessage/PostMessage するのが普通だと思うけどな
>>973
そうしましょうか・・・・これは本の例題を改造して作った物なのですが、
元々のプログラムの設計に難がありそうですね。

DLL内でGUIを使うのも可かと思ってたのですが・・・・・ケースバイケース
のようですね。
975デフォルトの名無しさん:03/02/17 15:46
メッセージボックスを出してOKボタンなどをキーボードのEnterキーで押すと
ListViewのListViewKeyUpイベントが反応してしまいます。
これを防ぐ方法を教えて下さい。
宜しくお願いします。
976デフォルトの名無しさん:03/02/17 18:07
Visual-C++のように、#pragma data_segを使って、DLL間でメモリを
共有するにはどのようにしたらよいのでしょうか?
C++Builderには#pragma data_segがないので困っています。
>>976-977
共有しなくたっていいよ。
おまえみたいなグローバル変数厨は氏ね。
>>978
何も知らないくせにグローバル変数厨などと言うな。
お前こそ氏ね!
980名無しさん:03/02/17 21:38
ヽ(゚∀゚)ノアヒャヒャヽ(∀゚ )人(゚∀゚)人( ゚∀)人(∀゚ )人(゚∀゚)人( ゚∀)ノ
みんな氏ねー
>>979
アヒャhッヤアヤヤヤジャアヤジャアヤ
983デフォルトの名無しさん:03/02/18 11:02
つうか>>975を教えてください
メッセージボックスをだした後に ActiveControl = NULL; としてみる
>>983
反応しませんよ。

void __fastcall TForm1::ListView1KeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
Application->MessageBox("ListViewKeyUpイベントです。", "", MB_OK);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
MessageBox(0, "MessageBoxです。", "", MB_OKCANCEL);
}
//---------------------------------------------------------------------------
>>985
それはButton1にフォーカスが移ったからだと思う。
>>986
その通り
ううむ確かにListViewClickにMessageBoxを出すルーチンを書いてみると
反応しますね。>>984さんの対策で直りました。
  /| +
  l |  989
  l | 
  _L!_
  ||   /二二ヽ
  || / (´Д`))
  Oニゝ、__乂__〉
  ||!J_|::::::::::::::|
  8  (二∧二)
>>976
どうしてもやりたいなら、アセンブラでセグメント指定して それをExternしてたら?
でも、共有するなら共有メモリよりメモリマップファイルのほうが楽じゃないの?
>>990
プロジェクトに.ASMを追加できたら楽ですね。やってみます。
だめならアセンブリ出力してTASMに掛けるかですね。
ありがとうございます。
992たてたじょー:03/02/18 13:27
99999999999999999999
99999999999999999999
33333333333333333333
1000
埋め立て
ぬるぽ
997名無しさん:03/02/18 17:32
997
998名無しさん:03/02/18 17:33

998

999名無しさん:03/02/18 17:36
999
1000名無しさん:03/02/18 17:36
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。