[Tips]Borland C++Builder ちょいテク No.01at TECH
[Tips]Borland C++Builder ちょいテク No.01 - 暇つぶし2ch127:デフォルトの名無しさん
07/05/19 15:00:27
>>124
Delphi→BCB→BSD
の順でリリースしていくって話だったような。

128:デフォルトの名無しさん
07/05/19 15:51:21
Delphi→BCB→CRS(CSB,Delphi.NET含む)→Turbo
じゃないの。

129:デフォルトの名無しさん
07/05/19 21:31:45
大規模プロジェクトなんかどーでもいいからさー、コンポーネントの改良と充実をやってほしいよ

130:ミ,,゚Д゚彡 ◆A6VzDeLphI
07/05/19 22:56:07
>>129
はげどー

131:デフォルトの名無しさん
07/05/20 12:56:46
それでUNICODE問題は2007では解決しているのかね
それならうつっちゃうぞー

132:デフォルトの名無しさん
07/05/20 13:51:37
UNICODE問題って何?

133:デフォルトの名無しさん
07/05/24 11:09:46
「なに!UNICODE問題だと…!?」
「!!知っているのか!雷電!?」

134:デフォルトの名無しさん
07/05/24 13:13:52
もまいら日本語とアルファベットをせいぜい使ってるだけのくせにUNICODEとかかっこつけてんじゃねーよ

135:デフォルトの名無しさん
07/05/28 15:37:31
ドキッ!

136:デフォルトの名無しさん
07/05/29 02:01:54
C++Builder2007 pro 71,400円
BDS2006からのVUP 31,500円 <<-- 高いぞ


137:デフォルトの名無しさん
07/05/29 08:49:58
前回が大出血サービスだったと思われ。

138:デフォルトの名無しさん
07/05/29 13:19:24
確か1から6までは2万くらいだったよな?

139:デフォルトの名無しさん
07/05/29 20:26:58
前回のバージョンアップ料金
Borland C++ Builder Professional --> Borland Developer Studio 2006 37,800円
Borland C++ Builder6 Professional --> Borland Developer Studio 2006 29,400円
値上がりしている
BDS2006にはDelphi/Delphi.NET/Builder/C#が含まれているのに
レベルダウンのBuilderだけなのに、値上げはひどいよ。


140:デフォルトの名無しさん
07/05/29 21:15:49
こんなやり方してたらただでさえ少ないユーザーがますます減るよ

141:デフォルトの名無しさん
07/05/29 23:54:41
もうしばらくするとBDS(CDS?)が出るので、単体でご不満の方はそれまで待ってみたら?

142:デフォルトの名無しさん
07/05/29 23:58:11
どうせBDSの価格は7万とか言うんでそ?

143:デフォルトの名無しさん
07/05/30 00:00:29
BDSは7万で済むはずがない、9万ほどするだろ。

144:デフォルトの名無しさん
07/05/30 00:59:09
アップグレードが7万っていってるんでしょ。

145:デフォルトの名無しさん
07/05/30 01:04:45
アップグレード7万・・・・・聞いた事ねえよ
なんてボッタクリ商売

146:デフォルトの名無しさん
07/05/30 07:52:31
貧乏人の巣

147:デフォルトの名無しさん
07/06/19 04:43:54
自己解決しました


148:デフォルトの名無しさん
07/06/28 16:24:43
Borland Developer Studio 2006 アップデート2 Hotfix 13
URLリンク(support.codegear.com)


149:デフォルトの名無しさん
07/06/30 14:14:50
>>132-133
ユニコード問題、以下の作者の受け売りだけど信じてる

URLリンク(mana.ikuto.com)

[要約]
ユーザーがファイル名やフォルダ名にユニコードを使用しないように注意しないと、
それが原因で無関係のファイルまで破壊しかねません。
Delphiでテキストエディタなどを作る際は、ファイルIO関数のユニコード化は必ず行ってください。
そしてさらに深刻なのは、ユニコード非対応アプリがレジストリにアクセスする場合です。
ファイルの場合と同様に、絶対にDelphiが用意したクラスを使ってはいけません。



150:デフォルトの名無しさん
07/06/30 16:20:34
俺様のページに勝手に直リンすんじゃねぇ

151:デフォルトの名無しさん
07/06/30 18:46:45
皿仕上げ

152:デフォルトの名無しさん
07/07/01 15:04:22
>Delphiは開発環境にバグが多かったり、最新のOSやCPU向けの最適化がなされていないなど、
>欠点も多いのですが、作ったアプリケーションの動作速度と開発の容易さとの妥協点として、
>”しかたなく”利用しています。後述の問題点もあるので、これからプログラミングを始めるという
>初心者にはDelphiでの開発は絶対オススメできません。

つまりMS謹製開発環境のみを使いなさいということだな。
発想がいかにも日本人らしくてよいね。


153:デフォルトの名無しさん
07/07/01 22:46:36
>>152
それを見たとき、真っ先に思い浮かべたのはこれ↓だった。

「…僕が一番Delphiをうまく使えるんだ。一番、一番うまく使えるんだ…」

URLリンク(www.geocities.co.jp)

154:デフォルトの名無しさん
07/07/02 12:44:56
最近のIDE(具体的にはTurbo C++ Explorer)ってSDIスタイルにはできないの?
今どきの、MDIともちょっと違う気持ち悪いサブウィンドウ構成がデフォルトだけど、
フォームエディタやコードエディタを独立したウィンドウにできないのかしらん。
(記憶あいまいだけどDelphi6/BCB6ではオプションから変更できたような)

155:154
07/07/02 16:04:30
デスクトップ ツールバーの Classic Undocked でした > 自己解決
お騒がせしました。

156:デフォルトの名無しさん
07/08/05 00:52:06
>>149
むちゃくちゃ感じの悪いヤツだな、その作者。

157:デフォルトの名無しさん
07/11/17 10:42:33
がっつ


158:デフォルトの名無しさん
07/11/17 13:02:56
>>149
Delphiが用意したクラスって、iostreamとかもダメ?

159:デフォルトの名無しさん
07/11/18 11:12:58
ShiftJIS範囲内の文字しか使われない or ファイルシステムがFAT系ならUnicode対応してなくても問題ない。
問題が出る可能性があるのはパス名にShiftJIS外の文字(アラビア語や韓国語など)が含まれてファイルシステムがNTFSの場合だけだとおもう。


160:デフォルトの名無しさん
07/11/18 11:15:25
あ、FAT32はダメかもわからん

まあ文字化け起こして、意図せずに既存ファイル名とかぶる場合があり得る程度(特に半角カナ)

161:デフォルトの名無しさん
07/11/20 18:35:54
wxFormsで開発したときのTipsキボンヌ。

特に、Macでのコンパイルはどうやんのか、とか。

162:デフォルトの名無しさん
07/11/20 23:22:42
> 特に、Macでのコンパイルはどうやんのか、とか。
fURLリンク(bekins.borland.com)

163:161
07/11/21 08:38:10
thx!>>162

有難うございます。
そのPDFだけ持ってます。というか、そのPDFで存在自体知りました。

164:161
07/11/21 13:08:38
度々すみません。

実際にセミナー見られた肩、レポートお願いしますorz

165:デフォルトの名無しさん
07/11/22 09:23:23
まぁ、そもそもインタネットに接続されてるのが当たり前な今日に
ShiftJIS範囲内の文字しか使われない
とかどうやってユーザーを制限する気なんだろうね。もう、あほかと。


166:デフォルトの名無しさん
07/11/22 09:34:34
ヒント: UTF-8

167:デフォルトの名無しさん
07/11/23 09:29:54
>>165
意味不明。

168:デフォルトの名無しさん
07/12/31 09:13:11
会社でTurboC++(Professional)を使わされてるんですが、
この先使い続けてても大丈夫ですかね?
反Microsoft派の意見が、まかりとおってて、口出しできません。
ほんとはVisualC++使いたいのに。
参考書の数も圧倒的に違うのに。

169:デフォルトの名無しさん
07/12/31 13:00:53
基本はC++なんだからどっちも変わらない。
boostの通りが悪いくらい。
しかもTurboC++の方がGUIは.NET無しでVBみたいに作れるから楽。

170:デフォルトの名無しさん
07/12/31 13:09:06
>168
そんな会社辞めちゃえよ。でVCやってる会社に行けば、現状がいかに恵まれてるかがわかる。

171:デフォルトの名無しさん
07/12/31 13:38:33
釣れたw

172:デフォルトの名無しさん
08/01/12 14:18:46
バラクーダまだぁ?

173:デフォルトの名無しさん
08/02/02 22:22:49
無駄

174:デフォルトの名無しさん
08/02/15 10:06:04
C++Builderでクロス開発しててある程度見通しついたのですが、最後に躓きました。

Stringはコンポとアクセスする前までstd::string使えば良いし、
Exceptionは直接使わずに派生したエラークラスを使ってgcc側ではlogic_exception/runtime_exception派生したものを使えば良いことは分かりました。

が、最後の難題はTStringListです。
結構コアな文字列解釈にTStringListをSTLベースに書き換え前途多難、某にはめられますた。

おまいら、クロス用のTStringListどこにあるか教えて下さい。
もしくは純粋C++やSTLでTStringList作って下さい。

175:デフォルトの名無しさん
08/02/15 10:30:16
>>174
要素単位でコピーじゃ駄目なん?

#include <iostream>
#include <vector>
#include <vcl.h>
#pragma link "rtl.lib"
#pragma link "vcl.lib"

int main(){
TStringList* dest = new TStringList();
std::vector<std::string> src;

src.push_back("1行目");
src.push_back("2行目");
src.push_back("3行目");
src.push_back("4行目");

for(int i = 0; i < src.size(); i++) {
dest->Add(AnsiString(src[i].c_str()));
}

for(int i = 0; i < dest->Count; i++) {
std::cout << dest->Strings[i] << std::endl;
}

delete dest;
return 0;
}

176:174
08/02/15 10:35:47
Valuesプロパティ、Namesプロパティ、IndexOf、CommaTextの入出力等が要ります。

177:デフォルトの名無しさん
08/02/15 13:48:42
TStringList
おれも昔作ったよ。
STLべースでさ。
Values/Names/IndexOf/CommaText
こんなのなんて簡単に自力で作成できるじゃん。


178:174
08/02/15 14:08:57
>>177
レスにコピペorz

もしくは、うpうp!


179:174
08/02/15 14:13:35
>CommaText

だけでも欲しぃお( ^ω^)

180:174
08/02/15 14:36:33
何ていうか、TStringListって偶然だろうけど使い勝手の良いインターフェースですね。

181:174
08/02/15 14:46:46
さっさと教えて下さいよ役立たず共

182:174
08/02/15 14:48:37
 ↑
上はニセ174です。

183:174
08/02/15 15:07:50
ニセ174登場予定


184:デフォルトの名無しさん
08/02/15 15:11:06
181=183



185:デフォルトの名無しさん
08/02/15 15:53:28
180=182=184

186:デフォルトの名無しさん
08/02/15 20:20:25
String::SubStringは1ベースで、
std::string.substrは0ベースで、
あってますか?

187:デフォルトの名無しさん
08/02/15 20:41:58
どうでしょうね

188:デフォルトの名無しさん
08/02/15 21:24:09
答え待つよりさーー
自分で試したほうが絶対速いじゃんかーー

189:デフォルトの名無しさん
08/02/15 21:28:25
間違ってますって言われたらどうするんだろう

190:デフォルトの名無しさん
08/02/16 00:32:32
TStringListくらい多少手間は食うだろうが自力でできるよ

191:デフォルトの名無しさん
08/02/16 02:16:45
ってかdelphiのソースがあるんだから、それを参考にすれば簡単に作成できるじゃん。


192:デフォルトの名無しさん
08/02/17 14:20:46
コンマで区切るのはstring_algoとかtokenizerとか使ったらダメ?
URLリンク(archives.free.net.ph)

あと、連想配列ならmapとかunorderd_mapがあるから、
それで済む程度のことなら、自分でコードを書く必要がない。

193:デフォルトの名無しさん
08/02/17 15:46:26
つーか、余程の無能でも二日もあれば自分で書いてるだろう・・・

194:デフォルトの名無しさん
08/02/17 21:50:49
初めての質問です。
環境:WindowsXP/C++Builder5

Imageコントロールに延々とグラフを描画するプログラムを運用中のですが、
突然、描画が出来なくなってしまう現象が発生しています。
一度この現象が出ると、プログラムを再起動しないと復旧しません。
止まるもの、規則性が無く、極端には一回目からグラフの描画が途中で
止まったりします。
これは、バグなのでしょうか?
また、何とか対応したくて、Imageコントロールを動的に取得して描画しようと
したのですが、デバッグでブレーク張っていると、問題なく動くのですが
ブレークをはずすと例外エラーが出てしまうのです。(NTDLL.DLLで)
何とかImageコントロールへの描画不具合を直せないでしょうか?
宜しくご指導をお願い致します。

195:デフォルトの名無しさん
08/02/17 23:01:40
しらんけど、タイミングに気をつけりゃいいんじゃないの?

196:デフォルトの名無しさん
08/02/21 10:25:48
ImageのPictureにBitmapを作成して描画してるわけ?

もしかしてスレッド作って描画していない?
片方のスレッドで描画して、メインスレッドで画面に表示なんてやってると良く落ちるよ。


スレッドではTBitmapに描画しておいて、Synchronizeか、メインに対してメッセージを投げて
画面表示の部分だけは同期させるとかさ

197:デフォルトの名無しさん
08/02/21 10:56:45
VCLがスレッドセーフなら使いやすいのにな

198:デフォルトの名無しさん
08/02/21 13:06:47
無茶言うなよ
大昔に出来た基礎に増築しまくっていじるにいじれなくなってるのがVCLなんだから
酷いプロジェクトの見本だな

199:デフォルトの名無しさん
08/02/21 13:11:36
逆に言うと、クラスライブラリでスレッドセーフな物ってあったっけ?

なわけねーだろ、オブジェクトにアクセスするときにはミューテックスとかセマフォとか取得するだろーが。

200:デフォルトの名無しさん
08/02/21 13:37:27
>>198
妄想としてOOPでもスレッド同士でメソッド呼び合えるようなものを考えてるんだろうけど、まあ夢は夢。

VCLのように委譲(イベント)を使いまくる場合、
基本的にダブルポインタが必要なわけ。 メソッドポインタって奴ね。
つまりオブジェクトと、関数アドレスの2つが必要になるわけね。

ポインタ1個だけなら同期とかは必要ないけど、2つになると、これはどうしようもない。

スレッドセーフにする為に、イベントに代入するような場面全部に同期対策入れろって思う?
思わないでしょ?

メソッドポインタ一つでさえコレなんだから、スレッド同士でメソッド呼び出しってのは基本的に無理
関数型言語なら、ある程度は可能かもしれないけどね


201:デフォルトの名無しさん
08/03/06 00:23:00
TStringList *hogehoge = new TStringList();
...
delete hogehoge;

ってコードをよくみるが、
TStringList hogehoge;
でdeleteなしってダメなんか?

202:デフォルトの名無しさん
08/03/06 00:52:13
VCLなオブジェクトってスタックにおけるんだっけ?

203:デフォルトの名無しさん
08/03/06 01:44:11
c++ builder 2007のkeygenerator持ってる人いる?

204:デフォルトの名無しさん
08/03/06 01:52:16
>>202
スタックにおけないのか?kwsk

205:デフォルトの名無しさん
08/03/06 09:52:23
>>201
ヘルプに書いてある


206:デフォルトの名無しさん
08/03/06 10:01:51
>TStringList
>String

これって便利なんだけど、クロス環境で開発してると害悪になる。

下はstringの代用があるけど、上は自作する必要があるorz

207:デフォルトの名無しさん
08/03/06 10:29:41
文字列リストくらい自作すればいいじゃん
別にTStringListそのものである必要なんて殆どないんだろうし
1時間もあれば書けるだろ

208:デフォルトの名無しさん
08/03/06 10:47:45
ヒント: TStringListをバリバリ利用したクラスの移植

209:デフォルトの名無しさん
08/03/06 10:52:08
TStringListを自前で書いたけど
1時間では絶対に無理
俺は結局1日半くらいかかった。


210:デフォルトの名無しさん
08/03/06 12:56:42
STLとboot使えばよゆー

211:デフォルトの名無しさん
08/03/06 13:01:34
TStringListって何か特殊な機能あったっけ?

212:デフォルトの名無しさん
08/03/06 13:09:48
特殊な機能は無いけど、

Values、Names
とか
CommaText入出力
とか、
LoadFromStream/File
とかあるから、
代替品を作るときにイパーイ機能を実装しないといけないし、
posとfindとイマイチ似てないところや、
無意識にthrow Exceptionすれば良かったのをクロスでどうするとか、
考えるの大変、差し替え後テスト大変。

213:デフォルトの名無しさん
08/03/06 13:11:49
.CommaText とか便利機能もあるしな

まあ IStrings のCOMインターフェース連携機能は諦めるとして

214:デフォルトの名無しさん
08/03/06 13:13:03
だから、そんなのSTLとboostで代替できるじゃん?
それら使い方知らないってのは勘弁してくれw

215:デフォルトの名無しさん
08/03/06 13:15:29
で、それらを全て持ってるSTLとboostの代替ってどれ?

バラバラに持ってても意味無いんだよ。

216:デフォルトの名無しさん
08/03/06 13:15:46
そか、VCLしか知らない人が困るというだけだね

217:デフォルトの名無しさん
08/03/06 13:18:17
>>215
なんでバラバラに持っていては意味ないのかわからない
余程の無能じゃなければラッパー部のテストなんてすぐ可能だし、時間がかかる理由がない
逆に教えてくれw

218:デフォルトの名無しさん
08/03/06 13:21:35
そりゃCommaTextくらい実装出来るけど STL や boostでどうやるわけ?
boostのSpiritでやるのか? なんか牛刀持ち出してるように思うが1時間で書けるの?


IStringsはATLだが これも STLの一種だと言い張るわけか

219:デフォルトの名無しさん
08/03/06 13:22:53
ってかまともにテストするなら、テストコード書いてテストするだけで1時間上かかるだろ。


220:デフォルトの名無しさん
08/03/06 13:29:02
>>218
CommaTextなんてtokenizer使えばすぐ

つーか、クロス開発するときにTStringListの置き換えに困るという話なんだから
>>206が言っているようにStringの代替にstd::stringを使えるレベルでいいなら余裕でしょ
IStringsAdapterが、とか持ち出すのは滑稽w

全体的なテストはまた別の話だし、TStringList関係なく必要だから

221:デフォルトの名無しさん
08/03/06 13:39:36
>なんでバラバラに持っていては意味ないのかわからない

クラスのメンバ変数となってたりするわけだから。

222:デフォルトの名無しさん
08/03/06 13:50:19
それだってescaped_list_separatorからエスケープ殺すか、TokenizerFuncから自作するか

223:デフォルトの名無しさん
08/03/06 13:52:22
posが1ベースでfindが0ベースだったり。

TStringListの仕様はガチガチに決まってるところを、
類似クラス作成するときどこまで同じにするかで悩んだり。

224:デフォルトの名無しさん
08/03/06 13:54:52
そもそも、どんなプラットフォームで開発するにしてもTStringListみたいなデータ構造は必要なんだから
クロス開発するような人なら手持ちにあるはずなんだけどな・・・

225:デフォルトの名無しさん
08/03/06 13:57:16
>手持ちにあるはずなんだけどな・・・

誰でも一番初めは作らないといけないだろ。
反論になってない。

226:デフォルトの名無しさん
08/03/06 13:58:13
結局、自分のよく知らない開発環境で作ろうとしてるから大変なだけ
初心者がBCB難しいって言ってるのと同じ

227:デフォルトの名無しさん
08/03/06 17:08:30
最近はboost::algorithm::splitなんてものもあるね。

228:デフォルトの名無しさん
08/03/06 18:04:25
VCLべったりってのもよろしくないね。

229:デフォルトの名無しさん
08/03/07 08:14:02
MSべったりが一番です

230:デフォルトの名無しさん
08/03/07 14:16:07
我が娘はお父さんべったりです。

231:デフォルトの名無しさん
08/03/07 15:40:38
うちは父が妹にべったりです

232:デフォルトの名無しさん
08/06/24 10:59:31
bcb -b hogehoge.bpr
でビルド自動化

233:デフォルトの名無しさん
08/07/04 20:56:47
TIBQueryを使ってるアプリでEOutOfMemoryが出る場合、出にくくするテクはありますか?
ざっと見メモリリークもなさそうですし、CodeGurardでも警告ないんですが。

234:デフォルトの名無しさん
08/07/04 22:39:01
双方向カーソルが有効になってない?前にこれではまったことがある。

235:233
08/07/07 10:01:24
サンクス>>234

UniDirectionalで使用メモリ量が変わるのですね。
影響ありませんでした。 → 従って、TIBQueryのメモリリークじゃないってことです。

良く考えたら、TImage等を使って巨大なビットマップを作成やコピーしているアプリだと気付きました。
TBitmap系のメモリリークを防ぐテクニックがあれば教えてほしいです。

236:デフォルトの名無しさん
08/07/07 21:59:53
C++BuilderってFastMM使えるのかな?リークがないのにOutOfMemoryってことはメモリ領域の
断片化が原因かも。

237:233
08/07/08 08:55:17
>>236
あ、断片化でOutOfMemoryが出ることがあるんですか。
勉強になりました。

BCB6なのでFasmMMは標準で入っていません。
数年以内には最新版に逝行するつもりです。

238:233
08/07/08 09:49:00
他にも、std::vector使いまくってるから、確かに断片化してるかも。
一応調査はこれで終わろうと思います。

が、この際周辺情報も入手しておきたかったり:
・断片化状態調査ツールなんかないですよね?
・断片化メモリを解放するメソッドはやっぱり無いですよね。
・FastMMにすると断片化を防げるわけですか。

239:デフォルトの名無しさん
08/07/08 16:19:35
断片化と言えば一部のMS-IMEが中途半端なアドレスに陣取ってて、1GB以上の物理メモリ積んだ環境でペイントソフトが起動しないってことがあったなあ‥‥

240:デフォルトの名無しさん
08/07/08 18:07:42
ページングでメモリ管理やってるんだからメモリ容量(仮想メモリを含む)
ぎりきりのメモリ確保をすれば連続したメモリ領域に確保され直される
と思うが

241:デフォルトの名無しさん
08/07/08 21:22:26
>238
FastMMでメモリアロケートの情報を取得できたような気もする。あとメモリ確保のストラテジが標準のものと
異なり、いまどきのメモリがそこそこある状況に最適化されていたはずなので断片化がおきにくいとは思う。
いずれにせよC++Builder 6でも使えるはずなのでまずは試してみてはいかがか?

242:233
08/07/10 10:32:26
>>239
メモメモ、すごい勉強になったけど、、、

そんなんあり?_? orz

>>240
そう思うんですけど、現象からはそれを破壊している何かが起きているような。。。

>>241
言われる通りです。
先延ばししても同じ問題が発生したら結局原因追究&対処しなきゃならないんですよね。

243:デフォルトの名無しさん
08/07/10 11:21:11
>>242
なんというか、MS-IME はこういう状況らしい。
URLリンク(magredirect.itmedia.co.jp)


244:デフォルトの名無しさん
08/07/10 11:53:15
日本語のMS-IMEを中国人に開発させるなよ・・・

245:デフォルトの名無しさん
08/07/12 00:16:20
毛唐は、日本語と支那語は似たようなものという認識しかねえだろ。


246:デフォルトの名無しさん
08/07/12 11:59:20
その前は韓国で作ってたし、レッドモンドの連中の認識はその程度かも。
「うちのほうが頭がいい連中が多いしIMEはまとめて作りますよ」とかいう言葉に乗せられちゃたんだろな。

247:デフォルトの名無しさん
08/08/01 11:28:41
コンピュータかコンピューターかなんて話よりそっちをどうにかしろってことだよな

248:デフォルトの名無しさん
08/08/09 23:26:48
さっき知って感動したこと。
試しに、プロジェクトにDelphiのソースを突っ込んでみたら
.hppファイルが自動生成されて、ビルドがちゃんと通った。
Delphiの変数宣言って、C++のポインタ宣言と同じで実体は生成されないんだね。
C++ならnewするのを、DelphiはCreateするって違いなんだね。
だから、VCLにはCreateメンバ関数が無いんだね。


249:デフォルトの名無しさん
08/08/10 01:24:36
>>248
単純なDelphiプロジェクトなら、プロジェクトマネージャに構成ユニット放り込めばビルド通るぞ。

250:デフォルトの名無しさん
08/08/15 15:45:38
だれかDMonkeyをBCBで使ってるやついない?

251:デフォルトの名無しさん
08/08/15 16:20:45
Monkey D るふぃー?

252:デフォルトの名無しさん
08/09/09 15:50:55
いま、BCB6で填まっているんですがどなたかお知恵を・・・

BCB6でサービスプログラムを作ったのですが、
有る処理で
Application->ProcessMessages();
と同様の処理をしないといけなくなったのですが、
Application->ProcessMessages();
を記述すると TServiceApplication のメンバーで無いと怒られてしまいます。

なにか他に ProcessMessages と同様の操作する方法ないでしょうか?。

253:デフォルトの名無しさん
08/09/09 15:55:51
ヒント: win32api アイドルループ

254:253
08/09/09 15:58:14
てか、検索書けると、
>C:\Program Files\Borland\CBuilder6\Source\vcl\forms.pas 6704: procedure TApplication.ProcessMessages;
まんまソース見えるじゃん。

255:デフォルトの名無しさん
08/09/09 16:12:04
ソースみれてもエラー出るつってんだよクズしねよ

256:252
08/09/09 16:14:52
誰でもいいからはよ答えんかいヴォケが
使えん奴ばっかりやのホンマに

257:デフォルトの名無しさん
08/09/09 16:27:58
>>255-256は僕じゃありません><
でも僕も同じ事を言いたいです><

早く教えてくださいこの役立たず共よ><

258:デフォルトの名無しさん
08/09/09 16:33:29
この糞共が
さっさと答えろっつーてんだろが

259:デフォルトの名無しさん
08/09/09 16:35:08
ほんとお前らって役にたたねーよな

260:デフォルトの名無しさん
08/09/09 17:23:41
>>253-259
ケンカをやめて、二人を止めて~わたしの為に争わないで~もう、これ以上~

って、すみません。
>>253,254 様の書き込みでソースパクって来たのですが、
Assigned() が判らない・・・検索に掛からない…
う~ん泣き

261:253
08/09/09 18:35:55
>Assigned()

これは、関数ポインタが設定(=アサイン)されているか?
ということを確認する関数。

どういうことかっていうと、OnClickみたいなイベントハンドラって関数ポインタ型になってるじゃん?

で、IDEでイベントハンドラ設定すると、

OnClick := ButtonClick;

みたいなコードで関数ポインタが設定されるわけ。

でコンポーネント側は、
>if (Assigned(OnClick))
> OnClick(self, , ,)
みたいにイベントハンドラが設定されてたら関数ポインタを実行(=関数を実行)するわけ。

262:253
08/09/09 18:37:49
ま、Assignedコールもできるでしょうし、意味的には、

>if (OnClick != NULL) {
> OnClick(self, , , );
>}

と等価です。

また、OnClickみたいな関数ポインタを使わず、
関数コール直接書いてもおk。

263:253
08/09/09 18:42:52
>で、IDEでイベントハンドラ設定すると、
>Button1.OnClick := Button1Click;
>みたいなコードで関数ポインタが設定されるわけ。

の方が正確かな。

ま、上記のような、コンポーネントがイベントハンドラを実行する仕組みは理解した方が良いが、
どーしても理解できない場合は、Win23APIべた書きして下さい:



URLリンク(www.m--takahashi.com)
// アイドリング処理 グローバル関数


264:デフォルトの名無しさん
08/09/09 21:39:44
>>261-263
すっげー。思わずコピペ保存しちまった。

>>252の者です。
ありがとう御座います、なんとか回避できました。
ていうか、元バグが原因で発生していたので、
ProcessMessages の様な事しなくて済みました。

今、社内では、誰だよこのアプリ作ったのは!!って騒ぎになってます。

265:デフォルトの名無しさん
08/09/18 20:10:21
だれなん?

266:デフォルトの名無しさん
08/09/19 08:49:35
作った本人何て言ってる?

267:デフォルトの名無しさん
08/09/20 19:37:43
ドキュメントどころかソースに名前がないのは酷いな

268:デフォルトの名無しさん
08/10/20 18:37:03
1ヵ月も前の話題にレス。

デバッグしてて VCL の中に入っていくといきなり Pascal になるからびびるよな。
しょーがないので、読める程度に文法知っておこうと文法書買って、せっかくだから
ちょっと書いてみるかで付属の Delphi(BCB 5 Pro には Delphi 4 が付属してた)使ってみたら
そのまま Delphi にハマってしまった。

269:デフォルトの名無しさん
08/10/21 02:28:29
C++Builderなら
プロジェクトにC++とDelphiを混在させることができるから便利。
Delphiで書きたいとこは、Delphiのファイルにする。
自動的にPascalファイルから、hppファイルを作成してくれる。
Delphiのサンプルソースはあるけど、C++での書き方がわからないという場合
無理してC++に書き換える必要はなく
そのままDelphiのソースが使えるのが、C++Builder


270:デフォルトの名無しさん
08/10/30 12:45:08
あらら、C++Builder使ってて、標準ライブラリのPascalコードに迷い込んだ私が通りますよ。

ところで、その標準ライブラリのソースを弄りたくなったんですが、
どうやってライブラリに反映させたらよいのでしょう?
ご存知の方、いらっしゃいませんか?

具体的には、...\source\Win32\vcl\Forms.pas ですけどね。


271:デフォルトの名無しさん
08/10/30 22:45:54
パッケージ作り直すか、自分のプロジェクトに直接放り込む。

272:デフォルトの名無しさん
08/10/31 09:32:45
>>271
やっぱそうなりますか……
ありがとう。やってみます。

273:デフォルトの名無しさん
08/11/04 18:40:45
Delphi の方法ですが、BCB にも dcc32 はあるみたいだし、使えないかな。
かの中村氏の ML への投稿です。

URLリンク(www2.big.or.jp)


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch