トップページ⇒tech
990コメント312KB

C++Builder相談室 Part19

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/08/01(金) 16:30:32
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
※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/
0598デフォルトの名無しさん2009/05/28(木) 08:15:43
一応TurboC++無料版をダウンロードして入れようとしてたんですけど、
簡単にはインスコさせてくれないみたいなので教えてもらいたかった。
0599デフォルトの名無しさん2009/05/28(木) 10:15:27
>>597みたいなクズはレスしないで欲しいね
0600デフォルトの名無しさん2009/05/28(木) 10:18:23
自作自演大流行だな
0601デフォルトの名無しさん2009/05/28(木) 10:26:53
フリーソフトのインストールさえ出来ない奴がプログラミングできる訳ねえじゃん。
0602デフォルトの名無しさん2009/05/28(木) 13:47:05
いや、Turbo シリーズのインスコは、ハマると厄介だぞ。
0603デフォルトの名無しさん2009/05/28(木) 15:35:22
最近のゆとりは淫寿古さえできないのか
0604デフォルトの名無しさん2009/05/28(木) 15:38:33
>>603がゆとりって事だけはわかった。
0605デフォルトの名無しさん2009/05/28(木) 15:40:23
>>604は禿
06065982009/05/28(木) 19:59:31
Microsoft.NET 1.1ランタイムとかも入れなきゃいけないみたいなので
目的としていることが出来るならインスコするけど、インスコして
出来なかったじゃイヤなので。
普段は今だにDelphi使いなので、C++に用がなくて
出来るだけ余計なものは入れたくないんだ。
0607デフォルトの名無しさん2009/05/28(木) 20:10:02
まるで.NET Frameworkは汚れ扱いだな。
0608デフォルトの名無しさん2009/05/28(木) 20:17:34
アップデートは全部切ってウィルスに感染するタイプだな
06095982009/05/28(木) 20:22:37
HDDが30Gのノートだからね。
アップデートはするし、カスペル入れてるけど普段は切ってるな。
で、VC++6.0のDLLのソースはコンパイルできるの?
0610デフォルトの名無しさん2009/05/29(金) 16:27:01
ひどい開発環境だね。そんなオンボロノートPCなら今らな中古で1万くらいで買える。
OSはWindows98かね。
0611デフォルトの名無しさん2009/05/29(金) 16:58:28
Torbo-C++か

中国製のコンパイラらしいけど
0612デフォルトの名無しさん2009/05/29(金) 19:27:58
SSDですが何か?
0613デフォルトの名無しさん2009/05/29(金) 19:36:56
>HDDが30Gのノートだからね。
>HDDが30Gのノートだからね。
>HDDが30Gのノートだからね。
HDD
0614デフォルトの名無しさん2009/05/29(金) 22:13:22
結局馬鹿ばっか
0615デフォルトの名無しさん2009/05/29(金) 22:14:36
>>610
で、だからなんだね、チミ
0616デフォルトの名無しさん2009/05/29(金) 22:22:30
チミ
0617デフォルトの名無しさん2009/05/30(土) 00:15:13
メモリ2G HDD250Gとかのノートパソコンが4万円台で売っている時代だからね。
0618デフォルトの名無しさん2009/05/31(日) 02:58:17
あ
0619デフォルトの名無しさん2009/05/31(日) 10:51:58
もうそんな時代なのか・・・・。でっかい箱のくせにメモリ768kのおれ。これは厄介なことになってきたぞ。
0620デフォルトの名無しさん2009/05/31(日) 12:28:48
メモリ1GB 1000円未満になって久しい訳だが・・・
0621デフォルトの名無しさん2009/05/31(日) 12:34:59
768kってH98?TOWNS?
0622デフォルトの名無しさん2009/05/31(日) 12:44:11
メモリ2Gでも狭えや
0623デフォルトの名無しさん2009/05/31(日) 12:56:12
>>621
それはコンベンショナルメモリのサイズ
0624デフォルトの名無しさん2009/05/31(日) 14:33:53
昔は1バイトでも節約しようと必死だったのに最近のゆとり世代ときたら
0625デフォルトの名無しさん2009/05/31(日) 14:52:20
>>620
DDR2は値上がり基調
0626デフォルトの名無しさん2009/05/31(日) 19:30:34
最近は横ばいだろ
0627デフォルトの名無しさん2009/06/03(水) 00:47:44
主流がDDR3に移り始めたからこれ以上DDR2安くならんと思うよ
0628デフォルトの名無しさん2009/06/10(水) 22:50:53
しつもんです。
BDS2006使ってます。
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:13
>>628
OSがVistaとか?
0630デフォルトの名無しさん2009/06/10(水) 23:38:36
OSはWindowsXPです。
ExplorerでHDDを全部検索してみたのですが、
該当するiniファイルはありませんでした。
0631デフォルトの名無しさん2009/06/11(木) 09:28:12
ChangeFileExt(Application->ExeName, ".ini")
の戻り値の場所、ちゃんと見た?
06326282009/06/11(木) 19:53:09
もちろん確認しています。
exeが存在している場所と同じディレクトリとなっています。
パスがおかしいということもありません。パスに漢字も使っていません。
exeとかobjとかはちゃんとあり、iniファイルだけありません。
でもなぜか、
ReadInteger
すると、正しい値が返ってきます。
なぞです。
0633デフォルトの名無しさん2009/06/11(木) 20:19:12
>>632
念のためフォルダオプションで
・隠しファイル属性をすべて表示 をチェック
・保護されたファイルをオペレーティングシステムファイルを表示をしない のチェックをはずす
をして確認してみたらどうだろう
06346282009/06/11(木) 20:38:06
それはすでにやってあります。
AnsiString 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:00
他のiniファイルを作って実験してみたら?
0636デフォルトの名無しさん2009/06/11(木) 21:15:51
>>634
その昔、
「clock」っていうファイルは
禁断のファイル名だったよ。
0637デフォルトの名無しさん2009/06/11(木) 21:21:32
>>634
実際にはレジストリに書き出されていたりしない?
0638デフォルトの名無しさん2009/06/11(木) 21:26:01
と思ったけど仕様が変更されたってわけでもなさそうか。
06396282009/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:17
CLOCKとかPRNって使っちゃだめなファイル名じゃなかった?
0641デフォルトの名無しさん2009/06/12(金) 10:14:59
PRNはデバイスファイルで予約されてるけど、CLOCKはSDKのNaming a Fileには載ってないなぁ
0642デフォルトの名無しさん2009/06/12(金) 10:18:56
CLOCK$はだめだね
CONも
0643デフォルトの名無しさん2009/06/12(金) 17:06:13
CONとPRNとAUXはDOS全てだったけど
CLOCKは98独自だったような曖昧な記憶
0644デフォルトの名無しさん2009/06/20(土) 16:57:38
64bitアプリケーションは作れるの?
0645デフォルトの名無しさん2009/06/20(土) 17:13:34
>>644
Commodore
0646デフォルトの名無しさん2009/06/22(月) 16:25:19
builder2007でですが、
TStringListの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
うが〜。クダランIDEのバグで半日潰れた!!!
一応、同様な症状に見舞われた人の為に。

C++Builder2009使用中withXP(どちらも最新)

まだIDEの調子は完全じゃ無いのな。(もうアフォとしか…)

正確には統合環境の問題だと思うんだが、ソースでの右クリックによる
コピペがオカシクなり始めたと思ったら、今度はあらぬ所でコンパイルエラー。
始まりは…

>>>>> SelectDirectory("フォルダセレクト", "\\", SelectDir)
コンパイラ:「そんな関数あるかい!」

…おぃおぃ。今まで通ってたろ?ってのに。徐々に他にも今までに無い警告多数。
エラー多数。
…で、問題箇所のみ抜粋して、新たにプロジェクト作成してコンパイル。
ー>何も問題無し。(-_-;

プロジェクトクリーンアップするも効果無し、仕方なく全プロジェクトを閉じた上で
C++Builderを終了し、該当プロジェクトファイルを削除し、ソース以外を全て削除し、
C++Builderを再起動後、新規プロジェクト作成し、該当ソースを加えコンパイル。
ー>何も問題無し。(-_-;

プロジェクトファイルがオカシクなって、何処かにキャッシュ(それとも
プリコンパイルヘッダ?がオカシク?)されとったんか?まったく。

まとめて書いてしまえばなんて事ないんですけど…数行のソースならともかく、
ある程度の規模のソース書いてれば、エラーが出れば自分が何か「やらかした…」
と思って、必死にソースから原因を探そうとするじゃないですか…。

あ〜腹立つ!!
0651デフォルトの名無しさん2009/06/22(月) 19:13:29
未熟杉
おかしくなったら、全部閉じて再起動。
これ常識。
別に、Builderだけの話じゃない。VSだって同様だ。
06526502009/06/22(月) 19:47:21
>>651
VSで同様な目に逢った事無いもんで。
0653デフォルトの名無しさん2009/06/22(月) 21:47:46
コピペできなくなることはたまにあるな
折りたたみ機能とかいらん機能の弊害だろう
0654デフォルトの名無しさん2009/06/23(火) 00:32:14
>>653
でも、あれはあれで便利な時もあるんですよ、たまに。…って弊害が大きくちゃ
仕方ないですね。

どうにも、IDEってか、エディタのソースがどうなってるのか一度見てみたい。
時々カーソル位置を上手く認識してなかったり、コピペがおかしくなったり。

特に大きめのソース&複数のソースのデバッグを続けると発生し易いような。
(ソースデバッガ兼用な所も一因なのかな)(↑使い方に問題有りかも?C++なのに
ってか、OOPなのに…?って事かな)

いずれにせよ、少しでもおかしくなったら、まずIDEを疑えって事ですね。
0655デフォルトの名無しさん2009/06/23(火) 00:45:23
BCB6はええよ
BCB5のときに俺がバグ報告をFAXで3枚も送ってやったからそれが6ではちゃんと直ってるし、まあデバッグ実行で例外出しまくってると動作がおかしくなったりBCB自体に例外が出て終了できなくなったりなんてことはたまにあるけど致命的なものはないしね
動作も軽いしもう最高だよ!
0656デフォルトの名無しさん2009/06/23(火) 10:49:50
>BCB6はええよ

良すぎるでかんわ。
0657デフォルトの名無しさん2009/06/23(火) 14:42:21
2009って64bitOSに対応してる?
0658デフォルトの名無しさん2009/06/23(火) 16:08:52
64bitは2010だろ。
っていつ出るんだろう。
2009は2008年に出た希ガス。
0659デフォルトの名無しさん2009/06/23(火) 16:11:54
つーか、UIを2010から5のUIに戻してほしい
0660デフォルトの名無しさん2009/06/23(火) 16:38:36
2009ってWin98で動くプログラムも作成できる?
0661デフォルトの名無しさん2009/06/23(火) 16:40:04
2009ってキーボードに付いた精子を綺麗に拭き取ることできる?
0662デフォルトの名無しさん2009/06/23(火) 17:18:48
Windowsのフォルダ選択ダイアログって開けましたっけ?
0663デフォルトの名無しさん2009/06/23(火) 17:22:47
なにを?
0664デフォルトの名無しさん2009/06/23(火) 22:58:28
SelectDirectoryのoverload版で。
0665デフォルトの名無しさん2009/06/25(木) 10:26:27
>overload版で。

これって何ですか?
0666デフォルトの名無しさん2009/06/25(木) 11:07:22
マルチな上にヘルプも読まない人には無理。
0667デフォルトの名無しさん2009/06/25(木) 11:37:17
知らないならレスしないで下さい。ウザいだけです。
06686652009/06/25(木) 11:57:36
 ↑(667)
いつもはりつきご苦労様です。
06696652009/06/25(木) 17:48:54
�d>>664
ヘルプを見たら、2つ関数があって分かりました。
はっきり言って、Exsampleをコピペして動作見たのが間違いだった(><;)
0670デフォルトの名無しさん2009/06/27(土) 21:23:42
質問です。
1画素4バイト(ゴミ, R, G, B各1バイト)のデータが
long img[4*160*120];の配列に格納されています。
これを160x120のカラー画像として、TCanvasにDrawメソッドで
描画するにはどうしたらいいのでしょうか?
img配列をTBitmap(?)などに格納すればいいみたいですが、
どのように格納すればいいのか分かりません。
よろしくお願いします。
06716702009/06/27(土) 22:45:46
>>670 long img[160*120]です。すみません。
0672デフォルトの名無しさん2009/06/27(土) 23:48:06
RGB関数で色指定して、1dotづつ書いていくのでは出目なの?
0673デフォルトの名無しさん2009/06/28(日) 00:37:00
>>670
ScanLine()を使えば少しは速くなる
ドット単位で打つと猛烈に時間がかかる
0674デフォルトの名無しさん2009/06/28(日) 02:29:26
>>672-673
ありがとうございます。ScanLine()でやってみたいと思います。
0675デフォルトの名無しさん2009/07/05(日) 14:51:56
はじめまして、BCB6使い始めて間もない初心者です。

StringGridのセルを結合する方法が分かりませんorz
先輩方、どうかご教示を(´・ω・`)
0676デフォルトの名無しさん2009/07/05(日) 15:15:47
できない
0677デフォルトの名無しさん2009/07/05(日) 15:28:00
>>675
?ttp://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200407/04070056.txt
0678デフォルトの名無しさん2009/07/06(月) 00:16:05
>>677

有難うございます!

しかし解決できずorz
もっと勉強しないとだなぁ・・・('A`)
0679デフォルトの名無しさん2009/07/06(月) 01:13:01
ほらできないw
0680デフォルトの名無しさん2009/07/06(月) 01:13:38
有償でよければ
ttp://www.tmssoftware.com/site/gridpack.asp
こんなのとか。
0681デフォルトの名無しさん2009/07/06(月) 20:37:53
StringGridは出来が悪いから使わない方がいいよね
0682デフォルトの名無しさん2009/07/06(月) 21:10:17
>>680

有償版があるくらいにアレなんですね、わざわざ有難うございます!

StringGridは2009だとその辺が改善されてるんですかね?
というか2009BCB以外に安いですね、高いけど('A`)
0683デフォルトの名無しさん2009/07/07(火) 00:05:02
StringGridはStringのGridでしかない
改良コンポなんかごろごろしてるから探せ
0684デフォルトの名無しさん2009/07/07(火) 09:45:25
Builder2009のHelpにStringGridの項目無いよ
相変わらずヘルプは腐ってるな
0685デフォルトの名無しさん2009/07/07(火) 10:25:26
>>684は
StringGridで検索しているに1000万ジンバブエドル
0686デフォルトの名無しさん2009/07/07(火) 14:30:09
セルの結合はうまくいったのですが
横スクロールすると結合したセルの表示がおかしくなります。
どうすればいいですか?
0687デフォルトの名無しさん2009/07/07(火) 14:40:15
Refresh or InvalidRect
0688デフォルトの名無しさん2009/07/07(火) 14:46:29
>>687
DrawCellイベント内なのでRefreshをすると永遠にチラつきまくりますが、
InvalidRectはヘルプに載ってないのですがAPIですか?
0689デフォルトの名無しさん2009/07/07(火) 14:51:09
InvalidateRect
でした。

>DrawCellイベント内なので

スクロールの終了後にコールすれば良いんジャマイカ?
0690デフォルトの名無しさん2009/07/07(火) 14:52:31
>>689
これは失礼しました。
TopLeftChangedでやればよかったんですよね^^
とりあえずTopLeftChangedでやったらうまくいきましたが
InvalidateRectも調べてみます。
ありがとうございました
0691デフォルトの名無しさん2009/07/09(木) 14:16:35
たすけてーーー。

今回、初めてC++Builder5を使用してプログラムを作成していますが
何もわからない。

1、以下のようなテキストファイルが存在する。
---------------------------------
1の要求を受付ました。
1の要求の応答を送信しました。
2の要求を受け付けました。
2の要求の応答を送信しました。
              <-どんどん新しいデータが入る。

---------------------------------

2、テキストファイルのデータを新しいもの順に表示する。

※↓textArea??MeMo????
--------------------------------- ↑新
2の要求の応答を送信しました。 <-新しいデータが来るたび一番上に追加される。
2の要求を受け付けました。
1の要求の応答を送信しました。
1の要求を受付ました。


--------------------------------- ↓古

上記のようなものを実現したいのですが、さっぱりわかりません。
誰か教えてください・・・(;;)w
0692デフォルトの名無しさん2009/07/09(木) 14:22:35
「○○の□□を△△した」に分解してソートすればいいんじゃね?
0693デフォルトの名無しさん2009/07/09(木) 14:47:55
TStringListでLoadして逆からSaveすればいいんじゃね?
0694デフォルトの名無しさん2009/07/09(木) 15:14:51
>>692
>>693
ありがとう
しかしぺーぺーですのでわかりません。
もっとくやしくお願いします。
0695デフォルトの名無しさん2009/07/09(木) 15:56:03
>>964
このブタ野郎がっ!!

TStringList *sl = new TStringList( );
sl->LoadFromFile( "元ファイル" );
sl->Stringsをソート
sl->SaveToFile( "新ファイル" );
delete sl;

めんどいなら↓

TStringList *sl = new TStringList( );
TStringList *wl = new TStringList( );
sl->LoadFromFile( "元ファイル" );
wl->Clear( );
for( int i = sl->Count - 1; i>= 0; i -- ){
 wl->Add( sl->Strings[i] );
}
wl->SaveToFile( "新ファイル" );
delete wl;
delete sl;
0696デフォルトの名無しさん2009/07/09(木) 16:12:53
>>695
ソートじゃきっとまずいだろ
ちゃんと逆順になめなきゃ

「表示する」ってんだから
保存は不要だろうけど

ファイル読みの排他処理も気になるが
まあ、ときどきチェックして
変化分だけ先頭に追加表示かな
0697デフォルトの名無しさん2009/07/09(木) 16:32:52
おっと、保存するかと思ったぜ。

>>696
TStringListのソートじゃアレだとおもったからソースはかかなかった。
自分で逆からぐるぐるやればアレ。

表示だけなら
TStringList *sl = new TStringList( );
sl->LoadFromFile( "元ファイル" );
for( int i = sl->Count - 1; i>= 0; i -- ){
 Memo1->Lines->Add( sl->Strings[i] );
}
delete sl;
これでいいんじゃね?
これはTMemoに書いてるがそこを変えればおk
■ このスレッドは過去ログ倉庫に格納されています