くだすれDelphi(超初心者用)その41

このエントリーをはてなブックマークに追加
938デフォルトの名無しさん:2007/05/27(日) 22:09:05
ヒントを任意のタイミングで表示したり、消したりしたいのですが
どのようにすればよいのでしょうか?

THintInfoあたりを弄ってみても、少し待たないとヒントが表示されず困ってます・・・。
939デフォルトの名無しさん:2007/05/28(月) 00:15:39
コンポーネントの名前(Nameプロパティ)を変数で指定する方法はありますか?
たとえばEdit1,Edit2...とあってXが2ならばEdit2に表示するといったことがしたいのですが。
940デフォルトの名無しさん:2007/05/28(月) 00:18:00
findcomponent
941デフォルトの名無しさん:2007/05/28(月) 00:29:29
現状で楽してネイティブ作れるのってこれだけか
C+WIN32APIは糞面倒臭いにも程がある
942デフォルトの名無しさん:2007/05/28(月) 07:50:01
c++builder
943デフォルトの名無しさん:2007/05/28(月) 08:17:55
>>938
Application変数にある Hint に ''ShortHint | LongHint' で入ってる
ヒントには短いヒントと 長いヒントがある。 | で区切れば、区別出来る。

ロングヒントは、
Application.OnHintを使うと StatusBar.AutoHintがTrueでもロングヒントが表示されない
自前でGetLongHint して表示しないといけない。

ShortHintは
HintPause/HintHidePause/HintShortPause とHintColor/HintShortCuts で調整

ショートヒントをマニュアルで出すには
GetCursorPos(P);
Application.ActivateHint(P);

ショートヒントをマニュアルで消すには
Application.CancelHint
944デフォルトの名無しさん:2007/05/28(月) 08:37:40
945デフォルトの名無しさん:2007/05/28(月) 09:28:55
>>943
お〜、丁寧に有難うございます!!
946デフォルトの名無しさん:2007/05/28(月) 18:57:01
VirtualTreeを使ってるんだけどどんな風に"使用してます"ってかけばいいのかな?

バージョン情報のウインドウなんかに
VirtualTree配布もとのリンクを貼ればOKなのだろうか・・・?

この手のライセンスのコンポを使用している有志、ご意見を聞かせてもらえないでしょうか?
947デフォルトの名無しさん:2007/05/28(月) 21:22:45
VirtualTreeの配布元のページにVirtualTreeが使われてるソフトがギャラリーみたいく
並んでいなかったけ?それらのソフト参考にすれば??
俺はバージョン情報のダイアログにのっけてる。
948デフォルトの名無しさん:2007/05/28(月) 22:32:09
>>940
>>944
thx
949デフォルトの名無しさん:2007/05/28(月) 22:55:11
41個の整数を要素とする母集団があり、
その中から任意の2〜40個、及び41個の要素の和を総当りで調べる
プログラムを作ってみたんだけれど、(Del6Per)

四半世紀ほど年齢が上の上司がJIS-BASICで作ったモノに
実行速度で負けたのはショックだった orz
950デフォルトの名無しさん:2007/05/28(月) 22:56:20
で?
951デフォルトの名無しさん:2007/05/28(月) 23:14:00
Delユーザにはそんなレベルのが多いよね
952デフォルトの名無しさん:2007/05/28(月) 23:16:50
そこでインラインアセンブラ
953デフォルトの名無しさん:2007/05/28(月) 23:36:12
2個の場合は、最初は1〜40の中から1つ選ぶんだ N[0] とするよ
次は N[0]〜41 の中から選ぶんだ

3個の場合は 最初は1〜39
次はN[0] 〜30
最後は N[1] 〜31だ
954デフォルトの名無しさん:2007/05/28(月) 23:40:38
アルゴリズムの坂
955デフォルトの名無しさん:2007/05/29(火) 02:08:57
レコード型にメソッドを付けられるようになったのはいつからでしょうか?
956デフォルトの名無しさん:2007/05/29(火) 02:15:37
TurboPascal5.5からじゃなかったかな
957デフォルトの名無しさん:2007/05/29(火) 08:02:55
2006からだね。object型なら昔からできたけど。
958デフォルトの名無しさん:2007/05/29(火) 22:27:18
>>949
ちょい前にも出てたけどアルゴ方面へ逝け。

ただし、だ。配列使いまくりで演算させていたならその結果は当たり前。
Delphiの伝統として、配列の使用はタブーだろw

959デフォルトの名無しさん:2007/05/29(火) 23:54:44
>Delphiの伝統として、配列の使用はタブーだろw

いみふめ
960デフォルトの名無しさん:2007/05/30(水) 07:44:50
配列の使用はタブーのコンパイラ・・・糞ですな
961デフォルトの名無しさん:2007/05/30(水) 07:59:56
How many files (0−15)?
962デフォルトの名無しさん:2007/05/30(水) 08:19:04
動的配列の導入以後は全く事情が違うさ。
963デフォルトの名無しさん:2007/05/30(水) 08:45:34
配列使わず何を使うんだ?
964デフォルトの名無しさん:2007/05/30(水) 08:56:55
AllocMemでメモリ確保してポインタで舐めてたんだろ
965デフォルトの名無しさん:2007/05/30(水) 09:46:04
チューニングパラノイアが初心者スレ引っ掻き回すのはやめてもらいたいなぁ
966デフォルトの名無しさん:2007/05/30(水) 10:00:02
動的配列の追加はよかったよな。 今では動的配列無しに書けない体になっちゃった。
967デフォルトの名無しさん:2007/05/30(水) 10:49:31
Stringもそうだけど配列もクラスとして記述できるくらいのパワーが言語に欲しかったな。
Stringはユーティリティ関数が散らばりすぎだし、動的配列は可能な操作が貧弱すぎる。
968デフォルトの名無しさん:2007/05/30(水) 11:00:22
クラスとして表現といっても現状のOOPの機能の追加を継承による方法では
手続きの引数で表現する方法に比べて良くなるとは思えない。
969デフォルトの名無しさん:2007/05/30(水) 11:04:47
一番目の引数について自動的にドットシンタックスが適用出来るような 仕様にすればどう?

function Add( A:Integer ; B:Integer ):Integer;
で、  C := 1 .Add(2) と書けるような
970デフォルトの名無しさん:2007/05/30(水) 11:26:10
それで、どう便利になるか判らん。 教えてくれ
971デフォルトの名無しさん:2007/05/30(水) 11:52:15
>>969
.NET 3.0正式対応のIDE待ちだな。
もしかしたらWin32版でも追随してくるかもしれないな。
972デフォルトの名無しさん:2007/05/30(水) 15:54:10
Delphi2005で、画像の印刷で苦しんでいます。

 Printer.BeginDoc;
 Printer.Canvas.CopyRect(Rect(0,0,1024,768),Image1.Canvas,Rect(0,0,Image1.Width,Image1.Height));
 Printer.EndDoc;

※ Image1.Picture には、emfファイルを読み込ませてあります。

これを実行すると、
「ビットマップを持っている時のみイメージの変更が可能です」
というダイアログが出て、印刷出来ません。
Image1で持っているemfデータを、内部的にBitMap化させないと
いけないのでしょうか。参考になるURLでも結構ですので、
ご教示くだされば幸いです。よろしくお願いします。
973デフォルトの名無しさん:2007/05/30(水) 16:01:11
メタファイルなら直接印刷してしまえばいいんじゃないの?
http://support.microsoft.com/kb/145999/ja
974972:2007/05/30(水) 16:08:35
>>973
TImageで持っているメタファイルをPrinter.Canvasに展開した後、
TextOutで文字を追記する必要があるので、直接印刷だと都合が悪いです・・・。
975デフォルトの名無しさん:2007/05/30(水) 16:14:12
PlayEnhMetaFile で印刷した後、TextOutすればいいじゃない
976デフォルトの名無しさん:2007/05/30(水) 16:20:40
CopyRectじゃなくて普通にDrawすればいいのでは?
977972:2007/05/30(水) 16:32:07
>>975
PlayEnhMetaFileでメタファイルをキャンバスのハンドルに展開しても、
結局TImageからTPrinterへ渡すのと変わらないようですが……。

>>976
Drawしてみました。
 Printer.Canvas.Draw(0,0,Image1.Picture.Graphic);
エラーは出なくなりましたが、絵が一切印刷されませんでした・・・。
978972:2007/05/30(水) 16:50:06
自己レスです。
下記のやり方でなんとか印刷できるようになりました。
(TPictureにロードして、ビットマップに変換、その内容をTPicture.Bitmapに還元)
お騒がせしました。

procedure TForm1.Button1Click(Sender: TObject);
 pic_Wk: TPicture;
 bmp_Wk: TBitmap;
begin

 pic_Wk := TPicture.Create;
 bmp_Wk := TBitmap.Create;

 pic_Wk.LoadFromFile('【emfファイル】');
 bmp_Wk.Width := pic_Wk.Width;
 bmp_Wk.Height := pic_Wk.Height;
 bmp_Wk.Canvas.Draw(0, 0, pic_Wk.Graphic);
 pic_Wk.Bitmap := bmp_Wk;

 Printer.BeginDoc;
 Printer.Canvas.Draw(0,0,pic_Wk.Graphic);
 Printer.EndDoc;
 pic_Wk.Free;
 bmp_Wk.Free;

end;
979デフォルトの名無しさん:2007/05/30(水) 18:34:15
>>978
天才だなあんた
980デフォルトの名無しさん:2007/05/30(水) 18:40:56
おちんぽみるくでちゃった
981デフォルトの名無しさん:2007/05/30(水) 19:05:30
>>978
でもDPIとか合わせないときちゃなくなっちゃうんじゃない?
たぶんデフォルト96DPIとかだろうし
982ななしへたぐらま ◆XcB18Bks.Y :2007/05/30(水) 22:32:50
>>977
Drawの代わりにStretchDrawだとどうですか?

 Printer.Canvas.StretchDraw(Rect(0, 0, Printer.PixelWidth, Printer.PixelHeight), Image1.Picture.Graphic);

ちなみにビットマップの印刷では
DDB(デバイス依存ビットマップ,TBitmapをCreateしたときのデフォルト)を
プリンターのキャンバスに描画するのはNGみたいですよ.
http://www.asahi-net.or.jp/~HA3T-NKMR/tips004.htm

983デフォルトの名無しさん:2007/05/31(木) 01:14:49
TTableのftCurrency項目の範囲はいくらからいくらなんでしょうか?

金額をintegerで管理するのと比べてのメリットはなんなんでしょうか?
984デフォルトの名無しさん:2007/05/31(木) 01:20:14
テキトーな答えだが、固定小数点じゃなかったかcurrency
985デフォルトの名無しさん:2007/05/31(木) 01:23:02
ヘルプのCurrency型の項見れ
986983:2007/05/31(木) 01:24:17
↓こんな感じですか?

1,000
ftIntegerで管理すると30億円とかの額になると溢れてしまうし、金額をカウントするときはどの型がいいんでしょうか?
987983
うお、元にCurrency型ってのがあったなんて知りませんでした。
ありがとうございます。