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

C++Builder相談室 Part13

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん05/02/15 20:58:38
C++Builderに関する質問・回答や議論等を行う相談室スレッド。

過去スレ・関連サイトは>>2-6あたり。
0508本田2005/04/19(火) 23:51:14
>>507
そんなことよくあるんだけど、
私、BCB5PROを使ってるんだけど、
プロジェクトファイルをメイクファイルに変換して、
試行錯誤してメイクファイルを修正している。
0509デフォルトの名無しさん2005/04/20(水) 01:45:50
64ビットWindows対応のプログラムは作れるのでしょうか?
0510& ◆FC4h7F/wV6 2005/04/20(水) 02:34:19
>>506
#include "afxres.h"
を
#include <afxres.h>
にするとか。
0511本田2005/04/20(水) 02:35:52
510は私です。
>>509
BCB6では無理。
0512デフォルトの名無しさん2005/04/20(水) 03:11:52
>>509
Delphi2006またはDelphi2007をお待ちください。
05135042005/04/20(水) 04:25:51
>>505
亀レスですがお騒がせしました
0514デフォルトの名無しさん2005/04/20(水) 16:33:44
C++Builder 6.0で開発してます。
TTreeViewのスクロールバーって消えないのでしょうか?

ShowScrollBarでやってみても一時的には消えるがやっぱり駄目
サイズ変更の微妙なサイズ変更(横スクロールバーが出る瞬間)
とかするとまた出てきてしまいます。

SetWindowLongでむりやりスタイル変更
ULONG lStyle = ::GetWindowLong( TreeView1->Handle, GWL_STYLE);
lStyle ^= WS_VSCROLL;
::SetWindowLong( TreeView1->Handle , GWL_STYLE, lStyle);
とかしても、駄目っぽいです。
どなたか御存じないでしょうか?


0515デフォルトの名無しさん2005/04/20(水) 19:15:55
>>508
そうなのですか・・・

>>510
それも試してみたのですが、やっぱり駄目でした。

アドバイスありがとうございました。
色々試してみます。
0516デフォルトの名無しさん2005/04/20(水) 21:56:51
コーディング規約

public 宣言と private 宣言

グローバル
g
gstrUserName

モジュールレベル
m
mblnCalcInProgress

プロシージャ内
なし
dblVelocity
0517デフォルトの名無しさん2005/04/21(木) 12:37:23
すみません、質問です。
Borland C++Builderのチュートリアルをやっていてつまってしまいました…

2:フォーム上の ActionManager1 を選択し,オブジェクトインスペクタで
Images プロパティに ImageList1 を設定します。

とあるのですが、ImageList1と言うものがプルダウンに表示されません
入力しても駄目です…

これは、環境の設定とかが悪いのでしょうか?

Borland C++Builder Professional Version6.0[Build10.166] を使用しています。

どなたか教えて下さい
宜しくお願いします。
0518デフォルトの名無しさん2005/04/21(木) 12:49:33
>>517
フォーム上にTImageListコンポーネント置いてあるか?
05195172005/04/21(木) 13:00:36
>>518
やってしまいました・・・置いてませんでした_| ̄|○

申し訳ありませんうまく行きました有り難うございます。
これからも精進致します…
0520デフォルトの名無しさん2005/04/21(木) 13:42:05
TMemoコンポーネントに13Mのテキストファイルを
LoadFromFileしたいのですが160000行もあり、読
み込みに20秒ぐらい掛かってしまいます。
ListViewのようにMemoもOwnerDataのような事が
可能でしょうか?また、できるならどのようにすれ
ば実現できますか?
0521デフォルトの名無しさん2005/04/21(木) 13:48:51
ん〜
0522デフォルトの名無しさん2005/04/21(木) 15:53:43
>>497
パソコンを買い換える。
0523デフォルトの名無しさん2005/04/21(木) 18:26:21
TForm3のコンストラクタに引数を追加して
__fastcall TForm3::TForm3(const int iFlg, TComponent* Owner) : TForm(Owner)
↓これで↑を呼ぶ場合にどうすればいいんでしょうか?
Application->CreateForm(__classid(TForm3), &Form3);
これで、
0524デフォルトの名無しさん2005/04/21(木) 22:04:52
ヘッダファイルの外側の「class 何々{〜};」の外側でexternを付けて(付けなくてもいい場合も ある)変数を宣言すると、プロジェクト内のどこからでも使うことができる
グローバルな変数になります。

プライベート変数ではなく、他のフォームからも使ってもらいたい変数は、同じくヘッダファイルの 中の「public:」のもとで宣言し
パブリック変数になります。

フォームに対応したユニット内のすべてのモジュール(関数)から使用できる 変数を、
『プライベート変数』と呼びます。

モジュール(関数)の中で宣言された変数は
『ローカル変数』 と呼ばれます。
0525デフォルトの名無しさん2005/04/21(木) 22:28:19
>>523
無理。普通にnewを使えばいい。
0526デフォルトの名無しさん2005/04/22(金) 01:25:54
>>514
スタイルにTVS_NOSCROLLを加える。
既にスクロールバーを持ってるやつを、SetWindowLongで変更する場合は、
変更後にShowScrollBarを呼ばないと消えない模様。
0527デフォルトの名無しさん2005/04/22(金) 10:39:13
 
0528デフォルトの名無しさん2005/04/22(金) 17:26:15
質問させていただきます。
C++Buirder5で開発中なのですが、
VBでいうMid関数と同じ役割とする関数ってC++Buirderにもありますか?
もしあるのであれば、教えてくださいm(_ _)m
0529デフォルトの名無しさん2005/04/22(金) 17:57:31
AnsiStringならSubStringメソッドかな?
0530デフォルトの名無しさん2005/04/22(金) 19:00:15
>>528
ヘルプ位見たんだろうな?
0531デフォルトの名無しさん2005/04/22(金) 19:23:19
いちいちヘルプ見れとかウザイ
0532デフォルトの名無しさん2005/04/22(金) 20:45:59
>>528

二回繰り返してるってことは素で間違えてるのか?

×Buirder
○Builder
0533デフォルトの名無しさん2005/04/23(土) 04:51:22
void __fastcall TForm1::FormCreate(TObject *Sender)
{

/*

Unit1.h
#include <StrUtils.hpp>

*/

//Unit1.cpp
AnsiString A = "XYZ";
AnsiString B = "わおん";

Caption = MidStr(A,3,1); //Z
Application->Title = MidStr(B,5,2); //ん

}

0534デフォルトの名無しさん2005/04/23(土) 04:53:14
ByteType メソッドは,AnsiString 内の指定された位置にあるバイトの種類を 示します。

enum TStringMbcsByteType { mbSingleByte, mbLeadByte, mbTrailByte };
TStringMbcsByteType __fastcall ByteType(int index) const;

説明

ByteType メソッドは,AnsiString 内の index(0 が最初)で示されたバイトの 位置にあるバイトの種類を示します。戻り値は以下のとおりです。

定数 意味

mbSingleByte 1 バイト文字
mbLeadByte マルチバイト文字の最初のバイト
mbTrailByte マルチバイト文字の最後のバイト

西洋諸国など一部のロケールではマルチバイト文字を使用しません。その場 合,ByteType は常に mbSingleByte を返します。
0535デフォルトの名無しさん2005/04/23(土) 05:34:56
void __fastcall TForm1::FormCreate(TObject *Sender)
{

/*

Unit1.h
#include <StrUtils.hpp>

*/

//Unit1.cpp
AnsiString A = "XYZ";
AnsiString B = "わおん";

Caption = MidStr(A,3,1); //Z

int intStart,intCount;
intStart = 3;
intCount = 1;

Application->Title = MidStr(B, (intStart * 2) - 1, intCount *2); //ん

//Application->Title = MidStr(B,5,2); //ん


}
//-------------------------------
0536デフォルトの名無しさん2005/04/23(土) 05:44:57
MidStr
MidStr
MidStr
MidStr
MidStr
MibStr
MidStr
MidStr
MidStr
MidStr
MidStr
MidStr
0537デフォルトの名無しさん2005/04/23(土) 07:38:51
LeftStr,RightStr,MidStrのいずれも、マルチバイト文字を
0538デフォルトの名無しさん2005/04/23(土) 09:59:18

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

Unit1.h
#include <StrUtils.hpp>

*/

//Unit1.cpp
AnsiString A = "WXYZ";
AnsiString B = "富士山";

Caption = MidStr(A,3,1); //Y

int intStart,intCount;
intStart = 3;
intCount = 1;

//Application->Title = MidStr(B, (intStart * 2) - 1, intCount *2); //山

//Application->Title = MidStr(B,5,2); //山

StrLCopy(A.c_str(), B.c_str(), 4);
Application->Title = AnsiString(A); //富士

}
0539デフォルトの名無しさん2005/04/23(土) 10:03:08
void __fastcall TForm1::FormCreate(TObject *Sender)
{
/*

Unit1.h
#include <StrUtils.hpp>

*/

//Unit1.cpp
AnsiString A = "WXYZ";
AnsiString B = "富士山";

Caption = MidStr(A,3,1); //Y

int intStart,intCount;
intStart = 3;
intCount = 1;

//Application->Title = MidStr(B, (intStart * 2) - 1, intCount *2); //山

//Application->Title = MidStr(B,5,2); //山

Application->Title = StrLCopy(A.c_str(), B.c_str(), 6); //富士

}
0540デフォルトの名無しさん2005/04/23(土) 10:04:32

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

Unit1.h
#include <StrUtils.hpp>

*/

//Unit1.cpp
AnsiString A = "WXYZ";
AnsiString B = "富士山";

Caption = MidStr(A,3,1); //Y

int intStart,intCount;
intStart = 3;
intCount = 1;

//Application->Title = MidStr(B, (intStart * 2) - 1, intCount *2); //山

//Application->Title = MidStr(B,5,2); //山

Application->Title = StrLCopy(A.c_str(), B.c_str(), 4); //富士

}
0541デフォルトの名無しさん2005/04/24(日) 02:12:20
0542デフォルトの名無しさん2005/04/24(日) 02:47:27
1. API 関数の CharNext 関数と CharPrev 関数

文字数を調べる関数を作りました。

2. 文字列の文字数を調べる

1 バイト文字と 2 バイト文字が混在する文字列の文字数を返す関数です。

// 文字列の文字数を返す
// src : 文字列
int GetCharLength(const char* src)
{
if (src[0] == '\0')
return 0;

char* s;
int count = 1;

s = CharNext(src);

while (*s)
{
++count;
s = CharNext(s);
}

return count;
}
0543デフォルトの名無しさん2005/04/24(日) 03:15:20
API 関数の CharNext 関数と CharPrev 関数
0544デフォルトの名無しさん2005/04/24(日) 03:32:58
void __fastcall TForm1::FormCreate(TObject *Sender)
{


AnsiString ansiB = "富士山麓";


Caption = ansiB.SubString(5,4); //山麓


}
0545デフォルトの名無しさん2005/04/24(日) 08:50:53
 
0546デフォルトの名無しさん2005/04/24(日) 13:40:39
なんで荒れてるの?
0547デフォルトの名無しさん2005/04/24(日) 14:00:41
いつもの基地外さ
0548デフォルトの名無しさん2005/04/24(日) 14:58:23
ApplicationEventsのOnIdleイベントは例えばデュアルコアのCPUで片方が空いてるときに、発動しますか?
0549デフォルトの名無しさん2005/04/24(日) 15:16:42
春真っ盛り
0550デフォルトの名無しさん2005/04/24(日) 15:57:48
新規(他からの継承でない)クラス「DisplayClass」を定義しました。
このクラスのインスタンスをグローバル宣言しました。

で、DisplayClassのパブリックメンバに、Graphics::TBitmap *LoadPicBitmap;
と宣言。

フォームは一個だけIDEで作成し、On_CreateハンドラからDisplayClassのメンバ関数を呼び出し、
LoadPicBitmapにnewする。

で、Form1のOn_CloseハンドラでLoadPicBitmapをdeleteすると、ウィンドウを閉じた時に
不正終了してしまいます。

LoadBitmapを参照しているほかのイベントハンドラがまだ呼ばれるのかと思いました。

なんで、On_CloseハンドラではApplication->Terminate()することにして、
On_Destroyハンドラでdeleteすることにしたのですが、頻度は減りましたがやはり
たまに不正終了します。

どうやったら不正終了しないでLoadPicBitmapを解放できるでしょうか?
0551デフォルトの名無しさん2005/04/24(日) 17:13:02
Canvas->CopyRect()関数で、イメージサイズを変えるとあまり綺麗にコピーできないのですが、
もう少し綺麗にコピーできる方法はないでしょうか?
0552デフォルトの名無しさん2005/04/24(日) 18:11:20
>>548
OnIdleってそのアプリが処理するメッセージがないときに呼ばれるものだから、CPUの忙しさとは関係ないのでは。
CPUがどんだけ忙しくたって、キューにメッセージがなければそのアプリはアイドル状態って判断されるわけだし。
0553デフォルトの名無しさん2005/04/24(日) 19:04:23
CopyFileでサイズの大きいファイルをコピーすると、
コピー中は、プログラムが固まって操作できなくなるんだけど
これを回避する方法ってありますか?
0554デフォルトの名無しさん2005/04/24(日) 19:16:32
スレッド
0555デフォルトの名無しさん2005/04/24(日) 21:44:51
>>553
バッファ使うなりして自前でコピーしたら?
現在何%コピーできてるかとかの表示もできそう
だし。

ただ、正確にコピーできてるかファイル比較
したりする必要あるなら多少面倒っぽいかも。


ところでCopyFileの速度ってどうなの?
高速ファイルコピー専用のアプリも多いみたい
なんだけどファイルコピーが低速なのはエクスプロ
ーラ上だけ?


と、自分では何も確認してない俺がレスしときますね。
0556デフォルトの名無しさん2005/04/24(日) 23:57:34
>>554-555
どうもありがとうです。
なんとか、スレッドを使ってうまくいったです。
でも、コピー失敗するから、ウェイトとかファイル比較とか
結構ややこい。
高速確実にファイルコピーできる方法があったら、
俺も知りたいです(´・ω・`)
0557デフォルトの名無しさん2005/04/25(月) 00:34:43
Application->ProcessMessages();// 溜まっているイベントの処理
0558デフォルトの名無しさん2005/04/25(月) 03:14:22
TThreadでメインFormからThreadのExecuteメソッドが実行中であるかどうかを判別する方法を教えてください
0559デフォルトの名無しさん2005/04/25(月) 03:48:45
Executeの最初と最後で(ry
0560デフォルトの名無しさん2005/04/25(月) 05:46:28
C++Builderからsusieのpluginを利用するサンプルプログラムはありませんか?
0561デフォルトの名無しさん2005/04/25(月) 07:22:43
susieは元々C言語用では?
0562デフォルトの名無しさん2005/04/25(月) 07:52:21
>>433
Indyを入れると出るみたいです。
だれかIndyうまくインストールできた人居る?
0563デフォルトの名無しさん2005/04/25(月) 17:46:05
>> 560
C++Builder6 vol.2の本に載ってるよ
0564デフォルトの名無しさん2005/04/25(月) 17:49:05
IncYear関数を使う時、なんか特別にインクルードしないとダメですか?
0565本田2005/04/25(月) 20:34:16
>>560
>Spi Load
http://www.vector.co.jp/soft/win95/art/se064950.html
0566デフォルトの名無しさん2005/04/25(月) 21:58:36
>>564
ヘルプの「ユニット」ってやつのヘッダ。
VCLのヘッダは拡張子hppだから気をつけて。
0567デフォルトの名無しさん2005/04/26(火) 13:40:07
>>566
できました!
thx!
0568デフォルトの名無しさん2005/04/26(火) 15:48:32
C++Builder5で開発中の初心者です。

ScrollBoxについてなのですが、
これは直接文字を書き込むことはできないのでしょうか?
もしできるのであれば教えてください。
0569デフォルトの名無しさん2005/04/26(火) 17:30:01
>>568
>これは直接文字を書き込むことはできないのでしょうか?

「直接文字を書き込む」とは、
ScrollBox のどこにどう書き込みたいのか?
次第による。
0570デフォルトの名無しさん2005/04/26(火) 19:20:45
UTCを取得する関数ってありますか?
0571デフォルトの名無しさん2005/04/26(火) 19:28:42
>>570
::GetSystemTime(LPSYSTEMTIME);
じゃだめなのか?
0572デフォルトの名無しさん2005/04/27(水) 17:07:44
>>526
レスがかなり遅くなりましたがありがとうございます。
それで、やってみます。
0573デフォルトの名無しさん2005/04/27(水) 19:09:15
C++Builder1でTListViewにチェックボックスを付ける方法を教えてください
0574デフォルトの名無しさん2005/04/27(水) 20:35:18
>>573
最新のバージョンに更新する
0575デフォルトの名無しさん2005/04/28(木) 01:31:00
C++Builder6をインストして、
何の設定もしないままソース書いたんですが動きません。
どう設定すればよいか教えてください。
0576デフォルトの名無しさん2005/04/28(木) 01:43:31
>>575
そらまぁ、ソースを書いただけじゃ動くわけないな。
動いたらオカルトだ。

まともな回答が欲しかったらまともな質問しな。
どのようなソースを書いてどのようなオプションでコンパイルして
どのように実行したがどのような結果に終わったのか、
全て書け。
0577デフォルトの名無しさん2005/04/28(木) 01:55:57
どこが悪いのかわからんので重要そうなとこだけ書きます。

インクルードパス:C:\Program Files\Borland\CBuilder6\Include
ライブラリパス:C:\Program Files\Borland\CBuilder6\Lib
デバッグ用ソースパス:$(BCB)\source\vcl

#include <stdio.h>
main(){
printf("Hello, world.\n");
return 0;
}
これを実行すると、
[C++ エラー] Project1.cpp(3): E2209 インクルードファイル 'vcl.h' をオープンできない
[C++ エラー] Project1.cpp(6): E2303 型名が必要
[C++ エラー] Project1.cpp(6): E2034 'char *' 型は 'int' 型に変換できない
[C++ エラー] Project1.cpp(6): E2293 ) が必要
[C++ エラー] Project1.cpp(8): E2141 宣言の構文エラー

なんでvcl.hとかでてくるのか…
0578デフォルトの名無しさん2005/04/28(木) 02:06:37
int main(void){

にしてみたら?
0579デフォルトの名無しさん2005/04/28(木) 02:09:58
>>577

Windows アプリケーションとして、そういうコードを書いているの?
BCB 初心者かな?だとしたら間違い。

BCB6 立ち上げたら、

1) [ファイル] - [すべて閉じる]
2) [ファイル] - [新規作成] - [その他...]
3) 表示されたダイアログの新規作成タブからコンソール ウィザードをダブル・クリック
4) 更に表示されるダイアログであまり深い事を考えずに OK ボタンをクリック

の手順を踏む。

そうすれば main 関数のスケルトンが出てくるのでそれを編集する。

で、IDE 上からプログラムを実行すると、あっという間に終わって表示が消えるので、
最後に何か入力しないとプログラムを終われないようにしておくといい。
0580デフォルトの名無しさん2005/04/28(木) 02:10:17
>>578
だめでした。

インクルードパス:$(BCB)\include;$(BCB)\include\vcl
ライブラリパス:$(BCB)\Lib

で実行すると、
[リンカ 致命的エラー] Fatal: ファイル SYSINIT.OBJ が開けません
とでます。
0581デフォルトの名無しさん2005/04/28(木) 02:17:16
>>579
できました。
ありがとうございました。
0582デフォルトの名無しさん2005/04/28(木) 02:18:36
>>577
だから、分からんかったら全部書けって言ってるんだ。

そのプロジェクト、どういう手順で作成した?
それをはっきりさせて。

あと、「ファイル」→「新規作成」→「アプリケーション」で
新しいプロジェクトをつくって、なにもせずそのまま実行してごらん。
それでエラーが出るかどうか報告して。
0583デフォルトの名無しさん2005/04/28(木) 02:33:59
>>582
いままで立ち上げてUnit1.cppに打ってました。
何もせず実行すると577で書いたエラーがでます。
0584デフォルトの名無しさん2005/04/28(木) 04:48:43
TImageのPicture->Bitmapに画像を読み込みました。そしてPicture->Bitmap->SaveToFileでセーブしてみるときちんと
画像が書き込まれるのに、画面上でTImageの中に画像が表示されません。TImageのVisibleはtrueになっています。
表示されない原因として何が考えられるでしょうか?
0585デフォルトの名無しさん2005/04/28(木) 05:48:28
なんか問題文みたいな書き方だなw

HeightとWidthの値が物凄く小さくなってるとか?
0586デフォルトの名無しさん2005/04/28(木) 08:01:45
           
0587デフォルトの名無しさん2005/04/28(木) 09:34:27
ビットマップファイルを80枚くらい開くとメモリが十分余っているにもかかわらず、EOutOfResourcesエラーが出るのですが、これはWindowsの制限から来るのでしょうか?
OSはXPです。
0588デフォルトの名無しさん2005/04/28(木) 11:54:32
C++Builder1でTListViewにチェックボックスを付ける方法を教えてください
0589デフォルトの名無しさん2005/04/28(木) 12:12:51
>>588
>>574
0590デフォルトの名無しさん2005/04/28(木) 12:43:37
C++Builder1でTListViewにチェックボックスを付ける方法を教えてください
0591デフォルトの名無しさん2005/04/28(木) 17:10:49
>>587
【VCLリファレンスより】
  EOutOfResources は,Windows ハンドルを割り当てることができなかったときに送出される例外クラスです。

メモリが十分ある事が関係するとは思えないが?
0592デフォルトの名無しさん2005/04/28(木) 19:39:51
>>590
>>574
0593デフォルトの名無しさん2005/04/29(金) 05:29:49
 
0594デフォルトの名無しさん2005/04/29(金) 12:42:32
>>550
どこで new DisplayClass() してるの?
Form と生成消滅のタイミングが同じなら
DisplayClass は Form の protected/private メンバにしたほうがよくない?
で、「OnCreate(Form::FormCreate) で new DisplayClass()」してね。
Form のコンストラクタで new したり、
Form に埋め込むのはやめたほうがいいよ。
VCL は普通の C++ じゃないからね。
05955502005/04/29(金) 13:41:41
>>594

関数の外で

DisplayClass Display;

とグローバル変数として宣言しています。
これがいけないのでしょうか…
0596デフォルトの名無しさん2005/04/29(金) 15:40:54
>>595
なんでグローバルという気もするけど、そっちは置いといてよさそう?

自分で TBitmap を割り当てているようなコントロールの
Bitmap に LoadPicBitmap を割り当てたとか?
...->Bitmap->Assign(Display.LoadPicBitmap);
↑ほんとはこう書かないといけないのに
...->Bitmap = Display.LoadPicBitmap;
↑こう書いているとか?
どこかのコントロールで二度目のdeleteが発生してる可能性のほうが高いのかな。
0597デフォルトの名無しさん2005/04/29(金) 16:03:21
>>595
んん?
Application->Terminate() って、最近書いた記憶ないや
これもなんか変?
>MainForm プロパティを使うと,アプリケーションのメインウィンドウとして動作するフォームを指定できます。メインフォームは,アプリケーションのメインプログラムで最初に作成されるフォームです。メインフォームを閉じるとアプリケーションは終了します。
05985502005/04/29(金) 16:56:49
Application->Terminate()は、これを書いておかないとなぜか一旦閉じたウィンドウが
復活してしまうのです。

他のハンドラからShowプロパティが呼ばれているのだと思い、destroyedというフラグ変数を
OnCloseハンドラで立て、OnMouseDownなど、コードのある全てのハンドラの先頭に
if(destroyed)return;
と書いてもまだ復活してしまうのです。

なぜなんでしょう?
05995502005/04/29(金) 17:03:58
Showプロパティ->Showメソッド
06005942005/04/29(金) 17:47:36
ずるずると怪しいところが増加してます
コードの書き方がたいへんユニークみたいやなあ
それが原因ぽい
勇気をもってどっかにコード一式上げてみるかぃ
06015502005/04/29(金) 18:02:11
どうやら、これみたいです。
http://www.borland.co.jp/qanda/delphi/d0000150.html

現在のプログラムはoncreateがそのままメインルーチンに突入する仕組みになっているので。

onClickを契機にメインルーチンに突入するように改造するか…
06025942005/04/29(金) 18:38:37
OnCreateでは通常はオブジェクトの生成と初期設定のみ記述だよ
OnCreate で失敗すると、Form のロードに失敗したりするからねえ
がんがー
0603デフォルトの名無しさん2005/04/29(金) 21:14:39
>>601
コード挙げてみ?
06045502005/04/30(土) 00:25:45
できました

onClickを契機にメインルーチンを組んだらonCloseでインスタンスを解放できました。
Application->Terminate()も記述しないでプログラムが終了しました。

ただまれに「フォームが復活」することがあったのですが、
onClickからのルーチンを、とにかくonCloseで立てる「destroyed」フラグが
立っていたら作業をすぐやめる、ように書き直したら現象が出なくなりました。

ありがとうございました。

ソース晒しですが、とても恥ずかしい種類のプログラム(要するにエロゲ)なので
ご勘弁下さい…
0605デフォルトの名無しさん2005/04/30(土) 03:04:48
まあ、なんて破廉恥な
0606デフォルトの名無しさん2005/04/30(土) 08:23:30
たぶん>>604のコードはとっても恥ずかしいコードなんだな

void __fastcall Sex::Incert(int WomanNo)
{
    AnsiString str = "ずぶっ、ぬぷぷぷぷ";
        .
        .
        .
}   
0607デフォルトの名無しさん2005/04/30(土) 08:34:03
>>604
エロゲで恥ずかしいのはテキストやCGであって
エンジン部分ではないと思うぞ・・・。
まさかソースに直接エロ台詞が書かれてるわけでもあるまいに。
■ このスレッドは過去ログ倉庫に格納されています