くだすれC++Builder(超初心者用)その5

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。

■C++Builder XE2 - エンバカデロ・テクノロジーズ
http://www.embarcadero.com/jp/products/cbuilder


<過去スレ>
くだすれC++Builder(超初心者用)その4
http://toro.2ch.net/test/read.cgi/tech/1256256376/
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/
くだすれC++Builder(超初心者用)その2
http://pc10.2ch.net/test/read.cgi/tech/1144308804/
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/

<兄弟スレ>
くだすれDelphi(超初心者用)その54
http://toro.2ch.net/test/read.cgi/tech/1325028195/
2デフォルトの名無しさん:2012/04/21(土) 13:28:16.69
では質問をどうぞ。
3デフォルトの名無しさん:2012/04/21(土) 18:15:39.43
OPENARRAYマクロ使いにくいな

カッコを二重にしないといけない
4デフォルトの名無しさん:2012/04/22(日) 20:02:39.17
ネイティブアプリ作成では一番使いやすいと思うが、なぜにこんなにマイナーなの?

VC++のほうが人気がある理由がわからん
5デフォルトの名無しさん:2012/04/23(月) 00:34:22.12
VCのほうがつかいやすくね?

MFCはソース見れば大体わかるからな
パスカレなんて嘔吐
6デフォルトの名無しさん:2012/04/23(月) 01:07:14.49
>>4
VCLの設計が古いからだよ
FMも怪しいし

C#のためにヘジタンをM$に引きぬかれてからちっとも進歩してない
7デフォルトの名無しさん:2012/04/23(月) 10:26:00.01
XE3出たか?
8デフォルトの名無しさん:2012/04/25(水) 17:57:32.48
<関連スレ>
[Tips]Borland C++Builder ちょいテク No.01
http://toro.2ch.net/test/read.cgi/tech/1154580209/

Embarcadero RAD Studio/Delphi/C++Builder その2 ←New!
http://toro.2ch.net/test/read.cgi/tech/1335177837/
9デフォルトの名無しさん:2012/05/01(火) 20:31:05.68
             ∧ . -‐. : . : . : . : .  ̄`丶/>ヘ',ー.、
.         __  //: . : . : . : . : . : . : . : . : . : \: . }i: : :\
         }l>/: . : . : . : . : . : . : . : . : . : . : . : :.\}i: . : . :\__
       /}レ': : . : . : . : . : . : . : . : . : .\: . ヽ: . : . :.ヽ: . : . : . ヽ`
       /: :/: . : . : . : . :l: :八: . : . : : \: : : : : '. : . : . :l: . : . : l: : l
.      /: :/: . : . : . : . :/l: :| \: :\: : : \: : . :l: . : :...:|: . : . : l: . l
     /: ://: : . : . :.|: / .j: :|   \: ヽ\:ヽ\: :|: . : |: :|: : |: . :l: : |
     //://|: : :l: : . i斗'^        ,ィf弌ぅ 、ヽ|: . : l: :|: : |: . :|\|
   //:ノ /|: :/}: : : |: l ,ィf゚う       ト::)゚ィリヽ|: . : |:/: : :|: . :|
     }: : /|:|:/: |: : ∧:i/ん:::ハ      弋c少' |: . : |}: : :.|: . :
     |: / .|:|': : |: :/: :i 弋cソ        、、、、、. |: . :八: . :八: .|
     |/  l: : : :|V: : ハ  、、、、  ′         l: ./:∧: ./  ヽ
       八: :.∧: |: :人   r 、_  、     ィ .ノ:/:/ }:./||
        ∨ V}: : |: /i>}/ ,へ、   イ j:V/:/ /  C++Builderなんて、
              八: :|/__ !  / ハ _.斗‐{       使ってる人いるのかなぁ…?
              ∧!  _|    ' /´     》──--、
            _/    |:::_}   .|ー─--<       |
          /___  i }∧   ノ:::::::::::::::::::/ /     |
          V    /  }.  イ l\::::::::::::/ /     :|
         rヘ   xヘ    ∨ | |:| \/_/      人
         /_/   '、  _ヽ | |:|   ./   - ─   - 〉
.        /        ヽ/// j/  〈 / -‐   /
10デフォルトの名無しさん:2012/05/03(木) 03:32:52.96
C#に比べると起動が速いだけで他はあまりメリットないな
11デフォルトの名無しさん:2012/05/04(金) 23:55:11.37
>>10
あとEXEのサイズが全然違う
開発環境が入っていればDLLは必要ないけど配布版はライブラリリンクしないと
C#は全てダイナミックリンクだから
12デフォルトの名無しさん:2012/05/05(土) 04:49:10.41
プッ
13デフォルトの名無しさん:2012/05/05(土) 14:36:44.07
>>12
ねえ悔しい?
MSILは64bit環境では64bitにコンパイルされて動くんだよ
14デフォルトの名無しさん:2012/05/05(土) 15:06:57.43
くやしすぎるよぉ
15デフォルトの名無しさん:2012/05/07(月) 12:04:39.83
XE2 から clang の改変版に切り替わったから、XE3 で LLVM コードを出せるようになって問題解決
16デフォルトの名無しさん:2012/05/07(月) 14:32:49.54
Delphi 本体は FPC に切り替わるしな。
17デフォルトの名無しさん:2012/05/07(月) 16:43:23.04
おもしろいですね(棒)
18デフォルトの名無しさん:2012/05/08(火) 09:13:40.03
TServiceを使用してサービスを作ったのですが、
exeをリネームして複数サービスを登録したい場合どうすればよいのでしょうか?

TServiceのNameをファイルなどで動的に変えればインストールは成功したのですが、
肝心のサービスが使用できません。Nameを固定にすると複数のサービスをインストールできません・・・

よろしくお願いいたします。
19デフォルトの名無しさん:2012/05/10(木) 16:05:19.95
XE3出たか?
20デフォルトの名無しさん:2012/05/15(火) 10:20:38.10
さて、まもなくC++Builderも64bit版になりますよぉ〜
21デフォルトの名無しさん:2012/05/15(火) 11:19:37.48
>C++Builderも64bit版
10年遅れて、自社技術で対応できなくて...

clang 自分でビルドするのとなにが違う?
22デフォルトの名無しさん:2012/05/15(火) 23:06:25.57
win用で軽くてサイズも小さいcのコンパイラって何がありますか?
23デフォルトの名無しさん:2012/05/16(水) 00:03:23.16
lsisishokuban
24デフォルトの名無しさん:2012/05/16(水) 00:04:33.71
win用という条件がある以上、ない。
25デフォルトの名無しさん:2012/05/16(水) 01:06:24.30
Digital Mars Compiler Version 8.42n
dm852c.zip  3,009KB

LSIC試食版(MS-DOS)
lsic330c.lzh  401KB

Borland C++ 5.5.1 for Win32
freecommandlinetools2.exe  8672KB
26デフォルトの名無しさん:2012/05/17(木) 13:49:19.56
TPopupMenuのMenuItemを動的に作成しているのですが

PopupMenu->Items->Clear( );
for( int i = 0; i < Cnt; i ++ ){
 TMenuItem *mi = new TMenuItem(this);
 mi->Caption = buff[i];
 mi->OnClick = MenuItemClick;
 PopupMenu->Items->Add( mi );
}

毎回Clearして作り直しているのにメニューが最後に表示したCaptionの最大幅になってしまいます
これそのときに作成したCaptionの幅にするにはどうしたらいいですか?
27デフォルトの名無しさん:2012/05/17(木) 16:21:03.00
void __fastcall TForm1::MenuItemClick(TObject *Sender)
{
TControl* control;
TMenuItem* mi = dynamic_cast<TMenuItem*>(Sender);
control = dynamic_cast<TControl*>(FindComponent(Components[mi->Tag]->Name));
control->Enabled = !control->Enabled;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int Cnt = PopupMenu1->Items->Count;
char *buff[] = {"Test1", "Test2", "Test3"};

PopupMenu1->Items->Clear();

for (int i = 0; i < Cnt; i++) {
TMenuItem* mi = new TMenuItem(this);
mi->Caption = buff[i];
mi->OnClick = MenuItemClick;
PopupMenu1->Items->Add(mi);

こんな感じでしょ
ちゃんと切り詰められて表示されるよ
}
}
28デフォルトの名無しさん:2012/05/17(木) 16:35:49.79
>>27
char *buff[] = {"Test1", "Test2", "Test3"};
これ固定になってますが、ここの長さが可変なんですよ
たとえば
char *buff[] = {"Test1ああああああああああああああああああああ", "Test2", "Test3"};
というメニューを作成して次に
char *buff[] = {"Test1", "Test2", "Test3"};
これを作ると最初に作ったメニューの幅になりません?
ちなみにC++Builder2010を使ってます
29デフォルトの名無しさん:2012/05/17(木) 17:58:17.26
>>28
こういう事ですか?Button1を押してからButton2を押すとちゃんと切り詰められます
XE2です
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int Cnt = PopupMenu1->Items->Count;
char *buff[] = {"Test1111111111111111111", "Test2", "Test3"};

PopupMenu1->Items->Clear();

for (int i = 0; i < Cnt; i++) {
TMenuItem* mi = new TMenuItem(this);
mi->Caption = buff[i];
mi->OnClick = MenuItemClick;
PopupMenu1->Items->Add(mi);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int Cnt = PopupMenu1->Items->Count;
char *buff[] = {"Test1", "Test2", "Test3"};

PopupMenu1->Items->Clear();

for (int i = 0; i < Cnt; i++) {
TMenuItem* mi = new TMenuItem(this);
mi->Caption = buff[i];
mi->OnClick = MenuItemClick;
PopupMenu1->Items->Add(mi);
}
}
30デフォルトの名無しさん:2012/05/17(木) 18:44:37.23
>>29
ありがとうございます、。
まさにそういうことなのですが・・・
2010が悪いのか自分のコードが悪いのかがわからないので
ちょっとこっちも同じコードで試してみます。
31デフォルトの名無しさん:2012/05/17(木) 18:53:11.52
>>29
まったく同じコードを試してみたした。
やはりダメでした。
まずButton2を押すとメニュー幅は普通
次にButton1を押すと"Test1111111111111111111"の文だけメニューが広がる(これも普通)
次にButton2を押すとButton1で作成されたメニュー幅のままになっています・・・
うーん、2010のバグなのかなあ・・・
32デフォルトの名無しさん:2012/05/17(木) 19:49:43.25
5と2009で試したけどちゃんと切り詰められます
33デフォルトの名無しさん:2012/05/17(木) 20:26:07.04
>>31
アップデート当ててる?
3426:2012/05/18(金) 09:54:57.15
アップデートしてます。
5でも2009でも大丈夫なら2010でも大丈夫なはず・・・
おかしいな>>29と同じコードやってみたのになあ
35デフォルトの名無しさん:2012/05/18(金) 11:48:02.85
2010のQCにPopupMenuのWidthのバグとか出とらん?
もうdepricatedだから自分でソースいじくって直すしかないけど直し方のヒント位は
出てるだろうと思う
36デフォルトの名無しさん:2012/05/18(金) 11:58:23.87
>>35
これどう?メインメニューにサブメニューを追加するんだけどサブメニューも幅がおかしい?

void __fastcall TForm1::Button2Click(TObject *Sender)
{
int Cnt = PopupMenu1->Items->Count;
char *buff[] = {"Test1", "Test2", "Test3"};
char *buff2[] = {"Sub11", "Sub22", "Sub33"};

PopupMenu1->Items->Clear();

for (int i = 0; i < Cnt; i++) {
TMenuItem* mi = new TMenuItem(this);
mi->Caption = buff[i];
// mi->OnClick = MenuItemClick;

PopupMenu1->Items->Add(mi);

// サブメニューを動的に配置する
for (int j = 0; j < 2; j++) {
TMenuItem* ms = new TMenuItem(mi);
ms->Caption = buff2[j];
mi->Add(ms);
}
}
}
3726:2012/05/18(金) 12:08:59.27
こんなしょーもない質問にマジレスしてくれてありがとう

>>36
やってみます
3826:2012/05/18(金) 13:14:36.51
>>36
やってみました。
結果はサブメニューの幅はちゃんと文字列の幅になっていました。
39デフォルトの名無しさん:2012/05/18(金) 13:22:18.65
>>38
という事は一番上のメニューだけのバグか・・・不可解だな
4026:2012/05/18(金) 13:50:20.95
そうですね、一番上のメニューの幅が何故か表示した最大の幅で記憶されている感じです
ちなみに、メニューを表示していたフォームを閉じて再度開いて表示させると
初回表示時みたいに最初だけちゃんと表示されます
そんなわけで、これMenuItemをClearじゃなくて
TPopupMenuごと削除して作り直せばいいかもしれませんが・・・
41デフォルトの名無しさん:2012/05/18(金) 13:54:46.16
TPopupMenuコンポーネントにバグがあるんじゃね

clear()じゃなくてTPopupMenuそのものを初めから動的に配置したらどうですか?
4226:2012/05/18(金) 14:06:46.63
>>41
フォームを開くたびに幅が初期化されているので
TPopupMenuを動的に作成したら多分うまくいくとおいますが・・
とりあえず現状ではそれしか回避策は無いですよね。

皆さん色々ありがとう
今回はTPopupMenuを動的に作って逃げてみます
43デフォルトの名無しさん:2012/05/18(金) 17:45:18.51
いえいえ
お礼は結構ですよ
44デフォルトの名無しさん:2012/05/18(金) 20:02:26.24
>>43
あんた誰?

>>42
http://pastebin.com/X7E3s6pC

こんな感じでTListを使って管理するのが普通でしょうね
4526:2012/05/21(月) 10:44:21.93
>>44
マジですか!
ちょっとそれやってみます、ありがとう
46デフォルトの名無しさん:2012/05/22(火) 20:00:42.86
(Image1 はTImageコンポ。)

Image1のStretchをtrueにする。
(Image1のWidthとHeightは200とする)
Image1の大きさよりも大きい画像(400*400のビットマップ)を
Image1->Picture->LoadFromFileで表示させる。

これで表示は出来るんだけど
Image1->Canvas->Pixels[i][j]で縦200横200のドットの色を取得すると
元の400*400の画像の左上から縦200横200の取得になってしまう。

ストレッチされた画像の縦200横200を参照するにはどうしたらいい?
教えてくれ。

わかりにくくてごめんね。
47デフォルトの名無しさん:2012/05/22(火) 22:36:23.31
>>46
TImageの中に保持しているTBitmapはあくまでも元のイメージそのままで、表示の時に
Stretchしているに過ぎない
だからストレッチされた値がどうしても欲しければ他のコントロールにStretchDrawして(非表示でよい)
そこから読み取る必要がある
下のプログラムはちゃんと異なる値を表示する
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("1.bmp");
Image2->Canvas->StretchDraw(Rect(0, 0, 200, 200), Image1->Picture->Graphic);

int x = Random(200), y = Random(200);

TColor tc1 = Image1->Picture->Bitmap->Canvas->Pixels[x][y];
TColor tc2 = Image2->Picture->Bitmap->Canvas->Pixels[x][y];

Label1->Caption = "x = " + IntToHex(tc1, 8);
Label2->Caption = "y = " + IntToHex(tc2, 8);
}
48デフォルトの名無しさん:2012/05/23(水) 09:37:17.52
TToolBarのButtonWidthを変更してもToolButtonの幅が変わらない
どうしたら変わるんですか?
ToolButtonのはチェックにしてます
49デフォルトの名無しさん:2012/05/23(水) 13:54:19.23
>>48
やってみたけど変わるけど
バージョンは何かな
50デフォルトの名無しさん:2012/05/23(水) 15:49:43.74
>>49
あれ?こっちじゃオブジェクトインスペクタで設定しても値がもどっちゃいます
2010です。
51デフォルトの名無しさん:2012/05/23(水) 15:58:14.83
>>49
あー、わかりました。
ShowCaptions=Trueならダメなんですねこれ・・・
キャプションを表示しつつToolButtonの幅は変えられないですかね?
52デフォルトの名無しさん:2012/05/23(水) 16:56:11.78
Captionを表示するとWidthが固定されちゃいますね
53デフォルトの名無しさん:2012/05/23(水) 18:38:12.26
ですよね・・・
54デフォルトの名無しさん:2012/05/23(水) 22:44:42.27
でしょうね・・・
55デフォルトの名無しさん:2012/05/24(木) 21:05:04.39
TDictionaryをC++Builderで使うにはどのように書けばいいのでしょうか
さっぱりコンパイルが通りません

char s;

Memo1->Clear();
dic = new TDictionary__2<unsigned short, char>;
for (w = 0; (unsigned int)w < 0x10000; w++) {
s = char(w);
dic->Add(w, s);
}
56デフォルトの名無しさん:2012/05/24(木) 21:59:42.99
C++で記述された実定義がないので、
template class を新たな型で new することはできません。
57デフォルトの名無しさん:2012/05/24(木) 22:10:16.51
ガ━━(;゚Д゚)━━ン!!
Delphiを使えという事か・・・・
そう言えばC++ではTDictionaryではなくstd::mapを使えと書いてあったような
ありがとうございました
58デフォルトの名無しさん:2012/05/25(金) 13:33:58.77
std::mapがあまりにも遅いのでstd::hash_mapを使ってみたら2倍ほどになったけど
TDirectoryよりまだまだ遅い・・・・

boost::mapの方が速いのかなあ?
59デフォルトの名無しさん:2012/05/25(金) 14:07:31.08
Builder2007で質問ですが
Form1からForm2を呼ぶときにForm2のFormStyleをfsStayOnTopにしているのに
Form1をクリックするとForm2がForm1の後ろに行っていまいます
Builder5じゃそんな事はなかったのですが
2007辺りから↓
SetApplicationMainFormOnTaskBar(Application, true);
こいつが悪さしてるって以前に聞いたことあるのですが
これはランタイムテーマ有効?のだとおもうんですが
それがONの状態でもfsStayOnTopで背後に行かないようにする方法を教えてください
60デフォルトの名無しさん:2012/05/25(金) 14:41:05.19
>>59
XE2だけどそういう症状は出ないよ
61デフォルトの名無しさん:2012/05/25(金) 14:48:16.55
>>60
5も大丈夫だったので2007だけかもしれません。
とりあえずWMWindowPosChangingメッセージでTOPにして常に最上位に表示するようにしてますが・・・
2007ってバグ多いからなあ
62デフォルトの名無しさん:2012/05/25(金) 15:25:38.56
>>61
Form2ってForm1から動的に生成してる?それともUnit2として後からShow()してる?
63デフォルトの名無しさん:2012/05/25(金) 15:38:04.10
>>62
Form1のコンストラクタで動的に作成してます
んで、Form2を表示させる場合にShowして必要なくなったらHideしてます。
Form2はフリーせずにずっと非表示で存在してます
64デフォルトの名無しさん:2012/05/25(金) 16:07:48.89
>>63
んーモーダルにしてもモードレスにしてもやっぱりForm2はForm1の背後に行かないです
65デフォルトの名無しさん:2012/05/25(金) 16:25:57.52
>>64
ランタイムテーマは有効になってますよね?
やっぱり2007だけのバグかなあ・・
66デフォルトの名無しさん:2012/05/25(金) 16:34:37.92
>>65
XE2ではランタイムテーマはデフォルトで有効です
67デフォルトの名無しさん:2012/05/25(金) 16:37:51.97
>>66
そうですよね、2007もデフォで有効になってますし
色々ありがとうございます。
とりあえずメッセージで回避できるのでそうしておきます・・
68デフォルトの名無しさん:2012/05/25(金) 16:47:22.25
>>66
何かメッセージで処理するのを止めても背後に行かなくなった
んで、色々ためしててちょっとわかったのですが
どうもForm1をアイコン化したらForm2が背後にいっちゃうみたいです

そんなわけで、以下の手順で試してもらっていいですか?
1.Form1を表示してForm2をfsStayOnTopで表示
2.Form1をアイコン化(この時にForm2も消える)
3.Form1を元に戻す(Form2はどこかに行ってしまてtみえなくなる)
4.Form2を再度fsStayOnTopで表示(見た目上はForm1の上に表示される)
5.Form1をクリックしてみる、そうするとForm1の上に表示されているはずのForm2が裏に行ってしまう
69デフォルトの名無しさん:2012/05/25(金) 20:05:38.96
>>68
XE2だとForm1をアイコン化するとForm2も同時にアイコン化するのは同じです
しかしその後Form1を戻すとForm2もちゃんと前面に表示された状態で再表示されました

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2 = new TForm2(Application); // 生成
Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Application->Minimize();
}
//---------------------------------------------------------------------------

こんな感じです
70デフォルトの名無しさん:2012/05/25(金) 20:06:39.07
あっちょっと違ってました

アイコン化するのはForm1だけで、Form2は消えてしまいアイコンになりません
しかしタスクバーをクリックするとForm2がForm1の上に重ねられて再表示されます
71デフォルトの名無しさん:2012/05/25(金) 20:48:18.31
FormにTLabelを貼り付けたら
TLabel *Label1;
と宣言挿入されたのですが

実際に、newはどこに書かれているのですか?
72デフォルトの名無しさん:2012/05/25(金) 20:48:59.94
Project1.cpp(デフォルト名)じゃないの?
73デフォルトの名無しさん:2012/05/25(金) 21:24:36.12
今見たらApplication->CreateForm()って専用のメソッド呼び出してますね
74デフォルトの名無しさん:2012/05/25(金) 21:52:36.57
>>73
質問の仕方が悪かったです。申し訳ありません。

Label1 = new TLabel();

というのが、とこに書いてあるのかが知りたいです。
75デフォルトの名無しさん:2012/05/25(金) 22:01:43.60
>>74
それVCLの中に書いてあるんじゃない?
CreateForm()がフォームに貼り付けてあるコンポーネントを全部初期化するんでしょうね
76デフォルトの名無しさん:2012/05/25(金) 22:12:47.64
>>74
IDEによって管理されているから、そういう記述はどこにも書かれていない。
VCL内部でフォームの情報を読んでそれぞれのコンポーネントを生成、初期化している。
77デフォルトの名無しさん:2012/05/25(金) 22:13:31.37
>>69-70
ありがとうございます。
XE2ではちゃんと表示されるのですね・・・
やっぱり2007だけの現象なんですね
78デフォルトの名無しさん:2012/05/29(火) 10:20:37.46
誰かさピクセル関数の使い方教えてくれる人いない?
課題で黒い線の上を車の画像走らせるアプリ作ってるんだけどその車の左右には触覚?みたいなものがついていてその触覚の色を取得したいんだが・・・
79デフォルトの名無しさん:2012/05/29(火) 16:38:22.87
>>78
Pixel()は遅いからScanLine()で一行取得してからそれを調べるのが定石
80デフォルトの名無しさん:2012/05/29(火) 20:32:10.95
学校の課題レベルで問題になるほど、でPixel()が遅い訳ねえじゃん。
81デフォルトの名無しさん:2012/05/29(火) 22:56:23.22
マウスホイールイベントをMESSAGE_HANDLERで捕まえて、処理する関数
 ttp://www.gesource.jp/programming/bcb/43.html
がBCB6では動いていたんですが、
XE2にしたらイベントを捕まえられなくなりました。

単純に以下のソースをForm1にコピーして、
ホイールを回したら、MessageBoxが出るように改良しているだけです。
なぜでしょうか。理由がわからなくて困っています。
また、その理由に基づいてどうしたらよいですか?
※Win7 32bit
82デフォルトの名無しさん:2012/05/29(火) 22:57:39.22
× 単純に以下のソースをForm1にコピーして、
○ 単純に上のソースをForm1にコピーして、
^^
83デフォルトの名無しさん:2012/05/30(水) 09:41:42.41
^^
84デフォルトの名無しさん:2012/05/30(水) 10:10:48.54
>>81
http://toro.2ch.net/test/read.cgi/tech/1335177837/173
にも書いてあるけど

void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled)
{
if (Msg.message == WM_MOUSEWHEEL) {
Application->MessageBox(L"マウスホイールが回されました。", L"", MB_OK);
}
}

でいいんじゃないの
85デフォルトの名無しさん:2012/05/30(水) 10:19:22.99
とりあえずマウスダウンでピクセル使って色を取得するプログラム作ったんだけどフォームの色しか取得出来ないんだが
イメージ画像とかコンポーネントの色が取得出来ないのは何でだ?
86デフォルトの名無しさん:2012/05/30(水) 10:22:16.06
基本的にCanvasの色しか取得出来ないだろ
それかBitmapか
87デフォルトの名無しさん:2012/05/30(水) 10:30:24.03
いまからはじめても大丈夫?
会社つぶれない?
88デフォルトの名無しさん:2012/05/30(水) 10:42:02.25
つぶれない。でもあと3ヶ月待て。C++BuilderはXE3で本気出す予定()だから。
89デフォルトの名無しさん:2012/05/30(水) 10:48:40.13
>>86
コンポーネントの色を取得出来ないのはしかたがないとしてビットマップ画像の色は取得したい
90デフォルトの名無しさん:2012/05/30(水) 11:29:30.35
カーソル直下に存在するコンポーネントのCanvasでPixels()を使え
91デフォルトの名無しさん:2012/05/30(水) 16:41:41.04
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("1.bmp");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int x = Random(Image1->Width);
int y = Random(Image1->Height);

Label1->Caption = UnicodeString().IntToHex(Image1->Canvas->Pixels[x][y], 8);
}
//---------------------------------------------------------------------------

こんなのでしょ
今まで何回も出てきてるけど
Button1で画像をロードしてButton2でランダムな点のTColorをゲットする
92名無しさん@お腹いっぱい:2012/05/30(水) 18:30:22.70
裁判所の力
93デフォルトの名無しさん:2012/05/30(水) 20:11:44.34
StringGirdのセルに、IMEで漢字入力したくて、以下のソースをググってつくてみました。
入力セルの内にIMEの変換候補が表示されるプログラムです。
(XE2を使っています)

入力直後だけ変換候補が表示されません。
例:あるセルで、IMEをONにして文字列を打ち込んでいくと、
東京都[スペース] ←この段階では、変換候補が表示されない。
[改行]      ←確定で「東京都」の文字が表示される。
港区[スペース]  ←これ以降の続き入力では、変換候補も表示される。
最初から表示したい。どうすべ?
94デフォルトの名無しさん:2012/05/30(水) 20:12:43.44
void __fastcall TStringGrid1::IMEStart(TMessage& Message)
{
// IMEの位置をキャレットのポジションに設定
COMPOSITIONFORM CompForm;
POINT pt;
LOGFONT lf;
HIMC hImc=ImmGetContext(Handle);

//キャンバスのフォントと同じに設定する
GetObject(this->Canvas->Font->Handle,sizeof(LOGFONT),&lf);
ImmSetCompositionFont(hImc,&lf);

//キャレットのポジションに設定する
ImmGetCompositionWindow(hImc,&CompForm);
CompForm.dwStyle=CFS_POINT;
GetCaretPos(&pt);
pt.x = this->CellRect(this->Col, this->Row).left+2;
pt.y = this->CellRect(this->Col, this->Row).top+2;

CompForm.ptCurrentPos=pt;
ImmSetCompositionWindow(hImc,&CompForm);
ImmReleaseContext(Handle, hImc);

//編集モード用カーソルの表示
this->Options << goEditing; //編集モードをON
this->EditorMode = true; //選択セルのカーソルを表示。これがないと、かな漢字変換の初期段階で選択枠が表示されたままになる。
}
95デフォルトの名無しさん:2012/05/31(木) 10:50:26.77
StringGirdが持つ、TInplaceEditのIME設定(SetImeCompositionWindow)を
以下のように変更しようとしていますが、
SetImeCompositionWindowがprotectメンバのためアクセスできません。
どう解決したらよいですか?

StringGirdのメンバー関数内での記述:
TInplaceEdit* editor= dynamic_cast<TInplaceEdit*>(this->Components[0]);
editor->SetImeCompositionWindow(this->Canvas->Font, 100, 50);
96デフォルトの名無しさん:2012/05/31(木) 11:39:32.71
>>93
IME何使ってるの?
GoogleIMEだとちゃんと表示されるけど
97デフォルトの名無しさん:2012/05/31(木) 11:47:50.87
ちなみにMSIME2010でやってもちゃんと表示されました
98デフォルトの名無しさん:2012/05/31(木) 11:50:12.26
MSIME2010 です。
99デフォルトの名無しさん:2012/05/31(木) 11:53:24.40
同じIMEですねえ
ちゃんと変換候補も出ます
ちなみに>>94みたいな事はしていません
100デフォルトの名無しさん:2012/05/31(木) 12:04:12.49
もしかと思い、OS変えて調べてみました。
手元にある、Win7では×ですが、XPでは○でした。
OSなんですか?
101デフォルトの名無しさん:2012/05/31(木) 12:04:35.43
XPですね
OSの問題かな?
102デフォルトの名無しさん:2012/05/31(木) 12:15:13.46
WOW64のバグかはたまたIMEの64bit版のバグか
103デフォルトの名無しさん:2012/05/31(木) 12:21:44.69
>>94で書いたような、IME位置の移動処理をしなくても、

 this->Options << goEditing; //編集モードをON
 this->EditorMode = true; //選択セルのカーソルを表示。

として、編集モードにさえすれば、その場所に変換文字が表示されるんですね。
XP限定ですが。

win7だと、>>95で書いた方法でIMEを移動できても、無理かもしれませんね。
104デフォルトの名無しさん:2012/05/31(木) 12:28:52.96
WOW64の非互換の問題でしょう
こればかりは仕方がない
MSに文句付け方が早い
105デフォルトの名無しさん:2012/05/31(木) 12:36:04.75
私が使ているのは、Win7-32bitなんですが、
WOW64は、32bitOSでも関係あるものでしょうか?
106片山博文MZボット ◆0lBZNi.Q7evd :2012/05/31(木) 12:38:45.44
>>105 ない。
107デフォルトの名無しさん:2012/05/31(木) 12:53:05.99
なんだ、じゃWin7-32bitのバグじゃないか
108デフォルトの名無しさん:2012/06/04(月) 15:15:22.38
画像を一度ずつ回転させたく調べたところ
x1=(x2-cx)*cos(θ)-(y2-cy)*sin(θ)+cx
y1=(x2-cx)*sin(θ)+(y2-cx)*cos(θ)+cy
http://homepage2.nifty.com/tsugu/sotuken/rotation/#basic
(このサイトを参照)

このような式が出てきました
この式の左辺をどこに代入すればよいのか全くわかりません
どなたかご教授よろしく
109デフォルトの名無しさん:2012/06/04(月) 19:15:32.73
プログラミングの前に、高校数学をやり直したほうがいいぞ
110デフォルトの名無しさん:2012/06/05(火) 13:17:22.21
>>108
http://pastebin.com/R9DNtmZZ

こんな感じでちゃんと動いたが
111デフォルトの名無しさん:2012/06/05(火) 23:07:17.39
C++Builderユーザー各位

いつもお世話になっております。エンバカデロ 営業の深町です。本日は、先週
発表致しましたC++Builder次期バージョンへのパスについて、改めてご案内致し
ます。今回の発表は、C++BuilderがiOSやAndroidを含むモバイルプラットフォー
ムにも拡張されるという大きな一歩を表明しています。

これに対し、現在のC++Builderから将来バージョンまでを入手いただけるパスと
して、「Future Ticket」版の提供開始を発表させていただきました。すでに、
多くのお客様から反響をいただいております。

6月29日までにサポートと併せてご購入いただくことで、C++Builder XE2を20% OFF
でさらに次期バージョンへのプライオリティプレビューアクセスと、今後1年間に
提供される新バージョンを入手することができます。64-bitサポートをはじめ、
C++Builderの今後のバージョンへ円滑に移行するには、現在最新バージョンから
の作業が重要です。ぜひ、この機会をご活用いただき、今後1年間にわたって最新
環境をご用意いただければと存じます。

「Future Ticket」版 詳細ページはこちらになります。
 ⇒ http://www.embarcadero.com/jp/landing-pages/cbuilder-bundle
112デフォルトの名無しさん:2012/06/06(水) 00:13:16.43
今時、超優秀なコンパイラがフリーで手に入る時代に、超強気な価格ですねw
113デフォルトの名無しさん:2012/06/06(水) 15:04:09.16
Builder2010ですがProgressBarでStepBy( 1 )してるのですが
ProgressBarの進みが遅く、処理が終了しても70%くらいまでしか進んでいません。
これ以前のようにちゃんと現在位置を表示させる方法を教えてください
114デフォルトの名無しさん:2012/06/06(水) 17:05:47.07
Maxの計算が間違っているんじゃないの?
115デフォルトの名無しさん:2012/06/06(水) 17:07:53.60
>>113
Application->ProcessMessages()でも挟んでみたら?
116デフォルトの名無しさん:2012/06/06(水) 17:24:08.87
>>114
間違ってないです。
>>115
いや、挟んでる。

非常に単純です。
ProgressBar->Min = 0;
ProgressBar->Max= 100;
ProgressBar->Step = 1;
ProgressBar->Position = 0;
for( int i = 0; i < 100; i ++ ){
 ProgressBar->StepBy( 1 );
 Application->ProcessMessages( );
}
ProgressBar->Position = 0;
回す回数にもよりますがこれでバーが7割くらいのとこで0になってしまします。
ちなみに最後のProgressBar->Position = 0;を取ると
処理が終わってやや暫くしてからバーがMAXになります。。
そんなわけで、ProgressBar自体が遅延処理を行ってるみたいなので。
同じコードをBuilder5でやるとちゃんと最後まで表示されます。
これまた例によって2010だけのバグかもしれませんが。
117デフォルトの名無しさん:2012/06/06(水) 17:33:54.85
>>116
ProgressBar->Min = 0;
ProgressBar->Max= 100;
ProgressBar->Step = 1;
ProgressBar->Position = 0;
for( int i = 0; i < 100; i ++ ){
 ProgressBar->StepBy( 1 );
 Application->ProcessMessages( );
}
ProgressBar->Position = 0;
Application->ProcessMessages( );

最後に Application->ProcessMessages( );
重い処理をした後あとだと処理が終わってもCGIが再描画されないときもあった気がする。
118デフォルトの名無しさん:2012/06/06(水) 17:45:07.42
また2010のバグかよ(-_-;)

XE2でやるとうまく行くが
次のようなコードはどう?

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ProgressBar1->Min = 0;
ProgressBar1->Max= 100;
ProgressBar1->Step = 1;
ProgressBar1->Position = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
ProgressBar1->StepBy(1);
}
//---------------------------------------------------------------------------
119デフォルトの名無しさん:2012/06/06(水) 17:51:58.01
>>117
それやってみましたがダメでした
>>118
すんません、コードの性質上タイマーでアレするのはちょっとやりにくいのです。

ProgressBarが内部で遅延描画をしてるのは疑いないのですが
それをプロパティ等で設定できないものかとおもいまして
ちなみにSmooth = falseにしても、バーが滑らかなアレのままで断片表示になってくれません。
完全にProgressBarのバグですが、ちゃんと描画させる方法はないですかね?
更にちなみに、UpdateやInvalidateなどをやってもダメでした・・・
120デフォルトの名無しさん:2012/06/06(水) 17:55:42.61
>>119
そうじゃなくて>>118ならちゃんと表示されるか聞きたい
だめならSleep()でもいいからさ
121デフォルトの名無しさん:2012/06/06(水) 18:21:45.69
これでも表示がおかしいかい?

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ProgressBar1->Position = 0;

for (int i = 0; i < ProgressBar1->Max; i++) {
Sleep(100);
Step();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Step()
{
ProgressBar1->StepBy(1);
}
122デフォルトの名無しさん:2012/06/06(水) 18:59:01.97
>>120
あー、なるほど。
確かにそうですよね、やってみます。
>>121
それもやってみましたがダメでした
123デフォルトの名無しさん:2012/06/07(木) 18:26:38.63
BCB6をXPで使用しています。
メインファームである処理をしている時にフォームを掴むとその処理が停止してしまいますが、
これを回避する方法はありますか?
離せばまた元通り動き出すので、今は「掴むな!!」という事にしています。
124デフォルトの名無しさん:2012/06/07(木) 18:52:02.41
別スレッドで処理を行わせるくらいしか回避方法はない。
125デフォルトの名無しさん:2012/06/07(木) 21:06:21.52
Focus当てられないようにするとか
126デフォルトの名無しさん:2012/06/07(木) 21:52:25.64
FormのEnabledプロパティをfalseにするとフォーカスが当てられなくなるな

しかもオーナードローでなければボタンは反応するので途中で計算を止めたい時も行ける
127123:2012/06/07(木) 22:59:14.92
アドバイス有り難うございます。

FormのEnabledをflaseにして見ましたが、そもそも移動したい時にも移動できなくなるので
ちょっと難しいそうです。
別スレッドでという方法を試して見ます。

スレッドは使った事が無いので基本的な事を教えて下さい。

「異なるスレッドが保有するVCLにアクセスする時に排他制御の問題があるので、
Synchronizeメゾッドを使用して同期しろ」と書かれていますが、
例えばメインフォームのLabel1にアクセスするコードが新しく生成したスレッドの中にしか無い場合には、
排他制御の問題はそもそも無いのでSynchronizeメゾッドは使用する必要がないという理解で良いでしょうか?

128デフォルトの名無しさん:2012/06/07(木) 23:15:27.11
移動は出来るけど処理は止めたくないのかあ

SynchronizeメソッドはVCLがマルチスレッドに対応してないので
Label1を新しく生成したスレッドからしかいじらないとしても調べる必要がある
129123:2012/06/07(木) 23:31:32.58
>>128

「調べる必要がある」とはどういう意味でしょうか?


Synchronizeメソッドの説明を読むと、
一度メインフォームに処理を戻してVCLの更新を実行するという事が書かれています。
でもフォームが掴まれている状態でSynchronizeメソッドを呼ぶとそこで止まってしまうのではないかと・・・?
結局止まってしまうのではないかと。
130123:2012/06/07(木) 23:45:49.94
>>Synchronizeメソッドを呼ぶとそこで止まってしまうのではないかと・・・?

実験してみたら上記は問題ありませんでした。
131デフォルトの名無しさん:2012/06/08(金) 00:57:57.67
スレッド別なんだから止まるわけないじゃん
それよりメインフォームでVCLをいじってるとSynchronize()の結果が変わる
その時にいじると競合が発生して不審な挙動になる
132デフォルトの名無しさん:2012/06/08(金) 15:25:24.49
C++Builder発売15周年記念キャンペーン
なんてやってたんだね
proで50000円は新規の人に魅力的だろうか?
133バカでごめんね:2012/06/09(土) 13:06:35.97
c++を使い始めたものなんですけど

こっちはちゃんとなるんですけど
http://www.dotup.org/uploda/www.dotup.org3073322.jpg

includeを使うと
http://www.dotup.org/uploda/www.dotup.org3073352.jpg


こんな感じになっちゃって・・・(´;ω;`)


だれか解決して下さいませんか?


134デフォルトの名無しさん:2012/06/09(土) 14:34:38.30
>>133
画像は分かりやすいけど…
dotupじゃすぐに消えちゃうぞ。一発ネタならちょうどいいけどね。
とりあえず、imgurにでもアップしなおして。
135デフォルトの名無しさん:2012/06/09(土) 14:37:00.41
あと、ユーザー名は画像加工した方がいいんでないかい?
136バカでごめんね:2012/06/09(土) 14:38:35.85
ユーザー名ぐらいはいいかなあと
137デフォルトの名無しさん:2012/06/09(土) 14:46:28.54
いいんならいいけど。
てか、よく見たらこれBuilderじゃなくて、Borland C++ Compiler 5.5.1か〜。
138デフォルトの名無しさん:2012/06/09(土) 18:37:32.34
>>133
http://www.atmarkit.co.jp/fwin2k/win7/06xpmode/06xpmode_03.html

ここを参考にXPモードでBCCをインストールし直す
139デフォルトの名無しさん:2012/06/09(土) 18:41:25.01
>>132
魅力でしょ、
50000円ならシェアウェアを公開して
1ライセンス2000円もとれば、あっという間に元は取れるんだし。
140デフォルトの名無しさん:2012/06/09(土) 18:49:59.41
ソフト作る労力も勘定に入れてくれ
141デフォルトの名無しさん:2012/06/09(土) 21:16:18.72
a) bcc32.exe の引数に -I オプションでインクルードディレクトリを指定する。
例: -Ic:\bcc55\include

bcc32.exe のあるフォルダに、bcc32.cfg というテキストファイルを用意して、
-I<インストールディレクトリ>\include
などと書く。または、すでにある bcc32.cfg が
正しいディレクトリを指しているか調べて書き換える。

bcc なら解るが、cpad は使わないのでわからん。
142デフォルトの名無しさん:2012/06/09(土) 21:21:29.27
とにかく、
エラー F2209 a.cpp 1: インクルードファイル 'stdio.h' をオープンできない
を解決しろ。
コンパイルでエラーがでてるのでリンクしていないから a.exe は作成されていない。
でも、cpad が、どこかにある古い a.exe を実行して、64ビット云々のダイアログがでているだけ。
143142:2012/06/09(土) 21:22:31.31
あ、cpad が実行しているわけではないのか。
144デフォルトの名無しさん:2012/06/10(日) 13:24:50.15
RAD2010を使用しているのですがエディタでコメントを日本語入力しているときに、マウスカーソルがコードにかかっていると定義の検索が作動した時に文字化けしたり落ちたりしてしまいます。
IMEでマウスカーソルオフ以外の方法でこれを回避する方法はないでしょうか?再インスコや別PCでも治りません。誰か助けて…。
145デフォルトの名無しさん:2012/06/10(日) 14:13:47.65
QC に入れなさい。>144
146デフォルトの名無しさん:2012/06/10(日) 15:34:38.64
ということはあまり問題になっていないということでしょうか?強制電源オフしなくてはならないので困ってます。
BDS2006から発生していてバージョンアップをやめていたのですがWin7で安心して使用できるようにバージョンアップしたらまた同じでした。
もしかしてうちだけですか?
147デフォルトの名無しさん:2012/06/10(日) 15:36:25.50
QC に入れなさい。>146
148デフォルトの名無しさん:2012/06/10(日) 15:38:13.77
捨てアカで BDN アカウントをとって
公式フォーラムに口汚く罵った書き込みを入れてみたら?

149デフォルトの名無しさん:2012/06/10(日) 15:56:07.04
アカウントは持っているんですが登録したあたりから英文スパムが来るようになって怖いんですよね。あきらめます。ありがとう!
150デフォルトの名無しさん:2012/06/10(日) 16:53:38.40
>英文スパム
David I って人からとか?

>あきらめます。ありがとう!
おめでとう。 VisualStudio ならそんなことないから、良い機会だから切り替えよう
151デフォルトの名無しさん:2012/06/10(日) 18:15:32.80
David Iとかエンバカとかもスパム扱いになりますがそれ以外で毎週100以上orz
VSへの乗り換えも考えたんですがBuilderに慣れてると使いづらくてねぇ。DirectXは楽になるんだけど。
XE3が出る頃までなんとかガンバりますわ。
152142:2012/06/10(日) 18:49:57.27
うちにはこないので、たぶん、他の原因かと。
153デフォルトの名無しさん:2012/06/10(日) 19:44:20.16
IDEFixPackとか…これはさすがに効きそうにないか。まぁQCに入れても2010じゃ放置だろうし。
強制電源オフが必要なのってどういう状況?
154デフォルトの名無しさん:2012/06/10(日) 19:56:40.89
なんか2010の不具合報告が最近多いなぁ
それとXE2をWindows7にインストールした時の挙動がXPと違うとか
155デフォルトの名無しさん:2012/06/10(日) 22:13:29.08
>>153
日本語入力中にマウスカーソルがコードにのっていると文字入力したとたんに割り込みっぽく定義検索が発動。
すると同時に2バイト文字が1バイト文字として数えられてしまうのか半分くらいの位置以降で文字化けが発生。そのままさらに定義検索が発動?して無限ループ。(文字化けだけですむこともある)
で、タスクマネージャーでBuilderを落とそうとしてもダイアログは出るんだけど落とすこともできずWindowsにも戻れないのでリセットするしかなくなります。
2006以降の方なりませんか?
156デフォルトの名無しさん:2012/06/10(日) 22:21:28.76
標準のタスクマネージャとかぬるいの使わないでProcessExplorerとかまともなもの使えば
たたき落とすことくらいはできるんじゃね?
あとはツール→オプション→エディタ設定→支援機能でシンボルインサイトあたりを無効化とか。
157デフォルトの名無しさん:2012/06/10(日) 22:42:41.86
Process Explorerとかは使ったことがないんだけど、タスクマネージャーの起動すらできずにExplorer自体も落ちて再起動かかるも何もできなかったりします。
今、シンボルインサイトをオフって見ました。対策にはなるのですが、現在ユニットを多目に使用しているのでちょっと厳しいです。
158デフォルトの名無しさん:2012/06/10(日) 23:12:00.86
CPUを100%とられてるのかも。まさかのシングルコアCPUだったりする?
だったらProcessExplorerでCPU使用率が高いプロセスの優先順位をNormalから下げることで
他の操作が可能になる(右クリック→Set Priority→Below Normal)。Process Explorerは事前に
起動しておくと吉。
159デフォルトの名無しさん:2012/06/10(日) 23:19:06.57
すみません。環境書いてませんでしたね。i7 875K定格でメモリ16GB Win7 ULT 64bitです。
その方法も試してみたいと思います。いろいろありがとうございます。
160デフォルトの名無しさん:2012/06/10(日) 23:34:26.82
連投申し訳ありません。早速試してみましたがBDSのCPU使用率は0.01%
Process Explorerで落とせたり落とせなかったりです。数分待つとProcess Explorerがやっとでてきたり不安定です。
161デフォルトの名無しさん:2012/06/10(日) 23:39:09.30
IDE Fix Packは?
162デフォルトの名無しさん:2012/06/11(月) 00:08:53.72
登録ユーザーダウンロードを見ているのですがどれなのかわかりません。HF2まで当てていますが。
163デフォルトの名無しさん:2012/06/11(月) 00:32:00.57
見つけました。が、インストールしても治らず。
というかインストールすると普通に文字化けが…。
164デフォルトの名無しさん:2012/06/11(月) 05:45:06.10
165デフォルトの名無しさん:2012/06/11(月) 20:41:30.60
それをインストールしましたが治りませんでした。
166デフォルトの名無しさん:2012/06/15(金) 16:21:48.56
エクスプローラが落ちたときに、タスクトレイに表示されているアイコンが消えてしまいます。
これを防ぐにはどうしたら良いのでしょうか?
167デフォルトの名無しさん:2012/06/15(金) 18:16:54.60
一定時間間隔で登録する(MSの推奨)。
168デフォルトの名無しさん:2012/06/16(土) 06:04:04.87
タスクバーごと消えた場合タスクバーが再作成されるときに

UINT WM_TASKBERCREATED = RegisterWindowMessage( "TaskbarCreated" );

ってメッセージが飛んでくるので、そのとき再登録するとか。
169デフォルトの名無しさん:2012/06/16(土) 10:12:25.10
そう言えばエクスプローラが落ちた時にアイコンが出るソフトと出ないソフトがあるな
出ないソフトはそこら辺をさぼっているわけか
170デフォルトの名無しさん:2012/06/18(月) 01:00:02.14
XE2でPageコントロールに複数のフォームを
ドッキングさせるアプリを作っているのですが

あるタブだけ、もしくは全てのタブのドッキングアウトを
抑制することはできるのでしょうか?

EndDockだったかのAllowにfalseを突っ込んでも
駄目でした
171デフォルトの名無しさん:2012/06/22(金) 12:34:36.28
>>139
シェアウェア―って簡単に売れないのでは?
1本も売れないってよく聞くけど、本当はそんなことないの?
172デフォルトの名無しさん:2012/06/22(金) 13:03:08.74
それは、金を払う価値がないソフトウェアだからでは?

例えば、秀丸やEmEditorなんて一企業が成立するくらい使ってもらってるじゃん
173デフォルトの名無しさん:2012/06/22(金) 13:04:31.08
どっちもエディタだぬ
他のジャンルでは?
174デフォルトの名無しさん:2012/06/22(金) 13:11:49.33
FileVisor
175デフォルトの名無しさん:2012/06/22(金) 13:17:09.31
そういや秀丸って名前がかっこ悪いバグまだ直ってないのか?
176デフォルトの名無しさん:2012/06/22(金) 13:18:00.94
使ったときねーから知らん
177デフォルトの名無しさん:2012/06/22(金) 17:40:12.96
>>172 そんなレアなケース出されても....
>>139の言っていることは、
その気になればすぐに元を取れるって感じだから、
そうなの?ていう質問では?
178デフォルトの名無しさん:2012/06/22(金) 18:13:52.81
実際マネタイズ大変だよな昔よりさらに
Google様が無料は当たり前の世の中にしてくれたからなぁ
179デフォルトの名無しさん:2012/07/03(火) 15:19:38.09
C++Builder2010で質問

Indyを使ったメール受信ですが
色々サイトをみると以下のように件名を表示しているのですが
TIdMessage *msg = new TIdMessage(this);
IdPOP3->Retrieve( 1, msg );
Memo->Lines->Add( msg->Subject );
delete msg;
文字化けします。
どのサイトをみてもこんなやりかたをしててSubjectは文字化けしないみたいなんですが
どうしたら文字化けしなくできますか?
180デフォルトの名無しさん:2012/07/03(火) 15:37:01.49
エンコードが違うのとちゃうん
181デフォルトの名無しさん:2012/07/03(火) 15:51:13.40
どのサイトみてもこんな感じなんですよね。
msg->SubjectをいきなりMemoにぶち込んでるだけで
これC++Builder2010のIndy10で普通に表示されます??
182デフォルトの名無しさん:2012/07/03(火) 18:18:02.09
Indyって文字コード変換までしてくれるの?
してくれないならメールヘッダのContent-Typeとか見て変換しないとダメなんじゃないの?
183デフォルトの名無しさん:2012/07/03(火) 18:29:32.01
どのサイトもSubjectは変換してなかった
本文は変換してたけどね。
184デフォルトの名無しさん:2012/07/03(火) 19:49:45.85
なんかヘッダーの日本語エンコードに対応してないらしい
Indy以外探したほうがいいかもね
185デフォルトの名無しさん:2012/07/04(水) 09:26:28.71
('д`)えー
186デフォルトの名無しさん:2012/07/04(水) 11:46:27.66
サイトでのソースは全部delphiなんだけど
C++Builderの方はバグってるのかなあ
何かそんなことかいてるサイトもあったし
だれか>>179を試してほしい・・
187デフォルトの名無しさん:2012/07/04(水) 12:40:49.23
フリーじゃないのこれ
188デフォルトの名無しさん:2012/07/04(水) 14:13:34.94
どっち
189デフォルトの名無しさん:2012/07/04(水) 14:21:51.41
んじゃさ、受信したSubjectとか=?ISO-2022-JP?形式なんだけど
これを変換する方法を教えて><
190デフォルトの名無しさん:2012/07/04(水) 14:22:26.44
Delphiのメール送信側だけど
http://codezine.jp/article/detail/400
見るとヘッダのコード変換にjconvert.pasとか使ってるみたい
Indy10でこの状態だから他の探したほうがいいんじゃないの?
191デフォルトの名無しさん:2012/07/04(水) 14:43:09.12
最初jconvert使ってたんだけど・・・
どうもC++Builder2010じゃうまくいかなくて
同じコードをC++Builder5でやるとちゃんと変換されたんだけど
2010ってデフォでUnicodeになってるから?
192デフォルトの名無しさん:2012/07/04(水) 14:45:44.39
多分そうだろうね
AnsiStringでやってUNICODEに後から変換するとか力技で一回やってみれば?w
193デフォルトの名無しさん:2012/07/04(水) 14:49:36.76
やってみたぽ・・・
とりあえずAnsiStringにぶち込んでから
Memo->Lines->Add( ConvertJCode( DecodeHeaderString( subject ), SJIS_OUT ) );
194デフォルトの名無しさん:2012/07/04(水) 14:50:28.10
その辺は鬼のように試したんだけど全くうまくいかない。
C++Builder5じゃちゃんと変換されるんだけどなあ
195デフォルトの名無しさん:2012/07/04(水) 14:55:30.22
jconvert.pas自体がStringでビルドされてたら意味ないと思う多分
196デフォルトの名無しさん:2012/07/04(水) 14:57:38.42
そうなんだよね、それ気づくの遅かったアホだし俺とか
んで、諦めて、アレしたんだけど
しかし何故delphiの方はSubjectそのままぶち込んでもちゃんと表示されてんだろ
197デフォルトの名無しさん:2012/07/04(水) 15:05:55.60
別物だからさ
198デフォルトの名無しさん:2012/07/04(水) 15:28:45.56
どうしたものか
とりあえず>>189教えてくらさ><
199デフォルトの名無しさん:2012/07/04(水) 15:30:42.80
とりあえずjconvert.pasのStringをAnsiStringに置換してビルドしてみれば?
200デフォルトの名無しさん:2012/07/04(水) 15:33:11.48
やってみる・・・
201デフォルトの名無しさん:2012/07/04(水) 15:51:02.58
やっぱりやめた・・・
202デフォルトの名無しさん:2012/07/04(水) 15:52:43.51
いや、根性でやったんだけどさw
まあダメだったわ、とりあえず無理やりキャストしてコンパイルが通っただけって感じだし
どうしたらいいの俺とか
203デフォルトの名無しさん:2012/07/05(木) 06:03:21.10
ちょっと調べてみた
MecsUtils.pasっていうEmbarcadero Developer Networkにある文字列関係の処理用コード使ったらタイトル文字化け直ったよ
http://cc.embarcadero.com/item/26061
Yahoo Mailの1メールでしか試してないけど
この中のMecsShrinkElementっていう関数にTIdMessageのSubjectを渡すと正常に変換された
204デフォルトの名無しさん:2012/07/05(木) 10:12:45.85
>>203
あああああああああああああああああああああああああ!!
ありがとうありがとう><
できましたできました!!!
自分もヤホーメール1件でしかまだ試してないですが
今までずっと試してたのが出来たのでこれでISO-2022-JPはばっちりです!!
ありがとうございました^^
205デフォルトの名無しさん:2012/07/05(木) 10:23:51.58
違ったあああああああ!
=?ISO-2022-JP?B?って形式で入ってるのはダメだった〜
理由はよくわからないけどSubjectに入ってる形式で
何かわけのわからん形式ならMecsShrinkElementでOKでしたが
=?ISO-2022-JP?B?形式で入ってると変換されなかったので
これは別の関数呼べばいいんですかね??
何を呼べばいいかソースみてもわかりませんが・・・
206デフォルトの名無しさん:2012/07/05(木) 10:30:57.29
ヤホーから来たメールはOKだったけど
ニフティーから来たメールはダメだったぽ・・
これプロバによってアレかあ死にたい
207デフォルトの名無しさん:2012/07/05(木) 15:17:40.69
BCB6で、boost.polygon、は使えまつか?
208デフォルトの名無しさん:2012/07/05(木) 21:52:36.95
コモンコントロールってWM_NOTIFYを親に送りますよね
親がコントロールだったら、そのコントロールをサブクラス化するしか
WM_NOTIFYを捕捉する術はないのでしょうか?
209デフォルトの名無しさん:2012/07/05(木) 23:36:07.06
ない
210デフォルトの名無しさん:2012/07/06(金) 10:02:51.17
この前からIdPOP3がバグるって騒いでる基地外ですが
>>203氏のおかげで結構変換することができた
で、色々受信してたらMecsShrinkElementを通しても化けるのがあって
よくよくみてみると、MecsShrinkElementで化けるのは
最初から既にちゃんと変換されてたってのがわかったんだけど
2010のIndyのバグのせいか、ちゃんと変換されてるのと無変換で
MecsShrinkElementを通すとOKってのがあったんだけど
これを判別する方法としてCharSetがISO-2022-JPならMecsShrinkElementを使う
って事にしたら大抵OKになったけど、たまにCharSetに何も入ってないのに
MecsShrinkElementを使わないとダメなのがあって
これどうやって判別したらいいのですか・・・

211デフォルトの名無しさん:2012/07/06(金) 10:04:55.02
7bit か 8bit かで区別するといいお
212デフォルトの名無しさん:2012/07/06(金) 10:08:27.68
XE2なら問題ないみたいだな

2010はバグ多いな
要するにXE2は2010、XEのバグ取りとFileMonkeyを入れたってことか

XE3でclang+llvmになるらいけどまたしばらくバグに苦しむんだろうな・・・
213デフォルトの名無しさん:2012/07/06(金) 10:25:51.56
>>211
それダメですた、それ入ってないのがあって識別できません><

>>212
XE2迷ったけど64ビット作れないみたいだし次まで待つ事に
214デフォルトの名無しさん:2012/07/06(金) 10:28:06.99
だよ
XE2はDelphiのみ64bit対応
だまされたー
215デフォルトの名無しさん:2012/07/06(金) 11:38:13.20
とりあえず、判断は
AttachmentEncoding、CharSet、ContentTransferEncodingでなんとかなりそうです。
で、最後に・・・
=?shift_jis?B? この形式で来るのが現在変換できなくて困ってます。
これを変換する方法を教えてください・・・
216デフォルトの名無しさん:2012/07/06(金) 17:58:14.65
【中2自殺】 皇子山中学校 「韓国に対する関心を高めるため」 修学旅行は韓国へ
http://engawa.2ch.net/test/read.cgi/poverty/1341564390/

ねらい
ハングルを学ぶことによって、韓国に対する関心を寄り高める。
http://jan.2chan.net/may/b/src/1341557000217.jpg

217デフォルトの名無しさん:2012/07/06(金) 18:26:14.57
皇子山って新羅の末裔らしいけどな
218デフォルトの名無しさん:2012/07/08(日) 12:45:38.53
BCB5でGDI+グラフィックを使おうとしたのですが、
動いてくれません。(画像ファイルは無事使えてます)

BCB6では自身のヘッダファイルのままで、グラフィックも
動いてくれています。

GDIplus関連のヘッダをBCB6からとか、2001年頃のSDKから
持ってきてもダメでした。

諦めて素直にBCB6でやるのも、ちょっと悔しいので
何か覚えている人がいたら、教えてくださいませ。

参考にしたサイト
ttp://www.leunen.com/cbuilder/gdiplus.html
ttp://aruaru.blog.so-net.ne.jp/2009-09-28
ttp://forum.sources.ru/index.php?showtopic=152783
219デフォルトの名無しさん:2012/07/08(日) 14:06:23.52
LoadLibrary
220デフォルトの名無しさん:2012/07/08(日) 14:19:53.39
GDI+を使う理由がわからん
激遅なのに。

しかも、今時BCB56って
割れ?
221デフォルトの名無しさん:2012/07/08(日) 17:11:27.97
>>219
遅延読み込みしないとダメだったんでした?
やってみます。

>>220
いや、正規だけど、エンバカには御布施したことないです。
何もかも今更なんだけど、GDI+もDirextX(DXライブラリ)も
触ったことなかったもので...
再描画の遅さは我慢できる使い方なんです
222デフォルトの名無しさん:2012/07/09(月) 11:38:57.60
=?shift_jis?B? この形式変換する方法教えてください><
それと、"=?Shift_JIS?を
とりあえずこの2つ変換できたら思い残すことはないかもしれないぽ
223デフォルトの名無しさん:2012/07/09(月) 12:13:30.05
馬鹿には無理
224デフォルトの名無しさん:2012/07/11(水) 17:21:14.33
TListViewにExchangeメソッド無い??
行入れ替えどうやったらいいのかおしえてくらだ
225デフォルトの名無しさん:2012/07/11(水) 17:42:41.81
>>222
XE2ではタイトルがそうならないみたいな気がするので分からないけど
Base64のデコードに失敗してるんだと思うので自分でデコードすればもしかしたらうまくいくのかもしれない
226デフォルトの名無しさん:2012/07/11(水) 20:00:23.30
>>224
Items.AddItemかなぁ
227デフォルトの名無しさん:2012/07/12(木) 13:30:35.57
C++Builder2010でTImageを使って画像の回転をしたくて
TImageのヘルプをみるとRotateFlipらしきメソッドがあるんだけど
コンパイルするとこんなメソッド無いってエラーでるんだけど・・・
どうしたらコンパイルできます?
228デフォルトの名無しさん:2012/07/12(木) 13:41:02.10
229デフォルトの名無しさん:2012/07/12(木) 13:42:47.28
RotateFlipはGDI+の関数だな
230デフォルトの名無しさん:2012/07/12(木) 13:52:53.31
DDBとDIBSection(普通のGDI)なら自分で計算して回転してやらないといかんよ
231デフォルトの名無しさん:2012/07/12(木) 14:00:07.35
>>228-230
ありがとうありがとう
232デフォルトの名無しさん:2012/07/12(木) 14:06:38.17
何かこれ呼ぶだけで回転はOKみたいなソースどっかに転がってないかな?
233デフォルトの名無しさん:2012/07/12(木) 14:54:42.71
>>232
これ俺が前に実際に使わせてもらったソースのサイトだけど

http://homepage2.nifty.com/tsugu/sotuken/rotation/

sin, cosをintに変換してから計算しているので結構速いよ
ScanLineプロパティを使うともっと速くなる

Windows Vistae以降ならDirect2Dを使って

http://code.msdn.microsoft.com/windowsdesktop/VisualC-howto-96795643

とやれば処理の大部分をGPUに放り投げられるんだけどなあ
234デフォルトの名無しさん:2012/07/12(木) 15:39:41.68
>>233
ありがとうございます。
その2つのサイト参考にアレしてみます。
ありがとうございました。
235デフォルトの名無しさん:2012/07/12(木) 15:52:56.04
中村御大のDHGLはできないっけ?
ttp://www.asahi-net.or.jp/~HA3T-NKMR/DGS/DownLoad.htm
236デフォルトの名無しさん:2012/07/12(木) 15:59:25.96
>>235
あ、これVCLライクなコンポーネント?
XE2に入るかやってみる
237デフォルトの名無しさん:2012/07/12(木) 16:48:26.40
>>235
それのRotateBitmap使ったらできましたー!!!
C++Builder2010
しかしこれパラメータ多くてとりあえず適当に入れてやってみたんだけど
回転角に90って入れても90度になってくれないなあ
たぶん他のパラメータの指定が悪いんだとおもうけど
238デフォルトの名無しさん:2012/07/12(木) 16:55:15.45
>>235
ああ、すんませんできました。
パラ少ない方でやったらあっさりできました^^
239デフォルトの名無しさん:2012/07/12(木) 18:15:09.13
ソフトを起動した時に既に起動していたら、既に起動してるソフトに引数をわたして
後から起動されたソフトの方を終了するにはどうしたらいいですか?
よくブラウザとかそんな感じになってますが
240デフォルトの名無しさん:2012/07/12(木) 19:22:40.48
mutex
241デフォルトの名無しさん:2012/07/12(木) 20:25:14.74
パイプまたはメールスロットとミューテックスを組み合わせるな普通
242デフォルトの名無しさん:2012/07/13(金) 02:52:10.42
>を組み合わせるな
組み合わせてはいけないのですね。わかりました
243デフォルトの名無しさん:2012/07/13(金) 03:20:04.40
>>242
こらこら
具体的なソースを誰か貼ってやれ
244デフォルトの名無しさん:2012/07/13(金) 12:44:40.49
自演ツマンネ
245デフォルトの名無しさん:2012/07/13(金) 12:57:29.09
プロジェクトソースのとこで自分のハンドルを取得してメッセージ送るのってダメ?
246デフォルトの名無しさん:2012/07/13(金) 14:26:10.10
Win32の本を読むと、あるプロセスから他のプロセスにメッセージを送る方法は
大きく分けて3つあり、共有メモリを使った通信、メールスロット、名前付きパイプ
がある。前者ほど易しいが欠点も多い。後者ほど難易度が増すが、より堅牢に
なる。前者はメッセージを受け取る努力がより要求され、後者はメッセージを
より強引に送りつけるようになるとある。

ケースに応じて使い分けろと書いてある。
247デフォルトの名無しさん:2012/07/13(金) 14:40:11.61
相手のハンドルが判ってれば
PostMassage
SendMassage
で桶
248デフォルトの名無しさん:2012/07/13(金) 15:40:45.59
>>247
引数ってその場合
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
これだけしか送れなくない?
コマンドラインみたいのを渡す時は使えない
249デフォルトの名無しさん:2012/07/13(金) 15:44:04.84
massage
250デフォルトの名無しさん:2012/07/13(金) 15:46:39.50
>>248
ここリンク貼れないのなんで?
ttp://cho●kuto.if●def.jp/advanced/copydata.html
251デフォルトの名無しさん:2012/07/13(金) 15:50:00.82
>>248
WM_COPYDATA
252デフォルトの名無しさん:2012/07/13(金) 16:24:34.59
でけた^^
253デフォルトの名無しさん:2012/07/18(水) 11:00:07.77
=?shift_jis?B? と "=?Shift_JIS? この形式変換する方法教えてくださあああああああ><

254デフォルトの名無しさん:2012/07/18(水) 11:01:49.18
あ、まちごうた
=?ISO-2022-JP?B? と =?Shift_JIS?B? ですた^^
教えてくださ
255デフォルトの名無しさん:2012/07/18(水) 11:41:50.74
知ってるがお前には教えない
256デフォルトの名無しさん:2012/07/19(木) 12:04:36.58
test
257デフォルトの名無しさん:2012/07/26(木) 14:42:59.26
C++Builder2010でjconvert.pasをコンパイルしたら
jconvert.hpp内の各関数の引数が全てAnsiStringからUnicodeStringに変わってしまって
正常に実行できなくなるのですが
これちゃんとhpp内の引数がAnsiStringのままになるようにコンパイルするにはどうしたらいいですか?
258デフォルトの名無しさん:2012/07/26(木) 22:33:58.28
jconvertは2009以降に対応していないらしい
259デフォルトの名無しさん:2012/07/26(木) 22:54:27.62
>>258
あ、なるほど、ありがとう。
じゃあやっぱ他の方法考えないとダメなんですね・・
260デフォルトの名無しさん:2012/07/27(金) 10:51:24.33
教えてください
例えば
ListView->Items->Item[i]->Data = new char[256];
↑みたいにnewした場合に
ListView->Items->Clear( );するとnewしたのも自動的にdeleteされるんですか?
それともClearする前にforで回して1つづつdeleteする必要ありますか?
261デフォルトの名無しさん:2012/07/27(金) 13:13:45.46
>>259
Delphi側でString/PCharをAnsiString/PAnsiCharに書き換えるという手もあり

>>260
勝手にdeleteされることはないので、OnDeletionイベントで処理するのがお勧め
262デフォルトの名無しさん:2012/07/27(金) 13:31:34.47
>>261
ありがとう
Delphi側でString/PCharをAnsiString/PAnsiCharに書き換えるというのは
jconvert.pasを自分で書き換えるって事ですよね?
263デフォルトの名無しさん:2012/07/27(金) 13:40:23.53
そう
jconvert.pasのライセンス条件に注意してね(調べてないけど)
264デフォルトの名無しさん:2012/07/27(金) 14:06:09.36
>>263
ありがとうやってみます。
ちなみに、個人で使うだけなので大丈夫です
265デフォルトの名無しさん:2012/07/27(金) 14:38:05.17
>>263
何かうまくいかないのですが、
Charでキャストしてるのがエラーになりますが
これは何にしたらいいですかね?
266デフォルトの名無しさん:2012/07/27(金) 15:11:57.11
具体的に
267デフォルトの名無しさん:2012/07/27(金) 15:17:01.92
これが実際のソース
Result[k] := Char( (dbuf[0] shl 2) or (dbuf[1] shr 4) );

CharをAnsiCharでキャストしたらとりあえずコンパイルエラーは出なくなったけど
動作させても文字が化けて以前と変わらずなもので。
ちなみに、ConvertJCode関連の関数は全てAnsiStrigに変更しました
268デフォルトの名無しさん:2012/07/27(金) 15:25:01.78
UnicodeStringとAnsiStringの多バイト文字列の内部表現が違うからじゃないか?
269デフォルトの名無しさん:2012/07/27(金) 15:28:28.22
黙ってコンパイルするとUnicodeStringになっちゃいますが
それをAnsiStringに変更しました
270デフォルトの名無しさん:2012/07/27(金) 16:12:14.96
Result, dbufの型は?
271デフォルトの名無しさん:2012/07/27(金) 16:14:50.26
dbuf: array[0..3] of BYTE;
ResultはAnsiString にしました。
272デフォルトの名無しさん:2012/07/27(金) 19:04:21.94
なら単に
Result[k] := AnsiChar( (dbuf[0] shl 2) or (dbuf[1] shr 4) );
でいいと思うが。
273デフォルトの名無しさん:2012/07/27(金) 21:40:26.16
>>272
たしかにそれでコンパイルは通りますが
ちゃんと変換できないのはやっぱり別の箇所に原因があるんですねこれ
どこなんだろう
274デフォルトの名無しさん:2012/07/28(土) 01:49:34.78
コンパイラに1バイトパッチあてるとデフォルトを ANSI に戻せるよ
275デフォルトの名無しさん:2012/07/28(土) 02:45:05.50
タスクバーをクリックしてアプリケーションに戻った時に,
最後にフォーカスがあったフォームしか表示されなく
なってしまった。

ちょっと前まで,全部のフォームが表示されたのに。
何を変えちゃったのか全然分からん。
276デフォルトの名無しさん:2012/07/29(日) 10:47:08.53
つ git
277デフォルトの名無しさん:2012/07/30(月) 10:05:24.98
IdPOP3->Retrieveって添付ファイルまで受信しちゃってるみたいですが
これ添付ファイルは受信しない方法を教えてください
278デフォルトの名無しさん:2012/07/30(月) 18:18:33.29
スクロールボックスの縦、横のスクロールバーが出てるかどうかを判断する方法を教えてほしい
279デフォルトの名無しさん:2012/07/30(月) 20:35:17.81
>>277
できないんじゃないかなぁ

>>278
VertScrollBar.Visibleじゃだめ?
280デフォルトの名無しさん:2012/07/30(月) 21:45:25.74
>>279
Visibleはダメなんですよね。
アレオブジェクトインスペクタでtrueにしてても
スクロールボックスにスクロールバーが出てない状態でもtrueのままなんです
281デフォルトの名無しさん:2012/07/30(月) 22:17:51.89
じゃあGetScrollBarInfoでSCROLLBARINFOのBarInfo.rgstate[0]に
STATE_SYSTEM_INVISIBLEが立ってるかどうかとか?
282デフォルトの名無しさん:2012/07/30(月) 22:22:35.95
>>281
ちょっと明日それ試してみますね
283デフォルトの名無しさん:2012/07/31(火) 11:42:55.58
>>281
IsScrollBarVisible でできました
284デフォルトの名無しさん:2012/07/31(火) 17:23:14.32
C++Builder2010でマウスカーソルをリソースマネージャに追加したのですが
これどうやってScreen->Cursorsにぶち込むのですか?
285デフォルトの名無しさん:2012/07/31(火) 17:55:58.22
でけた。
286デフォルトの名無しさん:2012/07/31(火) 20:57:10.15
2010多いな
XEとかXE2の質問がほとんどねえ
という事はXEが2010のバグ取りバージョンで、XE2がDelのみを64bit化したわけか
287デフォルトの名無しさん:2012/07/31(火) 21:15:57.16
XE3出たら買うよ
それまで2010で我慢しろく
288デフォルトの名無しさん:2012/08/01(水) 01:50:30.91
XE3 がでればよいね
289デフォルトの名無しさん:2012/08/02(木) 10:26:06.26
MouseDownイベントでマウスボタンが押されている間マウスカーソルを変更したいのですが変更されません
マウスボタンを離したら変更されるのですが
これボタンを押してる状態でカーソルを変更させる方法を教えてください
290デフォルトの名無しさん:2012/08/02(木) 13:06:25.71
でけた。
291デフォルトの名無しさん:2012/08/06(月) 22:26:49.96
Stringgridの罫線?の色ってどやってかえるの?BuilderXE使用中です
292デフォルトの名無しさん:2012/08/08(水) 16:05:43.47
jconvert.pasを2010でコード変えずにコンパイルする方法を教えて・・・
293デフォルトの名無しさん:2012/08/08(水) 16:20:47.12
お前には無理だからあきらめろ
294デフォルトの名無しさん:2012/08/09(木) 22:27:49.07
1.テキストファイルを読み込む
2.構造体を宣言しデータごとに格納
3.格納されたデータを表示

というプログラムを作りたいです。
1.をOpendialogを用いてできましたが2,3をどうしたら良いかさっぱりです。
詳しく解説している書籍やWebサイトなどがあれば教えてください。
C言語で書いているものはいくつかあったのですが
C++で解説しているのは見つからなくて・・・

テキストファイルの中身は
1 佐藤 175cm 70kg
2 鈴木 170cm 65kg
3 田中 165cm 60kg
のような学籍番号や氏名、身長体重が記載されているものです。
295デフォルトの名無しさん:2012/08/09(木) 23:03:15.74
取得したテキストファイルを1行ごとの文字列として処理して、
(Lines->Strings[i]とか)
その文字列を学籍番号や氏名の区切り文字でわけて
構造体(の配列?)に順に格納していく。
それを最終行まで繰り返す。
表示は表示先しだい。
296デフォルトの名無しさん:2012/08/09(木) 23:11:33.48
>>295
ありがとうございます。
早速LinesやStringsなどで調べてみます。
297デフォルトの名無しさん:2012/08/10(金) 04:41:10.79
>>296
OpenDialogでテキストを何に読み込んでるかわからんけど、
TStringListやTMemoでテキストを読み込んでいろいろと処理する
サンプルなら検索すればいくらでもあるかと。
298デフォルトの名無しさん:2012/08/10(金) 13:56:39.70
>>297
TstringList 構造体
などで検索をしましたが中々これだ!というものが見つかりませんでした。
Delphiですが
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200403/04030068.txt
のような事をやりたいです。
良い検索ワードがあれば教えていただけないでしょうか?
299デフォルトの名無しさん:2012/08/10(金) 14:10:47.89
「のような事」じゃなくて、自分の言葉で書けよ。
せめてリンク先のどこまで理解できてどこが理解できないのか、
自分がやりたいこととここが違うからこうしたいとか。

何がやりたくて何がわからないのかさっぱりわからない。
300デフォルトの名無しさん:2012/08/10(金) 14:12:19.46
テキストはcsv(カンマテキスト)にしてTStringListで嫁
んで、もう1つTStringListを使ってCommaTextにぶちこんでアレしろ
301デフォルトの名無しさん:2012/08/10(金) 14:28:40.18
>>299
すみません。
OpenDialogを使用してテキストデータのパスを取得
それをTStringListオブジェクトに読み込み
1 175 60
2 180 70

のような数字のテキストデータを
それぞれ身長 体重 学籍番号 などに分類したいんです。
構造体を宣言し、格納したいのですが
どういうプログラムを書けば格納できるのかサッパリなんです。
302デフォルトの名無しさん:2012/08/10(金) 14:49:40.63
それ>>294のまんまじゃん…
303デフォルトの名無しさん:2012/08/15(水) 06:20:05.82
C++Builder 2007で作成していたソフトウェアを、C++Builder XE2で開発しよう
と環境を移し変えているのですが、コンパイル時によく分からないエラーが出て
困っています。

[BCC32 エラー] Winapi.Windows.hpp(2102): E2257 , が必要
[BCC32 エラー] Winapi.Windows.hpp(2750): E2257 , が必要
[BCC32 エラー] Winapi.Windows.hpp(2752): E2257 , が必要
[BCC32 エラー] Winapi.Windows.hpp(2754): E2257 , が必要
失敗
経過時間: 00:00:01.1

これ、自分が書いたCPPファイルの最初の方や、ヘッダファイルの書き方に妙な
ところがある。
ということでいいんでしょうか?

C++Builder 2007から、C++Builder XE2への移行なんで、UNICODEへの対処に
ついては理解しているつもりですが、このエラーメッセージでは、何が何だか
分からず、とても凹んでいます。
(というか、UNICODE絡みで変なとこがあれば、デバッグで自分のソースを指摘
してくれそうなもんですが、このメッセージだと何がなんやらで・・・)

何かヒントになりそうな事でもいいので、教えてください。
よろしくお願いします。
304デフォルトの名無しさん:2012/08/15(水) 09:36:27.48
WINVER が小さいとみた
305デフォルトの名無しさん:2012/08/15(水) 10:08:52.21
プロジェクトそのものは新しく作ったほうがいい
306デフォルトの名無しさん:2012/08/15(水) 10:36:55.85
めんどくせぇ
307デフォルトの名無しさん:2012/09/25(火) 18:57:45.79
最近人気ねえなage
XE3パスする事にしたしなあ
308デフォルトの名無しさん:2012/09/26(水) 03:33:04.80
309デフォルトの名無しさん:2012/09/26(水) 13:29:54.80
こっちはくだすれだから。統合本スレに移動しておきましょ。
310デフォルトの名無しさん:2012/09/26(水) 17:55:54.57
だって事実上質問はこのスレにしか来ないじゃん
本スレは荒れ放題だし
311デフォルトの名無しさん:2012/09/26(水) 19:47:41.09
あっちは被害担当艦だろ
312デフォルトの名無しさん:2012/10/01(月) 14:22:28.27
C++Builderをバリバリ使ってる人、手挙げて−

まず俺
313デフォルトの名無しさん:2012/10/01(月) 14:48:44.19
     ∧_∧
     ( ゚ω゚ ) C++Builderは任せろー
 バリバリC□l丶l丶
     /  (   ) やめて!
     (ノ ̄と、 i
        しーJ
314デフォルトの名無しさん:2012/10/01(月) 15:33:26.34
なぜ止める!
315デフォルトの名無しさん:2012/10/01(月) 17:21:13.46
バリバリはまずいだろ。
316デフォルトの名無しさん:2012/10/01(月) 19:34:24.67
>>313
かわいい
元ネタ何?
317デフォルトの名無しさん:2012/10/01(月) 19:46:46.39
そのまんま「バリバリ AA」でggr
318デフォルトの名無しさん:2012/10/02(火) 10:31:35.18
312だけど、バリバリって何かと思ったら、あのバリバリか
誕生日に奥さんにポーターのバリバリ貰った俺は…
319デフォルトの名無しさん:2012/10/02(火) 11:19:12.06
ま、場を考えて使え。って点ではおなじだな。
Boost や C++99 の話をしているところに C++BUilder 使ってま〜す。って入って行ったら
あのバリバリと同じ思いをすることになるしな。
320デフォルトの名無しさん:2012/10/05(金) 07:23:14.72
C++Builder XE3 を試しに使ってみたんだけど
SDIアプリを作成して
vectorを使おうと
#include <vector>
して
vector<int> abc;
と書くとエラーになる

何がいけないんだろ
321片山博文MZボット ◆0lBZNi.Q7evd :2012/10/05(金) 12:41:44.65
using namespace std;
または
std::vector<int> abc;
322デフォルトの名無しさん:2012/10/05(金) 21:53:24.59
>>321
ありがとう
うまくいきました。
323デフォルトの名無しさん:2012/10/18(木) 01:58:27.76
設定の段階で詰まりました
http://i.imgur.com/GIbjD.jpg
e2075でcfgファイルの何がダメだのかわかりません
よろしくお願いします
324デフォルトの名無しさん:2012/10/18(木) 03:45:38.68
>>323
CFGファイルの中身晒せや
325デフォルトの名無しさん:2012/10/18(木) 04:05:07.70
全角スペースあたりかねぇ。あとは冒頭に UTF8 BOM が入っているか。
.cfg はテキストファイルだから、からのテキストファイルでエラーが出ないことを確認したうえで
一行ずつ追加しては動作確認すれば、どの行に問題があるか見つけられるでしょう
326デフォルトの名無しさん:2012/10/18(木) 04:12:10.34
BOMの可能性が高い。
試してに.cfgに-myoptionの行を入れてbcc32を実行すると
オプションの間違い: -myoption
と表示されるが、その部分が化けている。
327デフォルトの名無しさん:2012/10/18(木) 05:23:03.20
テレビ番組「つまらなくなった」が71.2% 「昔は良かった」の声
投稿日: 2012年10月17日 15:00

この秋の新番組を、読者の皆さんはご覧になっているだろうか?
10月10日にスタートした『相棒 Season11』の初回2時間スペシャルの平均視聴率は19.9%
(ビデオリサーチ調べ・関東地区)となり、『相棒』シリーズの初回としては過去最高のスタートを見せた。
この他にもNHKの朝ドラ「純と愛」も初回視聴率19.9%(ビデオリサーチ調べ 関東地区)と、
前回の「梅ちゃん先生」を初回視聴率で上回る好発進を見せている。

視聴率においては好調なものも複数あれど、「最近、テレビがつまらない」と嘆く声は
メディアやネットの意見でしばしば目にすることが多い。本当に「昔よりテレビはつまらなくなった」のだろうか?

双方向のデータ通信での視聴者参加型番組や、最新技術を駆使した映像など、
テレビで表現できることはますます広がってきているはずなのだが…。
「昔にくらべて、テレビ番組は全般的にどうなったと感じますか?」という調査では、結果は以下のようになっている。

・面白くなった:6.7%
・変わらない:15.8%
・つまらなくなった:71.2%
・わからない:6.3%

(リサーチパネル調べ、17万4805人が対象)

このように、実に7割以上の人が「テレビ番組がつまらなくなった」と回答。
年齢別では、10代が55.0%と最も低く、20代66.8%、30代69.7%とその数字は上昇。
40代以上の年代はすべて7割を越えた。
http://shunkan-news.com/archives/1557
328デフォルトの名無しさん:2012/10/18(木) 05:56:31.16
すみません。誤爆しますた。
329デフォルトの名無しさん:2013/01/16(水) 15:47:32.89
C++Builder5でWindows7の64bitでMySQLをODBC経由で接続したいのですがエラーになります。
32bitなら正常に接続できます。
64bit用のodbcドライバに対応するlibとdllありますか?
ちなみにWin7 64bitにODBC32bit用ドライバをインスコしてもMySQLが出現せずに選択できませんでした
330デフォルトの名無しさん:2013/01/16(水) 20:28:37.06
具体的なアドバイスはできないけど、アプリケーションが32bitならODBCの設定もMySQLの
ライブラリも32bitのものを使うことになる。特にODBCの設定は64bitと32bitで別々なので要注意。
多分ODBCの設定で64bitのほうを見て
> MySQLが出現せずに選択できませんでした
っていってるだけなような気がするけど…。
331デフォルトの名無しさん:2013/01/16(水) 22:37:24.97
Windows7の64bitの場合
ODBC接続マネージャーは普通にメニューから選ぶときと
.cplファイルを直接実行する場合とで
64bit用と32bit用で違うものが開かれる
332デフォルトの名無しさん:2013/01/17(木) 10:25:25.77
32bit用のMySQLのODBCドライバをインスコしてから
ODBCデータソースアドミニストレーターで新規作成をしても
リストにMySQLが表示されないんですが
333デフォルトの名無しさん:2013/01/17(木) 10:32:33.44
32bitのODBCデータソースアドミニストレータを起動してるか?
334デフォルトの名無しさん:2013/01/17(木) 11:00:56.94
管理ツールの中の
ODBCデータソースアドミニストレーター
は64bit専用

C:\Windows\SysWOW64\odbcad32.exe
が32bit専用の
ODBCデータソースアドミニストレーター
335デフォルトの名無しさん:2013/01/17(木) 12:14:35.20
>>333-334
ああ・・・
管理アレにあるのを起動してました。
これ64bitのですよね・・・
ありがとうございます。
32bitのを起動してみます
336デフォルトの名無しさん:2013/01/17(木) 12:26:33.17
ありがとうございました。できました!

が・・・
これ一度作ったのって構成で修正や削除ができない・・・
337デフォルトの名無しさん:2013/01/18(金) 13:10:41.80
ちょっとまた質問ですが
Win7の64bit版でODBC経由はうまくいったのですが
C++Builder5がインスコされていない別のPCでやると
データベースオープン時にエラーがでたので
InstallShield Express For C++Builder 5を使ってDB関係を含めてインストーラーを作ったのですが
これをWin7の64bit版で起動すると
このファイルのバージョンは、現在の実行中のWindowsのバージョンと互換性がありません
ってエラーが出てインストーラーが起動できません・・・
C++Builder5がインスコされてない64bit版でDBを扱うにはどうしたらいいのでしょうか・・・
338デフォルトの名無しさん:2013/01/18(金) 14:22:08.70
C++Builder2009をWin7の64bitで動かしてますよーって人はいる?
339デフォルトの名無しさん:2013/01/18(金) 14:36:39.73
>>337
ISXの作るインストーラは16bitアプリケーションなのでx64環境にはインストールできない
(x64環境では16ビットアプリケーションは動作しない)。
InstallShield買うなりInnoSetupのようなフリー/オープンのインストーラ使うなりご自由に。
340デフォルトの名無しさん:2013/01/18(金) 17:00:24.08
>>339
そうですか、ありがとう・・・

うーん、どうしよう
他のインストールシールドとかでどうやってC++Builder5のDB関係をインスコさせるのかわからないしなあ
341デフォルトの名無しさん:2013/01/20(日) 19:34:15.58
>>340
オレが開発委託者ならキミには頼まないわん。VBでも使ったほうが良くない??
342デフォルトの名無しさん:2013/01/21(月) 11:18:03.34
>>341
知らないならレスしないで下さい。ウザイだけです
343デフォルトの名無しさん:2013/01/21(月) 19:03:25.81
Delphi Pascal Compiler
コマンドラインコンパイラdcc32は、どういう場合につかいますか?
344341:2013/01/21(月) 20:40:50.34
>>341
ここにはIDでないからな。知らないで開発委託者の立場でレスはしない。
そんなことも知らないでC++を使ってるような経験値の低い開発者には
頼まないってこと。
MSがこれを入れておくと動きますよと言ってくれるVBで、といったのは
そういうわけ。
C++Builderはexeをコピーするだけで動くスタンドアロンなプログラムが作
れるのが利点の1つ。
345341:2013/01/21(月) 20:52:06.09
やれやれ、アンカみすってる。で、ここは超初心者スレだったのか。

プロジェクト→オプション

パッケージタブ 実行時パッケージを使って構築 のチェックをはずす。

リンカタブ リンクの共有RTL DLLを使う のチェックをはずす。

この2つで自前でLoadするDLL以外の依存は完全になくなる。実行ファイ
ルがでかくなるって嫌う人も多いが、そりゃ32Mバイトのメモリが広大だっ
たころの話。
これでデータベースのエラーがでるならそれはどこかがバグってる。
346デフォルトの名無しさん:2013/01/21(月) 21:43:56.42
>>344-345
ほんとに何も知らないならレスしないください。ウザイだけです。
347デフォルトの名無しさん:2013/01/30(水) 16:46:48.89
TChartで質問ですが
Series1->YValue[n] = 123;
みたいに既に作成されているグラフのn番目に値を後から変更できますが
Series1->Add( 0, "gggg", clTeeColor );
のようにAddした際にテキストとしてAddしているのですが
このテキストを↓
Series1->YValue[n] = 123;
これみたいに後からテキストの値を変更する方法を教えてください
348デフォルトの名無しさん:2013/01/30(水) 16:55:03.70
あ、ごめんでけた^^
349デフォルトの名無しさん:2013/02/22(金) 00:11:14.73
C++Builder2010を使用しています。
スレッド間の排他制御に関して教えて下さい。

A、Bの2個のスレッドがあります。
Aで計算するデータをBで参照するだけの場合でも排他制御はした方が良いのでしょうか?
具体的にはAはループ処理でずっと計算をしています。
Bは定期的(1秒に1回とか)に計算結果をGUIに表示するだけです。

どなたかアドバイスをお願い致します。
350デフォルトの名無しさん:2013/02/22(金) 00:16:26.09
当たり前だろ
マルチコアで変数に代入中に値を参照したらどうなる
アトミックなOS APIを使おう
351349:2013/02/22(金) 00:48:14.88
>>350

有り難うございます。
排他処理実装します。

「アトミックなOS API」の検索キーを教えて頂けませんか?
あちこち見て、クリティカルセクションというのを試して見ようと思っていました。
352デフォルトの名無しさん:2013/02/22(金) 00:54:15.07
>>351
単純な排他制御はパフォーマンスに悪影響を及ぼす事がある

クリティカルセクションは主にデバイスドライバで使用する
一番多く使うのはMutex
インターロックAPI
セマフォ
イベント

などかな
353デフォルトの名無しさん:2013/02/22(金) 06:20:24.65
いま、同一パソコン上で、2つのWindowsアプリケーションを動作させてて、そのプロセス間通信でメモリマップドファイルを利用してファイルデータの受け渡しを行ってるんですが、一方のWindowsアプリケーションを別のパソコンへ持っていきたいと考えてます。
この場合、イーサネットで接続するようになるのですが、名前つきパイプを利用すれば同等の機能が実現できますでしょうか?
354デフォルトの名無しさん:2013/02/22(金) 08:37:37.69
それC++Builderに関係ない話だね
Win32スレで聞いたらいいかも
あ、今荒れてるか
355デフォルトの名無しさん:2013/02/22(金) 18:48:14.14
出来るか出来ないかで言えば出来る
356デフォルトの名無しさん:2013/02/22(金) 20:17:29.42
メールスロットでもいいんじゃねーの
プロセス間通信でしょ
357片山博文MZパンク ◆0lBZNi.Q7evd :2013/03/22(金) 23:23:20.90
無料でC++Builderを使いたい。どこにあるの?
358デフォルトの名無しさん:2013/03/22(金) 23:32:57.19
>>357
警察に言って聞くといいよ!
359デフォルトの名無しさん:2013/03/23(土) 07:51:11.24
現在は14日間のTrialのみ
360デフォルトの名無しさん:2013/03/23(土) 16:33:24.75
試用期間は300日ですぞ
361デフォルトの名無しさん:2013/05/11(土) 16:43:38.72
362デフォルトの名無しさん:2013/06/29(土) 13:23:11.65
2010からXE4にVUPしたのですがプロジェクトオプションのデフォルト設定の仕方が分かりません
またパッケージを未使用にして保存してもいくつかXE4を再起動するとオンになってしまいます
(プロジェクトを保存して開き直す場合は反映されているのにXE4を再起動するとダメです)
XE3をいれてみても同じです。どうしたらいいの?
363デフォルトの名無しさん:2013/06/29(土) 17:22:08.08
デフォルトのプロジェクト設定はXE2辺りで無くなった
便利だったのにね

ファイルに保存できるオプションセットを使えだとさ
これ、正直仕様がよく分からん
364デフォルトの名無しさん:2013/06/29(土) 19:06:04.50
ありがとう!やっぱりそれですよね
でもパッケージの使用可否はやはり設定できないようです
365デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
俺も>>362と同じく2010からXE4にした者なんだけど
Releaseでコンパイルする方法がわからない・・・
以前は構成マネージャでdebugとreleaseを切り替えてたのに無くなってるので
これ何処で設定するの??
366デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
表示メニューに移動してた・・・

何でこんな糞みたいなことするんだろ
デフォのプロジェクト保存とか勝手に無くすし
367デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
プロジェクトオプションのダイアログの一番上にあるターゲットじゃないの?
368デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
>>367
それってたぶん、プロジェクト設定のターゲットじゃないかな、かな。
まあとりあえず解決したんだけどさ


つーか、exeでかすぎwwwwwwwwwwwwwwwwwwwwwwwwwwwww
とりあえずフォームだけのをコンパイルしてみたらexeが4MBってwwww
大丈夫なのかこれwwwwwww

以前C++Builder5でexeが肥大するバグがあってするUpdateが出たけど
何で使いもしないのも無理やりexeに組み込むんだろ
369デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
自分の所でしか動かさないのなら動的RTLの使用にチェックを入れとけば?
370デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
DebugとReleaseを切り替えるのって
プロジェクトマネージャで1ダブルクリックじゃん
XE4すげー便利じゃん
371デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
>>369
XE4入ってない環境で動かすから
>>370
プロジェクトマネージャ邪魔で非表示にしてるから今まで使った事ないんだよね
372デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
これツールバーカスタマイズでアクティブ構成のアレ追加できればいいのに
373デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
プロジェクトマネージャが邪魔なら
オブジェクトインスペクタとかと同じ場所にタブにして置けばいいじゃん
タブ1クリックで切り替えられるんだからさ
374デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
なるほど、タブでアレしたらよさげな感じになりそうですね

っていうか・・・
64bitコンパイルできるっつーからゲットしたんだけど
これプロジェクトのターゲットに32bitしか表示されないんだけど・・・
どやったら64bitでコンパイルできるんですかね??
375デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
プロジェクトマネージャ
ターゲットプラットホーム
右クリック
プラットホームの追加
376デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
>>375
ありがとうできました・・
これプロジェクトマネージャからでしか追加できないのかなあ

めっちゃ64bitをアピールしまくってたくせに何でデフォで選択できないんだろこれwwww
377デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
フォームだけのexeで4MBは多分Builderのリンカがアホなのが原因
sensorとか使ってないRTLがてんこ盛りにリンクされてる

DelphiでフォームだけだとXE3では2.2MBくらいだった
378デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
>>377
マジですか
むしろDelphiでもXE4にしたら4MBくらいになったりとか?

ちなみに、C++Builder1、3、5、6、2007、2010、EX4と使ってきたけど
新しいのリリースする度にどんどんexeが肥大化してってるww
まあいろんな機能が実装されてるから仕方ないんだろうけど
フォームだけで4MBは無いよなあ・・・
379デフォルトの名無しさん:2013/07/01(月) NY:AN:NY.AN
今やってみたら、Delphi XE4でもフォームだけで2.2MBだった。
俺の所ではBuilder XE4では3.5MBだけど何が違うんだろう?

リンカのオプションでマップファイル出力を詳細にすると何がリンクされているか分かるよ
380デフォルトの名無しさん:2013/07/02(火) NY:AN:NY.AN
動的RTLのチャック入れてるとか?
381デフォルトの名無しさん:2013/07/02(火) NY:AN:NY.AN
チャックって!!
チェックって脳内変換してね^^
382デフォルトの名無しさん:2013/07/04(木) NY:AN:NY.AN
XE4でさ、メモリをコピーだけするのを作ったのさ
んで、64bit OSで32bitと64bitでコンパイルして速度計ったら
64bitでコンパイルした方が倍時間がかかってたんだけど、何で?
383デフォルトの名無しさん:2013/07/04(木) NY:AN:NY.AN
ソースさらせ
単に対象メモリサイズまで倍になってるってことじゃないだろうな
384デフォルトの名無しさん:2013/07/04(木) NY:AN:NY.AN
単純にメモリコピー速度を32bitと64bitで比較するためにアレしてみただが

#define DIBBUFFERSIZE (1920*2048*4)
DWORD *Dib1;
DWORD *Dib2;
Dib1 = (DWORD *)::VirtualAlloc( NULL, DIBBUFFERSIZE, MEM_COMMIT, PAGE_READWRITE );
Dib2 = (DWORD *)::VirtualAlloc( NULL, DIBBUFFERSIZE, MEM_COMMIT, PAGE_READWRITE );
int ms = ::GetTickCount( );
for( int i = 0; i < 100; i ++ ){
 ::CopyMemory( Dib1, Dib2, DIBBUFFERSIZE );
}
ms = ::GetTickCount( ) - ms;
Panel1->Caption = ms;
:: VirtualFree( Dib1, DIBBUFFERSIZE, MEM_DECOMMIT );
:: VirtualFree( Dib2, DIBBUFFERSIZE, MEM_DECOMMIT );
385デフォルトの名無しさん:2013/07/04(木) NY:AN:NY.AN
CopyMemory が原因みたいだな
*des++=*src++
で単純にコピーすると64bitの方が速いな
386デフォルトの名無しさん:2013/07/05(金) NY:AN:NY.AN
>>385
やってみた。
64bitの方が早くはならなかったが同じくらいの速度にはなった。
387デフォルトの名無しさん:2013/07/05(金) NY:AN:NY.AN
System::Move()とかmemcpyだとどうかな?
388デフォルトの名無しさん:2013/07/05(金) NY:AN:NY.AN
memcpyはCopyMemoryと同じだった
Moveは使ってないっぽ
389デフォルトの名無しさん:2013/07/05(金) NY:AN:NY.AN
Moveやってみた
forで回すのと同じくらいの速度で32も64も同じくらいの速度だった
390デフォルトの名無しさん:2013/07/05(金) NY:AN:NY.AN
Moveはx86だとfastcodeのアセンブラで、x64はfastcodeのpascalコードなので、同じくらいというのは
まぁそんなもんかという気はする。
391デフォルトの名無しさん:2013/07/06(土) NY:AN:NY.AN
::CopyMemory って WinAPI 呼ぶんじゃないの?
392デフォルトの名無しさん:2013/07/06(土) NY:AN:NY.AN
>::CopyMemory って WinAPI 呼ぶんじゃないの?
CopyMemory自体がWin32API
393デフォルトの名無しさん:2013/07/07(日) NY:AN:NY.AN
>CopyMemory自体がWin32API
じゃ遅くても仕方ないな。Win64 API 使えないのかよ。
使えねーつーるだな
394デフォルトの名無しさん:2013/07/07(日) NY:AN:NY.AN
さてどうしようか
395デフォルトの名無しさん:2013/07/07(日) NY:AN:NY.AN
またmalloc()やプリコンパイルヘッダの時みたいにユーザーが提案してきた
ルーチンを組み込むつもりなのかな
396デフォルトの名無しさん:2013/07/08(月) NY:AN:NY.AN
>>393
えっ?
397デフォルトの名無しさん:2013/07/08(月) NY:AN:NY.AN
64bitネタがでていたのでXE4にVUPしてから64bitでビルドしてなかったので試してみたら3倍速位になった
デジカメのRAW現像なのでshort変数ばかり使ってるんだけどなぜ速くなったのか全くわからん
398デフォルトの名無しさん:2013/07/09(火) NY:AN:NY.AN
exeのサイズは何倍になった?
399デフォルトの名無しさん:2013/07/09(火) NY:AN:NY.AN
32bitで3.4Mが64bitは9.8Mになってた
ランタイム不要のReleaseビルドでの比較です
2010で作成したソースをClipboardで使われているNativeUIntの部分を条件分岐追加してコンパイルしただけ
400デフォルトの名無しさん:2013/07/09(火) NY:AN:NY.AN
XE4 での 32bit 版の大きさも知りたいところだな
401デフォルトの名無しさん:2013/07/09(火) NY:AN:NY.AN
何の大きさ?チンポ?
402デフォルトの名無しさん:2013/07/09(火) NY:AN:NY.AN
XE4 での 32bit 版のチンポも大きさも知りたいところだな
403デフォルトの名無しさん:2013/07/09(火) NY:AN:NY.AN
だから32bit版の何の大きさを知りたいのさ?チンポ?
404デフォルトの名無しさん:2013/07/09(火) NY:AN:NY.AN
399は両方XE4です
2010だと1.2Mだった
サイズはあまり気にしないがやっぱりでかくなってるんだな
405デフォルトの名無しさん:2013/07/09(火) NY:AN:NY.AN
チンポ?
406デフォルトの名無しさん:2013/07/10(水) NY:AN:NY.AN
C++Builder XE4でandroidアプリって作成できますか?
407デフォルトの名無しさん:2013/07/10(水) NY:AN:NY.AN
出来ねーよ
408デフォルトの名無しさん:2013/07/10(水) NY:AN:NY.AN
雑魚は黙ってろよ
409デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
C++Builder5で質問なんだけど
最初はなんともなかったんだけど
フォーム数が増えてきてからコンパイルするとアイコンがデフォになってしまう
その状態になっても何度も再構築してたらちゃんと指定したアイコンになる時もあったんだけど
今はもう完全に何度再構築してもデフォアイコンのまま
しかもこの現象はXPだけでWin7だとちゃんとアイコンが表示されている。
このバグを回避してちゃんと指定したアイコンになる方法を教えてくださ・・・・
410デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
GDIオブジェクト数の制限が掛かってるんじゃね?
レジストリいじって再起動かも
411デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
レジストリどこ弄くればいいですかね?
412デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
http://technet.microsoft.com/ja-jp/windows/mark_16.aspx

ここをよく読んで

http://factory.sakura.ne.jp/tuneapp/

これで変更

レジストリエディタでも変更できるけど間違えるとWindowsが起動しなくなったりして危険

しかし制限値は10000なのでこれが原因じゃないような気がするなあ
413デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
>>412
ありがとう。
よく読んでアレしてみます
414デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
プロセス毎に10000だよ?
Formにそれだけのコンポーネント乗っけてないよね?
415デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
1つのフォームに1万も乗せてないですが
フォーム数は100ちょいで合計してもコンポーネント数は1万も無いかもあるかもって感じですが
416デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
dfmファイルは116ありました。
ちなみにちなみに、浅いフォルダでコンパイルすると正常にアイコンが表示されます
と言ってもダメな時のフォルダ階層って4つくらいなんですけどね・・
ルートにフォルダ作ってそこでやると何故か大丈夫
417デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
>>416
それじゃあ>>412やっても変わらないだろうな・・・
俺の場合はJaneStyleで多量のJPGを一気に開くと画面が崩れるので設定を変えたんだが
他の原因だな
418デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
浅いフォルダだとおk?
もしかしてパスの長さがMAX_PATHを超えてないか?
419デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
>>417
やっぱ変わらないですか

>>418
浅いフォルダ階層だとおkですがしかし
しかし、フォーム数が少ない時やもっと深い階層で他のフォームが少ないのは大丈夫
階層深くてもフォルダ名が短いのでMAX_PATH超えることはないです256ですよね?
せいぜいあって100バイトあるかないかですね
420デフォルトの名無しさん:2013/08/05(月) NY:AN:NY.AN
C++Builder2009で作成したプログラムをWindows7で実行したのですが
リストビューのカラム幅を変更しようとドラッグすると、ドラッグ途中では
再描画されずに縦棒で位置を示す表示がされるだけで、ドラッグ終了で
位置が確定してやっと新しいカラム位置で再描画されます。
これは2009はWindows7をサポートしていないことが原因でしょうか?。
また2009でもドラッグ中に再描画できるようなウラ技(?)とかありますか?。
スプリッターはResizeStykeをrsUpdateにしておけば旧OSと同様に
処理されていますが、カラムの変更も同じような感じにしたいのですが・・・。
421デフォルトの名無しさん:2013/08/08(木) NY:AN:NY.AN
C++Builder2009なんですが、

TTreeview の LoadFromFile と SaveToFile メソッド

内部的にはUnicode だと思うんだけど、 SaveToFile で Unicode で保存まではいいんだけど
LoadFromFile で Unicode で読み込んでくれず、どうやらS-JISで読んでいるみたいなんです。

LoadFromFile で Unicode で読み込む方法か、
もしくは SaveToFile で S-JISで保存する方法があったら教えてください。

TStringList だと TEncoding で指定できるのに・・・。
422デフォルトの名無しさん:2013/08/08(木) NY:AN:NY.AN
overloadされたLoadFromFileが存在してない?
423デフォルトの名無しさん:2013/08/08(木) NY:AN:NY.AN
ないです。

E2227 _fastcall TCustomTreeView::LoadFromFile(const UnicodeString) の呼び出しに余分なパラメータがある

といわれます。
424デフォルトの名無しさん:2013/08/08(木) NY:AN:NY.AN
どうにも方法がないなら、TStringList→TStream系→TTreeviewでなんとかなりませんかね。
もしくは、TStringList.Text→TStringStream→TTreeviewとか。
当方Delphiかつ現在環境を用意してないので試してはいない。適当でスマソ。
425デフォルトの名無しさん:2013/08/09(金) NY:AN:NY.AN
>>424
TStream系に変換してみましたが、TTreeview のLoadFromStream の段階でダメのようです。

当面は原始的に各ノードに対して .StringOfChar('\t',Node->Level)+Node->Text; をTStringListに追加していって、それを保存という感じで対応しようと思います。
この方法で保存したものなら TCustomTreeView::LoadFromFile(const UnicodeString) でちゃんと読み込めましたので。

ありがとうございました。
426デフォルトの名無しさん:2013/08/15(木) NY:AN:NY.AN
評価式についての質問なんですが。

int a=10,b=20;

if(a+=b && a==30) { }

こういう式があったとして、これって真になるということは保証されていましたっけ?
されてない?

if( (a+=b) && a==30) { }

こうすればOK?
427デフォルトの名無しさん:2013/08/16(金) NY:AN:NY.AN
変態コードだけど、いいんじゃね?
428デフォルトの名無しさん:2013/08/21(水) NY:AN:NY.AN
C++Builder6で作られたソフトのメンテやらされているんだけど
簡単な画像処理で
Image1->Canvas->Pixels[x][y]=color;
で512*512ぶん回してるところがやたら遅いんだけど

Canvasを実メモリ配列に吸い出して
なんか処理してから
元に戻したいんだけど、どうすればいいんでしょ?

サンプルコードでもあれば教えてください。
429デフォルトの名無しさん:2013/08/21(水) NY:AN:NY.AN
>>428
今日も面接いってきたよ 2012年の3月から147社正社員面接しているのに採用されないよ
正社員歴2年の高卒の27だよ 福岡市に一人で住んでるよ 身長174センチ体重55キロだよ
資格は 簿記3級 秘書検定3級 ITパスポート,運転免許 モスのエクセルとワードだよ
これはネタではないよ
事実だよ
コピペでもないよ
430デフォルトの名無しさん:2013/08/21(水) NY:AN:NY.AN
>>428
ScanLine()で一行分ゴッソリ取ってくるのが普通じゃないの?
431デフォルトの名無しさん:2013/08/21(水) NY:AN:NY.AN
>>430
ありがとうございます。
VC++ばかりやってたのでVCLのメソッドがよく判っていません。
明日やってみます。

ついでと言ってはなんですが、これ以外にcanvasのイメージを一気にxy配列で取り込む方法ってありますか?
432デフォルトの名無しさん:2013/08/22(木) NY:AN:NY.AN
>>431
CopyRect使えばTBitmapにコピー出来るけどそんな事したいのか?
配列に取り込むには一度TBitmapに変換してからじゃないと1ドット毎に
システムコールが起きるので遅くて仕方がない
433デフォルトの名無しさん:2013/08/22(木) NY:AN:NY.AN
だいたいWindowsのビットマップは丸っきり前後関係が逆なのでC言語の配列とは
相性が最悪なんだよな

C<=>FORTRANで行と列を交換するtranspose()位の手間がかかる
434デフォルトの名無しさん:2013/08/22(木) NY:AN:NY.AN
ここはくだすれ...

歴史的に Windows BitMap の内部フォーマットは千差万別。かつ、連続したメモリブロックになっていない場合もある(あった)
ので結構めんどくさい。ひとことで言うと例外が多い。
素性のはっきりしたデータを最新の OS で動かすのであればそんなに問題ないんだけど
どんな画像でも、ちょっとふるい OS でも、となるとね...

なので一ピクセル単位のアクセスってのが、とっても遅いんだけど、まぁ安全。ってこと。
もうちょい早く処理したいなら ScanLine を使えば水平一ラインごとに読み書きできるので
たいていこちらを使う。
435デフォルトの名無しさん:2013/08/22(木) NY:AN:NY.AN
千差万別って、DDBとDIB Sectionの2種類しかないじゃないか
436デフォルトの名無しさん:2013/08/22(木) NY:AN:NY.AN
フルカラーの24bit16万色が(+8bitα値がGDI+)当たり前の今は関係ないけど、
昔は少ないVRAMにパレットを割り当てる事によって原色に近い色を出してたろ

そういうのを全部VCLに吸収して表面から見えないようにしていたので、プログラム
によってはびっくりするような結果が出ていた

そこまで考慮するかどうかで対応策も違ってくる
無視していいと思うんだけどね
437デフォルトの名無しさん:2013/08/22(木) NY:AN:NY.AN
×16万色
○256^3≒1677万色
438デフォルトの名無しさん:2013/08/22(木) NY:AN:NY.AN
http://www13.plala.or.jp/kymats/study/multimedia.html

ここが分かりやすいな

俺はDelphi Graphic Secretsというすっげー古い本を読んでるけど
今でも関心するような事が書いてある

でもほとんど今では役に立たないような事が多いけどな
VCLがいかに初期Windowsのヒデエ場所を隠蔽して見えなくしているかも
だいたい分かる
439431:2013/08/22(木) NY:AN:NY.AN
皆様のご親切に感謝です。
全体の内容がわかってなくての質問でした。

よく見てみると今回の質問は
ネットワークからモノクロ8ビットの画像データをメモリ配列に取り込んで
このメモリ配列の画像データを小さいウインド画面でモニタするために
 color=data*0x10000+data*0x100+data;
 Image1->Canvas->Pixels[x][y]=color; // これをグルグル
とやっているのを高速化したいのですがお勧めの手法はなんでしょうか?

単純に画像メモリ配列データをウインドに画像として出力したいということで
古いOSと古いマシンの対応は不要です。

勉強不足長文すみません。
440デフォルトの名無しさん:2013/08/22(木) NY:AN:NY.AN
http://www.geocities.jp/asumaroyuumaro/program/tips/ScanLine.html

こんな感じでScanLine()を行数分繰り返して出来たBitMapを
Imageに代入
441デフォルトの名無しさん:2013/08/22(木) NY:AN:NY.AN
ああそうだ、初めて知ったんだけど、ImageコンポーネントのPictureプロパティの
HandleからHBITMAP構造体へのポインタを得て、BITMAP構造体を
GetTObject()で取得しても、bmBitsはNULLになっちゃうのな
これどうすればいいんだろ
442431:2013/08/23(金) NY:AN:NY.AN
>>440

おかげさまで何とか理解出来ました。

初歩的な質問に付き合っていただきましてありがとうございました。
443デフォルトの名無しさん:2013/08/23(金) NY:AN:NY.AN
>>441
そっちには入っていない
MaskHandleの方に入っている
というかわざわざカプセル化されているVCLの中身を覗いてゴニョゴニョしたいのなら
初めからMFCで書けばいいだろ
444デフォルトの名無しさん:2013/08/30(金) NY:AN:NY.AN
TBitmap(もしくは、TCanvas)の2つを透過コピーするサンプルコード下さいorz


>>441

TImage->Picture->BitmapのWidthかHeightを設定するタイミングでアサインされるんでわ?
445デフォルトの名無しさん:2013/08/30(金) NY:AN:NY.AN
ScanLineでマスク画像の白の部分以外を描けばいいだけじゃない?
マスク画像使わないんなら設定した色以外の場合だけ描けばいいんじゃない?
446デフォルトの名無しさん:2013/08/30(金) NY:AN:NY.AN
AlphaFormatの事だとVCLは事情が異なるからなあ

GDI+をサポートしていないので、描画時に考慮するだけで他の動作は違うし
447444:2013/08/30(金) NY:AN:NY.AN
>設定した色以外の場合だけ描けば

調べても動作させても上手くいかなかったので、そうします。
448デフォルトの名無しさん:2013/08/30(金) NY:AN:NY.AN
ListViewでレポート表示させている場合に、ある行にフォーカスを設定すると
その行が画面に見えてない時には見える位置まで自動でスクロールしてしまうのですが
スクロールさせないようにすることは可能でしょうか?
スクロールしてしまった後に自力で戻すしかないでしょうか?
449デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ある行にフォーカスを設定ってSelectedってこと?
だとしたらウチではそんなことにならないんだけど…
450デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
SelectedじゃなくてFocused
設定すると点線で囲まれる
451デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ListView1->Items->Item[10]->Forcused=true;
にしても全然スクロールしないよ。XEだけど
452デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
その行が表示されていない状態でフォーカスを設定すると見える位置までスクロールしない?
ファイラーなんかでフォーカス行が見えていない時に↑↓キーでフォーカス行を変更すると
見える位置までスクロールするのと同じことなんだけど
453デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
>>451
描画の更新するとどうなる?
454デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
ListView1->Invalidate();しても移動しないよ
455デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
UpdateやRefreshは?
あと移動しないということは見えない状態のままということだよね
それで↑↓キーをどっちか押すと見える位置まで移動する?
456デフォルトの名無しさん:2013/08/31(土) NY:AN:NY.AN
いろいろ試してみた結果 「Forcusedをtrueにしたから」 というわけでもなく
再描画されたタイミングでフォーカス行までスクロールされているみたい
あと仮想リストビューを使っているのでその辺も違いがあったかもしれない
リストのデータを更新してCountに件数をセットしたタイミングでスクロールされていた
(フォーカスを設定していたタイミングではなかったので、ここで勘違いしてた)
なのでCountに件数をセットする前に表示されている一番上の行番号を退避しておいて
件数をセットした後でまた元の一番上の行番号が見えるように戻してやることで解決したっぽいです
ここまでお付き合いして情報を寄せて頂きありがとうございました
457デフォルトの名無しさん:2013/09/05(木) 17:36:57.52
C++Builder6のIDEについて質問です。
IDE使用中にパソコンがフリーズしたことがあり、それ以来エラーが出るようになりました。
エラーのメッセージは下記リンク先と全く同じです。

http://www.functiont.info/diary/200509.html
2005年9月18日(日) Delphiの本体でエラー?
--
モジュール 'vcl60.bpl' のアドレス 40110C48 でアドレス 00000018 に対する書き込み違反がおきました。
モジュール 'coreide60.bpl' のアドレス 0052700C でアドレス 000000B4 に対する読み込み違反がおきました。

私の場合は一応は使えるのですが、IDEのメニューで「開く」から別のプロジェクトを開くと
この上のエラーメッセージが出ます。そして検索やコンパイル結果が表示されるウィンドウが
ドッキングから外れて浮いた状態で小さく表示されます。この後このウィンドウを
ドッキングし直せば以降は普通に使えるのですが、また別のプロジェクトを開くと
同じ事象が発生します。
またこのウィンドウをドッキングから外したりして弄っていたら下のエラーメッセージが出ました。

リンク先では再インストールで直ったとあるので、修復インストールや、アンインストール後に
インストールし直してみたりしたのですが改善されませんでした。
ファイルが壊れたのなら上書きで直りそうですが、何かゴミデータでも残っているのでしょうか?。
そのウィンドウの位置やサイズ情報を読み込んで変な位置に表示しようとしてエラーが出ている
ようにも思えるのですが、何かお心当たりのある方いらっしゃいますか?。
458デフォルトの名無しさん:2013/09/05(木) 17:47:04.84
レイアウトファイルぶっ壊れてるんじゃね
デスクトップレイアウトとデバッグレイアウトを上書き保存したらどうだろうか
459デフォルトの名無しさん:2013/09/05(木) 18:18:41.61
レスありがとう。
「標準」という名称でデスクトップの配置を保存してみましたがやはり上のメッセージが出ますね。
また 表示→デスクトップの配置→標準 という感じで保存した名称「標準」を選択しようとしても
同じエラーメッセージが表示されて選択できず <未指定> にチェックが付いたままになります。
この配置の読み込みでエラーが出るということはその辺に問題点があるということなのでしょうけど
一体何を読み込んでしまっているのだろう・・・。
保存すると 標準.dst というファイルが作成されましたが、同じフォルダ内にある bcb.dsk と見比べて
みればいいのかな?。 dsk ファイルも散々書き換えて試したのですが、やはりこの辺を徹底的に
調べるしかないか。
460デフォルトの名無しさん:2013/09/05(木) 19:59:35.35
http://docwiki.embarcadero.com/RADStudio/XE4/ja/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97_%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B

このあたりはどうなん
俺のXE4でも使えたけど

http://stackoverflow.com/questions/2893191/delphi-2009-rad-studio-desktop-selector-not-working

こんなのも発見した

HKEY_CURRENT_USER\Software\CodeGear\BDS\6.0\Session\DesktopName=Default Layout
HKEY_CURRENT_USER\Software\CodeGear\BDS\6.0\Session\RuntimeDesktopName=Debug Layout

壊れてないか?
461デフォルトの名無しさん:2013/09/05(木) 21:22:19.99
C++Builder6なので同じような項目を探してみたところ以下のような箇所を見つけました。

[HKEY_CURRENT_USER\Software\Borland\C++Builder\6.0\Session]
"DesktopName"=""
"RuntimeDesktopName"=""

現状では空欄になってますけど、これに各々 Default Layout と Debug Layout って入れるということなのかな?。
462デフォルトの名無しさん:2013/09/05(木) 21:38:11.37
古いパソコンにもC++Builderを入れてたので(こちらは問題なく動く、けどパソコンが非力)
レジストリを見てみましたがその2つの項目自体が無いですね。関係ないかもしれないです。
>>459 で「標準」という名前でデスクトップ レイアウトとデバッグ時のレイアウトを作ったので
その時に追加されたのかもしれない。そして症状が変わらなかったため削除したので
空欄になってるだけみたいです。
463デフォルトの名無しさん:2013/09/05(木) 22:05:26.23
参考にならないかも知れないですがXE4ではこうなっています

[HKEY_CURRENT_USER\Software\Embarcadero\BDS\11.0\Session]
"RuntimeDesktopName"="Debug Layout"
"DesktopName"="Default Layout"
464デフォルトの名無しさん:2013/09/05(木) 22:26:56.87
http://edn.embarcadero.com/article/39780
8.デスクトップレイアウトの設定

2009辺りからもプリセットで用意されてるみたいですね。
バージョン6の頃はまだ無いみたいです。

またアンインストールしてみるかなぁ。
多分レジストリに情報が残っていたんじゃないかと推測。
BCB6RegClean.exeをやればいいのかな?。
465デフォルトの名無しさん:2013/09/26(木) 23:00:41.47
XE2で、エントリーポイント(WinMain)があるファイルの
USEFORMマクロの上に気が付いたら空行を
どんどん追加されてるんだけど、これどうにかならないの?
466デフォルトの名無しさん:2013/09/28(土) 19:03:52.62
C++Builder2009Proを使っています。
.pas ファイルをコンパイルしようとしているんですが、Indy系のファイルが見つからないとしてエラーになってしまいます。

>[致命的エラー] F1026 ファイル 'IdBaseComponent.dcu' が見つかりません

cppのC++で書かれたフォームにIdHTTPを貼り付ける → コンパイルは通る。
pasのDelphiで書かれたフォームにdHTTPを貼り付ける → 上記のエラーが出る。

C++Builder2009に付属のdccコンパイラはお試し的なもので本格的にコンパイルできるようにするにはDelphi買えってことなんでしょうか?
それともなにか方法があるんでしょうか。
(まあC++BuilderだけでDelphiも利用できたら分ける意味が無いなとは思うのですが)
467デフォルトの名無しさん:2013/09/28(土) 19:43:41.98
>>466
Delphiユーザーですが、IdBaseComponent.dcuが存在するならば
そこへのライブラリパスが適切に設定されていないのでは?
という気がします。
468デフォルトの名無しさん:2013/10/08(火) 16:46:16.13
Delphi糞ユーザーは口をはさまないで下さい。うざいだけです。
469デフォルトの名無しさん:2013/10/08(火) 20:14:26.21
>>468
お前どこでも荒らしてるな
DelphiもC++Builderも持ってない癖に
470デフォルトの名無しさん:2013/10/08(火) 20:45:58.37
触らないほうが…
471デフォルトの名無しさん:2013/10/10(木) 03:23:18.25
エンバカってバグ取り=アップデート(要お布施)ってこと?
XE6が出ても、新規では10万するのかな
472デフォルトの名無しさん:2013/10/13(日) 12:32:54.38
リリースビルドの設定でパッケージを含んで動的リンクさせないような設定にしたいんだけど
毎回プロジェクト作るごとに設定するの面倒だからデフォルト設定にしたいんだけどそう言う設定ないの?
473デフォルトの名無しさん:2013/10/13(日) 12:50:08.40
よくわからんけど。
「プロジェクト」->「オプション」メニューから設定してない?
「ツール」->「オプション」から設定すればデフォにならない?
474デフォルトの名無しさん:2013/10/13(日) 13:24:40.58
ビルドの設定はわからなかったけど、フォーマッタって言うの見てたら
ソースの成形っていうメニューがあることを初めて知って設定して実行したらいい感じになった
VSだとある程度自動だけどこれいいな
475デフォルトの名無しさん:2013/10/14(月) 10:02:24.58
>>472
どのバージョンを使ってるのか分からないけど
プロジェクトのデフォルト設定はXEまではあったが、XE2からは廃止された
XE2からはオプションセットにプロジェクト設定を保存して、それを適用しろという事らしい
476デフォルトの名無しさん:2013/10/17(木) 11:29:53.79
Builder XE4でNMSMTPってみつからないんだけど?
なくなった?
Indy使えってこと?
477デフォルトの名無しさん:2013/10/17(木) 19:24:33.34
NM*とはずいぶん古いな。とっくに作ってた会社もなくなってる。Indyでどうぞ。
478デフォルトの名無しさん:2013/10/17(木) 21:30:50.90
入力補完でキャストすれば行けるのに出てこない候補とかあるんだけど
設定とかあるの?
479デフォルトの名無しさん:2013/10/17(木) 21:31:22.72
あ、XEです
480デフォルトの名無しさん:2013/10/23(水) 11:10:01.90
XE4ってデフォでAPIがWCHARになってるんだけど
WriteFileって引数はWCHARで通るのに書き出されたファイルみると
ちゃんとなってない・・・
アスキーの"123"ってかきたかったのに"1 2 3 "ってなっちゃうんだけど
これcharでやろうとしたら逆にエラーでるし
どうしたらWCHARでちゃんとWriteFileでファイル作れますかね?
481デフォルトの名無しさん:2013/10/23(水) 11:21:58.49
あれ?
試しにサイズにsizeof(WCHAR)かけたらちゃんとかけた
lstrlenは文字数を返してるけどWriteFileのサイズってバイト数のままかこれ
でもサイズが半分しか指定してなくて何でWCHARの2バイトのままかかれるのかwからん
482デフォルトの名無しさん:2013/10/23(水) 12:10:53.61
内部は全部ユニコードだから
483デフォルトの名無しさん:2013/10/23(水) 16:46:48.23
XE4で質問
ソフトを起動してからボタンを押すとメインフォームのVisible=falseにしたらフォームが消えるんですが
コンストラクタでやっても消えてくれません。
Application->ShowMainForm = false;
これやっても消えてくれません。
起動時にどうやったらフォーム非表示で起動できますかね?
484デフォルトの名無しさん:2013/10/23(水) 19:31:20.33
ApplicationEvents配置して、OnActiveイベントに記述
485デフォルトの名無しさん:2013/10/23(水) 19:35:46.81
>>480-481
BOOL WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped)

HANDLE hFile; /* 書き込み先のファイルのハンドル */

LPCVOID *lpBuffer; /* ファイルに書き込むデータのアドレス */

DWORD nNumberOfBytesToWrite; /* 書き込むバイト数 */

LPDWORD lpNumberOfBytesWritten; /* 書き込まれたバイト数のアドレス */

LPOVERLAPPED lpOverlapped; /* 重複I/Oに必要な構造体のアドレス */

これでしょ?
引数は 
LPCVOID だからもとからバイト数だよ。
486デフォルトの名無しさん:2013/10/23(水) 19:42:04.47
だよな
487デフォルトの名無しさん:2013/10/24(木) 05:28:10.04
MainFormが表示されてから、表示を消さないといけない
MainFormが表示される前のタイミングで、表示を消しても無意味
ノーマルなやり方は
MainFormのOnActivate()イベントで、消すのが普通だろうな
488デフォルトの名無しさん:2013/10/24(木) 09:10:40.83
どういうのを作りたいのかよくわからんがフォーム自体いるのかね
消えたまま起動して後からまた表示させることもあるんかな
トレイに入れておくとか、あるいはバックで動かしたいのか
フォーム使わないなら最初から無いまま作ればいいんだし
489デフォルトの名無しさん:2013/10/24(木) 09:40:11.62
まあ、オプションの自動生成フォームから、MainFormを外せばいいんだけどね
490デフォルトの名無しさん:2013/10/24(木) 11:55:35.09
>>487
そこでfalseしても消えてくれない
491デフォルトの名無しさん:2013/10/24(木) 12:39:30.47
XE4とwin8で一回目にダイアログを実行してなにかファイルを選択して、
二回目にダイアログを実行したとき、フルパスで表示されます
ファイル名だけを表示させる方法を教えてください。
昔はファイル名だけが表示されたと思うんですが、、、、
ttp://www.dotup.org/uploda/www.dotup.org4608757.png
492デフォルトの名無しさん:2013/10/24(木) 14:03:31.99
>>489
それやると次は、「プログラムを起動しても何も起きません」ってなるんじゃね?
493デフォルトの名無しさん:2013/10/24(木) 15:46:08.57
>>483
フォームの〜.cppじゃなくて、プロジェクト名.cppのRun()の前で
Application->ShowMainForm = false;
やるんじゃないの?
494デフォルトの名無しさん:2013/10/24(木) 17:14:19.35
Application->ShowMainForm = false; はコンストラクタでおk
495デフォルトの名無しさん:2013/10/24(木) 19:26:03.98
>>483で、

> ソフトを起動してからボタンを押すとメインフォームのVisible=falseにしたらフォームが消えるんですがコンストラクタでやっても消えてくれません。
> Application->ShowMainForm = false;
> これやっても消えてくれません。

って書いてあったから流れ的にコンストラクタで Application->ShowMainForm = false; やっても消えないという意味だと解釈してしまったが
質問者は コンストラクタで Visible=false しかやってないってことなのか。

>>493
自動生成のフォームのコンストラクタはもとからRun()の前だよ。
496デフォルトの名無しさん:2013/10/26(土) 21:50:00.84
コンポーネント作ってるんだけど、ファイル名を格納するStringで
オブジェクトインスペクタにファイル選択ダイアログを表示させるボタンを表示させたいんだけど
どうやったらいいのでしょうか
497デフォルトの名無しさん:2013/10/26(土) 22:08:36.95
プロパティを文字列型じゃなくてTFileName型に変えたらどう?
498デフォルトの名無しさん:2013/10/26(土) 22:29:04.51
>>497
出ませんね
499デフォルトの名無しさん:2013/10/26(土) 22:44:08.65
あら。ごめん。俺あんま経験なくてw
なんか、プロパティエディタ登録すればいいらしいんだが、
DesignIntf.pasやDesignEditors.pas,VCLEditors.pasのデフォルトや標準のエディタが
登録されてて、これで間に合わなければ自分で作るらしい。
登録にはRegisterPropertyEditorとかいう関数で。
って、俺じゃあれだから、プロの意見の待った方がいいな。
500デフォルトの名無しさん:2013/10/26(土) 22:51:17.03
VCLEditors.pasにTMPFileNamePropertyというTMediaPlayer用の
File Open Dialogを表示するプロパティエディタがあるから、これを真似れば
いいんじゃないかと思う。
501デフォルトの名無しさん:2013/10/27(日) 15:44:18.10
初歩的な質問ですみません。
for文やwhile文などでくりかえし処理をすると,繰り返しの回数が99回目までは問題ないのですが
必ず100回目で「sqrt domain error」が必ず出ます。
数値を色々変えてみても必ず起きます.
ssqrt domain errorはルートの中身が負のときでるエラーだと思うのですが
それ以外に出る原因はありますか?
502デフォルトの名無しさん:2013/10/27(日) 16:20:24.52
そう言う場合はまず作ってるプログラムから離れて間違っているのか確認してから
そうでは無いなと確信してから自分のプログラムを疑う物ですよ
503デフォルトの名無しさん:2013/10/29(火) 13:52:21.53
>>501
√に入れる変数にunsigned入れたらいいんじゃね?
504デフォルトの名無しさん:2013/10/29(火) 14:24:43.48
何でもassert
505デフォルトの名無しさん:2013/10/29(火) 15:07:07.12
デバッグすればいいだけじゃん
ループの100回目でブレークポントを張って
変数の値を確認すればよい
506デフォルトの名無しさん:2013/10/29(火) 23:49:47.28
スタックでも壊してたりしてな
507デフォルトの名無しさん:2013/11/05(火) 17:38:05.77
void __fastcall TForm2::ButtonWRClick(TObject *Sender)
{
char *tmp;
CamRegInfo ci;
ci.devaddr = 0xba; // dev addr

unsigned short val[3];
int addr = 0;
int data = 0;

tmp = strdup(EditAddr->Text.c_str());
sscanf(tmp,"%02x",&amp;addr);
free(tmp);

tmp = strdup(EditData->Text.c_str());
sscanf(tmp,"%02x",&amp;data);
free(tmp);

ci.devaddr = addr;
ci.data = data;
USBWriteData((unsigned char *)&amp;ci,6,0x07); // to I2C Controller
}

2010年くらいにいただいたビルダーのサンプルプログラムを今,実行しようとしていますが
[BCC32 エラー] Unit2.cpp(204): E2034 'wchar_t *' 型は 'const char *' 型に変換できない
[BCC32 エラー] Unit2.cpp(204): E2342 パラメータ '__s' は const char * 型として定義されているので wchar_t * は渡せない
というエラーがtmp = strdup(EditAddr->Text.c_str());に出ます.
調べるとこうするとエラーが取れました.tmp = strdup(AnsiString(EditData->Text).c_str());
しかし,新たに[ILINK32 エラー] Fatal: ファイル 'K.OBJ' を開けません
というエラーが出て困っています.
508デフォルトの名無しさん:2013/11/06(水) 00:38:50.77
それは困りましたね。
509デフォルトの名無しさん:2013/11/06(水) 09:22:42.32
Unicodeの意識が無さ過ぎ
510デフォルトの名無しさん:2013/11/06(水) 10:02:11.48
511デフォルトの名無しさん:2013/11/06(水) 10:14:53.13
>>509 スレタイ読め
512デフォルトの名無しさん:2013/11/06(水) 10:23:07.10
>>511
オマエのクソレスの方が何の役にもたってないことに気付けボケ
513デフォルトの名無しさん:2013/11/07(木) 15:24:59.71
仮想デストラクタをcppに書くと必ず、
「ここには記憶クラス"virtual"は指定できない」ってエラーが出るんだけど
どうしたらよいの?
514デフォルトの名無しさん:2013/11/07(木) 17:28:29.26
>>513
ヘッダに宣言書いているでしょ?
CPPに書くデストラクタの本体には virtual はつけない。
       ~~~~~~~~~~~~~~~~~~
もしCPPに書いているのがclass宣言で、その宣言に virtual をつけるのはOK

もしそのようにしているのに怒られると言うなら具体的にコードを書いてみて
515デフォルトの名無しさん:2013/11/07(木) 17:32:54.63
>>514
ありがとう!ヘッダに宣言書いていました
516デフォルトの名無しさん:2013/11/07(木) 22:21:46.25
System.DateUtils.hppをインクルードすると、
W8058 ヘッダーに初期化データが含まれているためプリコンパイルヘッダーを作成できない
ってエラーが出るのは、回避不可能なの?
517デフォルトの名無しさん:2013/11/07(木) 22:38:52.41
>>516
そんなのしょっちゅうだよ
インライン展開はほんとうに控えめだし
518デフォルトの名無しさん:2013/11/11(月) 13:09:32.22
継承される可能性のあるクラスは、仮想デストラクターを置けって言うけど、
ヘッダーファイルに↓の置いておくだけでよいの?
virtual __fastcall ~TSample();
519デフォルトの名無しさん:2013/11/11(月) 13:32:23.26
>>518
それでもコンパイルエラーは出ないけど、いざ実行されるとランタイムエラーが出るんだっけ
確かそんなはず
520デフォルトの名無しさん:2013/11/11(月) 15:07:57.54
>>519
特にエラーは何も出ずに実行できるのだが
521デフォルトの名無しさん:2013/11/11(月) 16:58:02.35
>>518
本体(デストラクタの実体)がないからエラーになるはずだけど

[ILINK32 エラー] Error: 未解決の外部参照 '__fastcall TSample::~TSample()' が x:\xxx\xxxx\xxxx.OBJ から参照されました

宣言したけど使っていない場合はエラーも出ないし実行に支障はない
これはメンバ関数も同じだよね

ヘッダーに書きたいなら宣言にあわせて実体も書いておくものじゃないだろうか。

virtual __fastcall ~TSample() { }

抽象クラスでの純粋仮想デストラクタを考慮するなら

virtual __fastcall ~TSample() = 0;

になるだろうし。
仮にその(>>518)宣言で問題にならないにしても、継承したクラスで問題起きるかもしれないから書いておいたほうが無難だとは思う。
522デフォルトの名無しさん:2013/11/11(月) 16:58:31.24
アプリの起動時に、しなきゃならない処理がたくさんあるんだけど
(INIファイルの読み込みとか)
メインフォームやスプラッシュフォームのコンストラクターとかに
書くと気持ち悪いから、アプリケーション初期化関連のメソッドを
並べたクラスを一つ作って、メインフォームのコンストラクターから
インスタンス作って全部やらせるのって、汚いやり方?
1つの仕事を順番にやるだけのクラスになるんだけど。
523デフォルトの名無しさん:2013/11/11(月) 17:01:13.43
>>521
これだと、"純粋関数定義の構文が正しくない"と怒られてしまうのだけど。。
virtual __fastcall ~TSample() { }
524デフォルトの名無しさん:2013/11/11(月) 17:46:35.14
>>522
別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出すだけじゃだめなの?

>>523
そのエラーがどういう状況で発生するのか良くわからないのでお役に立てない感じ。
どういうクラス宣言しているのかちょっと気になります。
525デフォルトの名無しさん:2013/11/11(月) 17:52:53.52
>>524
ありがとう。

> >>522
> 別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出すだけじゃだめなの?
メインフォームに関係ない処理を、メインフォームクラスに置くのは気が引けて。。

> >>523
> そのエラーがどういう状況で発生するのか良くわからないのでお役に立てない感じ。
> どういうクラス宣言しているのかちょっと気になります。
ごめん。IDEを再起動してみたら、普通にコンパイルできた。謎だ。
526デフォルトの名無しさん:2013/11/11(月) 18:15:55.83
共通なグローバルな初期化はメインのデータモジュール作って、データモジュールのコンスタラクタとかでやれば??
で、各フォーム特有の初期化は各フォームのコンストラクタでやる。
「プロジェクトオプション」の「フォーム」で指定する作成順序はメインデータモジュール->メインフォームの順で。
俺はだいたいそうやって作ってるけど。

大抵、データベースアプリとかで、グローバルな接続コンポはデータモジュール作って、そこに置くように、
その延長でそうしてる。
527デフォルトの名無しさん:2013/11/11(月) 18:47:50.47
>>526
TSQLDataSetとかTSQLConnection とかでなく、
自作のクラスを包含させるっていうこと?
ド素人で申し訳ない。。
528デフォルトの名無しさん:2013/11/11(月) 18:59:36.66
まず、データモジュールってコンポーネントはしってるんだよね??

グローバルな設定の初期化(終了化)するタイミングはデータモジュールのコンスタラクタ(デストラクタ)なわけで、
後は、君が書いたクラス次第でしょ。ここが何をして、どう使うクラスになってるのか全く想像できないから、
どう説明したらいいか・・
529デフォルトの名無しさん:2013/11/11(月) 19:02:26.66
えらそうに言わないでください
530デフォルトの名無しさん:2013/11/11(月) 19:05:13.57
それか、>>572はこういうことか。
もちろん、君のクラスはTComponent派生して、別にIDEに登録して使うわけじゃないと思うから、
TSQLConnectionみたく、IDEから貼り付けできないけど、そのクラスがインスタンスが
アプリの開始から終了までずっと、
存在する必要があるなら、データモジュールに、フィールド(プロパティ)を追加して、データモジュールの
コンストラクタ(デストラクタ)で作成・破棄してもいいし。そこはやっぱ、君のクラスが何してるか、どう使うか次第・・
531デフォルトの名無しさん:2013/11/11(月) 19:14:23.95
>>528
> まず、データモジュールってコンポーネントはしってるんだよね??
知らないんだ。リファレンスを見たところ、別のコンポーネントを一括管理するのかと思っているのだけど。

WinSocketの初期化、INIファイルのロード、各種スレッドの起動等を
メインフォームの表示前に終わらせてしまうのが目的。
元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
そのメソッドをコールしようと思っていたのだけど。。
532デフォルトの名無しさん:2013/11/11(月) 19:29:42.48
>>リファレンスを見たところ、別のコンポーネントを一括管理するのかと思っているのだけど。
そう、それで、別にコンポーネントのためだけに使わなくてもいいわけで、そこに、グローバルなコンポーネント以外にも、
自作のグルーバルなクラスのインスタンスをプロパティ経由とかで、外部に公開してもいいわけで。そこはご自由にと。

>>元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
>>アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
>>そのメソッドをコールしようと思っていたのだけど。。
これをそのまんま使うなら、インスタンスの生成とメソッドコールを単にデータモジュールのコンストラクタに移動するだけ終わりじゃ?
533デフォルトの名無しさん:2013/11/11(月) 19:33:15.87
>>522でキミが 「メインフォームやスプラッシュフォームのコンストラクターとかに書くと気持ち悪い」と言ったコードを「データモジュール」のコンストラクタに書けばいいんだよ。

データモジュールは、C++Builderのバージョンがわからないのであれだけど、
自分のものは 新規作成→その他→C++Builderプロジェクト→C++Builderファイル にある

データモジュール自身にそれらを実行する関数を持たせて「別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出す」ってのでもいいけど。
534デフォルトの名無しさん:2013/11/11(月) 19:35:02.08
クラス名は TDataModule ね
535デフォルトの名無しさん:2013/11/11(月) 20:02:57.86
説明不足で本当に申し訳ない。
汚いやり方とか、気持ち悪いとか言ったのは、
クラス名を動詞にするなとか、データがなくで振る舞い(メソッド)だけのクラスは良くないって
CODE COMPLETEやら、ほかのWEBサイトに書いてあったからなのです。
そういうクラスを作ること自体が、オブジェクト指向と外れているのではないかと。
536デフォルトの名無しさん:2013/11/11(月) 20:43:39.99
メソッドだけならクラスじゃなくて関数でいいしね。

データモジュールはヘルプみればわかると思うんだけど、
http://docs.codegear.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/delphivclwin32/Classes_TDataModule.html
>また,データモジュールのユニットファイルにアプリケーション全体に適用されるものをすべて入れておくようにしてもよいでしょう。

っていう記述がある。
主に非ビジュアルコンポーネントを“一元管理する目的”の TDataModule なので、それはつまり複数のフォームやユニットからのアクセスを受けるということ。
そういう特性を利用して WinSocketの初期化、INIファイルのロード などのアプリケーション全体に影響する設定や処理をそこで行うということ。

ただし「各種スレッドの起動」に関してはそのスレッドが何をするものなのかにもよる気がするので。

データモジュールのユニットファイルにそれらを実行する関数を書く。
データモジュールのコンストラクタからそれを実行する。
537535:2013/11/11(月) 21:01:01.58
>>536
物凄くよく分かりました!ありがとうございます!
参考に一度実装してみようと思います!
538デフォルトの名無しさん:2013/11/12(火) 15:12:44.63
>>510
リンクありがとうございます.
一通り目を通しましたが,解決方法がわかりませんでした.
どの辺を特に見たらいいですか?
539デフォルトの名無しさん:2013/11/12(火) 17:00:07.90
シングルトンデザインパターンで実装すると、

マルチスレッド アプリケーションのコンストラクタでローカル静的変数を使うことは危険です

という警告が出るのですが、どう危険なのでしょうか。
540デフォルトの名無しさん:2013/11/12(火) 17:40:58.25
初期化コードが複数回あるいは同時に実行されることがある、という
541デフォルトの名無しさん:2013/11/12(火) 17:42:13.78
542539:2013/11/12(火) 18:39:32.34
ありがとうございます。
マルチスレッド化する前にインスタンスが作られるのであれば、
#pragmaで消しても大丈夫な警告なのでしょうか?
543デフォルトの名無しさん:2013/11/12(火) 19:56:40.06
遅延生成をやめれば問題はない
544539:2013/11/12(火) 20:26:11.82
>>543
分かりました。ありがとうございます!

それから、関係ないのですが、クラス名の1文字目の"T"って何の略ですか?
"TApplication", "TForm", "TThread", "TCheckBox"等の"T"です。
545デフォルトの名無しさん:2013/11/12(火) 20:44:20.00
昔、OWLを作った人がTypeのTだと明言してた
546デフォルトの名無しさん:2013/11/13(水) 16:44:57.65
XE4でTChartなくなった??
発見できないんだけど
547デフォルトの名無しさん:2013/11/13(水) 16:48:41.81
あ、あったわ。
変なタブに潜んでた
まあしかしお前等ってほんと糞の役にも立たないゴミ虫だよなww
548デフォルトの名無しさん:2013/11/14(木) 00:53:54.22
TurboApplication、TurboForm、TurboThread、TurboCheckBox。
549デフォルトの名無しさん:2013/11/14(木) 19:23:35.13
XE4の品質は超クソだな
さすがにXE3から数ヶ月で出ただけのことがあるわ
で、このクソ品質を修正しただけのXE5に更新するには\40,000-って
どんだけクソな会社なんだよ…
今に分かった事じゃないんだけどさ
550デフォルトの名無しさん:2013/11/14(木) 20:04:52.15
ボーランド時代は安くて痒い所に手が届く使い勝手の良いコンパイラを提供してくれていたのだが
551デフォルトの名無しさん:2013/11/14(木) 20:20:27.22
それに無理があったからボーランドは手放したんでしょ?
552デフォルトの名無しさん:2013/11/15(金) 01:00:43.35
とりあえず今のC++ XE4 Update1で発生する不具合

・ビルド時にsaveMemのエラー?でコンパイラが起動出来無くなる事がある
・インクリメンタルリンクを有効にしているとビルド後のバイナリ起動時にDelayLoaderのエラー発生
・突然プロジェクトファイルに不正なタグが書込まれる ProjectExtensions問題 XE2から
・デバッグ実行のプロセス起動時にアプリケーションエラーでIDEごと落ちる

こんなにクソなんです
QCに入れたって日本人担当者とさんざん英語でやりとりした挙げ句、
再現出来ずだしな
553デフォルトの名無しさん:2013/11/15(金) 01:43:24.74
可哀想に。
あの「日本人担当者」はボランティアなので多くを期待するな
554デフォルトの名無しさん:2013/11/15(金) 02:49:42.72
QC 入れるときに 「高橋さんはコメントしないでください」
って一文入れとけばいいと思う。

552 のバグレポートって、何番?
555デフォルトの名無しさん:2013/11/15(金) 18:42:10.89
現象が再現しないってのはよくあることだわな
ちゃんと、再現性があるなら
その再現条件を明記しないからだろ
再現しないのは、特殊環境下でしか起きないこともあるしな
あるいは自作プログラムのバグが悪さをして不安定になってるとか
自分が遭遇したBuilderのバグは、ぐぐればまず間違いなく同じ現象が出てくるわ
556デフォルトの名無しさん:2013/11/16(土) 02:04:02.26
それは甘え。
特殊なのは高橋さんのほうかもしれないしな
557デフォルトの名無しさん:2013/11/16(土) 10:40:50.67
それは言いがかりに近いな
558デフォルトの名無しさん:2013/11/17(日) 01:55:45.53
「再現できない」ってのは「バグがない」ってことではないのだよ
「テストケースエラー」でもない。

言いがかりをつけているのはどっちかな
559デフォルトの名無しさん:2013/11/17(日) 10:25:05.81
キミだよ
560デフォルトの名無しさん:2013/11/17(日) 10:52:17.44
558 支持。
561デフォルトの名無しさん:2013/11/17(日) 13:08:08.46
言いがかりだよ
562デフォルトの名無しさん:2013/11/17(日) 15:01:28.39
BCB6で32bitアプリを作る時にはどうすれば良いんでしょうか。
16bitしか作れないんでしょうか。
563デフォルトの名無しさん:2013/11/17(日) 15:16:10.42
64bitアプリの間違いか?
BCB6ならすでに32bitアプリなんだが。
564デフォルトの名無しさん:2013/11/17(日) 15:16:53.55
何か作ったexeが16bitになってるんですが、どうしたらよいんでしょうか
565デフォルトの名無しさん:2013/11/17(日) 15:26:14.61
ああ、バージョン情報を含めるをチェックしたらバージョン情報が出てきました。

マイクロソフトのサイトに、exeファイルを右クリしてバージョン情報が出てこなかったら16bitアプリって
書いてあったんですが、右クリで出てきたので32bitなんですかね。
566デフォルトの名無しさん:2013/11/17(日) 15:59:10.36
32bitになってました。どうもありがとうございました。
567デフォルトの名無しさん:2013/11/17(日) 16:18:23.61
>>565
それはMSのアプリに限っての話だろう。
32bitアプリはバージョン情報を含める事も含めない事もできる。
16bitアプリはバージョン情報を含める事ができない。
MSは自社アプリには必ずバージョン情報を含めるからバージョン情報が出ないなら16bitアプリっていう判断なんだと思う。
あとMSでなくても市販のアプリは基本的にバージョン情報含めているから同じ。
個人開発だと必ずしも含めているとは限らないからその判定法は成立しない。

と、そういうことなんだと思う。詳しくは知らないのだけど。
568デフォルトの名無しさん:2013/11/18(月) 10:49:06.19
>>567 の素晴らしい考察に感動したっ!!
そして >>562 のあまりのお粗末さにも感動したっ!!

でさ、みんなちゃんとバージョン情報付けてる?
どうでも良いツールなんか手抜きしてバージョン情報付けなかったりするけど、
>>562に16bitあぷりでつか?って言われちゃうのか
569デフォルトの名無しさん:2013/11/18(月) 10:53:04.82
初心者版で初心者かもしれない人に何いってんだか・・
570デフォルトの名無しさん:2013/11/18(月) 10:53:10.93
XE2以降ではバージョン情報の設定機能はダメダメになってるよね
プラットフォーム別にバージョン情報を別に出来るって言うのは理解できるけど、
そのおかげで全ビルド構成で別々にバージョン情報が作られてしまう
「ビルド番号を自動更新」にすると、DebugとReleaseで別々のバージョン情報になってしまうという…

一体全体どういう連中が作ってるんだろうか
571デフォルトの名無しさん:2013/11/18(月) 12:01:26.40
XE2を使っています。
プロジェクトマネージャのウインドウで、各ユニットのフォルダ構造が
表示されていますが、この中でユニットになっていないものがあります。
(+ボタンを押すと、開くようになっていない)

プロジェクトファイルで、DependentOnタグが付いていないユニットが
該当するようなのですが、このタグを直接プロジェクトファイルをいじらずに
付ける方法はございませんでしょうか。
572デフォルトの名無しさん:2013/11/18(月) 12:23:21.74
そこまで分かってるんならプロジェクトファイル直接書替えればいいじゃん?
あとは一度プロジェクトからソースを削除してもう一度追加してみるか

はっきりとは分からんけど、ヘッダファイルのインクルードガードのマクロ名で
ユニットになっているかどうかを判定しているように思えた
573デフォルトの名無しさん:2013/11/18(月) 12:54:15.00
>>572
ありがとうございます。
プロジェクトから削除〜追加でユニット化されました。

インクルードガードのマクロ名で判定しているのは確かだと思います。
そのため、#pragma onceが使う機会を持てません。
574デフォルトの名無しさん:2013/11/18(月) 18:10:46.44
> 16bitアプリはバージョン情報を含める事ができない。

含める事ができないんじゃなくて、32bitWindowsからは「16bitアプリのバージョン情報」は読めない(バージョンタブが表示されない)ってだけかもしれないな。
575デフォルトの名無しさん:2013/11/20(水) 08:54:28.16
最近、XE2でコンパイルすると
[ILINK32 警告] Warning: プロジェクト名.ilc 0x00010000 / 0x08000000
[ILINK32 警告] Warning: unknown heap name : 0x08000000 / 0x08000000
[ILINK32 警告] Warning: エラーが検出されました(LME286)
[ILINK32 警告] Warning: インクリメンタル リンクを実行できません -完全リンクを実行中...
[ILINK32 エラー] Error: リンクを実行できません。

とか表示されてしまうのだけど、何故?
576575:2013/11/20(水) 09:11:06.26
ちなみに、PCを再起動するとコンパイルできるようになる。
IDE自体の再起動ではダメ。
577デフォルトの名無しさん:2013/11/20(水) 12:13:11.66
XPじゃないのか?
XE3SP1だったかSP2はそれで動かなくなってたな
578デフォルトの名無しさん:2013/11/20(水) 13:09:50.04
>>577
Win7
579デフォルトの名無しさん:2013/11/20(水) 15:42:32.95
LME286でぐぐるとなんかあるっぽいが
580デフォルトの名無しさん:2013/11/20(水) 22:55:34.09
>>575
Avastとかのアンチウィルス常駐してるなら一時的に無効にしから起動して作業しないとダメだよ
Avastが疑わしいexeとか強制でフックしちゃうから異常動作連発する
581デフォルトの名無しさん:2013/11/29(金) 18:01:14.70
DriveComboBoxでデフォルトドライブの変更方法教えて
DriveやItemIndexを弄っても全然変わってくれない
582デフォルトの名無しさん:2013/11/29(金) 18:46:03.82
>>581
Drive プロパティに代入するだけで変わるけど。
wchar_t 型だけど char 型で代入しようとしてない?
Enabled プロパティとか false になってない?
583デフォルトの名無しさん:2013/11/29(金) 23:14:08.18
何かiOSアプリの開発ができるようになるらしいが
584デフォルトの名無しさん:2013/11/30(土) 01:50:47.22
BCB6で、リッチエディットの上にマウスが乗った時のマウスカーソルを変更するのは
どうしたら良いんでしょうか 右向きの矢印が出ます
585デフォルトの名無しさん:2013/11/30(土) 12:42:42.49
リッチエディットのCursorをオブジェクトインスペクタで変更しておけばいいんじゃ?
586デフォルトの名無しさん:2013/11/30(土) 21:32:02.58
マウスカーソルの変更出来ました。ありがとうございました。
587デフォルトの名無しさん:2013/12/02(月) 17:27:08.37
TImageで質問
ストレッチがtrueで
Image1->Picture->LoadFromFileで画像を表示させて
Image1->Widthを変更して再度表示させても以前のサイズのままで
更に読み込むと指定した大きさになるんですがこれすぐ正常なサイズで表示するにはどうしたらいいんですか?
Image1->Picture=NULLにしてもすぐには変わってくれなかったです
588デフォルトの名無しさん:2013/12/02(月) 20:23:23.70
>>587
Image1->Picture->Bitmap->Height = height;
Image1->Picture->Bitmap->Width = width;

がいるんじゃないかな。
589デフォルトの名無しさん:2013/12/03(火) 14:45:38.60
>>588
ありがとうy、やってみる。
590デフォルトの名無しさん:2013/12/03(火) 14:56:18.60
ダメでした(´・ω・`)
591デフォルトの名無しさん:2013/12/03(火) 18:12:27.49
できますた( ´∀`)
592デフォルトの名無しさん:2013/12/06(金) 13:37:24.07
TJPEGImageでjpgを早く読む方法教えて
何かVBとか画像データの検証をオフにしてロードしたら早くできるみたいなんで
これにそういうのあったら教えてほしいですです
593デフォルトの名無しさん:2013/12/08(日) 14:49:43.62
Form1.cpp の中で
自分で作った関数や変数の宣言をするのと、

Form1.h の中のprivate: や public: の所で
自分で作った関数や変数の宣言をするのでは、

メモリ使用量やプログラムの大きさ等が何か変わってくるのでしょうか。
594デフォルトの名無しさん:2013/12/08(日) 17:09:11.28
オブジェクト指向プログラミング勉強してこい
595デフォルトの名無しさん:2013/12/09(月) 09:23:14.60
>>593
ヘッダに書くと小さいコードだとインライン関数になるか
メモリー使用量やプログラムの大きさは大きくなるけど速度は速くなる傾向。

>>594
オブジェクト指向プログラミングはあまり関係ないような気がする。
スモールトークにもJavaにもC#にもヘッダーファイルの概念は無いから。
596594:2013/12/09(月) 10:32:01.94
>>593の前者は非メンバで後者はメンバ、という読みだが >>595
597デフォルトの名無しさん:2013/12/09(月) 11:28:50.09
エスパー検定勉強してこい
598デフォルトの名無しさん:2013/12/09(月) 13:21:54.02
>>596
そういう意味か!!
てっきり、インライン関数かそうで無いかだと思ったよ。
すまん。
599デフォルトの名無しさん:2013/12/09(月) 14:18:39.89
オブジェクト指向はメモリやプログラムの大きさの事を考えて設計する方法では無い
そもそもオブジェクト指向勉強してこいとか、質問の答えにさえなってない
600594:2013/12/09(月) 14:42:09.84
じゃ質問に答えてやれよ
601デフォルトの名無しさん:2013/12/12(木) 13:51:00.24
スレッドのExecute()内で、StringGridを動的生成しようと
以下の様にしました。

TStringGrid *SG = new TStringGrid(this);

[BCC32 エラー] Get.cpp(103): E2285 'TStringGrid::TStringGrid(Get * const)' に一致するものが見つからない

エラーの意味が分からないのですが、
スレッド内で動的に生成してはいけないのでしょうか?
アドバイス頂けると助かります。
602デフォルトの名無しさん:2013/12/12(木) 14:19:34.01
スレッドのクラス内でthisでいいの?
603デフォルトの名無しさん:2013/12/12(木) 14:34:32.90
>>602

this はおまじないだと思っていました。
調べても良く分からないのですが、
空の StringGrid を作るには this の代わりに何を指定すれば良いのでしょうか?

作成したStringGridを貼り付けるGridFormを指定しましたが、
コンパイル時にエラーは出なくなりましたが実行時エラーが発生します。

TStringGrid *SG = new TStringGrid( GridForm );
604デフォルトの名無しさん:2013/12/12(木) 15:18:04.94
Execute内でStringGridの動的生成って、ダメじゃないけど豪快だな
Synchronize()とか使ってメイン側で更新する必要があるので、あまり意味がないことが多々ある

スレッド側で必要なのはStringGridではなく文字列の配列だったり、
スレッド生成時にStringGridも生成すれば十分だったりしないかな?
605601:2013/12/12(木) 15:34:49.14
有り難うございます。

やっぱり余りやらない方法なんですね。
経緯を話しますと現時点では、スレッド内からSynchronize()を使って
StringGridのテーブルを更新しています。
このSynchronize()を使った更新処理が重くてなんとかならないかと考え試行錯誤しています。
Queue()を使った方法も試したのですがStringGridがたまにちらつくのでイマイチでした。
(DoubleBufferedはtrueにしてあります。)

次に、StringGridの更新はスレッド内からしか行わないので、
StringGridをスレッド内で生成すれば、StringGridの所有権がスレッドになり、
Synchronize()しなくて済むので、
早く(並列)なるのでは無いかと考えて今に至ります。

勘違いしている点やアドバイスがあればお願い致します。
606デフォルトの名無しさん:2013/12/12(木) 16:06:26.75
TStringGrid(Get * const) 

なんだから、テキストファイルとかを渡すんだろ
607デフォルトの名無しさん:2013/12/12(木) 16:34:01.69
更新処理が重いなら間引くべきだと思うよ
毎回更新する必要があるなら、それは並列化できない、つまりスレッド化の意味がない
608601:2013/12/12(木) 17:13:53.53
有り難うございます。

間引く方向で検討したいと思います。
有り難うございました。
609デフォルトの名無しさん:2013/12/12(木) 17:48:46.90
スレ違いだけどこの仕様、C#でも受け継いでいて本当クソだと思うわ
ヘジたんこういう所はダメなのね
610デフォルトの名無しさん:2013/12/12(木) 18:55:59.95
>>605
アプリケーション内で使うStringGridはそのひとつなんでしょ?
ただ更新はスレッド側からのみ、メインでやると重くなる、という理由ってことだよね?

重くなるというのが、更新処理中に他のメッセージを処理しなくなりGUIが応答しなくなることを言っているのだろうか?
それとも単純に更新処理に時間がかかるという意味だろうか。

前者でCPUバウンドな更新処理なら TStringGridには Cols プロパティ(TStrings*)や Rowsプロパティ(TStrings*)というのがあるので、
スレッドに TStringList を用意しておき必要な更新処理をすべてこのTStringList に対して行う。
TStringGrid への反映は Synchronize()で Cols プロパティや Rowsプロパティでスレッドの TStringList をAssign してあげればいいんじゃないだろうか。
極力 Synchronize() での処理はデータのコピーにとどめておけばいいと思う。

前者で演算よりもGUIの更新自体(例えば大量の Cells プロパティを更新するなど)が多いなら、
更新処理の合間に適度に TApplication::ProcessMessages を入れてあげればいいと思う。

後者で、単純に更新処理に時間がかかるというなら、更新処理を見直せとしか。

あとStringGridの所有権が誰だろうと、可視コンポーネントはWindowsメッセージによって(つまりメインスレッドで)制御されているのでSynchronize()しなくて済むということはないよ。
611デフォルトの名無しさん:2013/12/12(木) 19:09:59.46
Application->ExeName が化けてるんだけど
Win32のフォルダんとこが.\\.とかなってるし
これちゃんと取る方法おしえてくださ
C++BuilderXE4
612デフォルトの名無しさん:2013/12/12(木) 20:07:55.27
C++11から本格的にマルチスレッドと同期サポートが入ったから、案外行けるかも
あ、VCLはObject Pascalで書かれてるんだっけorz

.NETも4.5からAsync入ったしうかうかしてると横取りされちゃうぞ
613デフォルトの名無しさん:2013/12/16(月) 15:00:24.58
BCB6でデバッグの時にF12キー押したら出てくるCPUウインドウを出さないように出来ますか
614デフォルトの名無しさん:2013/12/16(月) 15:24:03.19
CPUを外してください
そうすれば出なくなりますから
615デフォルトの名無しさん:2013/12/17(火) 18:35:10.82
CPU外してもF12押したら出ました・・
嘘言うのはやめてくださいしんでください
616デフォルトの名無しさん:2013/12/18(水) 02:12:28.70
>>615
可哀想に幻覚が見えるのか
精神科をすぐに受診してください
617デフォルトの名無しさん:2013/12/18(水) 11:20:06.65
wmain だったら BCB6 では無理かも。
618デフォルトの名無しさん:2013/12/21(土) 15:16:38.70
BuilderXE4で実行時にPanelのColorを変更するとキャプションが消えるバグがあるのですが
これを回避する方法を教えてください
619デフォルトの名無しさん:2013/12/21(土) 15:28:12.77
できた

お前等ってほんと糞の役にも立たないゴミだな^^
620デフォルトの名無しさん:2014/01/09(木) 16:59:04.02
TPopupメニューをOwnerDrawする時に
表示されるメニューの幅と高さを任意に指定する方法をおしえて
621デフォルトの名無しさん:2014/01/09(木) 22:03:01.66
OnMeasureItemでWidthとHeightを変更する
622デフォルトの名無しさん:2014/01/24(金) 11:57:52.15
C++Builder2010でSQLConfigDataSourceがリンカエラーになるんだけど
odbccp32.libを追加してるのに。
ちなみに、XPでは正常にリンクできたのにWin7だとリンカエラーになるのですが
Win7でもちゃんとリンクする方法を教えてくださ
623デフォルトの名無しさん:2014/01/31(金) 11:46:42.51
印刷するのにお勧めのコンポーネント教えて
624デフォルトの名無しさん:2014/01/31(金) 15:43:16.58
FastReport
625デフォルトの名無しさん:2014/02/01(土) 16:32:08.39
Delphi XE4 Professionalを持ってるんですが、
C++BuilderXE5 Starter
のアップグレード版は使えますか?
626デフォルトの名無しさん:2014/02/01(土) 18:54:26.64
問題ありません。
627デフォルトの名無しさん:2014/02/01(土) 18:57:33.18
あー、
> Delphi StarterとC++Builder Starterの両方を購入して1つのマシンにインストールして「Mini RAD Studio」のように使うことはできますか?
> いいえ、1つのコンピュータには、1つのStarterエディションしかインストールすることができません。

なので、VMでも何でもいいので別のWindowsがいるので注意してね。
628デフォルトの名無しさん:2014/02/01(土) 18:59:06.09
いやもうデルファイ使わないんでC++さえ使えればいいですw
629デフォルトの名無しさん:2014/02/01(土) 21:01:02.00
コンパイラはx86でC++11対応じゃないので、そこも気をつけて。
630デフォルトの名無しさん:2014/02/04(火) 11:46:48.55
>>624
FastReportどこのタブにありますか?
言い忘れてましたがC++Builder2010ですう
631デフォルトの名無しさん:2014/02/04(火) 11:51:13.48
EX4にはFastReportのタブあったけど
2010には無いから2010ではFastReport使えないっぽいですねこれ
QuickReportも無いっぽいしどうしたらいいのこれ
632デフォルトの名無しさん:2014/02/04(火) 15:07:59.35
残念だけどRave Reports
633デフォルトの名無しさん:2014/02/04(火) 16:32:54.59
Rabeタブはありますが、Reportsがありませんえん
634デフォルトの名無しさん:2014/02/04(火) 16:33:28.11
Raveです、かみまみた
635デフォルトの名無しさん:2014/02/04(火) 16:37:20.60
あ、でも、RaveProjectで何か印刷のアレをビジュアルでできそうです
どうせ糞だろうけど頑張ってやってみますありがとうございました糞野郎共
636デフォルトの名無しさん:2014/02/06(木) 16:46:38.48
SOAP通信できるコンポーネント教えて
637デフォルトの名無しさん:2014/02/06(木) 16:56:59.54
TSoapConnectionを発見した!!XE4
んで、送受信はどうやってやるの?
638デフォルトの名無しさん:2014/02/10(月) 13:52:08.67
"44Op44O044Kn44Or44OK"みたいなUTF-8でアレされてるのを戻す方法を教えてください
C++BuilderXE4です。
639デフォルトの名無しさん:2014/02/14(金) 14:01:54.52
>"44Op44O044Kn44Or44OK"みたいなUTF-8でアレ
よくわからん。日本g
640デフォルトの名無しさん:2014/02/20(木) 11:40:21.94
TOpenDialogでInitialDirを指定しても直前に開いたとこを開くんだけど
ちゃんと指定したフォルダを開く方法を教えてください
641デフォルトの名無しさん:2014/02/20(木) 11:58:06.80
642デフォルトの名無しさん:2014/02/20(木) 15:39:58.88
>>641
サンクス、確かにOSはWin7でXPではちゃんといってたけど

しかし、C++BuilderXE4のバグなのかわからないんだけど
ExtractFileDir( Application->ExeName )で取得したexeのパスがバグってる
exe作るとWin32フォルダにdebugフォルダが作成されてそこで実行してるけど
取得したパスが必ずWin32フォルダの前に\.\が入ってる
これのせいでDialogのInitialDirやFileNameに指定してもうまくいかなかったんだけど
これちゃんとパスとる方法ありますかね?
643デフォルトの名無しさん:2014/02/20(木) 15:47:14.24
正規化
644デフォルトの名無しさん:2014/02/20(木) 16:03:01.36
いや意味わかんないです
645デフォルトの名無しさん:2014/02/20(木) 17:45:06.74
つ ExpandFileName
646デフォルトの名無しさん:2014/02/20(木) 19:12:22.42
>>645
ありがとう、感動した。
ExpandFileNameをかましてやったらちゃんとパスがアレしてくれました

しかし今までちゃんとできてたのに急に腐った仕様に変えないでほしいなあ園馬鹿ってやっぱ馬鹿なんだな
647デフォルトの名無しさん:2014/02/20(木) 19:54:49.15
勝手に相対になっちゃうの?
648デフォルトの名無しさん:2014/02/21(金) 10:19:05.00
パスを見るとフルパスになってるんだけど
何故かWin32フォルダの前に必ず\.\が付加されてる。
ちなみに、Win32フォルダが無い別フォルダで実行するとちゃんとしたパスがゲットできてる
649デフォルトの名無しさん:2014/02/21(金) 10:34:00.47
OSの仕様が絡んでいそうな・・・ よくわからんけど
650デフォルトの名無しさん:2014/02/21(金) 15:19:09.05
設定ファイルか何かでそう書いてるだけじゃないの
今まで気づいてないだけとか
651デフォルトの名無しさん:2014/02/21(金) 15:57:13.01
リンカのファイル出力先がそうなってるから、
デバッガに渡される実行ファイルのパスもそうなる

リンカの出力先指定:.\$(platform)\$(config)
652デフォルトの名無しさん:2014/02/22(土) 02:07:21.82
プロジェクトオプションでC++(共有オプション)の中間出力と最終出力ディレクトリにある.\を削除すればOK
653デフォルトの名無しさん:2014/02/22(土) 02:11:20.47
追記 参照ボタン押すとフルパスになるから文字列からダイレクトに削除してね
654デフォルトの名無しさん:2014/03/04(火) 10:32:24.33
>>651-653
それやっちゃうと違うPCやフォルダ変えてコンパイルする時はまたその設定が必要なのでは?
655デフォルトの名無しさん:2014/03/06(木) 11:19:51.13
XE4のTMediaPlayerで現在再生中かどうかを調べる方法を教えてください
656デフォルトの名無しさん:2014/03/06(木) 12:08:12.17
Modeプロパティで分かるよ
657デフォルトの名無しさん:2014/03/06(木) 14:07:45.92
ゴメン、Modeじゃ分からんかったわ
Notify = trueにして再生開始して、OnNotifyイベントで成功が通知されたら再生終了だ
現在再生中という情報を直接取ることは出来ないみたい
俺がやったのはOnNotifyでMode==Playingで処理結果が成功なら再生終了と判定したよ
658デフォルトの名無しさん:2014/03/06(木) 14:11:17.42
>>657
ありがとうございます。
OnNotifyは終了だけを検知したかったのでNotify=falseで使いたいんですが
自分で再生したのはわかるのでOnNotifyが来たら終了って判断できるのですが・・・
そういうのがあったらアレかなとおもって聞いてみましたがアレでしたね
659デフォルトの名無しさん:2014/03/06(木) 14:29:56.39
ほんとアレっすよね
660デフォルトの名無しさん:2014/03/06(木) 15:11:36.52
言うほどアレでもなかったわ
661デフォルトの名無しさん:2014/03/06(木) 15:18:52.18
つーか、今改めて試してみたけど>>656でおkかも
Notify=falseならModeで再生中とそれ以外の区別がついてる感じ
662デフォルトの名無しさん:2014/03/06(木) 15:32:48.53
フォーム非表示の状態で作成されたフォームのListViewがクリアできない
一旦表示させないとListView->Items->Clear( )受け付けてくれないんだけど
これ非表示のままならどやってリストビュークリアしたらいいの??
663デフォルトの名無しさん:2014/03/06(木) 15:42:40.54
Update() やってみるとか(適当・未確認)
664デフォルトの名無しさん:2014/03/06(木) 17:18:43.59
>>663
ダメでしたよ。
665デフォルトの名無しさん:2014/03/07(金) 00:06:06.17
Handleを取得してみる
666デフォルトの名無しさん:2014/03/07(金) 10:22:10.84
>>665
それから?
667デフォルトの名無しさん:2014/03/07(金) 20:28:14.79
>>662
どういう状況かよく分からない
その症状が出る最小のコードでも晒してくれればと思うが。

少なくともこちらでは「フォーム非表示の状態で作成されたフォーム」での
ListView->Items->Clear( )は正常に出来ている。
668デフォルトの名無しさん:2014/03/08(土) 00:04:52.41
>>666
処理の前にHandleNeededを呼ぶってこと
669デフォルトの名無しさん:2014/03/11(火) 16:18:17.81
>>667-668
返信遅れて申し訳ない
C++Builder5の時からそうだったんだけど
普通にフォームにListView貼り付けて設計時にデータ入れときます
んで、そのフォームのコンストラクタでListView->Items->Clear( )すると消えてくれない

ちなみに>>662で非表示でクリアできないうんぬんは消すタイミングの問題で
別フォームのボタンを押したらListViewのあるフォームのListView->Items->Clear( )したら消えますよ
670デフォルトの名無しさん:2014/03/11(火) 16:21:09.46
>>668
ちなみに、フォームのコンストラクタで
HandleNeeded();
ListView->Items->Clear( );
やっても消えませんでした。
671デフォルトの名無しさん:2014/03/11(火) 16:22:49.04
あ、すみません。
間違いました。
↓ですよね。
ListView->HandleNeeded();
ListView->Items->Clear( );
これやったらちゃんと消えましたすみまsん
672デフォルトの名無しさん:2014/03/11(火) 18:16:53.03
おめでとさん
673デフォルトの名無しさん:2014/03/11(火) 19:58:50.41
久々に引っ張りだしてBCB6使いましよ。
未だに便利だな。
674デフォルトの名無しさん:2014/03/11(火) 20:56:45.64
故Winny作者も使ってたBCB6
675デフォルトの名無しさん:2014/03/12(水) 10:09:18.17 ID:gNDuFwAY
>>672
ありがとゆ

しかし、長年CBuilder使っててHandleNeededって初めて知ったぽ・・・
676デフォルトの名無しさん:2014/03/12(水) 12:04:47.65 ID:QsWejUh6
XE4までは使ってたんだけど64bitがClang使ってて怪しいし、C#の方が便利なんで
最近こちらばかり使っている
677デフォルトの名無しさん:2014/03/12(水) 12:56:32.95 ID:9wY/JUzG
正解
678デフォルトの名無しさん:2014/03/12(水) 14:14:10.21 ID:gNDuFwAY
C++BuilderでC#って出てる?

てか、ここID出るよういんあったのね。
679デフォルトの名無しさん:2014/03/12(水) 15:03:45.80 ID:n+Y+ZrF5
以前は.NET向けの何かがあったが今は無いよ
>>676 はVS使ってるって事でしょう
680デフォルトの名無しさん:2014/03/13(木) 21:22:18.12 ID:2KMiQ96l
ちなみにBCB6からはどれに移行するのが便利かな?
最新の安いの買えば古いのは落とせるんだよね?
681デフォルトの名無しさん:2014/03/14(金) 00:00:21.88 ID:Ar+khIgg
まず2007。次はXE5で。古いのが使えるのはPro以上で、Arcだろうがアカデミックは除外。
682デフォルトの名無しさん:2014/03/14(金) 09:49:14.65 ID:OyQukPKW
Unicode以前に移行するくらいなら6のままで良いんじゃないの?
ちなみにC++はXE以降で何も変わってないよ
それどころかXE2以降では訳の分からん不具合が結構ある
2009から使ってるけど、Win32VCLならXEが一番まともだと思う
683デフォルトの名無しさん:2014/03/14(金) 10:22:00.41 ID:E4e1CSrP
>>681
>>682
ありがとう。最新版への移行は試してみたんだけど、確かにUnicode周り
が大変な感じだった。コンパイラは変わってないのね。
2007借りて試してみてダメだったら6のまま現役で作ります。
684デフォルトの名無しさん:2014/03/14(金) 13:28:13.98 ID:1agqAwAb
2007はバグ多いからお勧めできんけど。
685デフォルトの名無しさん:2014/03/14(金) 15:14:33.31 ID:OyQukPKW
仕事で6使ってるの?
まだまだ結構いそうだけど
686デフォルトの名無しさん:2014/03/15(土) 10:16:32.35 ID:2N6ROkeB
6も最初バグだらけだった気がした
687デフォルトの名無しさん:2014/03/15(土) 11:08:01.76 ID:bzLcn0oj
6+Upd4だっけ
688デフォルトの名無しさん:2014/03/16(日) 05:58:29.84 ID:nUsKxNa+
6はデバッガに問題がある
689デフォルトの名無しさん:2014/03/17(月) 05:40:28.03 ID:r15lmn2t
いまだに5を使っている
690デフォルトの名無しさん:2014/03/17(月) 10:12:10.52 ID:STcoURnP
5って一番よかったわ。
俺もまだ5を使ったりするけど最近はXE4が多いかな64ビットアレできるし
691デフォルトの名無しさん:2014/03/18(火) 15:09:16.49 ID:qmOr3Dts
TListViewはどやって動的に作成するの?
ListView1 = new TListView( this );
で作成してもAddすると落ちるんですが
692デフォルトの名無しさん:2014/03/18(火) 16:01:40.93 ID:giRVVYry
thisはどこ指してる
693デフォルトの名無しさん:2014/03/18(火) 17:56:10.93 ID:rfN06h31
>>692
クラス自身。だからクラスのメソッド内でしか使わない。

class hoge{
private:
class hoge *this;
};
こういうこと
多少の差異はあるものの
694デフォルトの名無しさん:2014/03/18(火) 17:57:13.04 ID:rfN06h31
>>690
1使ってる俺に謝れ
695デフォルトの名無しさん:2014/03/18(火) 19:22:32.30 ID:nfn1DUZV
>>693
>>692が聞いてるのはそういうことじゃなくて、thisとして何を渡してるのかなんだと思うが。
この場合のコンストラクタのパラメータには既に表示済の(hwndが有効な)TWinControlか
その派生クラスのインスタンスを渡すのがいいと思う。普通はTListViewを乗せるフォームかな。
696デフォルトの名無しさん:2014/03/18(火) 19:26:19.29 ID:+03dJUij
1も使ったことある
超昔に会社で
Delphi2 相当で
後に連番が繰り上がって 2 がなくて
3,4,5 になっていったのを克明に覚えている
697デフォルトの名無しさん:2014/03/18(火) 21:07:14.37 ID:cZ3kjopq
一番最初の記念価格のやつ買いました、しかも本屋さんで。
バージョンの番号が付いていなかったけど、ちゃんとバージョンアップされていきましたね。
単発で終わるかも?って思ってました。
698デフォルトの名無しさん:2014/03/18(火) 23:12:28.25 ID:VHoYM8as
>>693
横着せずにまずは新しいプロジェクト作って簡単なコードで TListView を動的作成したほうが原因つかみやすいだろ。
ちゃんとParent設定してるかとか。
699デフォルトの名無しさん:2014/03/20(木) 15:53:38.30 ID:ZOtvmQUF
XE5ってXE4から何が変わったの?何か追加された?
700デフォルトの名無しさん:2014/03/20(木) 15:59:12.78 ID:oBNShYHt
全く何も変わってない
不具合もそのまま
701デフォルトの名無しさん:2014/03/24(月) 17:16:54.97 ID:jkhS/0AK
よし!じゃあ今から注文するわ
702デフォルトの名無しさん:2014/03/25(火) 17:19:10.70 ID:6CkDQtbn
XE4が腐った。
ソースをコピペしたら意味不明なエラーが出てコンパイルするとリンクエラーが出るようになる。
再起動したらまたちゃんとコンパイルもリンクもできるけどめんどい
エロい人助けてエロい人
703デフォルトの名無しさん:2014/03/25(火) 17:25:29.82 ID:8L+P/Z2e
もうちょっと具体的に書いたら
704デフォルトの名無しさん:2014/03/25(火) 17:26:38.41 ID:CSTEObew
XE5を買いなさいと言うエンバカからのお告げじゃない?
まったく直ってないと思うけど
意味不明なエラーってどんなんだよ
705デフォルトの名無しさん:2014/03/25(火) 17:28:34.86 ID:TO7HBHku
>>702
エラー内容も書かないとかw

再インストールしろ
706デフォルトの名無しさん:2014/03/25(火) 17:33:33.93 ID:lCjhtacd
ユーザーに致命的なエラーが発生しました
707デフォルトの名無しさん:2014/03/25(火) 17:53:04.92 ID:6CkDQtbn
だって、エラー内容書いたってお前等馬鹿だからどうせ解決しないし
>>703-706みたいなゴミレスは不要なんですよ。
知らないならレスしないで下さい。ウザいだけです。
708デフォルトの名無しさん:2014/03/25(火) 18:05:36.46 ID:lCjhtacd
既にNGに入ってます
709デフォルトの名無しさん:2014/03/25(火) 18:21:57.56 ID:TO7HBHku
解決するかどうかは別として開発者ならエラー内容なしにエスパーするのは難しいって知っていると思うが。
専ブラの初心者ユーザ並みの能力だな。
710デフォルトの名無しさん:2014/03/25(火) 18:38:09.70 ID:8L+P/Z2e
ゴミ箱に放り込みました
711デフォルトの名無しさん:2014/04/02(水) 16:12:11.76 ID:t1Fz8vI4
C++Builderで作ったっぽいプログラム資源がある
ただしC++Builderのバージョンや、
どんなカスタマイズ(コンポーネントやパッケージ)を用いているのか
さっぱり不明

プログラムの修正依頼をされたけど
最新版のXE5を使えば、開発できるもんなの?
やってみたが、コンパイルエラーが腐るほど出る
712デフォルトの名無しさん:2014/04/02(水) 16:28:11.27 ID:XXXtG5bC
首吊る準備した方が早いな
713デフォルトの名無しさん:2014/04/02(水) 17:42:58.20 ID:4mJ5OkVZ
コンポーネントの行方次第だな
714デフォルトの名無しさん:2014/04/02(水) 19:06:32.00 ID:fe4YAVY6
行方(ゆくえ)
715デフォルトの名無しさん:2014/04/02(水) 20:42:56.15 ID:jXqwXVYI
ActiveXとか使われてると最悪
716デフォルトの名無しさん:2014/04/02(水) 20:50:12.64 ID:dFeJg3uF
>>711
コンパイルエラーの始めの辺りを貼れ
717711:2014/04/03(木) 09:16:33.75 ID:c6M8SUjY
>>all
サンクス

>>716
本当にこれでいいのかよくわからん資源を集めて
PGを修正しまくって
コンパイルはどうにか通した
ただ、リンクでエラーになる

[ilink32 エラー] Fatal: シンボル @$xp$25Endigrph@TDibGraphicClass の
サイズがゼロか、オフセットが大きすぎます
(モジュール 'C:\PROGRAM FILES\EMBARCADERO\
20786_ENVISION_IMAGE_LIBRARY\ENV201\TRIAL\CB6\ENDIGRPH.OBJ' 内)

EnDiGrph.hpp obj dcu は無かったのでダウンロードした資源
718711:2014/04/03(木) 15:06:39.14 ID:c6M8SUjY
Envision Image Library とかいうのを
取り込んでいるっぽい
それが古い版だったのでXE5対応のやつをパッケージで
取り込んだ

しかしdcuファイルはあるが、hppファイルが無いため
クラス定義なしのエラーになる
719デフォルトの名無しさん:2014/04/03(木) 19:37:58.06 ID:03j6Q/GA
ああなんかそのエラーとかって requires セッションになんか加えるんだっけな?
720デフォルトの名無しさん:2014/04/10(木) 11:41:05.83 ID:hCZjGgXU
EX4のTProgressBarで質問です
ProgressBar->Max = 100;
ProgressBar->Position = 0;
for( int i = 0; i < 100; i ++ ){
 ProgressBar->Position ++;
}
ProgressBar->Position = 0;
こうした時にProgressBarの表示が半分くらいのとこで終わるのですが
最後にPosition=0をしないと最後まで表示はされますが
処理が終わってからProgressBarが最後まで行くまでに時間がかかってます。
これ以前のようにPosition++した瞬間にProgressBarの描画がされるようにする方法を教えてください
721デフォルトの名無しさん:2014/04/10(木) 13:27:41.43 ID:MBnprmD9
Repaint
722デフォルトの名無しさん:2014/04/10(木) 13:58:03.40 ID:BMsuBXEr
Invalid Update Repaintについてはここ見るよろし
http://kwikwi.cocolog-nifty.com/blog/2008/06/bcbdelphi_cfcb.html
723デフォルトの名無しさん:2014/04/10(木) 15:53:27.45 ID:cHkBS6BK
僕が提出したノートは2冊だっけな?
724デフォルトの名無しさん:2014/04/10(木) 17:36:41.17 ID:hCZjGgXU
>>721-722
いえいえ、そういうことを言ってるのではなくてですね
TProgressBarが意図的に推移バーを遅延させてるんですよこれ
XE4で>>720やってみてもらうとわかるとおもいますが
そして>>723は視ね
725デフォルトの名無しさん:2014/04/10(木) 18:06:04.55 ID:CRnY9LL7
Application->ProgressMessage() じゃないの?
最後まで言ったのに描画更新が行われず前回の更新時の画面で止まるってのはたまによくまれにある。

あとプロパティ値に対して ++ ってOKだっけ?

>__property int Position = {read=GetPosition, write=SetPosition, default=0};

展開すると GetPosition()++ 見たいになる的な糞な仕様があったけど、
当然改善されているのかな?

ProgressBar->Position = i+1;

に変えるか

ProgressBar->Position = ProgressBar->Position +1;

にするかとか。
EX4なんて新しいもの持ってないんで最近のことはよくわかんね。
726デフォルトの名無しさん:2014/04/10(木) 19:00:03.95 ID:coZ4bcw7
ProgressMessage()
ってはじめてみた
727デフォルトの名無しさん:2014/04/10(木) 19:17:35.95 ID:UFqHLSfk
Application->ProcessMessages()か

C#で言うとApplication.DoEvents()みたいな
XPマシン電源消したからわからん
728デフォルトの名無しさん:2014/04/10(木) 19:58:45.76 ID:ZTfayk7W
×ProgressMessage()
○ProcessMessages()

ループ処理させる時とかでイベント割り込ませるのによく使うよな
掴んだままだと応答なしとか出て行儀の悪いプログラムになるし
729デフォルトの名無しさん:2014/04/10(木) 20:06:46.33 ID:CRnY9LL7
あーそれそれ。
730デフォルトの名無しさん:2014/04/10(木) 20:32:29.24 ID:J0ZVG4eI
ProcessMessagesで、手動でメッセージループを回すケースが必要になるなんて
どっちかというと、プログラムの設計が行儀悪いからだと思うけど。
プログレスを表示するってことはそもそも、ある程度時間のかかる処理なわけで、
そんな処理をUIスレッドで行なおうとするからProcessMessagesせざるを得なくなるわけで、
サブスレッドでそもそもやれと思う。
731デフォルトの名無しさん:2014/04/10(木) 20:35:06.53 ID:coZ4bcw7

またスレタイ読めない人が出現
732デフォルトの名無しさん:2014/04/10(木) 20:42:37.46 ID:/AIMsHz9
HandleMessage() もさほど変わらん
733デフォルトの名無しさん:2014/04/10(木) 20:58:17.17 ID:J0ZVG4eI
>>720
つか、そもそも、Windowsシステムにおいて描画の処理って優先度低くて、暇な時やるってスタンスだから、
for( int i = 0; i < 100; i ++ ){
 ProgressBar->Position ++;
}
でループで頻繁に回しても、描画まとめられちゃうからね・・
734デフォルトの名無しさん:2014/04/11(金) 13:13:27.96 ID:bepIv9hm
>>733
いえいえ、違います>>720は例です
以前はちゃんと描画されてた(Builder5)ので
いつからかはわかりませんが、勝手に遅延描画されてるんですよ
735デフォルトの名無しさん:2014/04/11(金) 18:05:40.10 ID:73QXDgv6
>>734
自分(>>725)もBuilder5持ってる、試してみたけど確かになるね。
2009で試したけど、こっちもなる。

MarqueeInterval というプロパティ値は?
>アニメーション表示の更新間隔(ミリ秒)。これにより、強調表示部分が動く速度を設定します。デフォルトは 10 ミリ秒です。値を大きくするほど、速度は遅くなります。
2009でのデフォルトだと10(ミリ秒)
Builder5にはなかったプロパティ。

確認してもダメと言うことならたぶんコントロールとしての動作仕様が変わったとかじゃない?
とりあえず ProgressBar->Positionを更新した後にProcessMessages()を呼び出せばちゃんと更新されるようになる。
もしそれでも更新されないならコードがおかしい(最適化のせい)とかかも知れない。
736デフォルトの名無しさん:2014/04/11(金) 21:41:50.01 ID:G2hHL9t4
VisualStyleの影響とか、VCL Styleの影響って事はない?
737デフォルトの名無しさん:2014/04/13(日) 02:21:43.71 ID:An7WAIh1
> ProgressBar->Position ++;
この書き方はしたこと無かったな、自分は
ProgressBar->StepIt();
いつもこう書いている
あるいはStepBy(1);
違いがあるのか、無いのかは知らないが
738デフォルトの名無しさん:2014/04/13(日) 12:31:07.74 ID:HXOgCYL2
最近XE4 C++ Builderを使い始めた初心者ですが、次のような
コードでエラーが出ないのは何故でしょうか?

char *ptr = "ABCD";
*ptr = 'X';

普通Visual Studio 2010等ではコンパイル・エラーとなりますが、
XE4ではコンパイルが通ってしまいます。。。。(´・ω・`)
XE4の場合は上記のようにポインタを文字列リテラルのアドレスで
初期化する際に、明示的にconst修飾子を付けない限り、文字列
はconst領域のデータ・セグメントには格納されないのでしょうか?
それともコンパイラの警告オプションの設定の問題でしょうか?

初歩的な質問ですみません。
739デフォルトの名無しさん:2014/04/13(日) 14:55:05.57 ID:PtXBUBAS
URLを貼ろうとしたら「さくらが咲いてますよ」と言われるんだが

-dcオプション

無視されるみたいだけど
740デフォルトの名無しさん:2014/04/15(火) 09:19:24.78 ID:ERITG9Tj
>>739
多分嫌儲とJIMがやってるサクラサーバ除外処理でしょう。
面倒だからオープンにスレ立てますか。
741デフォルトの名無しさん:2014/04/30(水) 18:44:48.10 ID:lAKrL3qN
ボタンのAnchorsで設計時にLeftとBottomして
実行すると配置より上にボタンが表示されちゃいます。
フォームはMDI子フォームでBorderStyle=bsSizeable
何が原因ですかね?
ちなみに他の画面でも同じ事やってるフォームありますがそっちは正常です。
Builder5
742デフォルトの名無しさん:2014/04/30(水) 18:52:25.22 ID:ZY5HChQC
parentの設定し忘れ
743デフォルトの名無しさん:2014/04/30(水) 18:52:54.78 ID:+uCJ/EHs
スケーリングの問題じゃないの?
744デフォルトの名無しさん:2014/05/01(木) 09:56:57.94 ID:CuOT4gd+
>>742
動的に作成してなくて設計時にボタンを貼り付けてます

>>743
フォームのScaledはfalseにしてます。
正常に表示されてるフォームと同じ設定にしてます

パネルにのっければすむ話なんですがなるべく画面を弄りたくないのでめんどくさいし。
他にアンカーをbottomとかに変更したら実行時に位置が変わる原因て何かありますかね?
745デフォルトの名無しさん:2014/05/01(木) 10:01:15.76 ID:CuOT4gd+
あー、もしやとおもってscaled=trueにしたらうまくいった。
これtrueにするとグリッドの表示がくずれるんだよなあ・・・
でも他のフォームはscaled=falseにしてるのになんでうまくいくんだろ
746デフォルトの名無しさん:2014/05/01(木) 10:10:46.81 ID:CuOT4gd+
更に他の画面でやったらやっぱscaled=falseでもうまくいく
ダメな画面はステータスバーついてるんだけどこれが悪さしてる希ガス
747デフォルトの名無しさん:2014/05/01(木) 10:12:13.71 ID:K+RzAtOV
フォームに直接置かないでパネル敷いてみ
748デフォルトの名無しさん:2014/05/01(木) 10:20:04.52 ID:CuOT4gd+
749デフォルトの名無しさん:2014/05/01(木) 10:29:27.77 ID:K+RzAtOV
なにがどうめんどうくさいのかね?
オボコみたいにコピペでやればちょちょいのちょいだよ
750デフォルトの名無しさん:2014/05/14(水) 11:21:30.30 ID:iA+Geeud
XE4が何かおかしくなったので再インスコしてるんだけどInterBaseのインスコで止まる・・
何度やってもダメ、全部アンスコしてからインスコしてもダメ
これどうしたらいいのさ・・・
751デフォルトの名無しさん:2014/05/14(水) 12:08:09.15 ID:V3q1idwI
いくら超初心者とはいえ
われわれは超能力者でもエスパーでもありませんので
もう少し詳しく状況を書いてもらわなければ
何も回答することができません
752デフォルトの名無しさん:2014/05/14(水) 12:13:12.78 ID:iA+Geeud
しゃーないからInterBaseはインスコせずに際インスコしたら
今度はCodeSite Expressのインスコで固まった・・・
何この糞ソフト・・・
えん馬鹿ってほんと馬鹿だな・・・
753デフォルトの名無しさん:2014/05/14(水) 19:18:14.12 ID:HdE5rqaa
Support KBに完全アンインストールのアーティクルがあったはずなんで、まずは全部消してみては?
754デフォルトの名無しさん:2014/05/14(水) 19:22:16.80 ID:eTwx7JM5
ところでBDS2006ってWin7でも使えるん?
755デフォルトの名無しさん:2014/06/09(月) 14:29:51.16 ID:2i9+DxAv
XE4のTTrackBarで1回動かすとOnChangeイベントが2回入るバグを回避する方法を教えて
756デフォルトの名無しさん:2014/06/13(金) 11:39:41.87 ID:cEBL9XA9
TTreeViewで質問ですが
起動時にフォルダツリーを作成してるのですが
これを指定した階層のフォルダを開いた状態にする方法を教えて
例えば aaa\bbb\cccって指定したらcccが開かれてるとか
757デフォルトの名無しさん:2014/06/13(金) 12:43:24.46 ID:JKfszcic
展開された状態にしたいTTreeNodeのインスタンスを取得して、
ExpanededプロパティをいじるかExpandメソッド使うだけでしょ。
758デフォルトの名無しさん:2014/06/13(金) 16:20:58.51 ID:cEBL9XA9
いや、そうなんだけどさ。
これ自分で指定ノードまで検索しないとダメなのかなっておもって
759デフォルトの名無しさん:2014/06/13(金) 18:26:01.38 ID:PxwdU0Uh
自分でそういう関数を作るしかない。
TTreeViewがディレクトリ階層を表しているとは限らないから。
継承でフォルダツリー専用に作られたクラスがあればあるかもしれないけど。
760デフォルトの名無しさん:2014/06/13(金) 21:08:02.50 ID:q7Aw8i3I
自分でフォルダを読んで
TreeViewしているんだから
その途中で
Expandしたいフォルダに該当するか判定して
該当していたら、開けばいいだけじゃん
761デフォルトの名無しさん:2014/06/24(火) 14:24:51.72 ID:qPVXYS8O
フォームのBorderStyleをbsSizeableにしてTChartを貼っているんだけど
フォームの大きさに合わせてチャートも大きさが変わるように
Anchorsを全部trueにしてますが、実行するとチャートの大きさが設計時より小さくなってしまいます
フォームのScaledはfalseにしてますが、これちゃんと設計時と同じ大きさになる設定を教えてくださ
C++Builder5
762デフォルトの名無しさん:2014/06/24(火) 14:46:21.04 ID:qPVXYS8O
AnchorsでRightとBottomをtrueにするとそれぞれ幅と高さが設計時より小さくなってる
falseにして実行すると設計時と同じサイズ
他のフォームでも全く同じ事してるけどこんな現象にならない、なぜー
763デフォルトの名無しさん:2014/06/24(火) 18:01:29.87 ID:rXmVvt0n
予めプロパティで設定しないで、コード上で(OnShowとかで)設定してみたら?
764デフォルトの名無しさん:2014/07/03(木) 10:09:46.51 ID:4L5y/HxP
ちと質問。
最新のC++BuilderXE6ってOpenMP使える?
765デフォルトの名無しさん:2014/07/04(金) 12:39:14.35 ID:41y9bvYX
え、もうEX6出てるのかww
EX5ってあるの?4買ってからあんま経ってないのにもう6で照るのかあ
766デフォルトの名無しさん:2014/07/04(金) 12:56:41.14 ID:/hEGMFuo
XE6が出て1年近く経ってると思うぞ。
最近は毎年位のスパンで更新している感があるかな。
767デフォルトの名無しさん:2014/07/04(金) 13:11:10.26 ID:HHdjCYam
英語のメール送ってくるエンバカヤロゥ
日本語でサポートしろやエンバカヤロゥ
768デフォルトの名無しさん:2014/07/04(金) 14:22:44.55 ID:ZGvxbiPP
XE6はまだ2月ちょっとだ…XE7は10月頃か?といわれてる。

ちなみにC++BuilderでOpenMPは使えない気がする。ぐぐったらVCでDLL化して使ってる、という話は見かけた。
769デフォルトの名無しさん:2014/07/04(金) 16:26:54.97 ID:41y9bvYX
まじかー
この前XE4買ったかっばだと思ってたのに
ちなみに、4と6って何か大きな違いある?
オブジェクトインスペクタがバグるのは健在なのかな
770デフォルトの名無しさん:2014/07/04(金) 17:45:59.48 ID:ZGvxbiPP
771デフォルトの名無しさん:2014/07/04(金) 18:09:45.42 ID:41y9bvYX
>>770
チョンクス
androidのアプリって簡単に作れるのかなあ
772デフォルトの名無しさん:2014/07/04(金) 18:14:39.60 ID:41y9bvYX
うーん、XE6欲しいけど10月にXE7出る可能性あるみたいだしー

てか、XE4で64bitソフト作ったらexeサイズが8MBになるんだけど
XE6ではもっとexe肥大化するのかなあ。
以前Builder5のバグでアプデしたらexeサイズがアレしたけど
これ以上でかくなったら圧縮してもメールで送るの分割せにゃいかんくなる
773デフォルトの名無しさん:2014/07/04(金) 22:34:14.30 ID:rpZ/Sb2N
>>768
あれ、2月位だっけ......

OpenMPは簡単に使えないんね......
ネットで調べたら、使ってる書き込みがあったから、
CLangとLLVMのお陰で普通に使えるのかなと思ったんだけど、
実際はVCでDLL化してたんね......
774デフォルトの名無しさん:2014/07/05(土) 07:25:24.64 ID:hnlFrnru
XE6 2014/04/16 発売開始
775デフォルトの名無しさん:2014/07/05(土) 10:21:35.59 ID:VqZamtnF
安くて使い勝手が良かったから使ってたボーランド時代
今はバージョンアップされても何も魅力を感じなくなってしまった
776デフォルトの名無しさん:2014/07/05(土) 10:35:06.93 ID:MbZ2I/h/
RT >>775
777デフォルトの名無しさん:2014/07/15(火) 13:04:03.79 ID:gF1f+2ak
OpenCLなら通るのに…
778デフォルトの名無しさん:2014/07/31(木) 14:13:33.13 ID:C2bwOfzI
XE7っていつ出るの
779デフォルトの名無しさん:2014/08/04(月) 12:54:28.30 ID:WuS127/J
XE4のTImage3Dってデフォで変な形してるけどこれ正方形や長方形にするパラ教えてくださ
780デフォルトの名無しさん:2014/08/06(水) 20:35:33.11 ID:EE9HlvVo
>>779
3D表示は設計時カメラがデフォルトで使用される。
Viewport3DのUsingDesignCameraがTrueだと設計時カメラで表示されるが
falseにするとViewport3DのCameraプロパティに設定されたカメラで表示される。
781デフォルトの名無しさん:2014/08/07(木) 10:12:15.87 ID:bzHTj0Lj
>>780
ありがとうございます。
ちなみにViewport3Dってどこにありますか?・・・
782デフォルトの名無しさん:2014/08/07(木) 10:13:57.59 ID:bzHTj0Lj
ViewportsグループにViewport3Dありました。
これで色々試してみますありがとう
783デフォルトの名無しさん:2014/08/07(木) 10:29:52.73 ID:bzHTj0Lj
うーん、うまくいかない・・
手順として

1.Viewport3Dを設置してのUsingDesignCameraをfalseに
2.TCameraを設置してViewport3DのCameraプロパティーをCamera1に設定
3.TImage3Dを設置

カメラとImage3Dの関連付けというかがわからない
カメラ動かしても特にImageの方は形かわらないですし
これうまく使えたら結構色々できそうで良さげなんだけどなあ
784デフォルトの名無しさん:2014/08/13(水) 10:56:58.97 ID:+YEx4mAs
フォームがアクティブになったのを検知する方法おしえて
785デフォルトの名無しさん:2014/08/13(水) 11:10:47.54 ID:+YEx4mAs
できた。
お前等ってほんと糞の役にも立たないカスだな^^
786デフォルトの名無しさん:2014/08/13(水) 11:19:36.51 ID:aA3WCwQl
教えてもらっても感謝もしない
質問されても答える気もない
787デフォルトの名無しさん:2014/08/13(水) 15:17:33.61 ID:TZPZmb+y
自己解決したら解決方法も記す
788デフォルトの名無しさん:2014/08/13(水) 21:12:30.04 ID:CDpySFdN
>>787
( ゚Д゚)y─┛~~
789デフォルトの名無しさん:2014/08/15(金) 21:08:13.06 ID:k1aLXotA
IFMXScreenServiceを使いたくてヘルプにあったとおりに
http://docwiki.appmethod.com/appmethod/1.14/topics/ja/FireMonkey_%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0_%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9
書いたんだけど、コンパイル通らないんだけど
790デフォルトの名無しさん:2014/08/15(金) 23:55:03.47 ID:k1aLXotA
自己解決したわ
791デフォルトの名無しさん:2014/08/21(木) 18:11:45.79 ID:cjBUwTlW
C++Builder5 使ってるんですが、
TComboBox、TListBox、TToolBar、TListView にbuffer overflowする欠陥があるってことなんですけど
Builder5だとVCLソースを修正するなんてことできないですよね?

あとこれも。
http://support.embarcadero.com/article/44015
792デフォルトの名無しさん:2014/08/21(木) 21:51:35.45 ID:9Z06b8uo
ソースがついてりゃできるし、ついてなきゃできない。エディションによるとしか。ところでBMPの件はともかく、
そんな話あったっけ?
793デフォルトの名無しさん:2014/08/29(金) 22:34:31.99 ID:VvmJl6gy
XE6を使っています ビルド構成をdebugにして実行すると正常動作しますが
Releaseにして実行ファイルを作成すると起動はするのですが異常に重たい
動作になります(スレッドでRS232Cの通信をやっていて通信が重くなる)

ちなみに、XE6を起動した状態(そのプロジェクトを読まない状態)で
その実行ファイルを実行すると正常に動作します。

実行ファイル作成時のオプションなどをいじれば直るものなのでしょうか?

OSはwin8です。
794デフォルトの名無しさん:2014/08/29(金) 22:43:09.84 ID:DWWx7kEW
>>793
最適化とかの影響でおかしくなることもある。
動作が変わってしまう場合はまずdebugと同じにして徐々にはずすとかするといいかもしれない。
795デフォルトの名無しさん:2014/08/29(金) 22:45:58.90 ID:VvmJl6gy
>>794
ありがとうございますやってみます。
796デフォルトの名無しさん:2014/08/30(土) 11:08:55.59 ID:GfRuM6rp
>>794
解決しました、DEBUGと同じにそて最適化をはずしてもだめだったのでスレッドの速度を
はかってみたところ
Sleep(1);
がXE6を起動しているときと、単独で起動しているときではSleepしている時間が違うように
みえました。
もともとのルーチンもあまりよくなかったので双方を調整し何とか正常に動作するように
なりました。
ありがとうございました。
797デフォルトの名無しさん:2015/01/09(金) 17:41:11.11 ID:tgzE7GLA
うんこ
798デフォルトの名無しさん:2015/01/25(日) 16:43:12.52 ID:zaVj/bx6
Windows7にC++Builder6をインストールしたんだけど
統合環境のエディタ画面のスクロールバーが欠けて
半分くらいしか表示されていないのはテーマのせいかね?
Windowsクラシックに変更すればちゃんと表示されたけど
他に何か改善策ないかな
799デフォルトの名無しさん:2015/01/25(日) 20:00:30.91 ID:apxi13NM
古いバージョンを使うなら
VM環境に入れればイイじゃん
VMにXPなりターゲットのOSを入れてそこで動かせばエエがな
さすれば、OSを最新に変えても
VMのファイルさえコピーすれば
再インストールする必要もなくそのままつかえるべ
800デフォルトの名無しさん:2015/01/27(火) 18:27:33.75 ID:YUbq7nJU
テーマで変わるのはあると思う。
自分はWindows7にC++Builder5。
テーマはWindows7ベーシックかな。
右側が若干はみ出しているがまぁ気にせず使っている。
Aeroだと問題ないようだけど。
801デフォルトの名無しさん:2015/01/27(火) 20:45:29.35 ID:fVDilJE1
Aeroでもベーシックでもダメだった
結局BCB6でコンパイル&デバッグする時は画面をクラシックに変えることにした
デスクトップを右クリックして変えるだけで手間もかからないし動作も機敏になるし
ウィンドウの端もキッチリ合わせられるので統合環境ではこの方が見やすいので
あとメッセージウィンドウをソースエディタとドッキングしてるとエラーが出たりしたので
これは外に出して並べることで対処した
802デフォルトの名無しさん:2015/01/27(火) 21:59:24.62 ID:mRBjUfrP
ショートカット作って互換性タブの設定をいじくれ
803デフォルトの名無しさん:2015/01/27(火) 22:12:10.87 ID:fVDilJE1
その辺も当然いろいろ弄って確認したけどダメだった
804デフォルトの名無しさん:2015/02/08(日) 20:32:52.12 ID:vRhQTF3i
いまさらだが>>800だけど右じゃなくて左だったわ
まぁいまさらだけど
805デフォルトの名無しさん:2015/02/08(日) 21:42:13.84 ID:nmkJZ9OV
ボーランドが良かった
806デフォルトの名無しさん:2015/02/20(金) 13:00:58.09 ID:f+GBkftj
C++Builder2010でメール送信できません。
どっかのサイトまんまのやり方です。
IdSMTP->Sendで固まってタイムアウトまで抜けません。
ちなみに同じコードをC++BuilderEX4でやると正常にメール送信できましたが
C++Builder2010ではどうしたらいいんですかね?

TIdMessage *msg = new TIdMessage( this );
IdSMTP->Host = "yahoo";
IdSMTP->Username = "Username";
IdSMTP->Password = "password";
IdSMTP->Port = 587;
//差出人
msg->From->Name = "From name";
msg->From->Address = "From address";
//宛先
TIdEMailAddressItem* to = msg->Recipients->Add();
to->Name = "To name";
to->Address = "To address";
//件名
msg->Subject = "Subject";
//本文
msg->Body->Text = "This is e-mail.";
//送信
IdSMTP->Connect();
IdSMTP->Send(msg);
IdSMTP->Disconnect();
807デフォルトの名無しさん:2015/02/20(金) 17:46:53.96 ID:VCgGEknY
> IdSMTP->Host = "yahoo";

これでメール遅れるの?
808デフォルトの名無しさん
indyを最新にすればいいんじゃないかな