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

C++Builder相談室 Part4

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

開始時間〜終了時間から計算して
例えば開始01:00〜終了03:30なら2.5などと算出してくれるような関数ってありますか?
これがあれば今の作業が死ぬほど楽になるので(苦笑
0482デフォルトの名無しさんNGNG
>>481
それくらい自分で関数作ればいいだろ。
0483481NGNG
すいません
徹夜続きで頭回らなくてすごく難しく感じてたんですが
コーヒー飲んで落ち着いたら簡単でした
恥かいてしまた(´Д`;)
0484デフォルトの名無しさんNGNG
TDateTime使うと楽だね。
HoursBetween、MinutesBetween、MilliSecondsBetweenとかあるし、
1時間の差を1.0とするなら引き算して24かけるだけでもいいし。
0485デフォルトの名無しさんNGNG
time()でも差取って3600で割るだけじゃないのか…
0486デフォルトの名無しさんNGNG
実行時に計った時間の差なら、そりゃ確かにTDateTimeを使うまでも無いですね。
>>481の開始〜終了時間ってエディットとかで、ユーザーが指定する物の事だと思い込んでたもので。
0487 NGNG
DirectX9もまたコーディング以前に
面倒な作業が有るのか・・・
0488DrKNGNG
BCBは、ハマーやインテルの64ビットCPUにネイティブで対応するのでしょうか?
0489デフォルトの名無しさんNGNG
将来のことは判らないだろ。 作る技術はあるだろうけど、同じ商品名で出すかどうか
0490デフォルトの名無しさんNGNG
非標準環境の辛さだな
0491デフォルトの名無しさんNGNG
だな。 まずM$が出してから、その互換性を確保してから商品化か
0492デフォルトの名無しさんNGNG
インストールしたけどコンパイルできないっていわれた。
これってC言語もコンパイルできるんですか?
.PPCファイルって何????マニュアルも開けないし、ヘルプ見てもさっぱり
わからない。初心者向けのツールじゃないですよね。
0493デフォルトの名無しさんNGNG
何の初心者にもよるかと。
さすがにPC初心者向けの開発環境は存在しないのでは…
てゆーか、そんなひとに開発して欲しくないし。
0494タスケペーNGNG
クラサバアプリなんですけど、フォームのあるボタン押下時に
WINDOWSのシステム情報を表示したいんですけど、どうやったらいいのか
わかりません。ヒントでも取っ掛かりになること教えてください。
0495デフォルトの名無しさんNGNG
>>494
システム情報って何?
例えばレジストリの
 HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION
みたいな情報?
0496タスケペーNGNG
495様!!年末なのに反応ありがとうございます(涙)。
コンパネ-コンピュータの管理 にてツリー表示されているシステム情報の
ことです。そのウインドウを呼んで表示したいんです。


0497たぶんNGNG
>>496
それはコマンドラインで
mmc c:\winnt\system32\compmgmt.msc

として呼び出せる奴の事じゃないのかな?
0498タスケペーNGNG
そそそ、%SystemRoot%\system32\compmgmt.msc /s
です。そ、それを、C++ BUILDERからプログラムとして....
0499たぶんNGNG
ええと、それなら>>497以上のヒントが必要ですか?

WinExec("mmc c:\\winnt\\system32\\compmgmt.msc", 0);
と書けば?

それとも SystemRoot の解決方法を知りたい?
0500タスケペーNGNG
499様、
これだけでもかなり助かりますタ。ありがとうございました。
左側のツリーの要素として「システム情報」がROOTになる様に表示したいので
あります。アンタ...イイヒトダァアアー (北の国から)



0501たぶんNGNG
http://www.google.co.jp/search?q=msinfo32.exe&lr=lang_ja

これをどう呼びたいかって話し?
0502たぶんNGNG
msinfo32.exe を自分のハードディスクから探して、それを実行すればいいのでは? 
msinfo32.msc をmmc.exeで動かしても同じだし、

では、もう落ちるので
0503タスケペーNGNG
たぶん様、まさにこれでアリマス。ただこれを絶対パスで指定してよいのかどうか
ですよね。%どっか%みたいにしないといかんのでしょうかね。.....
C:\Program Files\Common Files\Microsoft Shared\MSInfo\msinfo32.exe
0504デフォルトの名無しさんNGNG
>>503 ああ、そういうのはレジストリでリストアップして レジストリから参照してみたら?
0505タスケペーNGNG
今度はレジストリをどう参照してどうやって表示するのかがわかりません。すいません。
クレクレ君になってしまいすいません。
0506デフォルトの名無しさんNGNG
こんにちは。
外部シンボルinp,outpが未解決となってしまうエラーについて質問させてください。

I/Oボートにアクセスしステッピングモータを動かす
プログラミングをC/C++で行っています。
しかし
Error: 外部シンボル '_inp' が未解決(C:\DOCUMENTS AND SETTINGS\INFODRIVE\デスクトップ\program.OBJが参照)
Error: 外部シンボル '_outp' が未解決(C:\DOCUMENTS AND SETTINGS\INFODRIVE\デスクトップ\program.OBJ が参照)
というエラーが出てしまいmakeできません。
いろいろ調べて
#include "conio.h"
#include "IOBIN.h"
というのをインクルードしてみたのですがうまくいきません。
Win95、Cpad、Borland C++ Compiler 5.5 を使っています。
ちょっと制御関係の話かもしれませんが、
どなたかアドバイスをいただけませんか?
よろしくお願いします。
0507デフォルトの名無しさんNGNG
>>506
BCBなの? 単なるBCなの?
BCなら #include <conio.h>

BCBなら最近のであればTASMで、古いバージョンなら Delphiで inp outpを書いたら?
0508デフォルトの名無しさんNGNG
>>507
レスありがとうございます。
BCBです。
C/C++しか知らないのでTASMやDelphiで書くとまた一からです。。。
それしか方法はないのでしょうかね。。。?
0509止停 EAOcf-61p196.ppp15.odn.ne.jprlo;NGNG
0510デフォルトの名無しさんNGNG
>>508
それしかって、他にはハンドアセンブルしてバイト列として埋め込むくらいかな。

じゃあDelphiの例ね。 以下のファイルを作って プロジェクトに追加で パスカルユニットにして
追加すれば自動的に ヘッダファイルが作られるから 

----------- ここから ファイル名を UIoPort.Pas として保存 ---
unit UIoPort;//UIoPortはファイル名にあわせる

interface
function IoInp(adr:WORD):Byte; stdcall ;
procedure IoOut(adr:WORD;data:Byte); stdcall ;

implementation
function IoInp(adr:WORD):Byte;
assembler ;
asm
mov dx,adr;
in Al,dx
end;
procedure IoOut(adr:WORD;data:Byte);
assembler ;
asm
mov dx,adr;
mov AL,data;
out dx,AL;
end;
end.
0511デフォルトの名無しさんNGNG
>>510
ありがとうございます。
年末の中非常にうれしいです。
ちょっとやってみます。
0512デフォルトの名無しさんNGNG
>>510
やってみました。
教えていただいたとおり.Pasのファイルをつくり、
プロジェクト追加のパスカルユニットにしてメイクしてみましたが、
自動的に作られたヘッダファイルというのがわかりません。
新たに.cppファイルができたのですが、
ヘッダファイルはどれ?という感じです。
0513デフォルトの名無しさんNGNG
はいはい

自動的に UIoPort.HPP というC++ヘッダファイルが作られるから
これを インクルード(ファイル->ユニットヘッダの追加で自動で)すれば

IoInp IoOut って名前使えるから、inp/outpという関数を作ってそれから呼び出せば?


0514デフォルトの名無しさんNGNG
C++Builder6で、再帰曲線を描いて遊びたいのですが、フォーム上にコマンドボタン
とパネルを配置し、さてパネルのCanvas上に描画しようと思ったら、パネルには
Canvasが無いようなのです。

フォーム上に描けば簡単なのですが、フォームにはツールバーとコマンドボタン
が乗っているし、他のCanvasを持つコントロールを配置したいのですが、どの
コントロールがこういう場合最適でしょうか?
0515たぶんNGNG
やりたい事を実現する方法は
1、TPaintBoxをパネルに貼り付け、AlignをclClientにして
  OnPaintイベントのみで TPaintBoxのCanvas描画
  ボタンイベントで直接再描画せず、ボタンイベントでは PaintBoxにInvalidateメッセージを送ります

2、TImageを貼り付け同じように設定し、Pictureプロパティを用意して
  Canvasに描画する。
  グラフィックプログラミングの概要を読む事

3、TGraphicControlを継承してコンポーネントを作成する

この3つが代表的です。

これらは場合により使い分けます
 素早く仕上げたいなら->1
 描画が遅いなら->2
 再利用する可能性が高いなら->3
0516デフォルトの名無しさんNGNG
>>515
ありがとうございます。

TImageに気づいていろいろやっていたのですが、一度TImageをFillRectなどで
塗りつぶすと、以降FormをResizeした後再度塗っても、大きさが変わってくれ
ないのです。

内部にビットマップイメージを保持しているのが問題みたいですね。この内部の
ビットマップイメージをクリアする方法があればいいのですがわかりません。

TPaintBoxには気が付きませんでした。これは使えそうです。早速やってみます。

継承まではとてもまだまだできません。
0517デフォルトの名無しさんNGNG
CppUnitCB使ってる人います?
0518デフォルトの名無しさんNGNG
いないということで。
0519デフォルトの名無しさんNGNG
>>517
DUnit 使え。
0520デフォルトの名無しさんNGNG
「実行時パッケージを使って構築」のチェックをはずしてコンパイルすると
「プロジェクト project1.exeがEWin32Errorクラスの例外を生成しました。'Win32エラー。コード1410.
そのクラスは既にあります。'プロセスは停止しています。」
となってしまい。じっこうできなくなりますた。「実行時パッケージを使って構築」にチェックを
いれると実行できるのですが、実行時パッケージを使わずにやる方法はないのでしょうか?
0521デフォルトの名無しさんNGNG
http://www.google.co.jp/search?q=ewin32error+1410&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
では
http://bdn.borland.com/article/0,1410,20090,00.html
しか引っかからなかったけど、関係あるかな?
0522520NGNG
>>521
申し訳ない。環境書くの忘れていました。
OS:Windows2000 バージョンはBCB5でupdate1は導入済みです
0523デフォルトの名無しさんNGNG
('A`)
0524デフォルトの名無しさんNGNG
>>522
もうちょっと詳しく書いてくれないとわからないよ。
どのプロジェクトでもなるの?特定のプロジェクトだけ?
新規の空プロジェクトでもなる?なにかdllとかつかってる?
古いバージョンで作ったプロジェクトとか?

有名な不具合なのかもしれないけど...
0525デフォルトの名無しさんNGNG
C++Builderはタダなんでつか?
0526デフォルトの名無しさんNGNG
体験版ならな。
0527タスケペーNGNG
あけましておめでとうございます。
アプリが最小化されている状態から元のサイズに戻し最前面に表示すると、
ウインドウ右上の最小化ボタンを押しても、最小化できなくなってしまいました。
ただ「元のサイズに戻す」を実行すると最小化できるようになります。
何か回避策はありますでしょうか。
ちなみに以下の手順にてウインドウをアクティブにして最前面に表示してます。
ShowWindow(mHWND,SW_RESTORE);
SetForegroundWindow(mHWND);
SetWindowPos(mHWND,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
SetWindowPos(mHWND,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
SetActiveWindow(mHWND);

0528デフォルトの名無しさんNGNG
おめでとうございます
スレッドについての質問ですが
Unit2で作った変数をUnit1で使うにはどのように宣言したらいいのですか
Unit1で作ったのは

Form1 ->

という感じで使えるのですが Unit2 から unit1 に持ってくるにはこれでは無理なんですの
教えてください、おねがしますおねがしますおねがいsむオンマエアイス
0529デフォルトの名無しさんNGNG
これMeでも使える?
0530デフォルトの名無しさんNGNG
>>527
最小化から元に戻すとき Application->Restore() を使ってみるのはどう。
0531デフォルトの名無しさんNGNG
>>527
Del8スレにあったぞ
0532デフォルトの名無しさんNGNG
age
0533デフォルトの名無しさんNGNG
>>528
ヘッダインクルードしる
0534債務不履行の名無しさんNGNG
>>528
ファイルメニューに「ユニットヘッダの追加」とかいうのがあるから,
Unit1のソースを表示しているときに選択すればよい。

手動でUnit2.hをインクルードしてもいいけど。
0535デフォルトの名無しさんNGNG
プロパティのHintの文字列を改行させたいのですがどうすればいいのでしょう?
オブジェクトインスペクタで\nを入れてもそのまま出力されるみたいですし…
0536デフォルトの名無しさんNGNG
>>535
試しちゃいないが、Form の OnCreate で、
SomeComponent->Hint = "hogehoge\r\nHello";
とかしてみたら?
0537デフォルトの名無しさんNGNG
>>536
\r\nでなくて、\nだけでちゃんと改行したよ。
0538デフォルトの名無しさんNGNG
ノーパソのモニタ電源だけを切りたいのですが、
方法はありますか?
0539デフォルトの名無しさんNGNG
見えてるコードをはさみで切る。
0540タスケペーNGNG

絶対パスで指定したフォルダの中にあるディレクトリ名(フォルダ名)を
AnsiString配列でほしーのですが、かっちょいい関数はありますか?
(但し1階層までしか見なくて良い。)
0541デフォルトの名無しさんNGNG
あーあ、今後は日本語版も本社でサポートしてくれればいいのに。
日本法人なんて潰してさ。
0542デフォルトの名無しさんNGNG
C++Builderで文字を横2倍角にすることはできませんか?
0543デフォルトの名無しさんNGNG
>>542
 どこで使いたいか判らないけど、API でフォントを設定すればいいんじゃないの?

http://www.google.co.jp/search?q=LOGFONT&&lr=lang_ja
0544デフォルトの名無しさんNGNG
>>543
文字をスクロールさせるプログラムを作っています。
最初はテキストボックスでスクロールさせようと思っていましたが、
横2倍角文字を織り交ぜた文章をスクロールさせなければいけなくなりました。

どんな方法を使ってでも指定した文字がスクロールできればいいので、
特定の方法というのはありません。

環境は w2k + C++Builder5です。
0545デフォルトの名無しさんNGNG
>>544
表示座標をゴスゴス下げながら描画。
0546デフォルトの名無しさんNGNG
通常のサイズの文字と、横2倍角の文字を混同させないといけないので困っています。
0547デフォルトの名無しさんNGNG
>>546
通常の文字のドット数+横二倍文字のドット数=完成
0548デフォルトの名無しさんNGNG
文字をイメージに変換することはできますか?
または、Imageオブジェクトに文字を表示することはできますか?

よろしくお願いします。
0549デフォルトの名無しさんNGNG
>>548
少しでもリファレンスを眺めたことがあるならわかると思いますがCanvas持ってる子には基本的に書けます。
0550デフォルトの名無しさんNGNG
>>549
ありがとうございます。少し調べてみます。
0551デフォルトの名無しさんNGNG
できます。
0552デフォルトの名無しさんNGNG
>>551
とくにそれらしいプロパティが見つかりませんでしたが、
どのようにしてらっしゃいますか?
0553デフォルトの名無しさんNGNG
>>551 >>553 は見たの?
0554デフォルトの名無しさんNGNG
>>553
再帰か。良いテクニック持ってるな。
0555デフォルトの名無しさんNGNG
>>553
よくわかりませんが、何が起こってるんですか?
0556デフォルトの名無しさんNGNG
>>555
再帰と言って自分自身を呼び出すことによりディレクトリ走査などを簡単に行える技だ。
0557553NGNG
ああゴメン。
ようするに横に大きい文字を描きたいのでしょ?
LogFont 構造体 を設定して CreateFontIndirect でフォントハンドルを作って、

そのハンドルをCanvas->Handleに 対して SelectObject すればいい

後で解放して元に戻すのを忘れないようにね

0558デフォルトの名無しさんNGNG
>>557
ありがとうございます。少し調べてみます。
0559デフォルトの名無しさんNGNG
はじめから調べろよクズ。
0560デフォルトの名無しさんNGNG
>>559
検索キーワードがないとググれないだろw
0561デフォルトの名無しさんNGNG
age
0562デフォルトの名無しさんNGNG
まぁアレだな。
キタ━━━━(゚∀゚)━━━━━!!!
0563デフォルトの名無しさんNGNG
ていうか前からIPを取ってたんでしょ
0564デフォルトの名無しさんNGNG
テスト
0565デフォルトの名無しさんNGNG
これで嫌韓厨が駆除されるといいね
0566デフォルトの名無しさんNGNG
>>352
友人から借りた?おいおい。MXで落とせば?
0567デフォルトの名無しさんNGNG
あ、いい機会だからひろゆきに聞いとこう

AA板のひろゆき関連のスレ(グロゆき、キモゆき等)覗いてますか?
0568デフォルトの名無しさんNGNG

  ∠゙⌒"フ
  / ‘(・・)
  / (,,゚Д゚)  < テス�d
  i (ノ   !つ
〜゙:、..,__,.,ノ
   ∪∪
0569デフォルトの名無しさんNGNG
>>121
匿名で書き込む事を過大解釈してきた香具師らのことを
俺は言ってるわけだが?
あなたの意見には大体賛成ですがね?
0570デフォルトの名無しさんNGNG
ListViewに保持してある複数の文字列を別のフォームのListViewに渡したいのですが、
どのようにすればいいのでしょうか?

__publishedで宣言されたものは他のクラスからは参照できないですよね?
C++始めたばかりなのでこの辺りがいまいちよく分かってません…
0571デフォルトの名無しさんNGNG
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
0572デフォルトの名無しさんNGNG
>>570
見れます。
_publishedは、publicと可視性は変わらないよ。
ちなみに_publishedは、C++標準じゃなくて、Builder固有のキーワードです。
0573デフォルトの名無しさんNGNG
あ、テンプレ書いてたら先こされた
0574デフォルトの名無しさんNGNG
age 
0575デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0576デフォルトの名無しさんNGNG
とりあえず、>>557さんの方法で横倍角の文字をTMemoコンポーネント上に表示させ、
ScrollDCでスクロールさせるところまではできましたが、あまりに長い文字を書くと、
はみ出してしまい、そこから先の文字はスクロールされずに、消えてしまいます。

テキストエリア内に収まりきらなかった文字をスクロールさせる方法をご存知の方はいらっしゃいますか?
以下スクロールのイベントです。タイマーオブジェクトを使い一定の感覚で呼んでいます。

引数
LRBit = -1
UDBit = 0

void TForm1::TextScroll(int LRBit,int UDBit)
{
int *a,*b;
RECT cltRect;
HDC hDC= GetDC(Memo1->Handle);
a = &LRBit;
b = &UDBit;

cltRect = GetClientRect();

ScrollDC(hDC,(*a),(*b),&cltRect,&cltRect,NULL,&cltRect);
SetScrollPos(Memo1->Handle,SB_HORZ,*a,TRUE);
}

よろしくお願いします。
0577デフォルトの名無しさんNGNG
上げときます。
0578572NGNG
>>572
×_published
○__published
0579デフォルトの名無しさんNGNG
_published にしとけ
0580570NGNG
>>572
ありがとうございます。
代入式を書く箇所を間違えていただけでした…
こういったものはpriveteにされてるものだという先入観もあったもので。
0581デフォルトの名無しさんNGNG
>>284
そうだよね。
勘違いしてる奴おおいし、

現実世界と同程度の責任を求められる事が当たり前になるように
なるといいね。

■ このスレッドは過去ログ倉庫に格納されています