C++Builder相談室 Part15

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C++Builderに関する質問・回答や議論等を行う相談室スレッド。


過去スレ・関連サイトは>>2-7あたり。
2デフォルトの名無しさん:2005/08/21(日) 17:49:03
<過去スレ>
C++Builder相談室
http://piza2.2ch.net/tech/kako/969/969458279.html
新C++Builder相談室(C++Builder相談室 Part2)
http://pc.2ch.net/tech/kako/997/997074601.html
C Builder相談室 Part3
http://pc3.2ch.net/tech/kako/1016/10160/1016065855.html
C++Builder相談室 Part4
http://pc5.2ch.net/tech/kako/1035/10355/1035596146.html
C++Builder相談室 Part5
http://pc5.2ch.net/tech/kako/1045/10455/1045542179.html
C++Builder相談室 Part6
http://pc5.2ch.net/tech/kako/1054/10542/1054280736.html
C++Builder相談室 Part7
http://pc5.2ch.net/tech/kako/1061/10615/1061594556.html
C++Builder相談室 Part8(html化待ち)
http://pc5.2ch.net/test/read.cgi/tech/1070222674/l50
C++Builder相談室 Part9(html化待ち)
http://pc5.2ch.net/test/read.cgi/tech/1080541814/l50
C++Builder相談室 Part10(html化待ち)
http://pc5.2ch.net/test/read.cgi/tech/1089299158/l50
C++Builder相談室 Part11(html化待ち)
http://pc5.2ch.net/test/read.cgi/tech/1094749339/l50
C++Builder相談室 Part12(html化待ち)
http://pc5.2ch.net/test/read.cgi/tech/1099238936/l50
C++Builder相談室 Part13(html化待ち)
http://pc8.2ch.net/test/read.cgi/tech/1108468718/l50
C++Builder相談室 Part14(前スレ)
http://pc8.2ch.net/test/read.cgi/tech/1116460578/l50
3デフォルトの名無しさん:2005/08/21(日) 17:49:35
<関連スレ>
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/l50
Borland C++ BuilderX
http://pc8.2ch.net/test/read.cgi/tech/1065260556/l50
タダで使えるBorland C++ Part4
http://pc8.2ch.net/test/read.cgi/tech/1091066805/l50
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc8.2ch.net/test/read.cgi/tech/1093654251/l50

<VCL兄貴のDelphiスレ>
くだすれDelphi(超初心者用)その26
http://pc8.2ch.net/test/read.cgi/tech/1121249711/l50
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その24
http://pc8.2ch.net/test/read.cgi/tech/1120195090/l50
Delphi相談室(上級者用)その12
http://pc8.2ch.net/test/read.cgi/tech/1064766880/l50
【Delphi初心者】今から始めるDelphi Part01
http://pc8.2ch.net/test/read.cgi/tech/1062422335/l50
【大量・便利】Delphiコンポーネント【再利用】
http://pc8.2ch.net/test/read.cgi/tech/1051802300/l50
4デフォルトの名無しさん:2005/08/21(日) 17:50:11
<関連サイト>
公式サイト
http://www.borland.com/cbuilder/
http://www.borland.co.jp/cppbuilder/
builder-ML 過去ログブラウザ
http://leed.issp.u-tokyo.ac.jp/~takeuchi/builder/browse.cgi
http://www.sfdata.jp/ML/cbuilder/newlog.php?ml=cbuilder
C++Builder メーリングリスト
http://www.sfdata.jp/ML/menu.php?ml=cbuilder
C++Builder ML
http://www.jpdoc.com/cbuilder/
nifty/Delphi & Borland Users Forum
http://fdelphi.nifty.com/

<Update>
BCB6/US SP1 は BCB6/JP 製品版に含まれています。
C++Builder 6 Update4 日本語版
ftp://ftp.borland.co.jp/pub/cbuilder/
C++Builder 6 Linker Update
http://www.borland.com/products/downloads/download_cbuilder.html
5デフォルトの名無しさん:2005/08/21(日) 17:50:58
<Tipsなど>
Borland C++Builder最新リンク2005(リンク集)
http://www2.famille.ne.jp/~akio1998/l_cpb.html
C++Builderのお部屋(Tips系)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/
C++Builderによるプログラミング(Tips系)
http://www.geocities.co.jp/SiliconValley/7201/
BCB Tips(Tips系)
http://members.at.infoseek.co.jp/mchos/bcb_tips/
C++Builder Tips(Tips系)
http://www.geocities.co.jp/SiliconValley/4805/bcbtips/bcbtips000.htm
C++Builder/Windowsプログラミング(Tips系)
http://www.kh.rim.or.jp/~maruoka/Builder/index.shtml
C++Builderのお部屋(Tips系)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/index.html
Wininet Programing(Tips系)
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/
Dr.Bob's C++Builder Gate(Tips系)
http://www.drbob42.com/cbuilder/index.htm
猫でもわかるプログラミング(一般)
http://www.kumei.ne.jp/c_lang/
norika-s Program Tips(一般Tips)
http://hawaii.naist.jp/~norika-s/program_tips/
Delphian World(コンポーネントライブラリ)
http://www6.airnet.ne.jp/~sone_san/delphi/
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/
6デフォルトの名無しさん:2005/08/21(日) 17:51:40
<ツール/コンポーネント>
<<フリー>>
フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/software/nonfreecursor.htm
GExperts−IDE拡張
http://www.gexperts.org/
BorCVS - IDEにCVSを統合
http://borcvs.sourceforge.net/
Indy
http://www.indyproject.org/
JCL
http://homepages.borland.com/jedi/jcl/
JVCL
http://homepages.borland.com/jedi/jvcl/
TurboPower
http://sourceforge.net/users/tpsfadmin/
<<有料>>
TMS Component Studio
http://www.tmssoftware.com/
7デフォルトの名無しさん:2005/08/21(日) 18:07:06
<参考図書>
C++Builder 6コンポーネント活用ガイド&実践プログラミング
Vol.1
http://www.amazon.co.jp/exec/obidos/ASIN/4877830618
Vol.2 実践テクニック編
http://www.amazon.co.jp/exec/obidos/ASIN/4877830626
Vol.3 データベーステクニック編
http://www.amazon.co.jp/exec/obidos/ASIN/4877830634
Vol.4 インターネット編1
http://www.amazon.co.jp/exec/obidos/ASIN/4877831061
Vol.5 インターネット編2
http://www.amazon.co.jp/exec/obidos/ASIN/4877831088
Vol.6 グラフィックス・画像処理編1
http://www.amazon.co.jp/exec/obidos/ASIN/4877831231
Vol.7 グラフィックス・画像処理編2
http://www.amazon.co.jp/exec/obidos/ASIN/487783124X
※BCBの定番解説書。BCBを購入したけど何から勉強したら良いか
 判らないという人は取り合えずVol2から読みましょう。
※データベースやインターネット関連はDelphiの解説書も役に立ちます。
8デフォルトの名無しさん:2005/08/21(日) 19:08:09
>>1
(・∀・)乙カレー
9デフォルトの名無しさん:2005/08/21(日) 19:24:02
C++ Builder 5 Professional 持ってるが、不遇だな。
ちまたには、version 4 や 6 の本は普通に出版されているが、5 の本はほとんど
見たことが無い。
6 の本を買うと仮定すると、本の解説で 5 と 6 の違いが気になるわけだが、どこ
ら辺に違いがあるか気になるもんだ。
6 の本でもほとんど支障なく学習できるんだったらいいけど。
10デフォルトの名無しさん:2005/08/21(日) 22:40:30
>>9
4→5のタイミングが短すぎたんだっけ?

別に6本でも問題無いでしょ。VCLはあんま変わってないし。
11デフォルトの名無しさん:2005/08/22(月) 00:15:59
正直BCBの参考書は、Delphi用の方が、内容が充実してるし種類もずっと多い
と思う。
Delphi→BCBへの変換は、ほとんど一対一に対応しているので、一度Object
Pascalを読めるようになれば、Delphiの本で十分。
12デフォルトの名無しさん:2005/08/22(月) 17:34:01
リストビューでアイテムを選択しているときにCtrl+Cを押すとクリップボードに転送するようにしたいのですが、
ショートカットのイベントハンドラのようなものを実装するにはどうすればいいのでしょうか?
13デフォルトの名無しさん:2005/08/22(月) 21:58:45
Delphi用という選択肢もあるわけだな、確かにそうだ。いいことを言った。
Pascalは知ってる。一冊の本をよく読んで練習問題のプログラムを書いたりしてた。
正に、Delphiの基礎学力をつけるのが目的でPascalを学習してたからな。
Object Pascalの学習はまだこれからだけど。

そういえば、VCL相談室というスレであってもいいなあ。
でも、言語を区別しておかないと、Object Pascalの知識の無い人には困るか。
14デフォルトの名無しさん:2005/08/22(月) 22:41:49
Delphiのmessageキーワードがないばっかりに、BEGIN_MESSAGE_HANDLER〜
なんかの難解なマクロを使わないといけない。

あれ初心者には絶対理解不可能だと思った。逆にDelphiとBCBを両方使ってる
と、「なんでmessageが無いんじゃゴルァ!」という事ですぐに見つけるわけだ。

BCBはC++の延長線上にある自然な拡張がされてない。全部Delphiの動作を
エミュレートするようにされてしまってる。VCLがObject Pascal用にしか作られていな
いので仕方ないとは言え、手抜きだなぁ。でもそのお陰で、Delphi用に作られた
コンポーネントの有り難みを享受できるのも確かだが。
15デフォルトの名無しさん:2005/08/23(火) 00:10:00
>>14
>BEGIN_MESSAGE_HANDLER
別に難解とは思わないが、その辺のBCB独自の拡張を簡単簡潔に網羅した
マニュアルが用意してあればいいんだがなぁ。
16デフォルトの名無しさん:2005/08/23(火) 00:45:35
>>15
付属のあのごついマニュアルなんて、中身はHELPと全く同じだしな。
Open配列を真似るARRAYOFCONSTマクロなんか、ソース見てみると、
苦心の跡というよりはやっつけ仕事のように見える。
17デフォルトの名無しさん:2005/08/23(火) 00:52:32
一応VCLのサポートのために追加されたキーワードと説明が、ヘルプの"拡張キーワード"ってページにまとまってるけどね。辿り付き辛いか。
__classid, __closure, __declspec(の一部), __property, __publishedと。

messageはあれば便利って程度だから、追加されなかったんでない?必要最低限のだけ追加したって感じで。
BEGIN_MESSAGE_HANDLER〜のマクロは、なんかダサいから使わないで、ウィンドウプロシージャでディスパッチしてる。
関数にするまでもない短いコードもよくあるしね。
18デフォルトの名無しさん:2005/08/23(火) 00:58:31
>>17
プロパティはdefaultが使えないんだよね。もっともそれをやっちゃあ、
C++の名前照合規則をぶっ壊してしまうわけなんでやめたんだろうけど。
19デフォルトの名無しさん:2005/08/23(火) 01:11:58
>>18
え、使えない?
20デフォルトの名無しさん:2005/08/23(火) 01:16:41
>>19
ごめん。使えないというより、Delphiとの意味が違ってる。
Delphiだと、クラス変数名書いただけで、あるプロパティが使われたでしょ。
BCBは初期値設定の意味になってる。
21デフォルトの名無しさん:2005/08/23(火) 01:35:12
>>20
あ配列プロパティのdefaultか。普通のプロパティのは同じ意味だよね?
C++だとoperator[]があるからかな。ただBCBはVCLクラスがnewで作んなきゃいけないから、operator[]が定義されてても何か見た目がよくないね。

TStringList* pStrings = new TStringList();

(*pStrings)[0] = "hoge" は格好わるいから普通、pStrings->Strings[0] = "hoge" だろうね。

参照使えばDelphiぽくできるけど、いちいちちょっとね。

TStringList& strings = *pStrings;
strings[0] = "hoge";
22デフォルトの名無しさん:2005/08/23(火) 01:44:57
>>21
はい、そうですぅ。済みません。
じゃじゃ馬BCB6で遊んでます。コンパイル速度も、今時のCPUなら十分速いし、
ちょっとしたGUIツールを作るにはぴったりです。

でも新製品が出ませんねorz
23デフォルトの名無しさん:2005/08/23(火) 04:16:53
> BEGIN_MESSAGE_HANDLER
こんなんがあるせいで、理解が少し遅れた。
ひたすら無駄なマクロ。
24デフォルトの名無しさん:2005/08/23(火) 04:32:16
ま、確かに>>17さんみたいに、サブクラスで該当のメッセージだけ処理して、
後は次の所に放り投げれば済む話なんですよね。

Windowsのメッセージがチェイン構造になっているのは、初めて知った時は
ひたすら気持ち悪かった。
25デフォルトの名無しさん:2005/08/23(火) 12:33:10
勉強がたりんなあ。
皆が何言ってるかさっぱりワカランorz
26デフォルトの名無しさん:2005/08/23(火) 13:41:44
>>22
冬に出るだろ。


Delphi2006が‥‥
27デフォルトの名無しさん:2005/08/23(火) 16:17:12
フリーコンパイラのBorland C++ Compiler 5.5
を使って300行のCプログラムをコンパイルしました。
しかしコマンドプロンプトからEXEファイルを実行しても全く動作しません。
試しにそのEXEファイルのソースのmainの一番最初に、print("check..");とか入れてみましたが、
こちらも表示されませんでした。
Cのプログラムでこんな事ってあるのでしょうか?
コンパイラに原因は無いですよね・・・?
28デフォルトの名無しさん:2005/08/23(火) 16:18:27
フリーコンパイラのBorland C++ Compiler 5.5
を使って300行のCプログラムをコンパイルしました。
しかしコマンドプロンプトからEXEファイルを実行しても全く動作しません。
試しにそのEXEファイルのソースのmainの一番最初に、print("check..");とか入れてみましたが、
こちらも表示されませんでした。
Cのプログラムでこんな事ってあるのでしょうか?
コンパイラに原因は無いですよね・・・?
29デフォルトの名無しさん:2005/08/23(火) 16:22:58
>>27
よくあるのが、「DOS窓が一瞬開いてすぐ閉じるんですけど」って質問だけど、DOS窓も表示されない?

あとBCCはこっちのスレね↓

タダで使えるBorland C++ Part4
http://pc8.2ch.net/test/read.cgi/tech/1091066805/
30デフォルトの名無しさん:2005/08/23(火) 16:29:30
>>29
いえ、
test.cppを以下のようにコンパイル、実行しました

C:\ディレクトリ>bcc32 test.cpp
C:\ディレクトリ>省略(コンパイルが通ります)

そこで、text.exe(exeまで打たないと何故か実行できない)を実行します。

C;\ディレクトリ>text.exe  (enter押します
test
C:\ディレクトリ>

このように出て、main関数が実行されません。

上のURLのところ行ってみます。       
31デフォルトの名無しさん:2005/08/23(火) 17:00:27
testとtextの2通りあるのは打ち間違いとして、
exeまで打たないと実行できないってヒジョーにアヤしげだなぁ
32デフォルトの名無しさん:2005/08/23(火) 17:04:58
>>31
testの間違いです。。。
怪しげって何が怪しいんでしょうKA。
33デフォルトの名無しさん:2005/08/23(火) 17:10:10
>>32
いや、何かそこに理由がありそうだなぁ、と。全然わかんないんだけどね。役立たずで申し訳ない
34デフォルトの名無しさん:2005/08/23(火) 17:25:14
>>31
分からないのにスレ違いのネタ引っ張るなよ。
35デフォルトの名無しさん:2005/08/23(火) 17:28:07
^^;
36デフォルトの名無しさん:2005/08/23(火) 17:31:05
print("check..");
って何( ´∀`)?

ってか、本当にコンパイル通ってるのかYO!

#include <stdio.h>
int main()
{
  print("check");
  return 0;
}

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
test.cpp:
エラー E2268 test.cpp 5: 未定義の関数 'print' を呼び出した(関数 main() )
*** 1 errors in Compile ***
37デフォルトの名無しさん:2005/08/23(火) 22:23:27
>>36
タイプミスですた・・・ww
38デフォルトの名無しさん:2005/08/23(火) 22:55:34
だからおまいらスレ違いの話題をひっぱるなっつうの。
39デフォルトの名無しさん:2005/08/24(水) 00:16:42
全然別の test.exeを実行していたりしたら笑うぞ。ホントに、そこにある test.exeを
実行しているのか? つーか、test をtextと書いたり、printとか何とか、
実際にやった内容と違うことばっかり書いて質問されてもなぁ・・・

問題の切り分けをするなら、300行のナントカは、ともかく、最低限、
printfが1行だけある main() をコンパイルしてみて、できた実行ファイルを、
ルートからフルパスで指定して動かしてみること。
変なパスが通っていて、ヨソにあるexeを実行していたりしないか?

あと、"check.." って、もしかして、改行マークなし? バッファのフラッシュを
しないなら、\nがいるんじゃないかな。

いずれにせよ、完全にスレ違いなので、続きは誘導先でやってくれ。
40デフォルトの名無しさん:2005/08/24(水) 00:47:59
こういうときには,症状が再現する最小限のソースコードをアップするのが常識だと思うがなぁ
4140:2005/08/24(水) 00:48:42
おっと,>39と少しかぶっちまったか
42デフォルトの名無しさん:2005/08/24(水) 08:42:39
HelloWrld 表示するだけに不具合がでるコンパイラ
なんてあるわけないし。 100%間違いなく、操作間違ってる。
43デフォルトの名無しさん:2005/08/24(水) 11:35:30
TImageのCanvasに折れ線グラフを描画しているのですが
Transparentをtrueにするとたまにグラフが描画されなくなります。
なんとなく、Canvasからはみ出たときに起こるのですが
これの対処法を教えてください。
44デフォルトの名無しさん:2005/08/24(水) 12:19:18
>>43
まずは「なんとなく」の部分をはっきりさせるべし
45デフォルトの名無しさん:2005/08/24(水) 12:22:03
>>43
Transparentをtrueにしたとき透明表示される色は特に指定しなければ
確か一番左下のドットの色だっけか?

まずはsageようか。
46デフォルトの名無しさん:2005/08/24(水) 13:20:48
質問するのに下げる理由はないよ。
sage厨はスルーで
47デフォルトの名無しさん:2005/08/24(水) 13:44:48
>>45
ありがとうございます。
「一番左下のドットの色」で全ての謎がとけました。
グラフを描画する時にCanvasからはみだしてもちゃんと描画されるときと
されない時で描画されない時は左下のドットに描画してる時でした。
予めTransparentColorに色を与えておいて見事に解決しました。
48デフォルトの名無しさん:2005/08/24(水) 17:32:45
>>44
新党日本
49デフォルトの名無しさん:2005/08/24(水) 18:08:29
フォームに乗ってる全てのコントロールを列挙する方法を教えてください
50デフォルトの名無しさん:2005/08/24(水) 18:14:30
Componentsだった
51デフォルトの名無しさん:2005/08/24(水) 22:05:15
自動作成の対象にしなかったフォームの表示方法を教えてください
52デフォルトの名無しさん:2005/08/24(水) 22:16:57
TForm2 *form = new TForm2(this);
form->Show();
53デフォルトの名無しさん:2005/08/27(土) 10:05:22
すいません、C++Builder6のBDEもしくはdbExpressでMySQLとのSSL通信は可能でしょうか?

MySQLのSSL通信機能はver4.1から正式にサポートされたものなんですが…。
5430:2005/08/30(火) 00:02:36
解決しました。
あるグローバル変数を配列を数千×数千で定義していたので出来ませんでした。
百×百位にしてコンパイルしたら実行できました。
しかし実行には.EXEつけないと無理ですが・・・。

55デフォルトの名無しさん:2005/08/30(火) 00:50:31
>>54
うーん、まだまだあやしい。。。 けど、このスレで続けるのは変だから、
うだうだ書くのはやめておくね。
56デフォルトの名無しさん:2005/08/31(水) 14:08:58
>>30=54
『グローバル変数』なら配列の要素が大きくてもそこまで問題じゃないんじゃね?
仮にintで2000x2000だとしたら約15MBくらい
『オート変数』の間違いでは・・・

あと、exeつけないと実行できないんだったら、コマンドプロンプトで『notepad』は起動するんか?
57デフォルトの名無しさん:2005/08/31(水) 22:03:56
>>56
>>38を声に出して百回読め、このあきめくら。

58デフォルトの名無しさん:2005/08/31(水) 22:53:55
馬鹿だなぁ。そんなレス構っちゃないんだよ。
59デフォルトの名無しさん:2005/08/31(水) 23:16:09
Builder5です。
ファイル(F)-新規作成(N)のフォームタブに
自作のフォームを追加したいのですが、方法がよくわかりません。
プロジェクト(P)-リポジトリに追加(T)で追加できそうなのはわかったのですが、
フォームを新規作成した状態では、リポジトリに追加(T)は無効になっています。
どのようにすれば、自作フォームを追加できるでしょうか。
よろしくお願いします。
60デフォルトの名無しさん:2005/09/01(木) 00:05:04
>>59
フォーム右クリックで「リポジトリに追加」
61デフォルトの名無しさん:2005/09/01(木) 00:52:43
>>60
さんくすです。出来ました。
右クリックにあったんですね。気づきませんですた。
62デフォルトの名無しさん:2005/09/03(土) 18:16:43
他のアプリのGUIをのっとって操作する事は可能ですか?
63デフォルトの名無しさん:2005/09/03(土) 18:23:00
可能です
64デフォルトの名無しさん:2005/09/03(土) 20:02:33
フックフック
65デフォルトの名無しさん:2005/09/04(日) 00:36:16
How can I send keys to another application?
http://thunder.prohosting.com/~cbdn/k009.htm
66デフォルトの名無しさん:2005/09/04(日) 05:06:55
アプリケーションのアイコンをImage1に描画
サイズは48×48

DrawIconEx(Image1->Canvas->Handle, 0, 0, Application->Icon->Handle, 48, 48, 0, 0, DI_NORMAL);
67デフォルトの名無しさん:2005/09/04(日) 12:28:10
次バージョンがでるまで、あと何回枕を濡らせばいいのですか?
68デフォルトの名無しさん:2005/09/04(日) 12:31:17
死ぬまで
69デフォルトの名無しさん:2005/09/04(日) 12:55:46
ヘルプ参照しても見つけられないので質問を投げてみます。
double 型の変数から Currency 型の変数に値を変換して設定するための
標準的な関数がありそうな気がします(いや、きっとあるはず)が、見つけ
られません・・・
おしえてくださいませ。m(_._)m

ちなみに・・・
文字列⇔Currency は、StrToCurr, CurrToStr
Currency → double は operator double()
など、その周辺はすぐ見つけられますね。

こういった逆引きって結構時間かかりまっすねぇ・・・
#Variant 型を経由しなきゃダメなんて落ちじゃないですよねー。
70デフォルトの名無しさん:2005/09/04(日) 13:02:52
コンストラクタ
__fastcall Currency(double val);
71デフォルトの名無しさん:2005/09/04(日) 13:04:08
Currency& __fastcall operator =(double rhs);
72デフォルトの名無しさん:2005/09/04(日) 13:05:32
初期化&代入できるんじゃん
73デフォルトの名無しさん:2005/09/05(月) 17:06:17
なにか普通のメンバで行うしかないと思っているとこんな盲点に嵌まってしまう罠。
74デフォルトの名無しさん:2005/09/07(水) 13:22:45
質問です。
メインフォームから動的に作成した子フォームを
MDI親フォームとする方法を教えてください。
75デフォルトの名無しさん:2005/09/08(木) 01:08:11
>>74
TFormはfsMDIChildeのとき、問答無用でメインフォームを親フォームにするみたいだな。
つうわけで無理っぽい。
76デフォルトの名無しさん:2005/09/08(木) 01:48:16
VSS2005みたいにDelphi2006ベータ版配布するのか??
しないだろう。
ユーザは減っていくだけ!!


もし、DELPHI2006無償配布を多くしたら復活の道あるのに。。
77デフォルトの名無しさん:2005/09/08(木) 06:13:33
画像処理・エフェクト( 24ビットのビットマップのみ対応しています )      
http://www.geocities.jp/octbery/program.html
・画像処理・エフェクトの準備

・グレースケール : 画像を白黒画像に変換
・2値化 : 特定のレベルをしきい値として、しきい値より明るいピクセルは白に、暗いピクセルは黒に変換
・階調の反転 : 画像の階調を反転
・ポスタリゼーション : 画像の階調を変える

・wipein : 画像をワイプイン
・wipeout : 画像をワイプアウト
・fadein : 画像をフェードインする
・fadeout : 画像をフェードアウトする

タイマー関連

・プログラムの実行時間を計測

その他

・コントロールの再描画時のちらつきを減らす
・midi音源から音を鳴らす
78デフォルトの名無しさん:2005/09/08(木) 08:42:26
>>75
やっぱりorz
ありがとうございました
79デフォルトの名無しさん:2005/09/08(木) 09:33:19
タスクバーを除いたデスクトップの領域を取得するには?

Windows API SystemParametersInfo()を使用します。


Example:


void __fastcall TForm1::Button1Click(TObject *Sender)
{
TRect r ;

SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);
Form1->Top = r.Top;
Form1->Left = r.Left;
Form1->Width = r.Right - r.Left;
Form1->Height = r.Bottom - r.Top;
}
80デフォルトの名無しさん:2005/09/08(木) 10:04:59
Screen->WorkAreaRect
81デフォルトの名無しさん:2005/09/08(木) 10:55:02
>>75
CreateParamsがオーバーライド出きる様に変更されてて、
生成処理差し替え出きると思ったが。
82質問者:2005/09/08(木) 11:33:29
>>81
MDIChildのフォームの親フォーム(MDIForm)はメインフォームの子フォーム
である事が絶対でありメインフォーム自体を変更するのは無しです。

この方法は可能ですか?

83Image:2005/09/08(木) 11:44:47
配列に読み込んだ画像データをImageに直接描画することを考えています。
その際ScanLineを使いたいと思っています。
Delphiではできたのですが、C++Bulderではよくわかりません。
変数の宣言等等含め教えていただけたらと思います。
84デフォルトの名無しさん:2005/09/08(木) 11:51:51
>>83
たとえば24bit幅100pixelなビットマップの12行目を黒に塗りつぶす場合
int line = 12;
char* ptr = static_cast<char*>(Bitmap->Scanline[line]);
for(int i =0; i<100; i++)
{
  *ptr = 0; ptr++; //青
  *ptr = 0; ptr++; //赤
  *ptr = 0; ptr++; //緑
}

あとは考えれ。
85Image:2005/09/08(木) 12:34:43
>>84
回答ありがとうございます。
ごめんなさい。理解が追いつかないです。
配列に読み込んだデータImage[100][100]があるとすると
それはどのように扱うのですか?
86デフォルトの名無しさん:2005/09/08(木) 13:07:36
Delphiでできたのに何でこれの理解が追いつかないのか
ちょっとわからん
87デフォルトの名無しさん:2005/09/08(木) 13:38:34
>>85
Scanlineの返す値が何なのか理解してるか?
88Image:2005/09/08(木) 13:44:09
わからないから質問してみました。すみません
ちなみにDelphiでは以下のように書きました。
for y:=0 to ysize-1 do
begin
p:=bmp.ScanLine[y];
{y列めのデータのアドレスにポインタをセット}
for x:=0 to xsize-1 do
begin
c:=xy[y,x]-(wl-(ww div 2));
c:=(c*256) div ww;
if c > 255 then c:=255;
if c < 0 then c:=0;
p^[x].r:=c ;
p^[x].g:=c ;
p^[x].b:=c ;
end;
end;
form1.image1.Canvas.Draw(0,0,bmp);
end;
89Image:2005/09/08(木) 14:22:23
>>87
Bitmap->Scanline[line]
Bitmapの一列分のデータを返すものだとなんとなくですが
理解しています。
ただ、
BitMap.LoadFromFile('C:\Program Files\Common Files\Borland Shared\
Images\Splash\256color\factory.bmp');
みたいな感じに、先にBitmapに画像を読み込んでいるわけではないので
そのあたりがどのようになるか知りたかったわけです。
説明が悪くすみません。
90デフォルトの名無しさん:2005/09/08(木) 17:40:38
Delphiユーザです。
予め読み込んでいない Bitmap は真っ白なビットマップです。
Scanline[y] が返すポインタは型なしですが、その内容は PixelFormat に依存します。
pf32bit ---- PRGBQuad
pf24bit ---- PRGBTriple
pf8bit 以下 ---- PByte
ですから適切にキャストすると色データにアクセスできます。

逆にいうと ScanLine を使う前に PixelFormat が確定している必要があります。
91デフォルトの名無しさん:2005/09/08(木) 21:26:17
タスクバーを除いたデスクトップの領域を取得するには?

void __fastcall TForm1::Button1Click(TObject *Sender)
{

TRect r ;

SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);

Form1->Top = r.Top;
Form1->Left = r.Left;
Form1->Width = r.Right - r.Left;
Form1->Height = r.Bottom - r.Top;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{

Form1->Top = Screen->WorkAreaRect.Top;
Form1->Left = Screen->WorkAreaRect.Left;
Form1->Width = Screen->WorkAreaRect.Right - Screen->WorkAreaRect.Left;
Form1->Height = Screen->WorkAreaRect.Bottom - Screen->WorkAreaRect.Top;

}
92デフォルトの名無しさん:2005/09/08(木) 21:37:37
void __fastcall TForm1::Button1Click(TObject *Sender)
{

TRect r ;

r = Screen->WorkAreaRect;

Form1->Top = r.Top;
Form1->Left = r.Left;
Form1->Width = r.Right - r.Left;
Form1->Height = r.Bottom - r.Top;

}
93デフォルトの名無しさん:2005/09/08(木) 21:56:56
Form1->BoundsRect = Screen->WorkAreaRect;
94デフォルトの名無しさん:2005/09/09(金) 00:52:13
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Caption = Screen->DefaultIme;
}
95デフォルトの名無しさん:2005/09/09(金) 00:59:30
Form1->BoundsRect = Screen->WorkAreaRect;
Form1->BoundsRect = Monitor->WorkareaRect;
96デフォルトの名無しさん:2005/09/09(金) 10:09:23
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Button1->Caption = "C++Builder";
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Button1->Perform(BM_CLICK, 0, 0);
}
97デフォルトの名無しさん:2005/09/10(土) 06:01:33
http://sapporo.cool.ne.jp/tanomi/qanda/a047.html
OnIdleイベントはTApplicationのイベントなのです。
なので、Applicationに割り当てます。
場所はコンストラクタが良いでしょう。
//Formのコンストラクタで
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Application->OnIdle = IdleHandler;
}
98デフォルトの名無しさん:2005/09/10(土) 10:13:25
ちょっと思ったんですが
.exe内の関数を.dllに入れて呼び出す場合は実行速度は
大して変わりないのでしょうか?
99デフォルトの名無しさん:2005/09/10(土) 10:15:25
>>98
変わらない
100デフォルトの名無しさん:2005/09/10(土) 10:18:41
起動が遅くなるよ
10198:2005/09/10(土) 10:38:42
>>99-100
なるほど、処理速度自体は変わらないけど起動時読み込みにより
遅くなるって事ですね。

起動が遅くなる度合いは関数の数に関係なく.dllの数によるものですか?
102デフォルトの名無しさん:2005/09/12(月) 04:14:24
103デフォルトの名無しさん:2005/09/12(月) 05:38:10
>>100
機動は早くなるよ
104デフォルトの名無しさん:2005/09/12(月) 07:35:51
C++Builder6 Proで国際化対応、すなわち英語と日本語の切り替えが出来るようなアプリケーションを作りたいのですが、
どのような方法が、良いのでしょうか?

起動時にOSの言語を判定して、キャプションやフォントを変更していく以外に何はよい方法はないでしょうか?
105デフォルトの名無しさん:2005/09/12(月) 11:15:28
http://www.geocities.jp/octbery/_program/scanline.html
http://www.plustarnet.com/aspil/Programming/cpp01.htm
//コンストラクタ(constructor)とデストラクタ(destructor)
__fastcall ~TForm1();

__fastcall TForm1::~TForm1()

{

delete pBitmap;
delete pBitmap2;
delete tmpImage;

pixelinfolist->Clear();
delete pixelinfolist;

pixelinfolist2->Clear();
delete pixelinfolist2;
}
106デフォルトの名無しさん:2005/09/12(月) 22:16:05
>>104
リソースdllを丸ごとすげ替える方法がある。
ヘルプ読め
107デフォルトの名無しさん:2005/09/12(月) 23:58:34
>>106
ヘルプを読んでみたのですが、フォームの内容をDLLに保存する方法がよく分かりません
108デフォルトの名無しさん:2005/09/13(火) 08:16:26
109デフォルトの名無しさん:2005/09/13(火) 18:19:07
>>104
テキストファイルからボタンのキャプションなどを読み込めばいいのでは?
110デフォルトの名無しさん:2005/09/13(火) 20:25:41
>>107
リソースdllウィザードとかその類いのが新規作成の中に無いか?
111デフォルトの名無しさん:2005/09/14(水) 00:22:18
borland c++ builder 6.0 professional でSDLを導入しようと思ってます。
行ったことは、まず
SDL-1.2.9.zipをダウンロードして展開。
中に入っていたBorland.zipを展開。(Borlandディレクトリができる)
Borland\bcb6にlibSDL.bpgをダブルクリックする。
プロジェクトメニューからすべてのプロジェクトをメイクをしました。
そうすると、パッケージのインポートライブラリーが見つかりませんと出ました。
これは、同梱されていたBorland.htmlというファイルを参考に実行しましたが
うまくできません。
どうやったらうまく導入できるんでしょうか?
112デフォルトの名無しさん:2005/09/14(水) 12:57:16
>>111
試してみたけどプロジェクトが出鱈目な感じだった。一応できたので以下やってみた手順。

・aliens.exeプロジェクトは、aliens.cが見当たらないのであきらめる。libSDLプロジェクトグループからaliensを削除。デモゲームらしい。
・SDL.dllプロジェクトにSDL-1.2.9/src/cpuinfo/SDL_cpuinfo.cを追加する。
・SDLmain.libプロジェクトのSDL_main.cを削除して、代わりにSDL-1.2.9/src/main/win32/SDL_win32_main.cを追加する。
・IDEを閉じた状態で、SDL.bprとgraywin.bprをメモ帳等の適当なエディタで開いて、「<PACKAGES value=vcl.bpi rtl.bpi…略」となってる部分を、「<PACKAGES value=""/>」とするかこのノード自体を削除して保存する。
・libSDLを開いて、「すべてのプロジェクトを再構築」を実行。
・途中で何回かコンパイルエラーが出るので、その都度userWindowProcを(FARPROC)userWindowProcという風にキャストして再度コンパイル。

で、コンパイルはできた。
113デフォルトの名無しさん:2005/09/14(水) 14:06:30
>>112
どうも試してくれありがとう。
あれから、色々検索しまして、簡単な導入方法がわかりました。
SDL-1.2.9-win32.zipの中のSDL.DLLをc:\windows\systemディレクトリに入れて
SDL-1.2.9.zipの中のborland.zipを展開した中に入っているものを全部borland C++ builder
をインストールした場所の各ディレクトリに入れました。
ヘッダファイルもinclude\SDKに入れまして、ライブラリもlib\SDKに入れてしまい
bcc32.cfgとilink32.cfgにパスを通して終わりです。
実際にSDLのテストプログラムをコンパイルしてみましたら、うまく実行できました。
114デフォルトの名無しさん:2005/09/14(水) 19:49:33
>>113
やっぱランタイムだけでよかったのね。DLLをソースからビルドしたい理由があったのかと思った。
115デフォルトの名無しさん:2005/09/15(木) 09:28:31
TMemoryStreamに読み込んだグレースケールなDIBを
TImageに表示するにはどうすればいいのでしょうか?
そのままTBitmap::ScanLineで読み込んでも変な表示がされるのみでしてorz
116デフォルトの名無しさん:2005/09/15(木) 10:22:57
TBitmap には LoadFromStream ってメソッドが Delphi ではあるんだが
117デフォルトの名無しさん:2005/09/15(木) 10:23:26
>>115
TImage::Picture::Bitmap::KiadFromStream使えば?
118デフォルトの名無しさん:2005/09/15(木) 10:24:09
> そのままTBitmap::ScanLineで読み込んでも変な表示がされるのみでしてorz

ScanLine でコピーするならパレットもグレースケール化しないとね。
119115:2005/09/15(木) 11:14:29
>>116>>117
LoadFromStreamでは「ビットマップイメージが不正です」と言われてしまいます。
DIBフォーマットってTBitmapでは直接読めないのでしょうか?
この辺りの処理をちゃんとやってないからScanLineでもダメなのでしょうねorz
120デフォルトの名無しさん:2005/09/15(木) 11:25:42
LoadFromStream で読めるのはビットマップのファイルイメージそのままのときだけ。
読み込み先の PixelFormat はどうなってます?

pf8bit なら、パレットをグレイスケール化することは必須
pf24bit なら ScanLine は TRGBTriple へのポインタだから RGB に同じ値を与えてグレースケールにする
pf32bit なら ScanLine は TRGBQuad 以下同上
121デフォルトの名無しさん:2005/09/15(木) 14:16:14
>>115
Graphics:TBitmap::PixelFormatをいじったか?

pfDeviceにでもなってんじゃないの?pf1bitに変更汁。
122デフォルトの名無しさん:2005/09/15(木) 14:42:13
> pf1bitに変更汁。

pf8bit だろ、グレイスケールといえば普通。pf1bit ならスケールなんてない。黒白
123デフォルトの名無しさん:2005/09/15(木) 15:22:08
あれだな。昔の256色モード。パレットか。懐かしいな。
124デフォルトの名無しさん:2005/09/15(木) 15:27:55
64bitプログラムは作れますか?
125115:2005/09/15(木) 16:04:38
PixelFormatはpf8bitにしてあります。

さっぱりワケわかめです。どうも読み込もうとしているDIBが画像データのみで、
ヘッダ情報が含まれていないようです。
ググっても、微に入り細に渡るBitmapフォーマットについての説明(勉強しているのなら
ありがたいですが、それは時間のある時に…)はあっても「だからこうしろゴルァ!」という
ズバッとしたサンプルソースがありませんorz
126デフォルトの名無しさん:2005/09/15(木) 16:17:40
>>125
データにWindowsBitmapのヘッダ付いてないならScanlineで書き込むしかない。
127115:2005/09/15(木) 17:28:17
TBitmap::HandleTypeにbmDIBを設定し
上記のようにTBitmap::PixelFormatはpf8bitに設定して
TBitmap::Canvas::Pixels[x][y]にDIBの画像データをちまちまと入れたら出来ました。
お騒がせしました。
128デフォルトの名無しさん:2005/09/15(木) 18:28:34
パレットはどうなったん?
129デフォルトの名無しさん:2005/09/15(木) 18:29:11
>>127
Pixelsは猛烈に遅くなるからやめい。
130デフォルトの名無しさん:2005/09/15(木) 18:29:15
> TBitmap::Canvas::Pixels[x][y]にDIBの画像データをちまちまと入れたら出来ました。

Pixels 使うのは最低だな
131デフォルトの名無しさん:2005/09/16(金) 01:06:17
>>127
だからScanLineを使って入れろというに。
Pixels使うと、一ドット毎にシステムコール起こるの知ってる?
132デフォルトの名無しさん:2005/09/16(金) 05:22:48
バイナリファイルの内容をメモ帳の様にTMemoに読み込むには
どうしたらいいでしょうか。当然NULLで文字が切れてしまいます。
133デフォルトの名無しさん:2005/09/16(金) 08:33:35
>>132
1バイトづつIntToHex
134デフォルトの名無しさん:2005/09/16(金) 09:07:48
#define NO_WIN32_LEAN_AND_MEAN
135デフォルトの名無しさん:2005/09/18(日) 18:04:00
C++Builderを使用しているのですが、BuilderからExcelを操作する(グラフの書き方)
方法がわかりません。
Excelに数字を保存する方法はわかったのですが、グラフの書き方がわからないので、
知っている人がいれば教えてください。
136ミ,,゚Д゚彡 ◆A6VzDeLphI :2005/09/18(日) 20:38:29
とある行or列にデータが入ったら
グラフが描かれるテンプレートを用意して
xltとして保存しておいて

Excelをコントロールするとき
Excel起動後、新規シートではなく
xltを読み込んで動作させてはいかがかと。
137デフォルトの名無しさん:2005/09/18(日) 22:03:55
64ビットのプログラムは作れますか?
138デフォルトの名無しさん:2005/09/18(日) 22:17:03
RichEditへの描画
投稿日 : 2005/08/01(Mon) 10:35
投稿者 : lovez00

RichEditにはCanvasプロパティがないので、
使い捨てCanvasを作れば解決です。
練習がんばってねー。

//-------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//使い捨てCanvas
TCanvas *RECanvas = new TCanvas;
RECanvas->Handle = GetDC( RichEdit1->Handle );

//ペン設定
RECanvas->Pen->Color = clBlack;
RECanvas->Pen->Width = 2;

//線を引く
RECanvas->MoveTo( 0, 20 );
RECanvas->LineTo( RichEdit1->ClientWidth, 20 );

//使い終わったら消す
delete RECanvas;
}
139デフォルトの名無しさん:2005/09/19(月) 14:39:17
デスクトップに文字などを表示するには

void __fastcall TForm1::Button1Click(TObject *Sender)
{

TCanvas *c=new TCanvas;
c->Handle= GetDC(0);
//ここから好きな処理をする
c->Font->Size= 100;
c->TextOut(10,10,"いろは");
c->MoveTo(100,100);
c->LineTo(500,500);
//ここまで
ReleaseDC(0,c->Handle);

delete c;

}
140デフォルトの名無しさん:2005/09/20(火) 05:30:42
>>132
処理に困っているのは 0x00 だけ?
バイナリデータって聞くとそれ以外にも普通に表示されないコードが
あると思っちゃうけど無いの?
もしあるならどういう風に表示させるつもり?

TFileStream::Read() を使って unsigned char の配列に入れて
表示したいように加工してから表示・・・?
141デフォルトの名無しさん:2005/09/21(水) 00:21:17
CppWebBrowser1NewWindow2(TObject *Sender,
LPDISPATCH *ppDisp, VARIANT_BOOL *Cancel)
{
一部省略
*ppDisp = CppWebBrowser->Application;



*ppDisp = CppWebBrowser->Application;

ってどういう意味なのですか?一般的に

142デフォルトの名無しさん:2005/09/21(水) 00:56:00
一般的に言うと>>141はかなりのバk(ry
143デフォルトの名無しさん:2005/09/21(水) 02:41:42
英語版Windows上で実行したときに、エラーメッセージを英語化したいのですが、どのようにしたらよいのでしょうか?
144デフォルトの名無しさん:2005/09/21(水) 03:22:06
>>143
パッケージを使ってビルドすれば、BPLに対応するリソースdll(日本語ならJPN)が自動で選ばれる。リソースdllが無ければVCL内のメッセージについては英語のはず。
静的ビルドのときは、CDに入ってる(←バージョンによっては)英語版VCLでビルドするか、最悪でもやはりリソースとして.exeに埋めこまれてるのでリソース編集ツールで置き換えられる。
145デフォルトの名無しさん:2005/09/21(水) 03:23:28
日本語ならJPだった。
146デフォルトの名無しさん:2005/09/21(水) 11:19:32
C++BuilderのTPageControlで、一番最後のタブを削除すると
強制的に最初のタブがアクティブになってしまうけど、
私はその削除するタブの一個前をアクティブにしたいのだが、
どうすれば良いのですかね。今現在ページの移動が見苦しい

<現在の擬似コーディング>

//現在のページ数
int PageNum = PageCtrl->PageCount;
//削除するページを得る(最後のページ)
TTabSheet *pDelPage = PageCtrl->Pages[PageNum - 1];
//次にアクティブにするページ
TTabSheet *pNextActivePage = PageCtrl->Pages[PageNum - 2];
//ページ削除(一旦先頭のページに移動)
delete pDelPage;
//次にアクティブにするページに移動(仕方なく入れてる)
PageCtrl->ActivePage = pNextActivePage;
147デフォルトの名無しさん:2005/09/21(水) 13:08:12
>>146
削除前に移動してもだめ?
148デフォルトの名無しさん:2005/09/21(水) 13:51:16
>>146
TPageControl::RemovePageをオーバライドするしか無いような‥‥
てかそこで削除したページの次を検索してそのページに切り替え動作やってるようだ。
149146:2005/09/21(水) 14:05:24
>>147 削除前に移動しても、やっぱり最初のページに移動してしまいます。
>>148 TPageControl::RemovePageは、privateにあって難しいかも。 
VCLのソースそのものの書き換えが必要?
150デフォルトの名無しさん:2005/09/21(水) 14:44:55
>>149
ヘッダ書き換えで行けないかね‥‥
151デフォルトの名無しさん:2005/09/21(水) 17:01:36
>>149
TPageControlを継承した派生クラス作って、
RemovePage()をオーバーライドでどう?
152デフォルトの名無しさん:2005/09/21(水) 18:33:37
そういやTPageControlのRemovePageは呼び出す必要なかったな‥‥
153146:2005/09/22(木) 09:03:53
>>もっと詳しく・・
154デフォルトの名無しさん:2005/09/22(木) 09:18:59
>>153
class Base {
private:
 virtual void func() { cout << "Base::func()\n"; }
public:
 virtual void funca() { func(); }
};

class Ext : public Base {
public:
 virtual void func() { cout << "Ext::func()\n"; }
};

main() {
 Ext a;
 a.funca();
 cout << endl;
}
155デフォルトの名無しさん:2005/09/22(木) 13:40:32
568 名前: デフォルトの名無しさん [sage] 投稿日: 2005/09/22(木) 11:44:11
並べてみると壮観だね

A list of features in Dexter
http://groups.google.co.jp/group/borland.public.cppbuilder.non-technical/msg/901d7e5f9cb15e40?hl=ja&
156デフォルトの名無しさん:2005/09/22(木) 15:31:15
良さげだね。SSE2は既にサポートしてるような。SSE3の間違いだべか。
157デフォルトの名無しさん:2005/09/23(金) 23:37:18
名前 点数
二郎 90
一郎 70
太郎 80

点数をソートして、名前を点数順に取得する方法がわかりません。
知っている人がいれば教えてください。
158デフォルトの名無しさん:2005/09/23(金) 23:44:00
>>157
TStringList
159デフォルトの名無しさん:2005/09/23(金) 23:59:49
>157
158じゃないけど、TStringListで良いんじゃないの?
その場合、090という風に桁数を合わせないとダメだけど。
090二郎
070一郎
080三郎
という感じにして、Sort()で昇順になるから、逆順(高い者順)なら
下から取ってくれば良い。
160デフォルトの名無しさん:2005/09/24(土) 01:55:00
>>157

//構造体を定義
struct name_value {
 String name;
 int value;
 name_value( String n=EmptyStr, int v=0 ) : name(n), value(v) {};
};
bool operator<( const name_value& lh, const name_value& rh ) {
 return lh.value < rh.value;
}

//こんなふうにつかう
#include <set>
void some_function()
{
 typedef std::set<name_value> name_value_set;
 name_value_set nvset;
 nvset.insert( name_value("二郎",90) );
 nvset.insert( name_value("一郎",70) );
 nvset.insert( name_value("太郎",80) );
 ...
 //あとは頭からでもけつからでも好きな方から読み出せばいい。
}
161デフォルトの名無しさん:2005/09/24(土) 12:31:08
>>156
IDEの起動に物凄い時間がかかってメモリもありえないほど喰うけどな
162デフォルトの名無しさん:2005/09/24(土) 12:33:01
>>160さん
bcb6を使って>>160を試しましたが、
リンカエラーになります。
163デフォルトの名無しさん:2005/09/24(土) 13:15:18
>>162
そうか。
で、それがどうかしたか?
>>160のソースに問題はないのでリンカエラーを起こしたのは君の責任だ。
164デフォルトの名無しさん:2005/09/24(土) 13:20:21
>>162
俺は>>160さんのソースを打ち込んで、適当にアレンジしてMemoに
中身を貼り付けるようにしてみたが、ちゃんと動いたぞ。
165 :2005/09/24(土) 13:42:49
メッセージループをいじくるにはどうしたら言いのですか。
Windows用のPeekMessageとGDIを使った簡単なアニメーションと言うかゲームみたいなプログラムのソースを読んだんですが、C++Builderのプログラムに移植したいと思ったんですけど、PeekMessageを使っててメッセージループ中に他の自作関数を呼んだりしないといけません。
でもC++Builderのプログラムにはメッセージループがありません。どこにあるのですか?どうしたらカスタマイズできますか。
166デフォルトの名無しさん:2005/09/24(土) 14:09:07
>>165
BEGIN_MESSAGE_MAP
167デフォルトの名無しさん:2005/09/24(土) 14:25:09
ユーザー定義のメッセージを受け取るには?
http://www.borland.co.jp/qanda/cbuilder/c0002864.html
168デフォルトの名無しさん:2005/09/24(土) 14:32:46
>>165
TApplicationクラスのprivate関数ProcessMessageにメッセージループはある
169デフォルトの名無しさん:2005/09/24(土) 14:59:01
VBで言うところの

strA = "Button1"
From1.controls(strA).Visible = True

みたいにBCBで

Form1 -> strA -> Visible = True

みたいには出来ますか。


170デフォルトの名無しさん:2005/09/24(土) 15:21:08
>>169
String strA = "Button1";
Form1->FindChildControl(strA)->Visible = True;

ただし、実際はifでくくったほうが良い。

if ( TControl* ctrl = Form1->FincChildControl(strA) )
 ctrl->Visible = True;

171デフォルトの名無しさん:2005/09/24(土) 15:24:05
>>170
さすがだね。ありがとう
172デフォルトの名無しさん:2005/09/24(土) 15:24:51

×True
○true
×FincChildControl
○FindChildControl
173デフォルトの名無しさん:2005/09/24(土) 15:53:51
boostのBCBへのインストールの方法がよく分かりません。
boostを使えるようにする方法を教えてく浅い。
174デフォルトの名無しさん:2005/09/24(土) 15:57:42
>>173
binフォルダ中のbcc32.cfgに
-I"C:\boost_1_33_0"等を追加。既に-Iがあると思うので、セミコロンで
区切って後ろに追加する。

buildは・・・・・諦めた方がいいかもね。
175デフォルトの名無しさん:2005/09/24(土) 17:43:20
>>173
http://groups.google.co.jp/group/borland.public.cppbuilder.non-technical/msg/901d7e5f9cb15e40?hl=ja&
Here's a list of things I got out of it for Dexter.
- Conformance for Boost and ACE. Almost 100% ANSI conformance.

※直訳
Delphi2006買ってください><
176デフォルトの名無しさん:2005/09/24(土) 17:54:27
These are not planned.
- Updates for BCB6

orz
177デフォルトの名無しさん:2005/09/24(土) 21:30:34
重くなるだけみたいね
178デフォルトの名無しさん:2005/09/24(土) 23:27:46
AnsiString z = "070";
先頭の0を取り除く方法がわかりません。
179デフォルトの名無しさん:2005/09/24(土) 23:30:32
>>178
z = AnsiString(z.ToInt());
180デフォルトの名無しさん:2005/09/24(土) 23:32:29
>>178
AnsiString z = "070";
Caption = IntToStr( StrToInt(z) + 0 );
181デフォルトの名無しさん:2005/09/24(土) 23:37:06
Caption = Format("%3.3d", OPENARRAY(TVarRec, (70))); //070
182デフォルトの名無しさん:2005/09/25(日) 00:03:21
>>178
char *p=new char[z.Length()+1];
if(p){
 strcpy(p,z.c_str());
 z=AnsiString(p+1);
 delete[] p;
}
183デフォルトの名無しさん:2005/09/25(日) 00:20:32
>>157

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList* MyList = new TStringList();

AnsiString a = "070二郎";
AnsiString b = "100一郎";
AnsiString c = "080三郎";

MyList->Add(a);
MyList->Add(b);
MyList->Add(c);
MyList->Sort();

Memo1->Lines->Add(MyList->Count);
Memo1->Lines->Add(MyList->IndexOf(a));
Memo1->Lines->Add(MyList->IndexOf(c));
Memo1->Lines->Add(MyList->IndexOf(b));

Memo1->Lines->Add(MyList->Strings[0]);

Memo1->Lines->Add( ( (MyList->Strings[0]).SubString(1,3)).ToInt() );
Memo1->Lines->Add( ((WideString)MyList->Strings[0]).SubString(4,2) );

delete MyList;
}
184デフォルトの名無しさん:2005/09/25(日) 00:24:01
>>157 >>178
ま、なんだ。こういうところで安易に質問する前に
自分でもちっと勉強しろって事だな。
185 :2005/09/25(日) 00:45:22
>>168 >>169
説明がわるかったけど、独自メッセージを処理したいというより
リアルタイム処理のためにGetMessageじゃなくてPeekMessageをつかったメッセージループとそのループ中に関数呼び出しを挿入したいということだけど、やっぱり分かりにくいか。

>>170
private関数じゃどうにもならないね。
186デフォルトの名無しさん:2005/09/25(日) 02:00:47
Application->ProcessMessages()を使う
187165:2005/09/25(日) 05:39:28
アク禁くらってて慌ててたため、番号が間違えてました。
>>166 >>167 >>168
失礼しました。そしてありがとう。

>>168 >>186
メインループは書き換えられないけど、時間のかかるループの中でこれを呼べばいいみたいですね。
どうもありがとうございました。
188デフォルトの名無しさん:2005/09/25(日) 08:49:05
>>185
タイマースレッド作ってSleepなりSetTimerなりでループ回してやれば?
189デフォルトの名無しさん:2005/09/25(日) 12:26:41
メッセージをフックする

ここではAPIを使用して自ウインドウへのメッセージ(WM_MOVE、WM_SIZE、WM_CLOSE)をフックする方法を説明します。このメッセージフックの方法は結構使えるので知らない人は覚えておきましょう。

■使用するAPI関数
SetWindowLong(ウインドウに関する情報を設定する)
CallWindowProc(Windowsメッセージをデフォルトのウインドウ プロシージャに渡す)

■メッセージ 
WM_MOVE(ウインドウが移動した時に送られる)
WM_CLOSE(ウインドウを終了しろと言われた時に送られる)
WM_SIZE(ウインドウのサイズが変更した時に送られる)
  
190165:2005/09/25(日) 12:28:11
>>188
うん、その方法もあるね。
たまたま見たプログラムがメッセージループをいじくるやつだから、Builderだとどうなるかと思ったんです。
191デフォルトの名無しさん:2005/09/25(日) 15:24:55
コピペ荒らしにマジレスしちゃうが
>>189
WndProcオーバーライドしろと
192デフォルトの名無しさん:2005/09/25(日) 17:26:37
Trapping Windows Messages
http://thecoadletter.com/article/0,1410,17819,00.html

if (msg == WM_VSCROLL)
ShowMessage("The vertical scrollbar is scrolling!"); //ここでカーソルが固まる

カーソルが固まるのを防ぐ方法がわかりません。
193デフォルトの名無しさん:2005/09/25(日) 17:27:28
>>192
休まずかき混ぜ続けるんだ
194デフォルトの名無しさん:2005/09/25(日) 18:15:13
>>192
そりゃ、スクロールイベントをShowMessageで止めてるんだからそうなるでしょ
195デフォルトの名無しさん:2005/09/25(日) 18:37:24
>>192
if (msg == WM_VSCROLL)
OutputDebugString("The vertical scrollbar is scrolling!")

これで解決
196デフォルトの名無しさん:2005/09/25(日) 20:49:46
別スレッドを作ってShowMessage(・∀・)
そして、ダイアログボックスの嵐の罠(´Д`)
197デフォルトの名無しさん:2005/09/25(日) 21:11:43
モーダルダイアログの意味が分かってないのね
198デフォルトの名無しさん:2005/09/26(月) 00:12:18
199デフォルトの名無しさん:2005/09/26(月) 10:22:21
//#include <mmsystem.h>
//#include <windows.h>

//Setting Master Volume
//http://www.geocities.com/fekinci37/vol.htm

void __fastcall TForm1::Button1Click(TObject *Sender)
{

DWORD Vollevel;

Vollevel = GetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_DST_SPEAKERS));
//Vollevel = GetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT));
//Vollevel = GetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER));

if (Vollevel)
SetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_DST_SPEAKERS), 0);

else
SetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_DST_SPEAKERS), 65535);

}
200デフォルトの名無しさん:2005/09/26(月) 13:46:27
WOutLine.dwComponentType = MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT;
//WOutLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
//WOutLine.dwComponentType = MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER;

http://www.gbuilder.times.lv/mixer.htm
http://www.gbuilder.times.lv/bcb_tips/MIXER_DEMO.rar

WinRAR
RAR/ZIPファイルの圧縮・解凍
http://www.vector.co.jp/soft/win95/util/se100730.html
201デフォルトの名無しさん:2005/09/26(月) 18:11:59
>>200

Form1->TrackBar1->Max = 65535;
202デフォルトの名無しさん:2005/09/26(月) 23:37:11
BCBに未来はあるんでしょうか?
203デフォルトの名無しさん:2005/09/26(月) 23:39:07
C++に未来はあると俺は思う。
BCBに未来があるかどうかは、俺にはわからない。
204デフォルトの名無しさん:2005/09/27(火) 09:10:26
Win32では「プロトタイプ→製品」に関して最強。自分が使えれば、BCBに未来が有っても無くても構わん。
205デフォルトの名無しさん:2005/09/27(火) 20:35:38 0
フォームを消す!?
常駐系のアプリケーションを作成する場合など、タスクバーにアプリケーションのアイコンを表示したくない場合があります。

そんな時は、プロジェクトファイル(*.bpr)のソース(*.cpp)に以下のように追加します。


Project1.cpp
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->ShowMainForm = false; //これを追加
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}


ただしこのままだと終了させる術がないので、タスクトレイにアイコンを表示するなどの処置はしておきましょう(^^;

ただしShowMainFormプロパティはアプリケーションの起動時に表示するかしないかを決めています。
そこで、フォームを表示させたい場合はForm1->Show()などとして表示させましょう。
206デフォルトの名無しさん:2005/09/27(火) 20:56:22 0
うざ
207デフォルトの名無しさん:2005/09/27(火) 21:23:36 ID:0
>>204
仕事で使いたいなと思っているんだけど
もう新製品が出ませんとかだとなかなかね〜
208デフォルトの名無しさん:2005/09/27(火) 21:41:52 ID:0
逆に言うと、環境の入れ替えは不要だけどな
移行のテストも新バージョンの隠れたバグにも悩まされない

でも正直、環境入れ替えの移行テストもしたいし、SPが配布
されるのを心待ちにもしい・・・・・・・・・・・・・・・・・・・・・・
209デフォルトの名無しさん:2005/09/27(火) 22:02:03 ID:0
>>207
年末に出ますよ。
2007年にはwin64対応版も出るとの事です。

Delphi RoadMap
http://blog.marcocantu.com/blog/ekondelphiroadmap.html
> Delphi/C++ for win64 (circa 2007): the name says it all My Comment
210デフォルトの名無しさん:2005/09/27(火) 22:52:45
Dexterの新機能発表

EKon 9 Delphi Product Address
http://81.70.196.39:4242/Weblog/Blog.aspx?RootId=5:156
211デフォルトの名無しさん:2005/09/27(火) 22:54:41
>>210
Delphi談話室と間違えました
マルチポスト御免なさい mOm
212デフォルトの名無しさん:2005/09/28(水) 10:40:38
5と6ってどっちがバグ多いですか?
同じくらいならどっちを使うのがいいですか?
213デフォルトの名無しさん:2005/09/28(水) 10:43:50
>>212
急ぎじゃなければDelphi2006待ってから決めるのが吉
214デフォルトの名無しさん:2005/09/28(水) 10:47:25
TListViewでオーナードローを使ってCaptionとSubItemを違う色で表示したいのですが
SubItemがCaptionと同じ色で表示されてしまいます。

void __fastcall TForm1::ListView1DrawItem(
TCustomListView *Sender, TListItem *Item, TRect &Rect,
TOwnerDrawState State)
{
TCanvas *canvas = Sender->Canvas;

if (Item->Selected)
{
canvas->Brush->Color = clHighlight;
}
else
{
canvas->Brush->Color = clBlack;
}

canvas->Font->Color = clWhite;
canvas->TextOutA(0, Item->Top, "Caption");

canvas->Font->Color = clFuchsia;
canvas->TextOutA(ListView1->Columns->Items[0]->Width, SubItem);
}

どこがいけないのでしょうか。
215デフォルトの名無しさん:2005/09/28(水) 11:45:59
>>213
急ぎではないですが、それはいつ発売されますか?
216デフォルトの名無しさん:2005/09/28(水) 12:26:44
>>215
年末くらい
217デフォルトの名無しさん:2005/09/28(水) 16:54:11
>>214
最近BCB触ってないからアレなんだが・・・↓のコードでいけないか?

void __fastcall TForm1::ListView1DrawItem(
TCustomListView *Sender, TListItem *Item, TRect &Rect,
TOwnerDrawState State)
{
TCanvas *canvas = Sender->Canvas;

if (Item->Selected)
{
canvas->Brush->Color = clHighlight;
}
else
{
canvas->Brush->Color = clBlack;
}

SetTextColor(canvas->Handle, clWhite); // ← 変更
canvas->TextOutA(0, Item->Top, "Caption");

SetTextColor(canvas->Handle, clFuchsia); // ← 変更
canvas->TextOutA(ListView1->Columns->Items[0]->Width, SubItem);
}
218デフォルトの名無しさん:2005/09/28(水) 17:14:31
>>214
最後の行はcanvas->TextOutA(ListView1->Columns->Items[0]->Width, Item->Top, "SubItem");
の打ち間違い?だとして、それでちゃんと色分けされたけどな。
219デフォルトの名無しさん:2005/09/28(水) 18:24:03
//http://homepage3.nifty.com/endou/tips/01/tips1.htm
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap *mBitMapA; //ビットマップオブジェクトの宣言
Graphics::TBitmap *mBitMapB; //A:ソース B:オブジェクト
mBitMapA = new Graphics::TBitmap();
mBitMapB = new Graphics::TBitmap();
mBitMapA->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp"); //ソースファイルを読み込む
mBitMapA->PixelFormat = pf24bit; //24ビットのビットマップにする
mBitMapB->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp");
mBitMapB->PixelFormat = pf24bit;
#define kR 2//RGBのオフセット値
#define kG 1//ビットマップの中では、B G Rの順に並んでいます。
#define kB 0
{
int x,y,w,h;
unsigned char*pA,*pB;
w = mBitMapA->Width;
h = mBitMapA->Height;
for(y=0; y<h; y++) {
pA = (unsigned char *)mBitMapA->ScanLine[y];
pB = (unsigned char *)mBitMapB->ScanLine[y];
for(x=0; x<w; x++) {
pB[x*3+kR] = (unsigned char)(255 - pA[x*3+kR]);
pB[x*3+kG] = (unsigned char)(255 - pA[x*3+kG]);
pB[x*3+kB] = (unsigned char)(255 - pA[x*3+kB]);
}
}
}
Form1->Canvas->Draw(0,0,mBitMapB);
}
220デフォルトの名無しさん:2005/09/28(水) 23:36:37
>>216
delphi2006でC++が使えるの?
221デフォルトの名無しさん:2005/09/28(水) 23:49:01
222デフォルトの名無しさん:2005/09/28(水) 23:58:43
>>221
ほ〜 ありがとう
もうMFC使ってのGUIアプリ作るのは疲れたよ。
223デフォルトの名無しさん:2005/09/29(木) 10:23:32
>>222
そんな目的なら現行 BCB6 を買っておきなよ。D2006 なんか期待しちゃだめ
224デフォルトの名無しさん:2005/09/29(木) 10:41:46
MFCは単一ウィンドウ(ゲーム、物理シミュレーション)とか以外で使おうとは思わん・・・。
225デフォルトの名無しさん:2005/09/29(木) 10:42:36
単一ウィンドウっつーかウィンドウのみの時、ね。
226デフォルトの名無しさん:2005/09/29(木) 14:16:21
227デフォルトの名無しさん:2005/09/29(木) 23:44:08

[リンカ 致命的エラー]fatal:オプションの間違い:2045;
228デフォルトの名無しさん:2005/09/30(金) 11:01:40
新規作成でフレームを作成し、フォームにそのフレームを貼り付けたのですが
そのフォーム内のイベントでフレーム無いのラベル等のキャプションを変更しようとするとエラーになります。
Frame1->Label1->Caption = "aaa";
上記のコードを実行するときはすでにフレームのコンストラクタは呼ばれていますが
229デフォルトの名無しさん:2005/09/30(金) 11:23:02
>>228
とりあえずオブジェクトインスペクタでフォームに乗っかってるフレームのNameを確認する。
230デフォルトの名無しさん:2005/09/30(金) 11:28:08
>>229
貼り付けたフレームはフォームに貼り付けられたフレームにしかアクセスできませんか?
Frame11->Label1->Caption = "aaa";
たしかにこれならできますが、設計時にフレームを修正するとフォームに貼り付けてるフレームの内容も
同時に修正されるので、Frame1->Label1->Caption = "aaa";みたいに直接フレームないのラベル等の変更ができるかなっておもったんですが
これはできないってことですか?
231デフォルトの名無しさん:2005/09/30(金) 11:34:29
>>230
できません
232デフォルトの名無しさん:2005/09/30(金) 11:40:02
>>231
あ、できないんですか。納得です。
しかしフォームに貼り付けたフレームのボタンのクリックイベントを作成すると
Frame21->BitBtnClick(Sender);
みたいに、フレームのボタンクリックイベントを呼んでるんですよね。
何故これを呼ぶことができるのにキャプションの変更が出来ないのかが謎だなあ
ちなみに、フレーム内のボタンのクリックイベントでラベルの変更を行うのは可能なんですよね。
なんでだろ・・
233デフォルトの名無しさん:2005/09/30(金) 11:45:50
>>232
あんた頭悪すぎ。
234デフォルトの名無しさん:2005/09/30(金) 11:46:23
>>232
あなたはこっち

くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/
235デフォルトの名無しさん:2005/09/30(金) 12:00:04
煽るのは誰でもできるけど説明はできないんだよね
236デフォルトの名無しさん:2005/09/30(金) 12:01:17
>>235
煽らずに説明してやればいいのに。俺はできないけど。
237デフォルトの名無しさん:2005/09/30(金) 12:30:48
>>235
(ry
238デフォルトの名無しさん:2005/09/30(金) 13:56:11
定期的にageて質問者を装い荒らしに来る奴だな。

ageてバカっぽい質問してきたら気をつけろ!!
239デフォルトの名無しさん:2005/09/30(金) 13:59:47
質問です。
DBGridはDataSourceを指定せずにStringGridみたいにCellsのようなプロパティーで文字を設定することはできるのでしょうか?
240デフォルトの名無しさん:2005/09/30(金) 14:09:41
DrawCellで文字上書きくらいは出来るだろうが、自分はそういう亜流の苦労嫌い。
241デフォルトの名無しさん:2005/09/30(金) 19:31:24
XMLの<dc:date>で使われる"2005-06-09T13:43:13+09:00"という風な
形式の日時をTDateTimeに変換する方法を教えて下さい。
242デフォルトの名無しさん:2005/09/30(金) 20:39:31
>>241
TXSDateTime* xsDateTime = new TXSDateTime();

xsDateTime->XSToNative("2005-06-09T13:43:13+09:00");
xsDateTime->AsDateTime でTDateTimeとして取り出し。
243241:2005/09/30(金) 21:47:31
>>242
ありがとうございます、ただこのTXSDateTimeというのを使うには
何をincludeする必要があるんですかね?
BCB6Proを使っているのですが。
ヘルプ見たんですが、XSBuiltIns.hとかなさそうですし。
244デフォルトの名無しさん:2005/09/30(金) 22:07:10
>>243
XSBuiltins.hpp
245241:2005/09/30(金) 22:23:50
>244
どうもありがとうございました。
hppだったんですね、hとcppと試して、hppを失念してました。
お陰で希望通り動作しました。
246デフォルトの名無しさん:2005/09/30(金) 22:55:47
>>242
そんなクラスがあったのか。勉強になったよ。
自作する必要なかったじゃんか・・・orz
247デフォルトの名無しさん:2005/10/01(土) 06:40:41
cppは試さんでしょ普通w
248デフォルトの名無しさん:2005/10/01(土) 13:05:38
質問です。
TListViewの以下のイベントで処理を行いたい
のですがどうすればいいですか?

1:横スクロールバーを操作した時
2:ViewStyle = vsReportの時のカラム幅を変更中

お願いします。
249デフォルトの名無しさん:2005/10/03(月) 11:21:44
データベースを使わずにDBGridって使えますか?
250デフォルトの名無しさん:2005/10/03(月) 19:19:03
>>249
MyBase、具体的にはTClientDataSet。
251デフォルトの名無しさん:2005/10/04(火) 10:40:19
>>250
隊長!!
5にはTClientDataSetがありませんが!!
252デフォルトの名無しさん:2005/10/04(火) 11:04:25
お前のバージョンなんて知らんがな
253デフォルトの名無しさん:2005/10/04(火) 11:35:03
>>252
三等兵の分際で意見するな!!
254デフォルトの名無しさん:2005/10/04(火) 15:13:41
はっ!!
255デフォルトの名無しさん:2005/10/04(火) 21:28:28
はっ!!
256デフォルトの名無しさん:2005/10/05(水) 02:50:51
リスト4-8 新しいフォームオブジェクトの作成と表示


void __fastcall TMainForm::CreateNewForm(String Name)
{
TForm *NewForm = new TForm2(Application);
NewForm->Caption = Name;
NewForm->Show();
}
257デフォルトの名無しさん:2005/10/05(水) 07:55:15
仕事でBCB使えるようになった〜!
ここまでくるのに長かった・・
258デフォルトの名無しさん:2005/10/05(水) 08:08:06
すいませんが、Dos窓で実行するアプリを起動する方法を教えていただけないでしょうか?
ダブルクリックで起動すると数秒で終わるものなのですが、
パッとDos窓が立ち上がるのが分かります
出来たらこのDos窓が見えないように実行できるとすごくうれしいです
よろしくお願いいたします
259デフォルトの名無しさん:2005/10/05(水) 10:31:53
>>258
ShellExecuteで最後の引数をSW_HIDEにすればいいと思う
260デフォルトの名無しさん:2005/10/05(水) 13:38:14
 RichEdit1 でマウス・キー入力を禁止する方法(ReadOnly プロパティではなく)を
教えていただけないでしょうか?
よろしくお願いいたします。

261デフォルトの名無しさん:2005/10/05(水) 13:42:33
>>260
Application->OnMessage

WM_KEYDOWN

WM_LBUTTONDBLCLK マウスの左ボタンをダブルクリックした
WM_LBUTTONDOWN マウスの左ボタンが押された。
WM_LBUTTONUP   マウスの左ボタンが離された。

WM_RBUTTONDBLCLK マウスの右ボタンをダブルクリックした
WM_RBUTTONDOWN   マウスの右ボタンが押された
WM_RBUTTONUP   マウスの右ボタンが離された

WM_MBUTTONDBLCLK マウスの中央ボタンをダブルクリックした
WM_MBUTTONDOWN   中央のマウス ボタンが押された
WM_MBUTTONUP   中央のマウス ボタンが離された
262デフォルトの名無しさん:2005/10/05(水) 14:01:08
ハンドルを見て RichEdit1 宛てなら

WM_KEYFIRST から WM_KEYLAST までと WM_MOUSEFIRST から WM_MOUSELAST までを
無視させる
263デフォルトの名無しさん:2005/10/05(水) 14:06:53
俺の周波数は100Hz
264デフォルトの名無しさん:2005/10/05(水) 22:04:27
>>260
MSG msg;
// キーボード
while( PeekMessage( &msg, Handle, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE ) );
// マウス
while( PeekMessage( &msg, Handle, WM_MOUSEFIRST, WM_MOUSELAST, PM_REMOVE ) );
265デフォルトの名無しさん:2005/10/06(木) 01:53:40
そんなことしなくても Handled を true にするだけ。
266デフォルトの名無しさん:2005/10/06(木) 04:27:22
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
{

//http://thunder.prohosting.com/~cbdn/anmessag.htm
//additional applicationEvents1
if(Msg.message == WM_MOUSEMOVE)
{
Caption = "Moved to " + IntToStr(LOWORD(Msg.lParam))
+ " : " + IntToStr(HIWORD(Msg.lParam));
Handled = true;
}

}
267デフォルトの名無しさん:2005/10/06(木) 09:59:22
>>265さん
RichEdit1
Handled = true;
どのようにコードを書けばいいのでしょうか?


268デフォルトの名無しさん:2005/10/06(木) 10:28:12
すみません、Delphi ユーザなもんで

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if Msg.hwnd = RichEdit1.Handle then
    case Msg.message of
      WM_KEYFIRST..WM_KEYLAST, WM_MOUSEFIRST..WM_MOUSELAST: Handled := true;
    end;
end;
269デフォルトの名無しさん:2005/10/06(木) 11:54:50
>>260
>>262さん >>265さん >>268さん 
ご教授有難うございます。

void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
{
//RichEdit1でキー・マウス入力禁止(ReadOnly プロパティは使用しない)
//additional applicationEvents1
    if (Msg.hwnd == RichEdit1->Handle)
{

if ( (WM_KEYFIRST <= Msg.message) && (Msg.message <= WM_KEYLAST) )
{
Handled = true;
}
else if( (WM_MOUSEFIRST <= Msg.message) && (Msg.message <= WM_MOUSELAST) )
{
Handled = true;
}
}
}
270デフォルトの名無しさん:2005/10/06(木) 13:35:18
void __fastcall TForm1::Button1Click(TObject *Sender)
{

RichEdit1->Lines->Text = "12345\nabcde";

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX,
2 - 1, 0) + 4;

SendMessage(RichEdit1->Handle, EM_SCROLLCARET, 0, 0);
RichEdit1->SetFocus();

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{

RichEdit1->Lines->Text = "あいうえお\nかきくけこ";

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX,
2 - 1, 0) + 4;

SendMessage(RichEdit1->Handle, EM_SCROLLCARET, 0, 0);
RichEdit1->SetFocus();

}

Button1は二行目の「d」と「e」の間でカーソルが点滅しますが、
Button2は二行目の「き」と「く」の間でカーソルが点滅します。
共通コードで二行目の四文字目と五文字目の間でカーソルを
点滅させる事は出来ないのでしょうか?
271デフォルトの名無しさん:2005/10/06(木) 13:40:37
それは自分で1バイト文字か2バイト文字かを判断しないと。
272デフォルトの名無しさん:2005/10/06(木) 13:41:39
>>270
widestring
273デフォルトの名無しさん:2005/10/06(木) 15:10:18
> 共通コードで二行目の四文字目と五文字目の間でカーソルを

Delphiだとこれでうまくいきます。

function CharactersToBytes(const s: string; posi: integer): integer;
var
  w: WideString;
  t: string;
begin
  w := s;
  t := Copy(w,1,posi);
  result := Length(t);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  p: integer;
begin
  RichEdit1.Lines.Text := '12345'#13#10'abcde';
  p := CharactersToBytes(RichEdit1.Lines[2-1], 4);
  RichEdit1.SelStart := RichEdit1.Perform(EM_LINEINDEX,2 - 1, 0) + p;
  RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
  RichEdit1.SetFocus;
end;
274デフォルトの名無しさん:2005/10/06(木) 15:11:10
つづき


procedure TForm1.Button2Click(Sender: TObject);
var
  p: integer;
begin
  RichEdit1.Lines.Text := 'あいうえお'#13#10'かきくけこ';
  p := CharactersToBytes(RichEdit1.Lines[2-1], 4);
  RichEdit1.SelStart := RichEdit1.Perform(EM_LINEINDEX,2 - 1, 0) + p;
  RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
  RichEdit1.SetFocus;
end;
275デフォルトの名無しさん:2005/10/06(木) 15:51:26
Delphiスレ行きなさい
276デフォルトの名無しさん:2005/10/06(木) 16:05:28
VCL のことは Delphi スレできいたほうがよさそう
guest:male 16 
278デフォルトの名無しさん:2005/10/06(木) 20:28:23
ようこそ裏2chへ^^
279デフォルトの名無しさん:2005/10/06(木) 20:41:00
あ〜あ、IP晒しちゃったよ
280デフォルトの名無しさん:2005/10/07(金) 00:38:03
>>270
>>272さん >>273-274さん
ご教授有難うございます。

int CharactersToBytes0(const AnsiString s, int posi)
{

WideString w;
AnsiString t;
w = (WideString)s;
t = (AnsiString)w.SubString(1, posi);
return t.Length();

}

int CharactersToBytes(const String s, int posi)
{

WideString w;
String t;
w = (WideString)s;
t = (String)w.SubString(1, posi);
return t.Length();

}
281デフォルトの名無しさん:2005/10/07(金) 00:39:52
続き
void __fastcall TForm1::Button1Click(TObject *Sender)
{

int p;

RichEdit1->Lines->Text = "12345\nabcde";

p = CharactersToBytes(RichEdit1->Lines->Strings[2-1], 4);

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX,
2 - 1, 0) + p;

SendMessage(RichEdit1->Handle, EM_SCROLLCARET, 0, 0);
RichEdit1->SetFocus();

}
//---------------------------------------------------------------------------
282デフォルトの名無しさん:2005/10/07(金) 00:42:09
続き

void __fastcall TForm1::Button2Click(TObject *Sender)
{

int p;

RichEdit1->Lines->Text = "あいうえお\nかきくけこ";

p = CharactersToBytes(RichEdit1->Lines->Strings[2-1], 4);

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX,
2 - 1, 0) + p;

SendMessage(RichEdit1->Handle, EM_SCROLLCARET, 0, 0);
RichEdit1->SetFocus();

}
//---------------------------------------------------------------------------

283デフォルトの名無しさん:2005/10/07(金) 00:44:18
続き
void __fastcall TForm1::Button3Click(TObject *Sender)
{

int p;

RichEdit1->Lines->Text = "12345\nabcde";

p = CharactersToBytes0(RichEdit1->Lines->Strings[2-1], 4);

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX,
2 - 1, 0) + p;

SendMessage(RichEdit1->Handle, EM_SCROLLCARET, 0, 0);
RichEdit1->SetFocus();

}
//---------------------------------------------------------------------------
284デフォルトの名無しさん:2005/10/07(金) 00:48:44
void __fastcall TForm1::Button4Click(TObject *Sender)
{

int p;

RichEdit1->Lines->Text = "あいうえお\nかきくけこ";

p = CharactersToBytes0(RichEdit1->Lines->Strings[2-1], 4);

RichEdit1->SelStart = SendMessage(RichEdit1->Handle, EM_LINEINDEX,
2 - 1, 0) + p;

SendMessage(RichEdit1->Handle, EM_SCROLLCARET, 0, 0);
RichEdit1->SetFocus();

}
//-------------------------
285デフォルトの名無しさん:2005/10/07(金) 01:21:18
>>280
ここはお前の日記帳ですね

http://www.tt.rim.or.jp/~rudyard/torii009.html
286デフォルトの名無しさん:2005/10/07(金) 02:05:30
きょうじゅ けう― 【教授】

(名)スル


(1)0 1 (ア)児童・生徒に知識・技能を与え、そこからさらに知識への興味を呼び起こすこと。


(イ)専門的な学問・技芸を教えること。
「国文学を―する」「書道―」


(2)0 大学などの高等教育機関において、専門の学問・技能を教え、また自らは研究に従事する人の職名。助教授・講師の上位。
287デフォルトの名無しさん:2005/10/07(金) 02:08:29
>>285
問題解決したコードを
掲示板にフィードバックしなくていいのでしょうか?
288デフォルトの名無しさん:2005/10/07(金) 02:16:58
>>287
気にするな。フィードバック感謝!
289デフォルトの名無しさん:2005/10/07(金) 02:18:49
やたら定義とかにこだわるヤツはどこにでもいるもんだな
290258:2005/10/07(金) 04:40:15
>>259
急な用事で出かけてしまいネットもなかなか見れなくて御礼が遅くなってすみません
帰り次第試してみたいと思います ありがとうございました
291デフォルトの名無しさん:2005/10/10(月) 17:20:06
だいぶ長いこと経ちますが、ボーランドは新しいコンパイラは出さないのでしょうか?
せめてVCLはともかく、コンパイラだけでも新しくしてほしい。
292デフォルトの名無しさん:2005/10/10(月) 17:42:53
>>291
次のバージョンでboostとか使えるらしいよ
293デフォルトの名無しさん:2005/10/10(月) 18:35:57
>>292 ソースお願い
294デフォルトの名無しさん:2005/10/10(月) 20:30:23
295デフォルトの名無しさん:2005/10/10(月) 20:41:57
そんなにいっぱいあげても boost に言及してるのはたった1行

- Conformance for Boost and ACE. Almost 100% ANSI conformance.

いままで対応してなかったのが驚き
296デフォルトの名無しさん:2005/10/10(月) 21:10:25
一番上以外はDelphi ユーザー向けの記事だからね。
追加情報としては2007年頃、Delphi/C++ for win64のあたりが注目点かな。

それからオフィシャルがC++Builder 2006に変わっている
http://www.borland.com/us/products/cbuilder/index.html

単体販売はあるのだろうか?
297デフォルトの名無しさん:2005/10/10(月) 21:57:50
ハァハァ
298デフォルトの名無しさん:2005/10/10(月) 22:48:42
統合しても御利益ないことはだれでも分かるわけで、某が今頃気づくのが不思議。
Delphi も for Win32 と for .NET を分けて欲しい。C# はいらん。
299デフォルトの名無しさん:2005/10/11(火) 01:30:54
当面の一番の問題点はこれ。

These are not planned.
- Updates for BCB6

( ゚Д゚)ゴルァ!!約束が違うだろうが。
300デフォルトの名無しさん:2005/10/11(火) 03:57:44
ははは、買う気になった? BCB ユーザで買うヤツがいるかなぁ・・・
301デフォルトの名無しさん:2005/10/11(火) 04:01:54
どゆこと?
302デフォルトの名無しさん:2005/10/11(火) 04:17:55
を?ついに某はDelphi、C#抜きのBCB新製品を出す気になったか。
頼むぜ某さん。
303デフォルトの名無しさん:2005/10/11(火) 04:33:08
抜きじゃない。
商品としてはDelphi2006, C++Builder2006, C#Builder2006が用意されるが

 中 身 は 同 じ 。

FAQに書いてある。
特定言語だけのインストールはできるらしい。
304デフォルトの名無しさん:2005/10/11(火) 04:36:37
なんでC#なんかにちからをいれてるんだ?そんなのよりc++の方があとう的に利用人口が多いと思うのだが
305デフォルトの名無しさん:2005/10/11(火) 04:43:59
>>303
・・・・・BCB6からのアップデートパスが無い時点でもう(´Д⊂ モウダメポ
また10万とか用意せにゃいかんのか
306デフォルトの名無しさん:2005/10/11(火) 04:58:54
アップデートパスはあるだろ。普通に。
307デフォルトの名無しさん:2005/10/11(火) 06:51:07
>>291
ボーランドはコンパイラ製作の人間を大量解雇したらしいですよ
新しいコンパイラは期待できないでしょう
308デフォルトの名無しさん:2005/10/11(火) 07:13:36
人員が減った事は確かですけど

Delphiにinlineや演算子オーバーロードが加わったり
C++のWIN64ネイティブ対応が予定されているなど

コンパイラも新しくなってますよ。
309デフォルトの名無しさん:2005/10/11(火) 08:24:55
>コンパイラ制作の人間を大量解雇
プロダクツが多量のバグの悪寒。Updateに次ぐUpdateかよ('A`)
310デフォルトの名無しさん:2005/10/11(火) 09:02:51
BCB6までは怒濤のリリースだったのにそれ以降はさっぱり。
あまり短いサイクルだとアップグレードの負担が大きいけど、
逆に長すぎると最新技術に乗り遅れ。
MSの様にある程度定期的にリリースしてくれればいいのに。
311デフォルトの名無しさん:2005/10/11(火) 11:08:40
>>308

予定するのは勝手だが、まともに動くかどうかは予定に入ってるのか?(笑
312デフォルトの名無しさん:2005/10/11(火) 14:15:02
まともに動くもの出したって、どうせ>>311には使いこなせないから意味ないやん(笑
313デフォルトの名無しさん:2005/10/11(火) 17:22:09
そうか、だからまともなの出さないのか。当分無理だな、こりゃ
314デフォルトの名無しさん:2005/10/11(火) 17:41:13
ってか、もう無理っぽいよ。主力は Win64 に行ったし
315デフォルトの名無しさん:2005/10/11(火) 22:30:45
もうBorlandはどこかに身売りしろよ
316デフォルトの名無しさん:2005/10/12(水) 05:43:44
Delphiスレ行きなさい
317デフォルトの名無しさん:2005/10/12(水) 16:47:31
ParadoxDBのBLOBフィールドをDBファイル間でコピーしようとしています。

TStream* sourcestream = sourcetable->CreateBlobStream(sourcetable->FieldByName("blobfield"), bmRead);
desttable->Edit();
TStream* deststream = desttable->CreateBlobStream(desttable->FieldByName("blobfield"), bmWrite);
deststream->CopyFrom(sourcestream, 0);
desttable->Post();
delete wrtstrmp;
delete sourcestream;

一行目、読み込み時に既にデータが足りないのですが、なにかおかしいでしょうか?
318317:2005/10/12(水) 18:50:55
ごめんなさい。この部分に来る前のバグでした。コーディングはコレで合ってました。失礼しました。
319デフォルトの名無しさん:2005/10/12(水) 23:24:55
Windows2000,BCB5+SP1です。

mosaic.dllという渡された*TCanvasに描画するdllを作りました。
extern "C" __declspec(dllexport) void mosaic(TCanvas *Canvas,DynamicArray<TRect> &Rect,int rectnum,int pixelsize){
ほげほげ
}
そして、呼び出し側のプロジェクトにその際に出来たmosaic.libを追加し、
プロジェクトのオプションの遅延ロードするdllにmosaic.dllを追加、
呼び出し側に
extern "C" __declspec(dllimport) void mosaic(TCanvas *Canvas,DynamicArray<TRect> &Rect,int rectnum,int pixelsize);

と記述して、
Graphics::TBitmap *MyBitmap;
MyBitmap=new Graphics::TBitmap;

このへんでビットマップ初期化〜描画
MosaicRectはRectクラスの動的配列

mosaic(MyBitmap->Canvas,MosaicRect,MosaicRect.Length,8);

などと呼び出しています。
一見うまくビットマップが処理されるのが画面でもわかるのですが、
一度でもdllの中で関数が渡す*Canvasのプロパティを変更したりメソッドを
使ったりすると
(例えば、Canvas->Brush->Style=bsSolid; の一行だけ実行してreturnするようにdllを書き換えても)
呼び出し側で
delete MyBitmap;
のところで例外が発生してしまいます。

ここであえて解放しなければプログラムは所定の目的どおりの動作をするのですが、
気持ち悪くてしょうがありません。
どうしてこうなってしまうのでしょうか?
320デフォルトの名無しさん:2005/10/13(木) 01:07:41
それは、DLL にVCLオブジェクトを渡してはいけない、有名な格言に違反してるから。

DLL と exe を同じ環境・バージョンでコンパイルしても、それぞれ別個のライブラリ
を参照していることになるのですよ。
321デフォルトの名無しさん:2005/10/13(木) 01:58:30
Delphi だと共通パッケージを使わない限り、一般に dll と exe の間で
オブジェクトはやりとりできない。動くこともあるけど、たまたま VMT の
相対アドレスが一致していた偶然と考えるべき。FAQ ですね。
322デフォルトの名無しさん:2005/10/13(木) 08:31:01
>>320-321
Delphi2まではIDEにインストールしたコンポーネントはdllにコンパイルされてたぞ?
一般的にダメというならCOMなんか成立しない。条件による。
VMTはふつーにPEローダーによって再配置されるし。

現に>>319
> 一度でもdllの中で関数が渡す*Canvasのプロパティを変更したりメソッドを
> 使ったりすると
と、わかってる。

このケースがダメな理由は、TBitmapがグローバル変数を参照するから。具体的にはCanvasやBrush等のGDIオブジェクトがキャッシュされているから。
メモリマネージャを共有して、Canvasを使ったらFreeMemoryContextsを呼ぶようにして、Brushなんかは変更しないようにすれば良さげ。(VCLソースをざっと見た限り。他になんかあるかも)

ただ、別個に注意点が沢山出来て面倒なのと、コンパイラ・ライブラリが同じバージョンであることを保証できないのとで、普通はやらないから格言になってるけれど…。
無条件にダメとか偶然とかそんなのでは無い。

このケースなんかだと、Bitmap.Canvas.Handleだけ渡して、.dllの中で別にテンポラリのTCanvas作って、そのHandleに渡されたHandleを代入して使えばどう?
323デフォルトの名無しさん:2005/10/13(木) 10:34:21
なんだか、めちゃくちゃなレスをつける人がいるんだな。本質を理解してないのが
見え見えですね。

> このケースなんかだと、Bitmap.Canvas.Handleだけ渡して、.dllの中で別にテンポラリのTCanvas作って、
> そのHandleに渡されたHandleを代入して使えばどう?

TCanvas は、ペンやブラシなどリソースマネージャが関与するデバイスコンテキストハンドル
のラッパです。DLL と exe とで別々のマネージャを持ってるのにハンドルだけ渡して
うまくいくわけ無いでしょ。一見うまくいくとしても、一方での内容変更が他方での
変更に自動的に反映するわけじゃないので齟齬が生じます。

TCanvas.Handle を DLL と exe で渡せないことは Delphi-ML でも過去に話題になりました。

VCL オブジェクトは、exe 内、 dll 内 で作成してその中で使う分には問題ないです。
やり取りはできません。
324デフォルトの名無しさん:2005/10/13(木) 12:47:16
教えて厨であることは重々承知しておりますが、教えてください。
PC−ネットワーク(TCP/IP)−装置
という構成でPCと装置間で、データの送受信を行いたいのですが、
PC上の制御ソフトではネットワーク通信を行うために必要なコンポーネント(ライブラリ?)はどのようなものでしょうか?
根本的にネットワーク通信のイロハのイの字も知らないため、ネット上でヒント等を探したりはしているのですが、なかなか要領を得られません・・・。orz

尚、制御ソフトの設計はC++Builder5を使用し、RS232CやGPIB通信プログラムの設計を行ったことはあります。

よろしくお願いします。
325デフォルトの名無しさん:2005/10/13(木) 13:24:35
つ Indy
326デフォルトの名無しさん:2005/10/13(木) 13:53:39
>>319

dll と exe は同一の仮想メモリ空間なんだから、mosaic がなにをするのか知らない
けど、ビットマップのピクセルをいじるんだったら、Scanline[] をポインタの配列
として渡したらどうでしょうか?

または、TCanvas で行き来できないので、TBitmap の SaveToStream() でメモリイメージ
としてやり取りするとか。
327デフォルトの名無しさん:2005/10/13(木) 15:41:58
■ビットマップの半透明コピー
http://members3.jcom.home.ne.jp/jellyjam/pages/Del/graph.html
※半透明コピーのサンプルコード(500KB)

Bmp1 に Bmp2 をコピーします。 Bmp2 が Bmp1 の大きさを超えるときは、はみでた部分は描画しません。 なお、強制的にフルカラーにしてしまうので気をつけてください……というかビットマップの PixelFormat は pf32bit にしておいてください。

●そのいち



Type
328デフォルトの名無しさん:2005/10/13(木) 15:58:18
AplphaBlend API だと pf24bit でも1行で簡単にできるけどね。
329319:2005/10/13(木) 18:46:10
皆様ご指導ありがとうございます。

dll自体がよくわかっていないのですが、dllとexeはメモリは共有するがインスタンスを
共用できないのでしょうか。それが共通パッケージを使うとそれができる?

今回の目的は、dllファイルを削除することによって関数が無効になる処理を入れること
ですので、共有ライブラリを使用する方法で試したらきちんとTBitmapが解放できました
のでこれでいこうと思います。ありがとうございました。
330デフォルトの名無しさん:2005/10/13(木) 21:30:25
>>323
は?
TCanvasは色々キャッシュされたりはするけれど結局単なるDCのラッパーで、たとえばHandleにGetDC(0)とかで取ってきたデスクトップ全体のデバイスコンテキストなんか代入して使えちゃったりするわけなんだが…。
できないのであれば、そもそもTCanvasのHandleが書き込み可能になってないだろ。
TCustomControl.PaintWindowなんか、Windowsから渡されたDCをCanvasのHandleに代入してるだけだぞ。
勿論、TCanvasは色々キャッシュしたりするので、その点は気を使う必要がある。

あと、オブジェクトそのものも、同バージョン同ライブラリが確実なのであれば、メモリマネージャ共有すれば、グローバル変数とかRTTIがexeとdllで別になることさえ気をつけてれば、渡せるよ。諸々の条件クリアがめんどくさいが。
331デフォルトの名無しさん:2005/10/14(金) 01:56:00
BCB用のリファクタリングツールってないですか?
手動で変数名変えるのに疲れました・・・orz
332デフォルトの名無しさん:2005/10/14(金) 07:12:56
together
333デフォルトの名無しさん:2005/10/14(金) 09:52:00
>>331
BCB2006
334デフォルトの名無しさん:2005/10/15(土) 23:58:58
TMemoの(総)行数ってわからないでしょうか?
Memo1->Lines->Count
がそうだと思ってやってみたのですがどうも違うみたいで・・・
よろしくお願いします
335デフォルトの名無しさん:2005/10/16(日) 00:06:56
>334
いやそれでいいとおもいますけど?
WordWrapがonだとうまくいかないかも
336デフォルトの名無しさん:2005/10/16(日) 02:14:01
TStringList に写し取って Count とか
337デフォルトの名無しさん:2005/10/16(日) 08:58:35
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//http://www.borland.co.jp/tips/cbuilder/cb006/vcldat_1.html
TStringList *List = new TStringList;
List->Assign(Memo1->Lines);
Caption = List->Count;
//List->Delete(0);
//List->Sort();
//Memo1->Lines->Assign(List);
delete List;
}
338デフォルトの名無しさん:2005/10/16(日) 10:43:45
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList* MyList = new TStringList();

AnsiString a = "070二郎";
AnsiString b = "100一郎";
AnsiString c = "080三郎";

MyList->Add(a);
MyList->Add(b);
MyList->Add(c);
MyList->Sort();

Memo1->Lines->Add(MyList->Count);
Memo1->Lines->Add(MyList->IndexOf(a));
Memo1->Lines->Add(MyList->IndexOf(c));
Memo1->Lines->Add(MyList->IndexOf(b));

Memo1->Lines->Add(MyList->Strings[0]);

Memo1->Lines->Add( ( (MyList->Strings[0]).SubString(1,3)).ToInt() );
Memo1->Lines->Add( ((WideString)MyList->Strings[0]).SubString(4,2) );

delete MyList;
}
339デフォルトの名無しさん:2005/10/16(日) 16:18:34
以下の例では TStatusBar と TRichEdit が必要です。フォームの OnCreate では,RichEdit のサイズ変更および RichEdit1SelectionChange で処理される OnSelectionChange イベントの設定を行います。
RichEdit コントロールで文字,もしくは範囲を選択すると,現在の文字位置や選択開始および終了位置の情報がステータスバーに表示されます(または,コードを直接 OnSelectionChange イベントハンドラに貼り付けることができます)。

void __fastcall TForm1::FormCreate(TObject *Sender)
{

RichEdit1->Align = alClient;
RichEdit1->OnSelectionChange = RichEdit1SelectionChange;
StatusBar1->SimplePanel = true;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::RichEdit1SelectionChange(TObject *Sender)
{
StatusBar1->SimpleText = AnsiString("選択の開始: ") + IntToStr(RichEdit1->SelStart) +
AnsiString("選択の終了: ") + IntToStr(RichEdit1->SelStart + RichEdit1->SelLength);

}

選択の開始を行表示に変更する方法がわかりません。
よろしくお願いします。
340デフォルトの名無しさん:2005/10/16(日) 16:22:58
EM_LINEFROMCHAR
341334:2005/10/16(日) 23:27:06
>>335-338
書き込みしてから急に用が出来てしまって、まだ出先で試していないのですが
帰ってすぐにやってみようと思います
みなさま本当にありがとうございました
342デフォルトの名無しさん:2005/10/17(月) 00:26:49
ボーランドさんへ

製品情報だけでも早く公開してください。

343デフォルトの名無しさん:2005/10/17(月) 08:35:26
画像のラベリング、特徴を調べたりする事のやり方、仕組みについて教えてください。
お願いします。
344デフォルトの名無しさん:2005/10/17(月) 08:52:31
>>343
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/
345デフォルトの名無しさん:2005/10/19(水) 22:41:57
ユニットテストやってる人いますか?
346デフォルトの名無しさん:2005/10/19(水) 23:17:47
YAML を扱えるライブラリないっすか?
347デフォルトの名無しさん:2005/10/20(木) 23:41:02
Wavファイルの再生について教えてください
sndPlaySound()で再生自体は出来たのですが、
指定した位置(ファイルの最初から一分後など)から再生をしたいのです
検索してみてDirectXとかを使うと出来そう(?)なことはわかったのですが
私にはちょっと敷居が高いような感じでした、、
よろしくお願いいたします
348デフォルトの名無しさん:2005/10/21(金) 09:37:06
>>347
TMediaPlayer使って 1分後を
MediaPlayer1->Positionで指定して再生すれば?
349デフォルトの名無しさん:2005/10/22(土) 08:37:01
OnCreate イベントは,フォームを作成したときに発生します。

__property Classes::TNotifyEvent OnCreate = {read=FOnCreate, write=FOnCreate, stored
=IsForm};

説明

OnCreate イベントハンドラを記述すると,フォームが作成され,
TCustomForm のコンストラクタによって呼び出されたときに
特別な処理を実行することができます。イベントハンドラを実装,
あるいは TCustomForm のコンストラクタのオーバーライドのいずれかを
行う必要がありますが,両方を行ってはなりません。
OnCreate イベントで作成されたオブジェクトは OnDestroy イベントで解放する必要があります。
フォームが作成されるとき,Visible プロパティが true であれば
イベントが以下の順序で発生します。

1. OnCreate
2. OnShow
3. OnActivate
4. OnPaint

注意フォームのコンストラクタとのやり取りが不良になる可能性が
あるので,C++Builder で OnCreate イベントを使うことはお勧めできません(OldCreateOrder を参照)。かわりに,フォームコンストラクタをオーバーライドすることをお勧めします。
350デフォルトの名無しさん:2005/10/24(月) 12:44:51
すみません教えてください
10/12のWinUpdate MS-052を行ってから
C++Builder5で作成した ActiveFormが動作しなくなりました
ベリサインは取ってあります(本質的に関係ないですが)

どなたか対応されたかたいますか?
351デフォルトの名無しさん:2005/10/24(月) 18:06:33
みなさんmanifestファイルは付けていますか?
一応DelもBCBも6のバージョンまでは、公式にはマズイ
ことになっているはずなんですけど。
WinSCPなんかは付いてますね。
352デフォルトの名無しさん:2005/10/24(月) 18:30:52
manifest!manifest!manifest!
353デフォルトの名無しさん:2005/10/26(水) 17:57:07
これを見たあなた!!ヾ(・ε・。)
 あなたゎこの1ヶ月以内に好きな人と両思い
またゎ付き合っている子ゎすごくLOVE2になります!!
 それにゎこの文章をコピーして他の掲示板に3回別の掲示板に
はればOK!!!たったこれだけであなたわぁ
 最高の生活がおくれます!!
ただしこれをしなかったら
 きっと両思いになることゎないでしょう!!(/□≦、)
やった子ゎ今でゎ学校1のLOVE2カップルです!!
これをやらなかった子ゎすぐに彼氏と別れてしまいました
354デフォルトの名無しさん:2005/10/26(水) 23:55:28
自宅のローカルな掲示板でもOK?
355デフォルトの名無しさん:2005/10/28(金) 22:41:04
384 :デフォルトの名無しさん :2005/10/28(金) 15:06:44
TPageControlの枠の色は親FormのColorと同じになりますが、
親FormのColorを実行中に変更してもすぐに反映されません。
一度Visibleをfalseにしてから再度trueにすると反映されますが、
もうちょっとスマートな方法は無いでしょうか。


385 :デフォルトの名無しさん :2005/10/28(金) 16:11:23
>>384
InvalidateRect(PageControl1->Handle, NULL, TRUE);
356デフォルトの名無しさん:2005/10/30(日) 22:20:36
C++ With Borland C++Builder: An Introduction to the Ansi/Iso Standard and Object-Oriented Windows Programming
Richard Kaiser (著) ペーパーバック (2005/10/30) Springer Verlag
近日発売 予約可

http://www.amazon.co.jp/exec/obidos/ASIN/3540010270/
357デフォルトの名無しさん:2005/10/30(日) 22:27:56
Description:

Publisher writes:

C++ with the Borland C++Builder presents comprehensively and
systematically all language elements of the ANSI/ISO standard
of C++. Contexts and language concepts are in the foreground.
The author uses the version 6 of the Borland C++Builder as
development system. This visual system is the C++ variant of
the Pascal development system Delphi and makes a simple
development of programs for Windows possible. Almost all
examples and exercises are Windows programs. However, since
the ANSI/ISO standard of C++ is in the foreground, this book
is also suitable for readers who work with other compilers.
The class library of the C++Builder (VCL) is used as an example
of a class hierarchy. The CD-ROM contains many examples and
exercises with solutions.


Keywords: C++, C++ Builder, Client/Server, Programming
Languages, Objectoriented Programming, Windows Programming


Contents:

From the contents: The Integrated Development
Environment.- The Component Palette.- Elementary
Data Types and Statements.- Structured Data Types
and Predefined Classes.- Statements and Impressions.
- Functions.- Modular Programming in Namespaces.-
Object-Oriented Programming.- The Visual Component Library (VCL).-
Templates and the STL.- Miscellaneous.- Bibliography.- Index.
358デフォルトの名無しさん:2005/10/31(月) 13:54:49
Replace使ってExcelの文中に改行したいのですが
Excelのマクロでどんな感じで処理しているか見て
みたのですが、いまいち分かりません。
ご教授頂けないでしょうか?

作りたい処理(マクロで登録した手順)は
[編集]置換→検索文字列入力→置換後の文字列入力部でCtrl+j→置換
です。

宜しくお願いします。
359デフォルトの名無しさん:2005/10/31(月) 14:27:36
↑荒らし
360デフォルトの名無しさん:2005/10/31(月) 16:57:06
>>358
コピペ乙
361デフォルトの名無しさん:2005/10/31(月) 20:40:29
Unicode使いたいなぁ
362デフォルトの名無しさん:2005/10/31(月) 22:50:12
あたらしいバージョンはいつ発売するんですか?
363デフォルトの名無しさん:2005/10/31(月) 23:07:39
絶対、来年!!!!!!!!!!!!
364デフォルトの名無しさん:2005/11/01(火) 09:36:33
http://shop.borland.com/dr/v2/ec_Main.Entry17c?SID=39696&SP=10023&CID=0&PID=772647&PN=1&V1=772647&CUR=840&DSP=&PGRP=0&CACHE_ID=0
Pre-order Delphi 2006 and receive a 15% discount off the list price
(special pre-order pricing good from 10/17 to 12/1)

Delphi 2006 includes complete RAD support for Delphi for Win32®, Delphi for .NET, C++, and C# programming languages.
365デフォルトの名無しさん:2005/11/01(火) 09:38:50
366デフォルトの名無しさん:2005/11/01(火) 09:41:54
367デフォルトの名無しさん:2005/11/01(火) 09:53:27
http://itpro.nikkeibp.co.jp/article/USNEWS/20051011/222518/

Delphi 2006,C++Builder 2006,C#Builder 2006は,
10月17日〜12月1日まで先行予約を受け付ける。先行予約者に対しては,
15%のディスカウントが適用される。商品の出荷は12月初旬が予定されている。
368デフォルトの名無しさん:2005/11/01(火) 11:16:06
日本語版は来年のようだな
VCLは英語版じゃどうしようもないのが悲しいな
369デフォルトの名無しさん:2005/11/01(火) 13:24:20
>>365
Upgrageパスが残されていたか。正直ホッとした。
しかし4万超えるな。これだけ間を置いたから仕方ないのか。
370デフォルトの名無しさん:2005/11/01(火) 13:37:41
今回、Professional高くねえ?
371デフォルトの名無しさん:2005/11/01(火) 13:48:39
>>370
向こうの値段はこっちより高い。
6Proも実売$900-$1000はする。
372 :2005/11/01(火) 13:50:18
Java使っててBuilderにも興味あるんですが文字列はユニコードなの?Javaみたいに。
マルチバイト文字の処理の仕方しりません。教えて。
373デフォルトの名無しさん:2005/11/01(火) 13:50:33
>>371
情報サンクス。じゃあ待つとするか。絶対買うからね>某
374デフォルトの名無しさん:2005/11/01(火) 18:06:31
>>373
放流・拡散よろ
375デフォルトの名無しさん:2005/11/01(火) 18:20:03
>>372
WindowsはUnicodeとマルチバイト(日本語ではShift-JIS)の両方から選べるようになっている。
ただしUnicodeはNT系限定という罠。

C++自体はWindowsと無関係にUnicodeもマルチバイトも好きに使えるから、
必要に応じてマルチバイトとUnicodeとを変換していけばいい。
376デフォルトの名無しさん:2005/11/01(火) 18:37:44
>>373
通報しますた。
377デフォルトの名無しさん:2005/11/01(火) 18:39:22
×>>373
>>374 orz

しかし、どちらにしても許諾コードの取得には制限があるから、
意味ないと思うんだが。

今回のBCB2006は、boostへの対応度が100%近くになる
らしいので、凄く期待している。頼んだよ某さん。
378デフォルトの名無しさん:2005/11/01(火) 22:56:27
379デフォルトの名無しさん:2005/11/02(水) 00:12:10
BCB2006は、.NETに対応しないんですか?
380デフォルトの名無しさん:2005/11/02(水) 02:40:28
.NET 対応は予定なし
381デフォルトの名無しさん:2005/11/02(水) 11:12:43
.NETって普及してんの?
382デフォルトの名無しさん:2005/11/02(水) 13:41:33
スレちがい
383デフォルトの名無しさん:2005/11/02(水) 13:47:54
ちょっとぐらいええやんか、ケチ。
384デフォルトの名無しさん:2005/11/02(水) 14:05:44
どんな巨大なoff topicも最初はちょっとだ。
言い出しっぺが自分の「ちょっとさ」を売りにすることで
免除されることなんて何も無い。
385デフォルトの名無しさん:2005/11/02(水) 15:49:31
すみません、質問です。
三次元座標をプロットしていくようなプログラムは
C++ビルダーでは難しいでしょうか?

もし何か元になるようなプログラムがありましたら、
教えていただけると大変助かります。
よろしくお願いします。
386デフォルトの名無しさん:2005/11/02(水) 16:22:23
何故にC++Builderでは難しいと思うかが謎
387デフォルトの名無しさん:2005/11/02(水) 16:44:15
>>385
幾何計算が重要だろうから、開発ツールの差異なんか些細なもんじゃないか?

座標変換(3次元空間⇔2次元平面、2次元平面⇔スクリーン座標)だとか、設計の
方で時間と頭を使うと思うよ。
388デフォルトの名無しさん:2005/11/02(水) 17:12:16
>>386
たぶん、>>385さんの脳内にある完成品と同じ機能を持った
コンポーネントがC++Builderに存在しないから、「C++Builderでは難しい」
ということになるのだと思う。
389デフォルトの名無しさん:2005/11/02(水) 21:37:09
>>388
そんなコンポーネントはサードパーティーの高価なライブラリ
しか無さそうだ。俺はCAD設計で座標系は慣れたけど、最初の
作り込みは大変だぞ。ベクトル計算は浮動少数点数の誤差管理が
肝だし。趣味のプログラミングなら曖昧でも構わないが・・・
390デフォルトの名無しさん:2005/11/02(水) 22:20:07
Excel貼り付けろって話じゃないかな
391デフォルトの名無しさん:2005/11/03(木) 01:17:14
http://news19.2ch.net/test/read.cgi/newsplus/1130936492/561
C++ではグローバル変数をほとんど使いません。
人によってはグローバル変数は1つも使うなとさえ言います。
http://www.plustarnet.com/aspil/Programming/cpp00.htm
class CHero{
private:
long m_lLife;// ライフ
};

メンバ変数 m_lLife をForm1とForm2で使えるようにするには

class CHero{
private:
long m_lLife;// ライフ
};
をどこに書けばいいのでしょうか?
よろしくお願いします。
392デフォルトの名無しさん:2005/11/03(木) 01:23:22
>>391を訂正
http://www1.kcn.ne.jp/~robe/cpphtml/htmlword/words020.html
http://news19.2ch.net/test/read.cgi/newsplus/1130936492/561
C++ではグローバル変数をほとんど使いません。
人によってはグローバル変数は1つも使うなとさえ言います。

http://www.plustarnet.com/aspil/Programming/cpp00.htm
class CHero{
private:
long m_lLife;// ライフ
};

メンバ変数 m_lLife をForm1とForm2で使えるようにするには

// CHeroクラスオブジェクトの宣言
CHero hero;

をどこに書けばいいのでしょうか?
よろしくお願いします。
393デフォルトの名無しさん:2005/11/03(木) 02:07:03
複数ユニットで使うグローバル変数を作るには、ヘッダファイル(ex. Unit1.h)で
extern int someNumber;
と「宣言」し、ソースファイル(ex. Unit1.cpp)で
int someNumber;
と「定義」します。で、この変数を使いたいユニットは
#include "Unit.h"
とします。

ヘッダファイルで「定義」してしまうと、各ユニットごとに同名の別々の変数ができてしまうので注意です。

http://gimite.ddo.jp/bcbqtree/qtreemain.cgi?mode=thread&thread=42
394デフォルトの名無しさん:2005/11/03(木) 02:48:21
>>392
いやまあ、グローバル変数を使ったからといってパソコンが熱暴走して爆発すると
いうわけでもないので、個人で自分用にプログラムを作っている限りは、
構わないんじゃないかと・・・

グローバル変数が嫌われるのは、どこか知らないところで他人がいじっている
かも知れないけど、それを知るすべがないため。あるいは、逆に、どこかよそで
あらかじめ初期化もらっておかなければならないときに、その変数の値だけを
見たのでは、初期化されているかどうかを確認できないというため。

自分ひとりで小規模なプログラムを作っている場合なら、まあ問題ない。

で、勉強したいなら、"グローバル変数 シングルトン" で検索してみるといい。

これはC++Builder固有の話じゃなくてC++言語一般の質問にすべきものだから、
もし続けるならそちらのスレッドに移動しよう。
395デフォルトの名無しさん:2005/11/03(木) 12:22:38
!【緊急】開発言語PHPに“最悪”のセキュリティ・ホール,全ユーザーは今すぐ対処を
http://news19.2ch.net/test/read.cgi/newsplus/1130985853/l50

お前ら様方大丈夫ですか?これ
WEB系開発者は対応しないとまずいのでは?
396デフォルトの名無しさん:2005/11/03(木) 15:18:13
全く完全にスレ違いだけど、コピペ荒らし君だろうか???
397デフォルトの名無しさん:2005/11/03(木) 15:36:08
反応してる香具師も荒らし
398372:2005/11/03(木) 17:26:05
>>375
すいません、返答遅れました。
教えてくれてどうもありがとう。
399デフォルトの名無しさん:2005/11/04(金) 09:19:57
>>392
クラス内で定義された変数のことを、メンバ変数といい、
クラス内で定義された関数のことを、メンバ関数と呼びます。

 メンバ変数は、通常 private: キーワードで指定して、
クラス外からアクセス出来ないようにします。メンバ関数は、
public: キーワードで指定して、外部からアクセス出来るようにしています。


 クラス内だけからしかアクセス出来ない仕組みはカプセル化と
呼ばれますが、これのおかげでバグが出ても直ぐに修正出来る
プログラムを作ることが出来ます。クラス内のバグは、クラス内のみを
見れば良いということです。むやみやたらと、どこからでも参照出来る
グローバル変数を多用してしまうと、バグが出たときに非常に
修正しにくいプログラムになってしまいます。
400デフォルトの名無しさん:2005/11/04(金) 09:21:24
401デフォルトの名無しさん:2005/11/05(土) 16:00:40
すいません初歩的な質問ですが
RichEdit内で現在カーソルがある所の(先頭からの)行数を知るにはどうすれば良いのでしょうか?
よろしくお願いします。
402デフォルトの名無しさん:2005/11/06(日) 10:47:17
EM_LINEFROMCHAR
403デフォルトの名無しさん:2005/11/06(日) 11:25:16
勉強中の奴にいっとくが

主キーの定義は一つのカラムに。
内容はユニークなだけで意味の無いものにしておけよ。

参考書に書いてても伝票番号、明細番号とかの複合キーにしないように。
404デフォルトの名無しさん:2005/11/06(日) 11:36:45
>>403
素人キター
405デフォルトの名無しさん:2005/11/06(日) 13:57:10
>>403
>参考書に書いてても伝票番号、明細番号とかの複合キーにしないように。
なんで?
406デフォルトの名無しさん:2005/11/06(日) 16:35:54
>>404
意図的に "sag e"なんて書いてスレをあげるような
コピペ荒らしに、いちいち反応しない。スレの内容と何の
関係もないじゃん。
407デフォルトの名無しさん:2005/11/07(月) 07:31:45
 日付の文字列を、「Sat, 1 Oct 2005 17:50:11 +0900」のような英語表記で得たくて、次のように記述しました。
 (filedate は、TDateTime型の変数)

    filedate.FormatString("ddd','d' 'mmm' 'yyyy' 'hh':'nn':'ss' +0900'");

 すると、曜日の省略形(ddd)や、月の省略形(mmm)が、日本語表記になるようで、次のような文字列になってしまいました。

  土, 1 10 2005 17:50:11 +0900

 FormatStringメソッドを利用して、「Sat」とか「Oct」とかのような英語表記を得るにはどうすれば良いのでしょうか?

 ヘルプによると、曜日の省略形は ShortDayNames グローバル変数にあり、
月の省略形は ShortMonthNames グローバル変数にあると記述されています。
 というわけで、以下のようにあらかじめ記述しておけば、英語表記にすることは
可能でした。

    ShortDayNames[0] = "Sun";
    ShortDayNames[1] = "Mon";
    ShortDayNames[2] = "Tue";
    ShortDayNames[3] = "Wed";
    ShortDayNames[4] = "Thu";
    ShortDayNames[5] = "Fri";
    ShortDayNames[6] = "Sat";

 しかし、どうもこの書き方はスマートではないような気がするのですが…。
 何か TDateTime のメソッドなどを利用して、英語表記の日付(曜日と月)を得る方法はないものでしょうか?
408デフォルトの名無しさん:2005/11/07(月) 09:14:50
>>407
WinAPIを直接呼べばできる。ほかのやり方はしらん。
TCHAR Buf[256];
SYSTEMTIME st;
GetSystemTime(&st);
LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);
GetDateFormat(lcid, 0, &st,
    TEXT("ddd','d' 'MMM' 'yyyy'"), Buf, sizeof Buf / sizeof Buf[0]);
MessageBox(0, Buf, TEXT(""), MB_OK);

日付と時刻用にそれぞれGetDateFormatとGetTimeFormatという2つにわかれているのに注意。
409デフォルトの名無しさん:2005/11/07(月) 11:54:48
BCB6でMP3ファイルを再生する方法を教えてください。
410デフォルトの名無しさん:2005/11/07(月) 12:15:16
http://d.hatena.ne.jp/kwg/20051106
本当に無償で使える「VMware Player」

http://yamashita.dyndns.org/blog/343
http://www.h7.dion.ne.jp/~qemu-win/index-ja.html
http://fabrice.bellard.free.fr/qemu/

ディスクイメージをQEMUでつくって、設定ファイルをeditorでこりこり書いてやればOK、ということらしい。すばらしひ。

しかしこれで、coLinuxに注いでいた労力が無駄になった気がしますです ^^;
411デフォルトの名無しさん:2005/11/07(月) 22:07:07
>>407
FormatString() を呼び出す前に SysLocale を設定すれば良いと思ったが失敗。
調べてみたら FormatString() 内部で呼び出している GetDataFormat() の第一引数が SysLocale では無く GetThreadLocale() だった。
結局>>408のようにするか、SetThreadLocale() 使ってロケールをセットするしかない見たい…さて、どちらが面倒だろう
412デフォルトの名無しさん:2005/11/07(月) 22:45:33
あー、ロケール設定しても強制的に ShortDateNames を参照するようになってるのか…
>SetThreadLocale() 使ってロケールをセットするしかない見たい
は取り下げ
413デフォルトの名無しさん:2005/11/08(火) 04:44:22
デフォルトプリンタを設定するAPIや例題などを知りたいのですが
宜しくお願いします。
414デフォルトの名無しさん:2005/11/08(火) 10:36:01
"プリンターを初期化できません" のエラーが発生してしまいます。


通常はこのようなエラーは発生しませんが強制的にプリンターを初期化すると回避可能です。



#include <printers.hpp>

__(途中省略)__

char p_name[256],
p_drv[256],
p_port[256];
THandle devm;
TDevMode *dmw;

//プリンターの設定を変更
//GetPrinter は2回呼び出して下さい。
//2回呼び出さないとプリンタ情報を取得できません。
Printer()->GetPrinter( p_name, p_drv, p_port, devm );
Printer()->GetPrinter( p_name, p_drv, p_port, devm );

Printer()->SetPrinter( p_name, p_drv, p_port, devm );

__(以下省略)__
415デフォルトの名無しさん:2005/11/08(火) 10:36:54
GetDeviceCapsの引数(index)にはもっといろいろあります。
ちなみに、
HORZRES + PHYSICALOFFSETX * 2 = PHYSICALWIDTH
VERTRES + PHYSICALOFFSETY * 2 = PHYSICALHEIGHT
HORZRES / LOGPIXELSX * 25.4 = HORZSIZE
VERTRES / LOGPIXELSY * 25.4 = VERTSIZE
の関係があるようです。
で、例えば、mBitmapというビットマップデータをgPrintResの解像度(dpi)で印刷する場合

doubleLogPixelsX,LogPixelsY;
TRectr;

LogPixelsX = GetDeviceCaps(Printer()->Handle,LOGPIXELSX);//ディスプレイの幅のピクセル数(論理インチ当たり) 解像度(dpi)
LogPixelsY = GetDeviceCaps(Printer()->Handle,LOGPIXELSY);

r.left = gPrintOffX * LogPixelsX / 25.4;//左上のオフセット ピクセル換算
r.top = gPrintOffY * LogPixelsY / 25.4;
r.right = r.left + mBitmap->Width * LogPixelsX / gPrintRes;//描画幅 ピクセル換算
r.bottom = r.top + mBitmap->Height * LogPixelsY / gPrintRes;
Printer()->BeginDoc();
Printer()->Canvas->StretchDraw(r,mBitmap);
Printer()->EndDoc();
のようにします。
416デフォルトの名無しさん:2005/11/08(火) 17:38:52
WinInet.dllのFTP関連API一覧

API概要
InternetOpen接続のための情報を初期化する
InternetConnectFTPサーバーと接続する
FtpCreateDirectoryFTPサーバー上に新規ディレクトリを作成する
FtpDeleteFileFTPサーバーからファイルを削除する
FtpGetCurrentDirectoryFTPサーバー上のカレントディレクトリを取得する
FtpGetFileFTPサーバーからファイルを取得する
FtpPutFileFTPサーバーへファイルを転送する
FtpRemoveDirectoryFTPサーバーからディレクトリを削除する
FtpRenameFileFTPサーバー上のファイル名を変更する
FtpSetCurrnetDirectoryFTPサーバー上のカレントディレクトリを指定する
InternetCloseHandleInternetConnectで取得した情報領域を解放する
FtpOpenFileFTPサーバー上で読み書きするファイルを指定する
InternetQueryDataAvailable指定したファイルから読み込み済みのバイト数を返却する
InternetReadFile指定したファイルから読み込む
InternetWriteFile指定したファイルに書き込む
InternetCloseHandleFtpOpenFileで取得した情報領域を解放する
FtpFindFirstFile条件に一致するファイル名の集合を返却する
InternetFindNextFileファイル名の集合からファイル名を取得する
InternetCloseHandleFtpFindFirstFileで取得した情報領域を解放する
417デフォルトの名無しさん:2005/11/09(水) 13:43:39
シェアウェアなどで、aviファイルをフレームレート毎に
JPEG画像を生成できるものを使ったことがあるのですが、
それの逆で、複数枚のJPEG画像からaviファイルを生成する
方法を探しています。
windowsアプリが不慣れなもので、なかなか探せずにいるのですが
DirectShowというのでできるのかなと思ったのですが、その見解
はあっていますでしょうか。
想定している環境は
windows2000 server or windows2000 pro or windows xp pro
です。
DirectShowというのは、DirectXの一部で上記のOSをインストールして
あれば特にライセンス費用を払わなくても使用できるのですよね。
(基本的なことですみません)

ほかにJPEG画像→avi生成ができるものがあれば教えてください。
開発環境はC++Builder6 proです。
418デフォルトの名無しさん:2005/11/09(水) 16:27:23
TPageControl下のTTabの見出し(?)の文字の色をタブそれぞれ別に
ダイナミックに変えることは可能でしょうか?
もし可能でしたらその手法をお教え頂けないでしょうか?
419デフォルトの名無しさん:2005/11/09(水) 19:06:00
420デフォルトの名無しさん:2005/11/09(水) 21:35:48
>>409

ネタかもしれんがレスしとく
BCB標準のTMediaPlayerコンポじゃ再生できなかった気がする
デコーダのソースの扱いやストリーミングが面倒なら
DirectShowで再生するのが簡単
IGraphBuilder play mp3 でググりなー
421デフォルトの名無しさん:2005/11/09(水) 23:42:51
現在アクティブのメモの内容をCtrl+Qでゲットするプログラムを
書いたつもりなのですが、ゲットしてきてくれません。
助言ください。
__fastcall TForm1::TForm1(TComponent* Owner)  : TForm(Owner){
 RegisterHotKey(Handle, 0x0000, MOD_CONTROL, 'Q');
}
void __fastcall TForm1::FormDestroy(TObject *Sender){
 UnregisterHotKey(Handle, 0x0000);
}
HWND __fastcall GetActiveInput(){
 HWND h; DWORD pid;
 DWORD tid = GetWindowThreadProcessId(GetForegroundWindow(), &pid);
 if ( AttachThreadInput(GetCurrentThreadId(), tid, true) ){
  h = GetFocus();
  AttachThreadInput(GetCurrentThreadId(), tid, false);
 }else
  h = GetFocus();
 return h;
}
void __fastcall TForm1::WMHotKey(TMessage & Msg){
 if(MAKELPARAM(MOD_CONTROL,'Q') == Msg.LParam){
  HWND hwnd = GetActiveInput();
  std::vector<char> buffer(GetWindowTextLength(hwnd) + 1);
  // 持ってくる
  GetWindowText(hwnd, &buffer[0], buffer.size());
  // 設定する
  SetWindowText(Memo1->Handle, &buffer[0]);
 }
}
422418:2005/11/10(木) 11:37:39
>>419
ありがとうございました。以下、他の方の参考となれば。

TPageControl* MemoPage;
MemoPage->OwnerDraw = true;
MemoPage->OnDrawTab = MemoPageDrawTab;
//---------------------------------------------------------------------------
void __fastcall TMainForm::MemoPageDrawTab(TCustomTabControl *Control, int TabIndex, const TRect &Rect, bool Active)
{
 RECT rect(Rect);
 static const UINT opt(DT_VCENTER | DT_CENTER | DT_SINGLELINE);
// Tab自体の色
 Control->Canvas->Brush->Color = clBtnFace;
 Control->Canvas->FillRect(Rect);
// Tabの文字の色
 Control->Canvas->Font->Color = TabIndex == 0 ? clBlack : clRed;
 DrawText(Control->Canvas->Handle, MemoPage->Pages[TabIndex]->Caption.c_str(), MemoPage->Pages[TabIndex]->Caption.Length(), &rect,
  opt
 );
}
423デフォルトの名無しさん:2005/11/11(金) 14:46:01
>>421
中身をじぇんぶ持ってくるんなら
TMemo::SelectAll();
TMemo::CopyToClipboard();
424デフォルトの名無しさん:2005/11/12(土) 09:34:12
 昨日まで、問題なく動作していたプログラムを、実行時パッケージ
を使わない設定に直して、Build Allしたら、いきなりコンパイルエ
ラーが出るようになりました。

 設定を元に戻しても、直りません。いったいどうなっちゃんだろ〜


ファイル:func1.hの中で以下を定義しています。

#include <vcl.h>

class A {
    int     i1;
public:
    void __fastcall fc1(TStringGrid *sp);
};

TStringGridの型名がエラーと指摘されます。

午前中に出荷しなければならないのに・・・悪戦苦闘しています。

どなたかおわかりでしたら解決策をお教え下さい。お願いします。
425デフォルトの名無しさん:2005/11/12(土) 09:42:25
とりあえずエラーの全文。設定変える前に何かやったとか
426デフォルトの名無しさん:2005/11/12(土) 14:11:36
>>424
#include <Grids.hpp>は?
427デフォルトの名無しさん:2005/11/12(土) 14:31:35
http://homepage2.nifty.com/Mr_XRAY/Delphi/plFileDialog/index.htm
BCB6で使えるこういうのってありますか?
428デフォルトの名無しさん:2005/11/12(土) 14:55:14
>>427
SelectDirectoryとか標準で入ってるだろ。
そもそもソース提供されてるんだから、それをそのままBCBでビルドすれば使える。
429デフォルトの名無しさん:2005/11/12(土) 15:08:41
>>427
APIがある。
430デフォルトの名無しさん:2005/11/13(日) 00:24:38
BCB6でDirectX9ってつかえないの?
431デフォルトの名無しさん:2005/11/14(月) 10:22:51
マウスカーソル直下のコントロールを取得したいのですがうまくいきません。

if (this->ControlAtPos(this->ScreenToClient(Mouse->CursorPos), true, true) == ListView1)

どうやったらListView1を取得できますか?
432デフォルトの名無しさん:2005/11/14(月) 14:54:21
>>431
WindowFromPoint / CheldWindowFromPoint
433デフォルトの名無しさん:2005/11/14(月) 15:07:33
>>432
dクス
434デフォルトの名無しさん:2005/11/17(木) 20:30:24
標準キーボードのENTERキーなのか、
テンキーのENTERキーなのかを判定するには
どのようにすればいいのでしょうか?
435デフォルトの名無しさん:2005/11/17(木) 22:45:47
Builder 5使っています。
デバッグで、ある変数を書き換えたら止めるというのは、どうやればよいのでしょうか。
436デフォルトの名無しさん:2005/11/18(金) 08:45:08
>>435
ブレークポイント一覧で、右クリック、プロパティ、ブレーク条件を設定でできない?
Delphiはこれで出来るんだけど・・・
437デフォルトの名無しさん:2005/11/18(金) 09:10:16
170 名前: デフォルトの名無しさん [sage] 投稿日: 2005/11/18(金) 08:48:53
C++が間に合わなかったらしいw

仕方ないのでC++はベータ版扱いで出荷して、12月末までに何とかする事になった模様。
問題点はQuality Centralで公開するから見てねだってさ。
http://bdn.borland.com/article/0,1410,33404,00.html

日本語版は全部直ってからで良いよ。
438デフォルトの名無しさん:2005/11/18(金) 12:19:18
何でC++Builder使いの方々は皆優しくて親切なんですか?
439デフォルトの名無しさん:2005/11/18(金) 13:28:20
解決策があるから回答レスがある。
440デフォルトの名無しさん:2005/11/18(金) 13:43:19
優しくない人は書き込まない・・・かな?
441デフォルトの名無しさん:2005/11/18(金) 14:04:18
ティンポラリフォルダの場所を取得する方法を教えてください
442デフォルトの名無しさん:2005/11/18(金) 14:13:56
>>441

char tempPath[MAX_PATH + 1];
GetTempPath(MAX_PATH, tempPath);
443デフォルトの名無しさん:2005/11/18(金) 14:31:09
>>434
WM_KEYDOWN の lParam を使用したいのですが OnKeyDown では取得できません。
http://www.borland.co.jp/qanda/cbuilder/c0005041.html

[Win32]SDK32:2つのENTERキーの違い JP77550 KB77550
http://d.hatena.ne.jp/takel/searchdiary?word=%2a%5bWin32%5d

HOWTO: Differentiate Between the Two ENTER Keys (77550)
http://www.it-faq.pl/mskb/77/550.HTM
444デフォルトの名無しさん:2005/11/18(金) 18:12:00
>>438
優しさ++ だからです
445デフォルトの名無しさん:2005/11/18(金) 20:31:50
このスレは四個ぶんのバファリンから作られてます。
446デフォルトの名無しさん:2005/11/18(金) 22:17:31
BCB6を使っています
BCB固有の質問ではないかもしれませんがご容赦ください。(ぺこり)

ある変数が桁あふれしたかを知りたいのですがどうすればいいでしょうか?
CPUのオーバーフローレジスタ(?)を監視すればよいのかな?と思い、
ヘルプを調べてみたのですがそれらしい記述が見つけられませんでした。
よろしくお願いします。
447デフォルトの名無しさん:2005/11/19(土) 00:51:48
フラグレジスタのOVとCYに注目。
符号付変数だとOVが1に、符号なし変数だとCYが1になります。
BCB6は手元にないのでわからんけど、レジスタは見れると思う。

「オーバーフロー フラグレジスタ」とかググったらすぐ見つかったぞ。
448デフォルトの名無しさん:2005/11/19(土) 20:08:11
フラグレジスタをみるのは当然。どうやって見るかを質問してるんだろ
449デフォルトの名無しさん:2005/11/19(土) 21:13:19
目で見る。耳で聞く。そして口から食べる。
450デフォルトの名無しさん:2005/11/19(土) 21:38:55
例えば _EFLAGS & 1 でキャリーフラグが見えるよ
と言ってみる
451デフォルトの名無しさん:2005/11/20(日) 00:07:17
>>448
unsigned int flag;
__asm
{
  pushfd
  pop flag
}
if(flag & 0x80)
  printf("overflow\n");
if(flag & 1)
  printf("carry\n");

自分で調べる癖をつけましょう。
452446:2005/11/20(日) 00:45:19
>>447-451
どうもありがとうございます

helpを調べていたら「C++Builder のレジスタ疑似変数表」というのを
見つけました。
これの_FLAGSを見るとオーバーフローが分かりそうな感じ(まだ試してませんがw)
です。

お騒がせしました(*´∀`)
453デフォルトの名無しさん:2005/11/20(日) 22:40:10
TSplitterにOnDblClickイベントを追加するにはどうしたらよいのでしょうか?
454デフォルトの名無しさん:2005/11/20(日) 22:48:01
>>453
Parentに入ってるコントロールのウィンドウプロシージャをサブクラス化してメッセージぶんどってくるしかないんでない?
TGraphicControlはウィンドウ持たないし。
455デフォルトの名無しさん:2005/11/22(火) 12:22:03
(数値地図から)200×200の数の行列?を読み込まし、iと、i+1と、j、 j+1で四点をとり、その4点の一番大きい値から小さい方へいくプログラムがつくれません
参照できるサイトありますか?わかる人いますか?ヒントください><
もう三ヶ月悩んでます、助けて
馬鹿な為ほんとプログラムわからないんです
456デフォルトの名無しさん:2005/11/22(火) 12:50:04
>>455
>その4点の一番大きい値から小さい方へいくプログラム
意味がわかりません
>iと、i+1と、j、 j+1で四点
>大きい値
array[i][j],array[i][j+1],array[i+1][j],array[i+1][j+1]ってこと?
>方へいく
???

ここはどうかな?
「プログラミングの為の数学と算数 vol.2」
ttp://pc8.2ch.net/test/read.cgi/tech/1094368921/
457デフォルトの名無しさん:2005/11/22(火) 14:41:07
山をだんだん降りていくようなこと?

単純にその4点の値を比較して小さいのを選ぶだけだと
すぐに無限ループにはまりそうだけど
458デフォルトの名無しさん:2005/11/22(火) 15:53:48
ダイクストラ法の話か?
459デフォルトの名無しさん:2005/11/22(火) 19:09:21
460デフォルトの名無しさん:2005/11/23(水) 03:16:11
おそらく、高度情報のはいった配列が与えられていて、
スタート点を指定すると、そこから低い方向に一歩ずつ下りていく
ようなプログラムを作りたいんだろうな。

終了条件とか、同じ低さの点が二つ以上あったときにどうするのか
とか、あいまいなところがかなりあるけど、まあそれはいいとして、
マルチポストはいただけない。

そもそも、VCともC++Builderとも関係ない、C/C++の一般的な
質問じゃないか。
461デフォルトの名無しさん:2005/11/23(水) 07:35:06
VBでやれば?
462デフォルトの名無しさん:2005/11/24(木) 12:27:30
>>455
質問者,出て来い
463デフォルトの名無しさん:2005/11/24(木) 17:57:51
C++Builder 6コンポーネント活用ガイド&実践プログラミング
Vol.4 インターネット編1、Vol.5 インターネット編2
がおもしろそうなので買おうかなと思ってAmazonのページを
見ていたら、Professional版じゃないとサンプルの一部しか
動かせないYO、みたいな不吉な書き込みがありました・・・orz

じぶんはPersonal版しか持っていないのですが、
http://www.cutt.co.jp/book/4-87783-106-1.html (Vol.4) (28〜32章)
http://www.cutt.co.jp/book/4-87783-108-8.html (Vol.5) (33〜39章)
買ってしまっても大丈夫でしょうか?

第9部 インターネットからのパソコンへのアクセス
第10部 メールプログラミング
第11部 Webクライアントプログラミング
第12部 応用プログラミング
第9部のFTPクライアントと第10部、第11部が動かせれば、
(できれば第12部も)買っても良いかなあ、なんて思うのですけども
結構値段が、いい値段だったりして・・・おもいきって勢いとかで
買いにくいです・・・orz
464デフォルトの名無しさん:2005/11/24(木) 18:44:10
>>463
Indy9をインストールすればいいじゃん。
その本に書いてある以上の事が出来る。
465デフォルトの名無しさん:2005/11/24(木) 19:16:37
>>464
最近プログラミングをやり始めたばっかりで、、、
C++Builder 6コンポーネント活用ガイド&実践プログラミング
のVol.6を、CD-ROMのサンプルコードを参考にしながら、さっき
一通り終わらせることができたみたいなかんじで、、、
Indy9が何なのか・・・C magaとかの連載で見たことがあるような・・・
コンポーネントの一種とか???あまりよくわからないんですけれども、
あの、その、Personal版でもVol4、Vol5は動かせるでしょうか?

Vol6でコードを打ってみて動かしてみて、プログラミングは面白いもの
なんだなぁ、なんて思ったりしていて、、、Vol4,5も書いてる人が同じ人
みたいなので、わかりやすいんじゃないかなぁ、実際、じぶんの手で
コードを打って動かしてみることが、このひとの本だったら、できるん
じゃないかなあ、なんて思っているかんじなのですけれども。。。
(なんかへたれですみません。。。orz)
466デフォルトの名無しさん:2005/11/24(木) 21:39:13
ボーランド、マルチ言語対応の統合開発環境「Borland Developer Studio 2006」
http://enterprise.watch.impress.co.jp/cda/software/2005/11/24/6673.html
467465:2005/11/24(木) 22:33:29
465です。
よく考えてみると、それは、作者さんに直接聞いたほうが
良いんジャマイカ、みたいな空気読めてない風な質問をして
しまっているようなかんじになってしまっていて、すみません。
華麗にスルーでよろしくお願いしますw
468デフォルトの名無しさん:2005/11/24(木) 23:39:39
すまんのう。
Personalを持っている人の話は、ここではあまり聞いたことがないんじゃよ。
Builder-MLででも聞いてみれば?
469デフォルトの名無しさん:2005/11/25(金) 08:46:07
470デフォルトの名無しさん:2005/11/25(金) 09:13:56
httpやftpならWinInetで十分な希ガス
471デフォルトの名無しさん:2005/11/25(金) 09:36:19
てst
472デフォルトの名無しさん:2005/11/25(金) 20:13:26
でもIndyの方が簡単
473デフォルトの名無しさん:2005/11/26(土) 13:34:33
RichEditで選択した範囲の背景色を変える方法を
教えていただけないでしょうか。
474デフォルトの名無しさん:2005/11/26(土) 15:33:40
ルートウィンドウ(バックグラウンドorデスクトップ)で右クリック・プロパティ
「デザイン」タブを選択し、「詳細設定」ボタンをクリック
「デザインの詳細」ダイアログ内で「指定する部分」を
「選択項目」にして、「色1(または背景色)」を変更。
475デフォルトの名無しさん:2005/11/26(土) 16:31:13
>>474
あの、プログラミングで・・・。
476デフォルトの名無しさん:2005/11/26(土) 16:45:27
SystemMetrics
477デフォルトの名無しさん:2005/11/26(土) 19:05:47
すいません。質問なんですが、
csvをTStringListで受けて、その後構造体に入れるには
どうすればいいのかわかりません。
確かTListだと

TList *p_pList ;
KOZOTAI *pData ;

pData = (KOZOTAI*)p_pList->Items[0];

のような感じですぐ構造体に入れられたんですが、
TStringListの場合だとどうすればいいのでしょうか?
教えてください。
478デフォルトの名無しさん:2005/11/26(土) 19:31:22
>>477
KOUZOUTAI の宣言を書いてみな。
479デフォルトの名無しさん:2005/11/26(土) 19:54:10
KOUZOUTAI::operator=(AnsiString);を定義して
KOUZOUTAI data;
data = pStringList->Strings[0];
480デフォルトの名無しさん:2005/11/27(日) 01:42:11
>>477
>TList *p_pList ;
>KOZOTAI *pData ;

>pData = (KOZOTAI*)p_pList->Items[0];

これはp_pList->Items[0]が返したTObject*型のポインタをキャストして
KOZOTAI*型ポインタ変数に代入しただけ
KOZOTAIのインスタンス(実体)には代入も何もしていない

>csvをTStringListで受けて、その後構造体に入れる
これはKOZOTAIのインスタンスに対して(必要なら生成した上で)値を代入するということでしょ
上のポインタ代入とは全く別の操作だよ

手順としては
1.ファイルをTStringListに読みこむ
2.各レコードをフィールドに分解する
3.それぞれの値をKOZOTAIのインスタンスのメンバに代入する
ってかんじ

別に難しい操作ではないが、
ポインタって何?インスタンスって何?というレベルだと自力ではしんどいかしれん
481デフォルトの名無しさん:2005/11/27(日) 02:12:38
>>477が何をしたいかワカラン

typedef struct tagKOZOTAI
{
   Ansistring Data0;
   Ansistring Data1;
       ・
       ・
       ・
}KOZOTAI;
482デフォルトの名無しさん:2005/11/27(日) 02:13:49
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   KOZOTAI *pData;

   TStringList *p_pList = new TStringList;
   p_pList->LoadFromFile(C:\\***.csv);
   
   TStringList *lineList = new TStringList;

   for (int i = 0;i < p_pList->Count;i ++)
   {
      lineList->CommaText = p_pList->Strings[i];

      pData->Data0 = lineList->Strings[0];
      pData->Data1 = lineList->Strings[1];
            ・
            ・
            ・
   }

   delete lineList;
   delete p_pList;
}
こんな感じだろうか?
483デフォルトの名無しさん:2005/11/27(日) 07:29:52
BCBってboost::string_algoもまともに通らないんだな
484デフォルトの名無しさん:2005/11/27(日) 07:59:51
あと一ヶ月の辛抱だ・・・・多分・・・・
485デフォルトの名無しさん:2005/11/27(日) 12:03:37
頼むぞBCB2005・・・・小金をよけて待ってる。
486デフォルトの名無しさん:2005/11/27(日) 16:34:03
BCB2006だよ。
487デフォルトの名無しさん:2005/11/27(日) 19:44:23
なんか統合された物が出るってニュースにあったけど?
単品で販売されるの?
488デフォルトの名無しさん:2005/11/27(日) 20:35:24
今のところされない。8万用意して待ってろ。
BCBからのアップグレードもないんだっけ?
489デフォルトの名無しさん:2005/11/27(日) 21:30:03
>BCBからのアップグレードもないんだっけ?
いやBCB6のUpdate5は出ない、というのを、糞アンチがデマに仕立てただけ。
ttp://groups.google.co.jp/group/borland.public.cppbuilder.non-technical/msg/901d7e5f9cb15e40?hl=ja&
というか、騙されてたの?
490デフォルトの名無しさん:2005/11/27(日) 22:48:51
アカデミック版のProって素のProと内容違うんだっけ?
普通にそれ買う気でいるんだけど
491デフォルトの名無しさん:2005/11/28(月) 00:31:54
発売まで一ヶ月切ってるのに、その辺の情報が全然ないな
492デフォルトの名無しさん:2005/11/28(月) 04:04:41
Developer Studio 2006
バージョンアップ
http://store.borland.co.jp/upgrade/delphi_upgrade_0727.html
493デフォルトの名無しさん:2005/11/28(月) 04:17:03
ひでえな
買いたくもないDelphiも同梱で、8万払わされるのかよ。
494デフォルトの名無しさん:2005/11/28(月) 04:35:42
※Borland C++Builder/C#Builder ユーザー様へは、別途バージョンアップのご案内をお送りいたします。Delphi、C++Builder、C#Builderを複数お持ちのユーザー様は、C++Builderからのバージョンアップ価格の方が安価になる場合がありますのでご注意ください。
495デフォルトの名無しさん:2005/11/28(月) 06:12:29
もしかして64bit開発環境はなしなのか???
だとしたら・・・ゴミダ
496デフォルトの名無しさん:2005/11/28(月) 08:08:45
>>490
商用に加えて成果物の教育目的外配布も不可なライセンス(学校事務等は可)
497デフォルトの名無しさん:2005/11/28(月) 08:17:29
>>495
ロードマップによると、これの次みたいね(DeveloperStudio2007?)
http://bdn.borland.com/article/0,1410,33383,00.html
498デフォルトの名無しさん:2005/11/29(火) 01:17:03
>>495
で、また来年大枚払って64ビット用のをかわなきゃいけないのか
499デフォルトの名無しさん:2005/11/29(火) 01:32:46
VSでも64bit対応はProfessional 以上。
http://www.microsoft.com/japan/msdn/vstudio/productinfo/productline/

VS Professionalは高い上に、お買い得感は今ひとつ。
結局、Team Systemを買わなきゃならん。

今回は64bitは見送りかな。
500デフォルトの名無しさん:2005/11/29(火) 02:32:25
VS2005は日本語版出荷になったら、お買い得キャンペーン始まるだろ。
恒例のキャッシュバックとか。
それに個人で使うなら、Team Systemなんて馬鹿高いもの買う奴などいないだろ。

501デフォルトの名無しさん:2005/11/29(火) 04:20:49
テクノロジープレビュー・・・・
502デフォルトの名無しさん:2005/11/29(火) 08:27:43
「VS 2005 Standard EditionやProfessional Editionなどの既存のVisual Studio開発者層を
継続的にサポートする製品は、今回はあまり目立っていない。」
http://www.atmarkit.co.jp/fdotnet/insiderseye/20051126vs2005/vs2005_01.html

個人開発者は切り捨てなのかね。
Proを買うならTeam Systemだと思うが、更新を考えると厳しいな。

> それに個人で使うなら、Team Systemなんて馬鹿高いもの買う奴などいないだろ。

個人でも15万円までなら出せなくは無いが、あれこれ使うとなると
パソコンも強化しないと駄目だろうし。厳しいね。
503デフォルトの名無しさん:2005/11/29(火) 10:24:41
>>490
内容は一緒だけど、Borland社製品のアカデミック版は、商用利用一切不可であるばかりか、
使用用途が、プログラミング学習のみとされていて、下手するとフリーウェアの配布すら
しちゃいけないという話。
504デフォルトの名無しさん:2005/11/29(火) 10:42:24
生き残る気がないのかな、この会社。
505デフォルトの名無しさん:2005/11/29(火) 10:52:28
まぁ、MSのアカデミックはちとやり過ぎだと思うがね。一般ユーザー馬鹿にしすぎ
506デフォルトの名無しさん:2005/11/29(火) 11:29:18
VirtualTreeViewについて質問させてください。

コンポーネントの新規作成からVirtualStringTreeを継承しただけの
コンポーネントを作ってメイクしようしたのですが、
TBaseVirtualTree::DoGetHeaderCursor(void *&)と
TBaseVirtualTree::OriginalWMNCPaint(void *)が未解決といわれます。

VirtualStringTree自体は問題なく動くのですが、どうしてこんなことが起こるのでしょうか?
507デフォルトの名無しさん:2005/11/29(火) 14:11:39
>>505
>一般ユーザー馬鹿にしすぎ

一般ユーザーがCOMとドトネトとアンマネージドが混在する複雑怪奇に耐えられるかな。
ディスクの肥やしのM$DNも鬱陶しいお。
508デフォルトの名無しさん:2005/11/30(水) 00:04:02
> 買いたくもないDelphiも同梱で、8万払わされるのかよ。

Del厨ですが、BCB 統合で値上がりして迷惑しています。
509デフォルトの名無しさん:2005/11/30(水) 00:18:16
どっちかというと米価格(Proで市価$1000)に近づけただけな希ガス
英語版の値段は据え置きだったはずだし。
510デフォルトの名無しさん:2005/11/30(水) 00:26:07
>>505
そういうものと思って諦めるしかない
Delphi使えばそんな馬鹿げた問題は起きないから、乗り換えるのもいいかも
511デフォルトの名無しさん:2005/11/30(水) 01:41:31
滅茶苦茶な論理だな。不自由したいから Delphi に乗り換える、って馬鹿じゃないか。
512デフォルトの名無しさん:2005/11/30(水) 01:42:48
> 英語版の値段は据え置きだったはずだし。

比較証拠求む。
513デフォルトの名無しさん:2005/11/30(水) 03:53:11
とりあえずBCBからのアップグレードがなんぼになるのかそれが問題だ
514デフォルトの名無しさん:2005/11/30(水) 05:00:26
>>506
BCBだとHICONやHCURSORの型はvoid*だけど、DelphiだとLongWordで定義されていて、これはBCBだとunsigned intにあたるから、みたい。

VirtualTrees.hppの該当の関数の宣言を下のように書き換えたらちゃんとリンクできた

virtual void __fastcall DoGetHeaderCursor(unsigned int& Cursor);
virtual void __fastcall OriginalWMNCPaint(unsigned int DC);
515デフォルトの名無しさん:2005/11/30(水) 19:27:27
スクリーンセーバーのプレビュー画面を作りたい。
*.scr を /P ウィンドウハンドルの10進文字列 で起動すれば良いのが
分かったのだが、*.scr をコマンドライン引数つきで起動する方法が分からん。
例えば
SHELLEXECUTEINFO Screxecinfo;
memset(&Screxecinfo,0,sizeof(Screxecinfo));
Screxecinfo.cbSize = sizeof(Screxecinfo);
Screxecinfo.lpVerb = "open";
Screxecinfo.lpFile = "ssbezier.scr";
Screxecinfo.lpParameters = "/P 123456";
Screxecinfo.fMask = SEE_MASK_NOCLOSEPROCESS;
Screxecinfo.nShow = SW_SHOWDEFAULT;
ShellExecuteEx(&Screxecinfo);

とやっても、普通にスクリーンセーバーが立ち上がるだけ、
でも ssbezier.scr を ssbezier.exe に変えると、うまく行く。
ssbezier.scrはコピーして、ssbezier.exeにしたやつね

どうにかならないかな
516デフォルトの名無しさん:2005/11/30(水) 23:15:20
コンパネから呼ばれたときプレビューになるやん?
517デフォルトの名無しさん:2005/11/30(水) 23:45:48
CreateProcessでやってみそ
518デフォルトの名無しさん:2005/12/01(木) 02:43:15
dclusr.cppをコンパイルするとこのようなエラーが出てしまうのですが、
どのようにすれば直すことが出来ますか?
[リンカ エラー] 'C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\LIB\DCLUSR.LIB' contains invalid OMF record, type 0x00
519デフォルトの名無しさん:2005/12/01(木) 11:23:19
あー、なるなる・・・
とりあえず元CDからその.libを持ってきて(書き込み不可外して)やれば、
今までdclusrに追加したコンポーネントは消えちゃうけど復活可能。
あとは何でもdclusrに追加するんじゃなく、新規で作ったほうがいいかも。
520515:2005/12/01(木) 19:53:57
>>517
うまく行きました。感謝です
521デフォルトの名無しさん:2005/12/01(木) 22:47:31
CoInitialize(NULL);って関数が使いたいんですが、
#define WIN32
#include <vcl.h>
#include <ComObj.hpp>
以外に、必要なインクルードファイルってありますか?
リリースコンパイル時に怒られます・・・
522デフォルトの名無しさん:2005/12/01(木) 23:24:52
>>521
#include <objbase.h> だけでいいんでない
523デフォルトの名無しさん:2005/12/02(金) 00:21:31
>>519
なるほど〜
ありがとうございました。
何とな直ったので、これからはそのように気を付けたいと思いますー
524デフォルトの名無しさん:2005/12/02(金) 11:28:23
>>522
うまくいきました!
ありがとうございました
525デフォルトの名無しさん:2005/12/02(金) 14:08:47
のC++Builderは来年末まで動作保証はないのかorz
526デフォルトの名無しさん:2005/12/02(金) 15:33:31
C++Builder10っていつでるのよ
527デフォルトの名無しさん:2005/12/02(金) 16:00:29
>>526
狙ってるの?
528デフォルトの名無しさん:2005/12/02(金) 22:25:56
数値計算に適したフリーのコンポーネントはあるのでしょうか?
当方、主成分分析のプログラムを作りたくて探しているので
すが見当たらないもので…
529デフォルトの名無しさん:2005/12/03(土) 00:48:52
つvector<double>
530デフォルトの名無しさん:2005/12/03(土) 09:54:30
valarrayなどと言ってみる。
531デフォルトの名無しさん:2005/12/03(土) 20:06:39
データベースアプリケーションを開発する場合、
みなさんはどのデータベースを選択されているのでしょか?
なんかParadoxはネットでも話題にも上らないし死にかけ?

ローカルパターンと、ネットワーク共有パターンがあるとは思いますが。

環境はBuilder 5 又は 6 の、 Pro版程度を想定。
532デフォルトの名無しさん:2005/12/03(土) 21:18:16
>>531
IBXを使用して、IBかFBかな。。
ローカルなら、FBのEmbeddedも使えるし。

どのくらいの規模のデータを扱うかと、用途にもよるんでないの?
533デフォルトの名無しさん:2005/12/03(土) 22:47:40
2006のpro版にCodeGuardはつかないのか orz
534デフォルトの名無しさん:2005/12/03(土) 22:56:54
535デフォルトの名無しさん:2005/12/03(土) 22:57:34
それからリモートデバッガもついてると思うぞ。
536533:2005/12/03(土) 23:15:21
>>534, 535
THX!
537デフォルトの名無しさん:2005/12/04(日) 10:01:22
538デフォルトの名無しさん:2005/12/04(日) 17:36:18
539537:2005/12/04(日) 17:39:04
開発が遅れているBCBには付いてなくて
Delphiには付いているという可能性はあるけど

機能表が間違っているのは毎年恒例だから
たぶん付いているんではないかと。

期待を込めて現在確認中。
540538:2005/12/04(日) 17:40:11
539は538の発言でした。スマソ。
541デフォルトの名無しさん:2005/12/04(日) 18:28:36
流れが読めんw
542デフォルトの名無しさん:2005/12/04(日) 19:03:09
Yahoo!オークション - 宇宙戦艦ヤマト 初期型(本物)
HAT_99_99 (*): 森雪はいりませんがコスモクリーナーDは搭載されていますか。もし搭載
されているなら落札価格に含まれますか? 6月27日 18時53分. 答え. yamato_captain_okita (*):
コスモクリーナーDは搭載されていますが、組み立てられていません。 ...
543デフォルトの名無しさん:2005/12/05(月) 03:48:04
CordGuardってBCB6でもSP4当てるとおかしくならない?
544デフォルトの名無しさん:2005/12/05(月) 20:28:58
CordGuardは初耳
545デフォルトの名無しさん:2005/12/05(月) 21:34:32
>>543
おかしくなるって言うか、VCL関連のバグが露呈する場合があるな。
ま、だから助かってるんだけど。
546538:2005/12/05(月) 22:11:53
>>539
> 期待を込めて現在確認中。
Professional にもリモートデバッガは付いていると確認できますた。
547デフォルトの名無しさん:2005/12/06(火) 02:50:48
どこかにOpenCvをbuilderにインストールする
やり方書いてあるページありますか?
探しても見つからないっす。
548デフォルトの名無しさん:2005/12/06(火) 05:31:20
>>547 暇だったのでやってみた
ライブラリのビルド
1. ilink32.cfgにC:\Program Files\Borland\CBuilder5\Lib\PSDKを追加(BCB5の場合)
2. コマンドプロンプトを起動し、以下のコマンドを。
  cd C:\Program Files\OpenCV\_make
  make /f makefile.bcc
3. C:\Program Files\OpenCV\binにできたDLLを%SYSTEMROOT%\SYSTEM32へコピー

サンプル
1. コマンドプロンプトで
  cd C:\Program Files\OpenCV\samples\c
  make /f makefile.bcc

BCBでやるには
インクルードパス
 C:\Program Files\OpenCV\cxcore\include
 C:\Program Files\OpenCV\cv\include
 C:\Program Files\OpenCV\otherlibs\highgui  他にもあるけど省略。
ライブラリパス
 C:\Program Files\OpenCV\lib
を設定し、C:\Program Files\OpenCV\lib内のlibファイルをリンクする
549デフォルトの名無しさん:2005/12/06(火) 09:56:14
>>479
>>480
>>482
レスありがとうございます。
時間空いてしまってすいませんでした。
なんとか解決できました。
550デフォルトの名無しさん:2005/12/06(火) 13:23:23
本日先ほど某よりバージョンアップの案内がきましたよ
そこでちょい疑問が…
Professional版でもUML開発出来るのでしょうか?
それ以前に他バージョンとの違いがわかっていないのだが…
551550:2005/12/06(火) 13:31:02
自己レス
Architectでしか対応していないね…
それ以前にUML(Together)はC/C++には対応していないね…
552デフォルトの名無しさん:2005/12/06(火) 21:06:18
バージョンアップ通知キタ*・゜゚・*:.。..。.:*・゜(゚∀゚)゚・*:.。. .。.:*・゜゚・*!!!!!
すげー安いんだけど!
BCBは6のできが悪かったから優遇されてんのかな?
553デフォルトの名無しさん:2005/12/06(火) 21:14:48
>>552
普通にD2005からと同じ値段だぞ。




なにせBCBは6が最新版だからな( ノ∀`)
554デフォルトの名無しさん:2005/12/06(火) 21:33:46
家にも通知キター!
けど、Builder党な人は年明けまで申し込むべきじゃない?
555デフォルトの名無しさん:2005/12/06(火) 22:52:46
学部で研究しています。
交通工学分野で、料金所混雑について調べています。
料金所利用車を、ETC利用車と人による料金支払いをする車に分けて、後者の車による渋滞にETC利用車が
巻き込まれる事象をシミュレートしたいと思っています。
到着率やETC普及率を変化させ、車の平均滞在時間がどのように変化してゆくのかを調べるために、プログラム
を書こうとしているのですが、Visual C++で表現できるのでしょうか?
滞在時間を2次元のグラフィックで表したいのですが。
556デフォルトの名無しさん:2005/12/06(火) 22:56:00
>>555
お前もサンセット署に異動だ
557デフォルトの名無しさん:2005/12/06(火) 22:58:53
サンセット署とはなんですか??
558デフォルトの名無しさん:2005/12/06(火) 23:00:59
>>552-554
4マソオーバーを覚悟していたけど、速攻で申し込んだぜ!!

で、問題は、このスレのテンプレにあるフリーのコンポーネントが使えるかどうか。
年末年始の休みはこいつと戯れよう。

早く来ないかな? チン☆⌒ 凵\(\・∀・)
559デフォルトの名無しさん:2005/12/06(火) 23:03:01
>>554
年末くらいにアップデートがダウソできるから、無問題。
560デフォルトの名無しさん:2005/12/07(水) 00:10:07
案内書まだ配達されない (´・ω・`)
ちなみになんぼ? proからアップグレード
561デフォルトの名無しさん:2005/12/07(水) 00:22:50
>>560
弐万九千四百
562デフォルトの名無しさん:2005/12/07(水) 00:26:57
thx.
確かに安いなぁ
563デフォルトの名無しさん:2005/12/07(水) 00:40:55
え?BCB2006がその値段なの?それともStudioの方?
564デフォルトの名無しさん:2005/12/07(水) 00:42:29
>>563
Borland Developer Studio 2006

てか日本語版はBDSに一本化されてる
565デフォルトの名無しさん:2005/12/07(水) 00:46:29
>>564
サンクス。それで安くなったんかなあ。ちとビックリ。
アップグレード案内は俺の所にはまだ来てないけど、明日ぐらいには
届くだろう。もちろんすぐに申し込む。Delphiイラネなんだが。

BCB2006は、アップデート#1を当てるまで動作を保証しないって噂
があるけど、本当なんだろうか。
566デフォルトの名無しさん:2005/12/07(水) 00:52:35
567デフォルトの名無しさん:2005/12/07(水) 00:54:03
>>566
度々ありがとう。年末にパッチ出るのね。安心した。まあ、年末がもしかしたら
来年初頭にずれるぐらいは覚悟しているが・・・・
568デフォルトの名無しさん:2005/12/07(水) 00:57:19
Delphi では日本語版、特にProfessional は最大1ヶ月遅れだから
ご注意あれ。
569デフォルトの名無しさん:2005/12/07(水) 08:57:37
質問です
カスタムコントロールをパッケージ化し、
フォームに貼り付けたのですが、
自分で作ったプロパティが、いくら設定しようとしても、リセットされてしまいます

TEditに、InputCountというプロパティを追加し、
オブジェクト インスペクタのプロパティで、変更しようと思ったけれど、
LeftやTextといった元々あったプロパティしか変更できない

拡張クラスに、以下のコード入れて、後はGetとSetで引数のValueに
FInputCountを代入・読出しているだけですが、他に何か必要なのでしょうか?
よろしくお願いします

private:
void __fastcall SetInputCount(short Value);
short __fastcall GetInputCount(void);
short FInputCount;
__published:
__property short InputCount = {read=GetInputCount, write=SetInputCount};
570569:2005/12/07(水) 09:21:35
自己解決 orz
クラスエクスプローラで入れたら、変更してました
if文が一個増えただけで、何が変わったのかよく分かりませんが、解決しました
お騒がせしました
571デフォルトの名無しさん:2005/12/07(水) 11:20:58
キタ━━━━(゚∀゚)━━━━!!
アップデート案内。
BCB6組は、今回は本当にお得だなぁ。C#やDelphiが必要ない人に
取ってはやや負担増だが、それはC#組やDelphi組にも言える事なんで、
目をつぶろう。
さっそく申し込んできまーす!
572デフォルトの名無しさん:2005/12/07(水) 11:56:37
>取ってはやや負担増だが、それはC#組やDelphi組にも言える事なんで、
>目をつぶろう。

被害者が増えるんなら尚更気にしないと
573デフォルトの名無しさん:2005/12/07(水) 11:58:18
Del厨は怒り狂ってたりして。
574デフォルトの名無しさん:2005/12/07(水) 12:17:02
生徒「せんせー、寒いでーす」
教師「みんな寒いんだから我慢しろ!!」
生徒「だったらなんとかしろよ!!!」
575デフォルトの名無しさん:2005/12/07(水) 13:18:13
おめーらが後のりしてきたくせに、よく言うよ。by Del厨
576デフォルトの名無しさん:2005/12/07(水) 14:01:47
いつあたらしいのでんだ?
577デフォルトの名無しさん:2005/12/07(水) 15:47:44
コンパイラv5.8ってのがどの程度boost通るのか心配だ。
VC並になってたら買う。
578デフォルトの名無しさん:2005/12/07(水) 15:57:31
うちも案内きた

>>561
BCB5pro→BCB6proが3年前で25200円だったから
BCB単独アップグレードと考えても別に高くはないわな

Delphi C#がついてくると思えば安いし、
それが必要ない人間にとっては普通の値段じゃね?
579デフォルトの名無しさん:2005/12/07(水) 16:18:12
それが必要ない人間にとってはもっと安いのを期待する、だろ普通

いらんものを買わされる感がイヤ。買うけど。
580デフォルトの名無しさん:2005/12/07(水) 16:25:59
まったくだ。Borlandの糞野郎!!!





買うけど。
581デフォルトの名無しさん:2005/12/07(水) 16:29:23
1Pro→3Pro、3Pro→4Pro、4Pro→5Proはいずれも21000円でした。
582デフォルトの名無しさん:2005/12/07(水) 16:36:25
>>575
Object PascalはBorlandだけの専売特許ですね(クス
583デフォルトの名無しさん:2005/12/07(水) 16:39:49
>>582
君は意味を取り違えてる。
584デフォルトの名無しさん:2005/12/07(水) 19:51:56
C++Builder5ユーザなんだけど、バージョンアップの案内来ない
Builder5ユーザにはバージョンアップはないってことなのか
Builder6はバージョンアップするメリット皆無だったから見送ったけど今回はバージョンアップしようと思ってたのにな
585デフォルトの名無しさん:2005/12/07(水) 20:04:30
Borlandのサイトやバージョンアップ案内では敢えて言及していないっぽいけど、
この一緒についてくる腐れDelphiやC#は、
やっぱり.NET Framework 1.1対応で2.0は次バージョンで対応だと思って良い?
586デフォルトの名無しさん:2005/12/07(水) 20:09:31
>>584
BCB Pro(BCB6を除く)は、37,800と書いてあるけど。送られてきた
バージョンアップ案内に。
587デフォルトの名無しさん:2005/12/07(水) 20:21:47
> やっぱり.NET Framework 1.1対応で2.0は次バージョンで対応だと思って良い?

そのとおり。ちなみに腐れDelphiではなく、Delphi に腐れBCBがついたものです。
588デフォルトの名無しさん:2005/12/07(水) 20:24:37
目くそ鼻くそです
589デフォルトの名無しさん:2005/12/07(水) 20:26:43
> 腐れBCB

そうそう、パッチがないとたんなるプレビュー版なんだよな
590デフォルトの名無しさん:2005/12/07(水) 20:36:59
お馬鹿なDel厨が住み着いたようだ。巣に帰れ。
591デフォルトの名無しさん:2005/12/07(水) 20:38:16
教えてくれた人。腐れとか書いてごめんなさい。
てか、このバージョンアップって全部一緒にしてみましたって以外に何か意味あるの?
592デフォルトの名無しさん:2005/12/07(水) 20:43:02
>>591
知らん。多分このスレは某の人も覗いているだろうから、俺の予想では
今回BCBを切り捨てる予定だったのが、無理矢理統合しちゃったって感じ?

別々に売るとかえってコストがかかるからかもね。
593デフォルトの名無しさん:2005/12/07(水) 20:48:15
>そうそう、パッチがないとたんなるプレビュー版なんだよな >C++personality

これはほんとだよ。
594デフォルトの名無しさん:2005/12/07(水) 21:01:26
バージョンアップ案内が来たけど、
オレの興味を全く引き付けない冊子を作るセンスがすごいね。
6から長いこと待ったが、次のバージョンまで待ちでいいか。
595デフォルトの名無しさん:2005/12/07(水) 21:14:13
>>591
全部一緒にしたことによってバグ増える
596デフォルトの名無しさん:2005/12/07(水) 21:32:23
重くなる
597デフォルトの名無しさん:2005/12/07(水) 22:20:50
10年ぐらい前に IBMからMwaveとかっていう、モデムとサウントをDSPチップ1つで
実現する画期的なデバイスが出たけど、あれダメダメだったなぁ。
お互いが足引っ張り合ってもぅ。(今もあるのかな)

あの時、機能はそれぞれ独立させた方が良いと思い知った。
598デフォルトの名無しさん:2005/12/07(水) 22:26:45
Borland Developer Studio 2006 動作環境

Intel(R) Pentium(R) III/M 1.4 GHzまたはPentium IV 1.4 GHz以上
(Intel Pentium III/M 1.4 GHz以上またはPentium IV 2 GHz以上を推奨)

512 MBのRAM(1 GB以上を推奨)
599デフォルトの名無しさん:2005/12/07(水) 22:27:39
お、重そう・・・・
600デフォルトの名無しさん:2005/12/07(水) 22:32:42
かなり一般的なパソコンだと思うが。
601デフォルトの名無しさん:2005/12/07(水) 22:38:08
Borland C++Builder 5 動作環境

Pentium/90(推奨Pentium/166以上)のCPU
48MBのメモリ(推奨64MB以上)




10倍重いんじゃないだろか >BDS2006
602デフォルトの名無しさん:2005/12/07(水) 22:51:00
>>598
> 512 MBのRAM(1 GB以上を推奨)
俺のPCはAthlon64 3200+だが、メモリが1GBで推奨最低ラインだ orz
603デフォルトの名無しさん:2005/12/07(水) 23:37:26
メモリ増設して便利機能を使った方がよくね?
http://www.delphipraxis.net/bds2006videos
604デフォルトの名無しさん:2005/12/07(水) 23:41:09
さくさく動作BCB6使い続けたほうがよくね? バグの心配もないし
605デフォルトの名無しさん:2005/12/07(水) 23:45:07
当分の間は
Borland Developer Studio 2006 と自分のプログラムと
両方のデバッグやらされる訳か。
606デフォルトの名無しさん:2005/12/08(木) 00:42:41
>>548
ありがとうございます。大変助かりましたっす。
607デフォルトの名無しさん:2005/12/08(木) 00:56:24
アップデート当てるのマンドクセ
年が明けてから買うことにするよ
608デフォルトの名無しさん:2005/12/08(木) 08:29:47
とりあえずコンパイラの出来次第かな。
オマケっぽい扱いは変わってないから、VCL周りで不具合続出しそうで怖い。
609デフォルトの名無しさん:2005/12/08(木) 08:48:04
VS 2005 beta2でさえ最小128M、推奨256Mなのに、なんでそんなに
RAMがいるのかな。1G積んでるけど2Gにしようかな。多分、呼び出す
DLLの数が増えているので、ディスクキャッシュ用に出来るだけ多く積ん
どけ、って事だろうと思うけど。

PaintShopじゃあるまいし、そんなに多量のリソース何に使うんだろうか。
610デフォルトの名無しさん:2005/12/08(木) 09:17:16
PhotoShop?
611デフォルトの名無しさん:2005/12/08(木) 09:18:46
PaintShopって重いのか
612デフォルトの名無しさん:2005/12/08(木) 09:22:30
ごめんPhotoShopですた。PaintShopって何やねん。
613デフォルトの名無しさん:2005/12/08(木) 09:47:23
>>612
ちょwwwwwwwwwww PaintShopも一応そこそこの人気ソフトだぞwwwwwwwwwww
614デフォルトの名無しさん:2005/12/08(木) 09:59:26
これを機会に、BCBもDelphiのように毎年VerUPしてくれるのだろうか。
どうも嫌な予感がしてならないんだが。
615デフォルトの名無しさん:2005/12/08(木) 10:30:16
BCB は .NET 対応予定がないのだから、BDS がバージョンアップしてもつきあう必要
ないんじゃないの
616デフォルトの名無しさん:2005/12/08(木) 10:31:31
あー、バグ放置 → 次バージョン持ち越し はあるかもね(笑
617デフォルトの名無しさん:2005/12/08(木) 10:35:41
>BCB は .NET 対応予定がないのだから、

ソースは?
随分前のアナウンスでは対応すると逝ってたが。
618デフォルトの名無しさん:2005/12/08(木) 10:39:47
> 随分前のアナウンスでは対応すると逝ってたが。

ソースプリーズ
619デフォルトの名無しさん:2005/12/08(木) 10:41:29
>ソースプリーズ

ソースプリーズ
620デフォルトの名無しさん:2005/12/08(木) 10:45:15
Webサービス対応の「Borland C++Builder 6」は.Netも準備中
ttp://www.itmedia.co.jp/enterprise/0202/19/02021907.html
621デフォルトの名無しさん:2005/12/08(木) 10:51:34
>Microsoft .Net FrameworkをサポートするDelphiおよびC++Builderのリリースは2002年後半を予定。

Delphi はともかくBCB はキャンセルなのでは?
ロードマップにもないし。
622デフォルトの名無しさん:2005/12/08(木) 10:53:44
>>621
つ BDS2006(Del、BCB、C丼)
623デフォルトの名無しさん:2005/12/08(木) 10:58:11
624デフォルトの名無しさん:2005/12/08(木) 11:41:18
>>621
http://bdn.borland.com/article/0,1410,33383,00.html
> this release will introduce managed C++ support as well as ECO support for C++,
625デフォルトの名無しさん:2005/12/08(木) 12:19:16
>>624

おおっ、見逃してた。すまぬ。
次の次の次ってことね。
626デフォルトの名無しさん:2005/12/08(木) 12:23:00
> introduce managed C++ support

これって、VCL.NET 使えるとか(あまり意味ないけど)ないんだったら、あんまり BCB にこだわ
らなくてもすでに VC++ あるし。
627デフォルトの名無しさん:2005/12/09(金) 01:08:21
そもそも某のツールで.NET使おうなんて誰も思わないよな
628デフォルトの名無しさん:2005/12/09(金) 10:52:17
.NET は、ライブラリ自信がオブジェクトベースなので VCL を使うありがたみがない
っていうか、使わない方がいいから、VCL を使える C++ である現行の BCB のメリット
は .NET ではなくなるね。同じことは Delphi にも言えるけど。だから Delphi.NET は
苦戦してる。Pascal であって MS と競合してない分は Delphi はまだマシだけど。
629デフォルトの名無しさん:2005/12/09(金) 11:46:54
わざわざPascalやC++で.NET使う酔狂も少ないだろう
当分はWin32アプリが主流なんだから、それがC++BuilderとDelphiの強みでしょ
Borlandはそれがわかってないぽいけど
630デフォルトの名無しさん:2005/12/09(金) 11:51:25
当分たってあと2年くらいでしょ。
そのために今 VerUp するのは、ほんと馬鹿らしい。
Win32 はもう追っかける価値なんてないのに。
631デフォルトの名無しさん:2005/12/09(金) 11:54:04
手になじんだ現行ツールで十分だわな
632デフォルトの名無しさん:2005/12/09(金) 11:59:05
2年じゃ絶対無理
.NETがネイティブサポートされて(Vistaの次バージョン)、
そのOSのシェアが50%を超えるまでは.NETアプリがメインにはならんよ
633デフォルトの名無しさん:2005/12/09(金) 12:03:43
XP以前だと、コントロールたくさん載せるだけで
もうもっさり動作だもん
Win32だと一瞬で起動するようなツールが、.NETだと一呼吸待たされる
MSも普及させたいならこのへんどうにかしろよ
634デフォルトの名無しさん:2005/12/09(金) 12:09:28
いや、メインにはならんかもしれんが、Win32 はもう新しいものがないんだから
開発者としてはも、現行以上追っかける必要はない。

むしろ、Win32 がメインでなくなった後を考えておく方がよっぽど建設的。
635デフォルトの名無しさん:2005/12/09(金) 12:17:02
と2002年から言い続けて早4年。
いまだにVista発売されず。
636デフォルトの名無しさん:2005/12/09(金) 12:20:56
Win64 のネイティブサポートについてはどう思う?
637デフォルトの名無しさん:2005/12/09(金) 12:28:04
> わざわざPascalやC++で.NET使う酔狂も少ないだろう

Del厨がきいたら猛り狂うぞ。
C++ ユーザは、言語仕様が国際基準なので視野が広いね。
一社仕様のDelphi言語(Object Pascal)ユーザは、それしか見えてないから
万一(笑).NET がメインになったら、それで行くつもりらしいよ。
638デフォルトの名無しさん:2005/12/09(金) 12:34:03
ほんとかいな
俺はDelphiメインだけど、Web や ML 見てる限り、
Delphi .NET と心中するようなのはそうそういないぞ

つーか、C++Builder も言語仕様については独自拡張しすぎだろ
__closure とかアレ何よ。便利だけど
639デフォルトの名無しさん:2005/12/09(金) 12:41:52
拡張機能は、VCLをサポートするために必要なだけであって、
別にC++にあるべき機能を削って増やしてるわけじゃないんだから問題ないだろ。
640デフォルトの名無しさん:2005/12/09(金) 13:05:48
> Delphi .NET と心中するようなのはそうそういないぞ

ふむふむ、ということは Delphi の寿命ももう少しで終わりだね
641デフォルトの名無しさん:2005/12/09(金) 13:12:45
>>629 によれば .NET で C++ 使う人も少なそうだから、BCB も終わり。
某で生き残りそうなのは C# だけ。でも、もろに MS とカブッテルのでこれも
終わり。

よい兆候はないものか? Win64?
642デフォルトの名無しさん:2005/12/09(金) 13:30:30
> 某で生き残りそうなのは C# だけ。

コンパイラはMS製だよ。しいて言えば IDE だけが生き残るかも。まだ VS に負けてるけど。
643デフォルトの名無しさん:2005/12/09(金) 13:31:47
つぎはぎの増築じゃなくて、
C#やJavaの良い部分を取り込んで、
BCBとdelphの間を統一的に行き来出来る今時のコンポーネントに作り直したら魅力的だと思う。
もちろんネイティブで。

某を使ってるのはネイティブでポトペタ最高!な部分を支持しているわけで。
.NETに魅力を感じるような人間は元々某を使わないと思う。

まぁ…開発者がMSに移籍してC#作ってるというのが今の某の迷走を物語る。
644デフォルトの名無しさん:2005/12/09(金) 13:34:56
> .NETに魅力を感じるような人間は元々某を使わないと思う。

魅力がどうのじゃなくて、これがネイティブになった(?)ら某の開発環境は
終わりってことだよね。そうなるかどうかは未知だけど。
645デフォルトの名無しさん:2005/12/09(金) 13:37:25
.Net自体がVMありきで設計されてるような感じがするのでネイティブにはならんだろう。
646デフォルトの名無しさん:2005/12/09(金) 13:39:39
いや、当初計画では Longhorn でのネイティブは .NET ベースだった。
だから、あながち「ならんだろう」とはいえないよ。ハードがどれだけ
追いつくかにかかってる。
647デフォルトの名無しさん:2005/12/09(金) 13:43:27
某が .NET に乗り出したのは、.NET ネイティブを見込んだから。
結果的に早すぎて失敗したけど。
648デフォルトの名無しさん:2005/12/09(金) 13:45:44
予定は未定だな。
X86アーキから変わる前兆が全く無いからハードは関係ないだろうね。
649デフォルトの名無しさん:2005/12/09(金) 13:47:18
アークテクチャでなくて、処理スピード。グラフィックも含めて
650デフォルトの名無しさん:2005/12/09(金) 13:50:16
VMの上にOSが立ってるのをネイティブと言ってるのかぁ。感覚の違いだね。
当分は無理そうだな。
651デフォルトの名無しさん:2005/12/09(金) 13:53:02
いやいや、OSの上にVMがたってるのよ
652デフォルトの名無しさん:2005/12/09(金) 13:54:43
違いはネイティブな API がVM層にあって、従来型にAPI関数呼び出しは、むしろ遅くなる。
653デフォルトの名無しさん:2005/12/09(金) 13:59:25
> 従来型にAPI関数呼び出しは、むしろ遅くなる。
ソースはどこなんでしょ。
654デフォルトの名無しさん:2005/12/09(金) 19:37:28
IDE Compiler Speed Improvement Fixはやすぎ
164秒が15秒になったwww
655デフォルトの名無しさん:2005/12/09(金) 19:49:14
imamamdegakuso
656デフォルトの名無しさん:2005/12/09(金) 19:50:46
コンパイラをdcc32.exeに換えたらもっと早くなったwwwwうぇ
657デフォルトの名無しさん:2005/12/09(金) 19:58:12
delphiより速い。感動した
658デフォルトの名無しさん:2005/12/09(金) 19:59:24
何の時間?
659デフォルトの名無しさん:2005/12/09(金) 20:14:02
ttp://andy.jgknet.de/cpp/index.php?page=idecompilerspeedfix
これを入れるとコンパイル時間が超速くなる。
660デフォルトの名無しさん:2005/12/09(金) 20:38:15
キタキタキタキタ━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)━━━━!!!!!!!!!!
661デフォルトの名無しさん:2005/12/09(金) 22:31:02
なんじゃこりゃあああああああああああああ
662デフォルトの名無しさん:2005/12/09(金) 22:32:19
これウイルスじゃん
663デフォルトの名無しさん:2005/12/10(土) 02:30:21
すげえ
664デフォルトの名無しさん:2005/12/10(土) 05:31:16
キター
665デフォルトの名無しさん:2005/12/10(土) 06:31:28
関係ない雑談は他でやれ
666デフォルトの名無しさん:2005/12/10(土) 06:52:40
>>665
関係あるよ。入れてみ。正直びっくりした。
ウィルスの可能性を疑うなら、付属のソースを自分でビルドして
インストールすればいいし。
667デフォルトの名無しさん:2005/12/10(土) 06:54:33
ちなみにここな。
http://tinyurl.com/chcr9
668デフォルトの名無しさん:2005/12/10(土) 08:42:47
うはっコード補完はえええええ
669デフォルトの名無しさん:2005/12/10(土) 12:06:35
バージョンアップのご案内キテター

相変わらずJCBカード使えネー
670デフォルトの名無しさん:2005/12/10(土) 12:28:57
確かに3倍位速くなったがdelphiには遠いな。
671デフォルトの名無しさん:2005/12/10(土) 12:32:16
ウィルスの可能性を疑うなら、付属のソースを自分でビルドして
インストールすればいいし。

↑こういう香具師って付属のソースがウイルスのソースだったらまんまとひっかかるんだろうか?
672デフォルトの名無しさん:2005/12/10(土) 12:40:28
これメモリ喰いまくるじゃん。
673デフォルトの名無しさん:2005/12/10(土) 12:51:07
この程度で足りなくなるほどしかメモリ積んでないマシンは
窓から投げ捨てるべき
674デフォルトの名無しさん:2005/12/10(土) 13:13:35
>>656
bcc32にdelphiコンパイラ内蔵なのは知ってたが、
dcc32にもC++コンパイラ内蔵だったのか…
675デフォルトの名無しさん:2005/12/10(土) 13:16:20
つーかこれやばくね?
今の時期にこんなの出たらBDS2006売れなくなっちゃうよ(wwwwwwwwwwwww
676デフォルトの名無しさん:2005/12/10(土) 13:22:23
>>675
んなこたぁーない。
もう振り込んできてしまったよorz
677デフォルトの名無しさん:2005/12/10(土) 13:37:25
133秒-105秒になった。大体*0.3秒だな
>>654
それマジかよw
678デフォルトの名無しさん:2005/12/10(土) 13:46:14
36秒->9秒
まじでヤバイ。
679デフォルトの名無しさん:2005/12/10(土) 13:52:42
これ使ってboostのヘッダとかもpchに押し込むと、
vc++6並に速くなるね。
680デフォルトの名無しさん:2005/12/10(土) 13:53:28
>>671
ソースに一通り目を通さないとでも思ってるのだろうかこのバカは。
681デフォルトの名無しさん:2005/12/10(土) 14:22:34
秒だけじゃなく行数も書こうよ
682デフォルトの名無しさん:2005/12/10(土) 16:25:49
こんにちは C++ builder 6 を使っています。Image のクリア仕方を教えてください
683デフォルトの名無しさん:2005/12/10(土) 16:49:12
Picture プロパティに NULL を代入とかだったような
684デフォルトの名無しさん:2005/12/10(土) 17:08:36
ハッキリ分からない人はレスしないでください
685デフォルトの名無しさん:2005/12/10(土) 18:15:03
>669
某のネットショップからならJCB使えたよ。
686デフォルトの名無しさん:2005/12/10(土) 21:08:52
>>669
俺もキター
687デフォルトの名無しさん:2005/12/10(土) 21:47:26
v5→v6 バージョンアップの時より 4,000円ちょい高いね。
Delphi無くていいから4,000円安くしてちょ。
688デフォルトの名無しさん:2005/12/10(土) 23:35:22
Delphi外す改造に6,000円かかります
689デフォルトの名無しさん:2005/12/10(土) 23:37:58
コマンドラインから
del phi とすれば外れます
690デフォルトの名無しさん:2005/12/10(土) 23:50:14
>>689

最高にド低脳な発言してください in ム板(X)
http://pc8.2ch.net/test/read.cgi/tech/1133485684
691デフォルトの名無しさん:2005/12/11(日) 05:29:24
コンパイル速すぎフォーーーーーーーーーーーーー!!!!!!!!!   
 ,、i`ヽ                        ,r‐'ァ 
 `ヽ::                      ::´
   ヽ ヽ        , -‐--、         / /
    ヽ \      I:::::::I_      _ / /
     ヽ  ヽ    i,(;;;ノI、;;;)l    ,,/  , '
      ヽ  ` ー 、.,,ゝ´ヮ`,ノュ_, - '   r'
        ` 、_ /::: `山':::::    /
         ヽ:::::::::::|::::::::"",r‐'
          〉::::::::|::::::::::¨/
         /;;;;;;;/;;;;;;;;;;/
        /;;;;;;;/:::::::::::《
        <;;;;;;;《:::::::::::::ヽ
      /   ヽI,r''"""^~ヽ
     /   ,/ ヽ    ヽ
692デフォルトの名無しさん:2005/12/11(日) 11:14:19
DBGridである検索結果を表示してます
このとき全てのデータを選択したいときってどうすればいいんですか?
dgRowSelect、dgMultiSelectはtrueにしてます
693デフォルトの名無しさん:2005/12/11(日) 13:08:04
BCBで作成したアプリケーションの起動時、以下のようなメッセージダイアログを
見た事がある方がいらっしゃいましたら、その時何が原因で発生したか情報提供を
お願い致します。

 『××の初期化に失敗しました』

   ××の例:Button->Color
     〃 Button->Font->Name

上記現象が極たまに発生する為、再現方法を特定したいのですが…。

開発環境:
OS    :WindowsXP Professional 日本語版 SP2
コンパイラ:Borland C++ Builder 6.0 日本語版 SP4
694デフォルトの名無しさん:2005/12/11(日) 14:15:40
そのエラーメッセージ文字列で検索かけろや!
そしたら、そのメッセージを出している箇所がわかるだろ。
695デフォルトの名無しさん:2005/12/11(日) 23:02:14
えーと、TThread以外の方法で作成されたスレッドと
VCLスレッドで同期を取りたいのですが、
うまい、というか標準的な方法みたいなのはありますか?

具体的には、VCLスレッド以外は非同期にアクションが起きて、
それをVCLスレッドに知らせ、それによってGUI画面を更新したい。

で、単純に別スレッドから「何かが起きた」ことを知らせるには
SendMessageとPostMessageが使える(と思う)ので
適当なコントロールなりを非表示で作って
そこのイベントハンドラで何かすれば良いのかとも思いますが
こんなやり方で良いのかどうか。
それ(別スレッドなりからの通知)専用のメッセージとかがあれば
喜んで使うのですが。
696693:2005/12/11(日) 23:14:52
コメント頂くのはありがたいですが…ガラ悪いですねぇ…。> 694

恐らく現象をご存知の方でしたら、検索しろという話にはならないとは思いますが、
念の為に追記させて頂きます。

エラーメッセージは自前で出力しているわけではありません。
また、本問題の発生したプロジェクトのオプション設定についてですが、
デフォルトのままです。
但し、スタックサイズはかなり多めに増やしております。

有識者の方、コメントを宜しくお願い致します。
697デフォルトの名無しさん:2005/12/11(日) 23:16:27
とりあえず何が吐いてるのかデバッガで追ったら?
698デフォルトの名無しさん:2005/12/11(日) 23:21:26
スレッドの生成方法に関わらず、スレッドIDさえ判れば
PostThreadMessage及びPeekMessageによる送受信にて通信可能です。
他にも方法はありますが、これが一般的ではないでしょうか?
699693:2005/12/11(日) 23:27:08
コメントありがとうございます。>697さん

発生頻度がかなり低く、且つ開発環境下では全く再現しない為、
追うに終えない状況です。
(現状、客先に納入するPCでしか発生しないんです)

ある程度目星を付けれれば、無理矢理にでも置きやすい状況にして
解析を進める事が出来るのですが…。
700デフォルトの名無しさん:2005/12/11(日) 23:27:23
>>693
釣りとしたらめっさ巧妙やな。
VCLのソース・リソース中に用意された文字列に「失敗」は沢山あるが
「初期化に失敗」は一言も無い。
grepかけてみたらいい。
Delphi7のVCLで確認したが、6系持ってる人も探してみてくれ。
OSのメッセージであればプロパティ名とか出るわきゃないしな。
なので、そのアプリケーションが独自にVCLのストリーミング機構弄って何かやってて独自のメッセージを出してるか、
でなければ釣りと思う。
701695:2005/12/11(日) 23:32:59
>>698
うーんと、すごいワガママで申し訳ないんですけど
単に同期を取れば良いだけなら、普通にEventやWaitForが使えるし
そっちを使うつもりなのですが
GUIスレッドに通知したいんですよね。
要はメッセージループを回しているスレッドに。

で、自分で全部やるならWM_USER+xとかを指定して
BEGIN_MESSAGE_MAPとかを使うのが筋なのかもしれませんが
そこまで大げさにしなくても
ポトペタでなんとかならないかな、と思いまして。
702デフォルトの名無しさん:2005/12/11(日) 23:42:02
>>700
>6系
ない

ってか、んなもんそのアプリを動かして検証しなきゃどうにもならん
703デフォルトの名無しさん:2005/12/11(日) 23:42:04
TActionのOnUpdateやらApplication.OnIdleやら状況の変化を拾えそうなタイミングを提供してくれるイベントは幾つかあるけれど…。

PostMessageが一番スマートで効率もいいと思う。
704693:2005/12/11(日) 23:55:26
コメントありがとうございます。> 700さん、702さん

未grepですし証拠も無いので説得力無しですが、釣りではありません。
700さんの仰る通り、プロパティ名がそのまま出る事自体、不思議で仕方ありません。
699に書きました通り、Builder上も特殊な設定は行っておりません。

とりあえず本メッセージが出力されたコンポーネントのソースをgrepして
みましたが、そのような文言は存在しませんでした。

単純解決出来る問題であれば書き込みは致しません。
ググれば大概の事は判りますし。

とりあえず全ソース、grepかけてみます。
705693:2005/12/12(月) 00:09:58
grepかけてみました。
無いですね…。> BCB 6.0

開発環境(計3台)下では発生せず、何故か納入PCでのみ発生している為、
環境設定上の問題の可能性も…?

納入PCにもBCBはインストールしている為、環境は同様のはずなのですが…。
手詰まりです。ホントに…。
706デフォルトの名無しさん:2005/12/12(月) 00:20:07
糞して寝ろ。
707693:2005/12/12(月) 00:34:41
低俗なレス無く、優良なスレッドとして存続させたいですねぇ…。> 706

700さんの仰る通り、プロパティ名がそのまま出る事自体がおかしいですし、
その辺りをキーに再解析してみたいと思います。
708デフォルトの名無しさん:2005/12/12(月) 01:07:52
> 『××の初期化に失敗しました』
>  ××の例:Button->Color
>    〃 Button->Font->Name
この例の部分の文字列はプログラムで文字列生成してるだろう。だからgrepしてもヒットしないだろ。
「初期化」とか「失敗」でgrepすれば出てくるだろ。
っていうか、Button->Font->Nameこんな文字列を表示している時点で、
システム側ではなく、自前のコード内だってことが一目でわかるだろ。普通。
てか俺も完全に釣られたのかな。

709デフォルトの名無しさん:2005/12/12(月) 02:37:36
あー、それソフト関係ないよ。
memtest86とかかけてみ。エラーになってるから。
710693:2005/12/12(月) 09:16:05
コメント頂くのは非常にありがたいのですが…
当然、grepは『初期化』『失敗しました』等で行っております。
エラーとなるVCL名が固定ではないですし。

また、自前のコードで、プロパティ1つ1つをエラーチェックするような
無駄な処理(面倒な処理)も致しません…。
711693:2005/12/12(月) 10:23:41
本日、出力されたメッセージダイアログを再確認致しました。

コメント頂いた方には非常に申し訳ないのですが、以下のメッセージの
間違いだったようです。

 『×× の読み込み中のエラー:無効なポイント操作』
  ××の例:Button->Color
    〃  Button->Font->Name

VCLのソースを見てみましたが、プロパティの読み込みに失敗した時に
このメッセージが出力されるようですね。
 ※ちなみにExceptionによる出力です。
  プロパティ名がそのまま表示されるようです。
  自前のコードでの出力と思い込んでいる方々は参照なさって下さい。

おかげで解析を進めれそうです。
ありがとうございました。
712デフォルトの名無しさん:2005/12/12(月) 11:43:38
>>711
エラーメッセージをそのまま貼らないのが悪い、
と言ういい見本だな。
713デフォルトの名無しさん:2005/12/12(月) 14:39:09
だな
714デフォルトの名無しさん:2005/12/12(月) 16:38:55
>自前のコードでの出力と思い込んでいる方々は参照なさって下さい。

自分で間違ったメッセージ書きこんで人を混乱させておきながら
何? この口のきき方。
715デフォルトの名無しさん:2005/12/12(月) 16:54:37
そのエラーメッセージ見てなんのエラーかを考えろ。
バカでも解るだろ。
ポインタが無効なんだよ!ぼろPCなんて使ってるからそんなのが出るんだ。
目盛り新しいのに好感しなよ。ほうけ。
716デフォルトの名無しさん:2005/12/12(月) 16:55:34
中学生かあるいは神様なんだろ
717デフォルトの名無しさん:2005/12/12(月) 17:57:02
こんな人が作ったものが納入されてるところがカワイソス.......
718デフォルトの名無しさん:2005/12/12(月) 18:17:44
エラーメッセージさえまともに確認しないで原因調査している阿呆もいるのだな。
719デフォルトの名無しさん:2005/12/12(月) 18:29:52
>>717
禿同
720デフォルトの名無しさん:2005/12/12(月) 19:42:18
MLでプリコンパイルヘッダの話が出てるけど、
ヘッダの中でstatic変数とか定義されてたらどうなるの?
実行時にメモリとか余計に喰っちゃうの?
721デフォルトの名無しさん:2005/12/12(月) 21:09:23
>>720
まず、staticの勉強が先だろう。
722デフォルトの名無しさん:2005/12/12(月) 21:28:26
>>721
ファイルスコープでのstaicの挙動は知ってるけどだからどうなるのかが知りたいって事なんだけど?
723デフォルトの名無しさん:2005/12/12(月) 22:18:50
>>722
コンパイル単位で領域が確保されるから、、、それをインクルードする.Cや.CPPの
コンパイル結果の.OBJそれぞれにstatic変数が確保されるんだろうな。
724デフォルトの名無しさん:2005/12/12(月) 22:53:04
>>722
本当に理解していれば、>>720の様な疑問は生まれない。
725695:2005/12/13(火) 00:42:54
結局、ボタンをVisible=falseで貼り付けて、
FormのコンストラクタでButton->Handleを保存、
通知したいときにWM_LBUTTONUPをPostすることにしました。
OnMouseUpのハンドラでちゃんと動いてくれているみたいです。
>>698さん>>703さん他、どうもありがとうございました。
726デフォルトの名無しさん:2005/12/13(火) 01:11:57
>>723
プリコンパイルヘッダでも特別扱いはされないのね。
じゃあMLみたいにライブラリのヘッダは何でもかんでもプリコンパイルヘッダ詰め込んだらまずそうだね。
727デフォルトの名無しさん:2005/12/13(火) 03:23:05
変数の宣言はヘッダファイルに置かずソース本体に置くことだ。
static変数でもグローバル変数と同じ様に気をつければOK。

まともなSI企業での職務プログラミングでは基本原則の一つなんで、
違反して言い訳すると、、、たぶん干されますな。
728デフォルトの名無しさん:2005/12/13(火) 11:48:23
定数はヘッダに書いていいの?一般的な規則として。
それとも、externするのですか?
729デフォルトの名無しさん:2005/12/13(火) 12:22:12
共通的に使用する定数であればヘッダ、そうでなければソースに定義します。
(共通的定数を、使用するソース毎にexternする人は少ないと思います)
730デフォルトの名無しさん:2005/12/13(火) 12:40:15
「定数」はextern出来ないだろ
731729:2005/12/13(火) 17:57:50
それもそーだ。すまぬ。
732デフォルトの名無しさん:2005/12/13(火) 19:38:20
これは古い手で蛇足かも知れないけど、

〜 数人で組むプロジェクトでよくある対策 〜
機能ごとに多数のソースに分割している場合で、共通なグローバル変数の
置き場を決めかねる事って結構あるんだよな。あちこちのソースで分散して
宣言していると、後でサーチが大変でデバッグも面倒だ。
そんな時はグローバル変数のみ宣言するソースを作ってしまう手がある。
commvalues.cやらCommValues.cppでまとめて宣言、ヘッダを工夫して使う。
#defineな共通定数や共通型宣言もcommdef.hやcommtypes.hなどに記述。

IDEの管理や埋め込みコードに縛られないC言語が主流のプロジェクト時代では
有効な統治ルールだったが、今でも使えるカイゼン技法かも。
733デフォルトの名無しさん:2005/12/13(火) 19:49:58
定数に#defineなんていまどきつかわないでしょ、C++なら。
734デフォルトの名無しさん:2005/12/13(火) 20:01:58
Cから脱却出来ず、未だに使ってる…。
そろそろ改めないとなぁ…。
735デフォルトの名無しさん:2005/12/13(火) 21:46:03
ここ数年、define使ってないな。
大抵、enumにしてしまう。
736デフォルトの名無しさん:2005/12/14(水) 01:50:43
#defineって、#pragma並にプリプロセッサやコンパイラ指令用途になったのか。
時代がenum標準になってたとは・・・浦島だ orz
737デフォルトの名無しさん:2005/12/14(水) 01:53:14
enumつーかconstじゃね?
738デフォルトの名無しさん:2005/12/14(水) 02:33:04
c++ では constだよねー
739デフォルトの名無しさん:2005/12/14(水) 02:46:19
おまいら、const と #define は全然意味が違うだろ。
定数に意味のある名前を付けて可読性をよくするには、どうやってんだよ。
740デフォルトの名無しさん:2005/12/14(水) 04:18:48
違ってようが、ガイドラインで#defineではなくconstを使うべし ってなってるんで
741デフォルトの名無しさん:2005/12/14(水) 04:27:23
>>740
それ、何て言うガイドライン?
742デフォルトの名無しさん:2005/12/14(水) 04:43:26
C++ Coding Standards:101 Rules, Guidelines > 社内ガイドライン > 部門ガイドライン > 俺様ガイドライン
743デフォルトの名無しさん:2005/12/14(水) 11:54:58
static constは定数として一般的に認知されてるよな?
744デフォルトの名無しさん:2005/12/14(水) 14:02:50
うほっ
745デフォルトの名無しさん:2005/12/14(水) 22:03:01
>>743
クラス内では。
746デフォルトの名無しさん:2005/12/15(木) 01:21:40
普段は#define使うの?マジで?なんで?
747デフォルトの名無しさん:2005/12/15(木) 01:52:38
ボウヤだからさ
748デフォルトの名無しさん:2005/12/15(木) 02:05:01
そんなん人の勝手やん
749デフォルトの名無しさん:2005/12/15(木) 16:22:50
確かに糞コード書くのも本人の自由。
750デフォルトの名無しさん:2005/12/16(金) 16:52:25
AnsiStringのSubStringですが、
日本語文字列の部分文字列を作るときって、何文字目からかに依って
文字化けしませんか?

文字列をスクロールさせようとしたんですが、始め一・二文字がわけわからん文字に化けでます。
どうしたらこの問題を回避できますか?
751デフォルトの名無しさん:2005/12/16(金) 16:56:32
>>750
TStringMbcsByteType ByteType(int index)

index 番目のバイトが2バイト文字の1バイト目のときは mbLeadByte を返し、
2バイト文字の2バイト目のときは mbTrailByte を返す。2バイト文字の一部
でない場合は mbSingleByte を返す。

752デフォルトの名無しさん:2005/12/16(金) 17:40:12
WideStringで出来る気がする気がした
753デフォルトの名無しさん:2005/12/16(金) 21:47:24
>>751
>>752
ありがとうございました^^
754デフォルトの名無しさん:2005/12/16(金) 22:03:38
VCLオブジェクトいっぱい使った200回ぐらいまでの再帰関数を実装したら
メモリ使用量(*´∀`)
755デフォルトの名無しさん:2005/12/16(金) 23:17:23
2chブラウザ作ってるんですが、もっと高速にスクロールさせたいんです。

スクロールする時は事前にフィールドのビットマップを記憶しておいて、
新しく描く部分とビットマップをチョップしたのを併せて表示した方が高速なんですかね?

今は馬鹿正直にレスを描き直ししてます。
ペイントボックス使ってます。
756デフォルトの名無しさん:2005/12/16(金) 23:26:13
DirectX使うのが一番早い。
757デフォルトの名無しさん:2005/12/16(金) 23:26:58
                 _  _
              r〜f⌒i  しj__ ト√¨トー、
            _ 厂ノ,..-ーt´¨i´:::::|⌒i;¬…tク-、
          r〈 ,>イ:::|:::::|:::::|:::::|:::::::|::::::|::::::|:::::i¬ん、
          >/l::::|:::⊥亠¬冖⌒ i冖ハ¬ト、,|::::|:::ヽ〉、
          {シ,.:!ー'' r´/(⌒て_厂¬r⌒ヒ_ト、ゝ、i_::|:||:i:}
         ∠/rーtノ⌒ー’....................../.ト、゙i ゝr-、|:||:;ト、
         ソー' i.............................../...〃.j\i........... しヘ::|(
         { ......|............./..   /..// /  V......... しうノ
          l .....l.|  /...  // //─ - 、..........}Σト、ヽ、  ちゅぱちゅぱ美味しい
          ゙i  i| ../ _≦./   =ー- 、|.. .. |⌒) \ヽ
          ゙i.....::゙i../,r):::;:d     |ドく;;d |...........|.:::} l   ヾi
          /∧ ...}〈ヘ{qトj」     └-''、⊥!........レ´ ゙i.i  i‖
         // ∧...::トヽ ̄   、      j!.........,il'  ゝi  ||
         〃〃 i..::ト-ヽ、   ri、   ィ´|..... ,'|   ヽi、
         《 《  i、:|_   ` ー,- | ├<´ ト、|....../..|__,.-、 ||j   
                    /⌒\  
                   (    ) 
                   |   |  
                   |   |
                   │   │
___________________________________
このスレを見た人は、10年以内にかならず氏にます。
でも、逃れる方法はあります、
※10日以内に20箇所のスレにこれをはるのです。
758デフォルトの名無しさん:2005/12/16(金) 23:39:50
>>755
いっそのこと、オフスクリーン描画してみては? TImage とか。
759デフォルトの名無しさん:2005/12/17(土) 00:41:10
>>756
たかがブラウザでもdirectXって普通に使われてるものなんですか?
使ったこと無い、ってかアプリ作るの始めてだし。

>>758
オフスクリーン描画ってなんですか?
ダブルバッファみたいなものですか?
760デフォルトの名無しさん:2005/12/17(土) 00:45:10
>>759
まさしく TImage
こいつのビットマップ面にテケトーに書き殴れば
WM_PAINTはこのコンポーネントがやってくれる
ビットマップ面(DIBだけどDDBもイケたかな?)のDC取れば
APIで書き殴り放題

だがしかし WM_PAINT をただしくハンドリングする方がやっぱり好き
と思う折れはオサーン

そもそもログテキストみたいな縦に長くなりがちな領域に
TImage割り当てるのは禿しくバッドだなw
761デフォルトの名無しさん:2005/12/17(土) 00:52:12
>>760
ではdirectXならグットなんですか?
762デフォルトの名無しさん:2005/12/17(土) 00:57:18
ScrollWindowEx なんかを使って本当に必要な部分だけを再描画するやりかたが定石でしょう。
それいがいの方法は有り余るマシンパワーに依存するやり方ですね。
763デフォルトの名無しさん:2005/12/17(土) 01:07:23
なぜCppWebBrowserを使わない
764デフォルトの名無しさん:2005/12/17(土) 01:08:07
>>762
調べてみます^^
765デフォルトの名無しさん:2005/12/17(土) 01:13:24
>>763
出来合いの惣菜で用意したご飯はイマイチ美味しくないです><
素材の飼育までは出来ませんが、自分で料理はしたい。

そんな年頃です。
766デフォルトの名無しさん:2005/12/17(土) 01:58:29
>>765
気に入った
767デフォルトの名無しさん:2005/12/17(土) 02:07:25
>>755
http://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-069.html
このページが参考になるのでは。
768デフォルトの名無しさん:2005/12/17(土) 16:28:28
新コンポーネントを作成する時、どこのパレットページに登録するか迷うのですが、
自分用のパレットページは作成できないんですか?
769デフォルトの名無しさん:2005/12/17(土) 16:36:15
自己解決しました
770デフォルトの名無しさん:2005/12/17(土) 19:45:35
0) ActivePerlを呼び出せるライブラリあったら便利?
1) ActivePerlと連携できるコンポーネントあったら要る?



2) ActivePerlでVCLを使(ゲフンゲフン
(配布条件にモロ抵触する罠)
771デフォルトの名無しさん:2005/12/18(日) 04:56:51
772デフォルトの名無しさん:2005/12/18(日) 04:59:18
■[Win32]SDK32:2つのENTERキーの違い

JP77550の文書、MSのサイト内から消えてGoogleのキャッシュにしか
引っかからなくなってるので、後々の自分の為にメモ。

ユーザーが押下したENTERキーが標準キーボード側のENTERキーなのか、
テンキー側の ENTERキーなのかを判断したい場合、

どちらの動作もwParamに仮想キーコードのVK_RETURNが設定されて、
WM_KEYDOWNメッセージとWM_KEYUPメッセージが発行される。

メッセージのlParamの24ビットめをチェックする。キーが拡張キー
ならばビット24は1になり、そうでなければ0になっている。

(これらのメッセージのlParamの内容は、SDK バージョン3.0の
「プログラマーズリファレンス Vol.1 概要」と、
「プログラマーズ リファレンス Vol.3 メッセージ、構造体、マクロ」の
ドキュメントに記述されている)

テンキー側にあるキー(ファンクションキーも含めて)は拡張キーになる。

773デフォルトの名無しさん:2005/12/18(日) 05:00:03
サンプルコード:
case WM_KEYDOWN:

{

if (wParam == VK_RETURN)

{

if (lParam & 0x1000000L)

{

// テンキー側のENTERキー

}

else

{

// 標準キーボード側の ENTER

}

}

} break;
774デフォルトの名無しさん:2005/12/18(日) 06:54:33
>>772-773
Good Tip!!
775デフォルトの名無しさん:2005/12/18(日) 07:25:37
ってかBCB付属のAPIヘルプにちゃんと記載されてるんだけどね。>WM_KEYDOWN
こういうのを灯台下暗しという
776デフォルトの名無しさん:2005/12/18(日) 21:25:25
フォームをエスケープキーで閉じるうまい方法がありますか。
次のようにやると閉じるけど、音が鳴ってしまうのでいまいちです。

void __fastcall TForm::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key == VK_ESCAPE)
{
Close();
}
}
777デフォルトの名無しさん:2005/12/18(日) 22:04:50
Key=0な
778776:2005/12/18(日) 22:21:34
>>777
Key = 0;
やってみたけど状況が変わらない。
どうしてだろ?
779デフォルトの名無しさん:2005/12/19(月) 01:26:20
新コンポ作ってみたら、親ウインドウがないとか言って起動してくれません。
どういう事ですか?><
780デフォルトの名無しさん:2005/12/19(月) 09:09:47
#include <mmsystem.h>

PlaySound(0,0,SND_PURGE);
781デフォルトの名無しさん:2005/12/19(月) 10:30:18
>>776
フォームにメニューかポップアップメニューを貼り付けているのなら、
そのメニューのアイテムにmnuExitを追加して、以下の様にする。

void __fastcall TForm::FormCreate(TObject *Sender)
{
  ・
  ・
  ・
  mnuExit->ShortCut=ShortCut( VK_ESCAPE, TShiftState() );
  ・
  ・
  ・
}

void __fastcall TForm::mnuExitClick(TObject *Sender)
{
  Close();
}
782デフォルトの名無しさん:2005/12/19(月) 10:44:07
Edit1に例えば にしむら と入力して変換押すと 西村 になって確定したときに
Edit2に にしむら とその変換する前の読みが入るようにするにはどうしたらいい?
783779:2005/12/19(月) 16:41:04
ParentプロパティをパブリッシュしてParentをメインウィンドウのフォームにしたら
今度はParentプロパティが無いとか言って起動してくれません><
784デフォルトの名無しさん:2005/12/19(月) 17:45:41
>>783=779
まず、日本語から勉強してくれ。
785783:2005/12/19(月) 18:19:11
TCustomControlから自作コンポーネントを作ろうと思いました。
インストールした後、フォームにポトペタしてビルドしアプリを実行しました。
すると親ウィンドウが無いという実行時の例外を発して起動しませんでした。
それで今度はコンポーネントにParentプロパティを__publish部に宣言して、
インストールし直してから、オブジェクトインスペクタのParentプロパティがポトペタしたフォームに
なっている事を確認した上で再度ビルドし実行しました。
しかし今度も実行時の例外を発して起動しませんでした。
その時は、プロパティParentが存在しませんと言われました。

日本語訳するとこんな感じです><
786デフォルトの名無しさん:2005/12/19(月) 20:38:58
>785
正直チンプンカンプンですな。
ヘルプの、目次>カスタムコンポーネントの作成>コンポーネント作成の概要
 >インストール前のコンポーネントのテスト
と次の
 >インストールしたコンポーネントのテスト
あたりをしっかり読んでみてはどうですか。
787デフォルトの名無しさん:2005/12/19(月) 22:14:11
>>785
ヘッダをアップすれ。
きっと一目で原因が判明する。
コンストラクタ宣言の引数が間違っているのではないかな。
788デフォルトの名無しさん:2005/12/20(火) 02:10:56
コンストラクタ内(もちろんコンストラクタから呼び出される関数の中含めて)で
Canvasに何か書くと、親ウィンドウが無いってエラー出るよ
789デフォルトの名無しさん:2005/12/20(火) 02:14:05
あ、でもこれは設計時にフォームに貼った時点で出るから>>785のとは違うか
790デフォルトの名無しさん:2005/12/20(火) 02:16:15
>>786
よく読んだら起動しました><

>>787
ご心配おかけしました。
791デフォルトの名無しさん:2005/12/20(火) 02:17:38
>>788
勉強になりました><
792デフォルトの名無しさん:2005/12/20(火) 10:49:26
>>782
確定した時にKeyPressが呼ばれるから無理ぽじゃね?
793デフォルトの名無しさん:2005/12/20(火) 11:58:53
>>782(+>>792)
IME 関連のメッセージを調べると幸せになれるかもしれない
794デフォルトの名無しさん:2005/12/20(火) 13:09:41
「ポトペタ」てなんやねん
795デフォルトの名無しさん:2005/12/20(火) 14:41:04
関西人にはわからない
796デフォルトの名無しさん:2005/12/20(火) 19:09:43
ポトっと落としてペタっと貼りつけることです。
797デフォルトの名無しさん:2005/12/21(水) 11:14:41
現在C++Builder5を使用中。
OSはWin2000およびXP。

起動すると、たまにコンポーネントパレットから一部のコンポーネントのアイコンが消えてしまうのですが、原因分かる方いますでしょうか?
自分で登録したものだけでなく、インストール時に標準で入っていたものまでなんです。
再インストールすると復活するのですが。
頻度としては年間で2、3回だけなんですけどね。
798デフォルトの名無しさん:2005/12/21(水) 12:11:39
>>797
memtest汁。
799デフォルトの名無しさん:2005/12/21(水) 12:27:26
>>798
メモリのテストですか。
一応調べてみます。ありがとうございました。

でもメモリの問題で特定のファイルだけ壊れるなんてありえるんでしょうか・・・
800デフォルトの名無しさん:2005/12/21(水) 12:41:31
あと怪しげなファイルクリーナーやレジストリクリーナーを走らせたりしているとか。
いろいろ試してみろ。
801デフォルトの名無しさん:2005/12/21(水) 12:57:09
>>797
5 は確かにあったね。6 にしてから、一度も起こってないから、そういうもんなんじゃないかな。
802デフォルトの名無しさん:2005/12/21(水) 13:01:12
俺は5でもそんな馬鹿げた現象は起きた事がなかった。
ぜってー何か原因がある。
803801:2005/12/21(水) 13:07:22
思い出した。5 じゃないや。
マシントラブルで消えてたんだった。失礼。
804デフォルトの名無しさん:2005/12/21(水) 14:52:26
Delphi の場合だと、デスクトップのプロパティーから[設定][詳細]から
ハードウェアアクセレレーションの設定の仕方で直る場合があったと思う。
うるおぼえですまんが。
805デフォルトの名無しさん:2005/12/21(水) 19:01:29
おれもBuilder5で同ような現状に遭遇したことが1度だけある。
アイコンが消えるっても、本当に消える訳ではなく、表示がおかしくなるだけだったが。
まあ、バグなんだろうな。
ディスプレイドライバとの相性とかがあるのかもしれん。
806デフォルトの名無しさん:2005/12/21(水) 19:18:14
807デフォルトの名無しさん:2005/12/21(水) 19:29:08
情けは人のためならず
情緒 じょうちょ/じょうしょ
808デフォルトの名無しさん:2005/12/22(木) 09:03:56
>>806
Del覚え
809デフォルトの名無しさん:2005/12/22(木) 17:39:22
質問させてください!!

BorlandC++を使用しています。

A.DLLでは、B.DLLの変数_bを使用します。
AのdefファイルのIMPORTSセクションに、B._bを記載しています。

B.lib(インポートライブラリ)をリンクしていないので、
リンクエラーになると思ったのですが、エラーになりません。
defファイルの記載を消すとリンクエラーになります。

defファイルのIMPORTセクションに
記載するれば、インポートライブラリを
リンクしなくてもよいのでしょうか?

よろしくお願いいたします。
810デフォルトの名無しさん:2005/12/23(金) 07:32:29
いいえ
811デフォルトの名無しさん:2005/12/23(金) 09:06:51
自作コンポーネントでプロパティでCanvasを利用するよう宣言した場合、
下位のブラシとかペンとかもろもろインスタンスの生成などはきちんと自動でしてくれますか?

それとも自分でnew TCanvasとかする必要有りですか?
812デフォルトの名無しさん:2005/12/23(金) 15:33:06
>>811
そら継承元次第
TCustomControl以下から継承したならCnavasは実装済みだな
813デフォルトの名無しさん:2005/12/23(金) 20:00:18
>>812
そうですか。
なんでブラシの色とかにアクセスしようとしたら落ちるんだろ…
814デフォルトの名無しさん:2005/12/23(金) 23:44:20
そりゃバグっているからに決まってるじゃん。
815デフォルトの名無しさん:2005/12/23(金) 23:44:29
Borland Developer Studioって21日出荷予定に
なってるけど、もう届いた人っている?
816デフォルトの名無しさん:2005/12/23(金) 23:59:06
817デフォルトの名無しさん:2005/12/24(土) 09:30:55
>>813
自前でCanvas用意してるならTCanvas::HandleにDCハンドル入れないと動かないぞ
TCanvasは単なるWindowsGDI APIのWrapperに過ぎないし。
818デフォルトの名無しさん:2005/12/24(土) 10:31:59
TControlCanvasを使え。
819デフォルトの名無しさん:2005/12/24(土) 17:19:51
TListViewをvsReportで使用し、マウス直下の項目のすぐ下に
ラインを引きたいんですが一番いい方法は何でしょうか。
Canvasに直接描画すると項目を変更したときにラインを消す
処理をしたくないんでスマートな方法を教えてください。
820デフォルトの名無しさん:2005/12/24(土) 17:40:39
マウスのある行に下線を引くなら簡単だけど
マウスのある項だけに下線を引くのは、自分で描画するしかないんじゃないの。
821デフォルトの名無しさん:2005/12/26(月) 06:02:48
DLL内のフォーム(vcl使用)を表示させるとタスクバーに
そのウィンドウに対応したタブ(?)が出来ちゃいます。

これを表示させたくないんですがどうやれば表示せずに
ウィンドウを表示できますか?
822デフォルトの名無しさん:2005/12/26(月) 14:27:19
823デフォルトの名無しさん:2005/12/26(月) 15:26:42
>>822
解決しますた、ありがとうございました。
824デフォルトの名無しさん:2005/12/28(水) 08:49:33
タブコントロールのタブの切り替えで、コントロールの配置を変更してるのですが、
コントロールの数が多いせいか、チラつきます。

BeginUpdate()、EndUpdate()のような感じの関数はないでしょうか?
825デフォルトの名無しさん:2005/12/28(水) 09:29:19
>>824
コントロールの移動の前後で、LockWindowUpdate をフォームに対して行ったら、だいぶ更新速度は速くなる様子。
(TabControlに対して行っても同じ効果だけど、うちの環境だとなぜか他のウィンドウやデスクトップがちらついた)
826デフォルトの名無しさん:2005/12/28(水) 10:12:25
>824
Left Top じゃなくて SetBounds使う
827デフォルトの名無しさん:2005/12/28(水) 14:11:08
->DoubleBuffed()
828デフォルトの名無しさん:2005/12/29(木) 02:43:41
DoubleBufferdは意味ないんじゃない?
グラフィックコントロールばかりならいいだろうけど。
829デフォルトの名無しさん:2005/12/30(金) 13:24:56
質問です
TStringListは内部にvectorを使用していますか?
830デフォルトの名無しさん:2005/12/30(金) 13:44:03
>>829
何が聞きたいんだ?
STLのVectorを使ってるかと聞きたいのか?
それともアルゴリズムとしてVectorなのかと聞きたいのか?
STLのVector(実際にはTstringsだが)使ってないんじゃないの?
Delphiとの絡みも有るし・・・
831デフォルトの名無しさん:2005/12/30(金) 13:45:24
>>829
VCLの実装はすべてDelphi(ObjectPascal)言語で書かれています。
832本田:2006/01/01(日) 06:01:33
> VCLの実装はすべてDelphi(ObjectPascal)言語で書かれています。
それじゃ遅いので一部ASM。
833デフォルトの名無しさん:2006/01/01(日) 13:42:26
一部ASMもDelphi言語の仕様のうちだろ
834デフォルトの名無しさん:2006/01/02(月) 07:09:16
本田ってTEditorの人?
835デフォルトの名無しさん:2006/01/02(月) 09:28:28
Civic のひと
836本田:2006/01/03(火) 03:49:27
>>834
> 本田ってTEditorの人?

別人。
837本田:2006/01/03(火) 05:20:36
私です。
838本田:2006/01/03(火) 13:42:12
そうです。
839デフォルトの名無しさん:2006/01/03(火) 13:45:56
スゲー
840本田:2006/01/03(火) 22:21:36
この贋物どもめっ
841デフォルトの名無しさん:2006/01/04(水) 14:33:02
美奈子です。
842デフォルトの名無しさん:2006/01/05(木) 18:25:56
dll内にvclのフォームを作ってもFormCreateだけでは
Timerが動きません。ShowModalしないとうんともすんとも
いわないのは仕様ですか?
843デフォルトの名無しさん:2006/01/06(金) 07:52:08
それ当たり前。メッセージポンプがないから。モーダルループで動くのも当たり前。
844デフォルトの名無しさん:2006/01/06(金) 09:43:01
Windows の仕様だ、とも言える。常識だが。
845デフォルトの名無しさん:2006/01/06(金) 13:48:33
親持たないTTimer作ればいいじゃない。
親がなければ自分でメッセージ処理用ウィンドウ作るし。
846デフォルトの名無しさん:2006/01/07(土) 01:13:09
ウィンドウつくってもメッセージポンプがないと動かないっしょ。
ここほんとに C++ スレなのか? Windows のプログラムについて知ってる人いないの?
847デフォルトの名無しさん:2006/01/07(土) 10:24:00
TTimerとsdkのtimerがごっちゃになってるな
848デフォルトの名無しさん:2006/01/07(土) 14:37:27
TStringList *tmpList = new TStringList;
tmpList->Text = "AAA";
tmpList->Text += "AAA";
tmpList->Text += "AAA";
tmpList->Text += "AAA";
ShowMessage(tmpList->Text);
delete tmpList;

これ、1行しか表示されないんだけど、どうしてなの?
Ansistring型に+=は有効なのに。
849デフォルトの名無しさん:2006/01/07(土) 14:55:07
>848
BCB6ならヘルプ>キーワード>プロパティ,代入演算子,
850デフォルトの名無しさん:2006/01/07(土) 15:18:01
>849
どうもありがとう〜
ダメなのは前から知ってたけど、やっと理由が分かってスッキリしました。
851デフォルトの名無しさん :2006/01/08(日) 00:26:05
こんにちは。
BCB5でプログラムを作成しています。
プログラムが日本語版のWindowsで動いているか、そうでないかをプログラム中で
判別したいのですが、検索エンジンでさがしても適当なものを見つけることが
できませんでした。ご存知の方、よろしくお願いします。
852デフォルトの名無しさん:2006/01/08(日) 00:30:23
>>851
GetACPとかGetUserDefaultLangIDとか。
853デフォルトの名無しさん:2006/01/08(日) 12:20:41
C++Builder6を使用していますが
メモリ管理のことで少々不明な点があるので教えてください

builderのコンパイラ性能がいまいちなので重い計算をする部分を
Intelコンパイラを使ってLib or DLLで作り、それをBuilderでつくったソフトから
呼び出すような形態を想定しています。

その際に問題になるのがメモりマネージャーの違いだとおもうのですが
同じBuilder同士や、たとえばVC同士でもランタイムバージョンの違いで
問題になるようです。
今回のケースのような場合はどうすればよいのでしょう?
ふつうにnew deleteを使うと問題がおきますよね?
854デフォルトの名無しさん:2006/01/08(日) 12:50:44
>>853
WinAPIのHeapAlloc系を使うようにすれば、ヒープハンドルさえ同じなら平気。
855デフォルトの名無しさん:2006/01/08(日) 13:21:44
ICCがVC++と同じだと仮定して、

VC++はHeapAllocをほぼそのまま呼び出してる。
一方、BCB(VCL)はHeapAllocで確保した領域を、さらに自前で管理している。
なので、呼び出し側と開放側が一致しないとまずい。

共用するには、>854の言うように、
HeapAllocなりで確保した領域をplacement newなりで初期化して使えばいいと思う。
deleteも、デストラクタを呼び出してからHeapFreeするようにして。
(VCLオブジェクトが内部で確保した領域は、開放もそっちを使うので問題ない)
856デフォルトの名無しさん:2006/01/08(日) 13:31:01
構造体(POD)ならHeapAllocでいいけど、
クラスならoperator new/deleteをオーバーロードするとすっきりする。
857デフォルトの名無しさん:2006/01/08(日) 17:46:03
>>853
dll内に実装したクラスをapp側からnewして利用したいって話?COMみたいなやり方は駄目?

外部へ公開するインタフェイス(抽象クラス)
interface ITest
{
  virtual int Get( void ) = 0;
  virtual void Set( int val ) = 0;
  virtual int Release( void ) = 0;
};
実装(構築子やら参照カウンタは省略)
class TTest : public ITest
{
  int m_val;
  int Get( void ){ return m_val; }
  void Set( int val ){ m_val = val; }
  int Release( void ){ delete this; }
};
インスタンス作成関数
ITest* CreateTest( void )
{
  return new TTest;
}

app側
ITest* Test = CreateTest();
Test->Set( 100 );
Test->Release();
858デフォルトの名無しさん:2006/01/08(日) 22:55:06
BCBでnewした領域はBCBでdelete
ICでnewした領域はICでdelete

これじゃだめなのか?
859デフォルトの名無しさん:2006/01/09(月) 08:35:32
それに加え、ICで作ったクラスの非仮想関数を呼び出すのなら、クラス自体のエクスポートが必要。
逆にBCBで作ったクラスの非仮想関数をICで呼び出すことはできない。
860デフォルトの名無しさん:2006/01/12(木) 17:26:59
メモリの話題で思い出した。ビルダー6のメモリ管理周り怪しくね?

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  //A
  BYTE *p = new BYTE[ 640*480*4 ];
  Memo1->Lines->Add( (DWORD)p );
  //B
  Graphics::TBitmap *Image = new Graphics::TBitmap;
  Image->PixelFormat = pf32bit;
  Image->Width = 100;
  Image->Height = 100;
  Image->Canvas->FillRect( TRect( 0, 0, 99, 99 ) );
  delete Image;
  //C
  delete[] p;
}

Button1を押すと初回と二回目以降でアドレス変わるし
二回目以降に受け取る領域はStretchDIBits()の転送元にしようとしても失敗する
(A→C→Bと並び換えたり、確保する領域を310432バイト以下にすると問題は起きない)

VCのソースを基に自作したmalloc()とfree()を組み込んで回避したけど
新しいビルダーでは直ってるかな
861デフォルトの名無しさん:2006/01/12(木) 18:09:21
>>860
> ビルダー6のメモリ管理周り怪しくね?

藻前の日本語の方が怪しいよ。


# > 初回と二回目以降でアドレス変わるし
# 何の?
# > 二回目以降に受け取る領域は
# 何の?
862デフォルトの名無しさん:2006/01/12(木) 18:53:01
> 新しいビルダーでは直ってるかな
http://sourceforge.net/projects/fastmm/
863デフォルトの名無しさん:2006/01/12(木) 18:55:49
BCB6が未だにバグだらけなのは確かにそうだけど、どうしようもないんだよな
864デフォルトの名無しさん:2006/01/12(木) 23:12:45
まあ >>861の方が阿呆だな。
関数名を見れば簡単に理解できるじゃん。
865デフォルトの名無しさん:2006/01/12(木) 23:39:06
頭が狂った>>861が居るスレはここですか?
866デフォルトの名無しさん:2006/01/13(金) 06:01:03
頭が狂ってるんじゃなくて、頭が悪いんです。単純に。
867デフォルトの名無しさん:2006/01/13(金) 23:31:12
最近C++Builderのver6を使いはじめました。
IDEのエディタで、イベントハンドラなどを追加すると、
自動的に挿入される //----------------------- の横線がウザいです。
これを停止するオプションは無いのでしょうか?
868デフォルトの名無しさん:2006/01/13(金) 23:37:48
>>860
自分もBuilder6を使って同じ現象を確認した。


オフトピだがFillRect()の記述が間違っていると思う。
正しくは、

Image->Canvas->FillRect( TRect( 0, 0, 100, 100 ) );

この関数の引数は、数学的に言うと左閉右開区間です。

Builder6のヘルプより引用
----------------------------------------------------------------------
FillRect メソッドはキャンバス上の指定した四角形を現在のブラシで塗りつぶします。

void __fastcall FillRect(const TRect &Rect);

説明

FillRect メソッドを呼び出すと,現在のブラシを使って四角形の領域を塗りつぶすこと
ができます。指定の領域を塗りつぶす場合,四角形の左と上の端は領域に含まれます
が,右と下の端は含まれません。
----------------------------------------------------------------------
869デフォルトの名無しさん:2006/01/13(金) 23:46:44
俺もありえねーだろと思いつつ試してたんだけど、StretchDIBitsでまじでおかしくなったな。
メモリの確保をnew以外にするだけで直るんだけど、どういう理屈なんだこれ。
870デフォルトの名無しさん:2006/01/14(土) 09:13:13
>>867
$(BCB)\Bin\bcb.bcfというファイルをエディタで編集します。
[Code Formatting]
Divider Line=
Divider Line Break=
を追加すると仕切り線が作られなくなります。
ヘルプのキーワードは「生成されたコード」です。
871860:2006/01/14(土) 16:49:56
>>862
ありがとう、今から落としてみるよ。
>>868
TRect/RECT
指摘、解説してくれてありがとう。
いろいろ値を変更しながら実験してた途中のコードを貼り付けて
しまったので前述のようになってしまった次第。


問題回避用に組み込んだコード(骨子のみ)

HANDLE g_hHeap;
void *malloc( size_t szAllocation ){ return HeapAlloc( g_hHeap, 0, szAllocation ); }
void free( void *Unused ){ HeapFree( g_hHeap, 0, Unused ); }
void _SetupHeap( void ){ g_hHeap = HeapCreate( 0, 4096, 0 ); }
void _CleanupHeap( void ){ HeapDestroy( g_hHeap ); }
#pragma startup _SetupHeap 0
#pragma exit _CleanupHeap 0

ヒープAPIに丸投げです(realloc()calloc()も同様)
872デフォルトの名無しさん:2006/01/14(土) 17:50:10
グローバルのoperator new/new[]/delete/delete[]を自分で定義したらどう?
873デフォルトの名無しさん:2006/01/19(木) 18:30:10
例のまんまコピペしてlocaltime関数を使うとCodeGuardでエラーになるんですが、なぜでしょうか?
874デフォルトの名無しさん:2006/01/19(木) 18:40:48
BCB6のコードガードはUpdate1を適用すると支障が出るようになります。
875デフォルトの名無しさん:2006/01/19(木) 18:56:17
確かにUpdate1してますが・・・
ではこの関数自体は問題なくCodeGuardオフでコンパイルしたらいいですか?
876デフォルトの名無しさん:2006/01/19(木) 21:21:44
>>875
BDS2006を買って下さい。
877デフォルトの名無しさん:2006/01/20(金) 15:06:26
そうするとBCB6のプロジェクトがコンパイルできなくなるけどな
878デフォルトの名無しさん:2006/01/20(金) 16:57:57
>>877
詳しく
879デフォルトの名無しさん:2006/01/20(金) 17:32:43
>>878
通称"Label2"バグが出る。
<property category="build.node" name="packages" value=
に、使われていないパッケージが入っていると出るようだ。

コンポーネントを登録したら、以降どのプロジェクトもコンパイルできなく
なったりする。その時は Dafault.bdsproj だったかそんな名前のファイル
から、使ってないコンポーネント名を手で削除しなければならない。
880デフォルトの名無しさん:2006/01/20(金) 18:30:34
2006買ってないけど2006のコンパイラまわりだけ6に移植が正解なのかね‥‥
881デフォルトの名無しさん:2006/01/20(金) 19:05:21
2006のコンパイラ廻りって6と比べてなんか良くなってるの?
882デフォルトの名無しさん:2006/01/20(金) 20:08:16
>>881
boostのコンパイルが通る
883デフォルトの名無しさん:2006/01/20(金) 20:22:31
6ではlexical_castが通ったの確認したけど
それ以外どれが通るの?
884デフォルトの名無しさん:2006/01/20(金) 22:27:08
>>882
嘘つけ。あまり変わってないぞ。
885デフォルトの名無しさん:2006/01/21(土) 20:25:57
>884
Re: boost
news://newsgroups.borland.com:119/[email protected]
886デフォルトの名無しさん:2006/01/21(土) 21:29:34
>>885
リンク切れ
887デフォルトの名無しさん:2006/01/21(土) 22:44:49
>886
おやおや。先週の投稿なのに。

boostに、最新版のコンパイラだと不要なワークアラウンドコードが入ってるから、
その辺解決するパッチを今作ってるよ、という話。
888デフォルトの名無しさん:2006/01/21(土) 23:34:37
>>887
情報サンクス。期待して待ってみます。
889デフォルトの名無しさん:2006/01/22(日) 00:13:04
2006にするとGUIとか変わるの?
TStringGridとか機能アップしているのか気になる
890デフォルトの名無しさん:2006/01/22(日) 06:58:28
あれは昔から糞だから期待しない方が
891デフォルトの名無しさん:2006/01/22(日) 15:50:07
BCB6はインテリセンスがVC++より賢い。
VC++だと出ない候補も出してくれる(shared_ptrの中とか)
892デフォルトの名無しさん:2006/01/22(日) 16:30:19
そういやSpeedFix入れてると「::」から補完動作してもIDEのエラー出なくなるのね。
(メッセージウィンドウにコンパイラ内部エラーが出て補完は出来ないけど)
893デフォルトの名無しさん:2006/01/22(日) 20:21:14
ここの
ttp://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-015.html

// AnsiStringを返す

AnsiString BoolToStr(bool val)
{
return (val!=0) ? AnsiString("TRUE") : AnsiString("FALSE");
}

これって
関数のスコープ抜けて戻ってきた時点で
AnsiString("〜")は破棄されてるんじゃないですか?
894デフォルトの名無しさん:2006/01/22(日) 20:47:36
>>893
戻り値はreturnに指定された値のコピーが作られ、そいつが返されるので問題ない。
あとそのコピーは最適化で省略されるようになっているかもしれない。
895デフォルトの名無しさん:2006/01/22(日) 20:48:05
>>893
一時変数にコピーされてる
896デフォルトの名無しさん:2006/01/23(月) 00:09:12
コンパイラはC99に対応しましたか?
897デフォルトの名無しさん:2006/01/23(月) 00:40:48
>>896
だめだ。可変長配列が蹴られた(BCC 5.8.1)。
long long intは5.6の頃から使えるしなぁ。
898デフォルトの名無しさん:2006/01/23(月) 01:11:24
VC8.0も今回はC99対応見送りだしなあ・・・・・
このままメジャーなコンパイラでは、C99対応は立ち消えか?
gccがせめて100%対応になってくれれば。
899デフォルトの名無しさん:2006/01/23(月) 08:42:07
可変長配列はどうでもいいが可変長引数マクロは対応して欲しい‥‥
900デフォルトの名無しさん:2006/01/23(月) 11:59:47
ICCはメジャーじゃないのか…
901デフォルトの名無しさん:2006/01/24(火) 00:30:43
すみません

オブジェクト名を文字列で指定する方法ってありますでしょうか・・?

たとえば

String strTest = Edit1;
strTest->Text = "ω";

いろいろ調べましたが・・・
わかるかたいらっしゃったら教えていただけますでしょうか。
よろしくお願いします
902デフォルトの名無しさん:2006/01/24(火) 00:58:30
>>901
リフレクションがないから無理だろ。
903デフォルトの名無しさん:2006/01/24(火) 01:08:13
RTTIって使えないの?
904デフォルトの名無しさん:2006/01/24(火) 01:23:42
対象がコンポならFindComponentがあるけども
905デフォルトの名無しさん:2006/01/24(火) 16:41:29
aaa
906デフォルトの名無しさん:2006/01/24(火) 18:55:56
新バージョンは最高ですか?
907901:2006/01/25(水) 00:41:11
解決しました!
FindComponentでなんとかなりましたー
908デフォルトの名無しさん:2006/01/25(水) 04:04:32
>906
BCB6よりはいいと思うよ。
その代わりメモリ1Gいるけど。
909デフォルトの名無しさん:2006/01/25(水) 04:19:48
>>908
ではMMXPentium200MHzメモリ96MBの僕では無理ですね。
諦めて6使い続けます。
910デフォルトの名無しさん:2006/01/25(水) 09:06:19
Celeron850MHz メモリ768MB(最大まで搭載)の漏れでも無理ですね。
911デフォルトの名無しさん:2006/01/25(水) 17:48:44
ちとこのスレの趣旨とは異なるかもしれませんが質問です。
いままでBCBでプログラミングしてきたのですが
BDSでASP.netのプログラムを組む必要が出てきました。
で、DELPHIとC#でどっちを選べばいいのか迷ってます。
VCLがつかえるDELPHIか、C/C++の文法に近いC#か・・
どっちがいいでしょうかね?
ちなみにDELPHIもC#もプログラム経験はありません。
912デフォルトの名無しさん:2006/01/25(水) 17:58:00
でるふぃどとねと
913デフォルトの名無しさん:2006/01/25(水) 18:41:30
.NET 1.1で良い+BDSで組んでもOK=Delphi.NET
.NET 2.0が必要=VS Expressを入手してC#で
914911:2006/01/25(水) 22:43:40
>>912,913
レスありがd
.NETが2.0でなければDELPHIのほうがいいのですね。
特にその辺は何も言われていないので1.1でも大丈夫です。
開発ツールも指定はないです。
Delphi.netでやってみようと思います。

(BCBは.net対応になったりしないんですかね?^^;)
915デフォルトの名無しさん:2006/01/25(水) 23:13:15
> DELPHIのほうがいいのですね。
お仕事みたいですね。
とするとC#で作りはじめた方が安全かも。

余裕がある・趣味ならDelphiを押しますけど。
916デフォルトの名無しさん:2006/01/26(木) 00:56:52
どっちも経験がないなら Delphi.NET を選ぶ理由はないだろ。
C# に比べてドマイナーで情報もほとんど無いし。

Delphi.NET は既存の Delphi ユーザが、しかたなく .NET やらなければ
ならないときにしぶしぶ使うくらいしか存在理由はないだろ。
917デフォルトの名無しさん:2006/01/26(木) 08:47:15
>C# に比べてドマイナーで情報もほとんど無いし。

C丼なんて存在も知られない超ドマイナー土着言語だ罠。
918デフォルトの名無しさん:2006/01/27(金) 02:17:57
テンプレにある JCL,JVCL が使えません。まずは自宅PCを実験台にしようと。
BCB6パーソナル(1万円のやつ)sp4、WinXP
ググってwiki2個あったけど、インスコしろとしか書いてません
verをそろえろって書いてあったが、1個を解凍して、JCL,JVCL 2個でるタイプだから大丈夫だと思う

パーソナル版でJVCL使えた人いたら、教えて下さい
ちなみにJVCLってのは、フリーでボタンとかいっぱい入ってるやつです。
919デフォルトの名無しさん:2006/01/27(金) 05:39:25
>>918
JVCLなんか使うなやカス
920デフォルトの名無しさん:2006/01/27(金) 09:29:45
最初にJCLをインストールしてますか?
921918:2006/01/27(金) 09:30:11
会社のプロ版では問題なくできた

>919
みなさんのオススメのコンポーネント群ってなんですか?
922デフォルトの名無しさん:2006/01/27(金) 10:31:06
>>919
なぜ?俺は愛用しているけど。
923デフォルトの名無しさん:2006/01/27(金) 19:36:32
次回作は期待出来ますか?
924デフォルトの名無しさん:2006/01/28(土) 05:04:57
TComboBox の OnMouseMove イベントってないですね。
自分でイベントを実装したいときはどうやればいいですか?
925デフォルトの名無しさん:2006/01/28(土) 09:51:08
OnMouseMoveを__publishedに書いて公開してやればいいだけだけど、
スタイルによっては内部にEditコントロールを持ってるから、その部分のマウス移動まで捕らえたいなら、そいつをサブクラス化かな。
926924:2006/01/28(土) 15:25:09
>>925
はい、やってみます。
927デフォルトの名無しさん:2006/01/28(土) 20:14:07
継承元の'Label2'の解消法..まじかよ。
しばらくやる気なし。
928デフォルトの名無しさん:2006/01/28(土) 21:21:07
ただプロジェクト作って元のプロジェクトからファイルぶち込むだけじゃん。

あ、他作コンポーネント使ってたら大変だね。
俺はコンポーネント使わず自前の関数で標準VCLいじって利用しているからなんの問題もなかった。
929デフォルトの名無しさん:2006/01/29(日) 02:53:41
私の所ではBCB6で実行ファイルのサイズが大きくなると正常にコンパイルされなくなってしまいます。
バグなのか環境依存なのか・・・
930デフォルトの名無しさん:2006/01/29(日) 13:14:34
コンパイルそのものに失敗するのか、リンクに失敗するのか、
実行ファイルはできるが実行時の挙動がおかしいのか、を詳しく書いた方がいいと思うよ。
Update#4とその後のリンカのアップデートは適用ずみ?

もしBCBの実行ファイル自体のメモリ管理コードが引き起こしてる問題だとしたら
何も打つ手がないのかなあ・・・
931929:2006/01/29(日) 14:08:38
>>930
失礼しました。環境は以下の通りです。
Win2000sp4  MEM:320MB  HDD:8GB(残1.2GB NTFS)  BCB6 Update#4

いつも「実行時パッケージを使って構築」「共有RTL DLLを使う」のチェックを外しておりますが
どうも実行ファイルのサイズが1.5〜1.6MB位になるとおかしくなってくるようです。
これはUpdate#4適用前でも起こってました。
挙動はコンパイルやリンクの失敗、実行ファイルはできても直ぐに終了とか様々です。
しかもそうなるとそのユニット、フォームを使用している限り治りません。

プロジェクトグループにいくつもファイルを登録しててもおかしくなりますが
この場合は登録数を減らすと正常になります。
もしかしたら全ソースコードのサイズが絡んでいるのかもしれませんね。
932デフォルトの名無しさん:2006/01/29(日) 14:28:27
その程度の大きさのアプリならいくつか作ってるけど、おかしくなった事ないな。
933デフォルトの名無しさん:2006/01/29(日) 14:29:37
実行ファイルのサイズが大きくなるとって聞くとコードの絡め方が問題なんじゃ?って思ってしまう。
ローカル変数とグローバル変数のポインタで同じような名前があって、どっかで間違えて使用されているんじゃないかと思う。
ってそう言うことはないの?
そもそもコンパイルやリンクの失敗って、どんなメッセージが出てるかが問題解決の糸口だろ。

>そうなるとそのユニット、フォームを使用している限り治りません。
って、そのフォームとユニットに問題があるって事だろ。
934929:2006/01/29(日) 15:25:36
初めに記述ミスを疑いましたが、丹念に見てもわかりませんでした。

コンパイル・リンカエラーは大体「未定義のシンボル」か「外部シンボル 〜 が未解決」が多いです。
でもきちんと宣言及びコードの記述もしてありますし、パスも通してあります。
実行時のエラーはメモリエラーが多いですが、最近では「この機能を使うライセンスを有しておりません」も出るようになりました。
しかし同様のコンポーネントを使用したソースをコンパイルして実行してもそんなエラーは出ません。

発病するとcpp,hファイルを症状が出る直前に戻しても治りませんが、
プロジェクトとフォームを新規に作成して、それ以外は症状が出る直前のからコピーしてくると正常になる事から
自分が記述したところ以外で何かが起こっていると思ったのですが・・・
BCB6が壊れているかもと再インストもしてみましたが未だ解決されません。
935デフォルトの名無しさん:2006/01/29(日) 16:21:12
ところで、次スレってどうする?

BDSスレに統合?
それともver.6以前のユーザのために続ける?
936デフォルトの名無しさん:2006/01/29(日) 16:33:26
>>935
分けたままでいいんでないの?でないと、Delphiとごっちゃになるし。
こっちは、Ver6以前のC++BuilderとBDSのC++Builderパーソナリティを対象にするということで。

BDSスレはBDS全般に関することにすればいいと思う。
937デフォルトの名無しさん:2006/01/29(日) 17:56:45
>この機能を使うライセンスを有しておりません
そんなメッセージ見たことない。
どっかからシェアのVCLコンポーネントでも入れてんの?
俺の推測だけど、そのコンポーネントはプロジェクトごとにレジストリかどっかにプロジェクト名とか残してて
レジストして無い場合一定期間すぎたらそう言うメッセージを表示するようにプログラムしてあるんだと思う。
で、解除の方法は#defineとかであるコードを入力すれば制限無く利用できるとか。
要するに標準コンポーネント以外信用するなってこった。
938929:2006/01/29(日) 18:37:49
>>937
> >この機能を使うライセンスを有しておりません
> そんなメッセージ見たことない。

私もこのメッセージを見たのは初めてです。
でもコンポーネントはBCB6Proに付いてきたコンポーネントしか入れておりませんし、
正規に購入してインストール&ユーザー登録もしてありますからライセンス違反しているとも思えません。

本当はソースコード一式を何処かにULしたいところですが
生憎業務で使用するプログラムなのでそうもいかないのが残念です。
939デフォルトの名無しさん:2006/01/29(日) 18:54:26
VCLのDB関係のソースに、そのメッセージを出すコードがあるから、確かに外部コンポじゃないね。
それは置いといて業務でそんな不安定な状態は泣けるね
940デフォルトの名無しさん:2006/01/29(日) 20:43:13
一応ディスクとメモリのチェックをおすすめ。
ハードウェアに問題があるかもしらん。
941本田:2006/01/29(日) 23:22:53
>>931
>ilink32 Version 5.66 Update for C++ Customers - by Troy Kitch
http://bdn.borland.com/article/0,1410,32448,00.html
942デフォルトの名無しさん:2006/01/30(月) 00:26:47
MD5を使いたくて
TIdHashMessageDigest5を使えばいけそうってことが分かりましたが
使い方が分かりません

検索して以下のページを見つけましたが
http://forums.belution.com/en/cbuilder/000/002/68.shtml

ここのソースを張ってもエラーになり
この質問に対する返信も無い事から
行き詰ってしまいました。

よろしくお願いします。
943929:2006/01/30(月) 00:33:48
お答えして下さった皆様ありがとうございます。
今日HDD・メモリのチェックとilink32のアップデートを試してみます。
944本田:2006/01/30(月) 00:36:53
>>942
>Delphi 7 - Indy ヘルプファイル・アップデート
> 【ファイル名】d7help_indy_jp.zip
> 【ファイルサイズ】3,363,040 バイト
> 【対象アプリケーション】Delphi 7 Enterprise/Professional
> 【圧  縮】ZIP
> 【説  明】Delphi 7 のオンラインドキュメントのためのアップデートを提供いたします。 詳しくは、Delphi 7 ドキュメントアップデート・ダウンロードサービスを参照してください。
http://www.borland.co.jp/download/delphi.html
945デフォルトの名無しさん:2006/01/30(月) 01:12:24
>>944
ありがとうございます

以下の用に書いて見ましたが

TIdHashMessageDigest5 *encoder = new TIdHashMessageDigest5();
T4x4LongWordRecord hash = encoder->HashValue(str);


[C++ エラー] unit1.cpp(169): E2034 'unsigned int' 型は 'unsigned int[4]' 型に変換できない
946942:2006/01/30(月) 01:13:06
途中で送ってしまいました。
947942:2006/01/30(月) 01:17:47
コンパイルが通りません


TIdHashMessageDigest5 *encoder = new TIdHashMessageDigest5();
unsigned int hash = encoder->HashValue(md5str);

に変えて見たらコンパイルは通るのですが
実行時EAccessViolation で書き込み違反が起こります。

948本田:2006/01/30(月) 01:43:40
949デフォルトの名無しさん:2006/01/30(月) 03:37:02
ジョーンズコンポーネントはありますか?
950本田:2006/01/30(月) 07:03:26
>>942
>Network Working Group R. Rivest
>Request for Comments: 1321 MIT Laboratory for Computer Science
> and RSA Data Security, Inc.
> April 1992
>
>
> The MD5 Message-Digest Algorithm
>
>Status of this Memo
http://www.ietf.org/rfc/rfc1321.txt
951デフォルトの名無しさん:2006/01/30(月) 08:18:17
ファイル削除時にゴミ箱に入れたいのですが、何か簡単な方法はありませんか?
952デフォルトの名無しさん:2006/01/30(月) 08:20:31
Indy10はC++Builderにインストールできるの?
953デフォルトの名無しさん:2006/01/30(月) 10:17:20
>>951
SHFileOperation

>>952
少し手間はかかるができる
954デフォルトの名無しさん:2006/01/30(月) 11:12:13
>>947
TIdHashMessageDigest5利用したいなら、

IdHash.hppの typedef unsigned T4x4LongWordRecord[4]; をコメントアウトして、その下に
struct T4x4LongWordRecord {unsigned Value[4];}; を追加。

後は IdHash.hpp と IdHashMessageDigest.hpp にあるいくつかのクラスの HashValue メソッドの戻り値が
unsigned になってるので、全部 T4x4LongWordRecord に置き換える。
955デフォルトの名無しさん:2006/01/30(月) 11:19:16
>>950
ありがとうございます
このソースを使えばいいんですね。
956942:2006/01/30(月) 11:22:25
それぞれファイルに落とし
コンパイルしたら
md5c.cは無事通りましたが
mddriver.cが
[C++ エラー] mddriver.c(104): E2451 未定義のシンボル MD_CTXとなってしまいます。
MD_CTXってのは何なんでしょか?
957951:2006/01/30(月) 15:49:16
>>953
詳しく
958デフォルトの名無しさん:2006/01/30(月) 15:54:22
>>957
まずはググレ
959デフォルトの名無しさん:2006/01/30(月) 15:54:26
Indy10 インストールしてみたひ
960デフォルトの名無しさん:2006/01/30(月) 17:13:24
10まだ?
961本田:2006/01/31(火) 07:08:38
>>942
>This page describes md5,
>a command line utility usable on either Unix or MS-DOS/Windows,
>which generates and verifies message digests (digital signatures) using the MD5 algorithm.
>This program can be useful when developing shell scripts or Perl programs for software installation,
> file comparison, and detection of file corruption and tampering.
http://www.fourmilab.ch/md5/
962デフォルトの名無しさん:2006/01/31(火) 09:57:49
次回作は何年後ですか?
963デフォルトの名無しさん:2006/01/31(火) 11:27:01
>>957
MSDNで検索すれば出てくんジャマイカ?
964デフォルトの名無しさん:2006/01/31(火) 16:56:30
965デフォルトの名無しさん:2006/01/31(火) 20:29:10
>>918
pro版では問題なかったとのこと、やっばり personal はファイルが少ないせいで
少しばかりてこずるみたいですね。

私も personal なんですが、手順どおり JCL、JVCLの順でインストール。
JCLはインストール元のパスに日本語が含まれてると駄目。
JVCLは Interpreter と UIB とかいうコンポーネント(?)でエラーが出たのでインストール
しないようにすれば、とりあえず完了。
その後実際の project のコンパイル時に JvConsts.res、JvCtrls.res が無いとエラーが
出たので jvcl\resources の下からパスの通った適当なフォルダにコピー。
これで今のところ使いたいコンポーネントは問題無く使えてます。
ご参考まで。
966デフォルトの名無しさん:2006/01/31(火) 21:48:20
C++Builder Personal 6を安く売ってるところ無いですか
967デフォルトの名無しさん:2006/01/31(火) 22:11:52
>>966
そう言う事は、価格.comやベストゲートで聞け
968デフォルトの名無しさん:2006/02/01(水) 02:12:18
<ちらしの裏>
bcc5.5/bcb6のstat()って、ワイルドカードにもマッチしちゃうんだね。

Unix系のシステムコールでも、VCTKでも
stat()は正しいファイル/ディレクトリ以外だと失敗するので
 stat()が取れなかったらワイルドカード
 stat()が取れてS_ISDIR()が成立したらディレクトリ
 それ以外はファイル
みたいな事を共通ソースでやろうと思ってたんだけど
ちょっと無理みたいね。

その他にも、Unixではstat("dirname/")が成功するのに
bccもVCも失敗するという違いもあるし、
素直に#ifdefなりで切り分けてGetFileAttributesを使うべきかな。
</ちらしの裏>
969デフォルトの名無しさん:2006/02/01(水) 04:29:31
正規表現を使いたい場合、何を使えばよいのでしょうか?
970デフォルトの名無しさん:2006/02/01(水) 04:30:41
>>969
((i))←女性性器
971デフォルトの名無しさん:2006/02/01(水) 09:53:11
>>969
標準でPCRE入ってるしboost::regexも使える
972デフォルトの名無しさん:2006/02/01(水) 12:44:05
次スレ誰かたててくれ
973デフォルトの名無しさん:2006/02/01(水) 12:55:29
デルファイってただなの?
どこまで使えるの?たたで
974デフォルトの名無しさん:2006/02/01(水) 12:56:36
次スレ
C++Builder相談室 Part16
http://pc8.2ch.net/test/read.cgi/tech/1138766165/
975デフォルトの名無しさん:2006/02/02(木) 12:09:03
>>969-970
ふかくにも・・・ワロタ
976本田:2006/02/02(木) 13:31:41
>>969
> 正規表現を使いたい場合、何を使えばよいのでしょうか?

>bmonkey's Delphi page

>正規表現を使った文字列探索/操作コンポーネント集
>
>バージョン
> 0.17
>配布ファイル
> REXP017.LZH (69,462 bytes)
>動作確認環境
> Windows 98 + Borland Delphi6 Japanese Personal edition。
> 1つ前のバージョン 0.16は Delphi2.0J と Delphi3.01J、C++Builder1J でも動いていました。今回の変更はバグの修正だけなので、確認はしていませんが、本バージョンもこれらの環境で引続き動作すると思います。
>ライセンス
> パブリックドメイン
>概要
http://homepage1.nifty.com/bmonkey/delphi/delphi.html
977デフォルトの名無しさん:2006/02/02(木) 13:57:07
それawk相当の正規表現しかないよ
978デフォルトの名無しさん:2006/02/03(金) 15:00:53
BCBでバックアップファイルを作らない方法ありますか?
979デフォルトの名無しさん:2006/02/03(金) 15:05:47
>>978
ツール→エディタオプション→表示→バックアップファイルの作成をオフ
980デフォルトの名無しさん:2006/02/03(金) 15:08:22
>>979
おお、サンクス!
981デフォルトの名無しさん:2006/02/05(日) 17:18:44
JCLと聞いて、秘められた暗い過去を思い出してしまった。
982デフォルトの名無しさん:2006/02/05(日) 21:52:58
>>981
かーくーなーよー
(ちなみに俺はPL/Iだった)
983デフォルトの名無しさん:2006/02/07(火) 19:29:01
俺の一番古い記憶は158の2頭立てだ。どうだ、恥ずかしいだろう。
あれ〜、お止めになって。
984デフォルトの名無しさん:2006/02/10(金) 07:43:04
http://www.itmedia.co.jp/news/articles/0602/09/news010.html
Borlandが開発ツールを売却、Segue Software買収
アプリケーションライフサイクル管理(ALM)推進の一環として、米Segue Softwareを買収し、統合開発環境(IDE)関連事業の売却先探しに当たる。


 Borland Softwareは2月8日、アプリケーションライフサイクル管理(ALM)推進の一環として、統合開発環境(IDE)に関連した事業の一部を売却する計画を発表した。

 売却の対象にはBorland Developer Studio(Delphi、C++Builder、C#Builder)とJBuilderが含まれる。BorlandではBear, Stearns & Co.と契約して売却先探しに当たる。

 同時に、米Segue Softwareを約1億ドルで買収する合意を交わしたと発表した。同社はアプリケーションライフサイクルを通じたソフト品質定義、測定、管理、向上のための製品を提供している。

 いずれも、拡大しているALMの分野で主導的な地位の確保を目指す戦略に沿ったものだとBorlandは説明している。
985デフォルトの名無しさん:2006/02/10(金) 20:47:25
おぉ ついに。 売却でもいいと思うな。
業務開発で、今のボーランド系を主体に使うってのは
バカげた選択と言わざるを得ない状況だしな。
出来がいい悪いの問題じゃねぇや。
986本田:2006/02/10(金) 21:22:49
>>985
> 業務開発で、今のボーランド系を主体に使うってのは
> バカげた選択と言わざるを得ない状況だしな。

ロングホーンがこけたので、
.netの行方も不透明だ、
何事にもリスクはある。
王道は無い。
987デフォルトの名無しさん:2006/02/10(金) 21:51:12
>>986
リスクの有無じゃなく、大小の話しでしょ?
988デフォルトの名無しさん:2006/02/11(土) 05:55:43
どこが買うんだろ
MSが買ったら大笑いだけどな
赤字企業ではなく優良企業が買えばBorlandが持ってるよりいいかもな
989デフォルトの名無しさん:2006/02/11(土) 06:41:24
Novell
Salesforce.com
Google.

なんて言ってる人が居るみたいだけど・・・
990デフォルトの名無しさん:2006/02/11(土) 18:57:40
>>988
ライブドアだったりして
最悪だけど
991デフォルトの名無しさん:2006/02/11(土) 19:13:57
未踏ソフトウェアなんてどうですか
992デフォルトの名無しさん:2006/02/11(土) 20:34:43
>>989
面白い予想ですね。

その中のgoogleはいくら今、四方八方に唾付けてみてる状況とは言え、
今回は無いんじゃないかなぁ。 もし有ったらどんな展開するのか
面白いけども。

ボーランドは、開発補助系ソフトに移行ってことかな?
この市場はよく知らないが いいんじゃないかな、MSと真っ向勝負でもないし。
993デフォルトの名無しさん:2006/02/11(土) 21:27:09
Salesforce.com が良いかな。
中小企業向けにCRMをカスタマイズする仕事なんかは
Delphi/BCBにはうってつけかも。

で、しばらくしてMSが参入してきて、また揉めると。
994デフォルトの名無しさん:2006/02/14(火) 13:31:31
次スレ

C++Builder相談室 Part16
http://pc8.2ch.net/test/read.cgi/tech/1138766165/
995デフォルトの名無しさん:2006/02/14(火) 14:23:44
埋め梅
996デフォルトの名無しさん:2006/02/14(火) 21:09:37
ume
997デフォルトの名無しさん:2006/02/14(火) 21:51:06
埋め
998デフォルトの名無しさん:2006/02/15(水) 01:28:42
有須川せあらちゃん参上
999デフォルトの名無しさん:2006/02/15(水) 01:51:15
ボーランド埋め
1000デフォルトの名無しさん:2006/02/15(水) 01:52:27
1000get
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。