C++Builder相談室 Part19
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/08/01(金) 16:30:32※2008/07よりCodeGear(Borland IDE/DB部門)はBorlandからEmbarcaderoに移動しました
【前スレ】
C++Builder相談室 Part18
http://pc11.2ch.net/test/read.cgi/tech/1188607282/
過去スレ・関連サイトは>>2-7あたり。
※Borland C++ Compiler 5.5.1についての質問は以下のスレへ
タダで使えるBorland C++ Part5
http://pc11.2ch.net/test/read.cgi/tech/1135127048/
※BDS(Borland Developer Studio)の総合スレはこちら
Borland Developer Studio 2006 No.13
http://pc11.2ch.net/test/read.cgi/tech/1175861395/
※CodeGear(Borland/Embarcadero)関連はこちら
【CodeGear】Embarcaderoオッチャ その10
http://pc11.2ch.net/test/read.cgi/tech/1216250111/
<関連スレ>
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/
[Tips]Borland C++Builder ちょいテク No.01
http://pc11.2ch.net/test/read.cgi/tech/1154580209/
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc8.2ch.net/test/read.cgi/tech/1093654251/
0573デフォルトの名無しさん
2009/05/21(木) 15:18:28あ、違います・・
何からも発生してないうんこクラスです。。
でも、そこら辺をあれするとできそうですね。
ありがとうございました。
0574デフォルトの名無しさん
2009/05/21(木) 15:29:44じゃNULLでも渡しておけば?
その自作クラスのデストラクタで確実に delete 出来るようにしておけば問題ないし。
0575デフォルトの名無しさん
2009/05/21(木) 15:33:45つまり、メッセージループがあるとこを指定してやんないといけない。
だからNULLなんて論外。
独自のクラスでメッセージを受け取れないなら
ダミーのウインドウを作成してそこで受け取るか、メインウインドウでメッセージを受け取るようにするなり
の対応が必要。
0576デフォルトの名無しさん
2009/05/21(木) 15:37:33実際にやってみてそういっているのか?
0577デフォルトの名無しさん
2009/05/21(木) 15:48:35Timer1 = new TTimer( Application );
Timer1->OnTimer = Timer1Timer;
で、ざっくり思った通りの動きになりました〜
0578デフォルトの名無しさん
2009/05/21(木) 15:51:57TTimerはNULL指定しても動作するし。
そもそもTTImerに渡す最下位クラスであるTComponentにはウインドウハンドルないし。
TTimerに渡す引数はオーナーを明示するだけでしかない。
オーナーが削除されたときに安全に、その子コンポーネントを削除するしくみ、それを提供するTComponentクラス。
明示的に削除するのであればオーナーをTComponentの派生にする必要はない。
>>577
あいあい。
0579デフォルトの名無しさん
2009/05/26(火) 12:10:04プリンタに対して出力するプログラムを作ってるんだけど、
PDFをうまく印刷する方法ってないでしょうか?
やりたいい事:
プリンタが複数台有って、ファイル名で印刷するプリンタを
指定して、そのプリンタで印刷を行う。
プリンタはそれぞれ縮小印刷とか、用紙の設定、両面印刷等を
Windowsのドライバで指定してある。
*プリンタはゼロックスのMFP、キャノンのインクジェットプリンタをUSB接続。
試したこと:
MSのOpenPrinterの参考ページを元に、Winに設定されている
プリンタに対してbyte*で読み込んだデータを流してみる。
*プリンタ設定のJob一覧には表示されるけど、出力されず。
TPrinterで、とにかくデータを書いてみる。
*バイナリのデータを直接出力する方法がわからなかった……。
なんとか、お知恵を拝借できないものでしょうか。
0580デフォルトの名無しさん
2009/05/26(火) 17:30:01PDFを扱うライブラリはあるの?
0581579
2009/05/26(火) 18:50:19まだ、何をどこまでやれるのかを試してる段階で、とにかく
PostScript対応如何にかかわらずどうすればプリンタにデータを
投げられるかを試してる段階で……。
ライブラリに関しても、まだ調査さえしてない段階です。
0582デフォルトの名無しさん
2009/05/26(火) 18:56:430583デフォルトの名無しさん
2009/05/26(火) 19:17:40TPrinterの方しかわからないけど、
Printer()->BeginDoc();
Printer()->Canvas に対して印刷したいドキュメントは描画する。
Printer()->EndDoc();
ってやる。
もちろんBeginDoc();の前にプリンタ関連の各種設定をしておくこと。
0584デフォルトの名無しさん
2009/05/26(火) 19:18:24↑ね。
0585デフォルトの名無しさん
2009/05/26(火) 22:14:38この発想は無かったw
0586デフォルトの名無しさん
2009/05/26(火) 23:48:21プリンタに送る必要がある。ということでPDFを処理できるもの、といったらやっぱりAdobeの製品
(AcrobatやReader)が最初に浮かんでくる。このあたりから攻めるべきじゃないかな。
0587デフォルトの名無しさん
2009/05/27(水) 11:43:15作ったソフトを起動するとC3280MT.DLLが無いってエラーがでます。
これオプションのどこを設定したら出なくなりますか?
0588デフォルトの名無しさん
2009/05/27(水) 11:58:39プロジェクト→オプション→動的RTLをfalseにする
0589デフォルトの名無しさん
2009/05/27(水) 11:59:24○>>587
0590579
2009/05/27(水) 12:10:16いろいろありがとう。
スケジュール的にDLLまで調査する時間がなさそうなので、
今回は「通常使うプリンタ」を動的に変更してAcrobatReaderに
頑張ってもらう方向で逃げようと思います。
というか、お客さんにそれで十分じゃね?って言われた……。
0591デフォルトの名無しさん
2009/05/27(水) 13:46:34あ、ほんとだできたありがとう
これコードガードのあれっぽかたから
そっちばっかりみてますた
0592デフォルトの名無しさん
2009/05/27(水) 18:34:12なぜ、そう思う?
『Run Time Library』だろ、それ。
0593デフォルトの名無しさん
2009/05/27(水) 22:26:53ぐぐたらコードガードって出たんだ馬鹿はレスするな
0594デフォルトの名無しさん
2009/05/27(水) 23:30:12お許しください。
VC++6.0でのプロジェクトは今のC++Builder無償版でコンパイルできるのでしょうか?
どなたか教えてください。もしくは、誘導お願いします。
0595デフォルトの名無しさん
2009/05/27(水) 23:32:520596デフォルトの名無しさん
2009/05/27(水) 23:41:02すみません、質問に書き忘れたのですがDLLを作る
プロジェクトなら行けるとかそういうことはありませんか?
新規に購入する資金がなくて。
0597デフォルトの名無しさん
2009/05/28(木) 03:50:530598デフォルトの名無しさん
2009/05/28(木) 08:15:43簡単にはインスコさせてくれないみたいなので教えてもらいたかった。
0599デフォルトの名無しさん
2009/05/28(木) 10:15:270600デフォルトの名無しさん
2009/05/28(木) 10:18:230601デフォルトの名無しさん
2009/05/28(木) 10:26:530602デフォルトの名無しさん
2009/05/28(木) 13:47:050603デフォルトの名無しさん
2009/05/28(木) 15:35:220604デフォルトの名無しさん
2009/05/28(木) 15:38:330605デフォルトの名無しさん
2009/05/28(木) 15:40:230606598
2009/05/28(木) 19:59:31目的としていることが出来るならインスコするけど、インスコして
出来なかったじゃイヤなので。
普段は今だにDelphi使いなので、C++に用がなくて
出来るだけ余計なものは入れたくないんだ。
0607デフォルトの名無しさん
2009/05/28(木) 20:10:020608デフォルトの名無しさん
2009/05/28(木) 20:17:340609598
2009/05/28(木) 20:22:37アップデートはするし、カスペル入れてるけど普段は切ってるな。
で、VC++6.0のDLLのソースはコンパイルできるの?
0610デフォルトの名無しさん
2009/05/29(金) 16:27:01OSはWindows98かね。
0611デフォルトの名無しさん
2009/05/29(金) 16:58:28中国製のコンパイラらしいけど
0612デフォルトの名無しさん
2009/05/29(金) 19:27:580613デフォルトの名無しさん
2009/05/29(金) 19:36:56>HDDが30Gのノートだからね。
>HDDが30Gのノートだからね。
HDD
0614デフォルトの名無しさん
2009/05/29(金) 22:13:220615デフォルトの名無しさん
2009/05/29(金) 22:14:36で、だからなんだね、チミ
0616デフォルトの名無しさん
2009/05/29(金) 22:22:300617デフォルトの名無しさん
2009/05/30(土) 00:15:130618デフォルトの名無しさん
2009/05/31(日) 02:58:170619デフォルトの名無しさん
2009/05/31(日) 10:51:580620デフォルトの名無しさん
2009/05/31(日) 12:28:480621デフォルトの名無しさん
2009/05/31(日) 12:34:590622デフォルトの名無しさん
2009/05/31(日) 12:44:110623デフォルトの名無しさん
2009/05/31(日) 12:56:12それはコンベンショナルメモリのサイズ
0624デフォルトの名無しさん
2009/05/31(日) 14:33:530625デフォルトの名無しさん
2009/05/31(日) 14:52:20DDR2は値上がり基調
0626デフォルトの名無しさん
2009/05/31(日) 19:30:340627デフォルトの名無しさん
2009/06/03(水) 00:47:440628デフォルトの名無しさん
2009/06/10(水) 22:50:53BDS2006使ってます。
Clock.exeという簡単な時計プログラムを作りました。
ウインドウの位置を覚えておくために
TIniFile *ini;
ini = new TIniFile(ChangeFileExt(Application->ExeName, ".ini"));
ini->WriteInteger("Main","Top",Top);
ini->WriteInteger("Main","Left",Left);
delete ini;
としてiniファイルを作成して覚えておくことにしました。
プログラム起動時に下記の通りに読み出しています。
TIniFile *ini;
ini=new TIniFile(ChangeFileExt(Application->ExeName,".ini"));
Top=ini->ReadInteger("Main","Top",320);
Left=ini->ReadInteger("Main","Left",320);
delete ini;
これでちゃんとウインドウの位置を覚えてくれて動作に問題はないのですが
ふと気づいたんですが、作成されているハズのiniファイルがないんです。
どこにも。HDD全部を検索したけど、見つかりませんでした。
どうなってるんでしょうか。
0629デフォルトの名無しさん
2009/06/10(水) 23:26:13OSがVistaとか?
0630デフォルトの名無しさん
2009/06/10(水) 23:38:36ExplorerでHDDを全部検索してみたのですが、
該当するiniファイルはありませんでした。
0631デフォルトの名無しさん
2009/06/11(木) 09:28:12の戻り値の場所、ちゃんと見た?
0632628
2009/06/11(木) 19:53:09exeが存在している場所と同じディレクトリとなっています。
パスがおかしいということもありません。パスに漢字も使っていません。
exeとかobjとかはちゃんとあり、iniファイルだけありません。
でもなぜか、
ReadInteger
すると、正しい値が返ってきます。
なぞです。
0633デフォルトの名無しさん
2009/06/11(木) 20:19:12念のためフォルダオプションで
・隠しファイル属性をすべて表示 をチェック
・保護されたファイルをオペレーティングシステムファイルを表示をしない のチェックをはずす
をして確認してみたらどうだろう
0634628
2009/06/11(木) 20:38:06AnsiString str;
str=ChangeFileExt(Application->ExeName,".ini");
if(FileExists(str)==true){
Application->MessageBox("OK", "正常", MB_OK);
}else{
Application->MessageBox("NG", "異常", MB_OK);
}
としてもNGが表示されます。
str=ChangeFileExt(Application->ExeName,".obj");
とすると、ちゃんとOKが表示されます。
ファイル検索ツールでHDD全部を検索しても
Clock.iniは見つかりません。
ふしぎです。
0635デフォルトの名無しさん
2009/06/11(木) 20:54:000636デフォルトの名無しさん
2009/06/11(木) 21:15:51その昔、
「clock」っていうファイルは
禁断のファイル名だったよ。
0637デフォルトの名無しさん
2009/06/11(木) 21:21:32実際にはレジストリに書き出されていたりしない?
0638デフォルトの名無しさん
2009/06/11(木) 21:26:010639628
2009/06/11(木) 21:33:40ご指摘の通り、レジストリに書き込まれていました。
[HKEY_CURRENT_USER\Software\Microsoft\Clock]
にありました。
実行ファイル名を、Clock.exeからClock2009.exeに変更したら
ちゃんとiniファイルが作成されます。
やっと解決しました。どうもありがとうございます。
Clock.iniというファイル名は使ってはいけないってことなんでしょうか。
それとも、TIniFile のバグ?
0640デフォルトの名無しさん
2009/06/11(木) 21:51:170641デフォルトの名無しさん
2009/06/12(金) 10:14:590642デフォルトの名無しさん
2009/06/12(金) 10:18:56CONも
0643デフォルトの名無しさん
2009/06/12(金) 17:06:13CLOCKは98独自だったような曖昧な記憶
0644デフォルトの名無しさん
2009/06/20(土) 16:57:380645デフォルトの名無しさん
2009/06/20(土) 17:13:34Commodore
0646デフォルトの名無しさん
2009/06/22(月) 16:25:19TStringListのLoadFromFileにファイル名を与えないと例外になるのはいいのですが
例外をtry〜catchで受けてるのにデバッガがアクセス違反エラーを出してそこで落ちてしまいます
オプションのデバッガでプログラムで受けるようにしてるのですが
他のどこを設定したらいいですか?
0647デフォルトの名無しさん
2009/06/22(月) 18:00:14あと数日か、買うかどうするか・・・
0648デフォルトの名無しさん
2009/06/22(月) 18:47:56このキャンペーンてさ、買うときに学生証の提示必須かと思ったら
>本製品の購入には学生証・教職員証のご提示は不要ですので
って書いてるけど、これって社会人でもOKってこと?
それなら買おうかな。
0649デフォルトの名無しさん
2009/06/22(月) 18:56:21春頃に封書で届いた
内容はこれ↓
http://www.codegear.com/jp/article/39555
0650デフォルトの名無しさん
2009/06/22(月) 19:00:25一応、同様な症状に見舞われた人の為に。
C++Builder2009使用中withXP(どちらも最新)
まだIDEの調子は完全じゃ無いのな。(もうアフォとしか…)
正確には統合環境の問題だと思うんだが、ソースでの右クリックによる
コピペがオカシクなり始めたと思ったら、今度はあらぬ所でコンパイルエラー。
始まりは…
>>>>> SelectDirectory("フォルダセレクト", "\\", SelectDir)
コンパイラ:「そんな関数あるかい!」
…おぃおぃ。今まで通ってたろ?ってのに。徐々に他にも今までに無い警告多数。
エラー多数。
…で、問題箇所のみ抜粋して、新たにプロジェクト作成してコンパイル。
ー>何も問題無し。(-_-;
プロジェクトクリーンアップするも効果無し、仕方なく全プロジェクトを閉じた上で
C++Builderを終了し、該当プロジェクトファイルを削除し、ソース以外を全て削除し、
C++Builderを再起動後、新規プロジェクト作成し、該当ソースを加えコンパイル。
ー>何も問題無し。(-_-;
プロジェクトファイルがオカシクなって、何処かにキャッシュ(それとも
プリコンパイルヘッダ?がオカシク?)されとったんか?まったく。
まとめて書いてしまえばなんて事ないんですけど…数行のソースならともかく、
ある程度の規模のソース書いてれば、エラーが出れば自分が何か「やらかした…」
と思って、必死にソースから原因を探そうとするじゃないですか…。
あ〜腹立つ!!
0651デフォルトの名無しさん
2009/06/22(月) 19:13:29おかしくなったら、全部閉じて再起動。
これ常識。
別に、Builderだけの話じゃない。VSだって同様だ。
0653デフォルトの名無しさん
2009/06/22(月) 21:47:46折りたたみ機能とかいらん機能の弊害だろう
0654デフォルトの名無しさん
2009/06/23(火) 00:32:14でも、あれはあれで便利な時もあるんですよ、たまに。…って弊害が大きくちゃ
仕方ないですね。
どうにも、IDEってか、エディタのソースがどうなってるのか一度見てみたい。
時々カーソル位置を上手く認識してなかったり、コピペがおかしくなったり。
特に大きめのソース&複数のソースのデバッグを続けると発生し易いような。
(ソースデバッガ兼用な所も一因なのかな)(↑使い方に問題有りかも?C++なのに
ってか、OOPなのに…?って事かな)
いずれにせよ、少しでもおかしくなったら、まずIDEを疑えって事ですね。
0655デフォルトの名無しさん
2009/06/23(火) 00:45:23BCB5のときに俺がバグ報告をFAXで3枚も送ってやったからそれが6ではちゃんと直ってるし、まあデバッグ実行で例外出しまくってると動作がおかしくなったりBCB自体に例外が出て終了できなくなったりなんてことはたまにあるけど致命的なものはないしね
動作も軽いしもう最高だよ!
0656デフォルトの名無しさん
2009/06/23(火) 10:49:50良すぎるでかんわ。
0657デフォルトの名無しさん
2009/06/23(火) 14:42:210658デフォルトの名無しさん
2009/06/23(火) 16:08:52っていつ出るんだろう。
2009は2008年に出た希ガス。
0659デフォルトの名無しさん
2009/06/23(火) 16:11:540660デフォルトの名無しさん
2009/06/23(火) 16:38:360661デフォルトの名無しさん
2009/06/23(火) 16:40:040662デフォルトの名無しさん
2009/06/23(火) 17:18:480663デフォルトの名無しさん
2009/06/23(火) 17:22:470664デフォルトの名無しさん
2009/06/23(火) 22:58:280665デフォルトの名無しさん
2009/06/25(木) 10:26:27これって何ですか?
0666デフォルトの名無しさん
2009/06/25(木) 11:07:220667デフォルトの名無しさん
2009/06/25(木) 11:37:170668665
2009/06/25(木) 11:57:36いつもはりつきご苦労様です。
0669665
2009/06/25(木) 17:48:54ヘルプを見たら、2つ関数があって分かりました。
はっきり言って、Exsampleをコピペして動作見たのが間違いだった(><;)
0670デフォルトの名無しさん
2009/06/27(土) 21:23:421画素4バイト(ゴミ, R, G, B各1バイト)のデータが
long img[4*160*120];の配列に格納されています。
これを160x120のカラー画像として、TCanvasにDrawメソッドで
描画するにはどうしたらいいのでしょうか?
img配列をTBitmap(?)などに格納すればいいみたいですが、
どのように格納すればいいのか分かりません。
よろしくお願いします。
0672デフォルトの名無しさん
2009/06/27(土) 23:48:06■ このスレッドは過去ログ倉庫に格納されています