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

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

フサギコの *やさしい* Delphi質問スレ Ver.13

1 :フサギコ:03/03/25 19:51
           __________________________
   ∧,,∧    /Delフサギコがどんな厨房疑問でもやさしく答えます。
  ミ,,゚Д゚彡 < Delフサギコは時に私であり、時には別の人。
   U  つ∀ \他のスレに書き込んで罵倒される前に、まずここで質問しよう。
 〜ミ  ミ ┴    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪
前スレ
フサギコの *やさしい* Delphi質問スレ Ver.12
http://pc2.2ch.net/test/read.cgi/tech/1045476912/


2 :デフォルトの名無しさん:03/03/25 19:52
  Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
  Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
  Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
  Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
  Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
  Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
  Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
  Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
  Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
  Part21 http://pc2.2ch.net/test/read.cgi/tech/1044028945/
  Part22 http://pc2.2ch.net/test/read.cgi/tech/1046354784/


3 :フサギコ:03/03/25 19:53
■過去スレ
モナーの *やさしい* Delphi質問スレ Ver.11
http://pc2.2ch.net/test/read.cgi/tech/1042421592/l50
モナーの *やさしい* Delphi質問スレ Ver.10
http://pc3.2ch.net/tech/kako/1038/10388/1038880567.html
モナーの *やさしい* Delphi質問スレ Ver.9
http://pc3.2ch.net/tech/kako/1033/10336/1033668645.html
モナーの *やさしい* Delphi質問スレ Ver.8
http://pc3.2ch.net/tech/kako/1027/10278/1027873869.html
モナーの *やさしい* Delphi質問スレ Ver.7
http://pc.2ch.net/tech/kako/1021/10212/1021262086.html
モナーの *やさしい* Delphi質問スレ Ver.6
http://pc.2ch.net/tech/kako/1019/10191/1019134412.html
モナーの *やさしい* Delphi質問スレ Ver.5
http://pc.2ch.net/tech/kako/1017/10178/1017803412.html
モナーの *やさしい* Delphi質問スレ Ver4
http://pc.2ch.net/tech/kako/1016/10164/1016467137.html
モナーの *やさしい* Delphi質問スレ Ver3
http://pc.2ch.net/tech/kako/1014/10144/1014474727.html
モナーの *やさしい* Delphi質問スレ Ver2
http://pc.2ch.net/tech/kako/1011/10116/1011649179.html
モナーの *やさしい* Delphi質問スレ
http://pc.2ch.net/tech/kako/1003/10031/1003113413.html


4 :フサギコ:03/03/25 19:54
DelWiki
http://onigiri.s3.xrea.com:8080/delphi/

5 :デフォルトの名無しさん:03/03/25 19:58
またフサギコか。

6 :デフォルトの名無しさん:03/03/25 21:17
なんだかわけわかんなくなってきた。

7 :デフォルトの名無しさん:03/03/25 22:24
マウスジャスチャーを実装したいんだけど、
何か良いコンポウネントとかありますか?

8 :デフォルトの名無しさん:03/03/25 22:33
>>7
ああ、おもしろそうだな・・・作るか。

9 :デフォルトの名無しさん:03/03/25 22:35
>>7
Irvineの遺跡
http://hp.vector.co.jp/authors/VA024591/


10 :デフォルトの名無しさん:03/03/25 23:32
コンポーネントってこういうもんなの?
ただのソースに見えるけど・・・

11 :デフォルトの名無しさん:03/03/25 23:42
>>10
数度しんどけ。

12 :デフォルトの名無しさん:03/03/26 01:00
Borland Sparta Professional

13 :デフォルトの名無しさん:03/03/26 02:13
>>10
コンポーネントは貼り付けられるクラス。

14 :デフォルトの名無しさん:03/03/26 02:22
if文の始めの一行で、「〜では無い時」とすることはできないのでしょうか?

15 :デフォルトの名無しさん:03/03/26 02:23
if notじゃどうせ満足しないだろうから
ありません

16 :デフォルトの名無しさん:03/03/26 02:34
「〜である時」だけで十分。


17 :デフォルトの名無しさん:03/03/26 02:37
後置できないifは不十分。

18 :デフォルトの名無しさん:03/03/26 02:44
やはり無いのですか

19 :デフォルトの名無しさん:03/03/26 02:48
repeat〜untilで何とかすれ

20 :デフォルトの名無しさん:03/03/26 02:48
if notで良いじゃん。

21 :デフォルトの名無しさん:03/03/26 03:53
if A = False then 〜。


22 :デフォルトの名無しさん:03/03/26 04:07
Application.Minimize;があるのにApplication.Maximize;が無いのは何故ですか?

23 :デフォルトの名無しさん:03/03/26 04:08
最大化はそのままやっても問題ないから。

24 :23:03/03/26 04:20
Application.MainForm.WindowState:=wsMinimized;
と直接最小化状態に変更するとタスクバーに格納されずに左下にウィンドウが残る。
タスクバーボタンはメインフォームのものではなくアプリケーションウィンドウのもので、
普通のフォームはタスクバーに格納されないウィンドウだから。
それを回避するのがApplication.Minimize。だと思う。

25 :デフォルトの名無しさん:03/03/26 06:25
Delphiって融通利かないんですね

26 :デフォルトの名無しさん:03/03/26 06:56
>>25
どこら辺が?

27 :デフォルトの名無しさん:03/03/26 10:45
>>25
ここは質問スレ
Delphiへの文句は別スレでしる

28 :デフォルトの名無しさん:03/03/26 11:01
TQuery で使えるSQL文について教えて下さい。

例えば test.db に time という項目名があり、 timeは整数型で
10時20分30秒なら 102030 と値が入っているとします。

これを1時間ごとにまとめたい場合はどうすれば良いでしょうか?

select code, time, sum(goukei) from test.db
group by code, time

だと1秒ごとになります。
これを1時間(60分)ごとにまとめる事は可能ですか?
(デルファイのプログラミングで解決するのではなく、あくまでTQueryのSQL文で
解決したいのです)


29 :デフォルトの名無しさん:03/03/26 11:21
>>28
SQL教えてっ!! lt;3gt;
http://pc2.2ch.net/test/read.cgi/tech/1042208762/l50


30 :28:03/03/26 11:35
>>29
サンクス。
移動します。

31 :デフォルトの名無しさん:03/03/26 11:45
var
i: Integer;
x: array of integer;
begin
for i := 0 to 9 do
x[i] := i;
end;

ってやりたいんですけど、エラーがでてしまいます。
何がいけないのかおしえてください。

32 :デフォルトの名無しさん:03/03/26 11:49
>>31
setlength してない

33 :デフォルトの名無しさん:03/03/26 11:57
>>32
ありがとうございます

Delphiというかプログラミング始めたばかりなので
setlength調べてみます。

34 :デフォルトの名無しさん:03/03/26 12:00
>>31
まさかとは思うけど
xが0〜9だと決まっている(静的配列)なら
x: array[0..9] of integer

35 :31:03/03/26 12:47
>>34
動的配列?の場合
x: array[0..y] of integer
で大丈夫でしょうか。

あとこの程度の質問はこのスレでOKですか?

36 :デフォルトの名無しさん:03/03/26 12:57
>>35
動的配列の場合は そういう定義の仕方は出来ません

SetLength を使いfor文の前に SetLength(x,10); とします。

37 :デフォルトの名無しさん:03/03/26 13:02
>>35
yが変数だと駄目
yが定数ならOk
つまり静的配列でないと[*..*]という書き方はできない
動的配列は32さんの通り

>あとこの程度の質問はこのスレでOKですか?
多分この板ではここが一番初心者にやさしいスレだと思います
(多少の罵声はあるかも知れないけど)

38 :31:03/03/26 13:15
みなさん本当にありがとうございました。
昨日から悩んでいたので助かりました。

39 :デフォルトの名無しさん:03/03/26 13:48
TDBChart はSQLだけで範囲選択できない場合
(つまりプログラミングで出力するデータを選択する場合)や
数字を縦書きにしてラベルに出力する必要がある場合は
使えませんか?

TChart を使った方が良いですか?

40 :デフォルトの名無しさん:03/03/26 14:40
>>39
TDBChar は SQL とは関係ないんだが。
DataSource を直接受け取れるだけ。


41 :デフォルトの名無しさん:03/03/26 14:46
IEの右クリックになんぞ付け足すソフトソフトは作れますか?
みた感じスタンドアローンなソフトしか作れなそうです。

42 :デフォルトの名無しさん:03/03/26 15:02
>>41
この情報があれば出来そう?
http://www.google.co.jp/search?q=HKEY_CURRENT_USER%5CSoftware%5CMicrosoft%5CInternet+Explorer%5CMenuExt&lr=lang_ja


43 :デフォルトの名無しさん:03/03/26 15:12
一体何をみたんだろう…

44 :デフォルトの名無しさん:03/03/26 15:16
D6パーソナルじゃない?
>>42 の情報があっても、
ActiveXが簡単に作れるのはProからだから

45 :デフォルトの名無しさん:03/03/26 16:05
デルファイで作ると昔風の画面になる

46 :41:03/03/26 16:28
>>42さんのおかげでメニューの足し方わかりました。
でも結局処理はスクリプトでやるか、スクリプト用のオブジェクト?みたいな物作るんですな。
いまはIEを拡張したい気持ちよりDelphiで遊びたい気持ちが勝ってるので、
Delphiでできないことはあきらめます。
ありがとうございました。

47 :デフォルトの名無しさん:03/03/26 17:08
>>45
アホがいます。

48 :デフォルトの名無しさん:03/03/26 17:21
>>47
質問スレはアホしかいないと思って我慢してください。

49 :デフォルトの名無しさん:03/03/27 00:59
MaxIntValue 関数について
MaxIntValue 関数は,整数配列で最大の値を符号付きで返します。
ユニット:Math
カテゴリ:統計ルーチン
function MaxIntValue(const Data: array of Integer): Integer;
説明
MaxIntValue 関数を呼び出すと,Data 配列で最大の整数を取得できます。

これってどう書けば配列の最大値が分かるの
デルってサンプルはないの?

50 :番組の途中ですが名無しです:03/03/27 01:04
DELPHI最高マジ最高。nyで落として気に入ったから、今度買いに行きます。

51 :デフォルトの名無しさん:03/03/27 01:07
>>49
>これってどう書けば配列の最大値が分かるの

引数と説明見りゃ分かるだろう。これは。


52 :デフォルトの名無しさん:03/03/27 01:46
>>50
これからもBorlandを助けてあげてね。

53 :デフォルトの名無しさん:03/03/27 02:10
落としたら買う必要ないんじゃないの?

54 :デフォルトの名無しさん:03/03/27 02:13
犯罪者が現れました。

55 :デフォルトの名無しさん:03/03/27 02:24
>>53
正規ユーザーになりたくなるくらい感動させる出来だったと言うことだろう。
あるいは古いの落としたか。

56 :デフォルトの名無しさん:03/03/27 02:51
Delphiで何かつくって一儲けしたいからだろ。
さすがに割れで商売はまずい。


57 :デフォルトの名無しさん:03/03/27 03:12
割れ厨にそんな意識無い
落としてる時点で既に逮捕モノなのに

58 :デフォルトの名無しさん:03/03/27 03:17
コードばっかり書いてないでもうちょっと一般常識身につけたら?

59 :デフォルトの名無しさん:03/03/27 05:53
WindowsXP使ってると突然タスクバーに"CDプレイヤー"とか言うのが出現してすぐ消えるんだけどこれはいったい何なんですか?

60 :デフォルトの名無しさん:03/03/27 06:00
>>59
CDプレイヤーですよ?

61 :デフォルトの名無しさん:03/03/27 06:26
せっかく無料版を公開しているのになぜ割れに頼る・・・・

62 :デフォルトの名無しさん:03/03/27 10:04
TEditでEnterを押されても改行しようとしないようにするにはどうしたらよいですか?
「ぽーん」ってエラー音がでてしまうやつです。
検索しても見つからなかった・・・。

63 :デフォルトの名無しさん:03/03/27 10:06
>>62
もともとTEditって1行ですが。

64 :デフォルトの名無しさん:03/03/27 10:26
Enterを押されたときの音を消したい。

65 :デフォルトの名無しさん:03/03/27 10:28
>>64
消す必要があるのか?

1行エディットボックスで改行しようとしたらエラー。問題なくない?

66 :デフォルトの名無しさん:03/03/27 10:31
>>64
キーを処理してるどこかで例外を投げれば、デフォルトハンドラを通らなくなるから
キーイベントで改行を処理した後、abort 例外を投げてやればいいよ


67 :デフォルトの名無しさん:03/03/27 10:35
>>64
まぁ、ごちゃごちゃ言ってもしゃあないか。ほれ。

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if(Key = #13)then
key := #0;
end;

68 :デフォルトの名無しさん:03/03/27 10:42
すみません。音を消すというか、改行をしようとさせなくしたいです。

69 :デフォルトの名無しさん:03/03/27 10:46
>>68

>>63

そうしてもと言うならEnterキーほじくり出せ。

70 :デフォルトの名無しさん:03/03/27 11:05
起動するとEnterキーが砕け散るようにするにはどうプログラムを書けばよいでしょうか。

71 :デフォルトの名無しさん:03/03/27 11:23
Windows Messengerのように、タスクトレイの上に
小さなメッセージボックスをポップアップさせる方法はありませんか?

72 :デフォルトの名無しさん:03/03/27 11:25
>>70
スタートアップに
Enterキーを100万回押さないと他のアプリの起動が一切できないプログラムを
仕込むようにする

73 :デフォルトの名無しさん:03/03/27 11:26
>>71
あります。
タスクトレイの座標を取得してそのあたりにフォームを表示させましょう。
多分できるはずです。

http://www.google.co.jp/search?num=100&hl=ja&ie=Shift_JIS&c2coff=1&q=%83%5E%83X%83N%83g%83%8C%83C%81@%8D%C0%95W&lr=lang_ja


74 :デフォルトの名無しさん:03/03/27 11:29
d

75 :デフォルトの名無しさん:03/03/27 11:29
>>73
ありがとうございます

76 :デフォルトの名無しさん:03/03/27 11:29
>>74
ワロタw

77 :デフォルトの名無しさん:03/03/27 11:30
>>72
ああなるほど!
是非その方法を使わせてください。

78 :デフォルトの名無しさん:03/03/27 11:39
abortではきえませんでした;
他に音を消すabortみたいなやつないんすかね?


79 :デフォルトの名無しさん:03/03/27 11:42
>>71
Shell_NotifyIcon()でツールチップが登録できる。APIリファレンス熟読。

>>78
何がしたいかはっきり知る。


80 :デフォルトの名無しさん:03/03/27 11:44
一瞬だけミュートすればいいじゃん。

81 :A:03/03/27 11:44
>>78
>>67 のではダメなの?

82 :デフォルトの名無しさん:03/03/27 12:09
>>79
Messanger のあれはツールチップではないよ。

83 :デフォルトの名無しさん:03/03/27 14:08
バルーンだろ

84 :デフォルトの名無しさん:03/03/27 16:10
日本人が作ったコンポーネントって中途半端なものばかりですね

85 :デフォルトの名無しさん:03/03/27 16:16
サンプルムービーです
http://homepage3.nifty.com/digikei/sample/sample.html

86 :デフォルトの名無しさん:03/03/27 16:18
>>84
文句があったら自分で作れよ

87 :デフォルトの名無しさん:03/03/27 18:53
>>83
なにそれなにそれ

88 :デフォルトの名無しさん:03/03/27 19:31
>>84
日本と全世界で比べるからだ。

89 :デフォルトの名無しさん:03/03/27 19:48
XPテーマのボタンとかにならないの?(見た目が)

90 :デフォルトの名無しさん:03/03/27 20:04
>>89
なるよ

91 :NullPointerExceptionはぬるぽ:03/03/27 20:04
>>71
そのものズバリがある。
http://www.tmssoftware.com/htmlpopup.htm

まあ、このあたりのコンポ群は購入しておいて損はないよ。

92 :デフォルトの名無しさん:03/03/27 20:12
>>89
ならないよ
Delphiなんて、その程度

93 :デフォルトの名無しさん:03/03/27 20:13
>>92
アホがいます。

94 :デフォルトの名無しさん:03/03/27 20:25
>>92は、相当実力がないんだな。
かわいそうに。

95 :デフォルトの名無しさん:03/03/27 20:31
>>93-94
プ

96 :デフォルトの名無しさん:03/03/27 20:32
>>95
>>92さん、自分の意見を持つのは良いがそれが間違いの場合は素直に認めるべきだ。

97 :デフォルトの名無しさん:03/03/27 20:59
Win32APIとインラインアセンブラが使えるから出来ないことなんてほとんど無いんじゃないの?

98 :デフォルトの名無しさん:03/03/27 20:59
>>97
うん、どこぞのVBとかとはポテンシャルが違う。

99 :デフォルトの名無しさん:03/03/27 21:54
きのうデルファイ始めたが、コンポーネントの配列ってないんでしょうか。
(VBのコントロール配列のような。)

100 :デフォルトの名無しさん:03/03/27 21:57
VCL リファレンス

TComponent.Components


Components プロパティは,コンポーネントが所有するすべてのコンポーネントを一覧表示します。
property Components[Index: Integer]: TComponent;


101 :デフォルトの名無しさん:03/03/27 21:57
>>97
ドライバ書ける?

102 :デフォルトの名無しさん:03/03/27 21:58
>>101
普通に。

103 :99:03/03/27 22:14
つまり、vbで作ったソフトをデルファイに移植したいのですが、

Button1[1]、Button1[2]、Button1[3]・・・Button1[100]というように
コンポーネントを配列にして、
フォーム上にマインスイーパ風ボタンを百個置くというようなことは
できますか。


104 :デフォルトの名無しさん:03/03/27 22:16
実力って何?プ

105 :デフォルトの名無しさん:03/03/27 22:18
実力(*^o^*)

106 :デフォルトの名無しさん:03/03/27 22:20
>>103
var
ButtonList :TList;
Button :TButton;
i :integer;
begin
for i := 0 to 99 do
begin
Button := TButton.Create(Form1);
Button.tag := i;
ButtonList.Add(Button);
end;

end;

とか。

107 :デフォルトの名無しさん:03/03/27 22:21
全然わからないんですけど
Diffのコンパイルってどうやるんですか?

108 :99:03/03/27 22:23
>>106
大変ありがとうございます。解析します。

109 :デフォルトの名無しさん:03/03/27 22:30
俺、デルファイの実力あるよ

110 :デフォルトの名無しさん:03/03/27 22:30
>>108
中身
Button := TButton.Create(Form1);
Button.tag := i;
Button.Parent := Form1;
Button.Top := 10;
Button.left := 10;
Button.Height := 10;
Button.Width := 10;
ButtonList.Add(Button);

にして。

111 :108:03/03/27 23:27
どもども。

112 :184:03/03/27 23:31
Delphi.ぷっ!馬鹿じゃね〜

113 :デフォルトの名無しさん:03/03/27 23:33

同意。>>112は馬鹿だ。

114 :デフォルトの名無しさん:03/03/28 01:23
タブコントロールで隣のタブをアクティブにするのってどういう風にやるんでしょうか?

115 :デフォルトの名無しさん:03/03/28 01:47
>>114
TabControl.TabIndexを足したり引いたり

116 :デフォルトの名無しさん:03/03/28 01:52
>>115
出来ました。ありがとう

117 :A:03/03/28 03:39
>>110
それだと、全部のボタンが同じ位置に重なっちゃうような…

118 :108:03/03/28 08:48
>>117
for文を使ってすべてのボタンを消したり、ボタンのcaptionを0から99にする
とかできますか?

119 :デフォルトの名無しさん:03/03/28 08:51
>>118
親の Components 配列に全部入ってるから
たとえば親がパネルなら、

for i=0 to Panel1.ComponentCount-1 do begin
if Panel1.Components[i] is TButton then
 with Panel1.Components[i] as TButton do begin
  caption:=StrToInt(i);
end;
end;

みたいにやればいいよ。

120 :108:03/03/28 09:05
>>119
どうも。やってみます。

121 :108:03/03/28 09:06
>>119
そうですか。やってみます。どうも

122 :108:03/03/28 09:07
かぶったスマソ

123 :108:03/03/28 10:11
もういっちょ

124 :デフォルトの名無しさん:03/03/28 10:29
A: Integer;
A := Random(100)

で、0〜99の整数の乱数が取得できるらしいですが、
10〜99の整数の乱数を取得する簡単な方法はありますか?

125 :デフォルトの名無しさん:03/03/28 10:38
>>124
0〜89の整数の乱数を取得して10加える。


126 :デフォルトの名無しさん:03/03/28 10:38
Random(90) + 10


127 :デフォルトの名無しさん:03/03/28 10:55
なるほど、、ありがとうございます
っていうか、なんか恥ずかしい質問をした気がする・・・(−_−)ウツダ

128 :デフォルトの名無しさん:03/03/28 11:51
>>127
恥ずかしがる必要はないよ。良くあることさ。
「問題を解く」訓練をしっかりやれば、じきに自分で思いつくようになるよ。

129 :A:03/03/28 11:59
>>118
>>106>>110 の方法を使ってるなら、ButtonList に作ったボタンが
みんな入ってるから、

 for i:=0 to ButtonList.Count-1 do
  with TButton(ButtonList.Items[i]) do
   caption := StrToInt(i);

でいいと思う。

130 :107:03/03/28 17:58
僕の質問はおかしいですか?

131 :デフォルトの名無しさん:03/03/28 18:03
>>107
質問の意図がよくわかりません

132 :107:03/03/28 18:46
差分パッチですといわれて
Diffファイルだけ渡されたんです

133 :デフォルトの名無しさん:03/03/28 21:12
今さら言うのもなんだが、マインスイーパみたいにしたいんだったら
グリッド使った方が……マテオマエラ、オレヲドコヘツレテ

134 :デフォルトの名無しさん:03/03/28 22:04
>>132
patch コマンドで元のソースにパッチを当ててからコンパイルする。


135 :デフォルトの名無しさん:03/03/29 00:27
>>133
いや、激しく同意。どうせオーナードロー的な処理が入るんだからTImageとか使った方が良いと思うよ。

136 :デフォルトの名無しさん:03/03/29 00:32
プログラム起動時の状態にリセットするコマンドないですか?
いちいち〜 False;と長々と書いていくのは面倒です。

137 :デフォルトの名無しさん:03/03/29 00:34
>>136
>いちいち〜 False;と長々と書いていくのは面倒です。

状況がさっぱり分かりません。

138 :デフォルトの名無しさん:03/03/29 01:43
テレビゲームのリセットボタンみたいなやつ

139 :デフォルトの名無しさん:03/03/29 01:51
>>138
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB%E3%83%A9%E3%82%A4%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80

140 :デフォルトの名無しさん:03/03/29 02:07
>>136
グローバル変数使い杉。

141 :デフォルトの名無しさん:03/03/29 02:08
>>140
メンバ変数だと思う今日この頃。


142 :A:03/03/29 02:24
>>136
そもそもDelphiにコマンドなんて無い気もするけど…
初期化したいだけなら、初期化メソッドを用意して、それを呼べばいいだけでは。

143 :デフォルトの名無しさん:03/03/29 02:26
>>142
ま、妥当な意見だと思う。

144 :デフォルトの名無しさん:03/03/29 05:41
Reset;

145 :デフォルトの名無しさん:03/03/29 05:46
全フォームを破棄して作り直せばいい。

146 :デフォルトの名無しさん:03/03/29 05:49
★総理大臣賞受賞★
http://www.pink-angel.jp/2/index2.html

147 :デフォルトの名無しさん:03/03/29 10:22
Indy8の日本語ヘルプって存在しないんですか?
存在するのならダウンロードできる場所を教えて頂きたいのですが。

148 :デフォルトの名無しさん:03/03/29 10:25
ないよ。必要なら作ったら。

149 :デフォルトの名無しさん:03/03/29 10:26
>>148
ないのですか。ありがとうございました。

150 :デフォルトの名無しさん:03/03/29 10:27
>>149
作ってくださいよ。機器逃げですか?

151 :デフォルトの名無しさん:03/03/29 10:47
D6 って Indy8 じゃなかったかな?
http://www.borland.co.jp/delphi/del6docup.html からダウンロードして
Indy のヘルプだけ分捕る。ってのは?


152 :デフォルトの名無しさん:03/03/29 10:50
>>151
8.0.25
使えるね

153 :デフォルトの名無しさん:03/03/29 15:00
Close;

154 :デフォルトの名無しさん:03/03/29 19:58
DELPHIが寂れてるのだろうか。このスレが寂れてるのだろうか。

155 :107:03/03/29 20:09
>>134
激感謝m(__)m

156 :デフォルトの名無しさん:03/03/29 20:45
小数点も使えるIntegerみたいなやつないですか?

157 :デフォルトの名無しさん:03/03/29 20:51
>>156
みたいってなんだ。
なにがしたいんだ?

158 :デフォルトの名無しさん:03/03/29 20:54
さげ

159 :デフォルトの名無しさん:03/03/29 20:55
>>157
ホンキで言ってるの?初心者ですか?

160 :デフォルトの名無しさん:03/03/29 20:59
>>159
どの言語のどういう機能と同等のことをしたいのか
と聞いてるんでないかい?

俺も知りたい(まさかバリアントのことでもあるまいし)

161 :デフォルトの名無しさん:03/03/29 21:06
>小数点も使えるInteger

恐ろしい矛盾があるな。

162 :デフォルトの名無しさん:03/03/29 21:13
var
 a: チョメチョメ;

163 :デフォルトの名無しさん:03/03/29 21:14
156(=159?)もこれだけ釣れれば満足だろう

164 :デフォルトの名無しさん:03/03/29 21:16
>小数点も使えるInteger
Currencyを思い出した。

165 :デフォルトの名無しさん:03/03/29 21:32
小数点を扱える整数。Variant?

166 :デフォルトの名無しさん:03/03/29 21:35
>>165
小数点数を入れた時点でそれは整数型ではなくなる。よって答え無し出良いと思われ。

167 :デフォルトの名無しさん:03/03/29 21:43
結局156は何がしたかったんだろ?

168 :デフォルトの名無しさん:03/03/29 21:44
>>167
多分floatとかrealとかのことを聞きたかったんだと思うよ。

169 :156:03/03/29 21:53
分かりました。
Delphiでは小数点のある数を扱えないんですね。

170 :デフォルトの名無しさん:03/03/29 21:58
>>169
そうですよ。VBは使えるのでVBを覚えなさい。

171 :デフォルトの名無しさん:03/03/29 21:58
>>169
そんな餌じゃ誰も釣れないと思うが。

172 :デフォルトの名無しさん:03/03/29 22:00
>>169
きゃーっはっはっはっは!バカでー

使えるに決まってるじゃん!おばかちゃーん!ぷぷ。

マニュアル読め。英語読め。アホちん。ぶちぶちぶちちちちちちち

173 :デフォルトの名無しさん:03/03/29 22:04
>>172
( ゚д゚)ポカーン・・・

174 :デフォルトの名無しさん:03/03/29 22:05
春ですなあ。

175 :デフォルトの名無しさん:03/03/29 22:14
釣れないとみて、自作自演で釣れたみたいだな。

176 :デフォルトの名無しさん:03/03/29 22:16
VBの方が何でも出来るしな

177 :デフォルトの名無しさん:03/03/29 22:19
いいじゃん。なんでもブビ厨っと言っとけば。そうすりゃ勝った事になるだろ。

178 :デフォルトの名無しさん:03/03/29 22:21
>>177
「ブビ厨」
この言葉がこのスレで使われたのが177が最初

179 :デフォルトの名無しさん:03/03/29 22:31
ブビ厨って何だよ(禿藁

180 :デフォルトの名無しさん:03/03/29 22:43
おっ。さっそくブビ厨が釣れたぞ。相変わらず対抗意識強いなぁ(禿藁

181 :デフォルトの名無しさん:03/03/29 22:55
Delphiが敬遠される理由(ワケ)が垣間見えるスレはここですか?

182 :デフォルトの名無しさん:03/03/29 22:59
お前ら、ここは質問スレだから
そういうのは別スレでやってください

183 :デフォルトの名無しさん:03/03/29 23:18
ある文字列の行数を調べるソースはどのように記述したらよいですか?

184 :デフォルトの名無しさん:03/03/29 23:21
ListViewを使ったファイラを作ってまして
フォルダのリネームで変な動作をするのでアドバイスください

※カレントディレクトリは起動時に SetCurrentDirで設定して
※そのディレクトリ以下のファイル/フォルダをListViewに展開してます
※ListViewEditedで「編集後の値」と「Itemを取得」して以下のようにリネーム処理してます
RenameFile(item.Caption , 「編集後の値」) //リネーム
Item.Caption := 「編集後の値」 //リストビューに反映

これでフォルダ・ファイルに関わらず、ちゃんとリネームするのですが
フォルダをリネーム→リネームしたフォルダを開く→戻る→もう一度フォルダのリネーム
をするとリネームされません
ShowMessageで処理前にリネーム元フルパスとリネーム後フルパスとカレントディレクトリを見ても
すべて間違ってないのに失敗します
(リストビューはItem.Captionがちゃんと変更されますがファイルはリネームされてません)

185 :デフォルトの名無しさん:03/03/29 23:26
>>182
すまん。俺が悪かった。あまりにもブビ厨がうざかったので
決着をつけようとしただけなんだ。
つーか、もう決着はついたな。ブビ厨の負けだ。
お前らもう帰って良いぞ。もう二度とくるなよ。

186 :デフォルトの名無しさん:03/03/29 23:28
>>183
function CountOfLine(const s: string): Integer;
begin
 with TStringList.Create do
 begin
  Text := s;
  Result := Count;
  Free;
 end;
end;

187 :デフォルトの名無しさん:03/03/29 23:28
>>183
ある文字列の行数を調べるように記述したらよいです

188 :デフォルトの名無しさん:03/03/29 23:44
186さんありがとうございました。posを使って調べる方法は
どうしたらよいのでしょうか?

189 :デフォルトの名無しさん:03/03/29 23:45
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/<先生!こんなのがありました!
 _ / /   /   \___________
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/aomori/

190 :デフォルトの名無しさん:03/03/30 00:04
>>188
これで我慢汁
function GetLineCount(const Value: string): Integer;
var
 P: PChar;
begin
 Result:=0;
 P:=Pointer(Value);
 if P<>nil then
  while P^<>#0 do
  begin
   while not (P^ in [#0, #10]) do Inc(P);
   Inc(P);
   Inc(Result);
  end;
end;

191 :デフォルトの名無しさん:03/03/30 00:10
・・・マルチバイトに対応できとらんかった

192 :デフォルトの名無しさん:03/03/30 00:15
function CountOfLine(const s: string): Integer;
var
 len, i: Integer;
begin
 Result := 0;
 len := Length(s);
 for i := 1 to len do
  if (s[i] = $a) and (ByteType(s, i) = mbSingleByte) or (i = len) then
   Inc(Result);
end;

193 :192:03/03/30 00:28
(s[i] = $a) → (s[i] = #$a)

194 :デフォルトの名無しさん:03/03/30 00:31
無知な者の素朴な疑問だけど、
BIOSってどんな言語で作ってるの?

195 :デフォルトの名無しさん:03/03/30 00:38
Delphiのスレで訊くくらいだから、
Delphiで作ってるとボケなければならないのだろう

196 :デフォルトの名無しさん:03/03/30 00:43
>>184
最後のフォルダのリネームが共有違反か何かで失敗してるのかも。。。

197 :デフォルトの名無しさん:03/03/30 01:26
>>184
見当違いかもしれないけど
リネームできなかったフォルダがエクスプローラとかでもリネームできず、そのアプリを終了するとリネームできるようになるというのなら>>196の言うとおりかもしれない。
その場合はTSearchRecをとかの解放し忘れを見直したらいいかも。try..finallyで必ず解放するようにするとか。

198 :184:03/03/30 02:19
>>196-197
BINGOです
見てみたら思いっきり共有違反してました
FindCloseで開放すんの忘れてました
うーむ、この手のミスしないようにちゃんと癖つけないとなぁ…

ありがとましたー

199 :デフォルトの名無しさん:03/03/30 13:14
質問させていただきます。よろしくお願いします。

function TForm1.BDF(s,t:string):integer;
var
i:integer;
begin
result:=0;
for i:=0 to gd.mx_ed do
if(gd.ed[i].b=s)and(gd.ed[i].t=t)then
if(gd.ed[i].r<>a1)and
(gd.ed[i].r<>a2)then
result:=result+1;
end;

意図通りに動かなかったので
この関数中にブレイクポイントを置いて監視してみたところ
iもresultも
「最適化のため変数をこの位置から参照することはできません」
となり、変数として正しく機能してくれません。
何故でしょうか?

200 :デフォルトの名無しさん:03/03/30 13:45
>>199
最適化されてしまっているからです。


201 :デフォルトの名無しさん:03/03/30 13:46
最適化してるから。
プロジェクト−オプション−コンパイラ−コード生成−最適化


202 :199:03/03/30 14:16
文頭のスペースが消えてコードがみにくくなってしまいました

>200-201
最適化のチェックを外しても同じことを言われてしまいした………
別の関数ではこのようなことを言われなかったのですが
使用verはDelphi6Parsonalです

203 :デフォルトの名無しさん:03/03/30 15:34
>>202
コンパイルしなおした?

204 :199:03/03/30 16:53
>>203
御指摘の通り、
どうやらコンパイルをし直していなかったようです。
スイマセン。

コンパイルし直した結果、原因がようやくわかりました。
コードではなく、外部データの問題だったようです。
ありがとうございました。

205 :デフォルトの名無しさん:03/03/31 06:14
Windows2000以降にはマウスカーソルをデフォルトボタンにジャンプできる機能がありますよね
TFormに貼り付けたTButtonをその移動対象となるデフォルトボタンにしたいのですが
DefaultプロパティをTrueにしても飛んでくれません
ダイアログ以外じゃダメなんですかねぇ?

206 :デフォルトの名無しさん:03/03/31 07:49
>>205
標準的なダイアログボックスならって話じゃないの?

207 :デフォルトの名無しさん:03/03/31 08:19
「あの」機能は、DefaultDialogWindowProc がやっている。
Delphi のダイアログ「もどき」は他のウィンドウと同じく DefaultWindowProc を使っている。だから無理。

.NET の WinForm でも、デフォルトボタンにジャンプしないから、似たようなものさ。


208 :デフォルトの名無しさん:03/03/31 09:46
procedureを自動でABC順に並べることできますか?

209 :デフォルトの名無しさん:03/03/31 09:53
GXExpert で可能じゃなかったけ?

210 :デフォルトの名無しさん:03/03/31 10:55
マウスのホイール機能を無効にする方法というのはありますでしょうか?


211 :デフォルトの名無しさん:03/03/31 11:07
BS_DEFPUSHBUTTONってのがあって、無理って訳でもない。
ただし、フォーカス移動とともに変わっちゃったりするので注意。

212 :デフォルトの名無しさん:03/03/31 12:18
>210
他のプログラムでも無効になるようにしたいというなら、これじゃ無理だけど、
そうじゃないなら、こんなんで出来ると思う。
試してないけど。
procedure TMainForm.ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean);
begin
 Handled := False;
 case Msg.message of
  WM_MOUSEWHEEL: Handled := True;
  WM_MBUTTONDOWN: Handled := True;
 end;
end;


213 :デフォルトの名無しさん:03/03/31 14:56
TToolbar.Menuプロパティのおかげで、
メインメニューで作った物をツールバー形式にするのは簡単ですね。

昔ツールバーとポップアップメニューで作ったものを、
いったんメインメニューに移し替えて、さらにTToolbar.Menuで作り直すつもりですが、
ポップアップからメインに移す作業がやたらめんどくさいです。
勝手にリネーム食らうし、イベント解除されるし、手動でやったらバグだらけになりそうです。
何かいい方法ありませんか?


214 :デフォルトの名無しさん:03/03/31 15:30
>>213
PopupMenuにフォーカスを当ててCtrl+C。
メモ帳に貼り付けてTPopupMenuの部分をTMainMenuに変える。
Ctrl+A, Ctrl+CでコピーしてフォームにCtrl+Vで貼り付ける。

215 :デフォルトの名無しさん:03/03/31 15:54
>>214
クリップボードがテキスト型だったなんて知らなかったです。
これってdfmと同じ形式ですなぁ。
今回はdfm直接編集で、メニュー項目移植しました。

216 :デフォルトの名無しさん:03/03/31 19:53
>>206-207
ダメなんですね
まさか出来ないとは思わなかった…

自分でジャンプさせます(;´Д`)

217 :ななしへたぐらま ◆XcB18Bks.Y :03/03/31 20:56
>>156 >>169
小数が扱える変数の型はあるのかというご質問だとお見受けしました.
そういう型は実数型といって色々あるのですが
とりあえずDouble型でよろしいかと思います.


218 :デフォルトの名無しさん:03/03/31 23:02
ネット関係なんですけど、プロバイタとの接続を切断しても、
次にプロバイタに繋いだとき、変わっていないホスト名やIPアドレス
ってあるんですか?


219 :デフォルトの名無しさん:03/03/31 23:03
>>218
DHCPはなるべく同じIPアドレスを割り当てようとします。

220 :デフォルトの名無しさん:03/03/31 23:05
どの程度のなるべくなのですかな?

221 :デフォルトの名無しさん:03/03/31 23:06
>>220
DHCPサーバさんの気持ち次第です。期待はしない方がよし。

222 :デフォルトの名無しさん:03/03/31 23:50
鯖管理者にNICのMACと金一封送ると固定化してくれるよ。

223 :デフォルトの名無しさん:03/04/01 00:45
100%変わらないホスト名はないのですか?

224 :デフォルトの名無しさん:03/04/01 00:50
100%って言ってしまいましたね

225 :デフォルトの名無しさん:03/04/01 00:52
いっちゃいました。ないですか・・・?

226 :223:03/04/01 00:53
>>224
訂正します
13.5%あるかないか程度変わらないホスト名はないのですか?

227 :デフォルトの名無しさん:03/04/01 01:14
>>226 それはDHCPではなくて?w

228 :デフォルトの名無しさん:03/04/01 01:17
>>218-226
スレどころか板違い
ケーブルインターネットだと固定IPだとか色々あるけど
「自宅サーバー」板へでも逝って聞いてみるよろし

229 :デフォルトの名無しさん:03/04/01 08:36
ActionListほどくだらないコンポーネントは無いな

230 :デフォルトの名無しさん:03/04/01 08:38
釣られてみようか...
どこらへんがくだらなかったの?

231 :デフォルトの名無しさん:03/04/01 15:49
ショートカットの矢印アイコンやスタートメニューのプログラムフォルダアイコンが
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
ですぐに反映できないみたいなのですが何か良い方法はありませんか?
ちなみにXPです。


232 :デフォルトの名無しさん:03/04/01 17:35
エイプリルフールだからマジレスできないよ。明日まで待って( ´,_ゝ`)

233 :デフォルトの名無しさん:03/04/01 18:16
MEMOの内容を更新すると、一番上まで勝手にスクロールしてしまうんですが、
逆に一番下にスクロールさせる方法はありませんか?

234 :デフォルトの名無しさん:03/04/01 18:36
>>233
SelStart
(SelText)

235 :デフォルトの名無しさん:03/04/01 18:56
>>234
それをどう使えばスクロールできるんですか?

236 :デフォルトの名無しさん:03/04/01 19:42
>>233
Delphiじゃ無理。

237 :デフォルトの名無しさん:03/04/01 19:51
ListViewの表示速度についてなんですが
色々検索してみると
検索先で紹介されているコンポーネントがことごとく配布終了しているので
自前でやろうとしているのですが
VirtualModeなるものを使う
オーナードローでなんとかする
やはり検索するとあたりが出てきたのですが
VirtualMode(仮想モード)が激早らしいのですが情報がさっぱりです

んでやろうとしてることは指定ディレクトリのファイル・フォルダの一覧で
リストを読み込むときに別スレッドで情報を取得して
空のリストを必要分作っておき、ListView上の実際表示されるアイテムだけそのつど情報をListviewに追加する
って形がベストですか?
エクスプローラースピードを目指したいのですが

やる前はFAQだろうなぁとたかをくくってたのですが
なんだか古い情報が多いわりに決定版って感じの情報がないのはなんでなんざんしょ…

238 :233:03/04/01 19:55
>>236
やはりそうですか。。。VS.NETやります。

239 :デフォルトの名無しさん:03/04/01 20:11
ここにも四月馬鹿の被害者が。

240 :デフォルトの名無しさん:03/04/01 20:47
バーサス.NET

241 :初心者です:03/04/01 23:18
突然すみません。
Unit1にあるボタンのOnClickイベントで
Unit2にあるEdit1のTextを使いたいのですが、
Edit1.Textは未定義だと怒られます。
どのように定義すればUnit2のコンポーネントを
Unit1で扱えますか?
ほんとうに初心者ですみません<(__)>

242 :デフォルトの名無しさん:03/04/01 23:27
unit Unit1;
interface
uses Unit2; {*}
...
implementation
uses Unit2; {*}
...
{*}どちらかを追加

243 :デフォルトの名無しさん:03/04/01 23:28
usesにUnit2を追加したら、出来るかも。
初心者なので間違ってるかもしれません。
Form2.Edit1.Text

244 :241:03/04/01 23:59
>>242
>>243
ありがとうございます<(__)>
ばっちりできました。
Form2をEdit1.Textの前に書いていませんでした

245 : :03/04/02 00:01
>>241
1.「ユニットを使う」ってのを探して
2.>>243氏の通りにusesに加える

で、いいんでない?

246 :デフォルトの名無しさん:03/04/02 00:01
「新規作成」→「スレッドオブジェクト」でクラス名を「exp」でスレッドを作成して、
procedure exp.Execute;
begin
{ ToDo : スレッドとして実行したいコードをここに記述 }
 ShowMessage('成功');
end;
と変えたんですけど、
違うユニットから呼び出す方法が分かりません。
ヘルプを読んでもいまいち分かりませんでした。
よろしくお願いします。

247 : :03/04/02 00:06
>>233
メモコンポって使わないから知らんけど、richeditのなら
「ケツまでスクロール」ってのは検索すれば必ず見つかるよん。
それじゃダメ?

248 : :03/04/02 00:08
なんだか忙しいな(藁
オレは知ったかなんで、間違ってたらフォローよろぴく♥

>>246
usesして宣言してcreateでは?

249 :デフォルトの名無しさん:03/04/02 00:15
>>248
そのCreateはどうやってつかうんですか?何も分からなくてすみません。。。

250 :デフォルトの名無しさん:03/04/02 00:20
>>233
たぶんログみたいにどんどん後ろにテキストを追加していってるんだろうけど、
そういう場合はテキストを全部置き換えるんじゃなくて、
SelStart := Length(Text); SelText := 追加分;
みたいにしてケツに足していくのが上等手段。

>>249
ヘルプでTThread.Createを検索したら例が載ってる。
まずその例の通りにやってみろ。

251 :デフォルトの名無しさん:03/04/02 00:20
>>249
Exp:=TExp.Create;
みたいな文になるはず(TExpの派生元によって引数が付くこともある)

なおDelphiの世界ではクラス名・レコード名の頭にはTをつけるのでよろしく

252 : :03/04/02 00:26
>>249
usesしてあー…なんだ、インスタンスに…えーとなんだ、代入ってか?

とりあえず、usesして「exp」の後に「.」を打った時点で「Create」が補間されれば
成功ってとこではないでしょか。

Create(True)
Resume
Terminate
WaitFor
Destroy
あたりを検索してみては…。


253 : :03/04/02 00:28
先にレスが付いてた(藁
つーか、変数に代入ってか…。で、インスタンスってか。

254 :デフォルトの名無しさん:03/04/02 00:53
ありがとうございます。

255 :デフォルトの名無しさん:03/04/02 01:54
>>246
つかこのコードには問題があります。

256 :デフォルトの名無しさん:03/04/02 03:05
>>255
え?どこに問題がありますか?

257 :ななしへたぐらま ◆XcB18Bks.Y :03/04/02 03:06
>>237
仮想リストビューというのはリストビュー自身がリストを持つ代わりに
下請けに丸投げするモードです.
リストビューが項目情報を必要としたときにアプリ側に「情報よこせやゴルァ」とわめくので
下請けであるプログラマはそれに対して「どうぞ親方」と情報を渡します.

手順:

・リストを自前で用意する.
 リストの代わりに配列でも出来ると思いますが
 TMyFileList, TMyFileInfo みたいにリストクラスを定義した方が美しいでしょう.

・リストビューコンポのOwnerDataをTrueにする(丸投げモード指定).

・リストの内容に変更があったときはUpdateItemsメソッドで,
 項目の数に変更があったときはItems.Countプロパティで伝える,というコードを書く.

・リストビューのOnDataイベントハンドラを書く.
 「インデックスxxの情報よこせやゴルァ」に対して情報を渡すイベントです.
 引数のItemに情報を書き込みます.

※より速度を上げるためにはOnDataHintイベントを使うと良いらしいのですが
 私は使ったことがないのでよくわかりません.

ちょっと調べてみたところでは鶴亀メールではリストビューの代わりに
ヘッダーコントロールとリストボックスを使って速度を上げているそうです.
Delphiならリストボックスの代わりにグリッドでも良いかも知れません.



258 :私はイラク攻撃反対しています:03/04/02 11:08
解像度を800x600に変えて、フルスクリーンにする方法をPlease!

259 :デフォルトの名無しさん:03/04/02 11:42
イラク攻撃に反対する人には教えません。

260 :デフォルトの名無しさん:03/04/02 11:47
ユーザの操作(マウスの軌道、キー入力など)を記録するやり方がわかりません。
どのような関数、APIを使えばできるのでしょうか?
教えてください。

261 :デフォルトの名無しさん:03/04/02 11:55
SetWindowsHookEx

262 :デフォルトの名無しさん:03/04/02 12:26
>>261
アリガトです。
さっそく実装にかかります〜

263 :イラク攻撃に賛成しています:03/04/02 12:48
>>259
小泉を応援します

264 :初心者ですすみません:03/04/02 12:50
OpenDialog1.Filenameだと、
オープンダイアログで選択したファイルのフルパスが表示されてしまいます。
これを、選択したファイル名だけにするには
(C:\picture.jpg → picture.jpg)
OpenDialog1.Filenameをどのように書き換えればいいでしょうか?


265 :デフォルトの名無しさん:03/04/02 14:07

>>264

ExtractFileName

266 :デフォルトの名無しさん:03/04/02 14:19
「隠しファイルを表示しない」ようにレジストリいじりますよね。
だけど、ただいじるだけじゃ反映されないみたいなんですけど。
その反映させる方法がわかりませぬ。。。
どすればいいんでしょか?

267 :266:03/04/02 14:44
つまり、デスクトップ右クリで出てくる
最新の情報に更新  のことなんですが


268 :264:03/04/02 14:45
>>265
ありがd
ExtractFileName(OpenDialog1.FileName)でできました

269 :デフォルトの名無しさん:03/04/02 15:02
OpenDialog1.Executeで選択されたのを
未選択にするにはどのように書けばいいか教えて下さい。
何かのファイルを選択した
OpenDialog1.FileNameを
どんなファイルも選択していない
OpenDialog1.FileNameにしたいのです。

270 :ななしへたぐらま ◆XcB18Bks.Y :03/04/02 15:10
>>237
もうチェック済みかも知れませんが
ちょうど他スレにこの話題が出ていましたので.

ミ,,゚Д゚彡フサギコのフサフサDelphi相談室H
http://pc2.2ch.net/test/read.cgi/tech/1045813143/324-


271 :デフォルトの名無しさん:03/04/02 15:12
Delphiっていつの間に浸透したの?
まわりをみてももうDelphiばかりだよ。
Delphiのおかげで稼げたった声が沢山。
フリーなのにスゴイ

272 :デフォルトの名無しさん:03/04/02 15:17
>>271
フリーので火星じゃだめじゃん

273 :デフォルトの名無しさん:03/04/02 15:25
ばれなきゃいいのです。

274 :デフォルトの名無しさん:03/04/02 15:50
Memo1に入力した文字のバイト数を
Label1に書くにはどうすればいいか教えていただけませんか?


275 :デフォルトの名無しさん:03/04/02 15:58
>>272
何か勘違いしていないかい?
金を稼いだんじゃないぜ。点数(まわりからの評価)を稼いだんだぜ。


276 :デフォルトの名無しさん:03/04/02 16:04
>>275
うまい! でも稼いだのは金なんだな。

277 :デフォルトの名無しさん:03/04/02 16:04
勘違いというかふつうそうとる。

278 :274:03/04/02 16:40
procedure TForm1.Memo1Change(Sender: TObject);
begin
Label1.Caption := Length(Memo1.Lines.Text);
end;
と書いてやると
[エラー] Unit1.pas(126): 'String' と 'Integer' には互換性がありません
と言って怒られます。
どうか助けてください<(__)>

279 :デフォルトの名無しさん:03/04/02 16:42
ShowMessageで表示される文字のサイズって変えられますか?

280 :デフォルトの名無しさん:03/04/02 16:44
>>278
元VB屋さんですか?
 それなら一度バリアント変数を中継するといいですよ
procedure TForm1.Memo1Change(Sender: TObject);
var w:Variant;
begin
w:=Length(Memo1.Lines.Text);
Label1.Caption :=w;
end;


281 :278:03/04/02 17:02
>>280
ほんとうにありがと!!
感謝です!!
はい、少し前にVBかじってましたが
Delphiのうわさを聞きつけて
Delphiに移ってきました。

282 :A:03/04/02 17:07
>>278
エラーのとおりで、Lengthが返すのは、Integer型
Label1.Captionは、String型、互換性は無いので、変換してやる必要がある。
「型変換」で調べるといい

283 :デフォルトの名無しさん:03/04/02 17:08
>>279
DELPHIだから無理

284 :デフォルトの名無しさん:03/04/02 17:20

========以上、自作自演のサンプルでした。============


285 :デフォルトの名無しさん:03/04/02 17:52
>>281
普通はバリアントを使わずに
Formatを使うか
IntToStrのような関数で明示的に変換するんだけどね

Delphi(というよりPascal)では型のチェックが厳しいから
慣れないうちはうっとうしいかもしれないけど
そのうちこれが信頼感に変わってくるよ

286 :デフォルトの名無しさん:03/04/02 18:04
>>279
コントロールパネルで画面のプロパティ。
(レジストリのどこに書かれるかは知らん。)

287 :デフォルトの名無しさん:03/04/02 18:13
レジストリのどこに書かれるかは変更前と後のレジストリ書き出し
を行ってDiffを取ってみればよい。

288 :ななしへたぐらま ◆XcB18Bks.Y :03/04/02 19:07
>>285
せっかくだから具体例もあげておきます.

procedure TForm1.Memo1Change(Sender: TObject);
begin
Label1.Caption := IntToStr(Length(Memo1.Lines.Text));
end;



289 :ヴァリアント:03/04/02 21:54
VB厨を軽くアシラッタノネ

290 :デフォルトの名無しさん:03/04/02 21:55
で、デルファイでは画面解像度を変更することは出来ないんですね?

291 :デフォルトの名無しさん:03/04/02 22:05
>>290
俺には出来るけど君には出来ないよ。

292 :デフォルトの名無しさん:03/04/02 22:31
最近おかしな煽りをする奴がいるねぇ。
よっぽどdelphiが嫌なんだな。

293 :デフォルトの名無しさん:03/04/02 22:36
>>290
おっしゃる通りDelphiでは解像度は変えられません。
Delphiを(貴方以外の人間が)使って作ったプログラムからは変えられます。

…という返答でいいの?

294 :デフォルトの名無しさん:03/04/02 22:48
だめ

295 :デフォルトの名無しさん:03/04/02 23:14
OpenDialogでファイルを選択した後に
何も選択していない初期状態に戻すには
どうすればいいか教えて頂けないでしょうか?

296 :デフォルトの名無しさん:03/04/02 23:14
292は290にいったのよ。

297 : :03/04/03 00:51
いくら「やさしい」でもさー、検索の1回くらいするのがマナーだと思うなぁ。

298 :デフォルトの名無しさん:03/04/03 01:34
>>297
モナーからフサギコになったんですよ?

299 :デフォルトの名無しさん:03/04/03 01:35
>>295
Executeする前にFileNameをクリア

300 :デフォルトの名無しさん:03/04/03 02:04
DELPHIマンセー^^

301 :デフォルトの名無しさん:03/04/03 02:34

.        /~ヽ   /~~ヽ
.        |  |i _∧ゝ ノ
..       ノ ノ:´Д`) /   アアアアアアアアアアアアアアア〜〜スレッドがどうしても理解できない!
.      ( ノ     ソ           
..       ヽ      ヽ
.        \      \
.          \      \
      _   /   つ  .\ _
    /ミ (⌒Y.   / ̄.\  .\ ミヽ
        ̄\ ,_ _,/     \,_ _,ノ


302 :デフォルトの名無しさん:03/04/03 03:05
321とカウントダウンするプログラムで、Sleep(1000);をはさんだのですが、
順に表示されず、1しか表示されませんでした。
タイマーを使わないで簡単に出来ないものでしょうか?

303 :デフォルトの名無しさん:03/04/03 03:13
>>302
最適化されちゃってるんでしょ
RefreshをはさむとOkだよ

304 :A:03/04/03 03:14
>>302
その書き込みだと、状況が良くわからないので、たぶんだけど、
間に、update を入れるといいんじゃないかと。

305 :デフォルトの名無しさん:03/04/03 03:42
( ´,_ゝ`)プッ どっちだよ

306 :302:03/04/03 04:48
>>303-304
どうもありがとうございます!
RefreshでもUpdateでも希望する効果が得られました。

307 :デフォルトの名無しさん:03/04/03 05:06
>>305
( ´,_ゝ`)プッ


308 :デフォルトの名無しさん:03/04/03 05:30
var i:integer;
i_left:array[0..135] of integer;

begin
i_left[i] := [i Mod 8] * 48 + 40;
と書いたら、「この型には指定した演算子は使えません」
といふエラーがでました。どういう意味でせうか。


309 :デフォルトの名無しさん:03/04/03 05:48
演算子とは+や*のことである

310 :308:03/04/03 05:52
わかりました。
[i Mod 8]は(i Mod 8) でした。すまそ。

311 :初歩的ですみません:03/04/03 11:49
アプリケーション起動時にiniファイルを読みたいのですが、
アプリケーション起動時の procedure はどういったイベントですか?


312 :デフォルトの名無しさん:03/04/03 11:53
>>311
メインフォーム(デフォルトではForm1)の
OnCreateイベントハンドラか
OnShowイベントハンドラで読み込むのがひとつのパターン

313 :311:03/04/03 11:54
procedure TForm1.OnShow(Sender: TObject);
でよろしいでしょうか?

314 :311:03/04/03 11:56
>>312
あ、OnCreateでできました<(__)>
ありがとうございました<(__)>


315 :デフォルトの名無しさん:03/04/03 11:58
>>313
自分は大抵
procedure TForm1.FormCreate(Sender: TObject);
を使っています
(ReadIniFileといった手続きを作っておいて
 この中で呼び出すことが多いです
 書き込むときはFormDestroyでWriteIniFileを呼び出します)

316 :デフォルトの名無しさん:03/04/03 12:23
コンパイル時に
uses節のProCtrlsという記述部分でエラーがおきてしまいます。
これの原因っていうのはいったいなんなんでしょうか。


317 :デフォルトの名無しさん:03/04/03 12:26
var
i:integer;
begin
i := Int(Random * 68);
end;

この文で「integerとExtendedは互換性がありません。」という
エラーがでましたが、どうすれば代入できますか?

318 :デフォルトの名無しさん:03/04/03 12:31
Form2.LabeledEdit1 := IniFile.ReadString('Settings','SMTP', Form2.LabeledEdit1.Text);
としてiniファイルを読もうとすると
TLabeledEditとStringは互換性がないと怒られてしまいます。
WriteStringではOKだったのにどうしてでしょうか?
あと、どうすれば読み込めるでしょうか?
どうか教えて下さい。

319 :デフォルトの名無しさん:03/04/03 12:43
>>317
どんな値を期待してるのかいまいちわからんが。
i:=Random(68)

>>318
.Textが抜けてる

320 :デフォルトの名無しさん:03/04/03 12:44
初心者質問スレなんて必要ないとおもふ。

321 :デフォルトの名無しさん:03/04/03 13:03
320なんて必要ないとおもふ。

322 :デフォルトの名無しさん:03/04/03 13:04
>>317
今後のために
Intは小数部を切り捨てた実数型を返す
整数型が欲しかったらTruncを使う
(Ceil、Floorも合わせて見ておくとよい)

323 :318:03/04/03 13:05
ΣΣ(゚д゚lll)ガガーン
すみません.Textが抜けてました逝ってきます。
あ、でも例外エラーが出ました…
何か書かないと
Form2にあるLabeledEditは読み込めないのでしょうか?
無知でほんとうにすみません。
ググってみたのですが分かりませんでした…

324 :デフォルトの名無しさん:03/04/03 13:08
>>319
気づきませんでした。ありがとうございました。
それと遅れましたが>>119さんのレスも参考になりました。
ありがとうございました。

325 :デフォルトの名無しさん:03/04/03 13:14
>>318
困ったときは問題を切り分けてゆく癖をつけること
 tempStr := IniFile.ReadString('Settings','SMTP', Form2.LabeledEdit1.Text);
 Form2.LabeledEdit1 := tempStr;
みたいにしてひたすらトレース。
そのままだとバグの原因が式のどっちが側の辺にあるのか分からないでしょ?

それと、エラーが出たなら文面も書くこと
色々突っ込みたいトコが沢山ありすぎて323だけでは返答出来ません

326 :324:03/04/03 13:14
>>322
さすがプロ。ありがとうございます。

327 :A:03/04/03 13:19
>>316
なんていうエラーなのか書かないと、誰にもわからないと思う。

328 :A:03/04/03 13:23
>>324
>>119のだと、親となるコンポにボタン以外が混ざってると、
エラーは出ないけど、数字がずれるから注意。

329 :318:03/04/03 13:27
>>325
procedure TForm1.FormCreate(Sender: TObject);
Var
IniFile : TIniFile;
TempStr: string;
begin
IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
tempStr := IniFile.ReadString('Settings', 'SMTP', Form2.LabeledEdit1.Text); ☆
Form2.LabeledEdit1.Text := tempStr;
IniFile.Free;
end;
と書きました。
すると、☆の行が何かおかしいみたいで警告が出てきて

 プロジェクトTest.exeがEAccessViolation クラスの例外を生成しました。
 'Access Violation at adress 0046893D in module 'Test.exe' Read of
 adress 000002FC'

ということです。この意味が私にはサッパリです…
どうかお助けください<(__)>


330 :デフォルトの名無しさん:03/04/03 13:39
>>329
そのIniFileが存在しないのでは?
フルパスが必要ですよ。

331 :デフォルトの名無しさん:03/04/03 13:43
なるほど。
多分Form1がメインフォームで、フォームの生成はデフォルトで行ってるよね?

TForm1.FormCreateが実行されたときはまだForm2は生成されていないので、
Form2上のインスタンスForm2.LabeledEdit1.Textにアクセスしようとすると保護違反になります。

簡単な回避法は初期化処理をOnShowの中で行うことなんだけど、生成されていない
(副次的な)フォームからデータを読もうとするアルゴリズムそのものを見直したほうがいいのかも。

以下ツッコミ
・Form1, Form2, LabeledEdit1のようなコンポーネントには分かり易い名前を振ったほうが吉
・自前で生成、破棄するオブジェクト、IniFileはtry...finally節で保護すると吉

332 :318:03/04/03 13:44
>>330
Left := IniFile.ReadInteger('Window','Left',Left);
は読み込めましたので、IniFileには問題ないと思います。


333 :デフォルトの名無しさん:03/04/03 13:45
>>329
Form1が作られた時にForm2は存在しているの?

334 :デフォルトの名無しさん:03/04/03 14:03
>>318さん
普通、IniFileの初期値には本当の固定値を使うものでし
(メインフォームは通常、最初に作成されるフォームなので
 OnCreateで他のフォームを参照したら大抵はアクセス違反になるでし)

Form2のエディットへ値をコピーしたければ
いったんForm1の変数へでも保存しておいて
Form1のプロパティを参照するという形で
Form2の作成時または表示時にコピーするのでし

でもってForm2を閉じる際にForm1のプロパティへ変更した値を保存し
最終的にIniFileで書き込むんでし

335 :318:03/04/03 14:13
みなさんありがとう<(__)>
ようやく解決しました。
Form2を開くときにForm2のiniを読み込むことにしました。
with do
try finallyの使い方も習得できました。
ほんとうに勉強になりました☆
ありがとう!!

336 :デフォルトの名無しさん:03/04/03 14:14
今日は優しい人が一杯常駐してるね・・・・・

337 :デフォルトの名無しさん:03/04/03 14:17
>>318
これからもガソバって。他人のソースを読むようにすると上達も早いよ。
VCLのソース読むのがお勧め。Delphiのコーディングスタイルも身に付くし。

338 :デフォルトの名無しさん:03/04/03 14:17
そうでもないよ

339 :デフォルトの名無しさん:03/04/03 14:19
じゃあ、今のうちに質問しておくか

画面解像度の変えた方

340 :デフォルトの名無しさん:03/04/03 14:24
>>339
EnumDisplaySettingsで使いたい解像度が存在するかを検索して
存在するならChangeDisplaySettingsで変更する。
サンプルは検索すればごろごろ出てくる。

341 :デフォルトの名無しさん:03/04/03 14:25
>>339
何か日本語が壊れかけてないかい?
http://www.google.co.jp/search?num=100&hl=ja&ie=Shift_JIS&c2coff=1&q=delphi%81@%89%E6%96%CA%89%F0%91%9C%93x&btnG=Google+%8C%9F%8D%F5&lr=lang_ja



342 :デフォルトの名無しさん:03/04/03 14:28
>>339
つーか氏ねよバーカ。うんこうんこチンカス。マンコに首突っ込んで窒息しろ。

343 :デフォルトの名無しさん:03/04/03 14:33
急に悪人が出てきましたね

344 :デフォルトの名無しさん:03/04/03 14:35
あれだ。類は友を呼ぶって奴。

345 :デフォルトの名無しさん:03/04/03 14:38
>>339
VCL以外のことならここへ逝った方が詳しかろう

Win32API質問箱
http://pc2.2ch.net/test/read.cgi/tech/1047819779/l50

346 :デフォルトの名無しさん:03/04/03 15:52
>>343
お前Gunner

347 :バブルソートって遅いんですか?:03/04/03 16:40
バブルソートって遅いんですか?

348 :デフォルトの名無しさん:03/04/03 17:02
>347
超早いよ

349 :バブルソートって超早いんですか?:03/04/03 17:49
バブルソートって超早いんですか?

350 :デフォルトの名無しさん:03/04/03 17:54
>>349
超遅いよ

351 :バブルソートって超遅いんですか?:03/04/03 18:18
バブルソートって超遅いんですか?

352 :デフォルトの名無しさん:03/04/03 18:34
おまいよりは早いよ。

353 :デフォルトの名無しさん:03/04/03 18:34
>>351
まあまあ速い

354 :デフォルトの名無しさん:03/04/03 18:50
>>352
滅茶苦茶早いじゃん!!

355 :デフォルトの名無しさん:03/04/03 18:51
>>353
なにとくらべてんだ?超遅いだろ。

356 :バブルソートって超遅いんですか?:03/04/03 20:04
おせえええええええええええええええええええ
1000まで行ったスレのIDを並べ替えるのに10分以上かかったぞ!!!!!!!!!!

357 :デフォルトの名無しさん:03/04/03 20:34
Edit1.TextにEdit2.Textを付け足したいのですが、
Edit1.Text := Edit1.Text.Add(Edit2.Text);
とするとレコード、オブジェクト、クラスのいづれかが必要ですと
言われてしまいます。
どのように変更すればいいか教えて下さい。

358 :デフォルトの名無しさん:03/04/03 20:35
>>356
じゃあごちゃごちゃ言わんとヒープソートかクイックソート使えや。


359 :デフォルトの名無しさん:03/04/03 20:36
>>357
Edit1.Text := Edit1.Text.Add(Edit2.Text);

って言うかstring型はクラスではないけれど。

360 :バブルソートって超遅いんですか?:03/04/03 20:50
>>357
Edit1.Text:=Edit1.Text+Edit2.Text;
でいいじゃんか(藁

361 :357:03/04/03 21:02
>>360
解決です(笑)
すみませんありがとうございました

362 :デフォルトの名無しさん:03/04/03 21:55
現在簡易言語で動いてる
顧客管理+販売管理システムを作りなおすことになりました
とりあえず、PC2−3台で運用するものです。
MSアクセスで開発するのを10とすると、
DELPHIだと、どのくらいですか?
DELPHIはまったくの素人ですが
JAVAとアクセスはかじったことがあります。
アクセスもVBAとか、複雑なことをすると
こみいってそうなんで
どうせ苦労するなら、DELPHIに魅力を感じてます。

363 :デフォルトの名無しさん:03/04/03 22:03
>>362
DBは何を使う?

364 :デフォルトの名無しさん:03/04/03 22:06
キャプションバーがクリックされたらイベントが起きるようにするには
どうすればいいんでしょうか。。。

365 :デフォルトの名無しさん:03/04/03 22:10
>>364
http://www.google.co.jp/search?q=cache:2iZaohTRWFQC:black.sakura.ne.jp/~third/win42.html+%E9%9D%9E%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88&hl=ja&lr=lang_ja&ie=UTF-8

366 :デフォルトの名無しさん:03/04/03 22:11
>>363
DBはまだ決めてませんが
MSDEか、DB2か、安くて安定してるのがいいです(^^;

367 :デフォルトの名無しさん:03/04/03 22:13
>>366
そら、不安定なDBほど無意味なモノはない。

368 :バブルソートって超遅いんですか?:03/04/03 22:14
>>364
キャプションバーをクリックして、オブジェクト インスペクタ
のイベント欄の「OnClick」をダブルクリックすれば手続きが作成される

369 :デフォルトの名無しさん:03/04/03 22:14
>>363
VBでやるよりはいいんじゃないかと思うが
よほどタコな設計しない限り、パフォーマンスも上だしな

370 :369:03/04/03 22:15
誤:>>363
正:>>362

スマソ

371 :デフォルトの名無しさん:03/04/03 22:15
>>368
お前は非クライアント領域とクイックソートの勉強しる。

372 :237:03/04/03 22:27
>>257
激遅レスになっちまいました
そういうのを仮想リストビューつうんですな
詳細なレスどうもです
これから実装を試みます

>>270
ふさふさスレは見落としてました
Delphiスレ多すぎですなここ…

なにはともあれサンクスコ

373 :バブルソートって超遅いんですか?:03/04/03 22:49
>>371
なんだよ非クライアント領域って・・・・・( ´,_ゝ`)プッ

374 :デフォルトの名無しさん:03/04/03 22:51
>>373
知らないのに笑うな。

375 :バブルソートって超遅いんですか?:03/04/03 22:57
( ^▽^)まあ俺はセンスあるからそんなの知らなくたってお前らよりいいソフト作れる罠☆キャハハハハハ

376 :デフォルトの名無しさん:03/04/03 23:02
>>375
成る程。文章に不気味なセンスが漂ってる。

377 :デフォルトの名無しさん:03/04/03 23:04
>>375
じゃあ、それを知らずにタイトルバーのないアプリケーションを書いてください。
ちゃんとドラッグアンドドロップしたらウインドウ移動できる奴。

378 :非375:03/04/03 23:09
>>377
いや、ドロップはいらんだろ。取り敢えず、一番下のコード嫁。
http://bdn.borland.com/article/0,1410,29579,00.html


379 :デフォルトの名無しさん:03/04/03 23:09
今TDrawGridから派生したコンポーネントを作成しているのですが、
DoMouseWheelDownメゾットをオーバーライドするとき、TDrawGridのではなく
TCustomControlのそれを直接継承するにはどうしたらよいのでしょうか?

380 :バブルソートって超遅いんですか?:03/04/03 23:14
>>377
え?俺の作ったソフトが欲しいって?うん?

381 :デフォルトの名無しさん:03/04/03 23:21
春休みももうすぐ終りですなあ。まあ、引き篭もりは年中休みだが。

382 :デフォルトの名無しさん:03/04/03 23:35
教えを請わせてください。

時間がかかりそうな処理をする時に、プログレスバーを持ったフォームを出し、
進行状況を表示しながら処理を進めたいのです。

Form1で処理をしながら、Form2でProgressBarを更新するとして、

Form1.Enabled := False;
Form2.Show;
//処理
Form2.Hide;
Form1.Enabled := True;

というようにしてみたのですが、処理終了後Form1が背面に潜ってしまいます。

どうしたらいいでしょうか?
よろしくお願いします。


383 :デフォルトの名無しさん:03/04/03 23:40
a

384 :バブルソートって超遅いんですか?:03/04/04 00:05
>>383
ワロタw

385 :釣り?:03/04/04 00:40
>>382
その前に、その仕様で目的の動作は望めないと思うのだが、どうか?

386 :藪に恐れ入ります:03/04/04 00:50
procedure TForm5.Button1Click(Sender: TObject);
begin
with Form4.ListView1.Items.Add do
Caption := LabeledEdit1.Text;
SubItems.Text := LabeledEdit2.Text;
Form5.Close;
end;
というふうにしますと、SuiItemsは未定義の識別子だと
怒られてしまいます。
Form5にあるボタンを押してLabeledEdit1.TextとLabeledEdit2.Textの文字を
Form4にあるListViewの同じ行のところに2つ書きたいのですが
どう書けばいいですか?

387 : :03/04/04 01:00
>>386
まず、スコープは?

ListView1.Items.Add.Caption:=LabeledEdit1.Text;
ListView1.Items[i].SubItems.Add(LabeledEdit2.Text);
ってとこかな?

388 :デフォルトの名無しさん:03/04/04 02:07
>>382
処理後にForm1.Show;やってみれば?

389 :デフォルトの名無しさん:03/04/04 02:10
あと、Form2.ShowModal;ってやれば、Form2が閉じるまでForm1を操作できなくなるらしいよ

390 :デフォルトの名無しさん:03/04/04 02:47
DelphiでDirectXを使ってビットマップを表示する方法を教えてください。

たとえば、デスクトップにtest.bmpというファイルがあったときに
全画面に表示するコードはどう書けばいいですか?
またコンパイルするときのDelphiの設定とかも教えてください。

391 :デフォルトの名無しさん:03/04/04 03:16
コンポーネントのインストールの仕方が分かりません

392 :あぼーん:03/04/04 03:27
             ∩
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生!こんなのを発見シマスタ!
      /       /    |
     / /|    /      \  http://saitama.gasuki.com/shinagawa/
  __| | .|    |         \
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\     \_____________
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||

393 :デフォルトの名無しさん:03/04/04 03:29
Memoで、指定した行の文字を選択した状態にするにはどうしたらいいんですか?

394 :デフォルトの名無しさん:03/04/04 03:54
自己解決しました。すみません。

395 :A:03/04/04 04:41
>>390
DelphiXを使う方法でいいなら。
DelphiXをインストールする。(Delphi6以降は細工が必要)

uses に DXClass を加える。
メインフォームの継承元を、TDXForm にする。
フォームのクライアント領域を使いたい解像度にセット。
TDXDrawをフォームに載せて、AlignをalCliantにする。
DXDraw1のdoFullScreenプロパティを、Trueにする。
TDXImageListをフォームに張る。
DXImageList1のDXDrawプロパティに、DXDraw1を指定。
test.bmpを、DXImageList1に読み込む。

てきとうなメソッドに以下のコードを書いて呼び出す。

if not DXDraw1.CanDraw then Exit;
DXImageList1.Item[0].Draw(DXDraw.Surface,0,0,0);
DXDraw1.Flip;

これだけで大丈夫なはず。
試してないけど。

396 :382:03/04/04 08:02
>>385

??
Form1が潜ってしまう以外は問題ないんですが。

>>388

おお。出来たみたいです。
こんな感じで期待通り動きました。

Form1.Enabled := False;
Form2.Show;
Form2.ProgressBar1.Position := 0;
//処理
Enabled := True;
Form1.Show;
Form2.Hide;

Form1.BringToFrontでもいいみたいですね。


>>389

Form2.ShowModalだと、Form2を閉じるまでForm1の処理が止まってしまうみたいでした。


ありがとうございました。



397 :デフォルトの名無しさん:03/04/04 09:33
>67の例に1行足して

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if(Key = #13)then
key := #0;
Edit1.Text := 'Pressed Enter';
end;

ってすると、Backspace2回押してもPressed Enterと表示されます。
thenの後をbeginとend;でくくると正常に動作します。
なぜでしょう?細かくbeginとendをつかったほうがいいのでしょうか?

398 :デフォルトの名無しさん:03/04/04 09:49
>>397
Keyが#13(Enter)のとき、
key := #0;(音を消す)とEdit1.Text := 'Pressed Enter';をしたいわけだから
beginとendを使わなければなりません。


399 :デフォルトの名無しさん:03/04/04 09:54
>>397
if文をヘルプで読め。条件式がtrueならthenの後の文一つ、あるいはbegin..endで括った構造化文が実行される。
それと#13じゃわかりにくいからiif Key=Chr(VK_RETURN) thenとする。


400 :デフォルトの名無しさん:03/04/04 10:48
メインメニューの中の一部のサブメニューだけをポップアップさせたい場合どうすればいいですか?

401 :386:03/04/04 10:53
var
i : TListItem;
としたいのですが、ListViewは違うフォームにあります
(この動作はForm2上でやりたいのですが、ListViewはForm1にあります)
TListItemが未定義の識別子だと言われてしまいます。
どうすればよろしいでしょうか?

402 :デフォルトの名無しさん:03/04/04 10:53
>>400
そっくりなメニューを作るか
不要なメニュー項目を非表示にしてポップアップ

403 :デフォルトの名無しさん:03/04/04 10:56
>>402
ありがとうございます。

404 :デフォルトの名無しさん:03/04/04 11:00
>>398,399
説明ありがとうございます。
文法をしっかり覚えないとだめですね。

今1000行程のプログラム書いているんですが、書き足すうちに
いろいろ予期しない動きをするようになってきました。
恐らく、今回のようなことの積み重ねだと思いますが・・・。

Edit1.Text:='Press Enter';が実行されなければ、ミスを特定しやすいですね。
あと、Backspaceでも実行されるのは何故なんでしょう?

405 :デフォルトの名無しさん:03/04/04 11:04
>>404
基礎の基礎からやり直せ。以上。


406 :デフォルトの名無しさん:03/04/04 11:10
>>401
usesにComCtrlsを追加。

407 :401:03/04/04 11:29
var
i : TListItem;
begin
i := Form1.ListView1.Items.Add();
i.Caption := LabeledEdit1.Text;
Form1.ListView1.Items.Item[i.Index].SubItems.Add(LabeledEdit2.Text);
でできました。
けど、何かもっと綺麗に書けそうです…
何かアドバイスくれませんか?

408 :デフォルトの名無しさん:03/04/04 12:39
>>407
with Form1.ListView1.Items.Add do
begin
Caption:=LabeledEdit1.Text;
SubItems.Add(LabeledEdit2.Text);
end;

409 :407:03/04/04 13:27
>>408
ありがd

410 :A:03/04/04 17:05
>>404
順を追って考える。

Edit1でキーが押されると、それが何であれ、OnPressイベントが呼ばれる。

if(Key = #13)then
 key := #0;
Edit1.Text := 'Pressed Enter';

こう書いた場合。意味はこうなる。

1.もしキーコードが#13(エンター)なら、キーコードを#0にする。
2.Edis1のTextを、Pressed Enter にする。

2は、if文の外にあるから、どんなキーが来てもかまわず実行される。

411 :デフォルトの名無しさん:03/04/04 19:23
あるファイル(バイナリファイル)の内容を丸ごとString型の変数に放り込みたいのですが、
どんな方法が良いのでしょうか?


412 :デフォルトの名無しさん:03/04/04 19:27
>>411
メモリマップドファイルにしてファイルサイズ分strncopyとか。

413 :デフォルトの名無しさん:03/04/04 21:19
>>411
var
  FS: TFileStream;
  Buf: String;
begin
  FS:=TFileStream.Create(Application.ExeName, fmOpenRead or fmShareDenyNone);
  try
    SetLength(Buf, FS.Size);
    FS.Read(Buf[1], FS.Size);
  finally
    FS.Free;
  end;
end;


414 :デフォルトの名無しさん:03/04/04 21:37
あの〜スミマセン!!
MassageBoxの出し方教えて下さい。
ガッコウの兄貴に指示されました。
コニチワ、マッサージボックスで出せなさいと。
どうすればいい?


415 :デフォルトの名無しさん:03/04/04 21:42
begin
ShowMessage('釣りですか?')
end;

416 :bloom:03/04/04 21:45
http://www.agemasukudasai.com/bloom/

417 :デフォルトの名無しさん:03/04/04 21:46
>>414
MassageBoxってなんですか?(ワラ

418 :デフォルトの名無しさん:03/04/04 21:47
>>417
Fuck ME!!

>>415
Thanx!!


419 :デフォルトの名無しさん:03/04/04 21:53
アドレス帳作りに悪戦苦闘しております。
iniファイルに
[Address]
Address1=名前,ふりがな,アドレス
Address2=名前,ふりがな,アドレス


というふうにAddress(数字)と追加するにつれて
(数字)を増やしていきたいのですが、
begin
with TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
try
WriteString('Address', 'Address' + ??? , Edit1.Text + ',' + Edit2.Text + ',' Edit3.Text);
finally
Free;
end;
end;
としても???に何を書けばいいか分かりません…
どうか力を貸してください<(__)>
もっと綺麗な書き方があれば教えてください

420 :いつでもどこでも太郎さん:03/04/04 21:55
すみません。初心者です。
Delphiで、一定時間ごとに、画面をキャプチャするなんていうアプリを作れるのでしょうか?


421 :デフォルトの名無しさん:03/04/04 22:01
>>419
with TMemIniFile.Create(省略) do
begin
I:=0;
while I<アドレスの数 do
begin
WriteString('Address', 'Address'+IntToStr(I), I番目のアドレス);
Inc(I);
end;
Update;
end;

422 :デフォルトの名無しさん:03/04/04 22:01
>>421
Free忘れた

423 :デフォルトの名無しさん:03/04/04 22:07
リストビューのアイコンについて質問です。
var idicon:TIcon;
begin
idicon:=TIcon.Create;
try
idicon.LoadFromFile(Edit1.Text);
ImageList1.AddIcon(idicon);
finally
idicon.Free;
end;
end;
これでアイコンを変更したところ32bitのアイコンのα値が
無視されて描画されてしまうのですが・・・。
だれか良い方法教えてください。


424 :デフォルトの名無しさん:03/04/04 22:13
>>419
まずは住所リストをメモリに保持することを考えましょう。
TListを内部に持つクラスを作るかTListを継承するのがお勧めです。
その次にUIをどうするか考えましょう。
Edit1, Edit2...なんてのを置いただけじゃ不特定多数の住所を編集することは出来ないから却下して、
例えばTListBoxに名前一覧を表示して、それをクリックしたときに、それに対応する
住所データを先に作ったリストから読み出して、TEdit等に表示するとかね。
ここまでいけば保存は421のようなコードで簡単に出来るはず。

425 :デフォルトの名無しさん:03/04/04 22:17
シェルファイル関係のOle2とかもう少し整理してくれると
ありがたい。

426 :419:03/04/04 22:44
>>421
MemIniFileを使わなければなりませんか?
IniFileを使いたいのですが…
>>424
新規アドレスをEditに書いてListViewに移すという形にしています。
それで新規アドレスをListViewに移すときに
その新規アドレスをiniファイルに追加していきたいです。
やはりMemIniFileでなければなりませんか?
まだ初心者で、MemIniFileはややこしそうなので
IniFileだけ手をつけています。




427 :デフォルトの名無しさん:03/04/04 22:47
>>426
あきらめた方が良いんじゃない。

428 :419:03/04/04 22:57
>>427
やはりそうですか…
根本的に見直すことにします。
難しいですね。

429 :419:03/04/04 23:03
やはりMemIniFileを勉強して見てから考えます。
このスレの人はほんと親切で
2chじゃないみたいです。
ほんとうにありがとう

430 : :03/04/04 23:07
聞くときは敬語で礼は「ありがd」ってのはどーなの?

431 :デフォルトの名無しさん:03/04/04 23:07
>>430
同意。死んだ方が良いな。

432 :デフォルトの名無しさん:03/04/04 23:17
俺も死んだ方が良いと思うよ。

433 :デフォルトの名無しさん:03/04/04 23:17
>>429
よって死ね

434 :デフォルトの名無しさん:03/04/04 23:22
もまぁ等、正しくって美しくって穏やかな日本語キボンヌだ(゚Д゚)ゴルァ(゚Д゚)モ゙ルァ(゚Д゚)フォルァ

初心者たん達が安心して質問できる環境にしましょう。

435 :A:03/04/04 23:28
>>420
作れるはず。
画面をキャプチャするほうほうがわかってるなら、
あとは、タイマーで呼び出すだけ。

436 :デフォルトの名無しさん:03/04/04 23:31
>>435
しゃべんな。素人よ。

437 :デフォルトの名無しさん:03/04/04 23:45
>>435
それ、マルチ。

>>436
煽る暇があったら回答しとけ。

マジレスするとGetDCして画面のデバイスコンテキスト貰って、Bitmapに保存。
つぅかこのぐらいググレ。

438 :デフォルトの名無しさん:03/04/04 23:56
この時期、新人君が増えるは普通なんだが、
低脳な煽りも同時に増えるのは何故だろう?

439 :409:03/04/04 23:56
>>430〜433
ほんとすみません<(__)>
dを使ってみたくて使ってしまいました。
ごめんなさい。


440 :デフォルトの名無しさん:03/04/04 23:58
最近
ふさぎ子
見ないな

441 :デフォルトの名無しさん:03/04/05 00:23
春には、まっとうなユニットを提供してほしいものだ。
シェルユニットを整理して下さい。そうすれば、
まだパスカルが使えるのに

442 :デフォルトの名無しさん:03/04/05 00:31
>>473
ありがd」

443 :デフォルトの名無しさん :03/04/05 00:35
コンパイル時のエラーで質問なのですが
致命的なエラー 〜.pas  〜.dcu’が作成できません
となってしまいコンパイルができません
dcuファイルについてぐぐっても見たのですが
dcuが見つからないというエラーでしかなく
作成できないという部分に触れてるページが見つかりませんでした
どなたかご教授お願いします
コンパイル環境は
Delphi6.0です

444 :デフォルトの名無しさん:03/04/05 00:48
>>443
再起動してもだめなら、多分パス設定が狂ってる。
別な場所に保存し直すとか、プロジェクトオプションの出力パスを弄ってみるとか。

445 :デフォルトの名無しさん:03/04/05 00:51
問題のdcuは、自分のプロジェクトのファイル?それともdelphi付属のファイル?
今まではコンパイルできてたの?
何かコンポーネントを新しく追加した?

とりあえずエラーメッセージを書き写してちょ。

446 :デフォルトの名無しさん:03/04/05 00:57
レスTHXです
>>444
別のところに移してもエラーはでました_| ̄|○
出力パスの方は弄り方がすこし分からなかったので手を出せない状況です
>>445
エラーメッセージは
[致命的エラー]Common.pas(2560): ファイル'..\obj\Common.dcu'を作成できません
というものです
他のモノではコンパイル可能でした



447 :デフォルトの名無しさん:03/04/05 01:11
>>446
>ファイル'..\obj\Common.dcu'を作成できません

そのobjというディレクトリが実在していないと見た。

448 :デフォルトの名無しさん:03/04/05 01:14
>>447
一応objディレクトリは存在しています
一体何が原因なんだろう・・・_| ̄|○

449 :デフォルトの名無しさん:03/04/05 01:16
           __________________________
   ∧,,∧    / よしよし
  ミ,,゚Д゚彡 <  いいこだ
   U  つ∀ \  今教えてあげるよ
 〜ミ  ミ ┴    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪


450 :デフォルトの名無しさん:03/04/05 01:17
うーん、それはdelphiの付属物じゃなくて自分のプロジェクトのファイルだよね。
いつからコンパイルできなくなったの?

451 :デフォルトの名無しさん:03/04/05 01:17
447様のレスを参考に色々考えてみたらできました
どうやらファイルを置く位置とobjディレクトリの場所が悪かったようです
レスくれた方ありがとうございました

452 :デフォルトの名無しさん:03/04/05 01:19
それはよかった。これからも頑張ってねん

453 :ねこま:03/04/05 02:09
こないだ久しぶりに Iria を起動したら,URL を登録すると直後にエラーで落ちるようになってて
見てみたら IRIAF.INI が 64KB を越えそうになっていた.
TIniFile でのエラーをキャッチしていないからそのまま死ぬみたい
こんなソフト結構多そう (w


454 :デフォルトの名無しさん:03/04/05 05:03
>>454
Win9x? NT?

455 :デフォルトの名無しさん:03/04/05 05:05
↑自分のOSくらい覚えとけよな

456 :デフォルトの名無しさん:03/04/05 05:12
Common.dcuは削除できますか?

457 :Del6Per,WinXPPro:03/04/05 05:19
よくソフトのバージョン情報のところに自分のサイトのハイパーリンクが張ってあるものを見かけるんですが、どうやって記述してるのでしょうか?

458 :デフォルトの名無しさん:03/04/05 05:53
単にアンダーライン付きで文字描いて、クリックされたらURLをShellExecuteするだけじゃ?

459 :デフォルトの名無しさん:03/04/05 06:26
BoolToIntが無いのは何故?

460 :デフォルトの名無しさん:03/04/05 06:28
>>459
Trueを表す数字
Falseを表す数字

なんてもんが存在しないからだと思います。

461 :デフォルトの名無しさん:03/04/05 06:41
では、次回作ではTrueなら0、Falseなら1とするように進化して欲しいですね

462 :デフォルトの名無しさん:03/04/05 06:55
>>461
意味の無い進化ですね。

463 :デフォルトの名無しさん:03/04/05 07:23
すみませんでした

464 :デフォルトの名無しさん:03/04/05 07:30
>>461
trueなら1falseなら0だろ?
function BoolToInt(Bool: Boolean): Integer;
begin
Result:=Integer(Bool);
end;

465 :デフォルトの名無しさん:03/04/05 09:37
>>459
Ordで済むから。
number := Ord(bool);

466 :デフォルトの名無しさん:03/04/05 09:57
>>1

467 :デフォルトの名無しさん:03/04/05 10:13
 ∧_∧
ミ ´∀`彡 < ふさぽ

468 :デフォルトの名無しさん:03/04/05 11:42
Delphi 6 Personal使ってるのですが、
OpenDialog ,SaveDialogを呼び出した後は
TIniFileでINIファイルが作成できません。。
呼び出さなければINIファイルは作成できるのですが、、
バグ(?)解決方法教えてください。



469 :A:03/04/05 11:49
>>468
試してないから想像だけど、カレントが変わっちゃってるからじゃない?

470 :デフォルトの名無しさん:03/04/05 12:36
というわけでofNoChangeDirをTrueに。

471 :デフォルトの名無しさん:03/04/05 12:51
>>468
バグじゃない。
君の書いたコードのどこかにバカなことが存在する。
素人ってのは玄人の想像もつかないバカなことをやる物だ。
よって玄人はこのままでは何が原因か特定できない。
しかし、君が書いたコードをそのまま公開すれば、玄人は数秒で答えを出せる。
まわりくどくならないようにスマートにやりたまえよ。

472 :デフォルトの名無しさん:03/04/05 13:12
>>410
遅くなりましたが、ありがとうございます。

473 :素人です:03/04/05 13:31
iniファイルの
[Add]
Name0=0
Kana0=0
Add0=0
Name1=1
Kana1=1
Add1=1

NameX=X (Xは任意の数)
KanaX=X
AddX=X
というような値を読みたいのですが
var
I : Integer;
begin
with TMemIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
begin
I := 0;
while I < ☆ do
begin
ListView1.Items.Item[I].Caption := ReadString('Add', 'Name'+ IntToStr(I), ListView1.Items.Item[I].Caption);
ListView1.Items.Item[I].SubItems[0] := ReadString('Add', 'Kana'+ IntToStr(I), ListView1.Items.Item[I].SubItems[0]);
ListView1.Items.Item[I].SubItems[1] := ReadString('Add', 'Add'+ IntToStr(I), ListView1.Items.Item[I].SubItems[1]);
Inc(I);
end;
Free;
end;
end;
としたとき、☆に何と書けばいいか教えて下さい。

474 :デフォルトの名無しさん:03/04/05 13:41
while ValueExists('Add', 'Name' + IntToStr(I)) do
で良いんじゃない?
Xかどこまであるかわからないってことでしょ?

まー連続で存在するってことと
NameXがあればKanaXとAddXがあるってことが前提だけど。

475 :デフォルトの名無しさん:03/04/05 14:24
つーか、try..finallyさねばまねし。

476 :ななしへたぐらま ◆XcB18Bks.Y :03/04/05 14:48
>>426

そのリストビューの名前が ListView1 だとすると….

var
 i: integer;
begin
 with TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
 try
  for i := 0 to ListView1.Items.Count - 1 do
   WriteString('Address', 'Address' + IntToStr(i), Edit1.Text + ',' + Edit2.Text + ',' Edit3.Text); // ☆
 finally
  Free;
 end;
end;

もしかして変数宣言もfor文もお使いになったことがありませんか?
どちらもプログラミングでは一番基本的かつ重要な部分なので
(英語ならアルファベット,算数なら引き算の繰り下がりくらい重要)
プログラミング初心者向けの入門書をお読みになって
ここをしっかり身につけてください.

なんとなくDelphiにさわっているだけでは決して身につきません.

※私のような旧世代人類は
 PRINT "HELLO"の次はもう変数でしたから
 今の若い子たちの悩みには気づきにくいのかもしれません.

※ちなみにTIniFileとTMemIniFileの使い方は全く同じで
 TIniFileが内部でWindowsのAPIを使って読み書きしている事が違うだけ.


477 :デフォルトの名無しさん:03/04/05 15:02
>>476
TMemIniFileはwrite後にUpdateメソッドがなにかを呼ばないと書き込まれない(はず)


478 :デフォルトの名無しさん:03/04/05 15:19
Form1がメニュー画面で、内容を選択するとForm1が Hide し、Form2(メイン画面)と
その上に乗ってるコンポーネントを動的に生成するようにしています。

今までは、Form2を閉じるとアプリケーションも終了するようになっていたのですが、
Form1に戻る必要ができたため、Form2に「戻る」ボタンを配置し、Form2.Release → Form1.show するように
しました。(これで、戻るを押したら、Form2とその仲間達が消滅するはず?)

ところが、Form1に戻ってから、もう一度メニュー選択でForm2を生成しようとしたところ、
EAbstractErrorが発生してしまいました。
地点は、ちょうどForm2上のImageを生成しようとした瞬間でした。

これって何を意味するのでしょうか・・・。

479 :デフォルトの名無しさん:03/04/05 15:27
才能の無さを意味する

480 :デフォルトの名無しさん:03/04/05 17:07
enterキーが押下されたときのイベントのロジックがどうも起動されないので

Label1.Caption:='KeyPress : #'+ IntToStr(Integer(Key));

でキーを表示してみたんですがどうもenterキーを認識していないようです。
単にラベル貼っただけのテストプログラムを作成してみたところ
enterキーは認識したので、何かとの組み合わせによりenterキーが無効になった
ようです。
わけがわからんので教えてください。
だれか同じようなことなったりしてませんか?

ちなみにDelphi 5 Personal win2k です

481 :デフォルトの名無しさん:03/04/05 17:17
その時他のキーは反応するの?
駄目なのはenterだけ?

482 :デフォルトの名無しさん:03/04/05 17:23
>>480
複数キーの同時押しだけ反応しないの?
もしそうならキーボードの(ハードウェア上の)制限だったりするかも。

483 :473:03/04/05 17:39
>>474
begin
i := 0;
with TMemIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
try
while ValueExists('Address', 'Name'+ IntToStr(i)) do
begin
ListView1.Items.Item[i].Caption := ReadString('Address', 'Name'+ IntToStr(i), ListView1.Items.Item[i].Caption); ※
ListView1.Items.Item[i].SubItems[0] := ReadString('Address', 'Kana'+ IntToStr(i), ListView1.Items.Item[i].SubItems[0]);
ListView1.Items.Item[i].SubItems[1] := ReadString('Address', 'Address'+ IntToStr(i), ListView1.Items.Item[i].SubItems[1]);
Inc(i);
end;
finally
Free;
end;
end;
とすると、
 プロジェクトTest.exeがEAccessViolation クラスの例外を生成しました。
 'Access Violation at adress 0047ECFE in module 'Test.exe' Read of
 adress 00000024'
と警告されて実行できませんでした…
※部分がおかしいみたいです。
たびたびすみません。どうかお助けください。

484 :426:03/04/05 17:42
>>476
詳しく教えていただけてほんと勉強になります。
一度for doで書いてみたのですが-1を書いていませんでした。
Countは1つ多く数えている事が知りませんでした。
ほんと勉強になりますありがとうございます<(__)>

485 :デフォルトの名無しさん:03/04/05 18:03
TListView(MultiSelect=False,ViewStyle=vs_Report,Columnの数は1)を使っているんですが
リストの中で右左どちらかのキーを押すと項目を一度全て削除して新たに追加後、
特定の項目を選択するようにしたいんですけど

procedure TForm1.ListView1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
C :Integer; // TListView
ListItem : TListItem;
begin
if (Key=VK_Left)or(Key=VK_Right) then begin
ListView1.Clear;
for C:=0 to 10 do begin
ListItem := ListView1.Items.Add;
ListItem.Caption := 'String'+IntToStr(C);
end;
ListView1.ItemIndex := 2;
end;
end;

このようにコードを書いた場合、確かに3番目の項目が選択されているように見えるのですが
何故か上を押しても項目移動しないし下を押すと1番目の項目が選択されてしまいます。
どうすればいいでしょういか。ちなみにDelphi6のパーソナルです。


486 :485:03/04/05 18:06
途中に無意味なコメント入ってるけど気にしないでください。

487 :478:03/04/05 18:08
プログラムを削りまくったところ、どうやら、Imageを作ってから
img.parent:=self; ってやってるんですが、これを nil にせずに Releaseすると
次にcreateしたときにアクセス違反になるみたいだ・・・。

で、本プログラムでこれを試してみたらダメだった・・・もうだめぽ。

488 :デフォルトの名無しさん:03/04/05 20:18
無料の6Perより有料の5Perの方が優れてるの?

489 :デフォルトの名無しさん:03/04/05 21:40
>>480
たぶん、DefaultプロパティがTrueになってるボタンがいる。

490 :ななしへたぐらま ◆XcB18Bks.Y :03/04/05 22:06
>>477
ふぉろー蟻賀登.

>>485
こちらにはDelphi 6がなく
またDelphi 5のTListViewにはClearメソッドもItemIndexプロパティもないので
再現できないのですが

ListView1.Selected := ListView1.Items[2]; // ☆
ListView1.ItemFocused := ListView1.Items[2]; // ★

こちらの環境(Delphi 5/Win XP)これでうまくいきました.
3番目の項目を☆で選択状態にして★でここにフォーカスを移動します.

実は今回の例では☆のコードが無くても選択状態になるのですが
これは選択状態になっている項目がないときに[←][→]キーを押すと
フォーカスのある項目が選択状態になるということで,
★のコードによって選択状態になったわけではありません.

たとえばVK_LEFT を ord('2') に変えてみて実行し,
テンキーでない方の[2]を押すと
3番目の項目にフォーカスは来ますが選択状態になりません.
この状態から[←]キーか[→]キーを押すと選択状態になります.

それにしてもItemIndexというプロパティ名ならばTListBoxのそれと同様に
代入すると選択状態してかつフォーカスがそこに移動すべきだと思います>某


491 :473:03/04/05 22:16
ListView1.Items.Item[i].Caption := ReadString('Address', 'Name'+ IntToStr(i), '');
にしてもまだだめです…
ReadStringの中に変数iを入れてはいけないのですか?
どうぞお願いします教えて下さい<(__)>

492 :あぼーん:03/04/05 22:20
( ´Д`)/< 先生!!こんなのを見つけました。
http://muryou.gasuki.com/hankaku/jaz09.html
http://muryou.gasuki.com/hankaku/jaz10.html
http://muryou.gasuki.com/hankaku/jaz07.html
http://muryou.gasuki.com/hankaku/jaz08.html
http://muryou.gasuki.com/hankaku/jaz05.html
http://muryou.gasuki.com/hankaku/jaz06.html
http://muryou.gasuki.com/hankaku/jaz03.html
http://muryou.gasuki.com/hankaku/jaz04.html
http://muryou.gasuki.com/hankaku/jaz01.html
http://muryou.gasuki.com/hankaku/jaz02.html

493 :デフォルトの名無しさん:03/04/05 22:55
>>491
Addしてください。

with ListView1.Items.Add do begin
 Caption := ReadString...
 SubItems.Add(ReadString...
 SubItems.Add(ReadString...
end;

こんな感じで。

494 :485:03/04/05 23:39
>>490
選択するだけでフォーカスは移動してなかったんですね。
ItemIndexに代入した後にItemFocusedを使う事でうまく行きました。
ありがとうございます。


495 :491:03/04/05 23:45
>>493
ついにできました〜感動です!!
ほんとうに感謝です!!
何でAddにしてなかったんだろう…
勉強不足ですね。
ほんとうにありがとうございました<(__)>

496 :137 件ヒットしました:03/04/06 00:03
http://www.lib.city.yokohama.jp/cgi-bin/Swwwssrt.sh?0+24674+137+4+0+1

497 :デフォルトの名無しさん:03/04/06 01:23
iniファイルのセクション丸ごと消す
VBでいうDeleteSectionといったものは
Delphiにありますか?

498 :497:03/04/06 01:25
EraseSectionを発見しましたすみません。
スレ汚しスマソ

499 :始めまして☆:03/04/06 01:42
ListViewのItemをアルファベット順で並べたいのですが
どうすればいいか教えて下さい

500 :あぼーん:03/04/06 01:43
   ______________
 /:\.____\
 |: ̄\(∩´∀`) \  <先生!こんなのがありました!
 |:在  |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/aomori/

501 :デフォルトの名無しさん:03/04/06 02:03
>>499
TListViewのCustomSortメソッド。
ヘルプのCustomSortメソッドに例がのってる。

502 :デフォルトの名無しさん:03/04/06 10:31
別のソフトから操作されないようにすることって出来るんですかね?

503 :デフォルトの名無しさん:03/04/06 10:50
其以上具体性解

504 :デフォルトの名無しさん:03/04/06 11:16
DELPHIだから無理

505 :デフォルトの名無しさん:03/04/06 11:22
>>502
わけわかんねーよカス!!

506 :デフォルトの名無しさん:03/04/06 11:41
WM_KEYDOWNみたいなのを受け取ったとして、他のソフトからPostされたものじゃないことを
識別できればいいのだろうけど、俺は知らない。

入力を全部DirectInputで受け取るようにすれば、他のソフトも通常の手段では
手が出せないのではないだろうか、とか考えてみる。

507 :デフォルトの名無しさん:03/04/06 12:34
ハンドルが無いプログラムってのはどう

508 :デフォルトの名無しさん:03/04/06 12:37
パスワード入力する時、キーを打つリズムで本人かどうか判断するって技術があったな。
あれを応用して作れ。

509 :StatulBar好き:03/04/06 13:25
StatusBar.Panel[1]のTextの色を変えたいのですが
Panelのことについてヘルプにのっていませんでした。
begin

end;
という形で書いていただけませんか?
青色に変えるというふうに書いて下さい。
よろしくおねがいします。

510 :デフォルトの名無しさん:03/04/06 13:37
>>509
あなたが望んだ形ではないですが、とりあえず回答してみます。

1) Panel の Style プロパティを psOwnerDraw にします
2) StatusBar の OnDrawPanel イベント・ハンドラで
  a) StatusBar.Font.Color プロパティに目的の色を設定
  b) StatusBar.Canvas.TextOut とイベント・ハンドラの引数で渡ってくる Rect を使って、目的の文字列を出力

の流れで目的の処理を達成できると思います。


511 :StatulBar好き:03/04/06 18:07
>>510
予想外にややこしいですね…。
ビックリしました。
頑張って朝鮮してみます。
レスありがとうございます

512 :まだまだ初心者です:03/04/06 18:26
過去にもありましたが
OpenDialog1.FileNameを削除するには
どう書けばいいか教えて下さい。
FileNameをクリアすればいいということですが
ClearでもDeleteでも失敗しました。

513 :まだまだ初心者です:03/04/06 18:32
あ、OpenDialogで選択したファイルを削除するのではなく
FileNameを何も選択していない時の状況に
したいです。


514 :デフォルトの名無しさん:03/04/06 18:34
OpenDialog1.FileName := '';
OpenDialog1.Execute;

515 :まだまだ初心者です:03/04/06 19:55
>>514
ありがとうございました。
できました。
このスレはいい人が多いですね。

516 :デフォルトの名無しさん:03/04/06 20:00
http://yahooo.s2.x-beat.com/linkvp/linkvp.html

517 :デフォルトの名無しさん:03/04/06 20:21
ファイルの読み込みの処理で

ttp://133.1.184.245/medinfo/takemura/delphi/del2.htm
ここの参考:ファイルを最後まで読み込むを参考にしていたのですが
readln(F,str); //memo1を一行ずつ読み込む
ここの行で[エラー] Unit1.pas(64): 'String' と 'Text' には互換性がありませんと出てコンパイルできません。
このエラーを回避し、ファイルの最後まで読み込むにはどういった書き方をすればいいのでしょうか。
どなたかご教授ください。

518 :517:03/04/06 20:23
使っているのはDelphi6 パーソナルです

519 :デフォルトの名無しさん:03/04/06 20:37
Delphi6パーソナルをつかっているのですが、質問宜しいでしょうか。

MP3を鳴らすプログラムを作っているのですが、
コンポーネントでActiveXでMediaPlayerを取り込んだのです。
そこで、

procedure TMainForm.MusicPlay(fn : Integer);
begin
MediaPlayer21.Open(Format('sound\\bg%.2d.mp3', [fn]));

end;

という手続きをつくったら無事になることができたのですが、
曲の最後まで進むと、曲が止まってしまいます。
これをループさせたい(曲の最後まで進むと同じ曲の最初に戻り再生しつづける)のですが、
どうやったらよいのでしょうか?
タイマーを使って

どうかお願いいたします。

520 :佐々木健介:03/04/06 20:50
     ______
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (5      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < こんなサイトを見つけた
|| | | |  \ ┃  ┃/    \  正直、スマンカッタ
| || | |    ̄         \_________
http://www.saitama.gasuki.com/nonaka/

521 :あぼーん:03/04/06 20:54
   ,.´ / Vヽヽ
    ! i iノノリ)) 〉
    i l l.´ヮ`ノリ <先生!こんなのがありました!
    l く/_只ヽ    
  | ̄ ̄ ̄ ̄ ̄|
http://www.saitama.gasuki.com/2ch/

522 :デフォルトの名無しさん:03/04/06 20:56
DelphiでI/Oポートを叩くにはどんなコードを書けばいいのでしょうか?
そもそもDelphiでできるんですか?
先輩に言われて困っています。よろしくお願いします。

523 :デフォルトの名無しさん:03/04/06 20:59
むり

524 :デフォルトの名無しさん:03/04/06 21:02
>>517

変数strやFが正しく宣言してありますか?
また、517さんが書いたプログラムの「AssignFile〜」の行が
どうなっていますか?

エラーメッセージどおりのエラーなら、「AssignFile〜」の行でも
エラーになることが多いんだけど、エラーになってないんですよね?

525 :522:03/04/06 21:06
>>523
糞レスしてないで教えろよ。

526 :デフォルトの名無しさん:03/04/06 21:14
begin
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←I/Oポート
end;

527 :522:03/04/06 21:17
>>526
コンパイルとおりませんでしたよ。
Delphiでって書きましたよね。

528 :デフォルトの名無しさん:03/04/06 21:29
>>527
Delphiを7にアップグレードしろ

529 :デフォルトの名無しさん:03/04/06 21:30
インラインアセンブラでinpとかoutpとか書く。9x系でのみ有効。

530 :522:03/04/06 21:32
>>528
コードって書きましたよね。
ったくネタしか書けない厨房は2ちゃんねるから出て行け。

531 :522:03/04/06 21:35
>>529
ありがとう。でもなんでランタイムいらないのに9x系だけなの?
どのOSでも動く奴お願い。Kylixでも使うつもりだから。

532 :デフォルトの名無しさん:03/04/06 21:37
Windowsのことを全然理解していないようでは無理なんじゃ・・・

533 :522:03/04/06 21:40
>>532
ん? ばか?
Delphiで作ったらEXEだけで動くんだからどのOSでも動くはずでしょ。
さすがに対応してないCPUとかハードウェアが違ったら動かないだろうけど。


534 :517:03/04/06 21:42
>>524
>変数strやFが正しく宣言してありますか?
はい、間違いありません。

>また、517さんが書いたプログラムの「AssignFile〜」の行が
>どうなっていますか?
まずはコピペで動かしてみようと思っていましたので
サンプルのassignfile(F,filename);のままです。

>エラーメッセージどおりのエラーなら、「AssignFile〜」の行でも
>エラーになることが多いんだけど、エラーになってないんですよね?
はい、なっていません。

535 :529:03/04/06 21:44
>>531
NT系の場合普通のプロセスからはポートにアクセスできない。(サービスとかデバドラからならOKだったかな)
OSがどんな保護をしているかの問題なので、Linuxはご自分で試してください。

536 :デフォルトの名無しさん:03/04/06 21:47
>>530
ネタしか書かないのはお前じゃない。それともマジレス・・・?

537 :デフォルトの名無しさん:03/04/06 21:54
>>519
最後のタイマーつかってってのはなんなんだ?
そのファイル名からしてMP3ファイルがいくつかあるんだろうが、
曲の長さをととのえないと面倒だろうな。

曲の先頭に戻るだけ、普通のリピートならコンポーネントあたりさがせばあるのかも
しれんが俺は知らん。
きっと538が答えてくれる。

538 :デフォルトの名無しさん:03/04/06 21:56
>>531
勘違いしているDel厨多いけど、Delphiでもランタイムいるよ。
EXEをDependency Walkerとかで調べてみ。
どこでそういう誤解が生まれたんだろうね。困ったもんだ。

539 :デフォルトの名無しさん:03/04/06 21:58
>>519
MediaPlayerを取り込んだら、そのEXEはMediaPlayerの
バージョンやバグに依存してしまうがそれでも良いのか?
Delphiで作ったEXEと一緒に配布は出来ないぞ。

540 :ドキューンズ ◆DQNES/NnnM :03/04/06 21:59
デルファイは初心者です。
メニューの項目にチェックマークが付いているかどうかを取得
するにはどうすればよいですか?

541 :デフォルトの名無しさん:03/04/06 22:00
>>538
そらま、user/gdi/kernelに依存せずに作るのは事実上無理だ。
でも、I/Oポートの場合、特権とか保護とかの話でランタイムは関係無いけどなー…

542 :522:03/04/06 22:00
>>536
答える気がないならでてこなくっていいからさ。

543 :デフォルトの名無しさん:03/04/06 22:03
本物の522はまだか?

544 :デフォルトの名無しさん:03/04/06 22:08
Delphiではなく、C++Builderなのですが、VCLに関することなので

TTimerで、Form->Invalidate()を呼ぶと、ちらつくのですが
Form->OnPaint(Sender)とすると、ちらつきが抑えられるのは何故ですか?

545 :デフォルトの名無しさん:03/04/06 22:11
>>544
前者だと、WM_ERASEBKGNDが送られて一度背景色で全部塗られるけど、
後者だと既に描かれているものの上に直接上書きするからじゃない?

546 :519:03/04/06 22:13
>>539
Delphiビジュアルプログラミラング秘密のテクニック150という本を参考に
やって見たのです。
MediaPlayerに依存しないで、最初からあるTMediaPlayerだけでできればいいんですけど。
CDからの演奏ならできたんですが、MP3だとできなくて。

547 :デフォルトの名無しさん:03/04/06 22:21
>>540
TMenuItem.Checked

548 :522:03/04/06 22:23
>>543
>>522は俺しかいないけどな。

549 :ドキューンズ ◆DQNES/NnnM :03/04/06 22:23
>>547
If TMenuItem.Checked=true then

とかですか?

550 :デフォルトの名無しさん:03/04/06 22:26
Delphiのライブラリって所詮APIかActiveXをラップしただけなんだね。

551 :デフォルトの名無しさん:03/04/06 22:31
>>549
OK

552 :ドキューンズ ◆DQNES/NnnM :03/04/06 22:33
ありがとうございます。

553 :基本すぎてごめんなさい:03/04/06 22:45
StingGridというコンポーネントに挑戦中なのですが
セルを編集できないんです…。
MemoとかEditとかならLinesとかTextといった
プロパティーで予め文字を入力しておけますよね?
StringGridはフォームエディタ上でセルを編集したりできないのですか?
とても基本的な事なのだと思いますが
フォームエディタ上でどうすればセルを編集できるかで
1時間も悩んでいます…
どうぞお助けください

554 :Delフサギコ ◆A6VzDeLphI :03/04/06 22:52
    ,,,,,,,,,,,,,,,∧,,∧   / できませんので
  〜′,,,,,,,,,,ミ,,゚Д゚彡<   ご安心してください。
   UU"""" U  ⊃  \>>553さん


555 :デフォルトの名無しさん:03/04/06 22:54
アクセスカウンタほしいのですが…

556 :デフォルトの名無しさん:03/04/06 23:03
はぁ、そうですか。

557 :デフォルトの名無しさん:03/04/06 23:04
今日は荒らしが沢山

558 :デフォルトの名無しさん:03/04/06 23:06
他のソフト上のボタンの(画面上の)位置を取得するには、どんなAPI(?)を使えば良いのでしょうか?
ヒントだけでもお願いします。

559 :デフォルトの名無しさん:03/04/06 23:08
また荒らし出現

560 :デフォルトの名無しさん:03/04/06 23:09
すいませんDelphiでDirectX使うにはどうすればいいんですか。
ヒントだけでもお願いします。

561 :デフォルトの名無しさん:03/04/06 23:11
DelphiでGIF解凍アルゴリズムを作りたいです。
ライセンスに抵触しますか?

562 :デフォルトの名無しさん:03/04/06 23:12
アクセスカウンタおねがいしまする

563 :デフォルトの名無しさん:03/04/06 23:13
>>561
研究用に作るだけなら特許には抵触しないはずです。

564 :Delフサギコ ◆A6VzDeLphI :03/04/06 23:13
            _____________
   ∧,,∧    />>558さん
   ミ,,゚Д゚彡 <  EnumChildWindowとか・使う?
   ,;゙   ミ     \ボタンがWindowだったらいいけどな
 @ミ,,,UUミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
マ板でマインスイパを解くスレってあったけど
マイスパのボタンはWindowじゃないから
位置を特定するのは画面をBitmapとして
取得してから解析するんでしょうか?
面倒そうです。

565 :デフォルトの名無しさん:03/04/06 23:14
Delphiで魚釣り死体です。どうすればいいか

566 :デフォルトの名無しさん:03/04/06 23:23
Delphiで彼女作りたいです。タダ版のやつで作れますか? 作った後売れますか?

567 :デフォルトの名無しさん:03/04/06 23:25
>>566
ソースを公開してください。

568 :デフォルトの名無しさん:03/04/06 23:26
ソースといわれてもいろんなのがあるのでどれか分かりません。

569 :517:03/04/06 23:30
私の問題はどうすれば解決するのでしょうか…

570 :デフォルトの名無しさん:03/04/06 23:31
いいソースを使えば解決します。ちなみに僕は辛口が好きです。

571 :デフォルトの名無しさん:03/04/06 23:36
フォームを閉じるとき、もし後から生成したモノがあれば後始末をしなければいけませんが、
OnClose、OnCloseQuery、OnDestroyはどう使い分けたらいいのでしょうか?

もし、親がDestroyされてから子をFreeしようとするとコケるかなと思いまして・・・。

572 :デフォルトの名無しさん:03/04/06 23:42
こけたなら立て直せばいい。
発想の転換だ。
こけないようにするのは難しい。

573 :デフォルトの名無しさん:03/04/06 23:43
釣れた!!


574 :デフォルトの名無しさん:03/04/06 23:45
萌えっ萌えっ萌えっ萌え〜!
っもーっえーっ!

575 :デフォルトの名無しさん:03/04/06 23:47
>>572
了解!悩んでもしょうがないので
OnCreateで作ったモノはOnDestroyで解放しとけば問題なし!として一旦やってみます。

576 :デフォルトの名無しさん:03/04/06 23:58
DelphiのクラスをVCで継承するにはどうすれば良いでしょうか?

577 :デフォルトの名無しさん:03/04/06 23:59
VCLとVCは同違いますか? LGPLとGPLの違いと同じですか?

578 :デフォルトの名無しさん:03/04/07 00:01
今日は釣りが多いので明日までカキコ禁止。

579 :デフォルトの名無しさん:03/04/07 00:08
>>578

零時一分。和露タ。

580 :デフォルトの名無しさん:03/04/07 00:13
>>517
assignfileを使うファイルアクセスはobsolateになるべき手法で、下位互換性のために存在してます。
基本的にTFileStreamを使ってください。

それと、string型のファイルを読み込むのならストリームを使わずにTStringListのLoadFromFileを
使うと簡便でいいですよ。 (そこ、手抜きなんてイウナ)

581 :517:03/04/07 00:16
>>580
ありがとうございます!TStringsを使って自分で書き直してみます。

582 : :03/04/07 00:17
あー、オレなんか何も考えずにTStringlistだな。

583 :580:03/04/07 00:24
待ってー。TStringsは直接生成できないクラスです。

もう少し勉強すると出てきますが、TStringsは抽象クラスと呼ばれ、
メソッドの名前だけが定義されたクラスです。
実際にはTStringsから派生した、メソッドが実装されたクラスを使うことになります。

それがTStringListです。

584 :517:03/04/07 00:29
>>583
あせってしまってすいません。今からヘルプ見て頑張ってみます。
ありがとうございました。

585 :580:03/04/07 00:33
>>584
どういたしまして。がんばってくださいねぇ。私もがんばります。

586 :580:03/04/07 00:45
あらま、ドッペルゲンガーさんですか。>>585
私の言いたいことを正確にimplementしてくれてありがとうございました。

>>583
頑張ってくださいね。コーディングはどれだけ手札を持っているかが大きく効いて来ます。
ここで質問すれば自分が考えていた以外の手法を教えてもらえるかもしれません。
困ったら(ググールで検索してから)気軽にまた来てくださいね。

587 :デフォルトの名無しさん:03/04/07 00:53
アクセスカウンタとりつけたいのですが…

588 :デフォルトの名無しさん:03/04/07 00:55
>>587
http://www.google.com/search?num=50&lr=lang_ja&q=アクセスカウンタ%20設置

589 :580:03/04/07 01:07
>>586
偽者消えろ

590 :デフォルトの名無しさん:03/04/07 01:11
ttp://isweb41.infoseek.co.jp/computer/ultra-k/emoji.jpg
のように小さいボタンを密集させて押せる
もしくは、小さなセルを選択できるようにしたいのですが
どのコンポーネントをつかっていいのか分かりません。
ListView、ListBox、StringGridを頑張って見たのですが
うまくいきませんでした…。
上にあるような感じにしたいのですが
どのコンポーネントを使えばいいのでしょうか?
どうか教えていただけませんか?

591 :デフォルトの名無しさん:03/04/07 01:16
DrawGridが近そうだね。

592 :デフォルトの名無しさん:03/04/07 01:42
>>591
DrawGridってなんですか?

593 :デフォルトの名無しさん:03/04/07 01:59
>>592
それはヘルプで引いてみてください。F1押してヘルプが立ち上がったら、TDrawGridで検索を。
升目の中に色々なデータやグラフィックを保持・表示するためのコンポーネントです。
実際の使い方はググールで引けば潤沢に見つかると思います。

>>589
もう少しスマートなコーディングでお願いします。

594 :592:03/04/07 02:07
>>593
ググールってなんですか?


595 :デフォルトの名無しさん:03/04/07 02:11
>>594
www.google.com

596 :デフォルトの名無しさん:03/04/07 02:16
>>594
googleのことです。HPはhttp://www.google.com
Larry PageとSergey Brinの二人が1998年9月に創立した検索エンジンサービスです。
高速検索、シンプルなサイトデザイン、キャッシュシステム、そして何より、独自のページランキング
による的確な検索により、検索エンジン業界をたちまちに席巻しました。

便利ですよ。一度行って見てはどうでしょう?

597 :592:03/04/07 02:18
>>596
googleの関係者ですか?
宣伝に必死ですね(w

598 :デフォルトの名無しさん:03/04/07 02:20
>>592
TDrawGridは使いこなせましたか?
あなたはまだまだスキルが足りなさそうでとても心配です。
分からないことがあったらまた来てくださいね。

599 :592:03/04/07 02:28
>>598
> 分からないことがあったらまた来てくださいね。
お言葉に甘えてまた来ました。

TDrawGridの使い方が分かりません。
具体的なコードを教えてくれませんか。

私の悩みがなくなったら、あなたの心配事がなくなると思います。
一緒にがんばりましょう。

600 :デフォルトの名無しさん:03/04/07 02:32
>>592
具体的なコードはgoogleで検索すると沢山みつかりますよ。
http://www.google.com/search?num=50&lr=lang_ja&q=TDrawGrid
とIEのアドレスバーに書き込んで、Enterを押してみてください。
アドレスバーが表示されていない場合はctrl+oと押すとアドレスを入力する欄が現れます。

601 :デフォルトの名無しさん:03/04/07 02:39
>>592
検索の結果、Delphiで理解できないところがあるならまたここへ来てください。
日本語が理解できない場合は小学校からやり直してください。
精神的に切ないのならメンタルヘルス板http://etc.2ch.net/utu/
或いは人生相談板http://life2.2ch.net/jinsei/
に行くと的確なアドバイスが貰えるでしょう。

それともう一つ。
何でもすぐに他人から答えを貰おうという姿勢ではプログラミングも、人生も、決して上達しませんよ。
もっと自分で解決する癖をつけましょう。

602 :592:03/04/07 02:45
>>600
> 具体的なコードはgoogleで検索すると沢山みつかりますよ。
沢山見つかりますよといわれてもねぇ。あるのは容易に想像できます。
宇宙人はいますよ。と同じようなことです。問題はどこにあるかです。
残念ながらその程度の少ない情報では私の求める答えは見つかりません。

603 :デフォルトの名無しさん:03/04/07 02:46
深夜営業の釣堀はここですか?

604 :592:03/04/07 02:47
>>601
あなたは私を侮辱したいだけなのですか?
もう少し大人になって、物事の論点を見抜く力を養いましょう。

605 :デフォルトの名無しさん:03/04/07 02:48
>>603 部外者は帰れ

606 :デフォルトの名無しさん:03/04/07 02:52
604は侮辱されたことは分かるんだ
文盲のくせに自分の悪口には敏感だね(プッ

607 :592:03/04/07 02:54
>>606
バカのようですね。
文盲ではないから侮辱だと分かるのです。
自分の発言の矛盾点すら気づかないのですか?

608 :592:03/04/07 02:59
うざい煽り厨はいいからさ、話元に戻そうぜ。

TDrawGridの具体的なコード書いてください。

609 :デフォルトの名無しさん:03/04/07 03:01
>>608
マニュアル嫁
話はそれからだ

610 :デフォルトの名無しさん:03/04/07 03:04
>>606
侮辱なんてしてませんよ。もぅ、失礼な。

>>592
>宇宙人はいますよ。と同じようなことです。問題はどこにあるかです。
私はあなたにパッフル望遠鏡をあげたのです。あとはあなたがそれを覗き込むだけです。
(電波望遠鏡じゃないかってツッコミは無しですよ)

>あるのは容易に想像できます。
覗き方が分からないのなら、それを教えることは出来ます。ですが、覗く気が無い
人に宇宙人を探すことはできません。リンク先を順に読んでいって下さい。
ここは、読んでもDelphiが理解できない人に解釈の仕方を教えるスレです。

プログラミングは情熱です。文献を読む気力も無くては、この先ままなりませんよ。
今日はもう寝ます。おやすみなさい。

明日は、文献のどこが理解できないのか、きちんと指摘してくださいね。

611 :デフォルトの名無しさん:03/04/07 03:11
>>592
それと、寝る前に最後に二つ。
あなたはもっと日本語を勉強するべきですよ。
読解力も、言葉の遣い方も、決して人前で胸を張れるものではありません。
プログラミングは論理の構築です。日本語が正しく遣えないうちは決して極めることはできません。

もう一つ、あなたは忍耐力が足りません。プログラミングは根気の要る作業です。
もっと大人になりましょう。

612 :558:03/04/07 03:13
>>564
また色々調べて見ます
レスありがりとうございました

613 :デフォルトの名無しさん:03/04/07 04:28
いくらやさしいフサギコスレっていってもネタ師は無視したほうが・・・

614 :デフォルトの名無しさん:03/04/07 05:13
Delphi7のダウンロードが終了しました。
これからここの世話になると思いますので、よろしくお願いします。

615 :デフォルトの名無しさん:03/04/07 05:31
>>614
Del7は.netスレいけ

616 :デフォルトの名無しさん:03/04/07 06:38
>>615
度阿呆

617 :デフォルトの名無しさん:03/04/07 06:42
ダウンロード販売やってたのか
知らなかったよ

618 :デフォルトの名無しさん:03/04/07 06:55
Shift押すと,Label1.Captionの値が変わる.というのはどう書けばよいですか?
例えば,プログラムを実行してるときに,
Shiftを押す → a が表示される.
Shiftを押さない → b が表示される.

...でgoogleしれ,っていうのでもいいんでお願いします.

619 :デフォルトの名無しさん:03/04/07 07:07
GetKeyStateを検索

620 :618:03/04/07 07:09
>>619 ありがとうございます.

621 :デフォルトの名無しさん:03/04/07 07:09
イベントはOnKeyPressあたりで

622 :618:03/04/07 07:12
>>621 
なるほど.やってみます.ありがとうございます.

623 :デフォルトの名無しさん:03/04/07 07:31
if Key = Chr(VK_SHIFT) then
の方が合ってるみたいだねスマソ

624 :デフォルトの名無しさん:03/04/07 07:46
goto文の存在価値とは?

625 :デフォルトの名無しさん:03/04/07 08:45
>>624
無に等しい。

626 :デフォルトの名無しさん:03/04/07 09:22
Delphi6 って XP 上での動作保証、してないんですって?

627 :デフォルトの名無しさん:03/04/07 09:26
XPの方が後から発売されたからね

628 :618:03/04/07 09:48
OnKeyPressでGetKeyState使ってみました.
Shift押してもLabelは変化しません.
Shift押しながら適当なキーを押したら変わってくれるのですが...
朝からやってるのですが,できません.
だれか助けてくだせい.
一応,ソースを.
procedure TForm1.CheckShift(Sender: TObject; var Key: char);
begin
if GetKeyState(VK_SHIFT) < 0 then
Label1.Caption := 'a'
else
Label1.Caption := 'b';
end;

629 :480:03/04/07 09:50
>>489
亀レスですが...
確かにDefaultプロパティがTrueになってるボタンがいました!
ありがとうございますた。恩にきます。

630 :デフォルトの名無しさん:03/04/07 10:04
>>618
OnKeyDownでラベル変えて、OnKeyUpで戻す。のでは?

631 :デフォルトの名無しさん:03/04/07 10:10
>>627
D6 発売時には XP は存在しなかったから某にしても「動作保証」はできないが、
D6 Update2 を当てることで XP での動作が「保証」されているぞ。

ここの
http://bdn.borland.com/article/0,1410,28187,00.html
Answer: の後半。「..しかしながら二つ目のアップデートパックをインストールすることで
XP での動作が保証されます」

あの ML の、彼とか彼とか戸田とかの記述はあまり信用しないほうが良い。必ず裏を取るように。
裏が取れない場合は、彼らの根拠なしの感想だと思ったほうがよい。


632 :626:03/04/07 10:36
>>631
サンクス。ためになったよ。

ML のことは、まぁあまり悪口は書かかんほうが良いよ。荒れる原因になるし。


633 :デフォルトの名無しさん:03/04/07 10:41
Tmemo上でcntl+Enterを押した時、HTMLの閉じタグを補完したいのですが、
具体的にどのようにしたらよいのでしょうか?
<table><tr><td>とあったら、
<table><tr><td></td>
<table><tr><td></td></tr>
<table><tr><td></td></tr></table>
という風に補完していきたいのです。
環境はD6 per です。
よろしくお願いします。

634 :デフォルトの名無しさん:03/04/07 10:53
HTML のパーサーを持っているとして、不完全 HTML ソースから補完したソースを
返す関数を function HTMLComplete( const s : string ) : string; とする。

OnKeyPress で inherited を呼び出してから(押されたキーのデータを Memo に反映させてから)
Memo1.Text := HTMLComplete( Memo1.Text);

このままだと、ちらつきやキー反応速度が低下するので、実用的には OnKeyPress でタイマーを
動かし、0.5 秒程度で補完コードを呼ぶ用にするとよいかも。

635 :aaaa:03/04/07 10:55
http://www5b.biglobe.ne.jp/~ryo-kyo/osu.html

http://my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/279026/pack/win95/game/table/pachinko/sikisai.lzh

636 :デフォルトの名無しさん:03/04/07 11:10
>>635は「MONEY」というネットで稼ぐ系の個人サイトでした

637 :デフォルトの名無しさん:03/04/07 11:23
ところでTDrawGridについて分かりやすいサイトないですか?

638 :デフォルトの名無しさん:03/04/07 11:33
ボリュームコントロールをクイックランチャーに入れて、アイコンの上で数秒待つと「音量を調節します」というのがポップアップされます。
で、プロパティを見たら、コメントのところ文字列が表示されてることが分かりました。

ショートカットが作られたときに、このコメントに文字を入れるにはどうすればいいのでしょうか?

639 :デフォルトの名無しさん:03/04/07 11:44
>>638
IShellLink

640 :デフォルトの名無しさん:03/04/07 11:47
>>637 VCL ソース。


641 :デフォルトの名無しさん:03/04/07 11:50
>>640
ダウソできるところ教えてください。

642 :デフォルトの名無しさん:03/04/07 11:52
朝一番あげ

643 :デフォルトの名無しさん:03/04/07 12:21
>>641
Winny

644 :デフォルトの名無しさん:03/04/07 12:23
>>643
ハッシュ教えてください

645 :デフォルトの名無しさん:03/04/07 12:50
>>642
Winnyをダウソする方法を教えてください

646 :デフォルトの名無しさん:03/04/07 12:59
>>639
Thank you very much!

647 :デフォルトの名無しさん:03/04/07 13:50
ショートカット関係調べてたら、嫌なこと発見してしまった。
最大化ボタンを無効にしてるのに、ショートカットの起動時のサイズってところを最大化にすると強制的に最大化で表示されてしまう・・・。
アア、ナンテマヌケナスガタ...

648 :デフォルトの名無しさん:03/04/07 14:26
キニスンナ。


649 :デフォルトの名無しさん:03/04/07 15:15
>>647
タスクマネージャとかでも出来るよ。

650 :デフォルトの名無しさん:03/04/07 15:50
タスクマネージャで強制的に最大化したら操作不能になったからヨシ

651 :ななしへたぐらま ◆XcB18Bks.Y :03/04/07 18:08
>>608
DrawGridを使う場合,画像は別に用意します(※DrawGridに画像を持たせることは出来ません).

以下は画像の一覧がイメージリスト(TImageList)に格納されている場合の例.
DrawGrid1のプロパティは
・FixedRows, FixedCols →0
・ScrollBars→ssNone
・ColCont, RowCount →必要な桁数と行数

ここから(一部省略しています)

type
TForm1 = class(TForm)
DrawGrid1: TDrawGrid;
ImageList1: TImageList;
procedure DrawGrid1Click(Sender: TObject);
procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure DrawGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private 宣言 }
FMouseDown: boolean;
function ImageIndexOfGridCell(aCol, aRow: integer): integer;
public
{ Public 宣言 }
end;

つづく


652 :ななしへたぐらま ◆XcB18Bks.Y :03/04/07 18:10
( >651 のつづき:実装)
procedure TForm1.DrawGrid1Click(Sender: TObject);
var
ImageIndex: integer;
begin
if FMouseDown then
begin
ImageIndex := ImageIndexOfGridCell(DrawGrid1.Col, DrawGrid1.Row);
if ImageIndex >= 0 then
ShowMessageFmt('(%d, %d)のセルがクリックされたぜ!この絵の番号は%dだ!', [DrawGrid1.Col, DrawGrid1.Row, ImageIndex])
else
ShowMessageFmt('(%d, %d)のセルがクリックされたけどここには絵がないぜ!', [DrawGrid1.Col, DrawGrid1.Row]);
end;
end;
// セルに画像を描画します.※DrawGrid1のFixedRows, FixedColsが0でないと正しく動きません!
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
ImageIndex: integer;
begin
ImageIndex := ImageIndexOfGridCell(ACol, ARow);
if ImageIndex >= 0 then
ImageList1.Draw(DrawGrid1.Canvas, Rect.Left, Rect.Top, ImageIndex)
else
begin
DrawGrid1.Canvas.MoveTo(Rect.Left, Rect.Top);
DrawGrid1.Canvas.LineTo(Rect.Right, Rect.Bottom);
end;
end;

(すまぬ,まだつづく)

653 :ななしへたぐらま ◆XcB18Bks.Y :03/04/07 18:11
( >652 のつづき)
procedure TForm1.DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FMouseDown := True;
end;

procedure TForm1.DrawGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FMouseDown := False;
end;

// DrawGrid1の指定された位置のセルに対応する画像の番号(0〜)を返します.
// 対応する画像がない場合はー1を返します.
// ※DrawGrid1のFixedRows, FixedColsが0でないと正しく動きません!
function TForm1.ImageIndexOfGridCell(ACol, ARow: integer): integer;
begin
Result := DrawGrid1.ColCount * ARow + ACol;
if Result >= ImageList1.Count then
Result := -1;
end;

(以上)


654 :デフォルトの名無しさん:03/04/07 20:58
コンポーネントのインストールっていうのは
どういうことが行なわれているんですか?
コンポーネントがインストールされたのはわかりますが、
結局、何がどうなってインストールされたのかが気になります。

655 :ListViewに挑戦中:03/04/07 21:30
ListViewのItemたちをSortしたいのですが
オブジェクトインスペクタのSortTypeプロパティで
seTextを選択したらItem(ListViewの最も左の列)
を基準にSortしますよね。
これをSubItem[0](ListViewの左から二番目の列)
の順にSortするにはどうすればいいでしょうか?

656 :デフォルトの名無しさん:03/04/07 22:01
>654
BPLにコンパイルしてIDEが読み込んでRegisterルーチンを呼び出す。

657 :デフォルトの名無しさん:03/04/07 22:05
IntToStr(SizeOf(OpenDialog1.FileName))
はOpenDialog1で選択されたファイルに関係なく
常に「4」を示すのですが何故なのでしょうか?
OpenDialogで開いたファイルのサイズをバイト数で
出したいです。

658 :デフォルトの名無しさん:03/04/07 22:07
>>655
SortType を stData にして、OnCompare イベントハンドラ↓を追加

procedure TForm1.ListViewCompare(Sender: TObject; Item1,
 Item2: TListItem; Data: Integer; var Compare: Integer);
begin
 Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]);
end;

659 :デフォルトの名無しさん:03/04/07 22:07
>>656
サンクス。

660 :655:03/04/07 22:18
>>658
ありがとうございます。
OnComareは初耳でした。
この機会にマスターしておきます。

661 :デフォルトの名無しさん:03/04/07 22:26
>>657
>常に「4」を示すのですが
文字列変数のサイズが4だから。

>ファイルのサイズをバイト数で
GetFileSize(OpenDialog1.FileName)として取得

function GetFileSize(const path: string): Integer;
var
 searchRec: TSearchRec;
begin
 if FindFirst(path, faAnyFile, searchRec) = 0 then
 begin
  Result := searchRec.Size;
  FindClose(searchRec);
 end
 else
  Result := 0;
end;

662 :デフォルトの名無しさん:03/04/07 22:57
みなさんはDELPHI6をつかってるんですか?

663 :655:03/04/07 22:58
>>658
納得できて書いたのですが
いざItemを入れてやるとSortしてくれません。
OnCompareイベントは自動でSortしてくれないのですか?
それとも何か間違っているのでしょうか?

664 :657:03/04/07 23:11
>>661
ファイルサイズを取得するは
そんなにややこしいのですね(;´Д⊂)


665 :デフォルトの名無しさん:03/04/07 23:19
>>663
ListView と OnCompare イベントハンドラがリンクしていないのかも。。。
オブジェクトインスペクタでイベントハンドラを作成しましたか?
ListView の SortType を stData にしましたか?

666 :663:03/04/07 23:26
>>665
オブジェクトインスペクタのOnCompareイベントをダブルクリックして
procedure TForm4.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
begin

end;
をコードエディタに出しました。
それでbegin と end;の間には
Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]);
と書きました。
SortTypeはstDataになっています…
ん〜やっぱりItemを追加してもSortしてくれません…

667 :デフォルトの名無しさん:03/04/07 23:43
>>666
BeginUpdateとEndUpdateの間でアイテムを追加・設定してみて下さい。
var
item: TListItem;
begin
ListView.Items.BeginUpdate;
item := ListView.Items.Add;
item.Caption := '';
item.SubItems.Add('');
ListView.Items.EndUpdate;
end;


668 :663:03/04/07 23:44
ListViewのプロパティーが何か間違っているのでしょうか?
Sortする時はこのプロパティーをTrueにしていてはダメ
といった項目はあるのですか?

669 :663:03/04/07 23:45
>>667
はいやってみます!!
ありがとうございます。

670 :663:03/04/07 23:51
>>667
Sortされました!!
Itemを追加したり削除したりする時は
BeginUpdateとEndUpdateの間に
はさめばいいということですか?

671 :デフォルトの名無しさん:03/04/07 23:53
BeginUpdate〜EndUpdateで狭んでおかないと
Items.Addした時点ですぐにSortしようとする→まだSubItemない→マズー
ってことなのかな。推測だけど。

672 :デフォルトの名無しさん:03/04/07 23:58
BeginUpdateとEndUpdateの間でまとめてアイテムの更新等をして下さい。
処理時間も短縮します。

673 :657:03/04/08 00:47
>>664
やっと理解できました。゚(゚^ヮ^゚)゚。
ありがとうございました☆

674 :663:03/04/08 00:50
>>671
>>672
Sortできました〜。
ほんと親切にありがとうございました。
早くDelphiを使いこなせるように頑張ります!

675 : :03/04/08 00:59
質問は敬語でも礼は「サンクス」なのはどうだろう?

676 :デフォルトの名無しさん:03/04/08 01:02
またこいつウザ

677 :ななしへたぐらま ◆XcB18Bks.Y :03/04/08 01:33
スルーしる(w.


678 :デフォルトの名無しさん:03/04/08 01:48
質問ですが、既に開かれているポートにDelphiから文字列を送信することってできるのでしょうか?
例えばこんな感じ
TCP 自分のアドレス:ポート(1973) サーバーアドレス:ポート(43200) ESTABLISHED
当然indy等ででつなごうとすると既にポートは使われています。
といわれます。


679 :デフォルトの名無しさん:03/04/08 01:56
>>678
>当然indy等ででつなごうとすると既にポートは使われています。といわれます。

当然あなたのミスだと思います。


680 :Delフサギコ ◆A6VzDeLphI :03/04/08 03:25
 ミ,,゚Д゚彡
使われているポートとは
通信を確立できなかったのではなかったすか?



681 :678:03/04/08 04:22
不明な文章ですみません;;
サーバーアプリAとクライアントアプリAの通信が確立され維持されているポート
に別のアプリBからあたかもクライアントアプリAが送信したかのような効果をねらっています。
その際アプリBとクライアントAが同じIPアドレスを所有していればもしかして可能なのではとおもって質問させていただいています。
Indyみたいな高級なコンポーネントで無理なのは分かったのですが、Winsockを直接いじるにはスキル不足でソースが作れません。
単に送信できるだけで十分なのですが…
よろしくおねがいします。

682 :デフォルトの名無しさん:03/04/08 06:57
何を「よろしく」なの?

683 :デフォルトの名無しさん:03/04/08 08:11
ソフトを初めて起動したときにOnActive, OnCreate, OnHide, OnShowの起こる順番を教えてください

684 :デフォルトの名無しさん:03/04/08 08:20
>>683
自分で試せよ。

685 :デフォルトの名無しさん:03/04/08 08:34
[起動時]
FormCreate
FormShow
FormActivate
FormCanResize
FormConstrainedResize
FormResize
FormPaint

[終了時]
FormCloseQuery
FormClose
FormHide
FormDestroy

686 :デフォルトの名無しさん:03/04/08 08:35
>>681
よーするに、TCP/IP で別人へのなりすましをやりたいと。
できません。

もし、やり方が見つかったら、即刻ふさがれます。
安心して、そのようなことはできない。と理解してください。

687 :デフォルトの名無しさん:03/04/08 08:47
>>681
アプリBからクライアントアプリAにメッセージを送って操作して下さい。

688 :デフォルトの名無しさん:03/04/08 08:53
>>687
妥当だな。

689 :デフォルトの名無しさん:03/04/08 11:09
コンボボックスの入力文字数を制限したいんですが、
そういったプロパティはないのでしょうか?
具体的には
・半角文字特定数以外は入力出来ないようにしたい
・全角文字が入力された場合は何も入力出来ないようにしたい
と思ってます。

690 :デフォルトの名無しさん:03/04/08 11:11
>>689
サブクラス化とか言ってみる。

691 :デフォルトの名無しさん:03/04/08 11:15
いつのまにかできてる「.~dpr」って、どういうことするファイルですか?

692 :デフォルトの名無しさん:03/04/08 11:16
>>691
バックアップファイル。

何かの拍子に、

CTRL + A
Del
CTRL + S

なんて操作をしてしまったときに有効。

693 :デフォルトの名無しさん:03/04/08 11:26
バックアップという言葉があるならバックダウンやフロントアップもありそうだ。

694 :デフォルトの名無しさん:03/04/08 12:46
>>693
バックドロップならあるぞ

695 :デフォルトの名無しさん:03/04/08 13:49
>>681
TCP/IPのパケをキャプチャするだけならlibpcapと言う手もありますが、
成りすましで送るっていうのは手法としては分からないです。ごめんなさい。

ネットゲームの世界でチートに使われるwpeというツールではローカルPC上の
プロセスからサーバへのパケットを横取り、改竄して再送信できているようですし
全く方法がないというものでの無いようです。
(個人的には687氏の仰ることが正論そのものだと思いますけどね。)

696 :デフォルトの名無しさん:03/04/08 14:06
プロフェッショナル版にはAPI辞典みたいなヘルプが付いてますか?

697 :デフォルトの名無しさん:03/04/08 14:13
API辞典というのはwindowsプラットフォームSDK文書のことでしょうか。
D5Proには付属してますよ。但し英語版ですが。
私はVisualStudio付属のMSDNライブラリを使ってます。困ったときはMSDNオンラインをどうぞ。
http://www.microsoft.com/japan/msdn/library/

698 :デフォルトの名無しさん:03/04/08 15:03
日本のMSDNオンラインは糞

699 :デフォルトの名無しさん:03/04/08 15:10
そんなこと言う人嫌いです。

700 :デフォルトの名無しさん:03/04/08 15:55
D6Proには付属してますよ。やっぱり英語版ですが。
私もVisualStudio付属のMSDNライブラリを使ってます。

>>699
オレサマ オマエ マルカジリ


701 :デフォルトの名無しさん:03/04/08 16:07
>>700
キョウモ、ドッペルゲンガーハッケソ
ヨロシクネ

702 :681:03/04/08 19:55
>>687
>>695
レスありがとうございます。
やりたい事はチャットアプリ汎用ゴースト(自分の代わりに文字を送る事)
なのですが、成りすましは通信上ではなかなか難しいみたいですね。
クライアントAにメッセージを送る事なら簡単なので今回はこれでOKとさせ
ていただきます。
どうもご意見ありがとうございました。

703 :デフォルトの名無しさん:03/04/08 20:53
Delphi落としたはいいけど、使えないよ。ウワァァァン

704 :デフォルトの名無しさん:03/04/08 21:17
>>703
( ゚,_ゝ゚)ザマーミロ

705 :デフォルトの名無しさん:03/04/08 21:42
Editに半角英数を入力して欲しいのですが
Editに入力するときに半角と全角ひらがなに切り替えできない
ようにしたいのですがEditのどのプロパティーを
変更すればよろしいですか?

706 :デフォルトの名無しさん:03/04/08 21:48
***の部分を見えるようにするソフトをDelphiで作ってみたいのですが
何から始めるとよいのか・・。
Delphiを始めたばかりなので・・。よろしくお願いします。

707 :590:03/04/08 21:48
590で小さいボタンを密集させて押せるように
したかった者です。
結局色々と頑張った結果、ToolButtonを
大量に密集させることにしました。
配置したはいいのですが、
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
end;
を全て書くのは大変です…。
これを
procedure TForm1.ToolButtonIClick(Sender: TObject);
Iは押されたボタンの数
みたいにあっさりかけないものでしょうか?
どうかアドバイスよろしくお願いします<(__)>

708 :デフォルトの名無しさん:03/04/08 21:52
>>705
ImeModeをimDisableにする

709 :デフォルトの名無しさん:03/04/08 21:55
>>708
まぁそれだけじゃぁ全角入力できるわけだが。

710 :デフォルトの名無しさん:03/04/08 21:57
>>707
イベントハンドラをひとつにしてTToolButton(Sender)で振り分ける
(イベントのOnClickで同じパラメータを持つ既存のイベントハンドラを選択できる
 配置したボタンを全部選択してまとめて設定するとあっという間に作業終了)

例えば、押したボタンの名前は
TToolButton(Sender).Name
で得られる

711 :デフォルトの名無しさん:03/04/08 22:00
>>709
コピー&ペーストすることまで想定すればそうだけど実用上問題あるまい

712 :デフォルトの名無しさん:03/04/08 22:04
>>711
実用を知らないくせに語るな。

713 :デフォルトの名無しさん:03/04/08 22:05
706=712なら死ね
でなきゃ「実用的な答え」をしてやれよ

714 :705:03/04/08 22:10
>>708
>>709
>>711
ありがとございます。
無事思っていたとおりのことができました。
ありがとうございました。

715 :デフォルトの名無しさん:03/04/08 22:12
いまどきスペルミスや構文エラー程度は
エディタがバックグラウンドで勝手に調べて
指摘してくれるくらいじゃないと使ってられない
って本当ですか?

716 :デフォルトの名無しさん:03/04/08 22:13
>>715
誤爆でないがけ。

717 :デフォルトの名無しさん:03/04/08 22:13
本当です。デルファイもいずれそうなります。

718 :デフォルトの名無しさん:03/04/08 22:52
>>706
質問の意味を理解できる人がどれだけいるか疑問。
もう少し具体的に。

719 :デフォルトの名無しさん:03/04/08 22:55
>>706
OSをハイバネーションするとメモリ情報がすべてファイルに書き出されるから
そのファイルを別のPCに移して解析すれば見えるよ。

720 :707:03/04/08 23:50
>>710
ありがとうございます。
とても簡単に綺麗にかけました!


721 :デフォルトの名無しさん:03/04/08 23:51
TabSheetのTab(クリックするところ)の
最小サイズは変えられないのですか?
Captionに2バイトしか書いていないのに
6バイト分くらいの大きさになっています。
もっと小さくしたいのですが無理難題ですか?

722 :デフォルトの名無しさん:03/04/09 00:49
TabCtrl_SetMinTabWidth(PageControl1.Handle, width);

723 :721:03/04/09 01:05
>>722
レスありがとうございます。
すみません、PageControlのTabは無理ですか?

724 :デフォルトの名無しさん:03/04/09 01:27
>>723
試した?PageControlでもTabControlでも
同じ方法で出来るはず。

725 :デフォルトの名無しさん:03/04/09 03:54
Delphiって終わってますよね?

726 :デフォルトの名無しさん:03/04/09 04:31
人によりVBが終わっていると感じる人もいます。
人によりC#.netが終わっていると感じる人もいます。
人によりJavaが終わっていると感じる人もいます。
人によりLinuxが終わっていると感じる人もいます。

727 :デフォルトの名無しさん:03/04/09 05:21
>>706
http://village.infoweb.ne.jp/~furumizo/masksrc.lzh

728 :デフォルトの名無しさん:03/04/09 06:49
でもDelphiって終わってるでしょ?
みんなそう言ってます。

729 :デフォルトの名無しさん:03/04/09 06:51
オハッス。
日本のDelphiは中村タンが支えてくれるから安心。

730 :デフォルトの名無しさん:03/04/09 06:56
中村正三郎さんですか?

731 :デフォルトの名無しさん:03/04/09 07:42
SetForegroundWindow(FindWindow('TForm1', 'Form1'));

この指定したWindowが自分自身である場合、他のスマートな書き方はありますか?

732 :デフォルトの名無しさん:03/04/09 07:55
>>728
NECは終わってませんか?(w

733 :あぼーん:03/04/09 08:01
あぼーん

734 :デフォルトの名無しさん:03/04/09 09:14
>>731
SetForegroundWindow(Handle);

735 :デフォルトの名無しさん:03/04/09 09:54
>>734
なるほど、分かりました。ありがとうございます。

736 :ななしへたぐらま ◆XcB18Bks.Y :03/04/09 12:39
>>729
いつまでも誰かを当てにしているのはよくないと思う.
私がFDELPHIにいた頃,謎全さんがいなくなるなんて
考えてもみませんでしたし….


737 :デフォルトの名無しさん:03/04/09 12:51
フサギコがいるから大丈夫だよ。

738 :デフォルトの名無しさん:03/04/09 13:14
タクオちゃんは Delphi シロートから金を集めることに専念しはじめたし。
英語資料を翻訳もどきで 5000 円は痛いよ。英語が読めれば全部オンラインでタダで
手に入る資料を何でヘコヘコしてありがたがっているんだか。
C# / Delphi で一儲けを狙っている模様。
NEC くびになったのは知っているんだよね?


739 :99:03/04/09 13:47
アプリケーションの中で、他のフォームを開いたり閉じたりする
メソッドは何でしょうか?
ヘルプを見てもぜんぜんわかりません。

740 :デフォルトの名無しさん:03/04/09 13:57
>>739
(フォーム変数).Showで普通に開く。
(フォーム変数).Showmodalでモーダルで開く。

だが、おそらくおのれの場合はフォーム変数の初期化から
手こずっているのではないか?
状況をもっと詳しく描かないとこれ以上の説明のしようがない。



ネタでない事を祈りたいが。

741 :99:03/04/09 14:03
ネタだよ〜ん(w

742 :デフォルトの名無しさん:03/04/09 14:07
>>739
始めて間がないみたいだからわからないのがあたりまえ
TFormのヘルプは読みごたえがあるから時間をかけてゆっくりどうぞ
(TForm型のインスタンスの破棄にはFreeではなくReleaseを使うとか色々な注意も書いてあるし)

743 :739:03/04/09 14:15
>>740
どうも。

ネタではありません。
ソフト本体はだいたい出来たんですが、バージョン情報などのダイアログの
開きかたがわからなかったんで。

リファレンスガイドとオフィシャルコースウエアは買いましたが、
ほかに基本がわかる良い本ありますか?(擦れ違い?)



744 :デフォルトの名無しさん:03/04/09 14:20
>>743
「基礎からわかるDelphi*」なんかがいいんじゃない?

745 :デフォルトの名無しさん:03/04/09 14:22
Delphiの本ぐらい全部コンプリートしろよ。

746 :あぼーん:03/04/09 14:25
あぼーん

747 :デフォルトの名無しさん:03/04/09 14:31
本なんか買わなくてもヘルプとネット上の情報で充分

748 :739:03/04/09 14:34
>>744
どうも。
いま調べたら「他言語経験者向き」と評されてますた。よさそうだから
本屋逝ってみます。

749 :デフォルトの名無しさん:03/04/09 14:39
他言語っていってもねぇ...どんな言語を使っていたかによるけどねぇ。


750 :デフォルトの名無しさん:03/04/09 14:44
>>746
埼玉は嫌いなんだ、俺
埼玉って基地外赤フェミの巣窟だそうじゃないか

751 :デフォルトの名無しさん:03/04/09 15:47
Delphi2達人テクニック とかいうのを薦めてみたり
って、もう売ってないんだっけ?

752 :デフォルトの名無しさん:03/04/09 15:48
>>750
エロゲメーカーに、エデュケーションソフト発注する役人が居る県でつ。


753 :デフォルトの名無しさん:03/04/09 16:11
>>722さんのやつ、俺もやりたいんだけど、
未定義の識別子って出ちゃう、、
usesに何か追加すればいいんですかね?
Googleで調べたけど情報が少ない・・・

754 :デフォルトの名無しさん:03/04/09 16:15
>>753
uses CommCtrl

755 :デフォルトの名無しさん:03/04/09 16:20
>>754
どうもありがとうございます!
コンパイルできました

756 :デフォルトの名無しさん:03/04/09 17:21
もう自作自演には飽き飽きしてきたよ。

757 :デフォルトの名無しさん:03/04/09 17:32
>634さん
超遅レスすみません。
まず、パーサを作ってみることにします。
解説ありがとうございました。

758 :ななしへたぐらま ◆XcB18Bks.Y :03/04/09 18:57
>>743
1. バージョン情報ダイアログにするフォームを作って保存する.
※ここではフォームの名前(Nameプロパティの値)をVersionForm,ユニット名をVersionとして説明する.

2. メインフォームのユニットが上記フォームを参照するようにする.
 メインフォームがアクティブな状態で[ファイル]→[ユニットを使う]を実行.一覧からVersionを選んで[OK]ボタンを押す.
※メインフォームのソースのimplementation節の始めの方に
   uses Version;
  という記述が追加されたはず.(違うユニット名にしたならその名前)

3. メインフォームから呼び出す処理を書く.
 たとえばVersionButtonという名前のボタンを押したら表示する場合,
procedure TForm1.VersionButtonClick(Sender: TObject);
begin
VersionForm.ShowModal;
end;
※ShowModalメソッドはそのフォームを表示してそのフォームが閉じられるのを待ちます.
 この間,アプリケーションの他のフォームをアクティブにすることは出来ません.
※フォームを開くメソッドは他にShowlがあり,これはフォームが閉じられるのは待ちませんし,
 アプリケーションの他のフォームをアクティブにすることも出来ます.

>>752
それ自体はよいのでは?
大企業に頼んでぼったくられるよりは賢いと思います.
昔,花王のフロッピーディスクにキララ(現F&C)製の
推理アドベンチャーゲームがついてたのが懐かしい.


759 :743:03/04/09 20:19
>>758
大変ありがとうございました。

ところでダイアログから値を受け取るような場合はどこで変数を宣言すれば
よいのでしょうか?

760 :デフォルトの名無しさん:03/04/09 20:58
 TreeView でデータを表示するときたとえば100ノード目のデータが一番上に来るように表示させるにはどうしたらよいのでしょう。


761 :デフォルトの名無しさん:03/04/09 21:05
TStringlistを使ってると、「リストのインデックスの範囲を超えています」
と例外処理になってしまいます。どうすれば出なくなりますか?

762 :デフォルトの名無しさん:03/04/09 21:11
TStringList.Items[0..TStringList.Count-1]以外にアクセスしない

763 :デフォルトの名無しさん:03/04/09 21:21
>>760
TreeView.TopItem := TreeView.Items[99];

>761
文字列の削除処理を含む場合は、特にTStringList.Countの変化に注意すること。

764 :デフォルトの名無しさん:03/04/09 21:25
>>759
変数というよりもその値を保存するのに最もふさわしいクラスに
プロパティを作っておいてそこへ書き込むのが常套手段
(当面はメインフォームかデータモジュールで結構)

765 :743:03/04/09 21:33
>>764
thank you.
やってみます。

766 :706:03/04/09 21:38
自分が書いた文を見てもよくわからない質問文だったのですいません。
よくパスワード入力の再、****のようなカタチで表示されているものを
abcdのように実際の内容でみることができるソフトがありましたが
実際に作ってみたくDelphiに挑戦したのですが、いろいろ調べても
作成の糸口が見えないもので。アドバイスよろしくおねがいします。


767 :デフォルトの名無しさん:03/04/09 21:51
初歩的な質問です。
自分でプロシージャ?を作って、そこで何かのコンポーネントのプロパティーを
変えようとすると「未定義の(略)」とエラーがでるようですが
こういうときの定義はどうすればよいのでしょうか?

768 :デフォルトの名無しさん:03/04/09 21:55
>>767
たぶんクラス外にprocedureを作ったんだね。
フォームのクラスの中にprocedureを入れるか
外部変数のForm1.とか使って変数経由でコンポーネントにアクセスできる。

769 :デフォルトの名無しさん:03/04/09 22:00
>>738
日本語で書いてあるだけ貴重だろー。
特に中級者向けの書籍って日本じゃ少ないし。
昔、謎全氏のコンポ本でコンポーネントを作る方法を覚えた人って多いと思う。
Delphi6perで初めてDelphiを使った人などは、こういった中級者向けの本で
Delphiの奥の深さ、面白さを知るきっかけにもなる。


770 :デフォルトの名無しさん:03/04/09 22:02
>>766
目的のウィンドウを探してGetWindowTextでミッションコンプリート。

>>767
プロシージャじゃなくてメソッドにする。
× procedure hoge; begin Button1.Caption := 'hage'; end;
○ procedure TForm1.hoge; begin Button1.Caption := 'hage'; end;


771 :767:03/04/09 22:10
>>768
>>770
そうなんですか。
助かります。

772 :デフォルトの名無しさん:03/04/09 23:09
>>763
> TreeView.TopItem := TreeView.Items[99];
 どうもありがとうございます。 OnDrawItem で書くしかないのかなあと思っていたら
こんなプロパティあったんですね。



773 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/04/09 23:27
>>766>>706さんは>>770さんの説明で
やり方わかるですか?

確か、通常Windowsアプリと
IE上で[****]と表示される部分では
やり方が異なるので、注意してください。
後者のやり方は俺も全くわからないですが。

774 :772:03/04/10 00:01
> TreeView.TopItem := TreeView.Items[99];
 すみません。
 20ノードのデータを、 5つだけ表示できるようにTreeView.Height を調整しています。
 ここで12番目のデータがSelectedであるとき
TreeView1.TopItem := TreeView1.Selected;
としたのですが期待したように12から16のデータは表示されません。
 こういう使い方はおかしいのでしょうか?


775 :706:03/04/10 00:05
>>773さん
実のところ、まったくわかってないのですが(すいません
770さんの発言から糸口がすこしわかったので
GetWindowTextについて片っ端から調べてます。
(Delhiの勉強を始めたばかりなので

776 :デフォルトの名無しさん:03/04/10 00:36
ListView1.ItemFocused.SubItems[1].CopyToClipboard;
とするとレコード、オブジェクト又はクラスが必要ですと言われてしまいます。
ListView1で選択されたSubItems[1]のTextをクリップボードに
コピーしたいです。
どのように変更すればいいか教えて下さい。

777 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/04/10 00:37
>>775さん
EnumWindows APIでWindowを列挙して
EnumChildWindows でそのWindowの中にある
Windowを列挙して、該当のEditをみつけたら
GetWindowTextをすればいいって

感じなのかな?
やったことないので間違っているかもしれません。
ガンガレ。

778 : :03/04/10 00:38
1.uses Clipbrd
2.SubItems[1].Text:= Clipboard.AsText;

779 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/04/10 00:39
Clipboard.AsTextに代入汁。>>776さん

780 :778:03/04/10 00:39
訂正:2.だけ逆だ。



781 :776:03/04/10 00:44
>>778
>>779
できました。
迅速なレス&適切なアドバイスに
心から感謝します。
ありがとうございました

782 :デフォルトの名無しさん:03/04/10 00:46
>>774
こちらでは正しく表示されましたが。。。

783 :772:03/04/10 01:10
>>782
> こちらでは正しく表示されましたが。。。
 上記のコードを
 Items.BeginUpdate〜Items.EndUpdate
で挟んでいたことが原因でした。お騒がせいたしました。


784 :デフォルトの名無しさん:03/04/10 02:32
Single型の最大値って整数ではいくらになるのですか?
Eの意味がよくわからないので、整数で知りたいのですが。


785 :デフォルトの名無しさん:03/04/10 02:46
>>784 中学生に戻りなさい。
1.23E5 は 1.23 × 10の5乗

786 :デフォルトの名無しさん:03/04/10 02:57
>>785
戻れるなら戻りたい。

MaxSingle = 3.4E38 = 3.4 * 10^38 = 340000000000000000000000000000000000000
こんなにでかいの??? 4バイトなのに。

と思ったら、有効桁数が 7-8 ですね。

787 :デフォルトの名無しさん:03/04/10 04:10
>>762-763
ありがとうございました

788 :デフォルトの名無しさん:03/04/10 05:06
ブサギコは聞かれてもいないこと教えすぎ
自分で調べるって言ってるんだから行き詰るまで調べさせろ
そんなんじゃ、いつまで経っても詰まらんプログラムしか書けないままになる

789 :デフォルトの名無しさん:03/04/10 05:16
>>788
何に怒っているんだか。フサに対する嫉妬か?
つまらんプログラマになるか、つまるプログラマになるかは質問者の勝手だろ?
偉そうに能書きたれてる 788 が、初心者の未来に責任でも持つ気か?
やれるもんならやってみな。やれないならとっととうせろ。

790 :デフォルトの名無しさん:03/04/10 05:19
動的とか性的とkなお意味が良く分かりませんよろしくお願いッします。

791 :788:03/04/10 05:22
>>789
俺の書き込みを見て、やれるとかやれないとかってどういうこと?

792 :デフォルトの名無しさん:03/04/10 06:00
dynamicかstatic。



793 :デフォルトの名無しさん:03/04/10 06:07
ENCTYPE="multipart/form-data" を使ってファイルを
アップロードしたいのですが、どうしたらいいのでしょうか?

POST コマンドをサーバに送るときに、
ファイルを添付すればいいような気がしますが、
仕様が解りません。

794 :デフォルトの名無しさん:03/04/10 06:20
>>793
http://www.ietf.org/rfc/rfc2388.txt

795 :デフォルトの名無しさん:03/04/10 06:23
>>793
http://www.assist.media.nagoya-u.ac.jp/ASDP/aswiki.cgi/HTTP/POST

SMTPでよく使うMIMEなデータをPOSTするだけらしい。
SMTPでの添付ファイルの送り方の勉強をすればいいと思います。



796 :793:03/04/10 06:33
$B$"$j$,$H$&$4$6$$$^$9!#(J $BFI$s$G$_$^$9!#(J

$BF|K\8lLu8+$D$1$^$7$?!#(J
http://hp.vector.co.jp/authors/VA014833/rfc2388J.html

797 :デフォルトの名無しさん:03/04/10 07:55
RFC 2388 は、Post するときは multi-part mime の技術を使いましょう。
ってことだけで、実際に送るデータのエンコードは規定していないので間違えないでください。

一般には元 HTML のエンコーディングが使われますが、MS-IE のように常に UTF-8 で送信する
ブラウザもありますよん。

798 :デフォルトの名無しさん:03/04/10 09:04
クラスを配列として扱うにはどうすればいいのでしょうか?
type
 Tclass1 = class
  i: integer;
 end;

 Tclass2 = class
  class1: array of Tclass1
 end:


class2 := class2.create;
class1 := class1.create;
setlength( class2.class1, 10 );
setlength( class1, high(class2.class1) );

class1 := class2.class1;

とやってみたのですがエラーが出て出来ません
copyでもエラーが出てできませんでした

クラスの複製が出来れば何でもいいのですが何か良い方法はないでしょうか?

799 :デフォルトの名無しさん:03/04/10 09:06
しっぱい

class2 := Tclass2.create;
class1 := Tclass1.create;



800 :デフォルトの名無しさん:03/04/10 09:13
>>798-799
TObjectList

801 :デフォルトの名無しさん:03/04/10 10:08
StringGrid1.Rows[1].CommaText:=',,,,,';
とすると各セルに#32が入ってしまいます。どうしてですか?

802 :デフォルトの名無しさん:03/04/10 10:17
プログラム起動から終了までに一度だけリークするメモリリークは放置しても問題ないですか?
というかプログラムを終了すればメモリは解放されるんでしょうか?

803 :デフォルトの名無しさん:03/04/10 10:38
>>802
 メモリについてはプロセス終了によりOSに回収されます。
 ですから、プロセスにつき1つしか作成されないようなメモリについて
 解放しない手法も普通に使われます。

 ただ、一般的に初心者がそういう手法を使う事はやめた方がいいでしょう

804 :デフォルトの名無しさん:03/04/10 10:41
解放されます

805 :デフォルトの名無しさん:03/04/10 10:44
>>803-804
ありがとうございました


806 :デフォルトの名無しさん:03/04/10 11:43
begin
 開く系文
 try
  処理系文
  ...
 finally
  閉じる系文
 end;
 関係ない系文
end;

これで、処理系文でエラーが出たとき、finallyで閉じる系文にとんだ後、
関係ない系文は実行されるんでしょうか?
もしされるなら、閉じる系文はfinally節でなくその後に書いてもいいと思います。
もしされないなら、ダイアログを出さないで例外を使った分岐ができると思います。

807 :デフォルトの名無しさん:03/04/10 11:53
>>806
  処理系文 で例外が出れば 以後の処理系文と関係ない系文は実行されないよ

ダイアログを出したくない場合は、try ・・・ except end を使わないとダメだよ

808 :デフォルトの名無しさん:03/04/10 13:22
画面の設定でメニューのフォントを小さくしていて気がついたのですが、
エクスプローラのメインメニューのうちで、
「お気に入り」「新規作成」「送る」メニューだけアイコンがついていて、
そこだけ一行の高さが違っています。
たぶん調節できると思うのですが、
システムメニュー(?)にアイコン付きのメニューを入れたときに、
ビットマップサイズにあわせてメニューの行を高くすることはできますか?
現在は小さいフォントにするとアイコンが右下から省略されています。

809 :デフォルトの名無しさん:03/04/10 13:29
初歩的な質問で申し訳ないです。
テキストのFontColorは
Colorプロパティーで選択できる色以外でも
指定することはできますか?
オレンジ色系の色がなくてこまってます。

810 :デフォルトの名無しさん:03/04/10 13:48
>>809
Color:=TColor($0099FF);

811 :デフォルトの名無しさん:03/04/10 13:59
>>808
何言ってるのかよく分からない

812 :デフォルトの名無しさん:03/04/10 14:20
>>808
TMenuItemのOnMeasureItemでできる。

813 :ななしへたぐらま ◆XcB18Bks.Y :03/04/10 14:26
>>759
ダイアログとして作ったフォームに値を返すメソッドかプロパティを作ります.
単にOK/キャンセル/Yes/Noのどのボタンを押したかという情報はShowModalの戻り値を使います.
(ダイアログが自分を閉じるときにCloseの代わりにModalResult := mrOk; などとします.)
ところで受け取る値ってもしかしてバージョン情報ですか?
だったらこの方法はだめですよ.

>>761
デバッグ機能を駆使してエラーの原因をつきとめましょう.
ヘルプ見ろと言いたいところですが目次からちゃんとたどれない…(Del5).
例外の種類はEListErrorですよね?これが発生すると言うことは
StringsかObjectsの[]内に存在しないインデックス(項目が10個なら0〜9以外は×)
を間違って指定ちゃったようですね.

どうしてそうなったかを調べるために例外が発生した行にブレークポイント[F5]を置いて実行してみてください.
ここで停止したら文字列リストのインデックスに指定している値をチェックしてください.
範囲を超えていないようなら[F9]で実行を再開して,これを例外が発生するまで繰り返します.


814 :ななしへたぐらま ◆XcB18Bks.Y :03/04/10 15:12
>>798
class2 := class2.create;
setlength( class2.class1, 10 ); // Tclass1型のオブジェクトの場所を置く場所を10カ所確保
for i := 0 to High(class2.class1) do
class2.class1[i] := Tclass1.Create; // Tclass1型のオブジェクトを10個作って,その場所を保管

また,class2を破棄する前に以下のよう自分でひとつずつclass1のオブジェクトを廃棄しなければなりません.

for i := 0 to High(class2.class1) do
class2.class1[i].Free; // ひとつずつ破棄してます.

Delphiのオブジェクト変数はオブジェクトの場所を覚えているだけだと言うことを頭に入れておいてください.


815 :ななしへたぐらま ◆XcB18Bks.Y :03/04/10 15:14
>>814
訂正.
× class2 := class2.create;
○ class2 := Tclass2.create;

816 :デフォルトの名無しさん:03/04/10 15:46
ファイル/フォルダの移動、削除、コピーを行うメソッドはないのでしょうか?
RenameFileで移動は可能らしいんですが、調べてみると同一ドライブしかダメらしく… 

http://216.239.53.100/search?q=cache:5fgh1RG6PwIC:www.nifty.ne.jp/forum/fdelphi/faq/00074.htm+delphi+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%A7%BB%E5%8B%95&hl=ja&lr=lang_ja&ie=UTF-8

ファイルアクセス関連の参考サイト等教えて頂ければ幸いです。
「基礎からわかるDelphi6」買ってきたんですが、載ってないYO…

817 :デフォルトの名無しさん:03/04/10 16:09
>>816
C:\Program Files\Borland\Delphi\Demos\Doc\Filmanex\FmxUtils.pas

818 :デフォルトの名無しさん:03/04/10 16:12
>816
なにか制限あるかもしれんが、一応こういう関数とかAPIとか有った気がする。
DeleteFile CopyFile MoveFile

それよりFDelphiのURLがいつのまにか変わってた。
ttp://forum.nifty.com/fdelphi/

819 :デフォルトの名無しさん:03/04/10 16:15
>>817
ちょっと解読不可能ですた・゚ ・(ノД`)・゚・。 説明も英語だから何が何だか…

>>818
これかな? ちょっと読んでみます。情報ありがとうございました。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsmthmovefile.asp

820 :デフォルトの名無しさん:03/04/10 16:47
初心者です。質問があります。
実行時にPopupMenuにメニューアイテムを追加するにはどうすればいいのでしょうか?

821 :816:03/04/10 16:52
SHFileOperationAPIを使用して解決出来ました。失礼しましたー

822 :デフォルトの名無しさん:03/04/10 17:20
>初心者です。
内容でわかります。

>質問があります。
それもわかります。

>実行時にPopupMenuにメニューアイテムを追加するにはどうすればいいのでしょうか?
TPopupMenuならヘルプを読んでください。
IEやその他のメニューなら、なんのメニューか詳しく書いてください。

823 :デフォルトの名無しさん:03/04/10 17:29
下記のようなコールバック関数内で例外が発生します。

function CallBackImageProc:BOOL;stdcall;
var
image : TImage;
begin
image := TImage.Create(application);
image.Picture.BitMap.width := 100;
 result := true;
end;

「EAccess Violationクラスの例外を発生しました」
と言われます。

image.Picture.BitMap.width := 100;

の部分で例外が発生するのですが、なぜだか分かりません。
お助け下さいまし。

824 :ななしへたぐらま ◆XcB18Bks.Y :03/04/10 17:56
>>823
こちらの環境(Delphi5/WinXP)では再現しませんでした.
TPictureのBitmapプロパティを参照するとTBitmap型の画像を持っていないときは
それまで持っていた画像があればそれを捨てて
新たにTBitmap型の画像を作りますので
この行のコード自体は問題ないように見えます.

実体のない場所を参照しようとしていると出ることが多いので
例外が発生する行にブレークポイントを置き,ここで実行が止まったら
image
image.Picture
image.Picture.BitMap
の値を調べてみてください.
オブジェクトの実体が存在しないとnilと表示され,
存在しないオブジェクトのプロパティを参照しようとするとDelphiの例外と表示されるので
考えられる原因を絞り込む事が出来ると思います.


825 :823:03/04/10 19:05
>>824
懇切丁寧なレスありがとうございます。

わざわざテストして下さったようで恐縮です。

やはりインスタンスに何か不具合が起こって参照できなくなってる
みたいですね。

コールバック関数に何か特殊な制約があって例外が出ているのかと
思いました。

そうではないという事が分かったので助かりました。

もう少し色々いじってみます。

826 :823:03/04/10 19:15
連続カキコごめんなさい。

imageを監視してみた所

image := TImage.Create(application);

この部分では値が[csInheritable](なんじゃこりゃ)になっていて

image.Picture.BitMap.width := 100;

この部分になったとたん値が「未定義の識別子:image」になりました。
どこかでとちっているんだと思うのですが、見当が付きません。


827 :デフォルトの名無しさん:03/04/10 19:22
>>826
間違ってたらごめんだけど・・・
TImage.Createの引数にApplicationを使うのはやったことないな。
TApplicationはTComponentから派生してるから間違ってないんだけど
なんか気持ち悪い。
普通はTControl型(それこそメインフォームのSelfとか)
を渡すんじゃなかったっけ?

828 :823:03/04/10 19:37
>>827
そうかもしれません。
でもTComponentから派生させたクラスではないのでSelfは使えないようです。
フォームに配置したimageを引数で渡して、そのimage.parentをSelfの代わりにも
しましたが出来ませんでした。(クリエイトした瞬間に未定義の・・になる)

829 :809:03/04/10 19:41
>>810
遅レスごめんなさい。
ありがとうございました。
できました☆

830 :デフォルトの名無しさん:03/04/10 19:48
行き当たりばったりでプログラムしてるんですが、アドバイスください。

TStringListにファイルからロードしたデータを扱うというようなことをやっていて、
ロードが正常に終わったかとか、ロードしたファイル名とかを個別の変数に持っています。
これがファイルの数だけあるのです。(ファイル数は今のところ固定)
雰囲気としてはこんな。
aaa_data: TStringList;
aaa_file_name: String;
aaa_file_ok: Boolean;

bbb_data: TStringList;
bbb_file_name: String;
bbb_file_ok: Boolean;

なんか不恰好なので構造体みたいにまとめたいと思ったのですが、
record型でいいんでしょうか?それともクラス?にする必要があるんでしょうか。


831 :デフォルトの名無しさん:03/04/10 19:51
>>830
1、 レコード型で data,file,file_ok のメンバを持たせて、それを配列にする方法
2、そのまま それぞれを配列にする方法



832 :デフォルトの名無しさん:03/04/10 19:54
>>830
クラスにしたほうが柔軟な記述ができるとは思うけど。
ファイルをロードしたりするメソッドも一緒にできるし。

833 :830:03/04/10 20:04
レスあがりがとうございます。
根本的にわかってないことに気付きました。

レコードにした場合、TStringListのCreateというのは、どのように行うのでしょうか?
type
TMyFile = record
data: TStringList;
file_name: String;
file_ok: Boolean;
end;

var
aaa: TMyFile;

とやるだけでいいんでしょうか..

クラスはまた調べてみます



834 :デフォルトの名無しさん:03/04/10 20:14
>>833
aaaを使う際に
data:=TStringList.Create;

aaaが不要になったら
data.Free;

本当はTMyFileをクラスにした方が
コンストラクタとデストラクタで以上の処理ができるので安全確実

835 :デフォルトの名無しさん:03/04/10 20:15
>>833
 それでいいと思うよ。
 それで、初期化関数と、終了関数を作成するといい

procedure NewTMyFile(var this:TMyFile);
begin
this.data:=TStringList.Create;
end;

procedure DeleteTMyFile(var this:TMyFile);
begin
this.data.Free;
this.data.=nil;
end;

でもさ、
type TMyFile = class(TStringList);
public
 file_name: String;
 file_ok: Boolean;
end;
の方が楽だと思うけどね。 

836 :830:03/04/10 20:50
またまたありがとうございます。
>835
なるほど、クラスはそのように定義すればいいんですね。
やってみます。

これとは別の質問があるのですが、
文字列を渡して、文字列の変更を行う関数で、
変更したかどうかをBooleanの戻り値で返して、
引数で変更された文字列を返したい場合どのように記述するのでしょうか。

function MyFunc(text: String): Boolean;

とやってみましたが、関数無いでtextを変更しても、
呼び出し元には反映されません。
Delphiではどのように記述するのでしょうか。





837 :デフォルトの名無しさん:03/04/10 20:51
>>836
function MyFunc(var text: String): Boolean;

838 :830:03/04/10 21:05
>837
できました、ありがとうございます。
人のソースで見たことはあったんですが、意味わかってなかったです。
ヘルプの値パラメータと変数パラメータというヤツをよく読んでおきます。




839 :デフォルトの名無しさん:03/04/10 22:24
サーバーからIndyのIdHTTPコンポでファイルを読み込んでいる途中に
どれくらいファイルを読み込んでいるかProgressBarに表示させたいのですが
どのような書き方をすればいいのでしょうか?

840 :デフォルトの名無しさん:03/04/10 22:26
>>839
writeメソッドをoverride

841 :デフォルトの名無しさん:03/04/10 22:48
>>839
OnWorkBeginとOnWork


842 :839:03/04/10 23:09
>>840さん、>>841さんありがとうございました。
私にはまだ早かった事だったようです。精進します。

843 :デフォルトの名無しさん:03/04/11 00:07
ShowHintで表示するHintの文字群を
改行するにはどうすればいいですか?
オブジェクトインスペクタのHintプロパティーに
\nとか#13#10と書いても
そのまま表示されてしまいます…
どうぞ教えて下さい。

844 :デフォルトの名無しさん:03/04/11 00:29
>>843
オブジェクトインスペクタに書くんじゃなくて、コードで。
xxx.hint := 'line1'#13#10'line2';


845 :843:03/04/11 00:36
>>844
やっぱりコードで書かないといけませんか。
分かりました!コードで書きます。
ありがとうございました。

846 :デフォルトの名無しさん:03/04/11 00:51
前スレの654-656にもあったのですが、
フォームを「エディタで表示」しておいてから
Caption = 'First'#13#10'Second'
とすればいけます。


847 :デフォルトの名無しさん:03/04/11 00:56
>>845
わりと最近、その話題はやったんだけど(前スレくらいかな?)
1.フォーム上でマウスを右クリックして「エディタで表示」を選択する
2.Hint = 'test1'#10'test2' という具合に改行コードを入れる
でできるよ

848 :847:03/04/11 00:57
>>846
ものの見事にかぶりました

849 :デフォルトの名無しさん:03/04/11 01:01
両方とも「:」が無いのはナゼ?

850 :デフォルトの名無しさん:03/04/11 01:03
>>849
いらないからです
(実際にエディタで表示してみるとわかります)

851 :849:03/04/11 01:11
ああ、なるほど。

852 :ななしへたぐらま ◆XcB18Bks.Y :03/04/11 05:09
>>835
初期化と後処理の自動化はオブジェクトの利点のひとつですが
ファイルを読み込んだらファイル名と読み込んだというフラグを必ず記録するので
読み込みメソッドを作ってそこで一緒に処理した方が良いと思います.

type TMyFile = class
private
// 情報を格納するフィールド変数.これを直接読み書きしないこと(同じユニットからだとアクセスできてしまうので注意)
FLines: TStrings;
FFileName: string;
FLoaded: Boolean;
public
constructor Create;
destructor Destroy; override;
// ファイルから読み込み.ファイル名とフラグも更新.
procedure LoadFromFile(const NewFileName: string);
// 読み込んだ内容のクリア.ファイル名とフラグも更新.
procedure Clear;
// プロパティ:ここから読み出します.書き込めないように読み出し専用にしています.
property Lines: TStrings read FLines; // 読み込んだテキスト(文字列リスト)
property FileName: string read FFileName; // ファイル名.読み込んでいないときはカラ.
property Loaded: Boolean read FLoaded; // 読み込んだかどうかのフラグ
end;

(つづく)


853 :ななしへたぐらま ◆XcB18Bks.Y :03/04/11 05:17
>>852 (つづき)

procedure TMyFile.Clear;
begin
FLines.Clear;
FFileName := '';
FLoaded := False;
end;

constructor TMyFile.Create;
begin
inherited;
FLines := TStringList.Create;
end;

destructor TMyFile.Destroy;
begin
FLines.Free;
inherited;
end;

procedure TMyFile.LoadFromFile(const NewFileName: string);
begin
FLines.LoadFromFile(NewFileName);
FFileName := NewFileName;
FLoaded := True;
end;

(以上)


854 :デフォルトの名無しさん:03/04/11 06:26
今、過去ログをあさろうと>>2を下から順に開いていたのですが
なぜか「VB初心者質問スレ」のようです。
なにか特別な経緯でもあったのでしょうか・・?

855 :デフォルトの名無しさん:03/04/11 07:32
Label1.Caption := ExtractFilePath(Application.ExeName);
で、実行ファイルのある場所、「C:\FolderName\」が取得できましたが、
この文字列の最後の「\」を取り除いた実行ファイルのパスを取得するには、どのようにすれば良いのでしょうか?

856 :デフォルトの名無しさん:03/04/11 07:41
>>855
ExtractFileDir(Application.ExeName)

857 :デフォルトの名無しさん:03/04/11 08:01
>>856
出来ました。ありがとうございます。

858 :デフォルトの名無しさん:03/04/11 09:29
Delphiを勉強しようと思うのですが、
「Delphi 7 Studio」と「Delphi for .Net」は違う商品なんですか?

「Delphi for .Net」は.Netにネイティブ対応とニュースに書いてありましたが、
発売されたのでしょうか?



859 :デフォルトの名無しさん:03/04/11 09:41
http://www2.leverage.jp/start/

860 :デフォルトの名無しさん:03/04/11 09:59
>852
ありがとうございます。
確かにそうまとめたほうがすっきりするようですね。
やってみます。

861 :デフォルトの名無しさん:03/04/11 10:36
>>852
コンポーネントにしないのなら、もっと簡単に

type TMyFile = class(TStringList);
private
 FFileName: string;
public
 constructor Create(fname:string);//コンストラクタでそのファイルを読む、読めなければコンストラクタで例外
 function file_name: String; //読み込みだけのプロパティならメソッドにしても同じ
 // file_ok: Boolean; //これはクラスが作れたら必ずファイルが読めたという事で不要
end;

みたいにしたらいいんじゃないの? ちょっと冗長


862 :デフォルトの名無しさん:03/04/11 11:13
>>861
わざわざメソッドにしなくてもプロパティなら1行ですむ。
property FileName: string read FFileName write FFileName;

863 :デフォルトの名無しさん:03/04/11 11:37
var
i : Integer;
begin
i := 0;
with TMemIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')) do
try
while i < ComboBox1.Items.Count do
begin
WriteString('Setting', 'AttachSubject(Items[' + IntToStr(i) + '])', ComboBox1.Items[i]);
end;
finally
UpdateFile;
Free;
end;
としますと、実行中にこのFormを閉じたときに固まります。
原因はどこにあるでしょうか?
よろしくお願いします。
end;

864 :デルファイの名無しさん:03/04/11 11:54
英語版コンパイラを使っていると、endの手前のコメントでもない日本語文字が
変な風に解釈されて、それで妙なコードが生成されていると想像できます。

…というのは無論冗談で、Inc(I)が無いので無限ループしてる。

865 :863:03/04/11 11:55
Inc(i);を忘れてた…
自己解決ですすみません

866 :861:03/04/11 12:09
>>862
でもさ、メソッドにすれば self が nil なら '' を返す事が出来るぞ。
ファイルの読み込みに失敗すれば インスタンスが無いという状態になるので
こういう設計にしたわけだ。

867 :ねこま:03/04/11 13:40
読み込みを constructor に固定してしまうと,使いまわしができません.


868 :861:03/04/11 13:56
>>867
なんで? 削除して再度Createしてもいいし、
それが負荷上勿体ないなら、Createをメソッドとして呼べばいいじゃない

869 :デフォルトの名無しさん:03/04/11 13:56
同感です

870 :デフォルトの名無しさん:03/04/11 14:01
constructorを何度も呼ぶなんて格好悪い。

871 :ななしへたぐらま ◆XcB18Bks.Y :03/04/11 14:24
>>826
> image.Picture.BitMap.width := 100;
この行を実行する前の値を見ようとして「未定義の識別子:image」となったのですか.
最適化で変数の保管場所が消滅しているなら「最適化のため(ry」となるはずなので…うーん.

>>827 自分で破棄するなら TImage.Create(nil) という手も使えますね.

>>861
メインフォームかデータモジュールのフィールド変数で使うことを想定していたので
生成の後に何度でも読み込みできるようにしました.
なおコンストラクタを以下のようにすれば生成時にファイルを読み込むようにすることもできます.

constructor Create(const NewFileName: string);

constructor TMyFile.Create(const NewFileName: string);
begin
inherited Create;
FLines := TStringList.Create;
if NewFileName <> '' then
LoadFromFile(NewFileName);
end;

872 :ねこま:03/04/11 14:38
>>868
理解しかねます.


873 :861:03/04/11 15:17
type TMyFile = class(TStringList)
private
 FFileName: string;
public
 constructor Create(fname:string);//コンストラクタでそのファイルを読む、読めなければコンストラクタで例外
 function file_name: String; //ファイルが開かれていればファイル名、でなければ、''
 function file_ok: Boolean;
end;
 として実装は、
constructor TMyFile.Create(fname: string);
begin
  if not FileExists(fname) then raise EAbort.Create('TMyFile:'+fname+'が無い');
  inherited Create;
  FFileName:=fname;
  LoadFromFile(fname);
end;
function TMyFile.file_name: String;
begin if Self<>nil then Result:=FFileName else Result:='';
end;
function TMyFile.file_ok: Boolean;
begin Result:=Assigned(Self);
end;


874 :861:03/04/11 15:18
>>873 追加するコードはこれだけ。

で、こうしておけば、例えば、TMemoとTRadioGroup とTOpenDialog と ボタンを貼り付けて
procedure TForm1.Button1Click(Sender: TObject);
var T:TMyFile;
begin
if OpenDialog1.Execute then with OpenDialog1 do begin
  RadioGroup1.Items.AddObject(FileName,TMyFile.Create(FileName));
end;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
with RadioGroup1 do Memo1.Lines.Assign(Items.Objects[ItemIndex] as TMyFile);
end;
と、簡単なビュアーを作れる。
これで、存在しないファイルなら単に追加されない。開けないファイルならダイアログで教えてくれて追加しない
と非常にお手軽。

 単純なのが一番だと思うが?

875 :デフォルトの名無しさん:03/04/11 15:26
全然単純じゃないと思うんだが。
非常に読みづらい。

876 :861:03/04/11 15:30
>>875 ギャフン

877 :デフォルトの名無しさん:03/04/11 15:33
> RadioGroup1.Items.AddObject(FileName,TMyFile.Create(FileName));

これだといちいちTMyFileのコンストラクタを読まなくてはFileNameが開けなかった時どうなるのか分からない。
TIniFileのCreateでファイルがない場合は作られてしまうがそれと同じかと思ってしまう。
一方LoadFromFileにすればTStringsと同じ仕様で非常に単純。このコードは短いだけで単純ではない。

878 :861:03/04/11 15:41
うーん。
コンストラクタで例外が出る=全てが実行されないというのは非常にシンプルだと思うのだがなあ・・・・

AddやInsert とかと組み合わせると非常に有り難い仕掛けだと思う。


ただ、グローバル変数とか配列とかへの代入で
MyFile:=TMyFile.Create(FileName); 
としてしまうとバグの温床で
MyFile:=nil;
MyFile:=TMyFile.Create(FileName); 
とやらなければいけないとか、やっぱりシロウトにはオススメできないか・・・・




879 :861:03/04/11 15:42
>>878 の後半の話は、MyFIle.Free の後の話ね。

880 :デフォルトの名無しさん:03/04/11 20:31
自分で作ったアプリのexeファイルがあるフォルダのパスを得たいのですが
どうすればいいでしょうか?

881 :861:03/04/11 20:37
>>880
ええと、>>855 とか参照

882 :デフォルトの名無しさん:03/04/11 20:38
こんなの
ExtractFilePath(Application.ExeName)

883 :デフォルトの名無しさん:03/04/11 20:46
>>881-882
ありがとうございました。検索しないですいません

884 :デフォルトの名無しさん:03/04/11 21:13
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vjref98/html/java.awt.event.KeyEvent001.asp
この仮想キー表でFn(ファンクション)キーがどれか分かる方教えてください。。
VK_FUNCTIONが無いんです。

885 :デフォルトの名無しさん:03/04/11 21:15
隠しキーだし。

886 :デフォルトの名無しさん:03/04/11 21:45
Delphiでは不可能ということですか?

887 :デフォルトの名無しさん:03/04/11 22:01
StatusBarのPanelごとに
違うHintを表示することは可能ですか?

888 :デフォルトの名無しさん:03/04/11 22:14
>>887
自分でコード書けば可能
OnMouseMoveでパネルの位置を割り出して
それに応じたHintを割り当てる。


889 :デフォルトの名無しさん:03/04/11 22:38
産休

890 :デフォルトの名無しさん:03/04/11 22:41
>>886
何なら出来ると言うんだ。

891 :デフォルトの名無しさん:03/04/11 22:50
>>884
ネタですか?VK_F1〜VK_F12ってあるじゃん。(ネタにマジレス

892 :888:03/04/11 22:50
>>887
すごい賢いやり方ですね!!
少し感動しました。
ありがとうございましたチャレンジしてみます!

893 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/04/11 22:55
FnキーってファンクションキーのF1〜F12とかじゃなくて
ノートPCについていて、他キーと組みあせてて
外部CRT切り替えとか音声ON/OFF、画面明るさ調整
が出来るキーだと思うでつ。

Fnキーは確かキーイベントが発生しないのではないかと・

894 :デフォルトの名無しさん:03/04/11 23:51
[Fn]はハードウェアに実装されている機能なのでI/Oポート直に叩かない限り絶対無理。


895 :デフォルトの名無しさん:03/04/11 23:54
ノートPC専用ソフトですか?

896 :デフォルトの名無しさん:03/04/12 00:10
>>891はネタにマジレスというネタを使った高度なネタですか?(ネタにマジレス

897 :デフォルトの名無しさん:03/04/12 00:14
ファンクションエミュレーター作ったら馬鹿売れ必至!

898 :デフォルトの名無しさん:03/04/12 00:14
>>896はネタにマジレスにネタにマジレスというネタを使った高度なネタですか?(ネタにマジレス

899 :デフォルトの名無しさん:03/04/12 00:16
>>898はネタにマジレスにネタにマジレスにネタにマジレスというネタを使った高度なネタですか?(ネタにマジレス

900 :デフォルトの名無しさん:03/04/12 00:26
>>896
すごい賢いやり方ですね!!
少し感動しました。
ありがとうございましたチャレンジしてみます!

901 :デフォルトの名無しさん:03/04/12 01:53
どうでもいいけど、俺のキーボード、前に洗ったときに[Fn]潰したから
ソフトにこれ使わないでほしい。

902 :Delフサギコ ◆A6VzDeLphI :03/04/12 01:56
  ∧,,∧
 ミ,,゚Д゚彡
 ミつ日(ミ
CtrlとFnを入れ替え常駐ソフトを
作ろうとしても、かなり不可能、
という罠がありますねー。

903 :デフォルトの名無しさん:03/04/12 02:04
やはりDELPHIじゃ無理か

904 :デフォルトの名無しさん:03/04/12 02:46
>>903
ソフトウェアで管理できないハードウェアでやられていたら、Delphi じゃ無理だと思うね。


905 :デフォルトの名無しさん:03/04/12 02:56
>>904
いや日本語がわかりません

906 :デフォルトの名無しさん:03/04/12 02:57
要するにDelphiで無理なことはC#やVBはもちろんVCやアセンブラでも無理ってことだ

907 :デフォルトの名無しさん:03/04/12 02:58
VBならできるけどな。

908 :デフォルトの名無しさん:03/04/12 03:05
VBは金だせば何でもできるよ

909 :デフォルトの名無しさん:03/04/12 03:08
VB!!

910 :デフォルトの名無しさん:03/04/12 03:49
DLLがあるんじゃない?
それを使うソフトがどんなDLLを読み込んでいるか調べてみそ。

911 :デフォルトの名無しさん:03/04/12 04:46
NMHTTPで、 「http://pc2.2ch.net/test/read.cgi/tech/1048589518/
に接続すると、CGIのエラーが出て開けませんでした。
どうすれば開けるようになりますか?

912 :デフォルトの名無しさん:03/04/12 05:32
VB VB 言ってる Del厨って なに 考えてんだろ?

913 :デフォルトの名無しさん:03/04/12 06:04
>>907-909
CtrlとFnを入れ替え常駐ソフトのようなものはグローバルフックが必要なので、
糞ActiveXでないDLLを作れないVBでは不可能です。
Delphiなら不可能ではないでしょうが、
ドライバレベルのものを作らなければならず、キーボードメーカーの
非公開のハードウェア仕様を知る必要があるため、実質不可能ということです。
馬鹿VB厨には何のことを言っているのかさっぱりでしょうけど(w

914 :デフォルトの名無しさん:03/04/12 06:46
>>911
サーバにどんなコマンドを送ったの?


915 :デフォルトの名無しさん:03/04/12 07:17
>>913
要するに言語は関係なく不可能なんだろ
Delphiだったら不可能ではないなんていいかげんなこと言うな

916 :デフォルトの名無しさん:03/04/12 07:21
うん。 Fnキーはx86CPU上で管理してないと思うよ。


917 :デフォルトの名無しさん:03/04/12 07:39
>>913
Windows 上のドライバでも、BIOS ですら変更できない部分ってのも
コンピューターには存在するんだよ。

キーボードコントローラーのファームを書き換える。ってのがベストかと。


918 :デフォルトの名無しさん:03/04/12 08:13
>>913
ワラタ。煽る奴ほどリアル馬鹿であるという良い例だ。

919 :デフォルトの名無しさん:03/04/12 08:14
PC上なら何でもできると思ってたのに、
あのボタンが押せないとはな

920 :デフォルトの名無しさん:03/04/12 08:20
まあ HDDアクセスランプをソフトからやりたい・・・って言ってるのと同じ程度の希望だな

出来ない訳ではないけどね

 HDDランプならHDDをアクセスしっぱなしにすりゃいい
 Fnキーなら、キーフックして、テンキーのコードとアルファベットのコードを処理すりゃいい

921 :デフォルトの名無しさん:03/04/12 08:27
あ、ただし、HDDアクセスしっぱなしだと他のアプリ殆ど動かせないよね
 Fnキーが押したかどうか判るのは、テンキー部分を押して貰うまで保留ね

922 :デフォルトの名無しさん:03/04/12 08:31
”HDDアクセスランプをソフトからやりたい”
”Fnキーが押したかどうか”

あなたはプログラム言語よりまず日本語を勉強してください


923 :デフォルトの名無しさん:03/04/12 09:14
なんでだろ〜なんでだろ〜♪

924 :デフォルトの名無しさん:03/04/12 10:20
if MessageDlg('危険です。', mtWarning, [mbYes, mbNo], 0) = mrYes then
このように書いたら、未定義の識別子:'mrYes'というエラーが出ました。
usesにDialogsは追加してあります。他に何が足りないのでしょうか?

925 :デフォルトの名無しさん:03/04/12 10:32
>>924
それをそのままコピペしたらエラーは出ませんでした。

926 :デフォルトの名無しさん:03/04/12 10:40
>>924
ヘルプを検索しましょう。 mrYes は Controls ユニットで定義されています



927 :デフォルトの名無しさん:03/04/12 10:45
ほかの言語がうらやましくなるようなDELPHI弱点
・ユニコードの扱いが面倒
・正規表現
・最新技術のSDKサンプルコード
・MMXやSSE2などCPU別最適化
・普及度

>>924
uses controls

928 :デフォルトの名無しさん:03/04/12 10:51
>>927
1.SJISで不便しない
2.標準で対応してるのはスクリプト言語とか最近のVM言語だけだったと記憶
3.C読めるし
4.現在の高速なCPUでシビアな動作をさせなければ問題ないけど
5.普通に使うには十分普及してる

929 :デフォルトの名無しさん:03/04/12 10:54
ユニコードの扱いが面倒って言っても、
逆にユニコードが主の言語から S-JIS扱うよりは WideStringがあるから楽だと思うけどなあ

それにユニコード主にしたフリーのコンポーネントもどこかで見たよ(使う気ないけど)

930 :デフォルトの名無しさん:03/04/12 10:55
ヘルプは必ず見てるんですけれど、MessageDlg関数のところにはDialogsとしか書いてありませんでしたので、質問してみました。
とにかく、きちんとできました。どうもありがとうございました。


931 :デフォルトの名無しさん:03/04/12 11:03
正規表現は、対応って言ってもライブラリレベルで対応したって、検索くらいにしか使えないでしょ
それに、必要なら CのソースをBCC32.exeでコンパイルして リンクすればそのまま使えるし
Delphi用のフリーの正規表現検索用コンポーネントもあるし

でも、lexのようなフロントプロセッサが付くなら面白いかもしれないね。


932 :デフォルトの名無しさん:03/04/12 11:15
Formが最大化から普通サイズに戻ったときのサイズをあらかじめ設定できますか?

933 :デフォルトの名無しさん:03/04/12 11:19
>>932
Constraintsプロパティで最小サイズ指定しておけばいいんじゃ?
最大・最小を同じ値にするとリサイズ不能なウィンドウと同じになるけど。

934 :デフォルトの名無しさん:03/04/12 11:31
>933
そうではなく最大化の時点で、元のTop,Left,Width,Heightの値が知りたいのです。

935 :デフォルトの名無しさん:03/04/12 11:44
>>934 いやDelphiの事はあんまりしらんのだけど、 WM_SYSCOMMAND で処理するんじゃないの?

936 :デフォルトの名無しさん:03/04/12 12:32
>>932
GetWindowPlacement / SetWindowPlacement

937 :デフォルトの名無しさん:03/04/12 12:39
>>935
ここはdelphiスレやぞ。

938 :デフォルトの名無しさん:03/04/12 13:57
>>937
おう、Windows用のプログラミング環境だ。

939 :デフォルトの名無しさん:03/04/12 13:59
>>934
つうか、デザイン時の位置やサイズがそうなんだけど。
(PositionプロパティがpoDesignだったら。)


940 :ミ,,゚Д゚彡 ◆A6VzDeLphI :03/04/12 14:13
>>936さんの持つ
正しい日本語パーサーの実装を見習いたいですね。

941 :デフォルトの名無しさん:03/04/12 14:22
>>940
パーサに補完機能は必要なのか?

942 :デフォルトの名無しさん:03/04/12 14:24
デルポイのVCLソースを見ると
本来ならポインターの方が便利なのに
varになってます。このような場合、ヌルポを
関数に渡すにはどうしたらら良いんでしょうか?

943 :911:03/04/12 14:32
>>914
コマンドは送ってません。

NMHTTP1.GET('http://pc2.2ch.net/test/read.cgi/tech/1048589518/');

としただけてす。何かコマンドを送る必要があるんですか?

944 :デフォルトの名無しさん:03/04/12 15:06
>>942
出力用の引数だからだろう。

945 :デフォルトの名無しさん:03/04/12 15:17
>>944
俺はヌルポを渡したいんだよ。
場所の大きさを知りたいために。
お前馬鹿か?

946 :デフォルトの名無しさん:03/04/12 16:27
はい次の人〜


947 :デフォルトの名無しさん:03/04/12 17:23
次スレよろ〜

948 :ななしへたぐらま ◆XcB18Bks.Y :03/04/12 18:23
>>942
Windows APIの呼び出しでしたら関数の宣言と実際を別に書くと良いと思います.
以下,ChangeDisplaySettings APIの例

Windowsユニット(Windows.pas)に書かれているオリジナルはこうです.

・宣言(宣言部=interface節にあります)
> function ChangeDisplaySettings(var lpDevMode: TDeviceMode; dwFlags: DWORD): Longint; stdcall;
・実装(実装部=implementation節にあります)
> function ChangeDisplaySettings; external user32 name 'ChangeDisplaySettingsA';
このAPIは解像度を変更するものでもともと lpDevMode にNULL(Delphiでいうnil)を指定すればレジストリに記録されている解像度に変更できるのですが参照渡しで宣言されてしまっているために使うことが出来ません.
これを参考に自分のユニットのimplementation節に以下のようにポインタ渡しで宣言・実装します.

// 画面設定変更の Windows API の宣言と実装
function ChangeDisplaySettings00(lpDevMode: PDeviceMode; dwFlags: DWORD): Longint; stdcall; forward; // 宣言
function ChangeDisplaySettings00; external user32 name 'ChangeDisplaySettingsA'; // 実装

関数の名前は何でも良いのですがChangeDisplaySettingsにした場合,パラメータが変わっているのですでに存在する ChangeDisplaySettings を呼び出すコードがある場合はこれを修正しなければなりません.
このユニットの中で単に ChangeDisplaySettings と書くと Windows ユニットの関数ではなく,自分のユニットのほうの関数を指すからです.


949 :デルファイの名無しさん:03/04/12 19:00
気持ち悪いけどvarパラメータに PDeviceMode(nil)^ な感じで渡しても動きますよ…

950 :デフォルトの名無しさん:03/04/12 19:54
>>930
ヘルプ見てうまくいかなかったら
Delインストールしてあるディレクトリを*.intか*.pasでgrepしろ。

951 :デフォルトの名無しさん:03/04/12 21:23
Memo1.Lines.SaveToFile('Log.txt');
とすると、Log.txtに書いてあった文字が
全てなくなって、Memo1のテキストのみになってしまいます。
以前にあったLog.txtの文字の最後にMemo1のテキストを
付け足すというふうにしたいのですが、
如何に書けばいいですか?
どうぞよろしくお願いします<(__)>

952 :デフォルトの名無しさん:03/04/12 21:40
ヴぁr
 sl: TStringList;
begin
 sl := TStringList.Create;
 try
  sl.LoadFromFile('Log.txt');
  sl.AddStrings(Memo1.Lines);
  sl.SaveToFile('Log.txt');
 finally
  sl.Free;
 end;
end;


953 :951:03/04/12 22:33
ほんとうにありがとうございます<(__)>
うまくできました。
ありがとうございました。


954 :951:03/04/12 23:52
>>952
すみません。
AddString(DateTimeToStr(Now))
とすると、
2003/04/12
23:43:32
のようにスペースの部分が勝手に改行されてテキストファイルに
保存されてしまいます。
これは仕様ですか?

955 :デフォルトの名無しさん:03/04/13 00:02
>>954
やぁ!TStringListのCommaTextのとこ、見てくれたかい?

956 :951:03/04/13 00:14
>>955
ありがとうございます。
今見てきましたが…難しいですね。
sl.Text := sl.Text + Memo1.Lines.Text;
で逃げることにしました

957 :デフォルトの名無しさん:03/04/13 00:37
>>954
べつに、>956のやり方でもいいと思うけど、、
AddStringメソッドってなにのメソッド?
AddStringsだと引数はTStringsだよ???


958 :951:03/04/13 01:04
あ、…。
すみません"s"をぬかしていました。
逝ってきます。
みなさん親切にほんとうにありがとうございました<(__)>

959 :デフォルトの名無しさん:03/04/13 03:22
>>958
いやいや、"s"を書き忘れただけならいいんだけど、
AddStrings(DateTimeToStr(Now))
これはコンパイルエラーになるから改行が入る入らない以前の問題だよ。
TStrings と String はまったくの別物。うんことちんこくらい違う。


960 :デフォルトの名無しさん:03/04/13 05:19
ステップアップとしてWindowsAPIを学びたいのですが、
どの関数がどういう働きで、どんなパラメータ値があるのか
とか、そういうのが纏まってるDelphi用の書籍ってありますか?
やはりMSDNなどに載っている他言語用のサンプルプログラムから
推測するなりして使い方を模索するしかないのでしょうか?

961 :デフォルトの名無しさん:03/04/13 05:24
>>943
Host: pc2.2ch.net
Accept-Language: jp
を追加してみて。


962 :デフォルトの名無しさん:03/04/13 05:25
>>960
Del3.1の時代なら英語ながらAPIヘルプ付いてた。
今はMSDNで参照すればよし。

後、常識の範囲でC知ってた方が良い。

963 :デフォルトの名無しさん:03/04/13 05:30
レスどもです。なんというか、例えば画像処理をしたいときには
どんな関数を使えばいいのか、とか音関係はどんな関数を
使えばいいのかとか、使いたい目的に関する関数を直ぐに
引けるようなリファレンスが欲しいのです。

MSDNだと、あらかじめどんな関数がどの効果か知ってないと
ちょっと探り当てるのは不可能な気が…

# Cは大学でやっとりますが、Windows環境で学んでないんだよなぁ…

964 :デフォルトの名無しさん:03/04/13 05:39
>>943
答えにはならんが
http://members.jcom.home.ne.jp/monazilla/document/index.html
の「その他」のあたりが参考になるかも。

965 :デフォルトの名無しさん:03/04/13 05:58
>>963
Windows OS / API は画像処理や音響処理のために設計されているわけではないので
おそらくあなたの使いたい機能は API レベルとしては用意されていない。と思います。

DirectX 関係の入門書をざっと読んで、できることとできないこと。提供されていることと
されていないことの見当を身につけるのが先かと。

今まで特定のライブラリを使っていたのであればそれの Windows 版実装を探すのが
はやいかもね。

966 :デフォルトの名無しさん:03/04/13 06:17
あーいや、例えばの話なんですが… 上でも同じこと
書きましたが、使いたい目的とする関数を直ぐに
調べられる書籍等の情報が欲しいなと。

# あと、画像や音関係だとBitbltとかsndPlaySoundとかあると
# 思うんですが(昔VBでゲーム作ったときに使った)違うのかな

967 :デフォルトの名無しさん:03/04/13 06:21
なんか日本語変だな。あるプログラムを作成する際、
特定の実現したい内容があり、それに利用できそうな
関数等を参考書のように調べられる書籍等の情報が
欲しいんです。

現在はネットで調べてコピペすることが多いんですが、
そうではなく自分で勉強したいなと…

968 :デフォルトの名無しさん:03/04/13 06:46
>>965
MCIとかGDIとか知らない人ですか?

969 :デフォルトの名無しさん:03/04/13 06:47
>>967
昔のWindowsNT用のAPIリファレンスはそんな感じだった。
逆引き!とか謳ってる痛い本読むしか。

まぁ、暇なときにぱらぱらめくって存在だけ確認しとくのが良いかも知れない。


970 :デフォルトの名無しさん:03/04/13 10:37
Bitblt はビットマップの描画に使う一番基本的な APIだが、基本的なのでありと
あらゆるところで使われている。それを逆引きにしろ?と?
必ず漏れがでるし、無理だよ。逆引き本には期待しないほうが。

よーするに、API のリファレンスを読まずに楽をしたい。ってことかな?それは甘い。

基本的な API セットは元祖 Mac/QuickDraw の時代から大して変わっていません。
余計な機能拡張が無い、Win31/NT4 時代の API 解説書をしっかり読破するのが
結果として一番楽な勉強法でしょう。

最新じゃないけど日本語版が Web でみられる MSDN の Win32 API ライブラリを端から読む。
ってのがいまどきのやりかたかな?


971 :デフォルトの名無しさん:03/04/13 10:42
>>970
同意。今のplatform SDKのリファレンスを読み解くのはおすすめできないが。

972 :デフォルトの名無しさん:03/04/13 10:53
ExtractFileNameでファイル名は取得できるんですけど
URLのファイル名を取得するにはどのメソッドを使えばよいのですか?

973 :デフォルトの名無しさん:03/04/13 11:20
URL のファイル名。とは?
たぶんあのことだろうけど、具体例を明記してくだされな。

974 :デフォルトの名無しさん:03/04/13 11:25
>>972
最後の'/'を探してそれ以降を抜き出すだけでしょ?
AnsiPosとCopyをヒントとして挙げておくから、自分でやってみなされ。

975 :デフォルトの名無しさん:03/04/13 11:29
>>974
?や#をどう扱うかという問題がある。

976 :972:03/04/13 11:30
>>973
ファイル名という言い方がまずかったかな?
それ以外の言い方知らないし
例えば
http://xxxxxxx.com/xxxxx/xxxx.jpg
のxxxx.jpgをExtractFileNameと同じ様に取得したかっただけです。


977 :デフォルトの名無しさん:03/04/13 11:30
>>975
最後の'/'を探してそれ以降終端か'?'か'#'まで取得。

978 :デフォルトの名無しさん:03/04/13 11:31
URL / URI の分解は Indy に備わっていたと思ったが。

979 :デフォルトの名無しさん:03/04/13 11:31
http://を抜けばextractFileNameでパースできる予感。

980 :デフォルトの名無しさん:03/04/13 11:34
>>974
とりあえずはそれで解決できるんですけど
Delphiで用意されてるメソッドがあるならそれを
利用したかったのです。

981 :デフォルトの名無しさん:03/04/13 11:36
Indy 9.0 系だと、IdURI ユニットに TIdURI クラスがある

982 :デフォルトの名無しさん:03/04/13 11:37
自分でコードを書くのも勉強
ライブラリを探し回って適切なものを見つけるのも勉強
他人に(適度に)聞くのも勉強。

がんがれ > 989

983 :デフォルトの名無しさん:03/04/13 11:40
まぁ、暇つぶしにVCLリファレンスとか眺めるのが一番ですな。

984 :982:03/04/13 11:42
とりあえず
>>974さんを参考に
URLからhttp://
ExtractFileName(AnsiReplaceText('xxxxxxx.com/xxxxx/xxxx.jpg ', '/', '\'));
でできました。
いろいろなありがとう


985 :jpg:03/04/13 11:42
>>972はエロい人ですか?

986 :デフォルトの名無しさん:03/04/13 11:43
>>984
ぎゃあミス
×URLからhttp://
○URLからhttp://を取り除いて

987 :デフォルトの名無しさん:03/04/13 11:45
>>979
extractFileName は \ と : しか、区切り文字として見ないぞ。


988 :743:03/04/13 11:49
まったくの初心者ですが、このスレのおかげでゲームソフトができました。
フリーソフトとして公開予定です。ありがとうございました。

989 :デフォルトの名無しさん:03/04/13 11:51
>>988
いいえどうしたしまして。
私たちの煽りが役に立ったようで感激です。

990 :デフォルトの名無しさん:03/04/13 11:52
with TIdURI.Create( URI ) do
begin
 edit1.text := Document;
 Free;
end;


991 :デフォルトの名無しさん:03/04/13 12:07
次スレは〜??

992 :デフォルトの名無しさん:03/04/13 12:09
いま俺が準備中。ちょっとまっとれ。

993 :デフォルトの名無しさん:03/04/13 12:10
次スレ たてました。
http://pc2.2ch.net/test/read.cgi/tech/1045813143

994 :デフォルトの名無しさん:03/04/13 12:10
>>993
おつ

995 :デフォルトの名無しさん:03/04/13 12:10
1000

996 :ドキューンズ ◆DQNES/NnnM :03/04/13 12:13


997 :デフォルトの名無しさん:03/04/13 12:22
次スレまだ?

998 :デフォルトの名無しさん:03/04/13 12:23
1000は厨房が取るものである

999 :デフォルトの名無しさん:03/04/13 12:24
次スレ立てとくように

1000 :デフォルトの名無しさん:03/04/13 12:25
1000ゲットだわあああああん♪

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

228 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)