トップページ⇒tech
988コメント310KB

C++Builder相談室 Part14

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/05/19(木) 08:56:18
C++Builderに関する質問・回答や議論等を行う相談室スレッド。




過去スレ・関連サイトは>>2-6あたり。
0232デフォルトの名無しさん2005/06/01(水) 17:40:18
TPrinter を使って、印刷を行う場合、
PDFへの印刷は、プリンタ名にAcrobat Distillerを指定すればよいと思うのですが、
任意の場所(C:\PDF)に任意の名前(TestPDF.pdf)でPDFファイルを出力するには
どのように設定してやればよいのでしょうか?
0233デフォルトの名無しさん2005/06/01(水) 18:58:05
PageControlで特定のシートをEnable==FALSEにしたいんですけど、
コード上でどう書いたらいいでしょうか?
指定方法がよくわからないです・・・
0234デフォルトの名無しさん2005/06/01(水) 19:03:21
>>233
PageControl1->Pages[インデックス]->Enabled = false;

みたいにできない?
0235デフォルトの名無しさん2005/06/02(木) 01:36:02
    
0236デフォルトの名無しさん2005/06/02(木) 01:54:25
BCB5 Proを使ってます。
TList *lstButtonに動的生成したイメージを追加していって、10個程度追加したところでRemoveしていくと、途中からイメージが削除されなくなってしまいます。

(追加)
TImage *button=new TImage(this);

button->Parent=Form1;
button->Canvas->Brush->Color=(TColor)(0x907070);
button->Canvas->Ellipse(Rect(0,2,76,76));

lstButton->Add(button);

(削除)
lstButton->Remove((TObject *)lstButton->Items[n番目]);

たぶん、これだけではわからないと思うので、ソースを↓にアップしました。
ttp://sempron.hp.infoseek.co.jp/BCB5_TEST.zip

解決方法を教えてください。
よろしくお願いします。
0237デフォルトの名無しさん2005/06/02(木) 02:43:47
>>236
それリストの項目が減ってるだけで、イメージ自体は1個も削除されてないよ。
で、リストに残ったイメージを移動させてるから、場合によって一見削除されてるように見えるだけ。

BCB5にTObjectListがあるなら、
lstButton=new TList;
↓
lstButton = new TObjectList(true);

って変更だけでいいはず。Remove時にリスト側で中身(イメージ)を削除してくれる。
BCB5に無ければ自分でdelete。
02382362005/06/02(木) 02:58:32
>>237
おーできました。
ありがとう!
02392182005/06/02(木) 08:14:44
>>231
遅くなりましたが、
ありがとうございました。m(_ _)m
0240デフォルトの名無しさん2005/06/02(木) 10:15:59
>>234
できました!
ありがとうございます!
0241デフォルトの名無しさん2005/06/02(木) 16:08:47
 
0242デフォルトの名無しさん2005/06/02(木) 16:15:41
0243デフォルトの名無しさん2005/06/02(木) 16:17:25
おまえが書けよww
0244デフォルトの名無しさん2005/06/02(木) 17:59:44

0245デフォルトの名無しさん2005/06/02(木) 18:06:20
BCB9まだか
0246デフォルトの名無しさん2005/06/02(木) 19:32:46
ttp://homepage2.nifty.com/love/

BCB新しいの早く出てほひい
0247デフォルトの名無しさん2005/06/02(木) 19:46:37
Rect1, Rect2, Rect3 : TRect;
0248デフォルトの名無しさん2005/06/02(木) 22:20:55
次が出るのはもうアナウンス済みなんだから、気長に待つしかないよな。
Visual Studio 2005より先に出てくれれば、確実に買うのだけどな。
Visual Studio 2005より後なら、Visual Studio 2005を買っちまうだろうな。
きっとMSまたキャッシュバックとか一大セールやるだろうし。
0249デフォルトの名無しさん2005/06/03(金) 12:45:48
個人で買ったBCB6Personalをインストールしているのですが、
今度会社でBCB5Enterpriseをインストールしないといけなくなりそう
なのですが、BCB6を消さずにBCB5をインストールしても問題ないでしょうか?
#BCB5EnterpriseをインストールするのはBCB6PersonalではQuickRepなどが
#ないためです。
0250デフォルトの名無しさん2005/06/03(金) 16:17:30
IEで、マウスのポインタがリンクを張ったところにおくと
ステータスバーにそのリンク先のURLが表示されますよね
これってどうやればいいのですか?

0251デフォルトの名無しさん2005/06/03(金) 16:17:37
IEで、マウスのポインタがリンクを張ったところにおくと
ステータスバーにそのリンク先のURLが表示されますよね
これってどうやればいいのですか?

0252デフォルトの名無しさん2005/06/03(金) 16:22:52
>>251
OnStatusTextChange ってまんまイベントがある
0253デフォルトの名無しさん2005/06/03(金) 17:27:57
>>252
すいません、まだ素人なものであまり詳しくないです
ソース教えてもらえませんか
0254デフォルトの名無しさん2005/06/03(金) 17:37:24
もすかしてCppWebBrowserの質問じゃないんか
0255デフォルトの名無しさん2005/06/03(金) 17:55:54
>>251
質問は明確に。

ステータスバーにテキストを出すやり方なのか、
マウスが何かの上に来たときに処理をさせるやり方なのか、
あるいはIEを自作したいのか。
0256デフォルトの名無しさん2005/06/03(金) 18:20:56
またまたすいません。
マウスを、リンク張ってある文字や画像に合わせると
ステータスバーにそのリンク先のURLを
表示できるようにしたいです
02572562005/06/03(金) 18:34:07
CppWebBrowserを使ってます
0258デフォルトの名無しさん2005/06/03(金) 18:39:01
こう
void __fastcall TForm1::CppWebBrowser1StatusTextChange(TObject *Sender, BSTR URL)
{
  StatusBar1->SimpleText = URL;
}
0259デフォルトの名無しさん2005/06/03(金) 18:48:54
C++Builder5にそのイベントあるのか?ああん?
0260デフォルトの名無しさん2005/06/03(金) 18:55:53
( ´,_ゝ`)プッ
02612562005/06/03(金) 19:09:23
>>258
ありがとうございます。感謝です
0262デフォルトの名無しさん2005/06/03(金) 19:17:22
            
0263デフォルトの名無しさん2005/06/03(金) 19:23:51
// TODO: この場所にネイティブ データ用の描画コードを追加します。
pDC->TextOut(0,0,"HelloWorld");
0264デフォルトの名無しさん2005/06/03(金) 19:55:27
http://www.asahi-net.or.jp/~yf8k-kbys/vcpp0.html

VC++5.0入門 1 基礎知識1 GUI 97/7/14
VC++5.0入門 2 基礎知識2 能書き 97/7/22
VC++5.0入門 3 基礎知識3 ウインドウを描くサンプル 97/7/28
VC++5.0入門 4 基礎知識4 アプリケーションとウインドウ 97/8/4
VC++5.0入門 5 基礎知識5 メッセージマップ 97/8/11
VC++5.0入門 6 基礎知識6 デバイスコンテキスト 97/8/18
VC++5.0入門 7 はじめてのAppWizard 97/8/25
VC++5.0入門 8 続・はじめてのAppWizard 97/9/1
VC++5.0入門 9 新しいプロジェクト 97/10/19
VC++5.0入門10 マウスのキャプチャ 97/10/26
VC++5.0入門11 ドキュメントとOnDraw 97/11/3
VC++5.0入門12 CArray 97/11/9
0265デフォルトの名無しさん2005/06/04(土) 04:05:43
        
0266デフォルトの名無しさん2005/06/04(土) 14:33:04
今度、C++ Builderを新たに購入して、Excelを自動操作するようなアプリを
組もうと思ってます。

C++Builder6のPersonal版でもOfficeのコンポーネントは入ってるでしょうか?
0267デフォルトの名無しさん2005/06/04(土) 14:33:43
>>266
Proのほうがいいとおもわれ
0268デフォルトの名無しさん2005/06/04(土) 14:40:17
>>267
レスありがとうございます。
マジっすか、Personal版だとOfficeコンポーネント付いてこないんですか。
Proの6万円は予算的にはキッツイなぁ……。

Personal版だと、下のようなモジュール集も使えないわけでしょうか?
http://www.vector.co.jp/soft/win95/prog/se231565.html?g
0269デフォルトの名無しさん2005/06/04(土) 15:04:34
いまどき、その手のコンポがPersonal版だからといって省略されてるようなことはないはず。
個人ユースでも需要のあるモノだからね。
十中八九大丈夫だからPersonal版にしとき。
0270デフォルトの名無しさん2005/06/04(土) 15:06:58
>>266
そのコンポーネント一度も使ったことがないが、何するき?
0271デフォルトの名無しさん2005/06/04(土) 15:15:21
>>270
Excelと連携をとって、Excel上のセルの値を取得したり、逆にセルにデータを
書き込んだりというようなことです。
0272デフォルトの名無しさん2005/06/04(土) 15:24:56
Excelのコンポって‥‥単にActiveXコントロールの取り込みで作成するだけじゃ?
つかそんなコンポProでもないお。BCB入れてるPCにOffice入れてないから取り込めるかは知らん。

ただ、Proはいろいろやろうとする時に必要になってくるVCLソース付いてるのが大きい。
0273デフォルトの名無しさん2005/06/04(土) 15:27:47
>>272
あんまり適当な嘘を垂れ流さないように。

http://www.borland.co.jp/cppbuilder/papers/servers/servers1.html
0274sage2005/06/04(土) 15:30:05
スレ違いだけどC++Builder6.0にはInterBase6.0の日本語マニュアルが付いてて
なんでDelphi7には日本語版のマニュアルが付いてないんだ?
つい数日前に知ったわけだけど結構ショック受けたよ・・・
0275デフォルトの名無しさん2005/06/04(土) 15:31:13
久しぶりに書き込んだら間違って下がってない・・・
0276デフォルトの名無しさん2005/06/04(土) 16:15:22
>>273
(・〜・)?
0277デフォルトの名無しさん2005/06/04(土) 16:25:22
Office オートメーションコンポーネントの利用
プロジェクト|タイプライブラリの取り込み
http://www.borland.co.jp/cppbuilder/papers/servers/servers1.html
0278デフォルトの名無しさん2005/06/04(土) 16:25:52
Office オートメーションコンポーネントの利用
プロジェクト|タイプライブラリの取り込み
http://www.borland.co.jp/cppbuilder/papers/servers/servers1.html
0279デフォルトの名無しさん2005/06/04(土) 17:21:34
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant V = Variant::CreateObject("Word.Application");
V.OlePropertySet("Visible", true);// プロパティの設定
ShowMessage("Word を表示しました");
V.OleFunction("Quit");// メソッドの呼び出し
V = Unassigned;
}
0280デフォルトの名無しさん2005/06/04(土) 20:51:42
http://blog.livedoor.jp/junki560/archives/24062326.html
[Delphi] GDI+ テキストの縦書き
0281デフォルトの名無しさん2005/06/04(土) 21:43:43
Editに数字が入力されたらShowMessage("入力が完了しました")
数字以外ならShowMessage("入力ミス")
と表示するようにしたいのですが、どのようにすればいいでしょうか?
0282デフォルトの名無しさん2005/06/04(土) 22:39:21

if(atoi(Edit->Text.c_str()) == 0)
{
ShowMessage("入力ミス");
}
else
{
ShowMessage("入力が完了しました");
}

もしくは AnsiString の ToIntDef(int) メソッドを使うとか・・・。
0283デフォルトの名無しさん2005/06/04(土) 22:44:15
StrToInt(AnsiString Str); を使うとか・・・。
数字以外のときは例外処理しなきゃならんけど。
0284デフォルトの名無しさん2005/06/04(土) 22:56:49
>>281
Edit->Text.Length() バイトを、1バイトづつ( 0x30<=x && x<=0x39 ) で比較。
範囲外のバイトがあればエラー。
できれば比較前に、Edit->Text は全角to半角変換をかける。
0285デフォルトの名無しさん2005/06/04(土) 22:59:18
半角文字しか入力出来ないようにしたいのですが。
クリップボードからの貼り付けも出来ないようにしたいです。
http://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200403_04030067.html
0286うう2005/06/05(日) 00:08:30
graphic.hくれ〜あそべない〜。
0287デフォルトの名無しさん2005/06/05(日) 00:54:45
>>266
C++Builder6Proを持ってる漏れがマジレス

TExcelApplicationは、ProにしかついてないYO(・∀・)
02882872005/06/05(日) 01:02:51
しかし、Variantを使えば、PersonalでもOK

http://www.borland.co.jp/delphi/papers/servers/
0289本田2005/06/05(日) 01:53:21
>>288

>Office Solutions Development
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_2003_ta/html/odc_ancoffsol.asp

>Microsoft Excel Objects
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaxl10/html/xltocobjectmodelapplication.asp
0290デフォルトの名無しさん2005/06/05(日) 05:11:28
TImageで拡大縮小時の補間アルゴリズムを指定することは出来ないのでしょうか?
0291デフォルトの名無しさん2005/06/05(日) 06:14:17
>>229
同封されている案内の方(バージョンアップ価格が記載されている方)に
「Delphiの時期メジャーリリースで統合予定」とある。
0292デフォルトの名無しさん2005/06/05(日) 06:49:10
次期バージョンはエディタを良くしてくれ。
今の入力支援は重すぎなんで機能切ってるしなぁ・・・。
0293デフォルトの名無しさん2005/06/05(日) 10:55:49
>>290
Win32APIのStretchBlt()とSetStretchBltMode()
使ったら?といってもたいした伸縮モードは選べるわけじゃないけど
0294デフォルトの名無しさん2005/06/05(日) 16:01:06
>>287
ありがとうございます。
\65000は痛かったけど、覚悟を決めてPro版買ってきました。
もう後にはひけません!
0295デフォルトの名無しさん2005/06/05(日) 16:44:31
http://store.nifty.com/goods/goods.aspx?goods=00801BOL1147
Borland C++Builder 6 Professional StarTeam Edition
56,666円
StarTeam Editionなしの無印Professionalってもう売っていないんだね。
0296デフォルトの名無しさん2005/06/05(日) 17:18:47
>>295
もっと安いのもあったのにって嘲笑いたいわけ?
orzとでもレスすれば満足?
0297デフォルトの名無しさん2005/06/05(日) 17:56:03
エクスプローラからアプリケーションへのファイルのドラッグアンドドロップはわかったのですが、
逆に、アプリケーションからエクスプローラへのやり方がわかりません。どなたか教えてください。
0298デフォルトの名無しさん2005/06/05(日) 18:38:35
>>296
(・〜・)?
無印も定価\68,000だお

一時期\48,000パッケージもあったけど
0299デフォルトの名無しさん2005/06/05(日) 19:22:03
>>282
>>283
>>284
サンクスです。ビルダー使い始めた素人
なので>>282さんのソースを借りました。

0を入れたとき入力ミスと判定されましたけど、
0のときも("入力が完了しました");
としたいです。 それで、StrToInt(Edit1->Text) != 0
の条件も追加したらエラーになりました。
どう修復した方がいいです?
0300デフォルトの名無しさん2005/06/05(日) 19:31:02
int value;
if (TryStrToInt(Edit1->Text, value))
  ShowMessage("入力が完了しました");
else
  ShowMessage("入力ミス");
0301ミ,,゚Д゚彡 ◆A6VzDeLphI 2005/06/05(日) 21:30:18
>>297
それがVCLでは難しいのねー。

昔は有名なコンポーネントがあったのだが
どこかへ消失してしまったらしい。

Delphiだとこのへんかしら。

サンプル: "Drag & Drop でファイル名を受け渡す"
http://forum.nifty.com/fdelphi/samples/01406.html
0302デフォルトの名無しさん2005/06/06(月) 04:22:28
フォームをタスクバーより前面に表示するには
どうしたらいいですか?教えてください。
0303デフォルトの名無しさん2005/06/06(月) 09:57:47
>>294
業務目的だとPersonal使えないし
この際Proでよかったんじゃない?
がんばれ〜
0304デフォルトの名無しさん2005/06/06(月) 10:03:33
>>302
たぶんフォームでこれをやる

::SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width,Height,
              SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);

0305デフォルトの名無しさん2005/06/06(月) 12:54:24
>>304
その方法でうまくいきました、有難うございます。
0306ApplicationEvents1SettingChange2005/06/06(月) 21:12:14
ApplicationEvents1SettingChange
0307デフォルトの名無しさん2005/06/06(月) 23:15:04
 
0308デフォルトの名無しさん2005/06/07(火) 18:06:54
エンジニア

はてなのシステムの開発、運用、保守に携わって頂ける 方を募集します。PerlやApache、MySQL等のRDBMSの 知識が必要となりますが、これらの知識をこれから身に 付けたいという意欲のある方も歓迎します。

必須な知識

Perl 言語の使用経験
ウェブアプリケーションの開発・運用経験
オブジェクト指向プログラミングの基礎知識
RDBMS の基礎知識
Linux の基礎知識

あると好ましい知識

オリジナルのソフトウェア、ウェブアプリケーション などの設計経験
MySQL を前提とした大規模な RDBMS 環境の構 築・運用知識
XML関連技術に関する知識
blogに関する技術の知識
Linux やその他 OS に関する高度な知識 (ネイ ティブアプリケーションの開発経験、カーネルのコ ードレベルでのチューニング技術など)
(C言語、Perlを問わず)Apache API を用いたアプ リケーション開発に関する知識
mod_perl によるウェブアプリケーションンプログラ ミングの知識

上記に当てはまらない得意な技術に関しても、都度評 価・加味いたします。

また、英語のネイティブスピーカーを優遇します。

We demand an English native speaker with precedence. However, Japanese minimum conversation skill is needed.

デザイナー
0309デフォルトの名無しさん2005/06/07(火) 18:13:13
コピペ荒らし氏ね
0310デフォルトの名無しさん2005/06/07(火) 20:04:18
PageControlを配置して、実行後にForm1の大きさを変えると、
Form1の大きさに合わせてPageControlの大きさも変化するように
するにはどうすればいいのですか?

大きさを変えると、その大きさがPageControlより小さくなると
PageControlが隠れてしまいます
0311デフォルトの名無しさん2005/06/07(火) 20:08:01
>>310
PageControl->Align = alClient;
0312デフォルトの名無しさん2005/06/07(火) 20:57:41
>>311
ありがとうございます。
それだとボタンとかのコンポーネントみんな隠れていまします・・・。
PageControlにCppWebBrowserを配置してて
PageControl->Align = alClient;
だと、CppWebBrowserが隠れてしまいます。
しかもスクロールバーも隠れてしまい、なんだか
変になってしまいました・・・
03133122005/06/07(火) 21:15:12
自己解決しました
すいません
0314デフォルトの名無しさん2005/06/08(水) 00:53:24
BCB4からBCB6にアップグレードしたんですが、
リソーススクリプト(.rc)が含まれるプロジェクトがビルドできなくなりました。
rcファイルにはwavファイル、アイコン、ビットマップが1つ記述してあります。
"全てのプロジェクトを再構築"してもexeが出来ないので、
"その後に全てのプロジェクトをメイク"するとようやく出来上がります。

.rcファイルを除外してからビルドすると一発でできる。。。
これって何とかならないでしょうか?俺だけ?
0315デフォルトの名無しさん2005/06/08(水) 01:05:53
今作ってるプロジェクトまさにその状態。もう慣れてしもうた。
0316デフォルトの名無しさん2005/06/08(水) 01:16:55
>>314
リソーススクリプトはbrcc32.exeで手動コンパイルしてresをプロジェクトに入れろって某乱堂のエロい人が言ってた
0317デフォルトの名無しさん2005/06/08(水) 01:18:08
あ俺そうしよう
0318デフォルトの名無しさん2005/06/08(水) 01:29:45
ヘルプお願いします!
SysUtilsルーチンのMidStr()という文字列の一部分を抜き出す関数が、
正常に動作してくれません!

AnsiString str;
str=MidStr("12345ハロー",5,2);
ShowMessage(substr);

上のソースで、"12345ハロー"という文字列の5番目から2文字分取って
きて「5ハ」という文字列が表示されなきゃいけません。
それなのに実行すると「5・」とかになってしまいます。
これは何が間違ってるのでしょうか……
0319デフォルトの名無しさん2005/06/08(水) 01:35:24
>>318
どっこいしょ!!!

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString ansiA = "12345ハロー";
Caption = ( (WideString)ansiA ).SubString(5,2);//5ハ
}
0320デフォルトの名無しさん2005/06/08(水) 01:37:43
すいません、一カ所訂正します。

×SysUtils ○StrUtils
0321デフォルトの名無しさん2005/06/08(水) 01:43:26
>>319
うややや、アッサリうまく行きました!!か、ネ申!!

じ、じゃあ……↓のページの解説は間違いなんでしょうか……
ttp://www11.plala.or.jp/studyhall/cpp/BcbAnsiString.html
03223162005/06/08(水) 01:49:26
>>314
とりあえずBCBのReadme.txt読もう。な!
0323デフォルトの名無しさん2005/06/08(水) 01:53:20
うちちゃんと5ハって出る
0324デフォルトの名無しさん2005/06/08(水) 01:56:26
>>323
なんと!
うちはBCB6のPro版ですが、MidStrの文字カウントはbyte単位になっちゃってます。
0325デフォルトの名無しさん2005/06/08(水) 02:02:42
>>324
じゃパッチ当ててないとか。うちもBCB6Proだから。
0326デフォルトの名無しさん2005/06/08(水) 02:06:21
>>325
Borland C++Builder 6 アップデートパック #4 は当ててあるので、たぶん
違いの原因は別にあるんだと思います。
うーん、、、
0327デフォルトの名無しさん2005/06/08(水) 02:08:41
うぉ実行時パッケージ有効にしたら5・になった。
0328デフォルトの名無しさん2005/06/08(水) 02:38:01
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//コンポーネント パッケージのインストール 実行時パッケージを無効
//#include <StrUtils.hpp>
AnsiString str;
str=MidStr("12345ハロー",5,2);
Caption = str;
}
0329デフォルトの名無しさん2005/06/08(水) 09:48:32
VBみたいなファイルパスを指定できるコンポーネントないですか?
0330デフォルトの名無しさん2005/06/08(水) 11:18:44
?
0331デフォルトの名無しさん2005/06/08(水) 11:25:19
>>329
フォルダツリー?
■ このスレッドは過去ログ倉庫に格納されています