くだすれC++Builder(超初心者用)その3
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/02/12(月) 03:39:51もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。
Borland Home Page http://www.borland.co.jp/
<過去スレ>
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/l50
くだすれC++Builder(超初心者用)その2
http://pc10.2ch.net/test/read.cgi/tech/1144308804/l50
<兄弟スレ>
くだすれDelphi(超初心者用)その39
http://pc10.2ch.net/test/read.cgi/tech/1169386914/l50
0655デフォルトの名無しさん
2008/08/19(火) 09:18:02localelist
みたいな1式も取れるんでしょうか?
0656デフォルトの名無しさん
2008/08/19(火) 09:35:41BCBでも他の文字列ではちゃんと動いてるし。
0657デフォルトの名無しさん
2008/08/19(火) 09:50:06>Standard C++ Library: Class Reference
>locale
ってのがありますね。
これはクラスだからいろいろメソッド使えるかも。
でも、これで切り替えても、
AnsiToUtf8/Utf8ToAnsiのロケールとは無関係なんかなぁ。
あ〜、テストプログラム作れば良いんだが、通勤時の暑さのせいでしんどい。
0658デフォルトの名無しさん
2008/08/19(火) 23:14:53インポートライブラリが悪いって、どのような現象があるのでしょうか?
BuilderのバージョンはBuild10.166ですが・・・
using namespace std;
int op;
char a,b,c,d,f;
int main(){
cout>>"物語の始まり">>endl;
/*
char a ="起";
char b ="承";
char c ="転";
char d ="結";
char f ="おまけ";
*/
cout << "1目次1ページ目 目次2ページ 目次3ページ 目次4ページ 目次5ペーじ おまけ" << flush;
cin >> op;
{
0660デフォルトの名無しさん
2008/08/21(木) 02:12:21正解でなくても、何か参考になるようなことでもいいので意見を下さい。
よろしくお願いします。
0661デフォルトの名無しさん
2008/08/21(木) 07:47:42implib nidaq32.lib nidaq32.dll と順番を直したけどnidaq32.dllは壊れてるからエラー、とか?
一応本家にbcc用のインポートライブラリがあるみたいだけど。 ↓の一番下のzip
http://digital.ni.com/public.nsf/allkb/7793F4D8AFC47C1E86256E84005BBBE8
0662デフォルトの名無しさん
2008/08/21(木) 20:09:54NIDAQmxのDLLはnicaiu.dll見たいだよ?
NIDAQmxをインストールするとc:\WINDOWS\system32あたりにnicaiu.dllがあるはずだから
>implib nicaiu nicaiu.dll
でnicaiu.libを作ってリンクしてみたら?
0663デフォルトの名無しさん
2008/08/22(金) 02:33:44すいません、一度壊してました・・・orz
>>662
NIDAQではなく、NIDAQmxを使うのですか!!
ありがとうございます、やってみます。
0664デフォルトの名無しさん
2008/08/27(水) 17:23:50void __fastcall TForm1::ShowDialog()
{
Form2->Show();
for (i=0;i<100;i++) {... ;ProgressBar1->Position=i; ...}
Form2->Hide();
}
このForm2が前面に表示されている最中は、 Form1上にあるボタンをクリックしても
OnClickイベントが発生しないようにしたい(無視したい)のですが、 どうしたらいいのでしょうか?
Form2表示中にForm1上のボタンをクリックしたことによる処理が、 Form2が隠れた後に
実行されて困っています。
よろしくお願いします。
0665デフォルトの名無しさん
2008/08/27(水) 19:58:480667デフォルトの名無しさん
2008/08/28(木) 03:05:24http://www.speedreading.co.jp/read/riron07.html
8つの円を描き、全体をぼかすように前後左右の平均を取るように処理してみたところ、何度もやるとものすごく時間がかかるので・・・。
ぼかし処理は下のものを使用しました。
http://gimite.net/bcbqtree/qtreemain.cgi?mode=thread&thread=135
0668デフォルトの名無しさん
2008/08/29(金) 22:15:29http://update.codegear.com/forms/jp_cpp_download_reg
ここに何度登録したことか。。。。
0669デフォルトの名無しさん
2008/08/29(金) 22:34:00サーバーが見つかりません
0670デフォルトの名無しさん
2008/08/31(日) 00:08:200671デフォルトの名無しさん
2008/09/06(土) 08:25:000672デフォルトの名無しさん
2008/09/06(土) 10:46:04英単語の文字数を数えるにはどうすればいいですか?
0673デフォルトの名無しさん
2008/09/06(土) 10:52:490674デフォルトの名無しさん
2008/09/06(土) 10:57:350675デフォルトの名無しさん
2008/09/06(土) 11:04:330676デフォルトの名無しさん
2008/09/06(土) 11:15:14ありがとうございました。ここではC++という文字をよくみるのに本屋ではC#をよくみたので一緒かなと思いました
ありがとうございました
0677デフォルトの名無しさん
2008/09/06(土) 17:27:47++
++
だったんだよ!
0678デフォルトの名無しさん
2008/09/07(日) 01:24:48C++が一つ増えるなら、
C#は半分だけ増えるっていうイメージなんだけど。
それだと、2つも増えてるな。
0679デフォルトの名無しさん
2008/09/07(日) 02:35:29その発想は無かったわ
0680デフォルトの名無しさん
2008/09/07(日) 17:30:34サムネイル表示したいと思っています。
ttp://www2.ttcn.ne.jp/tkky/Tips/DrawGrid/drawgrid1.htm
を参考にDrawGridを使って実現しようかと思っていたのですが、
DrawGridコンポーネント1個に対して, 1つの画像しか表示できないんでしょうか?
0681デフォルトの名無しさん
2008/09/07(日) 23:31:120682デフォルトの名無しさん
2008/09/08(月) 21:57:33アメリカ人は本当にマッチョが好きだよな。サンフランシスコ。
0683デフォルトの名無しさん
2008/09/09(火) 04:41:14そうします。ありがとうございます
0684680
2008/09/09(火) 07:34:14ListViewでサムネイル表示を試してみようと、
下の(1)〜(6)の手順でやってみたのですが、ビルド中に固まります。
アイコン画像サイズ256×256を越えているせいみたいなのですが,
表示されるサムネイルの画像サイズを320×240で表示するには、どうしたらいいんでしょうか?
アドバイスよろしくお願いします。
-----
(1)Form1にImageList1を貼り付ける
(2)オブジェクトインスペクタからImageList1のプロパティをWidth=320;Heiht=240;に変更
(3)ImageList1ダブルクリックして, 「追加」押して320×240の画像1枚を選択して「OK」押す
(4)Form1にListView1を貼り付ける
(5)オブジェクトインスペクタからListView1のLargeImagesプロパティでImageList1を指定
(6)オブジェクトインスペクタからListView1のItemsプロパティで「新規作成」押して「キャプション」にテストと入力して「OK」押す
0685デフォルトの名無しさん
2008/09/22(月) 10:04:17TMenuItemのCaptionにて
開く(&O)...
と設定されますけど、
このピリオド3個の意味を教えてください。
0686デフォルトの名無しさん
2008/09/22(月) 12:43:510687デフォルトの名無しさん
2008/09/22(月) 20:03:06ピリオドがないのは、処理がすぐ終わるけど
ピリオドがあるのは、ダイアログが出るでしょ。
それだよ。
0688デフォルトの名無しさん
2008/09/22(月) 23:25:23れすありがとうございます。
確かに...なのは、ダイアログが開く系ですね。
(& みたいな特別な機能がある訳ではなく
WindowsのUIの作法みたいなものなのですね。
とても参考になりすた。
0689デフォルトの名無しさん
2008/09/28(日) 23:08:48TFontのStyleがSet という特別な型だったのですが
設定は、Font->Style << fsBold のようにすれば良いのはヘルプに記載があったのですが
FontにfsBoldが設定されているかを調べる方法がわかりません。
どうすればいいのでしょうか。
0690デフォルトの名無しさん
2008/09/28(日) 23:34:450691デフォルトの名無しさん
2008/09/28(日) 23:45:56できましたーーー。超ありがとうございます。
0692デフォルトの名無しさん
2008/09/29(月) 23:49:18具体的には mplayerの再生ボタンや巻き戻しボタンを押したり、mediaplayerの再生ボタンを押したり
その他新しいプログラムの再生ボタンを簡単に登録して押せるようなそんなプログラムを
くみたいのですが。
0693デフォルトの名無しさん
2008/09/30(火) 00:17:51メニューバーから操作できる機能なら、コマンドIDをメニューリソース見るか、SPY++やWinspectorでコマンドID調べてWM_COMMANDでPostすればいい。
どっちもだめならSendInputでがんばるしかない。
0694デフォルトの名無しさん
2008/09/30(火) 00:18:33ハンドルが取れれば、APIでごにょごにょできるでしょ。
あとはがんばれ。
0695デフォルトの名無しさん
2008/09/30(火) 10:50:39ありがとうございます。
0696デフォルトの名無しさん
2008/09/30(火) 20:54:22リストボックスにD&Dでリストボックスにファイルパスを表示する
プログラムをどうすれば言いか教えていただけないでしょうか?
0697デフォルトの名無しさん
2008/09/30(火) 22:04:17マルチポストはルール違反だぜよ。
0698デフォルトの名無しさん
2008/09/30(火) 22:44:16"C++Builder" ファイル ドラッグアンドドロップ
でぐぐれ
0699デフォルトの名無しさん
2008/10/02(木) 00:15:220700デフォルトの名無しさん
2008/10/02(木) 00:19:19質問なんですが、フォームを使ってアプリを作っており、
デバッグで配列の中身や変数を見たく、printfなんかでコンソールに表示させたいのですが
何か方法はありますか?
インスペクタ?みたいなのはどうも使いにくくて・・・
ちなみに、C++Builder6を使ってます
0701デフォルトの名無しさん
2008/10/02(木) 00:32:28ttp://msdn.microsoft.com/ja-jp/library/cc428973.aspx
でもIDEのデバッガ機能をちゃんと勉強して使ったほうが楽だと思うけどね。
0702デフォルトの名無しさん
2008/10/02(木) 01:08:53AllocConsole()でコンソールが開きます。コンソールのハンドルをGetStdHandle( STD_OUTPUT_HANDLE )で取得したら
SetConsoleTextAttribute()とWriteConsole()で好きな文章を色つきで出力できます。
printf() っぽく使うならこんな感じ
#include <stdio.h>
int __stdcall con_printf( const CHAR* Format, ... )
{
const int nLengthMax = 1024;
int nLength = 0;
HANDLE hConsole = ::GetStdHandle( STD_OUTPUT_HANDLE );
if( hConsole != INVALID_HANDLE_VALUE ){
CHAR Message[ nLengthMax ];
va_list List;
va_start( List, Format );
nLength = vsnprintf( Message, nLengthMax - 1, Format, List );
va_end( List );
DWORD dwLengthWritten;
::WriteConsole( hConsole, Message, (DWORD)nLength, &dwLengthWritten, NULL );
}
return( nLength );
}
IDEが入ってない環境とかで使えるよ。
0703デフォルトの名無しさん
2008/10/02(木) 02:04:16普通にそのままのprintfが使えるようになるんじゃないかね。
知らないけど。
0704デフォルトの名無しさん
2008/10/02(木) 02:44:280705デフォルトの名無しさん
2008/10/02(木) 10:34:03メインフォームの初期化ルーチン(FormCreateとか)から他のフォームの初期化ルーチンを呼び出したいが、
それがまだ生成されていないのでエラーになるというケースが多くて困っています。
全てのフォームが生成された後で一括して初期化を行いたいという時にはどうすればよいのでしょうか?
どなたか教えて下さい。
0706デフォルトの名無しさん
2008/10/02(木) 12:02:220707デフォルトの名無しさん
2008/10/02(木) 12:46:22解決したかも知れないけど、
TMemo 貼って Add で俺はやってる。
0708デフォルトの名無しさん
2008/10/02(木) 17:46:19#ifdefで二種類作るので、間違えないようにしたいのですが・・・
0709700
2008/10/02(木) 18:59:26しかしこのスレ非常にやさしいw
ありがとうございました〜、色々とやってみて合うもの見つけてみます
0710デフォルトの名無しさん
2008/10/02(木) 19:43:14#pragma optionでできないものリストに「-efilename」が書かれてるから無理
objファイルならできるけど。
0711デフォルトの名無しさん
2008/10/02(木) 19:56:58無理なんですか、了解です。
ありがとうございました。
0712デフォルトの名無しさん
2008/10/02(木) 20:00:24makefileで分けるといい
0714デフォルトの名無しさん
2008/10/17(金) 00:02:21他の言語のを真似して
WebBrowser1->Document->All->GetElementsByName("hoge")[0]->selectedindex = 0;
※hogeは表示するページのソースをみて名前を調べました
などとしたのですが、「AllはIdispatchのメンバーではない」とエラーが出ます・・・
どんな書き方をすればよいのでしょうか
0715デフォルトの名無しさん
2008/10/17(金) 04:28:58昔触ったのを見たら
IHTMLDocument2Ptr doc;
doc = browser->Document;
IHTMLElementPtr body = doc->body;
とかやってた。
IHTMLDocument2Ptrとして使うには、MSHTMLかなんかをimportだかする必要があったと思うけど。
0716デフォルトの名無しさん
2008/10/19(日) 04:31:460717デフォルトの名無しさん
2008/10/20(月) 04:18:550718デフォルトの名無しさん
2008/10/20(月) 16:48:530719デフォルトの名無しさん
2008/10/23(木) 15:03:10if(c_str()=="")やif(c_str()==NULL)と書いても素通りしますよね。
Lengthが0かどうかでチェックをしているので問題は無いのですが、気になったのでよろしくお願いします。
0720デフォルトの名無しさん
2008/10/23(木) 16:20:530721デフォルトの名無しさん
2008/10/23(木) 17:14:13c_str使うんならstrcmpとか使おうぜ。
AnsiStringとchar型文字列の比較なら普通に==で良いとも思うけどな。
0722デフォルトの名無しさん
2008/10/23(木) 17:56:44専用の関数があったんですね、ありがとうございます。
>>721
素通りというのは""やNULLで比較しても、何か文字が入っているような動きをしていたものですから。
まだAnsiStringを理解してないかもです。
strcmpも使ってみたのですが、動きは同じだったので・・・。
ところで、フォルダ名をチェックするのに最後に\がついているかを見て、無かったら\を付けたいのですが、
これってどうやればいいんでしょう?
AnsiLastCharで拾おうとしてのですが、うまくいかないので、よろしくお願いします。
0723デフォルトの名無しさん
2008/10/23(木) 18:11:140724デフォルトの名無しさん
2008/10/23(木) 19:05:07処理してくれる関数があったんですね。
ありがとうございます。
0725デフォルトの名無しさん
2008/10/23(木) 20:18:520726デフォルトの名無しさん
2008/10/25(土) 15:47:30上のImageに半透明や透明色を塗ることってできるのでしょうか?
半透明で調べてもフォームやボタンはあるのですが・・・。
すいませんが、どなたか方法を教えて頂けないでしょうか。
0727デフォルトの名無しさん
2008/10/25(土) 16:24:390728デフォルトの名無しさん
2008/10/25(土) 19:16:29それをMemo1にすべて書き出しExcelで読み込んだときにA欄B欄C欄と分けて出したいのですが
いったいどのようにすればいいんでしょうか?
Edit1->Text=a;
Edit2->Text=b;
Edit3->Text=c;
Memo1->Lines->Strings[0]=a;
Memo1->Lines->Strings[1]=b;
Memo1->Lines->Strings[2]=c;
今こんな感じで書いてるのですが全然わかりません・・
どなたかよろしければアドバイスお願いします。
0729デフォルトの名無しさん
2008/10/26(日) 13:10:230730デフォルトの名無しさん
2008/10/26(日) 13:45:41あ、コンマ区切りで数列を出せばExcelでは枠別に表示されるんですね
ありがとうございます!
よろしければどなたかコンマ区切りでEdit1から3までの数字を一つのMemo1に出す
方法を教えていただけないでしょうか
0731デフォルトの名無しさん
2008/10/26(日) 14:20:40{
Memo1->Lines->Add(AnsiString().sprintf("%s,%s,%s", Edit1->Text, Edit2->Text, Edit3->Text));
}
0732デフォルトの名無しさん
2008/10/26(日) 15:03:38現在はHmCommを使用しているのですが、USB-232C変換器が物によって正常に通信できたりタイミングがずれたりするので、
別の物を試してみたいのですが・・・良い物がありましたら紹介してください。
よろしくお願いします。
0733デフォルトの名無しさん
2008/10/26(日) 18:23:25char *mTop=(char*)(ms->Memory);
char *mEnd=pTop+(ms->Size);
と記述すると
W8072 問題のあるポインタ演算
という警告が出ます。
警告の出ない正しい記述方法を教えてください。
0734デフォルトの名無しさん
2008/10/26(日) 22:51:080735デフォルトの名無しさん
2008/10/26(日) 23:19:32ttp://www.geocities.jp/in_subaru/erslib/index-erslib16.html
これ使ってごらん。
コンポーネントじゃないけど、ヘッダファイルだけで動作する。
初期化に2行、出し入れに数行、後始末に1行ぐらい書けばいいので
PICとやり取りするのに簡単だから使ってる。
でも、USBのシリアル変換機はもともと不安定だからなぁ・・・。
0736デフォルトの名無しさん
2008/10/27(月) 00:15:44解決しました。ありがとうございます。
0737732
2008/10/27(月) 00:45:44ありがとうございます。
シンプルで良さそうですね。
ちょっと使ってみます。
ノートPCが前提なので、USBのシリアル変換機を使用して安定してないといけないんです・・・。
0738デフォルトの名無しさん
2008/10/27(月) 15:18:20A1, B1,C1,D1,E1, 00:00, f1, g1, h1, i1, j1, k1, l1,
A2, B2,C2,D2,E2, 00:00, f2, g2, h2, i2, j2, k2, l2,
というコンマ区切りの何百行のデータがあり、j(1.2.3・・・)の部分だけ読み込みたいのですが
どういう風にやればいいですか。よろしくお願いします。
0739デフォルトの名無しさん
2008/10/27(月) 15:37:37写真ともう一枚の32bppなTBitmap用意、アルファブレンドしてTImageに転送するしかないと思う。
アルファチャンネル扱えるTBitmap継承クラスも何種類か公開されてるから難しい物じゃない。
写真じゃないほうにペイントするとかだったら、TImageのイベントで取ったストロークの情報でペイント描画用のTBitmapに描けばいいだけだし。
>>738
ただのCSVファイルじゃん(・ε・)
0740738
2008/10/27(月) 15:48:540741デフォルトの名無しさん
2008/10/27(月) 16:06:44要するに 00:00 を取り除くって事?
0742738
2008/10/27(月) 16:10:52j(1.2.3・・・)の部分だけをmemoに表示させたいのです。
0743デフォルトの名無しさん
2008/10/27(月) 16:13:330744デフォルトの名無しさん
2008/10/27(月) 16:14:480745デフォルトの名無しさん
2008/10/27(月) 16:19:370746デフォルトの名無しさん
2008/10/27(月) 16:24:140747738
2008/10/27(月) 16:33:42Memo1
j
j1
j2
j3
・
・
な感じで。
0748デフォルトの名無しさん
2008/10/27(月) 16:40:05そんなん単に先頭からカンマを10こ読み飛ばせばいいだけじゃん。
strXXX系の関数使うまでもなく。
とみんな思うんだろうけど、暇だったのでVCLのヘルプみてみた。
TStrings::DelimiterとTStrings::DelimitedTextなんてものがあるのな。
TStringList* Data = new TStringList;
Data->Delimiter = ',';
Data->DelimitedText = "aa,bb,cc,dd,ee";
Caption = Data->Strings[3]; // ddが表示される
ただしBCB5以前は無理かもしれない。あしからず。
0749デフォルトの名無しさん
2008/10/27(月) 16:49:38void __fastcall TForm1::Button1Click(TObject *Sender)
{
std::ifstream ifs("File1.txt");
std::string str, s2;
if (!ifs) {
Memo1->Lines->Add("File1 not found.");
}
while (std::getline(ifs, str)) {
std::string::size_type pos = str.find('j'), pos2;
if (pos != std::string::npos) {
s2 = "j";
if (pos < str.size() && (pos2 = str.find(',', pos)) != std::string::npos) {
s2 += str.substr(pos + 1, pos2 - pos - 1);
}
Memo1->Lines->Add(AnsiString(s2.c_str()));
}
}
}
0750デフォルトの名無しさん
2008/10/27(月) 16:58:540751デフォルトの名無しさん
2008/10/27(月) 17:36:220752デフォルトの名無しさん
2008/10/28(火) 14:44:59Positionの値を変えるのでは無く、マウスで操作した時の動きをさせたいのですが・・・。
0753デフォルトの名無しさん
2008/10/28(火) 15:28:270754デフォルトの名無しさん
2008/10/28(火) 15:58:04イベントはさすがに呼べねえだろ。
0755デフォルトの名無しさん
2008/10/28(火) 16:56:44■ このスレッドは過去ログ倉庫に格納されています