2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

くだすれDelphi(超初心者向け) Part4

1 :毛の生えたフサギコ:03/07/22 09:46
このスレッドは、

他のスレッドでは書き込めない超低レベル、もしくは質問者自身何が何だが
分からない質問を勇気を持って書き込むスレッドです。

Delphi使いが優しくコメントを返しますが、お礼はDelphiの布教と初心者の
救済をお願いします。

2 :毛の生えたフサギコ:03/07/22 09:47
くだすれDelphi(超初心者向け) (Part1)
http://pc2.2ch.net/tech/kako/1051/10518/1051882835.html
くだすれDelphi(超初心者向け) Part2
http://pc2.2ch.net/test/read.cgi/tech/1053757982/
くだすれDelphi(超初心者向け) Part3
http://pc2.2ch.net/test/read.cgi/tech/1055986736/

3 :毛の生えたフサギコ:03/07/22 09:47
リンク集
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538

4 :デフォルトの名無しさん:03/07/22 10:00
>>1 乙

  ∧_∧
  ( ´∀`)<ぬるぽ


5 :デフォルトの名無しさん:03/07/22 10:23
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    |
     |        |        |   |
     |        | ∧_∧ |   |
     |        |( ´∀`)つ ミ |
     |        |/ ⊃  ノ |   |   Borland
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |
                        |

6 :デフォルトの名無しさん:03/07/22 11:11
糞スレ立てんな死ね>>1

7 :デフォルトの名無しさん:03/07/22 12:45
Dialogってなに

8 :デフォルトの名無しさん:03/07/22 13:21
>>7
http://www.wdic.org/?word=%A5%C0%A5%A4%A5%A2%A5%ED%A5%B0+:TECH

9 :デフォルトの名無しさん:03/07/22 13:47
>>7
それだけじゃ
何を知りたいのかわからんですよ

もうちょっと詳しく

10 :デフォルトの名無しさん:03/07/22 14:31
FileListBoxで
拡張子がexeのものしか表示しないようにするには何のプロパティを設定すればええの?

11 :デフォルトの名無しさん:03/07/22 14:39
>>10
Mask

*.exe

12 :デフォルトの名無しさん:03/07/22 15:24
クラスとレコードってどうちがうの

13 :デフォルトの名無しさん:03/07/22 16:48
type
 TData = record
  x: Integer;
 end;

 TClass = class
 private
  FData: TData;
 public
  property Data: TData read FData;
 end;

という風にしたとき、TClass.Data.xまでも読み取り専用にすることは出来ますか?

14 :デフォルトの名無しさん:03/07/22 17:10
クラスにするっきゃない

15 :デフォルトの名無しさん:03/07/22 17:17
プライベート宣言

16 :デフォルトの名無しさん:03/07/22 17:19
ヘルプを眺めていて不思議に思ったので質問させてください
TRect = packed record
case Integer of
0: (Left, Top, Right, Bottom: Integer);
1: (TopLeft, BottomRight: TPoint);
end;
となっています
型宣言でcaseを使っているので驚きました
どういう意味なんでしょうか
TRectの値に2通りの方法(TPointを使うかどうか)でアクセスできるのと関連があるんだろうと
推理しましたがそれ以上わかりませんでした


17 :デフォルトの名無しさん:03/07/22 17:24
>>16
C の union(共用体) に相当


18 :デフォルトの名無しさん:03/07/22 18:05
>>16
その推理で大体あってる
同じメモリ空間を異なる型として見ることができる
その例だと
|A|B|C|D|
というメモリ空間が確保されて
TRect.TopにアクセスするとBが返って来る
TRect.BottomRightにアクセスすると
TPoint.x:=C;TPoint.y:=D;と同じものが返って来る

19 :デフォルトの名無しさん:03/07/22 18:09
ShellComboBoxの初期値はPathで設定すればいいみたいなのですが、
ShellComboBoxにくっつけたShellListViewにはそのPathが反映されません。
仕方が無いので、ShellListViewにも初期値を設定しようとしたのですが、
設定の仕方が分かりません。

どなたかご存知の方いらっしゃいませんか?

20 :デフォルトの名無しさん:03/07/22 18:46
>>17
>>18
なんとか理解できました
ありがとうございます

21 :デフォルトの名無しさん:03/07/22 19:15
ProgressBarのバーの色って変える方法ありませんか?

22 :デフォルトの名無しさん:03/07/22 19:23
SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, color);

23 :19:03/07/22 19:35
ぐあー!
ShellListViewってZIPファイルをフォルダ扱いしやがる!
(;´Д`)

24 :デフォルトの名無しさん:03/07/22 19:40
(;´Д`) ぐあー!

25 :デフォルトの名無しさん:03/07/22 19:42
>>19
ShellComboBoxとShellListViewをリンクさせるには
ShellComboBoxのShellListViewプロパティか
ShellListViewのShellComboBoxプロパティで
対象を指定します

初期値はそれぞれのRootプロパティで指定できます

26 :19:03/07/22 19:48
>25
Rootに設定したら、初期値というより、
ルートフォルダになってしまったっぽい。
ShellComboBoxにその上のフォルダが出てこない…。

他のコンポに差し替えた方がいいかなぁ…。

27 :デフォルトの名無しさん:03/07/22 20:51
自分でDelphiで作ったアプリ(A)に、他のアプリからFindWindow()->PostMessage()で
ユーザー定義メッセージを送ってます。
(A)を単体で立ち上げたときはメッセージをうまく受け取れるのですが、
Delphiの開発環境経由で、コンパイル→実行したときは、うまく受け取れません。
何か理由があるのでしょうか?デバッガがメッセージを横取りしてるとか。




28 :デフォルトの名無しさん:03/07/22 21:33
>>16
説明を追加しとこう。

Integerとか0とか1とかの一見無意味な記述があるから驚いたのだろうけど、

TRec = record
case Tag: TEnum of enumA : (A: Integer); enumB : (B: Word; C: Word) end;

という記述も可能。
TagはTEnum型のフィールドとなり、Tag = enumAの時だけAの値が保証される、という感じに使う。
Pascal処理系によってはA,B,CにアクセスするとTagを見てエラーを出してくれるものもあったが
Delphiの場合はTagは単なるフィールド。

29 :デフォルトの名無しさん:03/07/23 03:43
>>27
設計時のフォームに送られてるから。

30 :デフォルトの名無しさん:03/07/23 07:12
MS社員も見てる2ちゃんねる

http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=735

> 「超初心者向け」コミュニティに関しては、運営方法を検討中です。
> コンセプトとしては、2ちゃんねるプログラマ板のかつての「モナーの *やさしい* Delphi質問スレ」やくだすれです。現在は参加者がレベルアップしたのか雰囲気が変わりましたが。

31 :デフォルトの名無しさん:03/07/23 07:58
wara

32 :デフォルトの名無しさん:03/07/23 08:32
メソッドとプロパティの違いは?

33 :デフォルトの名無しさん:03/07/23 10:13

クリップボードではまってます。

var
i,n: integer;
hDrop: THandle;
szFile: array[0..MAX_PATH-1] of Char;
begin
if Clipboard.HasFormat(CF_HDROP) then begin
hDrop := Clipboard.GetAsHandle(CF_HDROP);
n := DragQueryFile(hDrop, $FFFFFFFF, szFile, SizeOf(szFile));
for i := 0 to n - 1 do begin
DragQueryFile(hDrop, i, szFile, MAX_PATH);
ListBox1.Items.Add(szFile);
end;
end;
end;

というようなコードを引用して、エクスプローラーでコピーしたファイル名の一覧を取得するところまでは、うまくいったんだけど、

ListBox1.Items.Add(szFile); を ShowMessage(szFile); にしたら、ループふた周り目でエラー。

ShowMessage(string(szFile));
これも駄目。

StringList.Add(string(szFile));
これも駄目。

何故!!!!!!!!!!!!!!!!



34 :デフォルトの名無しさん:03/07/23 12:05
DelphiでBMSプレイヤーってつくれるん?
Quadruple DってコンポーネントみつけたんだけどDelphiは初めて2週間程度で
しかも持ってるのはPersonalだからどうしようもない。(´・ω・`)
Delphiの本もプログラミングテクニックとリファレンスブックしかもってないから
ぜんぜん分からん。

だれかレクチャーしてくれ。

35 :デフォルトの名無しさん:03/07/23 12:36
PageControlで作ったtabsheetで
どれがアクティブか調べる方法を教えてください
よろしくお願いします

36 :デフォルトの名無しさん:03/07/23 13:19
>>35
ShowMessage(PageControl1.ActivePage.Caption);


37 :デフォルトの名無しさん:03/07/23 13:49
>>36
できました。
ありがとうございます

38 :デフォルトの名無しさん:03/07/23 14:22
>>32
その質問の真意は?

39 :デフォルトの名無しさん:03/07/23 14:24
>>38
その質問の真意は?

お前らは黙って答えてりゃ良い。

40 :38:03/07/23 14:28
>>39
ごめん。意味がわかんないもんで。
じゃあオマエさん答えて

41 :デフォルトの名無しさん:03/07/23 15:52
メソッドはプルセジャー

42 :デフォルトの名無しさん:03/07/23 15:54
自分のPCに入っているダイレクトXのバージョンって
どうやればわかりますか?

43 :デフォルトの名無しさん:03/07/23 16:17
>42
OSは?

44 :デフォルトの名無しさん:03/07/23 16:22
>43
XPです。

45 :デフォルトの名無しさん:03/07/23 16:23
WINのスタートメニュー⇒アクセサリ⇒システムツール⇒システム情報
ってやってからツール⇒DirectX診断てやればできないか?

46 :デフォルトの名無しさん:03/07/23 16:31
>45
出来ました。ありがとうございます。

47 :デフォルトの名無しさん:03/07/23 18:25
Delphiが地球と神殿柱のアイコンになった理由は何ですか

48 :デフォルトの名無しさん:03/07/23 20:02
>>46
Delphiを何の関係があるんだよ(;´д`)

49 :デフォルトの名無しさん:03/07/23 21:54
>48
日本語変ですよ

50 :デフォルトの名無しさん:03/07/23 22:19
delphiのプロジェクトを2個開きたいんですが、
1個目が閉じちゃいます。
どうすれば2個開けますか?


51 :デフォルトの名無しさん:03/07/23 22:22
プロジェクトグループ作って、その2つのプロジェクトを追加しれ。

52 :デフォルトの名無しさん:03/07/23 22:36
>>50
Delphi を 2 つ起動する手もある

53 :デフォルトの名無しさん:03/07/23 22:54
>>33
各パスが、ぬる文字で区切られているんじゃなかったっけ?んで最後にぬる2つ。
変数の中身チェックしてみ。


54 :デフォルトの名無しさん:03/07/23 23:18
クラスってなんなのさ
オブジェクトとかインスタンスとか親子とかレコードとか
わけわかんねーよ

55 :デフォルトの名無しさん:03/07/23 23:22
そんな君にはHSPがお勧め。

56 :デフォルトの名無しさん:03/07/23 23:32
親子って何?

57 :デフォルトの名無しさん:03/07/23 23:54
TComponentの事じゃない?

58 :デフォルトの名無しさん:03/07/23 23:58
>>54
ハートの形をしたクッキーを作りたいとき、
1.ハートの抜き型を用意します。(クラス)
2.生地をその抜き型でくりぬくとクッキーそのものができます。(オブジェクト、インスタンス)

基本はこんな感じですよ。
実際はリニアなものじゃなくて階層構造(=親子)になるんだけど、
人に説明するのってとっても難しいね。


59 :デフォルトの名無しさん:03/07/24 01:12
>>54
3ヶ月くらい使ってたら何となく分かってくるよ

60 :デフォルトの名無しさん:03/07/24 01:22
>>58
プログラミングでは極端な比喩表現は誤解を招きやすいのでいかがなものかと・・・
そもそも3行で説明できるはずがない(詳しい説明へのポインタを示すべき)

>>54
ttp://age.ne.jp/x/kazuhito/Delphi/delphi2.htm
ttp://www.artlex.net/gonta/jpn/objprog/
ttp://www.s34.co.jp/cpptechdoc/article/oo/
これでわからんかったら何がわからなかったのか質問しよう

61 :33:03/07/24 04:18
>>53
あ、ありがとございます。
寝て、働いて、帰ってきたら、ちぇっくしてみまず。


62 :デフォルトの名無しさん:03/07/24 08:15
DelphiではC言語みたいに
A++=1みたいな書き方はないの?
絶対A:=A+1ってかかなきゃいかんの?

63 :デフォルトの名無しさん:03/07/24 08:35
そうだよ。
馬鹿でも見たら分かるくらい分かりやすい書き方しかないよ

64 :デフォルトの名無しさん:03/07/24 08:46
>63
C言語に比べりゃすごく不便だな。糞ツールDelphi逝ってよし

65 :デフォルトの名無しさん:03/07/24 08:58
>>62
A++=1って何?
A+=1→A++ならInc(A)
A+=5ならInc(A, 5);
-=はDecやね

66 :デフォルトの名無しさん:03/07/24 08:59
Inc使えよ

67 :デフォルトの名無しさん:03/07/24 09:00
あ、かぶった

68 :デフォルトの名無しさん:03/07/24 09:13
オブジェクト指向ってプログラミングを簡単にできるようにするために考えたの?

69 :デフォルトの名無しさん:03/07/24 09:58
あれだけで、どこが不便なのか小一時間語ってもらいたいな

70 :デフォルトの名無しさん:03/07/24 11:08
自作自演はフサギコスレの方だけでやってくれんか。

71 :デフォルトの名無しさん:03/07/24 11:58
VBAでいうところの

On Error Resume Next

Delphiでは何と書けば良いのか、教えていただきたく

72 :デフォルトの名無しさん:03/07/24 12:26
>>71
例外を無視して突っ切るって事?
一文毎に、次のように囲む。(ただし実際にこんなことやってるとこ見つけたら怒るけどな…)

try
 文
except
 ;
end;

73 :71:03/07/24 12:57
ありがとうございます
一文毎に、ですか。。。ツレーサギョウダス
とりあえずやってみます


74 :デフォルトの名無しさん:03/07/24 13:04
別に一文ずつやる必要ないだろ。

75 :デフォルトの名無しさん:03/07/24 14:55
MDIアプリケーションで、タブブラウザのように
子ウィンドウを常に最大化して表示し、タブでウィンドウを切り替えます。

子ウィンドウを作るときと別のウィンドウに切り替えるときに
一瞬もとのサイズのウィンドウが見えてしまうのですが、
そうならないようにするにはどうすればよいでしょうか。

76 :デフォルトの名無しさん:03/07/24 15:00
>>75
どしてPageControlじゃダメなの?
Hide状態で最大化してから表示すればいいと思うけど

77 :デフォルトの名無しさん:03/07/24 16:19
他のアプリケーションをALT+TABとか使ってアクティブにすると
強制終了するにはどうやったらいいんですか?

78 :デフォルトの名無しさん:03/07/24 17:23
>74
try
 処理1
 処理2
 処理3
except
 :
end;

で、処理1でエラーがあったら処理2以降が実行されないから、
ってのが >71 の頭にあると思う。

79 :デフォルトの名無しさん:03/07/24 17:33
auto_ptrみたいな参照カウントのためだけに
TInterfacedObject継承するのは違反ですか?
なんかうまくいってるんだけど・・・

80 :デフォルトの名無しさん:03/07/24 18:25
elseの前にセミコロンがあってはいけませんとかでてきてうぜぇ

81 :デフォルトの名無しさん:03/07/24 18:39
implementation

{$R *.dfm}

end.

この部分の
{$R *.dfm}←これって
何でコメントなのに消しちゃいけないの?

82 :デフォルトの名無しさん:03/07/24 19:14
>>81
コメントじゃなくてコンパイラ指令(ディレクティブ)だよ

83 :デフォルトの名無しさん:03/07/24 19:36
>82
{ }でくくってあるのにコメントじゃないんだー
デルハイの不思議

84 :デフォルトの名無しさん:03/07/24 20:11
フォームを
Windowsのタスクバーよりも前に表示させたいんだけど、
どうすればできますか?

85 :デフォルトの名無しさん:03/07/24 20:13
Pchar型→string型に変換する方法を教えて下さい

86 :デフォルトの名無しさん:03/07/24 20:21
>>83
$があるから

87 :デフォルトの名無しさん:03/07/24 20:33
>>85
string(PChar変数); のようにキャストすればいいじゃん

88 :デフォルトの名無しさん:03/07/24 20:40
>>84
FormStyle:=fsStayOnTop;
でTTimerで定期的にSetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);をする。

89 :デフォルトの名無しさん:03/07/24 20:54
>>79
OK。

90 :71:03/07/24 21:08
>>78
おっしゃるとおりです
DelPhiパーソナル版買って3日目のトーシロってことで、
コードのみっともなさについてはひとまず見逃してください。

これまではAccessVBAしか使ったことがありません。
職場のDB、伝票発行から名刺作成まで、何もかもAccessで強引に
やっつけてきましたけど、そろそろ限界かな、と。

この先もたまにお世話になるかもしれません


91 :デフォルトの名無しさん:03/07/24 21:14
>パーソナル版買って

…感動した。
しかしDB機能はPro以上にしか無いですぞ。

92 :デフォルトの名無しさん:03/07/24 21:22
継承元がパブリックで公開してる静的メソッドを
継承先でプライベートに隠しちゃう事ってできないんですか?

TList継承して独自のクラスのみ格納できるListを作りたいのだけど
どうがんばってもfunction Add(Item: Pointer): Integer;が公開されてしまって
なんだかみっともないです

93 :デフォルトの名無しさん:03/07/24 21:23
hasでやればいいのだろうけど、どう考えてもis関係ですよね・・・?
DL版パーソナルなのでVCLソースを参考にすることもできず

94 :デフォルトの名無しさん:03/07/24 21:26
無理
TList継承スンナ

95 :デフォルトの名無しさん:03/07/24 21:29
>>92
Delphi-MLで昔見たような気がしたんだが・・・鯖トラブルで過去ログが見れない
もしかしたらDDJだったかなあ
かなり汚い方法だけど一応できた記憶はある。

96 :95:03/07/24 21:30
>>92
オジサンはねぇ、TList継承しておいてAddを消したいっていうのはどうかと思うよ。

97 :デフォルトの名無しさん:03/07/24 21:34
DB機能って何?

98 :デフォルトの名無しさん:03/07/24 21:37
七つ集めると(ry

99 :デフォルトの名無しさん:03/07/24 21:40
>>97
幻のD Builder

100 :デフォルトの名無しさん:03/07/24 21:47
ボディー ビルダー

101 :デフォルトの名無しさん:03/07/24 21:47
>>87
あっさり変換出来たよ....鬱だ。


102 :87:03/07/24 21:51
多田のバカじゃん

103 :デフォルトの名無しさん:03/07/24 21:52
>>101
超初心者スレだ。安心汁

104 :デフォルトの名無しさん:03/07/24 21:55
>>102はニセモノ。士ね

105 :デフォルトの名無しさん:03/07/24 21:57
>>96
いえ、Addを消したいのではなくて、
function Add(MyClass: TMyClass): Integer;
のみを公開したいんです
Pointerを引数に取れるのまで公開されちゃうと
何されるかわかったもんじゃないというか、poolproofというか

まぁダメそうなので素直にHasにします

106 :デフォルトの名無しさん:03/07/24 22:07
フサギコってなに

107 :デフォルトの名無しさん:03/07/24 22:12
>>106
良い子は見ちゃいけ・・・じゃなかった、興味を持っちゃいけません。

108 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/07/24 22:17
TList部分を全コピペするとよいかも。。

109 :デフォルトの名無しさん:03/07/24 22:26
>>105
例えば、こんな手もあり?

TList2 = class(TList)
public
 function Add(Item: Pointer): Integer;
end;

function TList2.Add(Item: Pointer): Integer;
begin
 raise Exception.Create('呼んじゃダメよ');
end;

使用例)
var
 List2: TList2;
begin
 List2 := TList2.Create;
 List2.Add(nil); // ここで例外発生
 ...
 Dame(List2);
end;

procedure Dame(List: TList); // ← TList2 の親
begin
 List.Add(nil); // こんな使い方されちゃうとダメなんだけど
end;


110 :デフォルトの名無しさん:03/07/24 22:48
前にRecordだかClassだかなんだかの基本的には変数をおくところに
procedureを書いてたのを見たことがあるんだが使い方の詳細を教えてくれない?
自分でもよくわかってないのでうまくかけないんで、察してくださいw
もしかしてこんなのかな?
〜 = record
i: Integer;
procedure MyProc;
end;

111 :デフォルトの名無しさん:03/07/24 23:01
>110
record型はprocedureやfunctionを要素に出来ないよ。
class型ならできる。
型について、いまいちよくわかってないのかなー
type
TmyClass = class
i: integer
procedure MyProc;
end;

とclass型を定義してから
var
MyClass: TMyClassとやれば
MyClass.iやらMyClass.MyProcを利用できるさ

112 :デフォルトの名無しさん:03/07/24 23:03
自分でもよくわかってないって行ってんだろカス

113 :110:03/07/24 23:06
>>111
なんとなくわかった気が。これから試してみます。
忘れ去られたころにまた質問するかもしれないのでそのときはよろしくでつ。

114 :デフォルトの名無しさん:03/07/24 23:07
>112
わかってないっつーか、
レコード型とクラス型の違いくらいは覚えられるでしょう。

レコード型+手続き、関数=クラス型

115 :110:03/07/24 23:10

かんじわりー

116 :デフォルトの名無しさん:03/07/24 23:16
type
Tnanasisan = record
resu : integer
tyuu : Boolean
end;

var
nanasisan : Tnanasisan
nanasisan.resu:=110;
nanasisan.tyuu:=true;

117 :110:03/07/24 23:25
>>115は人が違うんで。

118 :デフォルトの名無しさん:03/07/24 23:27
TN = record
a: procedure(const Unko: String);
end;

var
N: TN;
begin
N.a:=ShowMessage;
N.a('Hello, World.');
end;

119 :デフォルトの名無しさん:03/07/24 23:30
102=112=115
変なのが一匹紛れ込んでるね。

120 :デフォルトの名無しさん:03/07/24 23:32

フサギコ師ね

121 :デフォルトの名無しさん:03/07/25 00:04
>>110がいってるのってファンクタじゃないの?
TMyClass = class
 MyFunc: procedure;
end;
みたいな

こうしとくと
procedure Test();
begin
 //Do something;
end;
という関数があったとき、
MyClass.MyFunc := Test;
として「振る舞いそのもの」を変数に持てると思えばよろしいかと

こいつの存在意義は、状況によってMyFuncの振る舞いを変えたいときに、
換えたい振る舞いを実装した関数をMyFuncに代入してやれば良いという事

122 :デフォルトの名無しさん:03/07/25 00:08
ファイルストリームとかの「ストリーム」って簡単に言えばなんですかー?

123 :知ったか:03/07/25 00:11
カタマリ。

124 :デフォルトの名無しさん:03/07/25 00:30
>>122
流水。
まぁ先頭から末尾まで順番にアクセスすることしかできない配列と思えばヨシ。
ランダムアクセスもできるけど、それは本来的な使い方じゃないので注意。
途中から(末尾へ向かって)アクセスするのはアリ。

125 :デフォルトの名無しさん:03/07/25 00:41
Imageコンポネントの
ある座標のR,G,B値を調べるにはどうやるの?

126 :デフォルトの名無しさん:03/07/25 01:09
>>125
Image.Canvas.Pixels[x, y]でTColorが返って来る。しかも書き込める。

127 :75:03/07/25 01:22
>>76
PageControlでうまくできそうです。
ありがとうございました。

128 :デフォルトの名無しさん:03/07/25 01:34
>>90
パーソナルを業務上で使う貴方が勤めている犯罪企業の名前を教えてください

129 :デフォルトの名無しさん:03/07/25 01:50
ていうかDBもロクに接続できないパーソナルを業務に使う猛者企業とは一体。

130 :デフォルトの名無しさん:03/07/25 02:48
C#BはPersonalでも金出せば可になったから、Delphiもそのうち改定されないかな?

131 :デフォルトの名無しさん:03/07/25 03:06
DBなんか独自のものを作ってやるんだよ。

132 :デフォルトの名無しさん:03/07/25 03:27
C#は無料で自由に使える環境が既にあるし、
CSB1に限ってはPersonalでシェアウェアくらい作れないと誰も使わないような低レベルだし。

133 :デフォルトの名無しさん:03/07/25 03:50
CSBはEnt買ってJavaアプリとのブリッジを作るもんですね。


134 :デフォルトの名無しさん:03/07/25 04:13
Tinifileよくワカラン
実行ファイルと同じディレクトリに同じ名前でiniを作ったあと
そのiniファイルに
[test]
test=1
を作る方法教えて

135 :デフォルトの名無しさん:03/07/25 04:33
>>134
ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
ini.WriteInteger('test', 'test', 1);
ini.Free;

どこがワカランのか全然ワカラン
WindowsAPIの説明も読んどけ

136 :デフォルトの名無しさん:03/07/25 04:55
var ini: TIniFile;

137 :デフォルトの名無しさん:03/07/25 06:43
>>105
Hasでやるべし

138 :デフォルトの名無しさん:03/07/25 06:47
>>135
ありがd

>>136もthx


139 :デフォルトの名無しさん:03/07/25 08:55
DelphiってどうしてC言語やVBよりも解説書とか少ないの?
人気ないの?

140 :デフォルトの名無しさん:03/07/25 09:57
>>139
・Delphi やる人は C/C++ やってた人が多いから解説書がいらない
・初心者が質問してもそれなりに答えてくれる ML があるし、
 解説サイトもそれなりにある、
 そしてやさしい兄ちゃん達がいる「このスレッド」がある
・ソース付きフリーコンポが山のようにあるから、それを見れば勉強になる

141 :デフォルトの名無しさん:03/07/25 09:58
それはね。
メガドライブってどうして売れなかったの?
セガサターンってどうして売れなかったの?
ドリームキャストってどうして売れなかったの?
ってのと同じなんだよ。

ダサキモかっこ悪人気無いの。

142 :デフォルトの名無しさん:03/07/25 10:00
>>そしてやさしい兄ちゃん達がいる「このスレッド」がある
やさしいワンピースを着た色白な美少女もいる!

143 :デフォルトの名無しさん:03/07/25 10:31
やさしいワンピースなどない

144 :デフォルトの名無しさん:03/07/25 10:32
いちいちケチつけるためにこのスレを見張ってるおまえが一番キモい。
おれが二番

145 :デフォルトの名無しさん:03/07/25 11:09
二つのプログラムがあるとしまして
A > B へ送信してBが何かを処理している間はAは動かない
という事をしたいのですが、どうすればよいのでしょうか・・・

146 :145:03/07/25 11:13
質問しつつあげてなかったのでageさせて頂きます

147 :_:03/07/25 11:19
http://homepage.mac.com/hiroyuki44/jaz09.html

148 :デフォルトの名無しさん:03/07/25 11:23
>>145
モーダルダイアログ表示してる間はメインフォーム(呼び出し元)を操作できないようにしたい
みたいなことをしたいってこと?

149 :145:03/07/25 11:29
>>148
なるほどモーダルダイアログですか
ただいつ消すとかどうすればいいのだろうか・・・

150 :148:03/07/25 11:48
>>149
いや、「Bが何かを処理している間はAは動かない」の「動かない」の意味が
わからんかったんで >>148 のような意味かどうか聞いたんだけど。

151 :71:03/07/25 11:56
>>DBもロクに接続できないパーソナルを

いま確かめてみました。ロクに、というか、できませんね。
まあいいです。いまのところは練習用ですから。
DB以外にもつくりたいアプリは沢山あるし、DBについても、いま使ってる
ものが完全に限界を迎えるまでにどうにかなればいいかな、ぐらいの
感じで気長にかまえてます。
(そもそもAccessに感じていた限界ってのは、DBとしての限界じゃなく
それ以外のモノをつくろうとした場合の限界ですし)

ところで
変数の型ってのがけっこう厳格なんですね。
Suji:integer;
Suji:=12345;
ShowMessage(Suji);
とか書くと怒られる。
数字を文字に変換するやりかたってのも何だかよく分からず、仕方ないから
V1:variant;
Mojiretsu:string;
V1:='0';
Mojirestu:=Suji+V1;
ShowMassege(Mojiretsu)
なんてことをやってみましたけど、野暮にもほどがあるという感じで。

ま、何はともあれ昼休み。

152 :デフォルトの名無しさん:03/07/25 12:07
(´-`).。oO(こんな奴が作ったDBって)

153 :デフォルトの名無しさん:03/07/25 12:11
>>151
IntToStr(Suji);
Format('%d', [Suji]);
IntToHex(Suji, 8); // HEX


154 :デフォルトの名無しさん:03/07/25 12:33
>>151
型チェックが厳しいとかいうから
同じArray[0..9] of Integerなのに代入互換性ない!とかいうのかと思ったら・・・
ま、こんな香具師でも運営できるAccessVBはスゴイ!ということか(笑)

155 :デフォルトの名無しさん:03/07/25 12:39
厳格って言うか当たり前のことだろ

156 :デフォルトの名無しさん:03/07/25 12:45
>>154-155
VB, VBA, VBScript, JavaScript, ActionScript,...
こんなあいまいなものがあるからいけない。許してやれ。
でもこれはこれで便利な面もあるけどな。

157 :デフォルトの名無しさん:03/07/25 12:46
DelphiやっててAccessVBA使うと、逆に型が不明確で困るけどな。
ヘルプ見ても型がきちんと書いてないのが多いし。

158 :デフォルトの名無しさん:03/07/25 12:51
>>157
それは void* のような使い方したい場合に便利なんだが。

159 :デフォルトの名無しさん:03/07/25 12:52
↑間違えた

160 :デフォルトの名無しさん:03/07/25 12:58
>>150
Bが処理し終わったらAに適当に定義したメッセージ送ればいい。

161 :デフォルトの名無しさん:03/07/25 17:32
デルファイを使ってアイボみたいなロボットってできる?

162 :デフォルトの名無しさん:03/07/25 17:43
がんばれ

163 :デフォルトの名無しさん:03/07/25 17:49
>>161
どの CPU が何か知らないから何とも言えないが難しいだろう。
まあファームウェアっていえば大体 C や アセンブラ使ってやるから
そっちを勉強した方がいいだろう。
PC の画面の中でやるだけならもちろん Delphi でもできると思う。
完成した暁には報告してくれるとうれしい。

164 :デフォルトの名無しさん:03/07/25 20:47
Delphi6 使ってます。

grep の機能を実現するコンポーネントを探しています。
お薦めはなんかありませんか?

165 :デフォルトの名無しさん:03/07/25 21:16
>>164
http://homepage1.nifty.com/bmonkey/delphi/delphi.html

166 :デフォルトの名無しさん:03/07/25 23:54
パーソナルでもADOかなんか使ってDB出来なかったっけ?織れは
D6Proを使っているんだがそんな話を聞いた事があったような、
うろ覚えでスマソ。

167 :デフォルトの名無しさん:03/07/25 23:59
ifとかcaseとか使わないでalign代入する方法ない?

168 :デフォルトの名無しさん:03/07/26 00:00
ちょっと文字不足だった
ifとかcaseとか使わないでstringの変数にalign代入する方法ない?


169 : :03/07/26 00:04
>>168
冗談抜きに、まだまだ文字が足りないと思うぞ。

つーか、文字って言うか?

170 :デフォルトの名無しさん:03/07/26 00:04
☆貴方の見たい娘がイッパイ(^0^)☆無修正☆
http://endou.kir.jp/akira/linkvp.html

171 :デフォルトの名無しさん:03/07/26 00:08
>>167-168

const
ALIGN_STRINGS: array[TAlign] of string = ('alNone', 'alTop', 'alBottom', 'alLeft', 'alRight', 'alClient');

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(ALIGN_STRINGS[Align]);
end;

って意味?

単純に値(数値)なら
 IntToStr(Ord(Align));
とかできる。

172 :デフォルトの名無しさん:03/07/26 00:13
>>169
スマソ
>>171
そういう意味
ありがとう

173 :デフォルトの名無しさん:03/07/26 02:34
ListViewの特定のカラム内を入れ替えたいのですが、
どうすればいいですか?

StringGridの 
StringGrid.Cells[1,2] := 'age'; の様なことです。


174 :デフォルトの名無しさん:03/07/26 02:45
ListView1.Items[1].SubItems[0] := 'age';

175 :?:03/07/26 02:59
みてね〜♪
http://cappuccino.h.fc2.com/kojiro.html

176 :_:03/07/26 03:01
http://homepage.mac.com/hiroyuki44/

177 :デフォルトの名無しさん:03/07/26 03:22
アイコンをWindows標準のものにするにはどうすればいいんですか?

178 :デフォルトの名無しさん:03/07/26 03:49
function myfunc(): HRESULT;
var
 hr: HRESULT;
begin
 hr := 例えばAPI呼ぶとか
 if FAILED(hr) then 例外処理;
 hr := ・・・以下いくつか同じように
 Result := hr;
end;

と、こう書くのと

function myfunc(): HRESULT;
begin
 Result := 例えばAPI呼ぶとか
 if FAILED(Result) then 例外処理;
 Result := ・・・以下いくつか同じように
end;

と書くのとでは、パフォーマンスに違いがありますか?
確か関数の返り値って専用のレジスタに入るんですよね・・・?

179 :ななしへたぐらま ◆XcB18Bks.Y :03/07/26 04:43
>>178
戻り値が32ビット以内ならレジスタ(EAX)に格納されるようですが,
瞬時に何千何万回と呼び出されるのでなければ
パフォーマンスの差は無視しても良いように思います.


180 :デフォルトの名無しさん:03/07/26 05:33
>>178
ブレークポイントしかけてCPU窓で見るがよろし

181 :164:03/07/26 10:30
>>165
ども。あと、こういうのも見つけました

http://www.hi-ho.ne.jp/~babaq/bregexp.html

182 :デフォルトの名無しさん:03/07/26 12:10
C++ Builderとか見てみたらデルファイとそっくりやないか


183 :173:03/07/26 12:16
>>174
ありがとう
このスレ最高!!

184 :デフォルトの名無しさん:03/07/26 14:27
>>182
言語部分が object pascal から c++ になったようなもん

185 :デフォルトの名無しさん:03/07/26 16:48
ひとつのクラスに、100人の学生がいる。
100人のうち、70人がウドン好き
60人がソバ好き

このとき
ウドンもソバも好きじゃない人
ウドンのみ好きな人
ソバのみ好きな人
ウドンもソバも好きな人

のそれぞれの数の最大、最小を求めるプログラムはどうやってつくるの・・・?

186 :デフォルトの名無しさん:03/07/26 17:22
>>185
数学を勉強してから作るの

187 :デフォルトの名無しさん:03/07/26 17:41
先生!数学を勉強しなくても作れるレベルだと思います。

188 :デフォルトの名無しさん:03/07/26 18:16
>187
さすがに小学生じゃ無理だろ

189 :デフォルトの名無しさん:03/07/26 18:19
>>185
うどんとかそばとかのカテゴリで好き嫌いを語るのがナンセンス
関東風や関西風で全然別物だしそもそも学校で好き嫌いは許しません!!

190 :デフォルトの名無しさん:03/07/26 18:20
小学生は算数を勉強しているッ!!

191 :デフォルトの名無しさん:03/07/26 18:23
>189
それはプログラムに関係ないだろう

192 :デフォルトの名無しさん:03/07/26 18:37
プログラムと食事とどっちが大事だと思っているんだ!!

193 :デフォルトの名無しさん:03/07/26 18:41
ぷろぐらむ

194 :デフォルトの名無しさん:03/07/26 18:54
ListViewの2行目を削除して
3行目以下を2行目以降に入れたいのですが
どうすればいいですか?

195 :デフォルトの名無しさん:03/07/26 18:55
プログラムってあれだろ?
猫にノミがついた時に猫に飲ませるやつだろ?

196 :デフォルトの名無しさん:03/07/26 18:58

プログラミングが出来るからと言って数学が出来るとは限らない。逆もまたしかり。


197 :デフォルトの名無しさん:03/07/26 19:00
自動車を運転できるからといって自動車のエンジンのメカニズムなどをしっているとは
限らないってのと同じだな。
パソコンを使うためにメモリやハードディスクの構造を知る必要もないし。

198 :デフォルトの名無しさん:03/07/26 19:10
>>194 ListView1.Items[1].Delete;

199 :デフォルトの名無しさん:03/07/26 19:27
DMonKeyためしに使ってみてるんだけどどうやってスクリプトを実行させるの?

if DMonkey1.Compile('println("hello,world");') then
DMonkey1.Run;

これやってもHello,Worldって表示されない

200 :デフォルトの名無しさん:03/07/26 19:54
標準出力を表示するコードがないからだろ。

201 :デフォルトの名無しさん:03/07/26 20:07
グラフィックイメージファイルにエフェクトを掛ける
コンポーネントありませんか?

202 :デフォルトの名無しさん:03/07/26 21:04
デルファイを使ってデルファイが作られたって意味不明。
じゃあ一番最初のデルファイはどこから来たのさ・・?

203 :デフォルトの名無しさん:03/07/26 21:11
想像だが、Delphi1(最初の版) は Delphi0.1(非売品)で作ったんじゃないか。
その Delphi0.1 は Borland C++ かアセンブラで作ったと思われる。
Delphi0.1 は Delphi1 を開発するためだけのもの。

204 :デフォルトの名無しさん:03/07/26 21:13
DelphiのIDEや周辺ツールがDelphi製。
じゃあ最初のIDEはテキストエディタだけで作ったんですか?

205 :デフォルトの名無しさん:03/07/26 21:28
元を辿れば機械語

206 :デフォルトの名無しさん:03/07/26 21:29
>>203
Delphi1はTurboPascal
TurboPascalの最初はアセンブラかハンドコンパイルとかじゃないの?


207 :デフォルトの名無しさん:03/07/26 21:42
MMTimerって、スレッドが別だからForm上のVCLを直接いじると破綻しますよね?
なので、精密さを要求するリアルタイム計算処理はMMTimerで行い、それ以外の画面表示はTTimerで行っています。

しかし、TTimerの精度が悪くて、他のスレッドの処理が重くなると簡単にブッ飛んでしまいます。
いい解決法はないものでしょうか・・・。

208 :デフォルトの名無しさん:03/07/26 21:51
ブッ飛ぶってイベントハンドラが呼ばれないってこと?
そうだとしたら Sleep(0) してないからじゃねーの?

209 :デフォルトの名無しさん:03/07/26 21:58
>>208
Timer内でやってるはずの表示が固まるので、呼ばれてないみたいです。

んで、sleep(0)とは?。・゚・(ノД`)・゚・。

210 :デフォルトの名無しさん:03/07/26 22:03
>>209

(Win32 ヘルプより要約)

(Sleep 引数に) 0を指定した場合、 スレッドは、 実行準備ができている同じ優先順位のほかのスレッドにタイム スライスの残りを譲ります。実行準備ができている同じ優先順位のスレッドがなければ、 関数はすぐに戻り、 スレッドは実行を続けます。
INFINITE値を指定すると、 無制限に実行が中断されます。

ようするに他スレッドの処理ループの中で定期的に Sleep(0) を呼び出さないと
メインスレッドやその他のスレッドが実行されないままになっちゃう場合があるんだよ。

211 :デフォルトの名無しさん:03/07/26 22:04
>>207
というかMMTimerって具体的に何?
timeSetEventならただのコールバック関数なので破綻しない

212 :デフォルトの名無しさん:03/07/26 22:23
>>210
なるほど・・・!勉強になりました。試してみます。

>>211
VCLのライブラリで拾ってきたマルチメディアタイマーコンポーネントという奴で
「TMMTimer:マルチメディアタイマーをコンポーネント化したもの」らしいです。
(アクセス先はスレッドフリーでないとダメと説明書に書いてありました)

213 :デフォルトの名無しさん:03/07/26 23:02
どうでもいいことだけど今日はじめてAPIのヘルプの存在を知った。
これからプログラミングしやすそう。

214 :デフォルトの名無しさん:03/07/26 23:19
あの子垢抜けたね。

215 :デフォルトの名無しさん:03/07/27 00:01
ClientSocketとServerSocketについておしえてください。
クライアントの方でサーバーのIPとポート指定して繋がるところまでは出来たのです。
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject: Socket: TCustomWinSocket)
begin
  処理1
end;
として処理1は繋がったときに実行されたのです。

しかし、それだけで、クライアントからタイマーで定期的に送信しようとすると、サーバーの
procedure TForm1.ServerSocket1ClientRead(Sender 〜  …(1)
は実行されないのです。

クライアントの方で
ClientSocket1.Socket.SendText('ほげほげ')  ・・・(2)
が実行されないのか、上の(1)のプロシージャが実行されないのかと言うところで詰まっています。
(2)の1行前の処理は実行されているのですが…。

原因と解決策があればおねがいいたします。

216 :デフォルトの名無しさん:03/07/27 00:48
>>215
メインフォームに TClientSocket と TServerSocket 貼り付けて
localhost で通信するようにしてみ。デバッグし易いと思うから。
コンパイラオプションの「デバッグ版DCU」にチェック付けて
VCL ソースにブレークポイント設定するとか、ステップ実行して
追ってくなりすればいいよ。

217 :デフォルトの名無しさん:03/07/27 05:30
>グラフィックイメージファイルにエフェクトを掛ける
>コンポーネントありませんか?

http://home1.infonia.ne.jp/~delphian/delphi/

218 :デフォルトの名無しさん:03/07/27 10:38
Delphiで作ったアプリケーションは
Windowsのタスクバーを右クリックしても
元のサイズに戻す、最小化、閉じるの3つの項目しかないんだけど
普通のアプリみたいに
最大化、移動、サイズ変更もできるようにするにはどうやるんですか?

219 :デフォルトの名無しさん:03/07/27 11:33
>>218
実は初心者じゃ無いでしょw

・GetSystemMenu(Application.Handle)に追加する
・ParentWindow = 0にしてForm1そのものをタスクバーに出す
・CLXを使う
など。

220 :デフォルトの名無しさん:03/07/27 15:57
例えば、IEを2つ起動して1つめのIEで画像を読み込んで、その画像をドラッグして
2つ目のIEにドロップすると2つ目のIEでもその画像が表示されますよね。
この1つ目のIEの代わりに、DelphiのTWebBrowserで同じことをしても、ドラッグ出来ないんですが、
これはどうすれば出来るようになりますか?

221 :デフォルトの名無しさん:03/07/27 16:27
>>216
ありがとうございました。
無事に原因を特定することができました。

222 :デフォルトの名無しさん:03/07/27 19:29
>>220
TWebBrowserを使わずにTEmbeddedWBを使う

223 :デフォルトの名無しさん:03/07/27 22:15
「Delphi 2.0J 32bitパワープログラミング」って、まだ書店で手に入りますか?
秋葉原の書泉とLaoxを探したのですが、無かったので。


224 :デフォルトの名無しさん:03/07/27 22:49
ヤフオク

225 :デフォルトの名無しさん:03/07/27 23:13
>>222
すいません、出来ればTWebBrowserで実現できれば文句ないんですが・・・
不可能でしょうか?

226 :デフォルトの名無しさん:03/07/28 00:22
数学に関するアルゴリズムの本で良い本はないでしょうか?

227 :デフォルトの名無しさん:03/07/28 01:48
>>226
君ものすごく広範囲な事いってるって気づいてる?

228 :デフォルトの名無しさん:03/07/28 01:55
高校の教科書

229 :デフォルトの名無しさん:03/07/28 05:07
>>226
公文式に通いなさい

230 :デフォルトの名無しさん:03/07/28 09:37
Delphi 6 Personalのライセンスキーの取得ができません。
なんだやの!
登録の最終確認のメールを送信しました。
きてない。
止まってるんですか?

231 :デフォルトの名無しさん:03/07/28 09:38
Delphiは購入してください。そうしないとボーランドがつぶれて
MS一極体制になってしまいます。

232 :_:03/07/28 09:46
http://homepage.mac.com/hiroyuki44/hankaku09.html

233 :デフォルトの名無しさん:03/07/28 10:56
D6でのビジュアルスタイル対応についてまとめてるところありませんか?
「対応を謳ったコンポを使う」じゃ満足できません。

234 :デフォルトの名無しさん:03/07/28 11:16
循環参照を避けるためにimplementation部分でUnit1を参照すると、
Interface部分では、Unit1で定義されているクラスのオブジェクトを宣言する時は、
TObjectとかで宣言しないといけないですよね。

そのオブジェクトを使う時にいちいちキャストするのが面倒なのですが、
これはどうしようもないんでしょうか。

235 :デフォルトの名無しさん:03/07/28 11:32
>>233
結果、同じものが出来るだけ。

236 :デフォルトの名無しさん:03/07/28 11:33
Delphiの限界が露呈しました。

237 :デフォルトの名無しさん:03/07/28 11:38
>>234
C系だと複数ファイルにまたがる型宣言は
1つのヘッダファイルにまとめるのが通例
typedef.unitを作ってそこにまとめるべし

238 :デフォルトの名無しさん:03/07/28 11:55
C厨ウザイ。

239 :デフォルトの名無しさん:03/07/28 12:04
>>238
Delphiでも同じ事するけどな。Windowsユニットなんて典型例だし。

240 :_:03/07/28 12:04
http://homepage.mac.com/hiroyuki44/

241 :234:03/07/28 12:06
>237

なるほど。そういう手を使うわけですか。
助言に感謝します。

242 :238:03/07/28 12:07
>>241
どうしたしまして。

243 :デフォルトの名無しさん:03/07/28 12:32
>>243
どうも。

244 :デフォルトの名無しさん:03/07/28 12:41
>>243
妙な再帰だな。

245 :デフォルトの名無しさん:03/07/28 13:06
>>245
へ?

246 :デフォルトの名無しさん:03/07/28 13:25
for レス := 1 to 1003 do

247 :デフォルトの名無しさん:03/07/28 13:31
>>230

アメリカのサイトに行って試してもるのも手です。
私も同じ症状になったのですが、あきらめてアメリカの
サイトから登録したらうまく行きました。

248 :デフォルトの名無しさん:03/07/28 13:59
>>234
循環参照になるのがおかしい。

249 :デフォルトの名無しさん:03/07/28 15:00
クラスってレコードと同じなの?

250 :デフォルトの名無しさん:03/07/28 15:14
ぜんぜん違う

251 :デフォルトの名無しさん:03/07/28 15:15
>>249



                  ヘ ル プ 読 め





252 :デフォルトの名無しさん:03/07/28 15:16
Delphiでゲーム作るにはどうしたらいいの?

253 :デフォルトの名無しさん:03/07/28 15:35
>>249
C#だと同じ

254 :デフォルトの名無しさん:03/07/28 15:36
>>252



                  ヘ ル プ 読 め







255 :デフォルトの名無しさん:03/07/28 15:54
デルファイやっておけばその知識は将来CとかJavaとかやるときも役に立つ?

256 :デフォルトの名無しさん:03/07/28 16:12
もちろん

257 :デフォルトの名無しさん:03/07/28 16:18
Delphiの本たけえ
3000円とか4000円とかする。
くだらねえCDROM入れてねぇで本安くしろよクズ。
他の本は2000円くらいでかえるのに。

258 :デフォルトの名無しさん:03/07/28 16:21
本なんか必要ない。

259 :デフォルトの名無しさん:03/07/28 16:35
Alt+F4キーを押してもアプリケーションが終了しないようにするにはどうしたらいいのでしょうか

260 :デフォルトの名無しさん:03/07/28 16:44
>>259
Alt and F4キーを無効にする
キーボードを無効にする
Alt+F4に他のキーを割り当てる


261 :デフォルトの名無しさん:03/07/28 17:01
>>252
ゲームスレにいらっしゃい。
見本となるべきものはたくさんある。

262 :デフォルトの名無しさん:03/07/28 17:06
>>261
urlキボン

263 :デフォルトの名無しさん:03/07/28 17:09
>>262
氏ねベカ

264 :デフォルトの名無しさん:03/07/28 17:09
>>255
Delphiスキル向上のためにはイヤでもCのソースを読むときがやってくるでしょう。

265 :デフォルトの名無しさん:03/07/28 17:14
つーかDelphiなんて覚えるだけ無駄。

266 :デフォルトの名無しさん:03/07/28 17:15
つーかこのスレなんて見るだけ無駄

267 :デフォルトの名無しさん:03/07/28 17:40
つーか馬鹿なんて息吸うだけ無駄

268 :デフォルトの名無しさん:03/07/28 17:53
デルファイでモンテカルロ法のやりかたおしえてください

269 :デフォルトの名無しさん:03/07/28 18:10
StringをCharに変換するにはどうしたらいいんですか。

270 :デフォルトの名無しさん:03/07/28 18:34
var
 s: String;
begin
 Char(s);

271 :デフォルトの名無しさん:03/07/28 18:36
>>261
どこ?

272 :デフォルトの名無しさん:03/07/28 18:41
>>262, >>271
ゲーム製作技術板
http://pc2.2ch.net/gamedev/
避難所
http://bbs.gamdev.org/gamedev/

273 :デフォルトの名無しさん:03/07/28 18:50
>>272
あいかわらずクソ板だな
Delスレもゲームの話はせずに初級FAQだけ
苦し紛れにそんなものを紹介するぐらいなら素直にあやまっとけ

274 :デフォルトの名無しさん:03/07/28 18:58
このスレが上級だからそう見えるだけだ

275 :デフォルトの名無しさん:03/07/28 19:11
Lunaスタイルの時に、メニューバーとツールバーは若干見た目が違うけど、
メニューバーの方を表現する方法を教えて欲しい。
ホットトラック(?)で反転色、角有りのやつ。

276 :ひろゆき:03/07/28 20:37
Delphi7を買えばVisual Styleに対応できるらしいと云いますです。。

277 :デフォルトの名無しさん:03/07/28 21:14
Form1(Unit1)とForm2(Unit2)を関連付けようと
usesで両方を付け加えたら
循環参照エラーになるんですがどうしたらいいでしょうか?

278 :デフォルトの名無しさん:03/07/28 21:24
片方をimplementationに

279 :デフォルトの名無しさん:03/07/28 21:46
自分でusesに追加するときはimplementationの下のusesを優先的に使うといい
と思い込んでる俺

280 :デフォルトの名無しさん:03/07/28 21:58
ボタンコンポーネントのOnClickイベントを
Enterキーでは発動しないようにするにはどうやったらいいのでしょうか?

281 :デフォルトの名無しさん:03/07/28 22:01
新規作成したフォームには、implementation部にusesがないので、
しばらく気がつかなかっ遠いた記憶有り。

var
 Form1: TForm1;

implementation

{$R *.dfm}

uses unit2;

procedure

282 :デフォルトの名無しさん:03/07/28 22:10
ライブラリ的なunitはinterfaceのusesに書けばいんじゃない?
出来るだけ循環参照をしないような作りを目指そう!


283 :デフォルトの名無しさん:03/07/28 22:22
ボタンコンポーネントのOnClickイベント
-----
if GetKeyState(VK_RETURN) >= 0 then Enterキーでは発動しない文;

284 :デフォルトの名無しさん:03/07/28 22:29
Delphi6 personal でインターネット通信したいのですけど Indy のページ
http://www.nevrona.com/Indy/download/index.html
でダウンロードが分かりません。
ファイルの落とし場所を教えてください。

285 :デフォルトの名無しさん:03/07/28 22:35
メインからスレッドを作って、並列で処理させてるとき、
メインフォームを閉じるときに、まず先に作ったスレッドを止めないとえらいことになりますよね?

こういうとき、たとえば、メインのonCloseから明示的に止めるとか解放するとかしないといけないのでしょうか?
それとも、Terminatedを逐一チェックして、終わったみたい → 自分もやめ、でいいんでしょうか?

286 :デフォルトの名無しさん:03/07/28 22:46
>>273
そこ紹介するのは、適切だと思うけど。
というか、むしろDelphi依存のゲーム話って何?
アルゴリズム的な話は、スレ違いだし、
DirectXなんかの話なら、スレに出てるし・・・?

実際にオレ、両方の板でレスつけてるんで、
>>262>>271の人はきてもぜんぜんかまわんよ。

287 :デフォルトの名無しさん:03/07/28 22:50
ああ、スマンスマン。
もし、「クソ板だ」といいたいだけだったなら、流してくれ。

それにしても、ゲーム製作関係はよくクソにしたがるヤツが多くて困る。

288 :デフォルトの名無しさん:03/07/28 23:08
>>284
そのページの下のほうにあるべ。
聞く前に、よく読みましょう。

>>285
WaitForメソッドでスレッドが終わるまで待つことが出来ます。
ただし、スレッドから抜ける処理を行ってからWaitForしないと永久に終わらなく
なるので、確実にスレッドが終了するようにしましょう。


289 :デフォルトの名無しさん:03/07/28 23:53
ゲロゲロナビゲーツのやり方知りませんか

290 :デフォルトの名無しさん:03/07/29 00:15
>>284
インスコの方法がわからんならそう家
じゃなければ
Indy9
http://www.nevrona.com/indy/downloads/Indy_9_00_14_src.zip
ついでにモナジラでもみとけ

>>286
*見本となるべきもの*が見あたらなかった

>というか、むしろDelphi依存のゲーム話って何?
だから何故そんなスレを紹介するのかと問うている
ソースを晒して糞にもならない感想をもらうだけの場所にみえる
しかもDelphiですらないものまで散見される
避難所じゃないほうはシツコイ妨害で完全停止

とにかくゲ製作板がいいかげんな回答者のせいでQ&Aすら機能しなくなったことを自覚して欲しい
>>287みたいな逃げ口上ばかりでまるで同人ノウハウ板をみているようだ

291 :デフォルトの名無しさん:03/07/29 00:23
>>290
不満ならお前が率先すればいいだけだろ?
しかも、向こうで提案して来いクズ。
それすらも出来ないで、グチグチ言うなよ厨房。

292 :デフォルトの名無しさん:03/07/29 00:28
↓なにごともなかったように夏休みの宿題が終わった方から質問どうぞ!!

293 :デフォルトの名無しさん:03/07/29 00:29
↑indyの全部のコンポの使いかたを教えてください

294 :デフォルトの名無しさん:03/07/29 00:31
↑ダブルクリックするだけ
Delphiって素敵だな

295 :デフォルトの名無しさん:03/07/29 00:32
>>288
サンクスー
ただ、作ったスレッドはループしてるので、本体が存在するか?を毎回チェックしたほうが良さそうですね・・・。

296 :デフォルトの名無しさん:03/07/29 00:33
↑何が起こるか教えてください

297 :デフォルトの名無しさん:03/07/29 00:39
(´-`).。oO(隔離病棟から患者がでてきちゃったなぁ)

298 :デフォルトの名無しさん:03/07/29 00:45
この時期、俺の巡回コースはどこもシーズンインザサンだ。

299 :デフォルトの名無しさん:03/07/29 04:09
>>290
リンクありがとうございます。
そこからファイルは落とせたのですが、Indyがうまくインストールできません。
http://members.jcom.home.ne.jp/monazilla/document/indysetup.htmlを参考に
しているのですけど、手順3.を実行すると
[致命的エラー] IdDsnBaseCmpEdt.pas(21): ファイル 'DesignIntf.dcu' が見つかりません
となります。
どうすればインストールできるでしょうか?

300 :デフォルトの名無しさん:03/07/29 05:11
>>299
とりあえずモナジラをみろ
話はそれからだ

301 :デフォルトの名無しさん:03/07/29 07:30
>>290
> >>287みたいな逃げ口上ばかりでまるで同人ノウハウ板をみているようだ
そっくりそのまま、あなたに返そう。
すくなくとも俺は、もりあげようとしている。

それであなたは、何をした?

302 :デフォルトの名無しさん:03/07/29 09:04
>>301
話をそらさずに*見本となるべきもの*きぼん

303 :デフォルトの名無しさん:03/07/29 09:06
TBitmapでHandleTypeがbmDIBでPixelFormatがpfDeviceの場合、
どっちを信用すればいいのでしょうか・・・。

304 :デフォルトの名無しさん:03/07/29 10:42
先日入門したばかりの者です。
 
いくつかのサイトを回って、定番の"Hello world"と電卓は何とか作れました。
少しずつスキルアップできればいいと思っているんですが、ネタが無くて行き詰まって
しまいました。
将来的にはゲームの1本でも作れればと思ってますが、現状ではとても無理なので、
小さいプログラムをいくつか作って経験を積みたいと思ってます。
 
そこで、先輩諸氏に「こんなプログラムを組めばスキルアップにつながる」といった
課題を提示してもらえればと思ってます。
よろしくおねがいします。

305 :デフォルトの名無しさん:03/07/29 10:46
>>304
ぶっちゃけ作る方法を覚えても、創造できる力が無ければ無意味

306 :デフォルトの名無しさん:03/07/29 10:56
>>305
日本語不自由なヴァカ発見

Q.「こんなプログラムを組めばスキルアップにつながる」
A.「ぶっちゃけ作る方法覚えても、創造できる力が無ければ無意味」

電波電波〜(藁

307 :デフォルトの名無しさん:03/07/29 11:06
体育大会のシーズンです。4ブロックに分かれて人文字パネルで
応援合戦をします。パソコンで人文字パネルの絵柄をシミュレートしてください。

○ 例えば、横25人、縦15人が並んでスタンドに座っています。笛の合図で
  パネルの色を変えます。色はパネルをめくって、1人で3色から4色変更します。
○ 画面にマス目を表示して、マウスのクリックで一人一人の色を確定して、絵柄をつくり、
  アニメーション効果で人文字がきちんと出来ているか確認できるようにする。
  絵柄は最大50枚登録出来るようにする。

○ 完成したら、A4の紙に色の変化のパターンを印刷する。

  つまり、座席A1番の人は @赤→A赤→B青・・・・・というように
  メンバー全員にむけて、一人一人パネルの後ろに貼り付けて確認できるようにする。

体育大会が9月13日に予定されていますので出来れば8月第2週までに作ってください。

   
                 緑ブロック人文字長 近藤さやか 


308 :近藤さやか:03/07/29 11:10
スタンドの並び方は

横 20人から40人、縦 10人から20人

最初、この範囲で選択できるようにしてください。

309 :デフォルトの名無しさん:03/07/29 11:22
さっさと こたえろ くそやろう

310 :_:03/07/29 11:22
http://homepage.mac.com/hiroyuki44/hankaku08.html

311 :デフォルトの名無しさん:03/07/29 11:23
DelphiとJavaってどっちがすごいのですか?

312 :デフォルトの名無しさん:03/07/29 11:32
【速報!!!】田代まさし再々再(・∀・)タイーーーーーーーーーーーーーーホ!【神】
http://mbspro8.uic.to/user/9248.html

313 :デフォルトの名無しさん:03/07/29 11:54
>>304
http://bbs.gamdev.org/test/read.cgi?bbs=gamedev&key=1054282821
逝ってよし

314 :デフォルトの名無しさん:03/07/29 13:18
MDIアプリを作ろうとしています。
親フォーム自体が、別のフォームから作られた時、
子フォームが作成できません。
「有効なMDIフォームがありません」
というメッセージが出ます。

Form1のButton1Clickで
OyaForm := TOyaForm.create(self);
OyaForm.showmodal;

OyaFormのButton1Clickで
ChildForm := TChildForm.create(self);//ここで上記の例外が出る。
ChildForm.show;

Form1から呼び出せるMDIアプリケーションを作るにはどうすれば良いでしょうか?
(Form1とOyaFormは親子関係にはしていません)

315 :デフォルトの名無しさん:03/07/29 14:21
>>314
経験あり。Delphiの限界でした。


316 :デフォルトの名無しさん:03/07/29 14:28
>>314
VCLの限界なので、MDICLIENTウィンドウをCreateWindowしてガンバレ

317 :314:03/07/29 14:29
>>315
え?どうやってもできないんですか?

普通のフォームで親フォームクリックしたら、子フォームが非アクティブになるし、
親フォーム自体、統合ソフトのいち機能だから、独立したMDIアプリには出来ないし。

どなたかお助けあれ〜。

318 :316:03/07/29 14:41
MDIってのは要するにウィンドウが入れ子になってるだけの状態。
それに、標準でMDICLIENTってウィンドウが、メニュー周りの世話をしてくれる。
VCLは、メインフォームがMDIの親になるのを前提とした設計なので、
自前でMDICLIENTをCreateWindowすればOK。
ParentWindowだのVisibleまわりで細工はいるかも知れんけど。
(最悪、メニューを自前で更新して子ウィンドウのアイコンや[X]ボタンも自力で書く根性があれば、
MDICLIENTすら使わずにMDIは実現できる)

319 :デフォルトの名無しさん:03/07/29 14:41
アダルト激安DVDショップ!1枚500円〜!


http://www.netdedvd.c-o.jp/



320 :314:03/07/29 14:58
>>316
>>318
レスありがとうございます。
あまりWindowsのAPIを直接使う事がないので、
ピンと来ませんが、なんとかやってみます。

321 :デフォルトの名無しさん:03/07/29 15:14
PARADOXテーブルのデータをDB DESKTOPで一括処理しようと思ったのですが、
SQLで小数点以下を切り捨て/切り上げ/四捨五入するにはどうしたらいいですか?


322 :314:03/07/29 16:17
>>318
CreateWindowで作った子フォーム(Window)に
コントロールをのせたり、OnClickに処理を書くには
やっぱりAPIを使う(かなり面倒な)事になるのでしょうか?

323 :デフォルトの名無しさん:03/07/29 16:21
>>321
ここはDelphiスレなわけで…コードを書けばなんとでもなるんだけど
データベースデスクトップでやらなければならない理由が知りたかったりもする

324 :デフォルトの名無しさん:03/07/29 16:25
Delphi7の新しい機能を盛り込んだ、おすすめの書籍を紹介して下さい。

325 :デフォルトの名無しさん:03/07/29 16:25
☆無修正画像&サンプルムービーをどうぞ!!☆
http://yahooo.s2.x-beat.com/linkv/linkv.html

326 :299:03/07/29 16:27
>>300
見てもわかんないッす
インストールできなくて辛いので、もうおしえてちょ

327 :デフォルトの名無しさん:03/07/29 16:35
日本の夏。厨房の夏。

328 :デフォルトの名無しさん:03/07/29 17:19
デルファイで赤ちゃんは作れますか?

329 :デフォルトの名無しさん:03/07/29 18:39
>>268
乱数ルーチンなら、ヘルプの
VCLリファレンス>ルーチン一覧(カテゴリ別)>乱数ルーチン
に載ってるよ

330 :デフォルトの名無しさん:03/07/29 19:27
Delなんていらねえよ、夏。

331 :デフォルトの名無しさん:03/07/29 19:28
>>290, >>300
Monazillaの情報はすでに古いものになっていたよ…

>>326
Indyインストール手順
・Sourceフォルダの.batファイル(Delphi6ならFulld6.bat)を実行
・コンポーネント>パッケージのインストール>追加>フォルダの.bplファイル(Delphi6ならD6\dcIndy60.bpl)を開く
・OK

332 :デフォルトの名無しさん:03/07/29 21:43
ひとつ知恵を貸してください。

TStringGridってあるじゃないですか。
このグリッドを継承して使ってセルによっては数値を入れたり文字を入れたりするとします。
文字は左寄せ、数値は右寄せで表示するのはTStringGrid.DrawCellをオーバライドする事で実現出来たのですが、
入力時にも左右に寄せるのってどうするのでしょう?
入力用のテキストエディットボックスのTInplaceEditを継承してCreateParamsの設定でES_RIGHTとすると
入力時にも右寄せにはなるのですが全セルの入力で右寄せになってしまい、ありゃ?といった所です。

TInplaceEditも内部的にはCreateWindowExしているのでしょうから一度作ってしまうとwindowsのテキストエディットの制約で
文字位置の左右はもう変えられないと思いますが始めに幾つかのTInplaceEditを作っておいて切り替えるとすれば
どうすれば良いのでしょうか?

333 :ないと:03/07/29 21:51
質問です。
TEditコンポーネントを拡張して、
本文中にあるURL(http://ではじまる?)の色をかえ、
それをクリックした時にブラウザで開くという
コンポーネントを作るにはどうしたらよいのでしょうか?

Delphi6です。

334 :デフォルトの名無しさん:03/07/29 21:53
>>333
取りあえずTRichEditつかおうや。

335 :ないと:03/07/29 21:59
>>334
色をつけるのにTRichEditが必要だってことでしょうか?

336 :デフォルトの名無しさん:03/07/29 22:01
>>335
必要じゃないがお前程度の奴は
馬鹿でも色をつけられるTRichEditを
使っていればいいってこった。

337 :ないと:03/07/29 22:03
>>336
了解。(´・ω・`)


338 :デフォルトの名無しさん:03/07/29 22:16
TComponent使え

339 :デフォルトの名無しさん:03/07/29 22:31
TMediaPlayerで簡易プレイヤーを作っています。

DeviceType := dtAutoSelect;
Open;
AutoRewind := True;
Play;
という流れで再生を開始して、OnNotifyイベントでPlayしています。

これで、数10秒のMPEG1ファイルをパネルコンポーネント上に連続再生できるのですが、
ウィンドウを最小化して再生すると、OnNotifyイベントのところで固まってしまいます。
何とかならないものでしょうか?

340 :つーか:03/07/30 00:15
>>333
「TEditコンポーネントを拡張して」と、「本文中にある」がよく分からん。

「本文」?一行にズラーーーっと並んだ文字列からってこと?

341 :デフォルトの名無しさん:03/07/30 00:18
いろいろな言語を検討しているのですが、10人くらいで同時アクセス可能なC/Sデータベースシステムをデイルファイで開発可能ですか?

342 :デフォルトの名無しさん:03/07/30 00:20
>>341
好きな答えを持ってけ↓
1.出来ます。
2.出来ません。

343 :デフォルトの名無しさん:03/07/30 00:23
>>341
同じものをPerlで組めるくらいの技術力があればできるんじゃない?
つーかなんで既存のDBシステムじゃだめなの?
クライアント作るだけならたいした技術いらないよ?

344 :デフォルトの名無しさん:03/07/30 00:25
>>341
100人くらいならDelphi+Firebirdでいけるべ

345 :デフォルトの名無しさん:03/07/30 00:34
hoge : array [0..n] of Tbitmap

でビットマップの配列を作ってから実体を代入したとき、hoge.freeで全部消えますか?
それとも、for文でn回それぞれ hoge[i].free しないといけませんか?

346 :デフォルトの名無しさん:03/07/30 00:45
>hoge.free
単なる配列はオブジェクトではない。そんなことできませんよ。

>for文でn回それぞれ hoge[i].free しないといけませんか?
限りになく正解に近い。

347 :デフォルトの名無しさん:03/07/30 00:48
ア、ヤパーリ(;´Д`)サンクス!

348 :デフォルトの名無しさん:03/07/30 00:58
「n+1回だろ」と突っ込んでおく

349 :299:03/07/30 01:29
>>331
インストールできてコンポーネントパレットに追加できました。
ありがとうございました。

ところで、TNMHttpが見当たらないのですが、TNMHttpは初めから含まれていないのでしょうか?

350 :デフォルトの名無しさん:03/07/30 01:44
http://otori12.tripod.co.jp/jane2ch.src.zip

ソースの説明
最新Viewベース
でも2-293さんのソースを使ったり
いろんな人のソースを参考にしました

GexpertsのTo Do ListにConfigerを追加することで何処を改造したかわかる
嫌ならConfigerで検索

調整してないので非doeには多分未対応




351 :デフォルトの名無しさん:03/07/30 01:45
>>350
思いっきり誤爆した
スマン

352 :デフォルトの名無しさん:03/07/30 08:14
Delphiの検定試験あるよ
http://psc.borland.co.jp/training/bpcindex.html

353 :339:03/07/30 11:35
一歩だけ前進しました。

Playメソッド完了後のOnNotifyイベントで、何も考えずに再度Playメソッドを
呼んでいたのを

if NotifyValue = nvSuccessful //直前のPlayメソッドが正常終了なら
Play;

としてやることで、ウィンドウを最小化しても、Play完了後のOnNotifyで
固まらなくなりました。

ちなみに、固まる時のNotifyValueの値はnvAborted(ユーザーによって
コマンドが強制終了された)になっていました。
ウィンドウを最小化したことが原因なのでしょうが、
どうしてそれが強制終了にあたるのかはちょっと分かりません。

そのため、依然として強制終了でOnNotifyが呼ばれることがあり、
その時は固まりはしないのですが、タスクバー内のタイトルバーが
ブリンク状態になってしまいます。

ウィンドウの最小化がPlayの強制終了を引き起こさなければ、
解決できると思うのですが、何か解決策はありませんか?

354 :デフォルトの名無しさん:03/07/30 11:39
>>332
http://www.borland.co.jp/tips/delphi/dh011/sgrid_4.html

355 :デフォルトの名無しさん:03/07/30 11:52
こんにちは。Del6Personalを使い始めた者ですが、

以下の内容のCSVファイルがあるとき、

"1","トマト","野菜","6"
"2","きゅうり","野菜","100"
"3","バナナ","果物","33"
...

先頭にタイトルを入れて
"ID","商品","種別","在庫数"
"1","トマト","野菜","6"
"2","きゅうり","野菜","100"
"3","バナナ","果物","33"
...

というものを作成して別ファイル名で保存したいのですが、
どうしたらよいでしょうか。
「ファイルを開く」ところまではWEB上などを調査して何とか
行き着いたのです。
どなたか方法をご存知の方、お願いします。

356 :デフォルトの名無しさん:03/07/30 11:58
Addというメソッドをヘルプで検索

357 :デフォルトの名無しさん:03/07/30 12:02
StringGridのスクロールバーの幅のサイズを変更するにはどうすれば良いですか?

358 :デフォルトの名無しさん:03/07/30 12:11
さすがDel厨。馬鹿だな。

359 :デフォルトの名無しさん:03/07/30 16:25
>>355
TStringList.Insertとか

var hoge: TStringList;
begin
  hoge := TStringList.Create;
  hoge.LoadFromFile('hoge.csv');
  hoge.Insert(0, '"ID","商品","種別","在庫数"');
  hoge.SaveToFile('newhoge.csv');
  hoge.Free;
end;

360 :デフォルトの名無しさん:03/07/30 18:30
動的に作成したコントロールの描画順位(前面、背面)を変更したいのですが、
どうすれば良いでしょうか?

361 :_:03/07/30 18:34
http://homepage.mac.com/hiroyuki44/

362 :デフォルトの名無しさん:03/07/30 18:37
>>360
BringToFront / SendToBack あたり

363 :デフォルトの名無しさん:03/07/30 18:39
アダルトDVDが
 最短でご注文いただいた翌日にお届け!
 http://www.dvd-exp.com 開店セール1枚 500円より


364 :デフォルトの名無しさん:03/07/30 22:24
>>357
Delphi-ML:65498からのスレッドに書いてある


365 :デフォルトの名無しさん:03/07/30 22:58
あるダイアログ内にあるテキスト型オブジェクトで利用しているフォント名を
取得するにはどうすればよいのでしょうか?
よろしくお願いします。


366 :デフォルトの名無しさん:03/07/30 23:00
ダイアログ.テキスト型オブジェクト.Font.Name

367 :デフォルトの名無しさん:03/07/30 23:10
昨日からDelphi始めてみました。
タイプすると音が出るメモ帳作っています。
音はとりあえずしっかり出るのですが、日本語入力ONにするとだめなようです。
日本語入力ONにしたときのKeyの取得方法はどうしたらいいのでしょうか。

現在の仕様
エディタのOnKeyPressイベントから飛ばして、
if Key = chr(VK_RETURN) then
begin
Mediaplayer1.Rewind;
Mediaplayer1.Play;
end
else
begin
Mediaplayer2.Rewind;
Mediaplayer2.Play;
end;

てな感じになってます。
Enterキーとその他のキーで鳴る音を分けています。
わかる方ご教授お願いします。

368 :デフォルトの名無しさん:03/07/30 23:24
>>367
無理と言っておこう。
IME上で未確定の間は、アプリケーションではなく
IMEのプロセスにキーボードメッセージを横取りされている状態なので。
アプリケーション上で如何なるイベントを処理をしようともIME上の入力を感知することはできない。

ちなみにOnKeyPressはIMEの入力を確定した時点で発生する。

例外としてフックなどのAPIを使用すればIMEの入力メッセージを
さらに横取りして擬似的にイベントを発生させることもできるが、
APIの知識がないと極めて危険な技。


369 :デフォルトの名無しさん:03/07/30 23:35
何で無理やねんw
しかもフック無用

370 :デフォルトの名無しさん:03/07/30 23:38
>>368
レスありがとうございます。
IMEから奪わないといけないんですね

APIが使いにくいと思い、でもDelphiならAPI使わなくても
それなりに作れそうだと思って始めたのですが、
いきなりひっかかってしまいましたか
やはりWinで何か作ろうと思ったらAPIの知識が必要になってきますね…

とりあえず、他の物いろいろ作って修行してまいります

371 :デフォルトの名無しさん:03/07/30 23:50
Delphiの限界が垣間見えました

372 :デフォルトの名無しさん:03/07/30 23:54
初心者スレに貼り付いてる粘着。

373 :デフォルトの名無しさん:03/07/31 01:17
Delphiで3Dグラフィックスを表示させたいのですが
OpenGLやDirectXを使えるようにするにはどうすればよいでしょうか
チュートリアル的なサイトを教えていただければ幸いです

ゲ製作をみてQuadrupleD3.00というものを使ってみましたが
不具合が多くドキュメントに不備がありコミュニティが停止状態なので
使い物にならないと判断しました
DelphiXも同じような理由ではずしました

サンプルやドキュメントに不具合が少なくDelphi6Personalで使いやすいものは何かありませんか?
ドキュメント類は日本語か英語でお願いします
ロシア語でいいサイトをみつけたのですがソースが化けてしまって(それ以前に読めませんが)修正が大変だったので(TT

374 :デフォルトの名無しさん:03/07/31 01:20
>>373
DirectX SDK落とせばCとVBでサンプルソースがあるから、それ見てこつこつと
やってくしかない。あとヘルプも同梱されてるから一緒に見てね。

375 :デフォルトの名無しさん:03/07/31 01:23
>>373
JEDI DirectX9 Headers
http://www.crazyentertainment.net/

VC++とかのサンプルそのまま写して使えるよ
もちろんDelphiの作法が必要なところは適宜脳内変換しなきゃならないけど
(ウィンドウ・メッセージループ→TForm・Application.OnIdle)

376 :デフォルトの名無しさん:03/07/31 01:23
書き忘れた。
DirectXのDelphi用pasファイルは、
http://www.delphi-jedi.org/
にあるから落としてね。

377 :デフォルトの名無しさん:03/07/31 02:10
>>374-376
即レスありがとうございます
VC++のやり方がほぼそのまま使えるということで助かります
ライセンスもMPLということで扱い易いです

贅沢いうのもなんですがチュートリアルかサンプルはないでしょうか
VCからのコンバート中なんですがもし先人がやっていれば楽したいなと思いまして
とりあえずコンパイルできるところまでいくのに時間かかりそうなものですいません

378 :デフォルトの名無しさん:03/07/31 02:23
>>377
だからVCとかのチュートリアルそのまま写すだけだって・・・
ウィンドウはFormが勝手に作ってくれるんだから後は簡単でしょ?
>>375にヒントは書いたんだし

ちなみにあまりに簡単なことなので誰も今更Webで説明したりはしないと思うよ

379 :デフォルトの名無しさん:03/07/31 03:55
>>367, >>368
WM_PROCESSKEY を使ってごらん

380 :デフォルトの名無しさん:03/07/31 06:05
>>377
VCLでの作法が分からなければ、SDKのようにAPIで組めばいい。
とりあえず、概念を理解するまでサンプル組んでみろ

381 :デフォルトの名無しさん:03/07/31 08:52
>>377
サンプルはロシアにあるじゃん

382 :デフォルトの名無しさん:03/07/31 10:31
>>367
Application.OnMessage で VK_PROCESSKEY をつかまえて
ImmGetVirtualKey API を使い仮想キーコードを取得する。

383 :デフォルトの名無しさん:03/07/31 10:55
どうした?>> 382

384 :デフォルトの名無しさん:03/07/31 10:58
>>364βακα..._〆(゚▽゚*)

385 :355:03/07/31 14:33
>>356>>359
どうもありがとうございました。
この方法(を少しアレンジして)で、うまくいきました。
今後ともよろ

386 :デフォルトの名無しさん:03/07/31 18:19
TCustomListBox.TopIndexがイマイチよくわかりません。
ヘルプの例を実行したのですけど、項目が入れ替わらないのですけど、どうして
なのでしょうか?

Delphi6のヘルプの例

以下の例では,リストボックス,ボタン,編集ボックスを使用します。
アプリケーションを実行してボタンをクリックすると,リスト内の 3 番目
の項目が最初の項目になり,その項目のインデックス値が編集ボックスに
表示されます。この場合,インデックス値は 2 になります(最初の項目の
インデックス値は 0)。

procedure TForm1.FormCreate(Sender: TObject);

var
Number: Integer;
begin
for Number := 1 to 20 do
ListBox1.Items.Add('Item ' + IntToStr(Number));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.TopIndex := 2;
Edit1.Text := IntToStr(ListBox1.TopIndex);
end;

387 :デフォルトの名無しさん:03/07/31 18:23
> 項目が入れ替わらないのですけど

(必要なら)スクロールして、一番上に表示されるだけだよ。

388 :デフォルトの名無しさん:03/07/31 18:26
項目を入れ替えるプログラムに見えないような気がする

389 :デフォルトの名無しさん:03/07/31 18:45
Windowsのゴミ箱にファイルを捨てるプログラムを作成したいのですが、どのようにプログラムしたら良いのでしょうか?
http://www.borland.co.jp/qanda/delphi/d0009408.html
を実行するとKernelの読み込み違反が起きるのですが、
何か間違っているのでしょうか?

390 :デフォルトの名無しさん:03/07/31 19:07
>>389
 ま た コ ン ポ ー ネ ン ト か

 という様な、突っ込み来そうだけど
http://www.japan-net.ne.jp/~fermion/ これ使ってみれば?

391 :デフォルトの名無しさん:03/07/31 19:11
delphi api specialfolder path
delphi file move

392 :デフォルトの名無しさん:03/07/31 20:16
>>387
実行して意味がわかりました。
スクロールの表示位置でした。

393 :デフォルトの名無しさん:03/07/31 20:44
TImageコンポーネントに表示した画像をグレースケールに変換する
方法を教えて頂けませんでしょうか?


394 :デルφ:03/07/31 20:55
でるふぃって読むのですか?

395 :デフォルトの名無しさん:03/07/31 21:01
>>393
http://www.google.co.jp/search?num=20&hl=ja&lr=lang_ja&q=%83O%83%8C%81%5B%83X%83P%81%5B%83%8B+Delphi

396 :デフォルトの名無しさん:03/07/31 21:06
φって変換できてるのにね

397 :デフォルトの名無しさん:03/07/31 21:47
>>390
Thanks
いまからやってみます

398 :デフォルトの名無しさん:03/07/31 21:52
最小化不可にしているんだけど、
QuickLaunchに入っているデスクトップ(ToggleDesktop)に最小化されてしまう。
そもそもコレはどんな動作して最小化にやってくるのか、
どうやって妨げてやろうか、APIで利用できないものか、
教えてもらえたら大人になれるんだがな。

399 :デフォルトの名無しさん:03/07/31 21:59
>>398
メッセージ処理を覚えると吉と言ってみる。


400 :デフォルトの名無しさん:03/07/31 22:06
>>395
解決しますた

401 :398:03/07/31 22:09
速いな。
メーセージ処理どころか、フックまでして妨害してるがことごとく失敗。


402 :デフォルトの名無しさん:03/07/31 22:13
>>401
強敵と戦っているんですね。がんばってくださいね。

403 :398:03/07/31 22:15
大人になるための戦いだからな。
おまえもがんばれよ。

404 :デフォルトの名無しさん:03/08/01 01:16
>不具合が多くドキュメントに不備がありコミュニティが停止状態なので
>使い物にならないと判断しました
>DelphiXも同じような理由ではずしました
自分で作れもしないくせに、偉い言われようだなぁ…。

405 :デフォルトの名無しさん:03/08/01 01:49
だなぁ。
ミニゲーム程度なら簡単に作れるだろうに。

>とりあえずコンパイルできるところまでいくのに時間かかりそうなものですいません
とか言ってる人には無理だろうけど…。

406 :デフォルトの名無しさん:03/08/01 04:23
>>398
>最小化不可にしているんだけど、
>QuickLaunchに入っているデスクトップ(ToggleDesktop)に最小化されてしまう。

システム解析の定石として最小化されないアプリケーションが実在するかどうかを
調べてみては?

407 :デフォルトの名無しさん:03/08/01 05:29
> QuickLaunchに入っているデスクトップ(ToggleDesktop)に最小化されてしまう。
これってどういう意味なの?

QuickLaunchのデスクトップって、デスクトップにあるアイコンを表示しているだけだと思うけど。

408 :デフォルトの名無しさん:03/08/01 05:32
>>407
だから「デスクトップにあるアイコンを表示しているだけ」を抑制したいんだろ?

409 :デフォルトの名無しさん:03/08/01 09:35
PCJapanをみてきました
DelphiでつくられたNASAの科学技術情報システムってどんなものですか?

410 :デフォルトの名無しさん:03/08/01 09:47
IndyのIdHTTPServerのgetやpostのイベントハンドラはマルチスレッドで動いてるんだろうか。
それとも、イベントハンドラが複数動作するので、シングルスレッドで問題無いわけかな。
詳しい方教えて下さい。

411 :デフォルトの名無しさん:03/08/01 10:08
マウスのプロパティで設定されている
ホイールのスクロール量を取得する方法を教えて頂けませんでしょうか?

412 :デフォルトの名無しさん:03/08/01 10:17
☆★ 新商品 ゾク・ゾク 入荷!! 急げ〜!! ☆★☆
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安!  スピード発送!  商品豊富!   
★☆      http://www.get-dvd.com        
☆★ 激安DVDショップ 「GETDVDドットコム」 
★☆      http://www.get-dvd.com        
☆★ 今すぐアクセス Let’s Go!   急げ! 
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★


413 :398:03/08/01 11:08
普通のアプリはToggleDesktopで最小化から復帰するときアニメーションが起こる。
HCBT_MINMAXをブロックしちゃったアプリはこのアニメーションがないようだ。
WS_VISIBLEを含み、WS_MINIMIZEDを含まないのに見えない状態だ。
タスクバーを右クリックしたら、メニューと同時にフォームが表示された。

以上のような状況から、最小化できないフォームは、
デスクトップWindowの背面に持っていかれてるような挙動を予想し、
SWP_TOPMOSTを使ってみた。
ついにやったぞ、初勝利だ。

これで次の目標は、任意のフォームをデスクトップWindowの後ろに持っていくことになった。

414 :デフォルトの名無しさん:03/08/01 11:26
>>410
タスクマネージャ見て調べてください。

プロセスタブを表示して、
メニューから「表示→列の選択→スレッドの数」にチェックを入れる

415 :デフォルトの名無しさん:03/08/01 11:38
>>411
Controls.Mouse.WheelScrollLines

416 :デフォルトの名無しさん:03/08/01 11:48
>>415
どうもありがd

417 :デフォルトの名無しさん:03/08/01 11:48
>>410
IndyのIdHTTPServer はマルチスレッドで動いています。
OnCommandGet イベントなどは第一引数に、そのセッションに関連付けられたスレッドの
ID を持ちます。必要であればこれを使ってセッションを分離することができます。



418 :デフォルトの名無しさん:03/08/01 11:57
>>409
>PCJapanをみてきました
>DelphiでつくられたNASAの科学技術情報

http://www.borland.co.jp/delphi/cases/dh004.html
これか?だいぶ古い記事だけど

最新の情報は見つけられないけど、BorCon カンファレンスで NASA の人が
公演しているからまだいろいろやっているみたい。

PCJapan でどうかかれていたのだろうか。

419 :410:03/08/01 11:58
thanx!>>417

OnCommandGetを追ってみたら、
>function TIdHTTPServer.DoExecute(AThread: TIdPeerThread): boolean;
って感じで素直にスレッドになってますね。

スレッドIDでセッションを分離、、、何か出来るわけですね。
(セッションを分離すると何が良いのか知りたいです)

420 :デフォルトの名無しさん:03/08/01 12:12
アメリカではNASAだけじゃなくて、いろいろな研究機関で使用されているよ

421 :デフォルトの名無しさん:03/08/01 12:29
>>414
ヴァカ丸だし全開ですね!(ワンダフルゲラ

422 :410:03/08/01 13:07
再び初心者質問ですが、
TIdHTTPServerで、getメソッドのパラメタに改行コードが入ってるとパラメタのパースに失敗します。
入れちゃ駄目なのかな。どうしよう。

423 :410:03/08/01 13:28
ファイルからの読み込みデータのパース失敗なので、EOFコードが入ってるかも。
EOFコードが終端を意味するのかな?

424 :デフォルトの名無しさん:03/08/01 13:50
TPanelを含めて、TPanelに乗っている全てのコントロールを
半透明にする事は出来ますか?

425 :デフォルトの名無しさん:03/08/01 14:19
Delphiのクラスか関数で、エスケープ文字を使った文字列変換ありますか?

426 :デフォルトの名無しさん:03/08/01 14:43
TPanelの載っているフォームを半透明にすれば、TPanelを含めて、TPanelに乗っている全てのコントロールを半透明にする事はできる

427 :デフォルトの名無しさん:03/08/01 14:50
>>422-423
getメソッドのパラメーターって何?
パースに失敗するってどの様に?
ファイルからの読込みってどのファイル?

質問内容が理解できません

428 :424:03/08/01 14:54
>>426
レスありがとうございます。
フォーム全体ではなくPanelのみを半透明にしたいのです。


429 :デフォルトの名無しさん:03/08/01 14:57
StringGridでセルがクリックされた時に色を付けたいのですが、
どうすれば出来ますか?

430 :デフォルトの名無しさん:03/08/01 15:05
SetLayeredWindowAttributesを使った方法では、
現状ではコントロールを半透明にするのは無理。

431 :デフォルトの名無しさん:03/08/01 15:11
Delphiの限界が垣間見えました

432 :デフォルトの名無しさん:03/08/01 15:31
>>429
http://www.google.co.jp/search?q=cache:bcxOjtnkf_kJ:www.users.gr.jp/ml/archive/delphi/38532.asp+StringGrid+Drawcell+Brush&hl=ja&lr=lang_ja&ie=UTF-8

433 :デフォルトの名無しさん:03/08/01 15:34
半透明にしたタイトルバーなしフォームをフォームに貼り付けろ

434 :_:03/08/01 15:36
http://homepage.mac.com/hiroyuki44/

435 :410:03/08/01 15:37
>getメソッドのパラメーターって何?

server側の?A=A&B=...という感じのパラメタです。

>パースに失敗するってどの様に?

server側のRequestInfo->Params->Textが空になります。

で、HTTPEncodeすると、何とか動作するようになりました。
HTTPEncode時に、「=」もエンコードすべきなのか、対象外にするのか、仕様はどうなんでしょ...
ググルとかでは、「=」はそのまま見えてますが、HTTPEncodeすると「%3」になりますね。

436 :410:03/08/01 16:44
分かりました。
「&」なんかは、特殊な意味があるので、ASCIIではないのに、特別にエンコードしないことが許されてるみたいですね。

で、次に分からないのですが、IdHTTPServerで関係無いHTTPパスを指定された場合、「204 - No Content」エラーとすべきか、処理せずに次のアプリケーションサーバに制御を渡す(出来なさそう)のか...

437 :デフォルトの名無しさん:03/08/01 18:19
クイックレポートをDelphi7に入れたいのですが、どこかに落ちていませんか?

438 :デフォルトの名無しさん:03/08/01 18:21
巨乳美女、女子校生のモロ見え画像満載!!
無料画像で観れるよ
アクセスして損はなし!!
http://www.cappuchinko.com/


439 :デフォルトの名無しさん:03/08/01 19:03
Win32MajorVersionやWin32MinorVersionといった変数があるなら、HELPに載せておいてよ。
Professionalなら載っているかもしれないけどさ。
Personalだと、他にも使えるのにHELPに載っていない変数や関数があるのかな?

440 :デフォルトの名無しさん:03/08/01 19:14
作ったゲームを画面全体(タイトルの入ったバー?も無しで)に表示するにはどうすればいいですか?


441 :デフォルトの名無しさん:03/08/01 19:25
BorderStyle := bsNone;
BoundsRect := Rect(0, 0, Screen.Width, Screen.Height);

442 :デフォルトの名無しさん:03/08/01 20:08
>>441
どこに貼り付ければいいんですか?
自分なりに考えてやってみましたが、エラーが起きまくりです。

443 :デフォルトの名無しさん:03/08/01 20:12
Drag and Drop について質問

TListBox や TTreeView, TListView 等のコンテナの中にアイテムがあるような
コントロールのアイテムをドラッグした時にそのドラッグしているアイテムを
確定する方法で悩んでいます。例えば、TTreeView のアイテムをドラッグすると、
DragOver が発生しますがパラメータに入ってくる Source は常にその
コンテナコントロールで、アイテム自体ではないようです

じゃぁ、Selected を見ればいいんじゃないか?と、思いましたが複数選択した場合
どうしたものか…う〜ん、みなさんはどうやってますか?

あと、DropTarget なるプロパティがありますが、これはドラッグアンドドロップ
操作が終了した時点で設定されるものですか?

444 :デフォルトの名無しさん:03/08/01 20:27
複数選択されてたって、ListBoxのSelectedはインデックスで項目ごとの選択状態調べられるし、
ListViewはListItemの、TreeViewはTreeNodeのSelectedを調べればいいだろ。

445 :デフォルトの名無しさん:03/08/01 21:09

質問したいことあるんですが、ここで解答している人って乱暴な言葉使いしかできないんですか?
それとも、ここは隔離スレですか?

446 :デフォルトの名無しさん:03/08/01 21:11
気にする奴は質問すんなハゲ

447 :デフォルトの名無しさん:03/08/01 21:11
夏まっさかり

448 :デフォルトの名無しさん:03/08/01 21:16
ナイーブなお子ちゃまがいらっしゃるようでつな。

449 :443:03/08/01 21:21
要はドラッグしているアイテムを特定する方法に Selected 以外に
ありますか?あるとしたら、どの様な方法でしょう?

あと、ドラッグアンドドロップのロジックを組んだことある人は、
やはり Selected を見て、ドラッグアイテムを特定していますか?

上記、2点の方法でそれぞれメリット、デメリットとか「こんな不具合があり得る」
みたいな事教えて頂けるとありがたいです

450 :デフォルトの名無しさん:03/08/01 21:50
Selectedを見てる。それ以外は知らない。

451 :デフォルトの名無しさん:03/08/01 22:27
コンボボックスの質問です。
知ってる人いたら原因教えてください。

TInputComboBox = class(TComboBox)
private
{ Private 宣言 }
protected
{ Protected 宣言 }
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
public
{ Public 宣言 }
published
{ Published 宣言 }
end;

procedure TInputComboBox.WMSetFocus(var Message: TWMSetFocus);
begin
showmessage('setfocus');
end;

こんな継承クラスを作ってフォームに貼り付けたとします。
tabでフォーカスを移していった時にはダイアログが出ますがクリックした時に出ないのは
当たり前ですか?フォーカス移ってるんだから出てほし〜なと思うのですけども。

452 :デフォルトの名無しさん:03/08/01 22:38
>>451
WM_SETFOCUS のヘルプ読んでみ?
キーボードって書いてあるが

> WM_SETFOCUSメッセージは、 ウィンドウがキーボード フォーカスを受け取った後に送られます。

453 :デフォルトの名無しさん:03/08/01 22:42
スタイルによるけど、コンボボックスは中にエディット持ってるから、
クリックしたときはそっちに直接フォーカスが移ってるんだろ。

例えばcsDropDownListとかにすれば、エディット持たないから
クリックでもメッセージが出る。

454 :451:03/08/01 22:54
452さん、453さん ありがとです。

ちょっとテストをしてみました。
同じようなものをTEditで作成して検証です。
マウスクリックの場合でもTEditベースだとダイアログが出ました。
(そしてフォーカスの奪いあいで止まらなくなる)
WM_SETFOCUSはフォーカスが移ればメッセージは投げられているっぽいです。
ごめんなさい>452さん

453さん説で内部的にどうなってるのか確かめてみます。
ヒントありがとでした。

455 :デフォルトの名無しさん:03/08/01 22:56
>>437
http://www.qusoft.com/
http://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200306_03060019.html

456 :デフォルトの名無しさん:03/08/02 00:00
質問なのですが、
別のアプリケーションのボタンをクリックしたいのですが、
どのようにすればよいでしょうか。

457 :デフォルトの名無しさん:03/08/02 00:01
>>442
どんなエラーが出たか書いてみよう

458 :デフォルトの名無しさん:03/08/02 00:06
>>442
アプリケーションの新規作成でなにもないフォームにボタン一個置いて、
そこのクリックイベントに>>441の2行書き、
実行して、ボタンクリックしたら
>>440の思惑通りになりませんか?

459 :デフォルトの名無しさん:03/08/02 00:06
>>456
mouse_eventとか
SendMessage(ボタンのハンドル, BM_CLICK, 0, 0);

460 :デフォルトの名無しさん:03/08/02 00:09
>>456
「他のアプリケーションのハンドルを得る方法」は分かりますか?
それさえ分かれば後はなんなりと。

461 :デフォルトの名無しさん:03/08/02 00:13
>>460
ウィンドウクラス名か、ウィンドウのタイトルでFindWindowする。
ウィンドウクラス名は、Spy++とかで調べられる。


462 :460:03/08/02 00:16
>>461
えっと…。オレに教えてくれても…(藁

463 :456:03/08/02 00:21
>>460
電卓を開いて、ソレを最小化
というのは下記サンプルが見つかったのですが、
それの中にあるボタンなどを特定がわからないです

var
hCalc: HWND; {ハンドル}
begin
hCalc:=FindWindow(nil,'電卓'); {電卓のハンドルを取得}
SendMessage(hCalc,WM_SYSCOMMAND,SC_MINIMIZE,0); {最小化}
end;

>>459
さんでいうところの、「ボタンのハンドル」を知る方法が分からない状態です

>>461
spy++というのが、ボタンのハンドル取得方法ということでしょうか?

464 :456:03/08/02 00:29
すみません
>>463
でのサンプルページに、ボタンのハンドル取得のサンプルもまんま表示されていました。
大変失礼いたしました。アドバイス、ありがとうございました
(456書いてたときは、FindWindowすら知らなかったです)

465 :デフォルトの名無しさん:03/08/02 00:29
>>463
勝手に人のアプリを自動制御されたら困る。君は困ることにならんか?

自分で作ったアプリを自分で制御するならどうにでもなるだろ。

466 :デフォルトの名無しさん:03/08/02 00:31
子のハンドルを探す。

467 :456:03/08/02 00:44
>>465
えーと、具体的にしたい作業は
「あるソフトのエディタ欄に文字を入力」
「登録ボタン」クリック
「次の文字を入力」「登録」・・・
という手作業を自動化できるかなと思いまして。


468 :デフォルトの名無しさん:03/08/02 01:00
>>467
Windows3.1には標準でそういうツールが付いてきたんだけどな。(単なるマウスKBの記録再生だけど)
スクリなんとかっていうソフトもあったけど、もう出ていないみたいだな。
参考になりそうなAPI
FindWindow() mouse_event() keybd_event() IsWindowEnabled() IsWindow()
GetActiveWindow() GetWindowText() GetGUIThreadInfo() SendInput()


469 :山崎 渉:03/08/02 02:03
(^^)

470 :デフォルトの名無しさん:03/08/02 02:31
>>467
http://www.vector.co.jp/soft/win95/util/se109671.html

こういうソフトのほうがいいでない?

471 :デフォルトの名無しさん:03/08/02 04:47
>>470
ロケットマウスか?
と、思ったら違った…。

472 :デフォルトの名無しさん:03/08/02 11:13
えーっと、質問です。
NKF32.DLLを使って文字コード変換するときに、
はじめの文字が英語だったらうまく変換できないとかは、
どうしたらうまくいくようになるのでしょうか?

473 :デフォルトの名無しさん:03/08/02 11:35
>>472
それは nkf32.dll の問題ではないかな?

474 :デフォルトの名無しさん:03/08/02 11:40
ま、くだすれだし。

nkf32 の NkfConvert の第一引数に S とか E とかを指定して、入力ファイルのエンコーディングを
明示指定してあげれば良いかと。

ところで、nkf DLL と、その Pascal インターフェースソースは複数の人が作っているんだけど
それぞれ誰のを使っているの?

475 :472:03/08/02 12:22
えっと、こんな感じでやってます。

SetNkfOption('-s');
Memo.Text:=NkfConvert(Memo.Text);

うーん、誰のでしょう??

476 :デフォルトの名無しさん:03/08/02 13:20
知るかよ

477 :デフォルトの名無しさん:03/08/02 15:11
この帽子、ドイツんだ??

478 :440:03/08/02 15:30
>>458
出来ました。ありがとうございます。
ボタン無しでゲーム起動から終了まで、表示することは出来ませんか?

479 :デフォルトの名無しさん:03/08/02 16:18
オブジェクトインスペクタにBorderStyle欄があろうに。

つーか、ボタンがイヤならFormCreateに書けよ。

480 :デフォルトの名無しさん:03/08/02 16:55
>>478
おまえは、聞く前に調べろ

481 :デフォルトの名無しさん:03/08/02 17:07
解答者の質悪ッ

人間的に駄目な奴ばっかり(藁

482 :デフォルトの名無しさん:03/08/02 17:08
( ´,_ゝ`)プッ

483 :440:03/08/02 17:39
>>479
オブジェクトインスペクタのBorderStyleは分かるのですが、

BoundsRect := Rect(0, 0, Screen.Width, Screen.Height);

の部分が分かりません。FormCreateも良く分かりません。

484 :デフォルトの名無しさん:03/08/02 17:56
modとdivって何の略?

485 :デフォルトの名無しさん:03/08/02 18:06
moduloとdivisionだと思う

486 :デフォルトの名無しさん:03/08/02 18:12
【徹底的】プログラマーが語るviとemacs 4【バトル】
http://pc.2ch.net/test/read.cgi/prog/1059814696/

487 :デフォルトの名無しさん:03/08/02 18:19
>>483
分からない単語は検索するなりして分かるように努力すれば?

488 :440:03/08/02 18:25
もうわかったから。役立たず君。

489 :デフォルトの名無しさん:03/08/02 19:04
http://www.jttk.zaq.ne.jp/akiroom846/

490 :デフォルトの名無しさん:03/08/02 21:28
TWebBrowserってGIFの特許問題に引っかかったりするの?

491 :デフォルトの名無しさん:03/08/02 22:34
>>490
MicrosoftはIEコンポーネントを使うならば問題無いと言っていた。
Unisisはコンポーネントを組み込んだアプリ毎に使用料を払えと言っていた。
どっちにしろもうじき特許の有効期限が切れるからキニスンナ

492 :デフォルトの名無しさん:03/08/02 23:04
Unisys はドキュソって事でFA

493 :デフォルトの名無しさん:03/08/03 00:00
TProgressBar の中に反転色で文字列を描画したいのですが、
どうしたら一番スマートでしょうか?
文字列には、例えば作業進行度などを「〜%」のような形で
表示したいと考えています。

494 :デフォルトの名無しさん:03/08/03 01:09
>>493
TProgressBarにTLabelを乗せれば良いだけかと。
Label1:=TLabel.Create(ProgressBar1);
Label1.parent:=ProgressBar1;
TLabel.Transparent:=true;
TProgressBarを継承してSetPosition辺りをoverrrideしてパーセンテージと
進行度が常に一致するようコンポーネントを作ると良いのではないかと思われる。

495 :デフォルトの名無しさん:03/08/03 01:14
それだけでは反転色にはならないだろう。

496 :デフォルトの名無しさん:03/08/03 02:27
WM_PAINTで描画するというベタな方法が   …ベター

497 :デフォルトの名無しさん:03/08/03 02:29
てゆうか、sampleタブにズバリのコンポーネントが、、、

498 :デフォルトの名無しさん:03/08/03 02:34
漏れのしゃれが寒さを増した

499 :デフォルトの名無しさん:03/08/03 10:12
>>498
(ノ∀`)アチャー

500 :デフォルトの名無しさん:03/08/03 11:16
質問なのですが、
TMemoコンポーネトで、最初の行にカーソルを移動することはできますか?

501 :デフォルトの名無しさん:03/08/03 11:47
できますよ。

502 :デフォルトの名無しさん:03/08/03 12:32
ありがとうございました


503 :デフォルトの名無しさん:03/08/03 13:44
Memo1.SelStart := 0;

504 :デフォルトの名無しさん:03/08/03 13:52
ありがとうございました

505 :デフォルトの名無しさん:03/08/03 14:40
ありがとうございました

506 :472:03/08/03 15:09
ありがとうございました

















                                ぬるぽ

507 :デフォルトの名無しさん:03/08/03 16:23
世界が平和になりますように

508 :493:03/08/03 20:49
レスありがとうございます。
書き方が悪かったようで申し訳ないのですが、
表示するのは作業進行度とは限らず、
とにかく文字列を表示したいので、
TGauge を使う方法は利用できませんでした。

WM_PAINT を使う方法も考えましたが、
なんだかDelphiらしくない気もしています。

509 :デフォルトの名無しさん:03/08/03 21:06
GroupBoxとRadioButtonの合わさったコンポーネントってありませんか?
GroupBoxのキャプションの隣にRadioButtonがある、みたいな。

510 :デフォルトの名無しさん:03/08/03 21:13
*やさしい*スレッドって、どうなったのですか?終わった?

511 :デフォルトの名無しさん:03/08/03 21:23
>>510
そうそう、おれも気になってた。

512 :デフォルトの名無しさん:03/08/03 21:40
>>510
過激派によって消された。

513 :デフォルトの名無しさん:03/08/03 21:53
>>510
夏だし。


514 :デフォルトの名無しさん:03/08/03 22:27
質問です。
Button系のコンポーネントを利用して、ボタンが押されている状態を取得する方法がわかりません。
具体的な処理は以下のとおり。
マウスダウンにより、ボタンが押されるとタイマーを起動し、一定間隔で処理を行います。
そのマウスが離されるとタイマーをストップします。
ただし、マウスボタンが押されている状態で、カーソルがボタンから離れるとタイマーをストップ。
その状態で、カーソルがボタンに入るとタイマーを起動。
要するに、ボタンの浮き沈みと同じく、タイマーを制御したいのです。
できればフォーカスを受け取らないTSpeedButtonか、TToolBarのTToolButtonを利用したいです。
このような処理を行うにはどうすればよろしいのでしょうか?
よろしくおながいします。


515 :デフォルトの名無しさん:03/08/03 22:29
こういうことが出来るかどうかもわからないんだけど、
他人の作ったDLLを、自分のEXEに取り込んじゃって、
単一ファイルで配布したい。

理由は、インストーラなしである以上、ファイル構成を単純化したいから。

何とかなるかい?

516 :デフォルトの名無しさん:03/08/03 22:34
>>514
Windowsはその状態を教えてくれない。
よってDownプロパティは望み通りには動作しないため、
自前でマウスメッセージを処理すること。

517 :デフォルトの名無しさん:03/08/03 22:52
>>515
なんとかなるよ。

518 :begin 名無し; end;:03/08/03 23:27
質問させて下さい
ブラウザ機能を用いて指定ページを表示完了したら次のページを開く
と言ったようなものを作りたいと思っています。

自分で考えたことは、WebBrowser1.Busyを用いて、状態を判断して見ようと思ったのですが
無限ループ状態になり、処理が進んでいません。
読み込み処理を実行しつつ、完了するのを待つにはどうしたらいいんでしょうか。
↓現在この状況

begin
 for i1:=0 to i2 do
 begin
  Edit1.Text := 'http://www.xxx.yy.zz/';

  while WebBrowser1.Busy = True do
  begin
   (ここに何か入れるべき…?)
   end;
 end;
end;

519 :デフォルトの名無しさん:03/08/03 23:35
>>514
MouseDown
MouseUp
MouseEnter
MouseLeave
で出来る

520 : :03/08/03 23:59
ドキューンメソト コソプリート イベソト ジャ ダメナノカイ?

521 :デフォルトの名無しさん:03/08/04 00:04
>>520オマエ、ドコカラカキコシテルンダ?(ワライ

522 :begin 名無し; end;:03/08/04 00:17
その場合は、iをグローバル変数にして、イベント発生でiを+1して
次のを実行…ってのを繰り返しという手順ですよね
少しやってみます。

サンクスーコ

523 :デフォルトの名無しさん:03/08/04 00:17
すぐバグだとか騒ぐのもなんですが、
Breakプロパティでメニューを二列に表示すると、
二列目に使っている”-”の横線描画がバグっちゃってるみたいなんだけど、
回避できないですか?

524 :デフォルトの名無しさん:03/08/04 00:47
>>522
グローバル変数なんか使うよりイテレータとか使う方が良いと思うけど。

525 :デフォルトの名無しさん:03/08/04 01:11
>>516 >>519
ありがとうございます。
MouseEnterでやることにします。


526 :523:03/08/04 01:21
イメージリストも指定した場合の描画です。
二列目以降のセパレーターが一列目までかぶって描画されます。

527 :begin 名無し; end;:03/08/04 01:37
>>524
イテレータ…聞いたこと無かったので調べてみましたが
RubyことばかりでDelphiは見つからなかったです。
どういう事か何となくわかるような、わからないような…

この概念で考えたこと無いので実際どのように使うのかがちょっと
わかりません。
できたら簡単な具体的な使用例的な物を見せて欲しいのですが
よろしくお願いします

528 :_:03/08/04 01:42
http://homepage.mac.com/hiroyuki44/

529 :デフォルトの名無しさん:03/08/04 02:16
ありがとうございました

530 :デフォルトの名無しさん:03/08/04 04:15
デザパタの本を買え

531 :デフォルトの名無しさん:03/08/04 04:30
>>527
関数抜けないとbusyが解除されないと思われ
イテレータは関係ない

532 :デフォルトの名無しさん:03/08/04 18:13
Delphiスレで聞く内容ではない気がしますが、開発ソフトがDelphiなので、
ここで質問させて下さい。

売る値段によって、機能の数や動作が変わってくるようなソフトを作る場合、
1.全てのソースをそれぞれのバージョン毎に分ける
2.同じ動きや似たような機能のソースは共有して、大幅に違う所はソースを分ける
3.全てフラグなどで切り分け、ソースは全て共有する
4.その他

のどれが良いですか?
とりあえずバージョンは二つだけなのですが、後々バージョンが増えるかも
しれませんし、バージョン毎に必要な機能も現時点では決定していません。
もしかしてDelphiだとそのような管理をする機能が付いていたりしますか?

533 :デフォルトの名無しさん:03/08/04 18:15
☆★最新アダルト情報★yahoo検索エンジンからのプレゼント!!☆★
http://endou.kir.jp/marimo/link.html

534 :_:03/08/04 18:15
http://homepage.mac.com/hiroyuki44/2ch.html

535 :デフォルトの名無しさん:03/08/04 18:15
4.その他

536 :デフォルトの名無しさん:03/08/04 18:34
>>532
取らぬ狸の皮算用っていうかなんというか

537 :532:03/08/04 18:39
>>536
ようするに仕様がコロコロ変わるんでつ(T^T)

538 :デフォルトの名無しさん:03/08/04 18:47
継承をつかえ。

539 :532:03/08/04 19:43
なるほど、仕様が変わるたびに継承で対応するわけですね。

540 :デフォルトの名無しさん:03/08/04 19:45
>>532
好きなようにやってくれ

541 :532:03/08/04 19:50
冗談ですよ。つまらない奴ですね。

542 :532:03/08/04 20:50
うっせークズ共。とっとと、答えろや!

543 :デフォルトの名無しさん:03/08/04 21:05
PCJapan:2003年8月号 - 特集4:Windowsカスタマイズツールを作ろう

PCJの多くのユーザーが何らかのカスタマイズツールを使ったことがあるだろう。
そうしたツールを使っていて,「この機能がほしい」,「このインターフェイスを変え
たい」などと感じたことはないだろうか。カスタマイズツールを自分でプログラミン
グできれば,本当に欲しい機能を備えたツールが得られる。この特集では,付録
CD-ROMに収録したプログラミングツールを使って,オリジナルのカスタマイズツ
ールを作るテクニックを紹介する

Part1 簡単にプログラムを作れるDelphiをマスターしよう
Part2 プロが教えるカスタマイズツール作成テクニック

http://www.zdnet.co.jp/magazine/pcjapan/0308/sp4/


544 :デフォルトの名無しさん:03/08/04 21:06
>>543
簡単じゃねーやい!

545 :デフォルトの名無しさん:03/08/04 21:08
>>543
Part2は嫁ないの?

546 :デフォルトの名無しさん:03/08/04 21:09
>>545
Coming soon.

547 :デフォルトの名無しさん:03/08/04 21:11
※Part2は,現在発売中のPCJapan 2003年8月号の誌面でご覧いただけます
(バックナンバーのオンライン購入はこちらから)
http://store.sbpnet.jp/bm_browsing.asp?page=0&browsing%5Ftype=&product%5Ftype%5Fid=40&product%5Fsubject%5Fid=%7B31B6F187%2D72B3%2D4943%2DB34A%2DC32EF8DC6CD1%7D

548 :デフォルトの名無しさん:03/08/04 21:31
そうだ!簡単じゃないぞ!
ユーザーからはあれ付けてくれこれ付けてくれって言われるし、
新OSには対応させなきゃならないし。

もちろん自分で使うってなら別だが。

549 :デフォルトの名無しさん:03/08/04 21:39
>>543
気づくの遅せーな

550 :デフォルトの名無しさん:03/08/04 22:45
これからも>>549みたいな夏厨が押し寄せてきそうな予感

551 :デフォルトの名無しさん:03/08/04 22:51
ネトランとPCJapanどっちが厨読者多いだろうか。

552 :デフォルトの名無しさん:03/08/04 23:08
NASAのシステムよりも窓の手がDel製と
いった方がよほど説得力があると思うのだが…

553 :デフォルトの名無しさん:03/08/04 23:13
窓の手など一般人からみればしょぼいヲタツール
おまいらからみたハッキングツールと同じような目でみられてるので
マイナスイメージしかつかねーよ


554 :デフォルトの名無しさん :03/08/04 23:13
WINDOWS をBASICでつくることはできますか?

555 :デフォルトの名無しさん:03/08/04 23:14
WINDOWSという名のソフトはBASICでも作れますが?

556 :デフォルトの名無しさん:03/08/04 23:16
そうなんですか? どんな感じになりますか?

557 :デフォルトの名無しさん:03/08/04 23:27
BASICになります

558 :デフォルトの名無しさん:03/08/04 23:41
    ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、 


559 :デフォルトの名無しさん:03/08/05 00:37
DLLを実行ファイルのフォルダの中に作成したサブフォルダに入れ、
なおかつ external で静的にロードすることは可能でしょうか?

[Hoge]
  ├ hoge.exe
  └ [DLL]
     ├ huge.dll
     └ func.dll

可能であれば、具体的にはどう記述すればよいでしょうか?
external 'DLL\huge.dll' を試してみましたが、アクセス違反が起こりました。

560 :デフォルトの名無しさん:03/08/05 00:41
DLL のフルパスで、path に加えても?

561 :デフォルトの名無しさん:03/08/05 00:55
>>560
path といいますと、環境変数の事でしょうか?
環境変数は弄らないようにしたいのですが…
もし弄らないと出来ないのでしたら、素直に諦めます。

562 :デフォルトの名無しさん:03/08/05 01:30
>>561
なんでやねん

563 :デフォルトの名無しさん:03/08/05 02:05
コンポーネントスレってこの板にある?

564 :デフォルトの名無しさん:03/08/05 02:18
【大量・便利】Delphiコンポーネント【再利用】
http://pc2.2ch.net/test/read.cgi/tech/1051802300/

565 :デフォルトの名無しさん:03/08/05 06:47
>>559 あたり

procedure foo; external 'test\bar.dll';

でできたけど?(Windows 2K)Windows ローダーが DLL を見つけられない場合は
「hoge.exe - DLL が見つかりません」って表示するはず。

「アクセス違反」ということは、DLL はロードできているということで
原因は別にあるのではないかな?

566 :デフォルトの名無しさん:03/08/05 09:47
現在フォームに表示をしている、レコード1件のみをQuickReportで
プレビュー及び印刷をしたいのですが、どの様にすれば宜しいのでしょうか?
Delphi6上で、TTableを使ってDBを構築しております。

恐れ入りますが、諸先輩方の知恵をお貸し頂けますでしょうか。
それではよろしくお願いいたします。

567 :デフォルトの名無しさん:03/08/05 10:11
>>566
コード書かずに済ませたいなら...

1件だけなら DB 系 QReport コンポーネントを使わないで処理するってのは?
TTable の変わりに TQuery で、ひとつのレコードだけ表示するってのは?
TTable の Filter を設定して、ひとつのレコードだけ表示するってのは?


568 :デフォルトの名無しさん:03/08/05 11:19
TNMFTPのインストールの仕方を教えて下さい。
当方Delphi7 Professionalです。
宜しくお願いします。

569 :566:03/08/05 11:34
>>567
さっそくのレス、ありがとうございます。
現在構築済みの物に追加して、1件のみの印刷をしたいと考えております。

TTableとTQueryを並行に運用出来るのか私には分からないですが
3番目のFilter設定は使った事がありますので、カレントレコードに限定する
手法が分かれば、私の稚拙な力でも出来そうです。

この点で質問なのですが、実行中の画面上ではDBの抽出(Filter)が
行われた事に気付かせずに、この手の作業は可能なのでしょうか?


570 :559:03/08/05 12:27
>>565
(´Д`;)
どうやら、原因は別の所にありそうです…。
現在DLLをロードするDLLを作ってるのですが、
それは関係ないですよね…。

[hogehoge]
    ├ hoge.exe (huge.dll をロードする実行ファイル)
    └ [DLL]
       ├ huge.dll (現在作成中のDLL)
       └ [huge]
          └ func.dll (利用したいDLL)

procedure foo; external 'DLL\huge\func.dll';

571 :デフォルトの名無しさん:03/08/05 15:52
CDデータベースにCDプレイヤー機能をつけて、CDドライブに入っているCDの情報を表示させたいと思っています。
いろいろ調べて、GetVolumeInformationの、SerialNumberを使えばいいのかと思いましたが、
たまたま持っていた二枚の同じCDで試してみるとSerialNumberが異なりました。
こんなときに使える関数、方法、サイトなど教えてください。お願いします。

572 :571:03/08/05 16:04
すみませんちょっと変な文章でした・・・。
質問は、「音楽CDのタイトルを判別する方法を教えてください」です。
Delphi6Personal使ってます。よろしくお願いします。

573 :デフォルトの名無しさん:03/08/05 16:35
Delphiでビートマニアみたいなものって作れますか?

574 :デフォルトの名無しさん:03/08/05 16:52
SerialNumberとそのCDデータベースで実現できます

575 :571:03/08/05 17:18
レスありがとうございます。
しかし、私が持っていた二枚の同じタイトルのCDは、異なるSerialNumberを持っていました。
同じタイトルの音楽CDに共通のID番号の様なものがあればうれしいんですが・・。

576 :デフォルトの名無しさん:03/08/05 18:38
>>573
作れますよ。コナミさん

577 :デフォルトの名無しさん:03/08/05 20:49
だろうね

578 :5777:03/08/05 20:50
誤爆

579 :デフォルトの名無しさん:03/08/06 00:46
TListViewに重複項目を出さないようにするにはどうすればいいですか?

procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
var
i:integer;
begin
for i:=ListView1.Items.Count-1 downto 0 do
if ListView1.Items[i]=ListView1.Items[i+1] then
ListView1.Items[i+1].Delete;
end;

ソートしてやってみてもダメだったぽ(´・ω・`)
できればSubItemの重複でできるようにお願いします。

580 :ダサダサコーディングで良ければ:03/08/06 00:51
一旦、TStringlistに全部移してソートして戻す。
はい次↓

581 :デフォルトの名無しさん:03/08/06 00:54
>>580
( ´・∀・`)やってみます

582 :580:03/08/06 01:02
よーく読見返してみたけど、>>580はダメだな(藁
忘れてくれ。
1行なら問題無いと思うが。
ダサイけど(藁

583 :多分こんな感じで出来ると思います。:03/08/06 01:36
>>579
function MatchListItem(L1, L2: TListItem): Boolean;
var
  I: Integer;
begin
  Result:=false;
  if L1.SubItems.Count<>L2.SubItems.Count then Exit;
  if not(SameText(L1.Caption, L2.Caption)) then Exit;
  Result:=true;
  for I:=0 to L1.SubItems.Count-1 do
  begin
    if not(SameText(L1.SubItems.Strings[I], L2.SubItems.Strings[I])) then
    begin
      Result:=false;
      Break;
    end;
  end;
end;

584 :デフォルトの名無しさん:03/08/06 01:36
続き
procedure TForm1.Button1Click(Sender: TObject);
var
  I, n: Integer;
begin
  I:=0;
  while I<ListView1.Items.Count do
  begin
    n:=I+1;
    while n<ListView1.Items.Count do
    begin
      if MatchListItem(ListView1.Items.Item[I], ListView1.Items.Item[n]) then
      begin
        ListView1.Items.Delete(n);
        Dec(n);
        Dec(I);
      end;
      Inc(n);
    end;
    Inc(I);
  end;
end;

585 :デフォルトの名無しさん:03/08/06 02:41
>>570
まずはバグの切り分け。
DLL 名にパス名を付けない状態で正しく動くことを確認するのが先でしょう。
次に、path 環境変数に置き先ディレクトリを追加した状態でテスト。これで各 DLL が
異なるディレクトリにあっても動くかどうかを検証。
最後に external 指定にサブディレクトリを追加。

こんな順番でがんばって

586 :デフォルトの名無しさん:03/08/06 04:18
>>571
CDDBみたいに、MSFアドレス、トラック数、各トラックアドレスなどから
CDを判別するのはどう?

587 :デフォルトの名無しさん:03/08/06 04:39
var
Memo : array[1..100] of TMemo;
i : integer;
begin
for i := 1 to 100 do
Memo[i] : =T Memo.Create(Memo[i]);

これをやるとデフォルトプロバティが無いというエラーで怒られますが
どうにか簡単に作る方法は無いでしょうか?

588 :デフォルトの名無しさん:03/08/06 04:50
Memo[i] はこれから作るところなんだから
>Memo[i] : =TMemo.Create(nil);
はエラーになるでしょ?

>Memo[i] : =TMemo.Create(nil);
または Memo.Create(self);
かな?



589 :デフォルトの名無しさん:03/08/06 05:04
>>588
レスありがとうございます
試してみたところ同じエラーがでてできませんでした
エラー文を正確に書くと
>このクラスはデフォルトプロパティを持っていません
です

590 :571:03/08/06 05:34
>>585レスありがとうございます。
CDDBでもそのように判別しているということは、タイトルごとに共通なIDは存在しないようですね。
取得しやすい情報を組み合わせてやってみようと思います。
ありがとうございました。

591 :571:03/08/06 05:35
>>586さんでした・・・。
ありがとうございました。

592 :デフォルトの名無しさん:03/08/06 07:02
初心者小僧です。

Indyコンポーネントの使い方とか、Indyコンポーネントのチップス(これを行うには
このコンポーネントのこのメソッドを利用するみたいな)とかを紹介している
良いWebサイトをあれば教えてもらえないでしょうか?

593 :デフォルトの名無しさん:03/08/06 08:59
>>579
なぜにOnChange?

Captionでソートしてあれば
for i := ListView1.Items.Count-1 downto 1 do
 if ListView1.Items[i].Caption = ListView1.Items[i-1].Caption then
  ListView1.Items[i].Delete;

SubItemsでやるならCaptionをSubItemsに変えればよろし。
SubItemsでソートしてから動かせよ。

594 :デフォルトの名無しさん:03/08/06 11:47
>>583-584 >>593
(`・ω・´)ゞ

595 :デフォルトの名無しさん:03/08/06 12:40
ファイラーみたいなの作る時、みんなコンポーネント何使っているの?
SamplesのShellListViewコンポーネントとか使うとFD見に行って、
ガコガコ鳴って五月蝿いんだけど…(;´Д`)

596 :デフォルトの名無しさん:03/08/06 12:50
>>595
TListBoxをOwnerDraw。

597 :デフォルトの名無しさん:03/08/06 13:23
俺はListviewをオーナードローとオーナーデータ。

598 :デフォルトの名無しさん:03/08/06 13:42
ORTUS SHELL COMPONENTSを使ってる
自分専用だしね
ttp://www.ortus-software.com

599 :ななしへたぐらま ◆XcB18Bks.Y :03/08/06 14:28
>>587
メモコンポを100個動的に作るということですが
まさか100個同時には画面表示できないでしょうし….

もしかしたら2ちゃんねる専用ブラウザのように
複数のテキストを切り替えて表示したいのかもしれませんが,

こういう場合は各テキストの保管はとりあえず文字列変数のの配列か何かにして,
そしてテキストを表示するためのコンポ(コントロール)は1個だけにして,
アクティブなテキストを切り替えるたびに内容をコピーするのがよいと思います.



600 :デフォルトの名無しさん:03/08/06 14:55
>>592
日本語ヘルプ
http://www.borland.co.jp/delphi/del7docup.html
Monazilla.org(w>資料室(メンテナンス中)
http://members.jcom.home.ne.jp/monazilla/document/index.html

601 :デフォルトの名無しさん:03/08/06 15:29
Altキーの入力を無効にするにはどうしたらいいんでしょうか。

602 :595:03/08/06 16:48
やっぱ、自前の人もいるのですな…
すばらし〜コンポーネントがどっかでフリーでソースつきで無いかなぁ…。

603 :デフォルトの名無しさん:03/08/06 17:09
>>602
これは?
http://www.turbopower.com/products/shellshock/

フリーでソースつき

604 :595:03/08/06 17:39
>603
おーおー!
そういえば以前MLでもTurboPower社の話が出てましたな!
元が商用だけに期待できますな!!( ̄▽ ̄)

605 :デフォルトの名無しさん:03/08/06 18:15
「会社閉めるからsourceforgeに譲るよ」みたいなことが書いてあるな。
webサイトみただけじゃファイルがどこにあるか分かりづらいので
ttp://sourceforge.net/project/showfiles.php?group_id=71005&release_id=137049

606 :デフォルトの名無しさん:03/08/06 18:30
>>600
ダウンロードします、ありがとうございました。

607 :デフォルトの名無しさん:03/08/06 21:46
さっさと>>601の質問に答えろボンクラどもが

608 :デフォルトの名無しさん:03/08/06 21:58
リポジトリへ登録しまくっていたプロジェクトを
フォルダー毎コピーして、新しいプロジェクトを作成して修正していました。

そして、フォーム上のListViewから1項目削除しようとすると、

別のフォームから継承されたコンポーネントを含んでいるため削除できません。

とエラーが出て削除できないのですが、プロジェクト内を検索してみても
継承されたコンポーネントなんてありません、何処かに前のプロジェクトの
リポジトリ情報でも記録されているのでしょうか??

609 :デフォルトの名無しさん:03/08/06 22:07
>>607
もうちょっと具体的に言わないと。
「これこれこういう機能を無効にしたいのでこのコンポーネントでALTキーを無効に出来ませんか?」みたいな

610 :デフォルトの名無しさん:03/08/06 23:09
>>609
Alt+F4を無効にしたいのです。
ジョークソフトを作っているので。

ちなみにAlt+Ctrl+Delの無効化はSystemParametersInfoでできました

611 :デフォルトの名無しさん:03/08/06 23:25
Alt+F4に別の機能を割り当てる

612 :デフォルトの名無しさん:03/08/07 01:24
>>610
http://www.google.co.jp/search?q=cache:FPXsX5I81D8J:www.melma.com/mag/49/m00001349/a00000067.html+Alt%E3%80%80F4%E3%80%80%E7%84%A1%E5%8A%B9%E3%80%80delphi&hl=ja&ie=UTF-8

613 :デフォルトの名無しさん:03/08/07 01:47
三つ簡単な質問あります。

shelltreeviewとfilelistboxのリンクの仕方

shelltreeview、filelistboxで選択したディレクトリの場所とファイル名の取得

上にありましたがfilelistboxのMaskを"複数"にしたい場合

超初心者ですんません・・

614 :デフォルトの名無しさん:03/08/07 02:10
delphiで作ったアプリケーションで
別のプログラム(たとえばword)を動かせるのですか?

実行ボタンを単純に一個作って、ボタンを押すとword.exeを起動(その後テキストを貼り付け、保存終了をする予定)。

秀丸マクロではなく、delphiで作りたいのですが・・・

615 :デフォルトの名無しさん:03/08/07 02:44
>>613
ShellListViewなら ShellTreeViewのShellListViewに設定するだけなんだけど。

616 :デフォルトの名無しさん:03/08/07 02:57
>>614
出来ます。頑張って調べてくださいね。

617 :デフォルトの名無しさん:03/08/07 07:09
>>611-612
ありがとう!

618 :デフォルトの名無しさん:03/08/07 12:42
JoyPadからの入力を受けるのにjoyGetPos,joyGetDevCapsなどを
使えばいいということは分かったんですが、
引数がよく分かりません。

引数はどのようにすればよいのでしょうか?

619 :デフォルトの名無しさん:03/08/07 12:44
DirectInput使いなよ。

620 :デフォルトの名無しさん:03/08/07 13:00
DelphiでTCP/IP通信をモニターするプログラムを作りたいのですが、
ポートを設定せずに通信をモニターするにはAPIとか使わないと駄目ですか?

621 :613:03/08/07 14:15
>>615
ありがとうございます!
これを大きいアイコンではなくて一覧リスト表示したいのですが・・
あと、ディレクトリの場所とファイル名の取得はどうしたらよいでしょうか?


622 :613:03/08/07 14:24
>>621
621を訂正します・・

ドライブコンボボックス,ファイルリストボックス,
およびディレクトリリストボックスでのディレクトリの場所とファイル名の取得はどうしたらよいでしょうか?
それぞれのドライブ、ディレクトリ、ファイル名をeditに出力したいのですが・・

623 :デフォルトの名無しさん:03/08/07 16:01
FormのParentFontって、何を親にしてるの?
効いてない気がするんだけど。

624 :デフォルトの名無しさん:03/08/07 16:20
Parentがnilなら意味ないよ。
FormにForm埋め込むと効いてくる。

625 :デフォルトの名無しさん:03/08/07 22:42
効いたよー効いたんだよー

626 :デフォルトの名無しさん:03/08/07 23:17
>>621
ViewStyleをいじる
ってこの質問却下かよ・・・


627 :パソナラー ◆Tp0RXFvi3E :03/08/07 23:50
>>618
丹念に検索すれば必ずサンプルが見つかるハズだよ。
オレも昔、探したし。
ヒント:
「JOYSTICKID1」、「TJOYINFO」、「TJOYCAPS」

628 :デフォルトの名無しさん:03/08/08 01:25
うまく説明出来ないんですが
なにかのソフトでよくショートカットキーの割り当てをするとき
例えばキーボードのCtrl + S を押せばCtrl + S が表示されるってのがありますよね
あれをdelphiでやりたいんですがそういうコンポとかありますか?

629 :デフォルトの名無しさん:03/08/08 01:26
case文の中にRandom関数を入れると
初期化されない場合があると言われて困っています。
どうしたらいいのでしょうか?

簡略化してますがこんな感じです。
a := 1;
Randomize;
case a of
1: b := Random(100)+1;
end;
ShowMessage(IntToStr(b))


630 :デフォルトの名無しさん:03/08/08 01:31
a := 1;
b := 1;
Randomize;
case a of
1: b := Random(100)+1;
end;
ShowMessage(IntToStr(b));

でええんでないの?

631 :デフォルトの名無しさん:03/08/08 01:41
>>630
なるほど、たったそれだけのことだったんですか。
ありがとうございました。

>>628
こういうこと?
http://www.borland.co.jp/qanda/delphi/d0002346.html

632 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/08/08 02:12
>>628
THotKeyを使うってことではないでしょうか?

633 :デフォルトの名無しさん:03/08/08 09:08
なんでアイツ助けた!

634 :633:03/08/08 09:10
ごめん、誤爆した。↑

635 :デフォルトの名無しさん:03/08/08 09:12
>>631,>>632
ありがとうございました

636 :デフォルトの名無しさん:03/08/08 09:38
StatusBar1のPanels[0]のTextの2バイト文字の先頭1文字を消したいのですが
↓のでは消えてくれません。どこがわるいのでしょうか?

Bar := StatusBar1.Panels[0].Text;
Delete (Bar,2,2);

637 :デフォルトの名無しさん:03/08/08 09:53
>>636 頭。

638 :デフォルトの名無しさん:03/08/08 10:36
>>636
var
  S: String;
  L: Integer;
begin
  S:=StatusBar1.Panels[0].Text;
  if 0<Length(S) then
  begin
    L:=1+Ord(IsDBCSLeadByte(Byte(S[1])));
    Delete(S, 1, L);
    StatusBar1.Panels[0].Text:=S;
  end;
end;

639 :デフォルトの名無しさん:03/08/08 11:04
DelphiでHORBは使えますか?

640 :デフォルトの名無しさん:03/08/08 12:16
コードエディタのしおりは保存できないの?

641 :デフォルトの名無しさん:03/08/08 12:27
タイトルバーのクリックを検知する方法おしえて下さい。
よろしくおねがいします。



642 :デフォルトの名無しさん:03/08/08 12:31
http://esenden.com/rank/network/ranklink.cgi?id=mercury

643 :デフォルトの名無しさん:03/08/08 12:53
TTreeNodeをVisable:=Falseみたいに存在してるんだけど
見えない。ってじょうたいに出来ますか?
ノードが折りたたまれて見えないのとはまた別の意味で。

644 :デフォルトの名無しさん:03/08/08 14:15
123456789を123,456,789みたいにしたいけどできないぽ(´・ω・`)
var
ListItem: TListItem;

ListItem:=Items.Add;
ListItem.Caption:=SearchRec.Name;
ListItem.SubItems.Add(Format('%10.0n', [(SearchRec.Size + $3ff) shr 10]));
ListItem.SubItems.Add(DateTimeToStr(FileDateToDateTime(SearchRec.Time)));

これでやると(%n使うと)エラー吐いて死んでくれます。
どうすればよろしですか?

645 :デフォルトの名無しさん:03/08/08 14:23
>>644
ヘルプの%nの説明に、引数は浮動小数点値でなくてはならないって書いてる。

646 :デフォルトの名無しさん:03/08/08 14:32
ShellListViewで、カラムをクリックしたときにファイルサイズや日付でソートするには
どうしたら良いのでしょうか?
いろいろ見てみたのですが解りませんでした…(汗)。

647 :デフォルトの名無しさん:03/08/08 15:00
Formに乗っている全てのコントロールを強制的に
再描画させるにはどうしたら良いでしょうか?

648 :デフォルトの名無しさん:03/08/08 15:58
Form.Refresh;

649 :ななしへたぐらま ◆XcB18Bks.Y :03/08/08 16:24
>>636
× Delete(Bar, 2, 2)
○ Delete(Bar, 1, 2)

文字列の先頭が2バイト文字でその1文字を削除する場合は
先頭の2バイト(1バイト目から2バイト分)を削除しなければいけないのですから,
Delete(Bar, 1, 2) が正解となります.
文字列の先頭が2バイト文字とは限らない場合は
>>638のように1バイト文字なら1バイト,2バイト文字なら2バイトを削除するようにするか,
あるいはワイド文字列を使います.

var
ws: WideString;
begin
ws := StatusBar1.Panels[0]; // ワイド文字列に変換して代入されます
Delete(ws, 1, 1); // ワイド文字列版のDelete手続き
StatusBar1.Panels[0] := ws; // 通常の文字列に変換して代入されます
end;


650 :デフォルトの名無しさん:03/08/08 17:37
Office2000 professional、Delphi6 personalを持っています。
データベースを作るとして

1)前者で作ると、ACCESSの入ってない環境では使えない。
2)Delphiで作ると自立した?アプリケーションが作れるので、多くの環境で
  使えるが、personal版ではDBは作れない。

という理解でよろしいのでしょうか?

651 :デフォルトの名無しさん:03/08/08 17:39
>>645
とりあえずエラーは吐かなくなったので試行錯誤してみます

652 :644:03/08/08 17:40
>>645
ぁ、できました。どうもありがとうございました

653 :デフォルトの名無しさん:03/08/08 18:05
WebBrowserコンポーネントを使ってタブブラウザを
つくっていますが、キャッシュを使用しない更新は
var
i: integer;
Level: OleVariant;
begin
if (MDIChildCount > 0) then
begin
with MainForm do
for i := MDIChildCount-1 downto 0 do
if TIEWindow(MDIChildren[i]).WebBrowser1.Document <> nil then
begin
TIEWindow(MDIChildren[i]).WebBrowser1.Refresh2(Level);
end;
end;
end;
でいいのでしょうか。教えてください。お願いします。

654 :653:03/08/08 19:44
>>653
自己レスですが、それであってるようでした。
ありがとうございました。

655 :デフォルトの名無しさん:03/08/08 20:45
宣言したのにまったく使ってない変数はやっぱりアセンブルされたときに
余分なコードとしてEXEに組み込まれてるの?

それとも最適化の段階でカットされてるのかな?

656 :デフォルトの名無しさん:03/08/08 20:52
Windowsキーを無効にしたいんですが、どうやればいいのでしょうか。
キーボードを壊すとかは勘弁して。

657 :デフォルトの名無しさん:03/08/08 20:56
Delphi6 Personalで簡単なメーラーを作りたいのですが、
Personalだと無理でしょうか?

658 :デフォルトの名無しさん:03/08/08 21:07
>>657
Delphi6 + Indyコンポーネントでできると思う

659 :デフォルトの名無しさん:03/08/08 21:14
>>656
APIスレで聞いたほうがいいとおもう

660 :657:03/08/08 21:17
>>658
ありがとうございます。
調べてがんばってみます。

661 :デフォルトの名無しさん:03/08/08 21:19
>1)前者で作ると、ACCESSの入ってない環境では使えない。
おおむねその通りだと思います。

>2)Delphiで作ると自立した?アプリケーションが作れるので、多くの環境で
>  使えるが、personal版ではDBは作れない。
前者はあってますが、後者はそうでもありません。
Windowsにはデータベースエンジンの「ADO」という一種のActiveXが
組み込まれていて(古いOSには入ってませんが)、DelphiからADOを
コントロールすれば、Accessを持っていない環境でもAccessファイルを
操作することが出来ます。ただしPersonalではめんどうです。

以前書いたので参考にしてください(92から。98はわたしです)
http://pc3.2ch.net/tech/kako/1028/10284/1028436692.html

662 :デフォルトの名無しさん:03/08/08 21:23
>>656
無効にしたい処理の前に下記のコードを記述。

ShowMessage('Windowsキーを押さないでね!v(^○^)v')

663 :デフォルトの名無しさん:03/08/08 21:25
ひろみに会いたい人、ひろみが欲しい人、手ぇあげてっ!
はーい、その指をマウスにもってってぇ・・・
ここをclick! ☆ъ( ゜ー^)> http://www.gals-cafe.tv
1週間毎日10分、がんばってサービスしますっ!来てください♪
・・・えっ?誰も手ぇあげてなかったってハナシ?
そんなんナシだよぉ〜〜〜。・°°・(>_<)・°°・。
会いたいよぉ。きてくださぁい( ・O・)∞∞OOO○○○☆(〃。。〃)

664 :デフォルトの名無しさん:03/08/08 21:25
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v
v(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)vv(^○^)v

665 :デフォルトの名無しさん:03/08/08 23:11

Button1を押すと「フォームを50%に縮小して表示」
このプロシージャ、どんなふうに書けばいいんでしょ

666 :デフォルトの名無しさん:03/08/08 23:25
procedure TForm1.Button1Click(Sender: TObject);
begin
height := height div 2;
width := width div 2;
end;

667 :デフォルトの名無しさん:03/08/08 23:27
スレ違いかも知れませんが
【】すみつきカッコの文字コード分かる方いらっしゃいます?


668 :デフォルトの名無しさん:03/08/08 23:33
>>667
$4511 $4512

669 :650:03/08/08 23:34
>661
有難うございます。
教えて頂いたスレのレス、保存させて頂きました。
少しずつ、勉強していきたいと思います。

670 :デフォルトの名無しさん:03/08/08 23:35
>>661
OS means Windowsかよ。おめでてぇ。

671 :デフォルトの名無しさん:03/08/08 23:38
>>668
ありがとうございました。


672 :デフォルトの名無しさん:03/08/08 23:38
>>670
Delphiスレで何言ってんの(^-^*)♪

673 :無料動画直リン:03/08/08 23:38
http://homepage.mac.com/miku24/

674 :デフォルトの名無しさん:03/08/08 23:39
>>671
素直にSJISの文字コード表見た方が良いと思うぞ。

675 :665:03/08/08 23:43
>>666
_| ̄|○
まったくもって申し訳ないです
書き方が悪かったようで。

縮小したいのはフォームそれ自体ではなく、中身なのでした。
こんな書き方も変かな。
1000Pの文字とか(んな無茶な)、普通に表示したらはみ出すようなものを、
おさめてくれるような。

ExcelVBAでいうところの
ActiveWindow.Zoom = 50
みたいな

676 :デフォルトの名無しさん:03/08/08 23:49
>>674
スンマセン。他の括弧は見つかったんですが【】は見つからなくて・・・
見直してきます

677 :A:03/08/09 01:10
>>675
地道に全部のサイズを手動で制御するしかないんじゃないかな…?

それか、どっか別の場所の架空のフォームを作って、そこに書かせて
それをサイズを縮小してコピーとか…
イベントとかを座標修正して転送してやる必要がありそうだけど。

678 :デフォルトの名無しさん:03/08/09 01:24
Timerコンポーネントがよく分からないんですけど
Timer1.Enabled := False ;
とするまでIntervalで指定した間隔で実行し続ける
ということではないのでしょうか?

679 :デフォルトの名無しさん:03/08/09 01:26
それで合ってます

680 :デフォルトの名無しさん:03/08/09 01:27
>>679
そうですかありがとうございました。
では違うところが間違っていたのか・・・。

681 :デフォルトの名無しさん:03/08/09 01:30
Intervalで指定した間隔でタイマーイベントを繰り返す

682 :デフォルトの名無しさん:03/08/09 13:38
>>675
有償コンポがあるくらいだから標準では無理。

683 :613:03/08/09 15:06
procedure TForm1.FileListBox2DblClick(Sender: TObject);
begin
FileListBox2.FileEdit:=Edit19;
end;
list内ファイルをダブルクリックをすればedit19に出力するんですが、
list内のファイルを選択する一回目はダブルクリックでいけるのですが、
二回目からはワンクリックでedit19に出力してしまいます・・
二回目以降もダブルクリックで出力できるようにするには?
教えてください・・

684 :デフォルトの名無しさん:03/08/09 15:41
使い方間違ってます。

685 :デフォルトの名無しさん:03/08/09 17:35
最小化とかは普通に出来ても最大化やサイズ変更が出来ない
フォームを作るにはどうすればいいのですかね?
BorderStyleとかいじってもうまくいきません。

686 :デフォルトの名無しさん:03/08/09 17:51
BorderStyleがbsSingleで、BorderIconsのbiMaximizeをFalse。

687 :デフォルトの名無しさん:03/08/09 18:54
shift_jis 2バイト文字コードから、直接文字を表示するにはどうすればいいんでしょうか?
WideCharにすると、文字コードがずれるし分かりません。

688 :デフォルトの名無しさん:03/08/09 19:55
>>686
できました。thx

689 :デフォルトの名無しさん:03/08/09 21:50
ボタンの上とかにマウスを載せるとポップアップヒント(?)が出るのはどうやってるんですか?

690 :デフォルトの名無しさん:03/08/09 21:55
>>689
ボタンのプロパティ Hint

691 :デフォルトの名無しさん:03/08/10 00:07
ListViewで項目を選択する際
一個目は問題ないんですがその後他の項目を選択しようとすると
OnSelectItemでエラーが出てとまってしまいます。
どうにかなりませんか?

692 : :03/08/10 00:13
>>691
該当するコーディングをチェックし直す。

693 :デフォルトの名無しさん:03/08/10 00:16
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
begin
Edit2.Text:=ListView1.Selected.Caption;
Edit3.Text:=ListView1.Selected.SubItems[2];
end;
2個目を選択しようとした時↑の
Edit2.Text:=ListView1.Selected.Caption;
に引っかかってる・・・。
何が問題なのかわかんない・・。漏れの頭?

694 :デフォルトの名無しさん:03/08/10 00:18
if Key = 'a' then
begin
ShowMessage('a');
end;

押すkeyがaではなくspaceで反応してほしいのですが
そう言う場合はどう改変したらよいのでしょうか?

695 : :03/08/10 00:18
SubItems[2];の「2」って何を示してるつもりダス?
あと、エラーで困ってる場合は、そのエラー文も書くと(略)

696 :691:03/08/10 00:34
>>695
SubItemの3つ目です。vsReportでのListViewの左から4つ目の項目。
コメントアウトしてみてもやはり2回目でエラーでした。
デバッガ例外が発生-----
プロジェクトが EAccessVilotationクラスの例外を生成しました。
'Access violation at address 004769CE in module 'Project1.exe'. Read of address 00000024'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。
  [OK] [ヘルプ(H)]
------

697 :デフォルトの名無しさん:03/08/10 00:35
>>690 ども

698 :デフォルトの名無しさん:03/08/10 00:42
>>696
if Selected then
begin
Edit2.Text:=ListView1.Selected.Caption;
Edit3.Text:=ListView1.Selected.SubItems[2];
end;

699 :デフォルトの名無しさん:03/08/10 00:47
>>698
(TT)ありがとうございました。無事選択できるようになりました。


700 :デフォルトの名無しさん:03/08/10 00:57
>>694
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=' ' then ShowMessage( ' ' );
end;

こういう意味?

701 :デフォルトの名無しさん:03/08/10 01:12
>>700
すいません、スペースバーを押すことによって反応して欲しいということです。

702 :デフォルトの名無しさん:03/08/10 01:14
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
 if Key = VK_SPACE then begin
 ShowMessage('a');
end;


703 :702:03/08/10 01:16
ぁ、すまん。イベント違うな
参考までに
リターンキー VK_RETURN
スペースキー VK_SPACE
エスケープキー VK__ESCAPE
SHIFTキー VK_SHIFT
CTRLキー VK_CTRL
ALTキー VK_ALT
F1 〜 F12 VK_F1 〜 VK_F12
BSキー VK_BACKSPACE
カーソルキー VK_LEFT , VK_UP , VK_RIGHT , VK_DOWN


704 :デフォルトの名無しさん:03/08/10 01:17
>>700
もう一度すいません。
key=' ' でもスペースに反応してくれるんですね。
ありがとうございました。

>>702
ありがとうございました。

もう一つ質問なんですけどこれをCtrl+なにかのキーで
反応するようにするにはどうしたらいいのでしょうか?

705 :デフォルトの名無しさん:03/08/10 01:18
>>703
ifを二重にしたらCtrl+なにかもできそうですね。
ありがとうございました。

706 :デフォルトの名無しさん:03/08/10 01:22
>>705
KeyDownのShiftを使えれ。

707 :665=675:03/08/10 02:13
>>677
>>682
お手数おかけしました
ほぼ10時間、頭かきむしりながら別フォームで試そうとしましたけど
体力の限界です。
今回のところは投げ出します。
もちょっと腕上げてから出直してきます。

708 :デフォルトの名無しさん:03/08/10 05:30
ステータスバーに時間が減って行ってるのが視覚的に分かるような
コンポーネントをいれたいのですがちょうど良いコンポーネントはありませんか?
プログレスバーだと増えているようなイメージがあるので・・・・。

709 :デフォルトの名無しさん:03/08/10 14:16
>時間が減って行ってる
のを逆手にとれば、プログレスバーでいいじゃん

710 :デフォルトの名無しさん:03/08/10 20:55
>>707
Anchorsを全部外してみては?
違うかな?

711 :デフォルトの名無しさん:03/08/10 21:34
>>708
Windowsでは数値が減るのは殆どが数字で表現されているよ。
プログレスとかゲージとか使うんなら、経過時間(増える)とかにすれ。
プログレスバーで満タンから減らしていくっていうのはダメダメ(奇抜)ね。

712 :デフォルトの名無しさん:03/08/10 21:36
あ、ビジネス系じゃなくてゲームなら許容されるかもね。

713 :デフォルトの名無しさん:03/08/10 21:48
TComboBoxって複数bytes文字に対応してないの?
BSが1bytes毎なんだけど。

714 :デフォルトの名無しさん:03/08/10 22:08
TListViewのOwnerDrawについて詳しく説明されてるHPないですか?

715 :デフォルトの名無しさん:03/08/10 22:38
>>713
AutoCompleteがTrueになってない?

716 :デフォルトの名無しさん:03/08/10 23:28
質問なのですが、
TRichEditコンポーネトで、最初の行にカーソルを移動することができたら、
その方法を教えていただけませんか?
>>503をみて、TMemoコンポーネントなら
できるようになったのですが、同じ方法では
対応できていないようなので、よろしくお願いします。

717 :パソナラー ◆Tp0RXFvi3E :03/08/11 00:11
>>716
検索が足りないと思うよ。

リッチエディットの最後の行:=richedit1.Lines.Count;
RichEdit1.SelStart := RichEdit1.Perform(EM_LINEINDEX,リッチエディットの最後の行,0);
RichEdit1.Perform(EM_SCROLLCARET,0,0);

フォーカスが当たらないとダメっぽいから注意。

718 :714:03/08/11 00:21
TlistView OwnerDraw
ListView OwnerDraw
Delphi Ownerdraw
リストビュー OwnerDraw
TListView オーナードロー
Delphi オーナードロー
こんだけググっても見つからないなんて(;´Д`)
他にイイ(・A・)検索単語ありますか?

719 :デフォルトの名無しさん:03/08/11 00:26
>>718
(´-`)。o ○ (オーナードローの何が知りたいのか書かないから、レスが付かないと思われ…)

720 :デフォルトの名無しさん:03/08/11 00:46
Editに入力されている文字が1バイト文字かどうか判断したいのですがよい方法はないでしょうか?
入力できるのを1バイト文字に固定せずif文等での判断でいいのですが。
よろしくお願いします。

721 :デフォルトの名無しさん:03/08/11 01:02
ByteType

722 :440:03/08/11 01:09
Formの拡大に合わせてボタンが拡大されるようにするにはどうすればいいんですか?

723 :デフォルトの名無しさん:03/08/11 01:47
>>721
ありがとうございました。
しかし使い方がよく分からないので解説していただけないでしょうか?
ググってもよく分からなかったもので。

724 :デフォルトの名無しさん:03/08/11 02:17
>>723
Delphiに付いているヘルプは見ましたか?

725 :デフォルトの名無しさん:03/08/11 02:20
>>722
Anchorsを全部trueにしたり色々してみて研究してください

726 :ミ,,゚Д゚ミ⊃ ◆A6VzDeLphI :03/08/11 02:23
>>723
http://www.wwlnk.com/boheme/delphi/tips/tec0710.htm

727 :ななしへたぐらま ◆XcB18Bks.Y :03/08/11 02:28
>>687
Shift-JISコードに対応する文字を出したいということでしょうか.

{
Shift-JISコードを文字に変換します.
}
function SjisToStr(const SJisCode: word): string;
begin
SetLength(Result, 2);
Result[1] := chr(SJisCode shr 8);
Result[2] := chr(SJisCode and $ff);
end;

{
Edit1.TextにシフトJISコード
Edit2.Textにそれに対応する文字
}
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := SjisToStr(StrToInt('$' + Edit1.Text));
end;


728 :687:03/08/11 03:06
>>727
ようやく分かりました。
脳みそ無限ループに入っていたので、大感謝!

729 :デフォルトの名無しさん:03/08/11 04:18
>>723
「これはどうするのだろう?分からない」
↓質問
「レスは来たけど、やりかたが分からない」
↓質問


ループを続ける気ですか?ヒントもらったんだから、徹底的にいろいろ
実験してからでも遅くは無いと思うが…。

730 :デフォルトの名無しさん:03/08/11 04:48
>>723
bytetype(Edit1.Text[i])で戻り値が
mbTrailByte //全角2バイト目
mbLeadByte //全角1バイト目
mbSingleByte //半角

731 :723:03/08/11 05:48
わかりました。
ありがとうございました。

732 :デフォルトの名無しさん:03/08/11 12:34
delphiでIRCクライアントの作成はできますか?
ただ会話さえできれば良い程度で、ファイルの受け渡しや
@配布とかモード変更とかも無し程度の機能です

733 :デフォルトの名無しさん:03/08/11 13:25
>>732
RFC 1459
TClientSocket

734 :デフォルトの名無しさん:03/08/11 13:38
>>725
それだと大きくなり過ぎるんですよ。
Formと同じくらいの倍率で拡大することはできないのでしょうか?


735 :デフォルトの名無しさん:03/08/11 13:53
どこかの海外のコンポーネントで、
ボタン状で、押下するとメニューが出る、
っていうやつがあったと思うんだけど、
どこのサイトだっけ…?

736 :デフォルトの名無しさん:03/08/11 14:39
すいませんVB厨です。
Delphiを使うことになって勉強しるのですが、わからないことがあるので、
教えていただけないでしょうか。

Form1からForm2を開きたいのですが、Form2を同時に何個も開き、
同じ処理をさせたいと思っています。
(例えば、Form1でjpgファイルを選択すると、次々に
Form2が開き、それぞれ異なる画像が表示されるような・・・・)

例えばVBですと、
Dim objForm(10) as Object   'オブジェクト型で配列を作成
Set objForm(i) = New Form2  'オブジェクトのコピー
objForm(1).Show         '1.jpgが選択されフォーム表示
objForm(2).Show         '2.jpgが選択されフォーム表示
のようにすると、Form2を何回も再利用できますよね。
このとき、2.jpgを選択すると1.jpgのフォームは残しておきたいのと、
例えば画像をクリックしたときに何らかの動作ができるようイベント
も取得したいと思っています。
Delphiでは、どのようにすれば実現できるのでしょうか。
過去スレで似たようなのがありましたが、いまいちピンとこないので、質問
させていただきました。
まったくわからないので途方にくれています。よろしくお願いいたします。

737 :デフォルトの名無しさん:03/08/11 15:40
>>736
Delphiでは、作成したフォームが、既にクラスになってます。
Var
F1:TMyForm;
F2:TMyForm;
Begin
F1 = TMyForm.Create(self);
F1.Show;
F2 = TMyForm.Create(self);
F2.Show;

です。配列にしたきゃ、TObjectかTFormの配列に代入して下さい。

738 :デフォルトの名無しさん:03/08/11 15:58
>>736
なぜ最初に「すいません」と謝るのか。
「VB厨ですいません」と謝っているのか。
だとしたらそれは間違い。
外人に対して「日本人ですいません」と言ってるようなもの。
言語の壁は、ベルリンの壁より厚いが、生垣より低いはず。

739 :デフォルトの名無しさん:03/08/11 16:19
>>737
お、ありがとうございます。
なるほど!なんか、そのように聞いて目の前のモヤがなくなった気がします。
少しだけオブジェクト指向の考え方に近づいたような気がします。

ちと長くなりますが、後進の方のために記述しておきます。

普通に新しくForm2を作ります。
Form1のinterfaceのusesの部分にUnit2を追加し、
arrForm2 :array[0..10]of TForm2;と変数を宣言し、
あとはarrForm2[0] := TForm2.Create(Self);で無事に
つくることができました。
はじめは何故かTFormでオブジェクトを造っていたので、
TForm2に設置したエディットボックスをいじることができず、
悩んでしまいましたw


わざわざありがとうございました。
また疑問があったらよろしくお願いします。

>>738
なんか申し訳ないかな?と思いまして。
どもすいません


740 :デフォルトの名無しさん:03/08/11 16:59
>>738
なんか偉そうだな

741 :デフォルトの名無しさん:03/08/11 17:13
>>734
じゃあ、なぜ先にそう書かない
質問スレで小出しすんなボケが

742 :734:03/08/11 17:52
>>741
すいません。

743 :デフォルトの名無しさん:03/08/11 18:21
unit A の interface 部で宣言した定数 CONST_A1 を、unit B で使うためには、
unit B で uses A をするだけではだめなのでしょうか?

"未定義の識別子" となってしまいます。

同じような形で宣言した型 typeA1 は使えるようなのですが。

744 :デフォルトの名無しさん:03/08/11 18:51
>>740
なんかエロそうだな

745 :デフォルトの名無しさん:03/08/11 21:01
>743
いや、それで使えるはずだよ。スペルミスとかじゃないの?

746 :デフォルトの名無しさん:03/08/11 21:44
hogehoge : byte;

このhogehogeの
上位4ビット(age)と下位4ビット(sage)に分けたいのですが、
どうしたらいいですか?
delphiの最小単位がbyteかな?どうすれば。。。


747 :デフォルトの名無しさん:03/08/11 21:46
shl and and

748 :デフォルトの名無しさん:03/08/11 22:00
hogehoge&0xF0
hogehoge&0x0F

749 :746:03/08/11 22:13
>>747さん >>748さん ありがとう。
簡単に解決しました。



750 :デフォルトの名無しさん:03/08/11 22:18
MainMenuやPopupMenuの背景色を変える方法ありませんかー?

751 :デフォルトの名無しさん:03/08/11 22:31
オナドロー

752 :デフォルトの名無しさん :03/08/11 22:35
>>750
オナニードロドロ

753 :750:03/08/11 23:03
>751
TMenuBar経由だと出来ないっぽい…

754 :デフォルトの名無しさん:03/08/11 23:13
ScrollBoxにImage1を置いて、マウスドラッグでスクロールさせるには
どんな風にコーディングすればいいのでしょうか?

755 :デフォルトの名無しさん:03/08/11 23:42
>>754
つまんで移動する感じ?
MouseDownとMouseMoveとMouseUpを使用する。
MouseDownでフラグをON
MouseMoveかつフラグONのときに移動
MouseUpでフラグOFF

756 :デフォルトの名無しさん:03/08/11 23:48
>>755
「スクロールさせる」の部分が分からないんじゃないの?

757 :デフォルトの名無しさん:03/08/11 23:59
>>754
var
DragPos : TPoint; DragDown : boolean;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
DragDown := true; DragPos.X := X; DragPos.Y := Y;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
MovePos : TPoint;
begin
if DragDown then
begin
with ScrollBox1 do
begin
if HorzScrollBar.Position > HorzScrollBar.Range then HorzScrollBar.Position := HorzScrollBar.Range;
if HorzScrollBar.Position < 0 then HorzScrollBar.Position := 0;
if VertScrollBar.Position > VertScrollBar.Range then VertScrollBar.Position := VertScrollBar.Range;
if VertScrollBar.Position < 0 then VertScrollBar.Position := 0;
HorzScrollBar.Position := HorzScrollBar.Position - (X - StartDragPos.X);
VertScrollBar.Position := VertScrollBar.Position - (Y - StartDragPos.y);
end;
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
DragDown := false;
end;


758 :754:03/08/12 09:39
>757
うまくいきましたです。ありがとうございます。
ソースの方は、
 ・使用されていないMovePosの削除
 ・宣言されてないStartDragPosをDragPosに変更
しましたが、それで正しいですよね?

759 :デフォルトの名無しさん:03/08/12 13:53
>>719
根本から分かってない、というのが適切です。その上やりたいことがいっぱいあるんで。もうだめぽ
OwnerDrawでTListViewに項目を描画することすらできない・・・
vsReportでのCaptionは何とか追加できたんですがSubItemが描画できません
そこで、お願いがあります。
Button1をクリックするとListView1(vsReport)にOwnerDrawで
|A |B |C
|D |E |F
と描画する方法を教えてください。どのイベントで何を発生させればいいのかすら分かりません。
それさえできれば試行錯誤で他のもできるようになると思いますんで。

760 :デフォルトの名無しさん:03/08/12 15:50
>>759
何がわかっていないのかわかってるならそこから調べればいいだろ?
根本からわかってないならそもそもOwnerDrawが何なのか調べろ

761 :デフォルトの名無しさん:03/08/12 15:52
Delphiに未来はあるんでつか?

762 :デフォルトの名無しさん:03/08/12 16:19
Delphiにあったとてお前には無い

763 :デフォルトの名無しさん:03/08/12 16:44
Streamとかって、LoadFromStream/SaveToStream出来ますが、
2つのStreamを1つに繋げるには、どう書けばよいですか?

764 :デフォルトの名無しさん:03/08/12 17:23
var src1, src2, dest: TStream;
dest.CopyFrom(src1, 0);
dest.CopyFrom(src2, 0);

765 :デフォルトの名無しさん:03/08/12 17:35
有難うございました>>764
0だと全部読んでくれるんですね。

766 :! 759:03/08/12 18:59
>>760文句言うなら最初から答えるなよ。知障、スレタイ読めヴォケ

767 :デフォルトの名無しさん:03/08/12 19:13
IndyのIdHttpServerって例外が消されるんですか?
エラーが知りたい場合どうすんでしょ。
エラーメッセージだけでも欲しい。

768 :デフォルトの名無しさん:03/08/12 19:48
>>766
文句じゃなくてアドバイスだろ
超初心てのは何がわからないのかもわかってない香具師
何がわからないかわかっているのに調べないのはただの馬鹿

769 :デフォルトの名無しさん:03/08/12 20:06
>>759
Demosディレクトリの下にOwnerlstってサンプルがあるから見てみたら?
リストビューじゃなくてリストボックスだけど、基本は同じ。

770 :デフォルトの名無しさん:03/08/12 20:38
質問する方でPC JapanのDelphiの記事を見て始めた方は一言書いてください。
特典があります。

771 :デフォルトの名無しさん:03/08/12 20:41
>>770
メール覧の厨房撃退ってなんだ? 荒らすなボケ。

772 :デフォルトの名無しさん:03/08/12 21:06
ハァ? 寝ぼけてんのかこのヴぉけ失せろや

773 :デフォルトの名無しさん:03/08/12 21:11
お前が厨房丸出しだろ

774 :デフォルトの名無しさん:03/08/12 21:23
>>770
見て始めましたが何か?
どんな特典か楽しみですね。
あなたが真性厨房になる所が見られるのですか?

775 :デフォルトの名無しさん:03/08/12 21:25
必死だなwwwwwwwwwwwwwwwwwwwwww

776 :デフォルトの名無しさん:03/08/12 21:27
で、特典って何よ?

777 :デフォルトの名無しさん:03/08/12 21:28
厨房撃退は荒らしです。無視しましょう。

778 :デフォルトの名無しさん:03/08/12 21:28
荒れろ荒れろwwwwwwwwwwwwwwwwwwwwwwwww

779 :デフォルトの名無しさん:03/08/12 21:32
>>778
厨房うぜー。

780 :ななしへたぐらま ◆XcB18Bks.Y :03/08/12 22:42
>>759
各項目のCaptionの描画まではできているのですね.

リストビューコンポのオーナー描画機能は何度も拡張されたためにややこしくなっていますが,基本的にはOnDrawItemイベントのみを使うと考えてください.
(OwnerDrawプロパティをTrueにしないとこのイベントは発生しません)
このイベントは項目ごと発生します.項目の見出しやサブアイテムごとに描画イベントがあるわけではありません.イベントハンドラでは項目の見出しとそれに対応するサブアイテムの描画も同時に行います.

イベントハンドラには項目の見出しとサブアイテムの描画領域は渡されませんが,
・全体の領域(上下左右の端)→引数Rect
・各領域の上と下の端→引数Rectと同じ
・見出し領域(一番左の領域)の左端→引数Rectと同じ
・それぞれの幅→(Sender as TListView).Columns[(カラムのインデックス)].Width
これらから各領域が求められます.

なお選ばれている項目の強調表示やフォーカス(点線枠)の表示も自分で描画しなければなりません.イベントハンドラの引数Stateを参照して,選択されていたりフォーカスがあることがわかるように描画してください.


781 :ななしへたぐらま ◆XcB18Bks.Y :03/08/12 22:47
「…と考えてください」って言い切ってしまいましたが,全然違うじゃないか_| ̄|○
すいません.出直してきます(首つりAA略)



782 :デフォルトの名無しさん:03/08/12 23:50
すごい初歩的な質問なんですが・・

「'」を出力したいのですけど・・
C言語では「\」を前につければ出力できますが、パスカル言語では?

783 : :03/08/13 00:09
chr($27)

784 :デフォルトの名無しさん:03/08/13 00:18
ここはバカばっかりか!
糞でるふぁ〜い   ぷー


785 :デフォルトの名無しさん:03/08/13 00:34
>>784
Delphiユーザは、「糞して、死ね」が合言葉だからね。


786 :デフォルトの名無しさん:03/08/13 00:40
>>766 誰?
>>780-781 thx

787 :782:03/08/13 00:56
>>783
ありがとうございます!

788 :783:03/08/13 01:02
あれ。もっといい答えがあるのかと思った(^^;

789 :デフォルトの名無しさん:03/08/13 01:30
>>780
他のイベントは通常どおりでOnCustomDrawItem等のイベントを色々設定すればいいんですよね?

790 :ねこま:03/08/13 01:48
TListView の CustomDraw は2つの方法がありまして,1つは DrawItem プロパティを True して OnDrawItem イベントですべてを描く方法.
もう1つは DrawItem プロパティを False のまま OnCustomDrawItem, OnCustomDrawSubItemイベントで描く方法です.

後者では DefaultDraw 引数でキャプションやフォーカスの描画を任せるかどうかが決められます.
更に細かいステージが必要なら OnAdvancedCustomDraw, OnAdvancedCustomDrawSubItem イベントを使えとありますが,
これらはバグっていて cdPrePaint 以外が発生していません.


791 :デフォルトの名無しさん:03/08/13 02:27
>>782
''''
#39
#$27

792 :デフォルトの名無しさん:03/08/13 06:46
''''

793 :ななしへたぐらま ◆XcB18Bks.Y :03/08/13 13:30
>>790
助け船に感謝致します.

ところで後者の方法では項目の表示領域はどうやって取得するのでしょうか?
OnDrawItemイベントと違って表示領域を引数で渡してくれるわけではないようなので
試そうとして行き詰まってしまいました.

(というか数年前に同じ場所でつまづいたきりだったのを思い出しました…)

794 :デフォルトの名無しさん:03/08/13 14:40
Rect:=Item.DisplayRect(drBounds);

795 :デフォルトの名無しさん:03/08/13 17:59
質問する方でPC JapanのDelphiの記事を見て始めた方は一言書いてください。
特典があります。

796 :デフォルトの名無しさん:03/08/13 19:16
StringGrid の一カラムを非表示にして、隠しカラム的に使うようなことは
できないのでしょうか?


797 :デフォルトの名無しさん:03/08/13 19:23
>>796
ビューでデータ管理しようとする無かれ。


798 :796:03/08/13 19:37
>>797
なるほど。了解しました。

799 :デフォルトの名無しさん:03/08/13 20:18
>>796
やれるよ、なんも無いはずのグリッドに値書けるでしょ。

>>797
一説には、ケースバイケースでは?

800 :デフォルトの名無しさん:03/08/13 20:32
>一説には
憶測でしゃべんな

801 :デフォルトの名無しさん:03/08/13 20:38
さすがにお盆なのでVBプログラマ様もデスマーチから解放されたかな?

802 :796:03/08/13 20:45
>>799
なるほど。できますね。

RowCount, ColCount などは表示上の数ということですか。
実質、値をセットできる範囲の制限とはできるのでしょうか?

なんか気持ち悪いな……。

803 :デフォルトの名無しさん:03/08/13 21:12
MathのInRangeと同じような感じで、
PointがRect内か否かを返す関数ありませんか?

自作は簡単ですが、最適化された関数が
標準であれば、それを使いたいのですが、
ちょっとヘルプで見当たらなくて…。
(探し方が甘い?)

804 :デフォルトの名無しさん:03/08/13 21:17
>>803
PtInRect

http://www.google.co.jp/search?num=100&hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&q=Point+Rect+Contain+Delphi&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

805 :803:03/08/13 21:32
>804
わっはー
ビンゴです。うまく行きました。
元はAPIなんですな。

806 :デフォルトの名無しさん:03/08/13 21:33
>>801
関係ないスレで暴れるなよ。アンチVB厨。

807 :デフォルトの名無しさん:03/08/13 21:39
>>804
俺もちょうどこんな関数ほしかったところだ。タイミング(・∀・)イイ!!

808 :デフォルトの名無しさん:03/08/13 21:47
まともなOOPLならRectangleクラスのメソッド探せば
すぐ目的のメソッドが見つかるのにな。
Delphiって使いにくいね。

809 :デフォルトの名無しさん:03/08/13 21:49
>Rectangleクラスのメソッド探せば

そんなもんにまでクラス持ち出して・・・激しく重そうだな。

810 :デフォルトの名無しさん:03/08/13 21:50
>>808
まともなOOPLかどうかは関係ないだろ。
DelphiがまともなOOPLだとは思わないが
目的のメソッドが見つからないのは
Delphiが糞だからだ。

811 :デフォルトの名無しさん:03/08/13 22:01
>>810
関係あるだろ。Rectangleのメソッドは高々2・30個しかないから
Containsメソッドを探すのも容易。

それに対してPtInRectはフラットに並んだ数百数千のAPIから探し出す必要がある。
糞なのは手続き型言語全部だな。

812 :デフォルトの名無しさん:03/08/13 22:02
質問する方でPC JapanのDelphiの記事を見て始めた方は一言書いてください。
特典があります。


813 :デフォルトの名無しさん:03/08/13 22:18
>>809
いまや貧乏人の低スペック環境なんか見てないんだよ

814 :デフォルトの名無しさん:03/08/13 22:20
未だにDel厨はクラスが重いとかいってんのか?

815 :デフォルトの名無しさん:03/08/13 22:20
>>813
でもJavaはクライアントサイドじゃ使えないって結論に達してますよ。

816 :デフォルトの名無しさん:03/08/13 22:23
Java??
Del厨がかく乱作戦に出たようです。

817 :デフォルトの名無しさん:03/08/13 22:25
>>815
サーバサイドでは使えますが何か?
Delphiとは違ってなぁ。

818 :デフォルトの名無しさん:03/08/13 22:26
>>817
>Delphiとは違ってなぁ。
使えないんですか?絶対に?本当?

819 :デフォルトの名無しさん:03/08/13 22:27
Delphiはクラスにするととても重くなるのです。

820 :803:03/08/13 22:30
マターリしる!(・∀・)
ここは初心者向け質問・解答のスレっすよ!

バトルしたかったらそういうスレにGo!!

821 :デフォルトの名無しさん:03/08/13 22:31
なんでクラスが重いんだ?
馬鹿じゃねーの(w

822 :デフォルトの名無しさん:03/08/13 22:33
>>821
禿げ同。しかし>>809のような勘違いさんがいるのですよ。
Delphi使いの恥です。もう氏ねと。

823 :デフォルトの名無しさん:03/08/13 22:37
いやいや、Rectangleを数千個とか使うのなら、どうだろう?
RecordのRectと比べて、クラスの方が当然コストはかかるだろう

824 :デフォルトの名無しさん:03/08/13 22:38
お前ら無知だね。
DelphiでRectangleクラス作ったら重いだろ。
これはもう言語の構造的欠陥といってもいい。

825 :デフォルトの名無しさん:03/08/13 22:42
馬鹿大増殖(プヒュー

826 :デフォルトの名無しさん:03/08/13 22:52
ここはスタックとヒープの区別のつかないお馬鹿ちゃんが集うスレですか?

827 :デフォルトの名無しさん:03/08/13 22:56
listviewで数字のソートがうまくできないんですが・・・・
みなさん取り込み中?

828 :デフォルトの名無しさん:03/08/13 23:05
SortType

829 :デフォルトの名無しさん:03/08/13 23:09
>>827
ヘルプも読めないバカ登場

830 :デフォルトの名無しさん:03/08/13 23:14
>>828 知障?

831 :ななしへたぐらま ◆XcB18Bks.Y :03/08/13 23:54
>>794
ありがとうございます.Del5のTListItemのプロパティ一覧には出てこないので見落としていました….

>>796
昔やりましたが >>797 さんに賛成.
情報を表示・編集(操作)する場所と保管する場所はできる限り分離した方がよいです.Delphiのデータベースコンポはまさにその良い見本になっているのですが,Per版ユーザーに見る機会がないのはもったいない話.

>>802
RowCount/ColCountは実際の数を返すはず.

>>811
私の場合Win32日本語ヘルプ(例の古いやつ)でカテゴリ別で調べたのでそんなに苦労しませんでした.Win3.1時代に電話帳のようなAPIリファレンスを買ったものの全くといって良いほど使わなかった苦い経験が生きているのでしょうか.


832 :デフォルトの名無しさん:03/08/13 23:54
try〜finally文について質問です。
finally節は、エラーが起きても確実に実行したいコードを
書くところだと理解しているのですが、エラーが起きてないの
にtry節でExitを実行してfinally節を通過することを期待す
るようなコードの書き方は正しいのですか?
たとえば、

StringList:=TStringList.Create;
try

(処理1)

 if f = False then ←処理2を実行する必要がないときは抜ける
  Exit;←@

(処理2)

finally
 StringList.Free;←A
end;

@で抜けてもAが確実に実行されることはヘルプに書いて
あるのですが、エラーが起きてないのにfinally節へ飛ぶ
のを期待するのは作法としていいんでしょうか?

833 :デフォルトの名無しさん:03/08/13 23:56
もちろんいいよ

834 :デフォルトの名無しさん:03/08/13 23:58
>>832
そうじゃないとException型を引数としたキャッチと同じになってしまう。

835 :デフォルトの名無しさん:03/08/14 00:35
begin
 try
  exit;
 finally
  foo;
 end;
end;

begin try
 try
  raise ExitException.Create;
 finally
  foo;
 end;
except(e: ExitException) end; end;
とexitは例外で、最外周に暗黙のtry excpetがあると解釈しろとかいう説明が以前あったな。

836 :デフォルトの名無しさん:03/08/14 07:46
PC Japanを見てはじめました。

誰か解凍ソフトの作り方教えろ。

837 :デフォルトの名無しさん:03/08/14 07:48
DLLを作っていて文字列形の返し方が分かりません。
誰か教えてください

838 :デフォルトの名無しさん:03/08/14 07:49
>>836
http://forum.nifty.com/fdelphi/samples/01185.html

839 :デフォルトの名無しさん:03/08/14 07:55
>>837
dll作ったときに長々とコメントとして書いてあった気が。

840 :デフォルトの名無しさん:03/08/14 09:23
>839
あれはDelphiのString型としての話ではなかったっけ?
Cと互換の文字列ならまた話は違うかと。
…と、未経験者なので適当に語ってみた(;´Д`)

841 :デフォルトの名無しさん:03/08/14 11:47
Delphi.NETって、VB.NETやVC#.NETみたいにWindows APIを使用するときには
宣言は必要ですか? それとも不要?

842 :デフォルトの名無しさん:03/08/14 12:06
文字列のアドレス渡してもい、そこに文字列を入れておけばいいんじゃなくて?鉄郎

843 :デフォルトの名無しさん:03/08/14 12:16
デザパタのCommandパターンのDelphiでの実例を
分かりやすく解説してくれているページってありませんか?
UNDO機能を実装したいんです。

844 :デフォルトの名無しさん:03/08/14 12:42
×UNDO機能を実装したいんです。
○UNKO機能を実装したいんです。

845 :デフォルトの名無しさん:03/08/14 13:04
Undo;

846 :デフォルトの名無しさん:03/08/14 13:45
>>843
TObjectListにCommandオブジェクト彫り込んでいけば?

847 :デフォルトの名無しさん:03/08/14 13:59
命令すんな

848 :デフォルトの名無しさん:03/08/14 14:03
>>847
dcc32.exeよ、気持ちは分かるがそう怒るな。

849 :デフォルトの名無しさん:03/08/14 15:09
よろしくお願いします。Delphi7です。
再生/録音のピークメーターを実装したいのですが、
どこから始めればいいのかさっぱりです。
Webでも、そういう記述ないし・・・・。

サウンドカードにピークメーターが実装されている場合
には可能のようなんですが、実装されてない場合は、
どっからもってくればいいんでしょうか。
OS標準のマイクのテストなんか、あっさりと実現してい
るんですよね・・・・。
どなたか、お教え下さい。

850 :デフォルトの名無しさん:03/08/14 15:15
>>849
ピークメーターって何ですか?

mmsystem.hに関しては多少知識がありますが。

851 :デフォルトの名無しさん:03/08/14 15:17
>>850
最大音量制限では?

852 :デフォルトの名無しさん:03/08/14 15:19
>>851
ミキサーいじればOK?

853 :デフォルトの名無しさん:03/08/14 15:37
>>850
ありがとうございます。
要は、入力可能最大音量を100%として、現在、何%の
音量が入力されているかを知りたいのです。

例えばWave録音するときに、一定以下の音量の場合
は録音を停止したりできればいいなぁ・・・・と。
どなたかお知恵をお貸しください。

854 :デフォルトの名無しさん:03/08/14 15:40
>>853
Wave取り込んで 現在の音量÷量子化数×100とかは?

855 :デフォルトの名無しさん:03/08/14 18:34
開始から10秒までにボタンを押したらこれ、20秒までに押したらこれ、のように、
時間によって判定の結果を変えたいのですが、どういう文を書けばいいのでしょうか?
ご指導お願いします。

856 :デフォルトの名無しさん:03/08/14 18:46
>>855
開始時刻を記録。

ボタンが押されたら現在時刻と開始時刻から経過時間を求める。

似る成焼くなり。

857 :デフォルトの名無しさん:03/08/14 20:49
>>849
waveファイルの処理は、MCIや低レベルAPIを使うのが一般的なんだが、
849の目的なら低レベルAPIかな。
ある程度、Waveファイルに関する知識が必要。

Cだけど、
http://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-058.html
http://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-059.html
http://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-061.html

詳しい解説なら、
http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-NIPS=9974043190
に、Waveの解説から再生・録音のサンプルがある。

858 :デフォルトの名無しさん:03/08/14 21:17
>>857
>ある程度、Waveファイルに関する知識が必要。

PCMについての知識なら解るけど、内部でもRIFFチャンク形式でやりとりするの?

859 :デフォルトの名無しさん:03/08/14 23:03
>>858
内部では、PCMのバイナリデータの読み書き。(WAVEFORMATEX構造体)
ただ、849は再生・録音をやりたいらしいので、RIFFチャンク形式の知識も
必要になる。

860 :デフォルトの名無しさん:03/08/15 00:10
Delphiで他アプリが送信したパケットを取り込んだりできますか?
ようするに、他アプリのネットへの接続に、プロキシ通したいんですが。
(靴下は鯖が少ないのでダメ&SockCap32てのがあるんで。

861 :デフォルトの名無しさん:03/08/15 00:13
送信「した」のに?

862 :デフォルトの名無しさん:03/08/15 00:15
すいません
他アプリ(普通のネットにつなぐヤシ) → Delphiで作成したソフト → 串 → お目当てのサーバ
と、こんな風にしたいんですが。

863 :デフォルトの名無しさん:03/08/15 00:17
Timerの使い方がよくわからないんですが…。
どういうコードを書けばいいんでしょうか?

864 :デフォルトの名無しさん:03/08/15 00:20
それ以前に何がしたいんだ?

865 :デフォルトの名無しさん:03/08/15 00:27
>>864
まず質問に答えてください!

866 :デフォルトの名無しさん:03/08/15 00:31
>>865
それもそうだな、スマンスマン。で、何がしたいんだ?

867 :863:03/08/15 00:43
すいません、863=855です。
課題(?)で音ゲーを作ろうと思っています。
判定を秒単位で三段階くらいに分けたいんです。
そのためTimerを使って、指定された時間±何秒、とかで結果を変えたいのですが、
ネットや本などに載ってないので…
よろしくお願いします。

868 :デフォルトの名無しさん:03/08/15 00:56
>>855
Timerは一定間隔で何かをするときに使うものだからちょっと違う。
GetTickCount使え
startTime := GetTickCount;
ってやっといて
ボタン押されたら
(GetTickCount - startTime) div 1000
で経過時間が得られる

869 :Delフサギコ ◆A6VzDeLphI :03/08/15 00:58
    ∧,,∧   
   ミ,,゚Д゚彡 
    ミ つ旦)~~ 
  〜と,,,~),,~)

Timerは使わなくてもいいのでは??

プログラム起動時に
TTime型の変数にNowで時間を取得しておいて

あとはボタンを押した時に
Nowで時間を取得して、
起動時からどれくらい時間が経ったかを
判定する。

という処理の流れになるのではないでしょうか。

って、>>868さんとかぶったな。
精度が必要ならNow関数より
GetTickCountがいいっすね。

870 :863:03/08/15 01:11
どうもありがとうございます!それで進めてみます。

871 :デフォルトの名無しさん:03/08/15 08:53
接続されたライブカメラや、デジカメのプロパティを開きたい
のですが、どうすればいいでしょう。。。
通常のコンパネのスキャナとカメラからは見ることのできない
プロパティ画面がカメラに存在するようなのですが・・・・。

あとコンパネのマウスのプロパティとか、キーボードのプロパ
ティはShellApiを使って開けるのですが、そのなかでも特定の
タブを選択した状態で表示させることってできるんですかね。

872 :デフォルトの名無しさん:03/08/15 08:56
>>871
systemディレクトリの
*.CPLを開けば出来る

873 :デフォルトの名無しさん:03/08/15 09:04
>>872
全部開いてもでてきませんですた・・・・
デバイスドライバのDLLとかに入っているのかな・・・

874 :山崎 渉:03/08/15 15:20
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

875 :デフォルトの名無しさん:03/08/15 15:29
>>857
ありがとうございます!
まだ観てないのですが、取り急ぎお礼まで。
Wave関連はコンポーネントがあるので、その知識は
必要とはしないです。とにかく、入力音量の値だけ
持ってくることができれば、それにあわせてTrueと
Falseを設定してあげれば済むので・・・・。

また質問させてもらうかもしれません。よろしくです。

876 :デフォルトの名無しさん:03/08/15 15:52
>>875
shine

877 :デフォルトの名無しさん:03/08/15 17:57
unitAで宣言しているレコード型変数を引数にして、
unitBにある関数に渡すことは出来ますか?

unitBでレコード宣言したら
[エラー] edit_form.pas(313): 'unitA.Thogehoge' と 'unitB.Thogehoge' には互換性がありません

と出たんです

878 :デフォルトの名無しさん:03/08/15 17:59
var unitB.Thogehoge rec;とユニット名を修飾するか
'unitB.Thogehoge' の定義を削除。

879 :デフォルトの名無しさん:03/08/15 18:13
'http://www.foo.com/cgi?SJISの漢字'
をエンコードするにはどうすればいいですか?

880 :デフォルトの名無しさん:03/08/15 18:25
>>878
どうも

881 :デフォルトの名無しさん:03/08/15 18:53
usesで指定してあるMessagesとかの中身というか、定義をみたいのですが・・・・

882 :デフォルトの名無しさん:03/08/15 19:03
>>881
Del6Per使ってるなら
C:\Program Files\Borland\Delphi6\Doc\*.intを検索

後は一手間かかるけどこっちがお勧め
http://onigiri.s3.xrea.com:8080/delphi/index.php?%5B%5BTips%5D%5D#content_1_13

883 :デフォルトの名無しさん:03/08/15 19:36
質問です。

Delphi6Personal版のコードエディタで、行末でカーソルを→に入れたら
次の行頭に行かずさらに右に進んでしまうのですが、
こういったDelphi独自(?)の操作性には慣れるしかないのでしょうか?
設定でよくあるエディタのように行頭に行くようにしたいのですが…

884 :デフォルトの名無しさん:03/08/15 19:39
>>883
ctrl + →

885 :デフォルトの名無しさん:03/08/15 19:50
ふと
#define begin {
#define end }
を思い出した。

886 :デフォルトの名無しさん:03/08/15 20:43
は?

887 :デフォルトの名無しさん:03/08/15 20:46
>>886
別の言語も知っておいた方が良いぞ。
特にDelphiはC言語知ってると世界が広がる。

888 :デフォルトの名無しさん:03/08/15 20:49
delphiのヘルプに他のヘルプのキーワードを追加したいんですがどうにかやる方法ありますか?
delphi6 personalです

889 :デフォルトの名無しさん:03/08/15 20:51
>>887
C言語はまったくわからないけど
Borland C++を使ってみたほうがいいかな?

890 :デフォルトの名無しさん:03/08/15 21:01
>>889
WindowsAPIの宣言読替とか位は出来るようになってた方が楽ちん。


891 :デフォルトの名無しさん:03/08/15 21:25
>>890
マジな話Cもpascalもまったくわからん。
一から始めるならどっちから始めるのがいいとおもう?
Borland C++ Compiler 5.5
Borland Delphi 6 Personal
よくわからんから薦めてくれたほうを使ってみる。

892 :デフォルトの名無しさん:03/08/15 21:29
>>891
何がしたい?
単なる勉強ならC/C++を、
GUIなツール等を作りたければDelphiかC#Builderがいいよ。

893 :デフォルトの名無しさん:03/08/15 21:36
>>892
C++Builder外した理由は?

894 :デフォルトの名無しさん:03/08/15 21:39
無料版がないから

895 :デフォルトの名無しさん:03/08/15 21:48
>>892
何がしたいかって言えば仕事ではなく勉強かな。
今落としていてすぐに使えるのはBorland Delphi 6 Personal
今から落としてみようかと思ってるのはBorland C++ Compiler 5.5ってとこです。

何か実用レベルの物を作るとかじゃなくてまずやってみながら覚えていきたいというレベルの話しなのですが
タダでできるもので勉強してみたいのでBorland C++ Compiler 5.5のほうがいいですか?

Delphiは書籍も出てないしC++の方は解説書も沢山出ているのでわかりやすいのかもしれないですね。
どうもCは難しそうなんで敬遠してたんだけどいまからやってみます。
どうもでした。

896 :Delフサギコ ◆A6VzDeLphI :03/08/15 23:12
    ∧,,∧   ども。
   ミ,,゚Д゚彡
    ミ つ旦)~~
  〜と,,,~),,~)

BigエンディアンやLittleエンディアrン
周りの処理をしているのですが

Result: WideString
UpByte, DownByte: Byte;


Result[i] := UpByte + DownByte;

Result[i] := DownByte + UpByte;

こういうことをやりたいのですが、
上記コードではうまくいきません。

どうやったらうまく上位バイトと下位バイトとで
WideStringに値を入れる事ができるでしょうか?
よろしくお願いします。

897 :Delフサギコ ◆A6VzDeLphI :03/08/15 23:30
    ∧,,∧   
   ミ,,゚Д゚彡   すまそ。解決しまつた。
    ミ つ旦)~~
  〜と,,,~),,~)

Result[i] := WideChar( (UpByte) + (DownByte) * $100 );

このようにしたらよいようです。

898 :デフォルトの名無しさん:03/08/15 23:46
htonlとか使えよ。

899 :Delフサギコ ◆A6VzDeLphI :03/08/16 02:01
    ∧,,∧    >>898
   ミ゚Д゚,,彡   ん?俺?
    ミ つ旦)~~



900 :デフォルトの名無しさん:03/08/16 05:02
いちいちAA貼るなよウザギコ

901 :デフォルトの名無しさん:03/08/16 08:41
>>871
DirectShowで入力フィルタのプロパティページを開くのはどう?

902 :デフォルトの名無しさん:03/08/16 09:11
>>897
8bitシフトとかじゃあかんの?


data = ((data and $ff00) shr 8) or ((data and $00ff) shl 8);

903 :デフォルトの名無しさん:03/08/16 12:40
>>884

thx!
いくらか触った感じだとDelphiはプログラム自体の設計はいいのに
エディタの操作性が微妙だから7でそのへんが良くなってるといいんですが…。

904 :デフォルトの名無しさん:03/08/16 13:00
>>903
慣れですよ。慣れ。


905 :デフォルトの名無しさん:03/08/16 13:11
TPageControlを使っているので、すが、
タブの高さが小さくて選びにくいです。もう少し大きくするには
どうしたらよいでしょうか?

906 :デフォルトの名無しさん:03/08/16 13:13
TabHeight

907 :デフォルトの名無しさん:03/08/16 13:22
>>905
こする

908 :905:03/08/16 13:34
>>906
ありがとうございます

>>907
今回は>>906さんの方法を利用させていただきました。
頂いたアドバイスは、別の機会で参考にさせていただきます。
ありがとうございました。

909 :デフォルトの名無しさん:03/08/16 13:35
>>907
ウワッ オキクナータヨ

910 :デフォルトの名無しさん:03/08/16 13:37
・・・ってネタレスなんか期待してねーんだよ!!
真面目に答えろ!

911 :デフォルトの名無しさん:03/08/16 13:39
>>910
慣れですよ。慣れ。

912 :905:03/08/16 14:03
TabHeightを30ぐらいにして、大分いい感じになりました。
逆に0にしてもタブが非表示にはなりません。
1にすると変な感じですし。タブを非表示にすることは、
どうすればいいでしょうか

913 :デフォルトの名無しさん:03/08/16 14:05
少しはヘルプ見ろよ。

914 :905:03/08/16 14:21
>>913
インストールしたフォルダの中に、ヘルプファイルがありました。
ありがとうございました

915 :デフォルトの名無しさん:03/08/16 14:23
フォームのタブクリックしてF1でヘルプが出るよ

916 :デフォルトの名無しさん:03/08/16 14:24
そりゃあるさ

917 :デフォルトの名無しさん:03/08/16 17:11
かちゅ〜しゃで、
>>3みたいなところにカーソルを合わせると、
フォームじゃない、コメントのような枠?が出てきますが、
それをするにはどうすればいいですか?

918 :デフォルトの名無しさん:03/08/16 17:13
>>917
確かイベントが発生したはず。

919 :デフォルトの名無しさん:03/08/16 17:30
>917
THintWindow

920 :デフォルトの名無しさん:03/08/16 18:38
ActiveXコンポネーント使いたいけど、うまく取り込めません。

ttp://miyake.no-ip.org/FreeSoft.asp
ここのWhoisComをつかいたいんですけど




921 :デフォルトの名無しさん:03/08/16 19:00
920さんに便乗なんですが
OCXってActiveXとどんな関係があるのですか?
ネットで説明探しましたが概念が全然わかりません
VB用(としか書いてない)のOCXをdelphiで使うことは出来るのですか?
本当に何がなんだかわかりませんのでおながいしまつ

922 :デフォルトの名無しさん:03/08/16 19:05
>>918-919
ありがとうございました

923 :デフォルトの名無しさん:03/08/16 19:15
>>921
おんなじようなもんでつ。

924 :デフォルトの名無しさん:03/08/16 19:16
>>920
なんかエラーでも出るの?
何事もなく取り込めて使えたけども。(Del6 Per)

925 :デフォルトの名無しさん:03/08/16 20:11
Delphi6Personal版で、

program FirstCode;
begin
writeln('Hello!');
readln;
end.

ってプログラムがちゃんと動かなかった。なぜ?

926 :デフォルトの名無しさん:03/08/16 20:13
エラーメッセージは?

927 :デフォルトの名無しさん:03/08/16 20:14
>>925
>readln;

胡散臭い。エラーメッセージは?

928 :デフォルトの名無しさん:03/08/16 20:15
プロジェクトを作るとき
[ファイル|新規|その他]でコンソールアプリ選んでる?
これやらないとエラーになるかも。

929 :デフォルトの名無しさん:03/08/16 20:19
>>925-926
「モジュールUnit1でエラーが発生しました。TForm1クラスの宣言が無いか間違ってます。」
です。

930 :デフォルトの名無しさん:03/08/16 20:21
>>929
フォーム消したな・・・。

931 :デフォルトの名無しさん:03/08/16 20:36
>>924
当方win2k + Delphi5pro

1.WhoisCom.dllを\WINNT\SYSTEM32のシステムディレクトリにコピー
2.コマンドラインから Regsvr32 WhoisCom.dll
3.Delphi起動 [コンポーネント]→[ActiveXコントロールの取り込み]

でリストにWhoisComが出てインストールボタンで出来るんですよね?それらしいのが無い。
追加ボタンでwhoiscom.dllを直接指定してみたけど出てこない。
何か間違ってますか?


932 :デフォルトの名無しさん:03/08/16 20:44
>>931
[プロジェクト]→[タイプライブラリの取り込み]

933 :デフォルトの名無しさん:03/08/16 21:07
>>932
うまくいきました。
有難うございました。

934 :デフォルトの名無しさん:03/08/16 21:10
AのalignをLeft,BをBottomにしたら、

┌──┬──────┐
│   │         .│
│   │         .│
│ A │  Form    .│  
│   │         .│
│   │         .│
│   │         .│
├──┴──────┤
│             │
│     B       │
└─────────┘

になったんですが、

┌──┬──────┐
│   │         .│
│   │         .│
│ A │  Form    .│  
│   │         .│
│   │         .│
│   │         .│
│   ├──────┤
│   │         .│
│   │ B       .│
└──┴──────┘

のようにするにはどうすればよいですか?

935 :デフォルトの名無しさん:03/08/16 21:13
+−+−+
|A|B|
+−+−+
として(パネルAはLeft, BはClient)
Bの上に
+−+
|B1|
+−+
|B2|
+−+
を乗せればいい

936 :デフォルトの名無しさん:03/08/16 21:14
>>934
多分
bのparentをFormとAがあるパネルに移動する

937 :デフォルトの名無しさん:03/08/16 21:19
>>935,936
どうも

938 :デフォルトの名無しさん:03/08/16 21:52
色々やってる厨です。 delhpi6 Personalです。

要は実行時に色々ellipseやrectangle図形を描いてそれをメタファイルとして
保存なりコピーしたいのです。
なるべく簡単な実現方法をしりたいですけど。

やってみたのは
imageコンポーネントに
image1.canvas.ellipse(x,y,x,y)なんて描画したのを

emf/wmfファイルとして保存 あるいはクリップボードにコピーするのは

image1.Picture.Metafile.SaveToFile('c:\hi.wmf');
clipboard.Assign(image1.Picture.Metafile);
(image1.Picture.Metafile.assign?)

なんて気軽にやったところで無理です。三時間ばかり格闘してますが
var
 MetaFile : TMetaFile;
 MetaCanvas : TMetaFileCanvas;
という
ヒントらしきものが今漂流中に手に入ってます。


だれか助けてくだされ


939 :デフォルトの名無しさん:03/08/16 21:57
http://www.asahi-net.or.jp/~HA3T-NKMR/vcl2-8.htm

940 :デフォルトの名無しさん:03/08/17 00:57
>>938
Image1.Picture.SaveToFile('a.bmp');じゃだめなんか?

941 :デフォルトの名無しさん:03/08/17 01:34
>>938
順番が逆。図形を描いてからメタファイルにするんじゃなくて、
最初からメタファイル作っといてその上に描く。

MetaFile := TMetaFile.Create;
MetaCanvas := TMetaFileCanvas.Create(MetaFile, 0);
MetaCanvas.Ellipse(x, y, x, y); { 問題の図形を描画 }
MetaFile.SaveToFile('higedance.wmf'); { ファイルに保存 }
Image1.Canvas.Draw(0, 0, MetaFile); { 画面にも出したければこう }
MetaCanvas.Free;
MetaFile.Free;


942 :デフォルトの名無しさん:03/08/17 01:49
Win2k,XPだとTEdit等の文字列がUnicodeで9xはSJISという噂は本当ですか?
だとするとSelStart等を使うコードをOSごとに切り替えるなんて糞面倒くさいことをするんですか?
これはひどいDelphiの限界ですね。

943 :デフォルトの名無しさん:03/08/17 01:54
>>942
プ 見事に引っかかってやんの
それはVB厨吊るための偽情報ですよ。

944 :デフォルトの名無しさん:03/08/17 04:10
もう少し待ってれば>941さんのスマートなコードにありつけたのに…

Image1.Canvas.Draw(0, 0, MetaFile); { 画面にも出したければこう }
ってのを
image1.canvasに対して同じように
image1.Ellipse(x, y, x, y); { 問題の図形を画面に描画 }
ってやってしまってました。
図形の数だけゴチャゴチャでなんて汚い、
と思って二つのimage1.canvasとmetacanvasをTlistにいれてみてキャストしてメソッドだしたり
assignかな、とかやってみたけど失敗で諦めてました。

本当に参考になります。

までも、自力で推測して近いとこまでいけたのは嬉しいかな。
>939さんありがとうございます。

945 :デフォルトの名無しさん:03/08/17 04:10

でも次の問題が…
描いたmetacanvasの一部領域のみを、保存したいとき、
もうひとつ保存用のstoreMetafileというのを作ってそこでmetacanvasからcopyrectして
保存という案で

storeMetaFile := TMetaFile.Create;
storeMetaFile.Height := 50;
storeMetaFile.Width := 50;
storeMetaFile.Enhanced:=true;

storeMetaCanvas:=TMetafileCanvas.Create(storeMetaFile, 0);
storemetaCanvas.Pen.Color:=clblack;
storeMetaCanvas.brush.style:=bsClear;

sourceRect := Rect(0,0,50,50);
MyRect := Rect(0,0,50,50)
storeMetacanvas.CopyRect(MyRect,metacanvas,sourceRect);
//eMFの書き込み
storeMetaCanvas.Free;
storeMetaFile.SaveToFile('C:\dtert.emf');

で中身なしのemfファイルができてしまうのです。
これも二時間以上googleとかで調べてもわからない…。
copyrectはビットマップのみなのかなとか諦めムードです。

946 :デフォルトの名無しさん:03/08/17 05:34
>>943
Del7でそういうコードを書いたよ。SelStartやくにたたん。

947 :デフォルトの名無しさん:03/08/17 09:57
Visual Basic.net とか Visual c++.net はどこで入手できるのでしょうか?
Visual Basic5,0 はマイクロソフトのHPでダウンロードできたのですが

948 :デフォルトの名無しさん:03/08/17 09:58
>>947
ちょっと大きめのパソコンショップへ。

ダウンロード出来たって言うのはVB5CCEの事かい?


949 :デフォルトの名無しさん:03/08/17 10:07
>>947
Del厨ならDel厨らしくDelphi使いなよ。

950 :デフォルトの名無しさん:03/08/17 10:13
>948さん
ありがとうございます。VB5はCCEの事です。
パソコンショップ行って来ます。

>949さんもありがとうございました。

951 :デフォルトの名無しさん:03/08/17 10:15
>>950
お決まりなので次スレよろしく。

952 :デフォルトの名無しさん:03/08/17 11:53
まともな解答者が居ないのに次スレなんて要るのか?

953 :デフォルトの名無しさん:03/08/17 12:00
スマン ちょっとHDDは壊れるわ納期は次々くるわで、答えてられんかったんよ。

954 :950:03/08/17 12:32
950です。パソコンショップ逝って来ました。
おかげでVisual c++.NET の予約できました。
でもよく見るとここDelphiスレだったんですね(汗

お決まりらしいので新規にスレッド作成しておきました。

955 :デフォルトの名無しさん:03/08/17 13:27
くだすれDelphi(超初心者向け) Part5
http://pc2.2ch.net/test/read.cgi/tech/1061090908/

956 :デフォルトの名無しさん:03/08/17 16:54
KylixのCLXで作ったヤツを、
WinのDelphiのVCLへ、
移植は簡単に出来ますか?


957 :デフォルトの名無しさん:03/08/17 17:57
>>956
手動移植が一番

958 :デフォルトの名無しさん:03/08/17 18:34
DelphiのCLXなら殆ど手間はかけなくて良いと思うが?

959 :デフォルトの名無しさん:03/08/17 18:44
>>958
でもCLXだと配布が大変ちゃう?

960 :デフォルトの名無しさん:03/08/17 18:53
>>945
メタファイルってのは描画の手順を記録したものだから、
ビットマップみたいに一部分だけ切り取るなんてことはできん。
うまくいくかどうかわからんけど、クリッピングして描いてみるってのはどう?

var rgn: HRGN;
rgn := CreateRectRgn(0, 0, 50, 50);
SelectClipRgn(MetaCanvas.Handle, rgn);
{ ここでMetaCanvasにあんなことやこんなことを… }
SelectClipRgn(MetaCanvas.Handle, nil);
DeleteObject(rgn);

961 :ななしへたぐらま ◆XcB18Bks.Y :03/08/17 20:05
>>883
Del5,Del6なら、コレ。(Del7はわかりませんが)
フリーカーソル無効化アドイン
http://homepage1.nifty.com/fuu/software/nonfreecursor.htm

>>912
ノートブックコンポ(TNoteBook)の代用を検討されてみてはいかがでしょうか.


962 :デフォルトの名無しさん:03/08/17 20:49
>960
ソースは先にクリッピングしておいてから、そこに描く、という感じなんですよね。
ありがとうございます。でもとりあえず描いてしまったものの一部を切り取りたい
んですよね…。

>描画の手順を記録
なんですよね。!!てことではっきり解決方向が見えました。

実行時、描画した順番(コード)を何らかの方法で再現させればいいのでは、と。
ユーザーがフロントエンドで円や四角形を描いたときの内部コードをそのまま再現させる
という感じ。

一番楽なのは、そのコード丸ごと文字列に入れて、あとでそれをそのまま実行してくれたら
、と夢のような。

極端なこと言ってしまえばユーザーがエディトボクスに、デルファイコードそのままの
metafile.ellipse(0,0,60,80)って入力して「実行」なんてコマンドボタンを押して描画する方法
があれば、一瞬にして楽に解決なんだけど。


963 :デフォルトの名無しさん:03/08/17 21:01
'ellipse,0,0,60,80'を解釈・実行するなんて簡単だと思うけど。
全命令に対応するのは面倒だけど。

964 :デフォルトの名無しさん:03/08/17 23:32
>>962
メタファイルってのは正にその描画した順番を再現する仕組なのだが。

メタファイルをもう一個用意して、クリッピング領域を指定してから
元のメタファイルを再生すれば切り抜きになるんでないの。

965 :デフォルトの名無しさん:03/08/18 00:16
次スレの季節だがこのまま全滅ってことになりそうだな。

966 :デフォルトの名無しさん:03/08/18 01:33
>>965
次のスレッドって、もう立っているようなきがするけど。
くだすれDelphi(超初心者向け) Part5
http://pc2.2ch.net/test/read.cgi/tech/1061090908/l50

967 :|Д・彡 ◆A6VzDeLphI :03/08/18 02:13
>>955

968 :デフォルトの名無しさん:03/08/18 08:28
Delphiでグラフィックをいじるなら、SOFTBANKから出ている
「Delphi Graphic Secrets」という本がサンプルコードなどが沢山のっていて
とても参考になる。著者はかの中村拓男氏。

969 :デフォルトの名無しさん:03/08/20 23:37
アハハハハハハハハハハハハハハハハハハハハハッハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ
ハハハハハハハハハハハハハハハハハハハハハハハハハハ


214 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)