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/
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:060673デフォルトの名無しさん
2009/06/28(日) 00:37:00ScanLine()を使えば少しは速くなる
ドット単位で打つと猛烈に時間がかかる
0674デフォルトの名無しさん
2009/06/28(日) 02:29:26ありがとうございます。ScanLine()でやってみたいと思います。
0675デフォルトの名無しさん
2009/07/05(日) 14:51:56StringGridのセルを結合する方法が分かりませんorz
先輩方、どうかご教示を(´・ω・`)
0676デフォルトの名無しさん
2009/07/05(日) 15:15:470677デフォルトの名無しさん
2009/07/05(日) 15:28:00?ttp://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200407/04070056.txt
0678デフォルトの名無しさん
2009/07/06(月) 00:16:05有難うございます!
しかし解決できずorz
もっと勉強しないとだなぁ・・・('A`)
0679デフォルトの名無しさん
2009/07/06(月) 01:13:010680デフォルトの名無しさん
2009/07/06(月) 01:13:38ttp://www.tmssoftware.com/site/gridpack.asp
こんなのとか。
0681デフォルトの名無しさん
2009/07/06(月) 20:37:530682デフォルトの名無しさん
2009/07/06(月) 21:10:17有償版があるくらいにアレなんですね、わざわざ有難うございます!
StringGridは2009だとその辺が改善されてるんですかね?
というか2009BCB以外に安いですね、高いけど('A`)
0683デフォルトの名無しさん
2009/07/07(火) 00:05:02改良コンポなんかごろごろしてるから探せ
0684デフォルトの名無しさん
2009/07/07(火) 09:45:25相変わらずヘルプは腐ってるな
0685デフォルトの名無しさん
2009/07/07(火) 10:25:26StringGridで検索しているに1000万ジンバブエドル
0686デフォルトの名無しさん
2009/07/07(火) 14:30:09横スクロールすると結合したセルの表示がおかしくなります。
どうすればいいですか?
0687デフォルトの名無しさん
2009/07/07(火) 14:40:150688デフォルトの名無しさん
2009/07/07(火) 14:46:29DrawCellイベント内なのでRefreshをすると永遠にチラつきまくりますが、
InvalidRectはヘルプに載ってないのですがAPIですか?
0689デフォルトの名無しさん
2009/07/07(火) 14:51:09でした。
>DrawCellイベント内なので
スクロールの終了後にコールすれば良いんジャマイカ?
0690デフォルトの名無しさん
2009/07/07(火) 14:52:31これは失礼しました。
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:350693デフォルトの名無しさん
2009/07/09(木) 14:47:550695デフォルトの名無しさん
2009/07/09(木) 15:56:03このブタ野郎がっ!!
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ソートじゃきっとまずいだろ
ちゃんと逆順になめなきゃ
「表示する」ってんだから
保存は不要だろうけど
ファイル読みの排他処理も気になるが
まあ、ときどきチェックして
変化分だけ先頭に追加表示かな
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
0699デフォルトの名無しさん
2009/07/09(木) 16:36:260700デフォルトの名無しさん
2009/07/09(木) 16:40:13---------------
| |
常に | | 常に
書き込み-> | | <-読み込み
| |
| |
---------------
を行うわけですが、問題ないですか?
問題がある場合は、みなさんはどのように対応していますか?
0701デフォルトの名無しさん
2009/07/09(木) 16:42:09おうっ!壊れた。
初心者ですので勘弁してください。
ひとつのログファイルに常に書き込むプログラムと常に読み込むプログラムが
いるけど大丈夫ですか?
0702デフォルトの名無しさん
2009/07/09(木) 17:54:29無料のものならFirebird。
0703デフォルトの名無しさん
2009/07/09(木) 18:00:28どうすれば良い○| ̄|_
0704デフォルトの名無しさん
2009/07/09(木) 18:14:530705696
2009/07/09(木) 18:19:17ただのログファイルの表示に
それはないだろ
>>701
書き込み側のプログラムは
既存のものなのか?
書き直しはできるのか?
あーあ、現実逃避中
0707デフォルトの名無しさん
2009/07/09(木) 22:09:30テキストファイルはログの保存だけに使う
0708デフォルトの名無しさん
2009/07/09(木) 22:22:01一定数行を越えると古いものを削除したりするの?
二つのプロセスが一つのファイルいじるならミューテクスとかで排他制御するといいよ。
0709デフォルトの名無しさん
2009/07/10(金) 02:11:200710696
2009/07/10(金) 09:19:48どうしてふたつのプログラムにするのかわからんが
要はプログラム間通信ということだな。
簡単には、書き込みファイルの存在をフラグとして
読み込み側で読んだら消すというハンドシェイクをする。
必要なら読み込み側で別ファイルに保存する。
もちろん、書き込み側はログを遅延書き込みできなきゃダメだが。
>>709
それももちろん必要だが、それだけで解決できないよね。
0711デフォルトの名無しさん
2009/07/10(金) 12:27:28簡単に解決できるだろ。
0712デフォルトの名無しさん
2009/07/10(金) 13:53:26リトライするってこと?
0713デフォルトの名無しさん
2009/07/10(金) 18:05:17読み込み側は、FILE_SHARE_WRITE指定
で問題なく読み書きできるだろ。
0714デフォルトの名無しさん
2009/07/10(金) 22:46:12その設定でオープンしたまま処理するの?
タイミングによっては、どこまでが読めてくるのか
心配なのだが・・・
691さん、実験してみて
0715デフォルトの名無しさん
2009/07/12(日) 20:23:17何の成果も得られません。
それでも、何ヶ月も毎日読み続けてたら、Windowsプログラムを作れるように
なりますか。
それとも、ニートになって毎日起きてる時間の全部を、その学習に費やして
10年という歳月を掛けても、無理ですか。
0716デフォルトの名無しさん
2009/07/12(日) 21:06:48読み続ける、学習を続けるだけでは一生無理
何が言いたいかというととにかくまずプログラムを書け
動くものを作れ
簡単なものから徐々にレベルアップしていけばいい
実践のなかで知識の本質を理解しろ
0717デフォルトの名無しさん
2009/07/12(日) 21:58:18とにかく作れと云っても無理ぽ
何もわからんのだから。
一番の近道は、ソースを読むこと。
評判のいいソース、あるいは自分が作りたいプログラムに近いものの
ソースを読み、実際にコンパイルして動かして動作を確認する。
そして、ちょっとだけプログラムを変更してみて
自分の思った通りに動くかどうかを確認する。
まあ、こんなところからやってみるのが現実的であろう。
0718デフォルトの名無しさん
2009/07/13(月) 19:25:54みんなアドバイスありがとう
ログもDBで管理するようになりました。
いいのかな???まぁいいや。
BCB5でのDBアクセスの方法等を調査しなくては...。
0719デフォルトの名無しさん
2009/07/13(月) 20:51:06BCBは基本的に殆どのライブラリをVCLに頼っているから
Delphiの参考書があればほとんどそのまま移植できる
0720デフォルトの名無しさん
2009/07/14(火) 09:32:38できないのは class of に相当する定義だけじゃない?
0721デフォルトの名無しさん
2009/07/14(火) 09:53:42.pasファイルをそのままプロジェクトに組み込めるw
Delphiで作成したクラスは、実体宣言できなくて、”ポインタ宣言&new”というのが最大の制限。
0722デフォルトの名無しさん
2009/07/14(火) 10:30:210723デフォルトの名無しさん
2009/07/14(火) 10:33:540724デフォルトの名無しさん
2009/07/14(火) 11:21:28pasソースをBuilderのプロジェクトにぶちこめばいい。
0725デフォルトの名無しさん
2009/07/14(火) 17:31:180726デフォルトの名無しさん
2009/07/14(火) 21:10:08先週から常連になってきたペーペーです。
新たな問題が発生しました・・・。助けてください。
2台のPCが存在します。
各PCには共有フォルダと作業用フォルダを持っています。
PC1からPC2へ何か要求を行う場合、PC2の共有フォルダに要求が入力された
ファイルが置かれます。
各PCは自分の共有フォルダをポーリングしていて、ファイルを発見した場合
そのファイルを作業フォルダに移動させます。(要求の処理は他の人の担当です)
(コピー後削除? 切り取りはできますか?)
上記の動作をexeを起動したら自動的にスレッドを起こして、その中で行う
みたいです。
まず、スレッドって何?から話が始まって、とりあえずそこはなんとなく理解
できました。
しかし、スレッドの起こす方法や、起動時に自動ってどうやって??
で詰まっています。
要は、何もわからない状況です。助けてください。
周りにC++できる人が一人もいないのです・・・。
DBアクセスもできていなのに・・・。泣きたい。
0727デフォルトの名無しさん
2009/07/14(火) 21:13:580728デフォルトの名無しさん
2009/07/14(火) 22:22:20その腐った仕様は誰がどうやって決めたんだ?排他処理は?スレッドの必要性は?
とそんなことをそいつにちゃんと考えさせろ。
スレッドはTThreadを派生させて作る。
0729デフォルトの名無しさん
2009/07/14(火) 23:22:25お前にはまだ早い
0730デフォルトの名無しさん
2009/07/14(火) 23:35:350731デフォルトの名無しさん
2009/07/14(火) 23:42:46実用的とは考えにくいなー
0732デフォルトの名無しさん
2009/07/15(水) 05:04:17セマフォー or CriticalSectionの概念を理解させるために
問題を単純化して、ファイルで制御させる目的で
どっかの田舎の専門学校が学生に出した課題
って感じだな。
0733デフォルトの名無しさん
2009/07/15(水) 09:58:57たしかに>>726はプログラムの知識は文句言ってる貴様らと大差はないが
実際に運用するときはこんな使い方をするところもある
0734デフォルトの名無しさん
2009/07/15(水) 10:09:32説明が悪いので勘違いされたかもしれませんが
勉強課題ではないんです。
自分の担当分以外は全く理解できていませんが、
これが一番良い方法らしいです。
>>733
ありがとう
少し落ちこんでいました。
>>729
の言うと通り、技術的にまだ未熟ですので皆さんに助けを
お願いしたいのです。
0735デフォルトの名無しさん
2009/07/15(水) 10:22:57発言力はあるが、知識のない奴が
たくさんいるからな
0736デフォルトの名無しさん
2009/07/15(水) 10:31:23タイマーでやるよりはスッドレの方が好みだな。
同期に関して、Windows のセマフォは実装に問題があるから、
使うときは良く考えた方がいい。大抵はミューテックスか
クリティカルセクションで事足りるけど。
とりあえず思いついたことだけ。
要点もまとめられないほどわかってないやつをこのような場所で
サポートするのは至難だと思うな。
0737デフォルトの名無しさん
2009/07/15(水) 10:33:000738デフォルトの名無しさん
2009/07/15(水) 16:32:17その「ここ」には「地球」すら違和感なく入る。
0739デフォルトの名無しさん
2009/07/16(木) 15:54:51誰かBCB5でのSetTimer,KillTimerの使い方おしえて
0740デフォルトの名無しさん
2009/07/16(木) 16:38:400741デフォルトの名無しさん
2009/07/16(木) 16:41:00コラ
偽者め
お前が教えろ
0742デフォルトの名無しさん
2009/07/16(木) 16:42:280743デフォルトの名無しさん
2009/07/16(木) 16:43:31知らんなら黙ってろカス
知ってる人早く教えてください
詳しく
0744デフォルトの名無しさん
2009/07/16(木) 17:12:42KillTimer(なんちゃら)
知らんけど。
0745デフォルトの名無しさん
2009/07/16(木) 17:22:18早く調べて教えろボケ
0746デフォルトの名無しさん
2009/07/16(木) 17:24:560747デフォルトの名無しさん
2009/07/16(木) 17:55:55長すぎて読む気がしないからまとめろ無能
0748デフォルトの名無しさん
2009/07/16(木) 18:24:52いつまで待たせる気だ
無能め
0749デフォルトの名無しさん
2009/07/16(木) 18:31:53ttp://oshiete1.goo.ne.jp/qa3499000.html?ans_count_asc=20
0750デフォルトの名無しさん
2009/07/18(土) 09:04:36********* unit1.h のTFormのpublicに追加
public: // ユーザー宣言
UINT_PTR myEvent;
static int CALLBACK MyTimerProc(HWND hWnd, UINT uMsg, UINT_PTR nIDEvent, DWORD dwTime);
********* unit1.cpp
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
myEvent = NULL;
SetTimer(this->Handle, myEvent, 1000, (TIMERPROC)MyTimerProc);
}
//---------------------------------------------------------------------------
int CALLBACK TForm1::MyTimerProc(HWND hWnd, UINT uMsg, UINT_PTR nIDEvent, DWORD dwTime)
{
Form1->Caption = AnsiString(rand() % 100); //適当にキャプション変えてみる
return 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
KillTimer(this->Handle, myEvent);
}
//---------------------------------------------------------------------------
0751デフォルトの名無しさん
2009/07/18(土) 09:08:32SetPropとか使ってthisを渡すとかすんのかな・・・めんどくさ
■ このスレッドは過去ログ倉庫に格納されています