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

C++Builder相談室 Part13

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

過去スレ・関連サイトは>>2-6あたり。
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であって
エンジン部分ではないと思うぞ・・・。
まさかソースに直接エロ台詞が書かれてるわけでもあるまいに。
0608デフォルトの名無しさん2005/04/30(土) 11:16:15
C++ BuilderのGroupBoxはVC++ .NETのそれと
見た目が違いますね。(XPスタイル適用時)
VC++ .NETと同じ様にするにはどうすればいい
でしょうか
06095942005/04/30(土) 12:04:04
>>606
それを言うならInsertぢゃ…

>>604
アプリ終了時にオブジェクトがアンロードされる順番が見えていないのでこまっとるのだろう
終了処理に入る前に自分が所有していないオブジェクトへの参照は全部 NULL にしておく
各イベント処理は destroyed を使うのではなくて
if (RefMainForm/* != NULL*/) { 処理; }
みたいにしてくれろ
参照を外す、NULL 放り込むという基本動作が大事だなあ

ぢゃ、そういうことで
0610デフォルトの名無しさん2005/04/30(土) 18:55:18
UNICODE のアプリケーションを作るにはどうすればいいですか?
やってみたら WinMain が未解決になって対処法がわかりません。

#include <windows.h>
#include <tchar.h>

int WINAPI wWinMain(HINSTANCE, HINSTANCE, PTSTR, int)
{
return 0;
}
0611デフォルトの名無しさん2005/04/30(土) 19:52:47
>>610
それMFC?
C++BuilderならWideStringやstd::wstringで書きまくるべし
Win9xはごく一部のUnicode関数しか実装していないのよねぇ
06126102005/04/30(土) 20:02:59
MFCではないです。
知りたいことだけを言えば、
『エントリポイント関数を、 WinMain から wWinMain にするには
どうすれば良いか?』ということです。
0613デフォルトの名無しさん2005/04/30(土) 22:25:37
>>612
プロジェクトオプション→ディレクトリ/条件タブ→条件定義に「_UNICODE」を追加。
又はオプションソースを開いて、コマンドラインオプションに「-WU」を追加。

#include <windows.h>
#include <tchar.h>

extern "C" int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
  return 0;
}
06146102005/05/01(日) 00:02:04
>>613
解決しませんでした。
メイク可能なプロジェクトファイル一式をうpしてくれたら幸いです。
0615デフォルトの名無しさん2005/05/01(日) 00:29:48
あれ?じゃあオプションソースに「c0w32.obj」があったら「c0w32w.obj」に書き換えて。
BCB上で書き換えても反映されないかもしれないから、BCB終了して適当なエディタで。

それでもできなければうpする。
06166102005/05/01(日) 00:46:25
>>615
無理でした。

メイクファイルを作成して、そのc0w32.objを書き直した場合は成功しますが、
手間がかかるので、より簡単な方法があるなら知りたいです。
0617デフォルトの名無しさん2005/05/01(日) 00:58:20
うちでは出来てるからなぁ。お手上げ。
06186102005/05/01(日) 01:31:58
いまいちよくわからないけど、教えられたことをいじりまくっていたら、
開発環境から UNICODE モードでコンパイルできるようになりました。
thx
0619デフォルトの名無しさん2005/05/01(日) 09:32:45
C++ Builder6 使っているんですが プログラム中で
aを√したい場合と aをcos場合どうすればいいでしょうか?
sqrt(a) cos(a) してもうまくできないです。
0620デフォルトの名無しさん2005/05/01(日) 09:35:15
ちなみにcos
a=float cos(float a);
でもやってみたのですが、ぜんぜんうまくいきませんでした。
0621デフォルトの名無しさん2005/05/01(日) 09:54:52
CppWebBrowserでブラウザを作ったけど、
現在表示されてるページのURLをEditに表示するには
どうしたらいいのでしょうか。
0622デフォルトの名無しさん2005/05/01(日) 10:18:54
memo のなかに memo1というのが常に表示されているのですが、これを消したいのですが
どうすればいいですか?
0623デフォルトの名無しさん2005/05/01(日) 11:48:54
>>619-620
ヘルプを読む。
それでも分からなかったら、
自分の書いたソース晒して何がどう上手くいかなかったのか具体的にかけ。

>>621
TCppWebBrowser::LocationURL

>>622
TMemo::Lines

ってか人に聞く前にヘルプちゃんと読め。
0624デフォルトの名無しさん2005/05/01(日) 11:57:11
タスクバーを除くデスクトップサイズを取得するにはどうしたらよいのでしょうか?
0625デフォルトの名無しさん2005/05/01(日) 11:58:06
ここの回答者もヘルプ機能の一種ですから、
ここで質問することとヘルプを参照することはイコールです。
0626デフォルトの名無しさん2005/05/01(日) 12:09:22
>>624
TMonitor::WorkareaRect
0627デフォルトの名無しさん2005/05/01(日) 12:09:24
>>624
TRect r;
SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0);//rにディスプレイのタスクバーを除く
      //デスクトップ領域が代入される

int width = r.Right - r.Left;  // Width
int height = r.Bottom - r.Top; // Height
06286242005/05/01(日) 12:55:54
親切な回答、ありがとうございます。
0629デフォルトの名無しさん2005/05/01(日) 13:21:05
次回作は?
0630デフォルトの名無しさん2005/05/01(日) 15:03:05
>>622
オブジェクトインスペクタでMemo1、Linesプロパティの右の...をクリック。
文字列リストの設定ダイアログで"Memo1"の文字列を削除。
0631デフォルトの名無しさん2005/05/01(日) 15:53:18
>>629
っ[BCB9]
0632デフォルトの名無しさん2005/05/01(日) 17:13:00
次回作っつーと映画みたいだな
0633デフォルトの名無しさん2005/05/01(日) 19:30:15
ボタンを押して、TabControlでタブを追加するやり方って
どうやるのですか?
0634デフォルトの名無しさん2005/05/01(日) 21:29:17
TabControlを使ってます。TabControl上にいくつかコンポーネントを
つけました。

buttonを押すとタブを自動的にひとつ追加することはできたのですが、
新しくできたタブ上にもともとあったコンポーネントと同じものを追加するにはどうすればいいのでしょうか。

(簡単に言うとTabControl上にEditがあり、buttonを押すとタブが1つ増えて、新しくできたそのタブ上にもEditが自動的にできるようにしたい、ということでです。)
0635デフォルトの名無しさん2005/05/01(日) 21:51:05
>>634

VCLリファレンスヘルプから引用
>TTabControl は異なるコントロールを格納する
>複数のページを持たない単一のオブジェクトです。
>現在のタブが変わると,タブコントロールは変更を
>反映するために OnChange イベントハンドラで
>直接コントロールの内容を更新しなければなりません。
引用終わり

>新しくできたタブ上にもともとあったコンポーネントと同じものを追加する
不可能。TPageControlのことか?
0636デフォルトの名無しさん2005/05/01(日) 22:30:43
>>635
あ、間違えました。ご指摘のとおりTPageです
0637デフォルトの名無しさん2005/05/01(日) 23:43:04
>>636
TPageなんてコンポーネントは存在しないぞ。
質問するときゃコンポーネント名くらい正確に書け。

複数のタブシートで同種のコンポーネントを使いたいなら
それこそTTabControlを使えばいい。
TPageControlは動的にページを追加するような使い方はあまりしない。

どうしてもやりたかったら追加したいコンポーネントをnewしてシート上に
配置するしかない。
複数のコンポーネントを扱うならフレームにまとめておけば一発で配置できる。

しかし、TTabControlを使うことを考えたほうが利口だとは思う。
0638デフォルトの名無しさん2005/05/02(月) 05:26:20
StatusBarの中にProgressBarを表示したいのですが、どうしたら出来るのでしょうか?
0639デフォルトの名無しさん2005/05/02(月) 06:49:08
ProgressBar->Parent = StatusBar
位置はてきとーに調整
0640デフォルトの名無しさん2005/05/02(月) 06:50:26
C++Builderで作ったGUIはなんか
VisualC++でつくったのよりキビキビしてない気がするんですが
気のせいですか?
0641age2005/05/02(月) 08:48:49
気のせい
0642デフォルトの名無しさん2005/05/02(月) 09:32:53
VCLはメッセージをいろいろ処理してるのでもっさりしてるようです
0643デフォルトの名無しさん2005/05/02(月) 11:34:45
>>640
パソコンをグレードアップしろ。2GHz未満のCPUなぞ使うな。
0644デフォルトの名無しさん2005/05/02(月) 12:39:06
>>643
2GHzのCeleronは1.4GHzのCeleronより早いですか?
0645デフォルトの名無しさん2005/05/02(月) 12:49:19
>>644
CPU自体の速度はそんなに変わらないだろうが、メモリ周りが明らかに速い。
0646デフォルトの名無しさん2005/05/02(月) 13:00:08
>>640
GUIでC++BuilderとVCのスピードの差などない。
本当にC++Builderで作ったのか?
Javaじゃないのか?
0647デフォルトの名無しさん2005/05/02(月) 13:26:23
>>646
ワロタ
0648デフォルトの名無しさん2005/05/02(月) 13:46:25
>>646
Javaはおそいねぇ。個人的にはこれがクライアントアプリケーションで使われなくなった最大の原因だと思うのだが(言語仕様的には好きなんだけどね)
0649デフォルトの名無しさん2005/05/02(月) 16:03:11
C++Builder1でTListViewにチェックボックスを付ける方法を教エロ
0650デフォルトの名無しさん2005/05/02(月) 16:26:55
げ、TEditとかTLabeledEditにOnMouseWheel系が無いのかよ。
マンドクセ
0651デフォルトの名無しさん2005/05/02(月) 16:39:33
>>649
TListViewを継承して作ったらいいんじゃない?
0652デフォルトの名無しさん2005/05/02(月) 20:51:46
ProgressBar1->Parent = StatusBar1;
0653デフォルトの名無しさん2005/05/02(月) 20:59:33
ProgressBar1->Parent = StatusBar1;

ProgressBar1->Top = 1;
ProgressBar1->Left = 1;
0654デフォルトの名無しさん2005/05/02(月) 21:06:09
ProgressBar1->Parent = StatusBar1;
ProgressBar1->Top = 2;
ProgressBar1->Left = 2;
0655デフォルトの名無しさん2005/05/02(月) 21:35:51
実行後に、ボタンを押して、Memoを増やす方法ってどうやるのですか?
はじめはフォームにButton1とMemo1がありますが、実行後に
Button1を押すとMemo2、Memo3・・・を表示することです
0656デフォルトの名無しさん2005/05/02(月) 21:45:23
動的にコントロールを作成する

C++ Builderで、実行時にTEditなどのコントロールを動的に作成するには、以下のようにします。
Parentを必ず設定する必要があります。

TEdit *DynamicEdit = new TEdit(Form1);
DynamicEdit->Parent = Form1;
DynamicEdit->Name = "DynamicCreateTEdit";
DynamicEdit->Left = 100;
DynamicEdit->Top = 100;
0657デフォルトの名無しさん2005/05/02(月) 21:47:20
コンポーネントの動的な作成方法



コンポーネントを動的に作成するにはどうすればいいのでしょうか?


下記のように記述すれば可能です。
注意として必ず,Parentプロパティに親となるコンポーネント(Form,Panel等)を 指定するようにしてください。
これにより,不特定多数のコンポーネントを使用したり,配列でコンポーネントをコ ントロールできるようになります。


//ユニットのヘッダのprivateに以下の一行を記述
TLabel *labels[9];

//以下の記述をボタンのクリック時のイベントに記述
//また,Form1にPanel1というパネルを事前にはっておいてください

void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int i=0;i<=9;i++)
{
labels[i]=new TLabel(Form1);
labels[i]->Top=i*20;
labels[i]->Caption="Label"+IntToStr(i);
labels[i]->Parent=Panel1;
}
}
0658デフォルトの名無しさん2005/05/02(月) 21:49:12
http://cgi38.plala.or.jp/flash100/Accesslog.cgi
こういうヤツの作り方ってどうやるんですかね?
0659デフォルトの名無しさん2005/05/02(月) 21:58:32
CGIの作り方ならWEBプログラミング板でないかい
0660デフォルトの名無しさん2005/05/02(月) 22:46:47
>>657ありがとうございます。それとCppWebBrowserも
動的に増やしたいのですが、TCppWebBrowserってしたらエラーがでたのですが・・
0661デフォルトの名無しさん2005/05/02(月) 23:06:17
TCppWebBrowser *CppWebBrowser = new TCppWebBrowser(this);
0662デフォルトの名無しさん2005/05/02(月) 23:10:04
 
TCppWebBrowser *CppWebBrowser = new TCppWebBrowser(this);

だったのを

TCppWebBrowser *CppWebBrowser = new TCppWebBrowser(Owner);
0663デフォルトの名無しさん2005/05/03(火) 00:54:51
>>660
TCppWebBrowserのParentの設定は、CppWebBrowser1->TOleControl::Parent = 〜
ってしないとだめ。
0664デフォルトの名無しさん2005/05/03(火) 00:56:40
って別にParentの設定でエラーが出たとは書いてないか。たぶんそうだと思うんだけど。
エラーが出たら、最低限エラーメッセージを書こうぜ。
0665デフォルトの名無しさん2005/05/03(火) 01:06:53
PageControlでタブシートを1から2へ切り替えたとき
1のコンポーネントが前に出っ放し。
1のコンポーネントが邪魔で2のコンポーネントが
見えない・・・・・。
誰か助けて・・・・
0666デフォルトの名無しさん2005/05/03(火) 01:28:50
>>665
シートの切り替えはどうやってる?
0667デフォルトの名無しさん2005/05/03(火) 08:18:53
切り替えるというか・・・自分の説明不足でした。スマソ。
PageControl上にCppWebBrowserを乗っけて、実行後
新しいウィンドウで開くを選ぶと別のタブが自動的にできるように
してある。ただ、新しいタブ上のCppWebBrowserが隠れて見えない。
それに新しいタブ上のCppWebBrowserで新しいウィンドウで開くを選ぶと
IEが起動してしまいます・・・。
0668デフォルトの名無しさん2005/05/03(火) 08:29:06
2つのTCppWebBrowserを用意して、
CppWebBrowser1を表示用のブラウザ、
CppWebBrowser2を、
表示されないブラウザ用とします。(CppWebBrowser2の
Width, Height を0にしておきます。)

そして、CppWebBrowser1のOnNewWindow2で、
新しいページを一度CppWebBrowser2に表示させ、
そのURLを所得して、
CppWebBrowser1からNavigateすることで、
新しいウィンドウを開かずに、表示することが
できると思います。

コードだと

void __fastcall TForm1::CppWebBrowser1NewWindow2(TObject *Sender,
LPDISPATCH *ppDisp, TOLEBOOL *Cancel)
{
*ppDisp = CppWebBrowser2->Application;
}
//------------------------------------------------------------------------ - --
void __fastcall TForm1::CppWebBrowser2NavigateComplete2(TObject *Sender,
LPDISPATCH pDisp, TVariant *URL)
{
CppWebBrowser1->Navigate(CppWebBrowser2->LocationURL);
}

という感じになります。
他にも方法はいろいろあるのかも知れません。
0669デフォルトの名無しさん2005/05/03(火) 11:36:36
>>667
(´-`).。oO(ただ単にActivePageが切り替わってないだけじゃ…)
0670デフォルトの名無しさん2005/05/03(火) 12:01:46
>>668
>>669
ありがとうございます。しかしなぜかできませんでした。
たしかに、ActivePageを切り替えてるのですが・・・


タブブラウザ風にしたいのです。
void __fastcall TForm1::CppWebBrowser1NewWindow2(TObject *Sender,
LPDISPATCH *ppDisp, VARIANT_BOOL *Cancel)
{

TTabSheet *TabSheet = new TTabSheet( this );
TabSheet->PageControl = PageControl1;
TabSheet->Parent=PageControl1;
PageControl1->ActivePage = TabSheet;
TCppWebBrowser *CppWebBrowser=new TCppWebBrowser(this);
CppWebBrowser->TOleControl::Parent=TabSheet;
CppWebBrowser->Align=alClient;
*ppDisp = CppWebBrowser->Application;
としたのですが・・。

なぜかCppWebBrowser1が常に一番先頭に出てきてしまいます。
新しいタブ上のCppWebBrowserはCppWebBrowser1でほとんど
隠れてしまいますが、端っこだけ見れます。そこで
新しいウィンドウで開くを選ぶと IEが起動してしまうのですけども・・。

どうもCppWebBrowser1以外は新しいウィンドウで開くを選ぶと IEが起動
してしまいます。


0671デフォルトの名無しさん2005/05/03(火) 12:28:49
>>670
うちでは隠れなかったので、隠れるというのは分からないけど、
IEが起動するのは、単に新しく作ったCppWebBrowserのOnNewWindow2イベントを設定してないからでは?
0672デフォルトの名無しさん2005/05/03(火) 13:17:45
>>671
動的に作ったCppWebBrowserのOnNewWindow2イベントの設定ってどうやれば
いいのですか?CppWebBrowserは実行前は1つしかありません・・・
0673デフォルトの名無しさん2005/05/03(火) 13:22:49
例えば>>670のイベントを使うなら、
CppWebBrowser->OnNewWindow2 = CppWebBrowser1NewWindow2;
ってすればいい。
0674デフォルトの名無しさん2005/05/03(火) 13:33:40
>>673
やっとできました。ありがとうございます!
0675デフォルトの名無しさん2005/05/03(火) 14:04:06
必要ないダイアローグをプロジェクトから削除したら、が表示されなくなった。
「フォーム作成中にエラーが発生しました。継承元の'TOKBottomDlg'がみつかりません」とのこと。
必要なダイアローグ、表示するにはどうすればいいのでしょう?
0676デフォルトの名無しさん2005/05/03(火) 14:04:35
必要ないダイアローグをプロジェクトから削除したら、必要なダイアローグが表示されなくなった。
「フォーム作成中にエラーが発生しました。継承元の'TOKBottomDlg'がみつかりません」とのこと。
必要なダイアローグ、表示するにはどうすればいいのでしょう?
0677デフォルトの名無しさん2005/05/03(火) 14:44:16
メインフォーム上のPanelをalign=clientでフォームいっぱいまでのばしているソフトで、
例えばパネルの大きさを100*100にしたいときに、メインフォームの大きさはどのように
して計算すればよいのでしょうか?
0678デフォルトの名無しさん2005/05/03(火) 15:22:32
Screen->Width
GetDeviceCaps(Canvas->Handle, HORZRES);
0679デフォルトの名無しさん2005/05/03(火) 15:24:05
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Lines->Clear();

Memo1->Lines->Add(Format("物理画面の幅 = %d mm",
ARRAYOFCONST(((int)GetDeviceCaps(Canvas->Handle, HORZSIZE)))));
Memo1->Lines->Add(Format("物理画面の高さ = %d mm",
ARRAYOFCONST(((int)GetDeviceCaps(Canvas->Handle, VERTSIZE)))));
Memo1->Lines->Add(Format("ディスプレイの幅 = %d pixels",
ARRAYOFCONST(((int)GetDeviceCaps(Canvas->Handle, HORZRES)))));
Memo1->Lines->Add(Format("ディスプレイの高さ = %d pixels",
ARRAYOFCONST(((int)GetDeviceCaps(Canvas->Handle, VERTRES)))));
Memo1->Lines->Add(Format("各ピクセルのビットの数 = %d",
ARRAYOFCONST(((int)GetDeviceCaps(Canvas->Handle, BITSPIXEL)))));
}
0680デフォルトの名無しさん2005/05/03(火) 16:40:19
>>677
フォームのClientWidthとClientHeightを100にすれば勝手に必要な大きさになるけど、
そうじゃなくて、ClientWidthとかを設定しないで、計算で求めたいということ?
0681デフォルトの名無しさん2005/05/03(火) 19:20:30
ProgressBar1->Parent = StatusBar1;
ProgressBar1->Top = 2;
ProgressBar1->Left = 2;
0682デフォルトの名無しさん2005/05/04(水) 04:09:57
MediaPlayerではコーデックが入っていてもmp3は再生できないのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています