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

C++Builder相談室 Part12

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

過去スレ・関連サイトは>>2-6あたり。
0669デフォルトの名無しさんNGNG
>>668
>>646みたいにTFileStream使ったら?
0670デフォルトの名無しさんNGNG
>>669
この方法でできました。
ありがとうございました。

TFileStream *filestream;
AnsiString as_fname;
as_fname = "C:\sample.lzh";
filestream = new TFileStream(as_fname,fmCreate);
IdHTTP1->Get("http://www.sample.lzh",filestream);
// ファイルを閉じる
delete filestream;
filestream = NULL;
0671デフォルトの名無しさんNGNG
Win32APIのヘルプってどこに入ってたっけ??
0672デフォルトの名無しさんNGNG
>>671
・http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
・Borland Shared\MSHelp
あとCDのどこかに日本語ヘルプが転がってる。

鮮度はPSDK>>>越えられない壁>>>付属英語ヘルプ>>付属日本語ヘルプ
0673デフォルトの名無しさんNGNG
いやCDに入ってる日本語ヘルプの場所を聞いてたんだがー
まあもうみつかったからいいけどな
0674デフォルトの名無しさんNGNG
CppWebBrowserで画像のURLを直接入力し、表示することはできました。
このPNG画像をBMPの形式でImageに変換するにはどうしたらいいのでしょうか?
画像を使用(加工)する許可はいただいています。

WideString w = WideString(Edit1->Text);
CppWebBrowser1->Navigate(w);

このようなプログラムです。
0675デフォルトの名無しさんNGNG
GLDPNGとか
0676デフォルトの名無しさんNGNG
CppWebBrowser使うんだったらCOM制御か?
0677デフォルトの名無しさんNGNG
BCB6Proを使っています。

CPU使用率を計測するプロを作ろうとしたんですが、

  PdhOpenQuery(NULL, 0, &hQuery);

としたところ、

[C++ エラー] Unit1.cpp(27): E2015 '__stdcall PdhOpenQueryA(const char *,unsigned long,void * *)' と 'PdhOpenQueryA(void *,unsigned long,void * *)' の区別が曖昧

と出ました。
ヘッダファイルの中の定義の部分でもうこうなっちゃってると思うんですが、
なんとかこれを回避する方法はないものでしょうか?
0678デフォルトの名無しさんNGNG
プロ?
これでも使ってみれば
http://www.aldyn.ru/products/cpu_usage/

CollectCPUData; //CPU使用率取得
begin
for i:=0 to GetCPUCount-1 do //マルチプロセッサならその数ループ
MInfo.Lines[i]:=Format('CPU #%d - %5.2f%%',[i,GetCPUUsage(i)*100]); //GetCPUUsage(CPU_NO)が使用率
end
0679デフォルトの名無しさんNGNG
同じBCB6Proだけどエラーはでないな
0680デフォルトの名無しさんNGNG
BCB5でもやってみたけどエラー出なかった
#include <pdh.h>してる?
0681677NGNG
#include <pdh.h> と

PDH_STATUS PdhOpenQuery(
IN LPVOID Reserved,
IN DWORD UserData,
IN HQUERY *hQuery);

は記述しています。
両方とも.hに記述してますが、いいんですよね?

>>678は今DLしましたんで、中身を見てみます。ありがとうございました。
0682デフォルトの名無しさんNGNG
その部分のソースを

HQUERY hQuery;
HCOUNTER hCounter;
PDH_FMT_COUNTERVALUE FmtValue;

PdhOpenQuery(NULL, 0, &hQuery);
PdhAddCounter(hQuery, "\\Process(notepad#0)\\% Processor Time", 0, &hCounter);

Memo->Lines->Add("計測開始...\n");
PdhCollectQueryData(hQuery);

Sleep(10000); /* 十秒間待つ */

PdhCollectQueryData(hQuery);
Memo->Lines->Add("計測終了...\n");

PdhGetFormattedCounterValue(hCounter, PDH_FMT_DOUBLE, NULL, &FmtValue);
Memo->Lines->Add(FmtValue.doubleValue);

PdhCloseQuery(hQuery);

以上です。
フォームにはボタンとメモを貼ってあります。
あと、.hに追加したのは>>681の通りです。
0683デフォルトの名無しさんNGNG
>>681
>PDH_STATUS PdhOpenQuery(
>IN LPVOID Reserved,
>IN DWORD UserData,
>IN HQUERY *hQuery);
これイラネ
0684デフォルトの名無しさんNGNG
>>683
なんてこったい……(泣

ありがとうございました。
やったらできました。ほんとすいません。
0685デフォルトの名無しさん05/01/17 10:29:18
実行時パッケージのチェックをはずして
CordGuardにチェック入れてると
プログラムが正常に終了しないんですがなぜ?
0686age05/01/17 11:27:55
>>685
これのこと?
http://www.sfdata.jp/cbuilder/htdocs/msg26618.html
http://www.sfdata.jp/cbuilder/htdocs/msg26619.html
http://www.sfdata.jp/cbuilder/htdocs/msg26620.html
0687デフォルトの名無しさん05/01/17 11:29:43
メインプログラムを終了して、
DLLだけ動かすというのは可能でしょうか?
0688デフォルトの名無しさん05/01/17 11:37:39
>>687
不可能じゃない?
いや、WinMainループを持ったDLLをCreateProcessしたら・・・なんつって
068968505/01/17 11:50:31
BCB6ProユーザーはUpdate#4は入れないのが常識なのでしょうか?
0690デフォルトの名無しさん05/01/17 11:55:02
>>688
やはり無理ですか。
メインプログラムのexeを新しいものに差し替えたい場合は、
別プログラムを呼び出してから、メインプログラムを終了して、
別プログラムでメインプログラムのexeを差し替えて、
別プログラムでメインプログラムを起動みたいな
感じでやればいいのでしょうか?
わかりにくい文章で申し訳ない…
0691デフォルトの名無しさん05/01/17 13:42:56
>>690
上の自動Updateのことかな?
私の知っている自動Uploadが付いているアプリケーションはUpdate専用のexeがあるね
TabfolderっていうのとLilithっていうサウンドプレイヤー
0692デフォルトの名無しさん05/01/17 13:58:18
691>>上の自動Updateのことです。
ご紹介いただいたアプリを落として、動きを見てみたのですが、
Update専用のexe使ってやるのが、割と簡単みたいですね。
このアプリと同じような動きするように作ってみます。
ありがとうございました。


0693デフォルトの名無しさん05/01/17 14:13:15
TComboBoxってフォントのサイズや種類によって高さが変わるのですが、TPanelとか他のコントロールみたいに
フォントが変わっても高さが変わらないようにする方法を教えてください
0694デフォルトの名無しさん05/01/18 00:58:30
>>693
ComboBoxのハンドルをGetDCをちゅかってDCを取得
で、TCanvasを生成してそのハンドルに取得したDCを設定。
後はCanvasに直接描画。
たぶんこれで変わらんと思う。
しらんけど。
0695デフォルトの名無しさん05/01/18 13:36:15
左側に「履歴」「デスクトップ」「マイコンピュータ」「マイネットワーク」が表示されるタイプのファイル選択ダイアログを表示する方法を教えてください。
0696デフォルトの名無しさん05/01/18 13:39:33
>>694
んなことするならオーナードローするわぼけが!!
0697デフォルトの名無しさん05/01/18 14:02:12
>>695
http://www3.big.or.jp/~schaft/program/getopenf/getopenfC.html
0698デフォルトの名無しさん05/01/18 14:51:12
>>695
TOpenDialogとどう違うの?
0699デフォルトの名無しさん05/01/18 14:55:10
>697
さんくすです。できました。
0700デフォルトの名無しさん05/01/18 15:04:56
>698
TOpenDialogでも、左側に「履歴」「デスクトップ」「マイコンピュータ」「マイネットワーク」を表示できるんですか?
0701デフォルトの名無しさん05/01/18 15:11:35
>>697
ダイアログが開かないです(ノД`。)
0702デフォルトの名無しさん05/01/18 15:48:17
>>700
BCB6+W2Kの環境だが、普通にTOpenDialogを貼り付けてOpenDialog1->Executeで
「履歴」「デスクトップ」「マイドキュメント」「マイコンピュータ」「マイネットワーク」が表示されるけど。
TOpenDialog.OptionsEx参照。

「マイドキュメント」が要らないという話ならわからないけど。
0703デフォルトの名無しさん05/01/18 21:05:31
>>703
音声ボリュームの上げ下げは
どのようにすればよいのでしょうか?
0704デフォルトの名無しさん05/01/18 22:09:54
音声のボリュームを上げ下げします。
0705デフォルトの名無しさん05/01/19 00:03:17
>>701
HWNDの引数は

HWND hwnd = NULL;
ofn.hwndOwner = hwnd;
とせずに、そのまま
ofn.hwndOwner = NULL;
とした方がいいかも
0706デフォルトの名無しさん05/01/19 09:04:15
>>703

オーディオのコントロール

ビデオだけではなく音も流さなければなりません、IBasicControl インターフェイスは Volume と Balance のプロパティをサポー トします。このアプリケーションではスライダ コントロール slVolume からボリュームをコントロールします。

Private Sub slVolume_Change()
' スライダの値をボリュームにセット
If Not g_objMediaControl Is Nothing Then
On Error Resume Next ' オーディオのない場合
g_objBasicAudio.Volume = slVolume.Value
End If
End Sub
0707デフォルトの名無しさん05/01/19 09:06:42
DirectMusicの音量調節(MIDI) しゅう さん 2004年12月29日(水)

MIDIファイルをDirectMusic(DirectX9)で再生しているのですが・・・その音量調節ができな くて困っています。
いろいろと調べてやってはみたものの・・・処理は成功するけど音量は変わってない・・・とい う現象です。
SetGlobalParamによる設定は下記の通りにやってみました。
アドバイスよろしくお願いします。

VC++.Net:DirectX9(Oct)

<参考ソース>
hr = CoCreateInstance(CLSID_DirectMusicLoader, NULL,
CLSCTX_INPROC, IID_IDirectMusicLoader8, (void**)&m_pLoader);
//パフォーマンスの作成
hr = CoCreateInstance(CLSID_DirectMusicPerformance, NULL,
CLSCTX_INPROC, IID_IDirectMusicPerformance8, (void**)&m_pPerformance);
//パフォーマンスとシンセサイザーの初期化
hr = m_pPerformance->InitAudio(NULL, NULL, NULL,
DMUS_APATH_SHARED_STEREOPLUSREVERB, 64, DMUS_AUDIOF_ALL, NULL);

long volume = 1000;
hr = m_pPerformance->SetGlobalParam(GUID_PerfMasterVolume, (void*)&volume, sizeof(volume));
0708デフォルトの名無しさん05/01/19 13:01:46
DBRichEditの内容をRichEditにコピーする方法をどなたか教えて下さい。
クリップボード経由では出来ますが、なんだかな〜
よろしくお願いいたします。
0709デフォルトの名無しさん05/01/19 15:21:12
Lines->Assign()じゃだめ?
0710デフォルトの名無しさん05/01/19 17:08:33
RichEdit1->Lines->Assign(DBRichEdit1->Lines);
とするとLinesにアクセスできないとエラーが出ます。
0711デフォルトの名無しさん05/01/19 17:27:43
もしかして RichEdit1->Text = DBRichEdit1->Text でいけないかな?
0712デフォルトの名無しさん05/01/19 17:42:30
RichEdit1->Text = DBRichEdit1->Text でOKでした。
これは試してみた筈なんだけど… 何やってんだろ俺 orz
稚拙な質問にお付き合いいただき、ありがとうございました。
0713デフォルトの名無しさん05/01/19 18:31:10
TPageControlでActivePage = TabSheet2;として、ページを変更した場合にOnChangeやOnChangingイベントがこないのですが
これをイベントがくるようにするにはどうしたらいいのでしょうか?
0714デフォルトの名無しさん05/01/19 18:53:51
はじめまして
ActiveFormで、自分が乗っているブラウザの
ウィンドウハンドルが必要なんですが
探す方法あります?ウィンドウタイトルで
探さないと無理?
0715デフォルトの名無しさん05/01/19 18:57:57
紹介ページでも載ってるのか
0716デフォルトの名無しさん05/01/19 19:21:47
C++Builderではどのように書けばいいのでしょうか?
http://forum.nifty.com/fdelphi/samples/00067.html
"ボリューム調整 (WAVE)"
WAVE出力のボリュームをコントロールします。
Value の値は 0〜255 までを与えて下さい。

0 が無音で、255 が最大出力です。
エラー処理はしていません。

ステレオ時の左右バランスは中央になります。

Uses に MMSystem を書き加えて下さい。

function WaveVolume(Value: Integer):MMRESULT;
var
i: dword;
begin
i := (((Value*256)+Value)*256+Value)*256+Value;
result := WaveOutSetVolume(0,i);
end;

97/10/20(Mon) 10:30pm STAR☆CAT(BYJ02333)

Original document by STAR☆CAT 氏 ID:(BYJ02333)
0717デフォルトの名無しさん05/01/19 19:24:50
これを1時間眺め続ければ必ず分かる
DelphiなんてCとよく似てるじゃん
0718デフォルトの名無しさん05/01/19 19:27:27
TImageのDragModeをdmAutomaticにして他のコントロールにドラッグする時に
ドラッグ最中はDragCursorで指定されたカーソルになりますが、この時にTImageで表示している画像をカーソルにする方法を教えてください
0719デフォルトの名無しさん05/01/19 19:38:19
http://sysneitf.hp.infoseek.co.jp/mfc/mouse_pointer.html
0720デフォルトの名無しさん05/01/20 04:23:46
Imageコンポーネント上でのラバーバンドの作り方を教えてください
0721デフォルトの名無しさん05/01/20 05:56:46
pmXor
0722デフォルトの名無しさん05/01/20 06:39:43
ラバーバンドって何?
0723デフォルトの名無しさん05/01/20 13:16:34
Cursorプロパティーのヘルプの例に載ってるように
const crMyCursor = 5;
Screen->Cursors[crMyCursor] = LoadCursor(HInstance, "MAINICON");
Cursor = (TCursor)crMyCursor;
とやってるのですが、マウスカーソルが変わってくれません。
どこがまずいのでしょうか?
0724デフォルトの名無しさん05/01/20 14:38:00
下記のTIPSにある通りにタスクトレイに格納する処理を組み込んだのですが、
ttp://www.borland.co.jp/tips/cbuilder/cb008/index.html
このBEGIN_MESSAGE_MAPの箇所で、[C++ 警告]
MainUnit.h(64): W8027 switch を含む関数はインライン展開できない
と警告メッセージが出ます。
特に処理で問題がでているわけでなはいのですが、
これは通常表示されるものなのでしょうか?
0725デフォルトの名無しさん05/01/20 15:24:58
>>724
問題なのはSwitch case文だろ。
警告をよく見ろ
0726デフォルトの名無しさん05/01/21 00:09:49
フォームの情報とかをファイルとかに書いておいて、再起動したときに簡単にフォームが復元できる
方法ありますか?
フォームとかフレームがたくさんあるので、面倒なんで。
0727デフォルトの名無しさん05/01/21 00:30:34
独習C++3版という教科書をしようしている大学生です。正直教科書を読んでも、
あまり分かりません。なんか、勉強のコツみたいなものありますか?
皆さんは、どのようにして、勉強しましたか?
0728デフォルトの名無しさん05/01/21 00:35:33
>>724
表示される。問題茄子。

>>725
BEGIN_MESSAGE_MAPマクロがswitch文に展開されるのしらんのけ
0729デフォルトの名無しさん05/01/21 00:45:42
>>723
MAINICONがカーソルじゃなくてアイコンだからでは
0730デフォルトの名無しさん05/01/21 01:18:23
>>727
スレ違いの上、ageる。
そのニワトリ並みの注意力理解力を改善しないとどうにもならない。
0731デフォルトの名無しさん05/01/21 01:33:00
それほどのことかね
0732デフォルトの名無しさん05/01/21 09:49:05
なんかあったんでしょ。ママに叱られたとか。
0733デフォルトの名無しさん05/01/21 16:37:21
Form1,Form2,Form3があるとして、これを以下の関数で
void Func( int Number )
{
 form = new Tform(this);
 ↑
 Numberで作成するフォームを作成
}
こんなことするにはどう記述すればいいですか?
0734デフォルトの名無しさん05/01/21 17:28:27
>>733
フォーム・動的に作成・廃棄
Form1をメインフォーム、Form2を選択可能なフォームとしてButton1をクリックするとForm2を作 成、Buton2をクリックするとButton1で作成されたフォームを全て廃棄します。

http://www.geocities.co.jp/SiliconValley/4805/bcbtips/bcbtips020.htm
0735デフォルトの名無しさん05/01/21 17:37:44
>>733
void Func( int Number )
{
TForm *form;
switch(Number)
{
case 1:
 form = new Tform1(this); break;
case 2:
 form = new Tform2(this); break;
case 3:
 form = new Tform3(this); break;
}
}
0736デフォルトの名無しさん05/01/21 17:43:58
>>735
嗚呼、やっぱりcaseでわけるしかないんですね・・・
ありがとうございました、これでふんぎりつきますた
0737デフォルトの名無しさん05/01/21 17:54:44
Delだとクラス参照型の配列でも作っておけばいいんだけど。
0738デフォルトの名無しさん05/01/21 17:57:03
結局作らなきゃ行けないから大して手間は変わらん。
NameToTypeとかあれば別だけど
0739デフォルトの名無しさん05/01/21 18:14:09
Delだけど、BCBでも使えるんじゃね?
ttp://www.borland.co.jp/qanda/delphi/d0003116.html

BCBにTMetaClassなんてあるの知らなかった。
0740デフォルトの名無しさん05/01/21 19:48:29
C++Builder6.0でコマンドプロンプトのプログラムを作ることは可能でしょうか?
新規作成を一通り探してみたのですが、
該当しそうな項目がバッチ?ぐらいしか見当たらなくて。
0741デフォルトの名無しさん05/01/21 19:49:52
>>740
新規作成でコンソールウィザード
0742デフォルトの名無しさん05/01/21 20:09:47
>>740
一通り探してみてそのざまなら、
プログラムするのやめた方がいいと思うぞ。
0743デフォルトの名無しさん05/01/21 20:29:56
>>740
コマンドプロンプトからbcc32 hoge.cpp
0744デフォルトの名無しさん05/01/21 21:10:42
「hogeは数値ではありません」などの
BCB特有のエラーのダイアログを
出さないようにするにはどうすればよいですか?
0745デフォルトの名無しさん05/01/21 21:11:18
catchして捨てる
074674405/01/21 21:32:48
>>745
エラーが出なくなりました。
ありがとうございます。
0747デフォルトの名無しさん05/01/21 21:54:21
AフォームからBフォームに構造体の値を引き渡すには、
どうすればいいのでしょうか?
(フォームのコンポーネントに値を渡す以外の方法で)
0748デフォルトの名無しさん05/01/21 21:55:21
そのまま代入する
0749デフォルトの名無しさん05/01/22 00:11:34
なんか急にこのスレ活発になった(ほとんど教えて君だが)
気がするんだが、なにかあったのか?
075074705/01/22 00:21:47
>>748
Aフォームでa構造体を宣言
Bフォームでb構造体を宣言
のようにすると、AをBにインクルードしてもコピーできないのですが、
宣言方法がまずいですか?
0751デフォルトの名無しさん05/01/22 00:42:52
もはやそれBuilderとかそういう問題じゃなくてC初心者の質問だし
0752デフォルトの名無しさん05/01/22 02:56:31
いちおーC++初心者で無い毛
つう突っ込みはさておき、
冬休み終わってがっこの試験が近いんで無い毛?

2chに限らずどこの掲示板も教えてクン急増中だわ
0753デフォルトの名無しさん05/01/22 02:59:13
>>750
宣言したのはヘッダファイル内かソースファイル内か
さらにはそれらのどのスコープで宣言したのか。

コピーしたいのはどっちの構造体のなのか、
どのようにコピーしようとしたのか、
なーんも判らん。
それが判らんかったら誰も返事のしようが無い罠。
0754デフォルトの名無しさん05/01/22 06:19:09
>753
質問の内容から、その程度のことも理解していない事わかるだろ。
0755デフォルトの名無しさん05/01/22 07:25:57
学校の授業でBuilder使わせてる所なんてあるのかな・・・
上でコンソールとか出てるからコンソールの宿題をBuilderでしてるだけなんだろうか
0756デフォルトの名無しさん05/01/22 10:10:25
BCBもここまで落ちぶれたか・・・
愛してるのに・・・
0757デフォルトの名無しさん05/01/22 10:18:28
>>756の脳みそが落ちぶれてきただけ(プゲラリーノ
0758デフォルトの名無しさん05/01/22 12:15:15
>>758
フォームの最大化ボタン, 最小化ボタンのクリックでイベントをおこすには
どうすればいいのでしょうか?
0759デフォルトの名無しさん05/01/22 15:20:02
>758
Win32API質問箱へど〜ぞ。
0760デフォルトの名無しさん05/01/23 07:50:55
Builder6で、サンプルソース見ると
TFormを継承したMainFormのコンストラクタに
virtual が付いてるのがけっこうあるんですが、
コンストラクタにvirtual付ける意味ってあるんですか。
0761デフォルトの名無しさん05/01/24 01:39:55
http://pc5.2ch.net/test/read.cgi/tech/1099238936/
0762デフォルトの名無しさん05/01/25 09:35:59
for文でコンポーネントをまとめて処理するにはどうすれば良いのでしょう
たとえばこんな風に出来ないでしょうか
for(i=1;i<11;i++){
CheckBox(i)->Checked = true;
}
よろしくお願いいたします。
0763デフォルトの名無しさん05/01/25 09:40:35
>>762
FindComponent
0764sage05/01/25 10:36:53
>>763
ありがとうございます。
FindComponentで出来ました。
0765デフォルトの名無しさん05/01/25 10:44:57
次スレからテンプレにDelWiki入れないか?
FAQのFindComponentとか載ってるわけだし‥‥

http://onigiri.s3.xrea.com:8080/delphi/
0766デフォルトの名無しさん05/01/25 17:50:01
339 :デフォルトの名無しさん :04/12/11 04:00:07

ここを参考にしてIndy9をインストールしました。
http://inagi.himitsukichi.com/~aozora/cgi-bin/pukiwiki/pukiwiki.php?Indy9%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB

しかしIdHTTPを使おうと思うと
[リンカ エラー] 外部シンボル '__fastcall Idhttp::TIdHTTP::Get(System::AnsiString)' が未 解決(D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ が参照)
とリンカエラーがでます。
何かまずい点があるのでしょうか
0767デフォルトの名無しさん05/01/25 19:59:48
超faq
0768デフォルトの名無しさん05/01/26 01:55:34
TPopupMenu に TMenuItemを追加するときなんですが,
TMenuItem.Captionを"日本語","hoge"などとしておいても,
メニューが表示されるときには,"日本語(&X)","&hoge"に勝手に変わってしまうのですが,
勝手に変わらないようにする手段はありますか
■ このスレッドは過去ログ倉庫に格納されています