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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドはBorland(ボーランド)のDelphi(デルファイ)について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。

<前スレ>
くだすれDelphi(超初心者用)その26
http://pc8.2ch.net/test/read.cgi/tech/1121249711/

<雑談・討論などはこちらへ>
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その25
http://pc8.2ch.net/test/read.cgi/tech/1125304359/

<その他>
Borland Home Page
http://www.borland.co.jp/
DelWiki (無料版Delphiの入手方法など)
http://onigiri.s3.xrea.com:8080/delphi/
2デフォルトの名無しさん:2005/09/13(火) 14:41:23
3デフォルトの名無しさん:2005/09/13(火) 14:58:11
>>1
4デフォルトの名無しさん:2005/09/13(火) 16:04:24
VCのように4kbyte未満でバイナリを生成することは可能ですか?
8kbyte程度になることは知っています。
5ななしへたぐらま ◆XcB18Bks.Y :2005/09/13(火) 16:13:24
>>1
お疲れ様でした.
よくみると私が改変したテンプレ,25スレのhを抜き忘れてました(笑).
6デフォルトの名無しさん:2005/09/13(火) 16:41:09
まあなんだ。
PCのスッペクが高い今
コンパイラの最適化の差を語るよりもコードの保守性のよさやらバグがないことを目指してがんばろうと、、
7デフォルトの名無しさん:2005/09/13(火) 17:03:45
前スレ、埋め完了しますた。


さて。CreateProcessで外のexeを呼び出したいんですが、
2番目の引数(exeへのパス)へ変数を指定するのはどうやればいいんでしょうか?
利用環境によってexeの場所が違うので。

StringとPCherに互換性が無く、変換すればいいというところまでは分かったんですが…
8デフォルトの名無しさん:2005/09/13(火) 17:10:22
>StringとPCherに互換性が無く、変換すればいいというところまでは分かったんですが…
だから変換すればいいんぢゃないの?
9デフォルトの名無しさん:2005/09/13(火) 17:18:13
PCher(StringValue)
10デフォルトの名無しさん:2005/09/13(火) 19:00:18
>>8
「どうやって」の部分が分からなかったんです…orz

>>9
あ、そうすれば良かったんですね。ありがとうございました。
11デフォルトの名無しさん:2005/09/13(火) 19:14:42
パスは""で括っとけよ
12デフォルトの名無しさん:2005/09/14(水) 00:13:21
PCherじゃなくてPCharね、分かってるみたいだからいいんだけど
13デフォルトの名無しさん:2005/09/14(水) 07:13:00
ShellTreeViewでマイコンピュータを開くとFDDの中身を確認しているようなのですが、
この動作をなくすにはどうすれば良いでしょうか?
14デフォルトの名無しさん:2005/09/14(水) 07:33:56
F
D
D











正しい回答は↓で
15デフォルトの名無しさん:2005/09/14(水) 07:48:36
↓次でボケて!
16デフォルトの名無しさん:2005/09/14(水) 08:02:27
VBが世界を制するよ
17デフォルトの名無しさん:2005/09/14(水) 09:22:01
ビルゲイツの勝利
18デフォルトの名無しさん:2005/09/14(水) 11:19:07
ゲイツが氏んでwinが無くなって糞APIがこの世から消えればいいのに
19デフォルトの名無しさん:2005/09/14(水) 11:22:35
まともなAPIって例えば何がありますか?
20デフォルトの名無しさん:2005/09/14(水) 11:45:58
MessageBoxは神
21デフォルトの名無しさん:2005/09/14(水) 12:00:12
TextOut
22デフォルトの名無しさん:2005/09/14(水) 13:28:57
DrawEdge
23デフォルトの名無しさん:2005/09/14(水) 16:00:25
> コンパイラの最適化の差を語るよりもコードの保守性のよさやらバグがないことを目指してがんばろうと、、

[コンパイラの最適化の差] と [コードの保守性のよさやらバグがないこと] とは、なんら関係なし

それとも最適化最低でバグだらけのD2005のことを言ってる?
24デフォルトの名無しさん:2005/09/14(水) 16:18:24
こっちでやれ

ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その25
http://pc8.2ch.net/test/read.cgi/tech/1125304359/
25デフォルトの名無しさん:2005/09/14(水) 16:46:37
( ´∀`)σ),゚Д゚彡プニュ
26デフォルトの名無しさん:2005/09/14(水) 19:06:24
まぁ、あれだな、Del厨って現実逃避ぎみだな。

>>6 やら >>14-22 の糞レスはほっといて、ちょっとアンチっぽい書きこみがあると
途端にネタスレ誘導。もう心の余裕もなにもないんだな・・・あわれ
27デフォルトの名無しさん:2005/09/14(水) 19:14:26
負け組ですから
28デフォルトの名無しさん:2005/09/14(水) 19:16:39
常に他言語へのコンプレックス抱いてるしな
29デフォルトの名無しさん:2005/09/14(水) 19:24:50
もうほんとにダメなんですか?
30デフォルトの名無しさん:2005/09/14(水) 19:29:58
ダメっていうか前スレに必死な奴がいただろ
ああいう奴がダメにしている
Delphiでカーネル書くって、しかも自称組込みやってる人って来た
痛すぎ

簡単に作るための言語って大体の人は認めてるだろ
それで十分
31デフォルトの名無しさん:2005/09/14(水) 19:32:19
> 簡単に作るための言語って大体の人は認めてるだろ

これ認めない。
正確には

簡単に作ることもできる言語、じゃなくて開発環境。

でももうだめそう。最近のバージョンひどすぎ
32デフォルトの名無しさん:2005/09/14(水) 19:33:15
6しか持ってない。どんな風にダメなのか教えて。
33デフォルトの名無しさん:2005/09/14(水) 19:34:37
34デフォルトの名無しさん:2005/09/14(水) 19:35:38
>>32
トライアルDLして起動してみ。あきれるから。さらに使い込むと目もくらむ。
35デフォルトの名無しさん:2005/09/14(水) 19:41:40
それ以前に一社提供の言語って時点で終ってる
36デフォルトの名無しさん:2005/09/14(水) 19:53:20
はじめて買ったDelphi3のVCLソースを眺めて感激したのが懐かしいな・・・
37デフォルトの名無しさん:2005/09/14(水) 19:54:21
逆に一社提供じゃないものなんてあるの?
38デフォルトの名無しさん:2005/09/14(水) 19:58:39
Delphiしか知らないとこんな事を言ってしまいます
39デフォルトの名無しさん:2005/09/14(水) 19:59:30
せっかく池沼用に労力払ってスレ維持してるんだからありがたく使え

ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その25
http://pc8.2ch.net/test/read.cgi/tech/1125304359/
40デフォルトの名無しさん:2005/09/14(水) 20:01:20
労力払ってるだってw
馬鹿じゃね
41デフォルトの名無しさん:2005/09/14(水) 20:04:49
労力いらんから消えな
42デフォルトの名無しさん:2005/09/14(水) 20:05:51
ちょくちょく来るんでよろしく
43デフォルトの名無しさん:2005/09/14(水) 22:16:55
質問する前に少しは考えろよ
44デフォルトの名無しさん:2005/09/14(水) 22:35:15
>>32
6なら、そうダメでもないから、そのままでいいんでない?

自分は2005も買ったけど、結局仕事で使ってるのは6
45デフォルトの名無しさん:2005/09/15(木) 02:24:10
他言語を否定する為に他言語の質問スレにいちいち出張してくるなと。
スレ違い甚だしい。お前らは自分が良いと思う言語と開発環境使ってればいいだろ。
議論したければ専用スレ使え。
46デフォルトの名無しさん:2005/09/15(木) 02:39:11
デルファイ如きの為に専用スレを汚すわけにはいかない。
スレを伸ばしてやってるんだ、光栄に思え。
47デフォルトの名無しさん:2005/09/15(木) 02:41:49
>>45
俺はユーザでいってるよ?
上読んでても、前スレの終り見ててもそうだったけど
終りには一匹変なのが紛れ込んでたけど
48デフォルトの名無しさん:2005/09/15(木) 02:47:44
つーか、「くだすれ」だけで、ちゃんと質問スレってスレタイに
書いて無いから理解できないのかなとも思った。
49デフォルトの名無しさん:2005/09/15(木) 02:53:44
そこまでアホなのか
50デフォルトの名無しさん:2005/09/15(木) 03:01:03
51デフォルトの名無しさん:2005/09/15(木) 03:11:43
>>47
俺がユーザに言ってるんじゃなくてアンチに言ってる事くらい分かってくれ。
52デフォルトの名無しさん:2005/09/15(木) 03:20:02
>>51
アンチなんていないことをいってることくらい分かってくれ。
53デフォルトの名無しさん:2005/09/15(木) 03:23:08
>>52
うるさい黙れ!
54デフォルトの名無しさん:2005/09/15(木) 03:25:31
>>53
うるさい黙れ!
55デフォルトの名無しさん:2005/09/15(木) 07:54:01
うるさい黙る!
56デフォルトの名無しさん:2005/09/15(木) 08:21:07
インライン
57デフォルトの名無しさん:2005/09/16(金) 17:07:30
フォームのOnCreate内である条件を満たしたらアプリを終了したいのですが
CloseメソッドやSendMessageでWM_Closeを送っても一瞬画面が表示されてしまいます。

ズバッと終了させる方法ってないですか?
58デフォルトの名無しさん:2005/09/16(金) 17:20:48
フォーム作る前にプロジェクトファイル内で判断する
59デフォルトの名無しさん:2005/09/16(金) 17:27:12
次案としてはhalt手続きを使う
60カラス:2005/09/16(金) 17:46:30
お久しぶりです
61デフォルトの名無しさん:2005/09/16(金) 18:17:57
Application.ShowMainForm
62デフォルトの名無しさん:2005/09/17(土) 12:38:26
Delphi6 Personalです。

あるRadioButtonCheckedプロパティがFalseのときに、
あるコンポーネントのEnabledプロパティをFalseにするようにするには、
どうすればよいですか?

○←False
 ・−−−−− ←ここを無効にしたい
 ・−−−−− ←ここを無効にしたい

●←True
 ・−−−−−
 ・−−−−−

63デフォルトの名無しさん:2005/09/17(土) 12:59:32
ラジオボタンのOnChangeでCheckedを判定すればいい話じゃないの?
64デフォルトの名無しさん:2005/09/17(土) 13:04:13
あーごめんCheckBoxと勘違いしてた
onClickかな
65デフォルトの名無しさん:2005/09/17(土) 13:04:32
オブジェクトインスペクタを見ても、OnChangeイベントがないんです。
勉強不足ですみません。

「ラジオボタン Onchange Delphi」などでググってもなかなか見つからないので
困っています。
66デフォルトの名無しさん:2005/09/17(土) 13:05:33
あ、ごめんなさい。リロードしてませんでした。
OnClickでいけました。
6762:2005/09/17(土) 13:26:52
すいません、もうひとつだけ。

あるラジオボタンにチェックが入っているときに、複数のコンポーネントを
Enabled に切り替えるプロシージャを作ろうと思っています。

この、複数のコンポーネントのプロパティを一度に変更するにはどうすればよいですか?
いま、

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
Label1.Enabled := True;
Label2.Enabled := True;
Edit1.Enabled := True;
Edit2.Enabled := True;
end;

のように書いて動いてますが、数が多くなると大変です。よりスマートに書く方法はありますか?
68デフォルトの名無しさん:2005/09/17(土) 13:33:49
名前に統一性を持たせてFor文でループ
FindComponentで探したら行けないかな?
69デフォルトの名無しさん:2005/09/17(土) 14:00:08
こんな感じ?

for i:= 0 to ComponentCount - 1 do
begin
if Components[i] is TLabel then
(Components[i] as TLabel).Enabled:= True;
end;
70デフォルトの名無しさん:2005/09/17(土) 14:25:23
もしくはTListにでも突っ込んどいてTComponent(TList[i]).Enabled := True
71デフォルトの名無しさん:2005/09/17(土) 14:36:54
procedure TForm1.CheckBox1Click(Sender: TObject);
var
i : integer;
begin
if TCheckBox(sender).Checked = true then
begin
for i:=1 to 100 do
begin
try
TButton(FindComponent('Button'+IntToStr(i))).Enabled := false;
except
break;
end;
end;
end else begin
for i:= 1 to 100 do
begin
try
TButton(FindComponent('Button'+IntToStr(i))).Enabled := true;
except
break;
end;
end;
end;
end;
美しくないねごめん。
72デフォルトの名無しさん:2005/09/17(土) 14:44:52
>>71
無駄杉
その記述なら当てはめる値は変数にする方がスマート

var
Value: Boolean;
begin
Value:= not (Sender as TCheckBox).Checked;
TButton(…).Enabled:= Value;
end;
7362:2005/09/17(土) 15:26:57
みなさんほんとありがとうございます。(TT)
どれも勉強になりましたが、ひとまず

>>69のような感じでうまくいきました。
74デフォルトの名無しさん:2005/09/17(土) 18:05:35
コンポーネントのプロパティにあるFont.Styleを保存する事はできませんか?
また、動的にFontDialogを使う事なくFont.Styleを変える事はできないでしょうか?
75デフォルトの名無しさん:2005/09/17(土) 18:53:17
>>74
単なる集合型なんで保存はそのままファイルにでも書き出せばいいし、
変更は普通に代入出来るよ。

fs.Write(Font.Style, SizeOf(Font.Style));
Font.Style := [fsBold];
76デフォルトの名無しさん:2005/09/17(土) 18:54:21
>>74
ヘルプより

type

  TFontStyle = (fsBold, fsItalic, fsUnderline, fsStrikeOut);

  TFontStyles = set of TFontStyle;

要素が最大5つしかない集合型は byte と互換

保存は byte として数値で。復帰は TFontStyles にキャストするだけ。

こんな感じ

var
  fontstyles: byte;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Font.Style := [fsBold, fsUnderline];
  fontstyles := byte(Button1.Font.Style);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Button2.Font.Style := TFontStyles(fontstyles);
end;
77デフォルトの名無しさん:2005/09/17(土) 18:56:18
あ、最大4つだね
78デフォルトの名無しさん:2005/09/17(土) 19:00:48
>>76
わざわざbyteにキャストする意味が判らん。
var
 fontstyles: TFontStyles;
でいいやん。
7974:2005/09/17(土) 19:18:53
皆さんありがとうございます
解決しました
80デフォルトの名無しさん:2005/09/17(土) 20:20:45
ところで、Delphiを1から始めるのに一番いい解説サイトはどこですか?
ググったらたくさん出過ぎてどれをみたらいいのかorz..
81デフォルトの名無しさん:2005/09/17(土) 20:37:49
>>80
googleが一番
82デフォルトの名無しさん:2005/09/17(土) 21:52:23
> わざわざbyteにキャストする意味が判らん。

ini とかレジストリとかに保存するとき便利でしょ
83デフォルトの名無しさん:2005/09/17(土) 21:53:36
>>80

Seventh Delphi がオススメです。
84デフォルトの名無しさん:2005/09/17(土) 22:32:17
>>82
うーん。列挙型だと

GetEnumName(TypeInfo(TFontStyle), ord(typ) );

とやれば簡単なんだけどな。 1行で保存となると、そうなるかな
85デフォルトの名無しさん:2005/09/17(土) 23:19:23
Byteにキャストすると一律に扱いやすいって場合もあるからね
やり方知ってるに越したことはない
86デフォルトの名無しさん:2005/09/18(日) 02:14:58
データベースからツリービューを作るときに
データのIDをPointer型にキャストしてぶら下げるのと同じだね
87デフォルトの名無しさん:2005/09/18(日) 06:53:32
8880:2005/09/18(日) 08:35:28
>>83>>87
ありがとうございます。
89デフォルトの名無しさん:2005/09/18(日) 09:03:37
VB,VSなら情報盛りだくさんだよ
90デフォルトの名無しさん:2005/09/18(日) 23:37:52
こんなところで客引きかよ。
91デフォルトの名無しさん:2005/09/19(月) 00:46:12
2005 Personalって日本じゃ使えないの?
92デフォルトの名無しさん:2005/09/19(月) 00:47:49
外国の雑誌を買ってくれば使える
93Delフサギコ ◆A6VzDeLphI :2005/09/19(月) 21:47:12
  ∧,,∧ ∧,,∧  
 ミ,,゚Д゚ミ,,・д・ミ ニャ-
 ミ ミつ ミ,,,uu,,ミ〜
  ミ   ミ
  ∪''∪  知ってたら教えてください

bsNoneでタイトルバーを消した状態で
自分で、タイトルバー
_______________
|■            [_][□][×] |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
を描きたいんですが
(理由はFormのボーダーを消したいから)

アイコンやバーのグラデーションや3つのボタンを
OSと同等に描画している
コード、誰か持ってたり
どっか乗ってたりしているのしりませんか?

なんか流用できたら楽してかっこいいUIになるかなー
とか、思ったりしてまして。

94デフォルトの名無しさん:2005/09/19(月) 22:08:47
今、簡単なブラウザを作っているんですが、
このブラウザを標準のブラウザに設定するにはどうしたら良いでしょうか?
95デフォルトの名無しさん:2005/09/19(月) 22:23:52
>>94
htmlに関連付けすればいいんじゃない?
96デフォルトの名無しさん:2005/09/20(火) 00:43:14
あと、コマンドラインパラメータも処理しないとね
97デフォルトの名無しさん:2005/09/20(火) 00:47:31
>>93
あっちでフサが紹介してた

http://blog.livedoor.jp/junki560/archives/18042687.html

じゃダメなの? グラデーションは

http://blog.livedoor.jp/junki560/archives/18495762.html

で描く、と。
9894:2005/09/20(火) 03:06:14
>>95-96
すいません
質問の仕方が悪かったです

htmlの関連付けをそのアプリケーション上で行いたいのですが、
どうしたら良いでしょう?
99デフォルトの名無しさん:2005/09/20(火) 03:30:04
>>98
"delphi 拡張子 関連付け"でググるとサンプルコードのページがたくさん表示されるわけだが。
自分で調べる気はないですか。そうですか。
100Delフサギコ ◆A6VzDeLphI :2005/09/20(火) 03:40:09
  ∧,,∧ ∧,,∧  
 ミ,,゚Д゚ミ,,・д・ミ ニャ-
 ミ ミつ ミ,,,uu,,ミ〜
  ミ   ミ
  ∪''∪  ぉぉを!

さんくす>>97さん、

ちょっと明日がんばてみようかな。
101デフォルトの名無しさん:2005/09/20(火) 11:11:27
ある処理中はフォーム右上の×印を使えなくしたいと思い
下のようなコードを書きました。

Self.BorderIcons := Self.BorderIcons - [biSystemMenu];
try
なんたらかんたら〜
finally
Self.BorderIcons := Self.BorderIcons + [biSystemMenu];
end

一応、期待通りの動作はするのですがSelf.BorderIconsの所で
画面がちらつきます。これを防ぐ方法はないのでしょうか?教えてください。
102デフォルトの名無しさん:2005/09/20(火) 12:44:01
procedure TForm1.Button1Click(Sender: TObject);
begin
  EnableMenuItem(GetSystemMenu(Handle,false), SC_CLOSE, MF_BYCOMMAND or MF_DISABLED);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  EnableMenuItem(GetSystemMenu(Handle,false), SC_CLOSE, MF_BYCOMMAND or MF_ENABLED);
end;
103101:2005/09/20(火) 13:00:44
>>102
あなたに惚れました
10494:2005/09/20(火) 17:59:58
>>99
お陰さまで出来ました
ありがとうございます
105デフォルトの名無しさん:2005/09/21(水) 16:20:06
Delphi6 Personalを使っています。
Delphiになれるため、コンポーネントをいろいろ貼り付けて練習しています。
いまDeerPark の設定ダイアログ( ttp://web.drive.ne.jp/1/soko/VIP03217.PNG )
をDelphiで模造してみようと思っているのですが、上のボタンのようなタブは、Win32-TTabControlで
再現できるものなのでしょうか?それとも、自力でこういうコンポーネントを作らないと無理なのでしょうか。


106デフォルトの名無しさん:2005/09/21(水) 16:46:02
>>105
これはXPスタイルなんで、.manifestファイルを同じDirectoryに置くか
リソースでXMLをかくかどっちか
Delphi7なら
C:\Program Files\Borland\Delphi7\Lib\WindowsXP.res
にあるけどD6はなかったと思うので、WindowsXP.resをどっかからもらうか
VC++などについてるリソースエディタで作ってから
{$R WindowsXP.res}とすれば良いと思います。
107デフォルトの名無しさん:2005/09/21(水) 16:50:49
「上のボタンのようなタブ」というのが何を指しているのか今一つ不明だが、
仮にそれが「General」とか書いてあるボタンのことだとしたら、
それは自力で描写する必要があるな
108デフォルトの名無しさん:2005/09/21(水) 17:42:34
>>107
おっしゃる通り、「上のボタンのようなタブ」は General〜 以右のことです。
やはりこれは自力でやるしかないのですね。わかりました。
109デフォルトの名無しさん:2005/09/22(木) 04:21:39
110デフォルトの名無しさん:2005/09/22(木) 04:57:54
初めて質問させていただきます。

HlinkNavigateStringを使い、
  HlinkNavigateString(Nil,URL);
このようにしてブラウザにサイトを開かせているんですが、ブラウザを閉じる前に
アプリケーションにウィンドウのフォーカスを戻すと
EStackOverflowクラスの例外が発生してしまいます(ブラウザを閉じた後で発生したことはありません)。

ブラウザを閉じる前にアプリケーションにフォーカスを戻してもエラーが発生しないようにするには
どのようにしたらいいでしょうか?
111デフォルトの名無しさん:2005/09/22(木) 07:19:07
くだすれで他人の Tips への URL をしめして罵倒するのは最低だな
112デフォルトの名無しさん:2005/09/22(木) 07:35:10
113110:2005/09/22(木) 08:03:25
>112
そのページは見ていましたが、ShellExecute関数は試していませんでした。
ShellExecuteにすることで、無事ブラウザから戻ってもエラーが出なくなりました。

有り難うございます。
114デフォルトの名無しさん:2005/09/22(木) 08:12:55
115デフォルトの名無しさん:2005/09/22(木) 15:16:08
>>114
誤爆?怖いから俺は踏まないでおくが
116デフォルトの名無しさん:2005/09/22(木) 15:22:26
何をしたかったのかは良くわからんが、
とりあえずURLはKOLのサイトのようだが
117デフォルトの名無しさん:2005/09/22(木) 15:22:39
踏んじゃった。
KOL(Key Objects Library)のサイトなのかな?
118114:2005/09/22(木) 15:42:26
すみません間違えました。
ちなみに小さなexeを作りたいというのへのレスです。
119デフォルトの名無しさん:2005/09/22(木) 18:45:39
>111
俺もそう思うけど
せめてBorlandのQ&A位は読んでから質問して欲しいよな。
いくらくだすれでもあまりにも幼稚な質問をするのは良くないと思う。
120デフォルトの名無しさん:2005/09/22(木) 19:28:05
> せめてBorlandのQ&A位は読んでから質問して欲しいよな

せめてヘルプぐらい嫁、とか、MLの過去ログ嫁とか、どんどん拡大していくな、それだと。
くだすれに前提を求めるなよ。だからくだすれなんだから。

っていうか、BorlandのQ&A ってそんなにメジャーかなぁ・・・
121デフォルトの名無しさん:2005/09/22(木) 19:34:38
ヘルプよりメジャーってことはないだろ
122デフォルトの名無しさん:2005/09/22(木) 19:35:40
うーん。そう言えないところが辛いね。 最近の日本語ヘルプは
123デフォルトの名無しさん:2005/09/22(木) 23:47:39
>>120
くだすれでそういう議論は不要
上級スレかフサスレでやってくれ
124デフォルトの名無しさん:2005/09/23(金) 00:39:57
>>123

>>119 に言ってやれ
125デフォルトの名無しさん:2005/09/23(金) 00:44:17
うざ
126デフォルトの名無しさん:2005/09/23(金) 00:49:33
俺は出来るだけ答える。というのは恥ずかしながら俺もDelphi始めた頃
ニフティで同じようなことをしたから。ヘルプを見れば分かることなのに
探し方が下手だったり、思いこみで見つけ損ねたりしてたから。

時間がないときはほっておくけど。んで次回見たときに誰も答えてなければ
答える。そうしないと過去、俺に教えてくれた人が同じことしてくれたんだから
申し訳ない。
127デフォルトの名無しさん:2005/09/23(金) 00:49:56
うざ
128デフォルトの名無しさん:2005/09/23(金) 00:50:31
ぎょうざ
129デフォルトの名無しさん:2005/09/23(金) 01:02:16
でも、さすがに「ActionManagerがありません」は勘弁してほしい
130デフォルトの名無しさん:2005/09/23(金) 01:06:59
時間と心に余裕がない人は回答しない方がいいと思うんだけれど。
みんな最初は初心者だったでしょ?
131デフォルトの名無しさん:2005/09/23(金) 01:08:27
うざ
132デフォルトの名無しさん:2005/09/23(金) 01:18:49
>>130
「みんな最初は初心者」

↑これみると頭に来る。生ぬるいこと言ってんじゃねぇよハゲが。
ゆとり教育か?あん?100万回ヘルプ読んでこい。全部書いてある。
133デフォルトの名無しさん:2005/09/23(金) 01:23:58
質問には答える気はないくせに、煽りには確実に応答するんだな。
134デフォルトの名無しさん:2005/09/23(金) 01:25:09
みんな最初は初心者
みんな最初は初心者
みんな最初は初心者
みんな最初は初心者
みんな最初は初心者
みんな最初は初心者

どうぉ?
135デフォルトの名無しさん:2005/09/23(金) 01:27:55
初心者だって自覚があるなら最低限自分で調べるわな
136デフォルトの名無しさん:2005/09/23(金) 02:09:02
自分で調べられるくらいならこんなところで質問しないわな
137デフォルトの名無しさん:2005/09/23(金) 02:21:29
大昔MSXでGAMEを作っていた。そのころ論理計算式をつかうことで
IFよりも早く動かしていた記憶があって、ぐぐってるんですが
なかなか昔使っていたような論理計算式が出てきません。
ビット計算?ANDとかNOTを使っていたような?うまいことどんぴっしゃ!というような
が出てきません。

ヒントをもらえませんか?
138デフォルトの名無しさん:2005/09/23(金) 02:27:58
X=(KEY=1)-(KEY=2)
こういうのじゃないのか。
139Delフサギコ ◆A6VzDeLphI :2005/09/23(金) 02:29:16
    ∧,,∧ ∧,,∧  
   ミ,,゚Д゚ミ,,・д・ミ ニャ-
   ミ ミつ ミ,,,uu,,ミ〜
    ミ   ミ
    ∪''∪

>>120>>126>>130
激しく同意。

生ぬるいとか言ってるヤツ
2chくだすれの意味わかってんのか
MLに帰れゴルァ

とか言ってみたけど、
眠いから寝て土日は心を落ち着かせて
平和にいこー!
140デフォルトの名無しさん:2005/09/23(金) 02:50:14
>>138
あああ!ありがとうございます。その手のたぐいのTIPを
いくつか使用していたはずなんです。ごく当たり前に。
そういうTIPと「何故そうなのか」が集まったサイトないか探しています。
ベーマガやMSXファンなどの投稿雑誌でMSXのプログラムがあったころに本をとっておけばよかった。
そうやって昔は先輩たちのショートプログラムから覚えていったんだから。
当方、Delphiを始めたばかりの元MSXユーザーですわ。
141デフォルトの名無しさん:2005/09/23(金) 12:09:44
>>137
Delphi言語は非常に型にうるさい。
また演算子の機能はオペランドの型によって変わってくるので
C言語風のやり方はあまりおすすめできない。


なおDelは順序型(整数型、論理型、部分範囲型他)だったら
何でも配列の添字に出来るので、こんな事が出来る。

//上と下の関数は等価。でも速度は下の方が速い。

function BoolToStrA(value:Boolean):String;
begin
  if value=True then
  begin
    Result := 'True';
  end
  else
  begin
    Result := 'False';
  end;
end;

function BoolToStrB(value:Boolean):String;
const
  BOOLSTRINGS:array[boolean] of String = ('False','True');
begin
  Result := BOOLSTRINGS[value];
end;

理論的には、配列の型を関数ポインタにすれば
if文を使わずに処理を切り替えることも可能。
142デフォルトの名無しさん:2005/09/23(金) 12:16:24
>>129
BCB6のクイックスタートはそこキチンと直ってるのにねぇ
143デフォルトの名無しさん:2005/09/24(土) 12:32:41
 起動したアプリの存在するフォルダーを求めるとき
 ExtractFilePath(Application.ExeName);
 ExtractFilePath(ParamStr[0]);
などとやると思いますが、この TApplication.ExeName や ParamStr[0]は
 D:\MyTools\Hoge.exeをD:\MYTOOLS\HOGE.EXE
と大文字化して返してしまいます。元のファイル名のまま得る方法はないでしょうか?
144デフォルトの名無しさん:2005/09/24(土) 12:50:22
Windows自体大文字小文字を区別しないんだから意味ないような・・・
145デフォルトの名無しさん:2005/09/24(土) 13:13:42
答えではなくてスマソだけど、ウチでは大文字化されずに元のファイル名のまま返るんだが。。。
環境は以下の通り。
 WinXP + Del5Pro, Del6Personal
 ファイルシステムは共にNTFS
ファイルシステムの関係?
146デフォルトの名無しさん:2005/09/24(土) 13:17:35
起動時に大文字で渡してるんだろ。
147デフォルトの名無しさん:2005/09/24(土) 13:38:54
UpperCaseがどっかに入ってるんじゃないの
148デフォルトの名無しさん:2005/09/24(土) 13:40:12
ネーヨ
149デフォルトの名無しさん:2005/09/24(土) 13:42:52
元々が大文字なんだろ

はい、次の方どうぞ
150アーツ勝ってばんざい!:2005/09/24(土) 14:33:49
>>141
サンプルをつけた詳しいレスありがとうございます。遅くなってすいません
修学中ですが、上のサンプルリストは理解できましたが(当たり前の事ながら)
下の方が浅学のため、うっすらとしか分かりませんでしたが、もうちょっと
勉強してきます。配列に入れて摂取を番目にて得るということなんすね?
何故か、MIDを利用して文字を切り抜いたことをやってたなーとか
思い出しました。関係ないか。
ありがとうございます。
151デフォルトの名無しさん:2005/09/24(土) 15:03:14
ビギンビギンうるせえよ
152デフォルトの名無しさん:2005/09/24(土) 15:05:38
ビギン村の村民になんてことを
153デフォルトの名無しさん:2005/09/24(土) 15:23:04
教科書に書いてある事だけじゃわからない〜♪
154デフォルトの名無しさん:2005/09/24(土) 15:31:30
ヘアカラーかよ
155デフォルトの名無しさん:2005/09/24(土) 16:42:32
特定のフォントに登録されていない文字を別の文字に置き換えたいのですが
あるフォント名に指定した文字コードが登録されているかどうかを判断するには
どうすればよいのでしょうか
156デフォルトの名無しさん:2005/09/24(土) 16:46:03
>>143
2000やXPはファイルパスをそのまま返してくれるけど、95や98とかはExtractFilePathを
大文字で返してくるっぽい。
どうもファイルシステムがNTFSかそれ以前かによって違うような気がする。
まあ全部のバージョンのWindowsを試したわけじゃないのでよく分からんが。

ExtractFilePathをファイルが存在するかどうかの判別に使ってるんなら、
返ってきたファイルパスと存在するかどうか判別したいファイルパスを
一度UpperCaseかLowerCaseで大文字か小文字に揃えてから処理すると、
ファイルシステムによるによるファイルパスの扱いの違いを回避してくれるのでお勧め。
157デフォルトの名無しさん:2005/09/24(土) 16:50:08
>>143
ほい。「Delphi ファイル名 大文字」でぐぐったら一発目にあったやつ。
http://alicecafe.jp/d_web/blog/archives/000379.html

「でるふぃ」・・・
158デフォルトの名無しさん:2005/09/24(土) 17:05:55
>>157
そこの人APIのヘルプ(つーかMSDN)を読まないのだろか?
一番単純な部類のAPIなんだから試してみるといいのにね
159デフォルトの名無しさん:2005/09/24(土) 17:30:58
blog叩きウザい
160デフォルトの名無しさん:2005/09/24(土) 17:44:50
>>155
難しい事やろうとしてるんだね。

GDIフォントなら、その特定のフォントでビットマップに描画してみて、デフォルト文字になるかどうか
である程度いけそうだけど、プリンタフォントだとそういうわけにいかんしね
161デフォルトの名無しさん:2005/09/25(日) 10:20:23
>>156
ファイルシステムは関係ありませんよ。

"COMMAND.COM"というファイルがあるとして拡張子を表示する設定にしている場合
NT系のWin上ではFAT/FAT32/NTFSに関係なく"COMMAND.COM"と表示されますが
9x系のWin上ではFAT/FAT32に関係なく"Command.com"と表示されます。

表示が異なるだけで実際のファイル名は"COMMAND.COM"なので
>>143が元のファイル名のまま得ていないと思い込んでいるだけだと思われます。
(でも>>143の方法では9x系Winの場合短いパスになってしまいますけど)

表示されているファイル名を得たい場合や
長いファイル名や短いファイル名や長いパスや短いパスを得たい場合は
Delphi-ML[78013]の方法(手直しは必要です)で良いと思います。
162デフォルトの名無しさん:2005/09/25(日) 11:02:51
>>156
ExtractFilePathは大文字小文字の操作はしないよ。
文字列を受け取って最後の"\"以降を取った文字列を返すだけだから。
163デフォルトの名無しさん:2005/09/25(日) 11:20:52
>>162
ExtractFilePathが大文字小文字の操作するかどうかなんて誰も話していないが?
164デフォルトの名無しさん:2005/09/25(日) 11:40:29
>>163
>2000やXPはファイルパスをそのまま返してくれるけど、95や98とかはExtractFilePathを
>大文字で返してくるっぽい。
>>156はそのまま返さないで大文字に変換して返すって思っているんじゃないか?
って言うか>>156はツッコミ所が多すぎてネタかと思ったよ。
165デフォルトの名無しさん:2005/09/25(日) 12:11:30
初心者の質問に上級者が答える>全体のレベルが上がる
初心者の質問に初心者が答える>全体のレベルが下がる
>>156は自分をどう思っているのだろうか。
166デフォルトの名無しさん:2005/09/25(日) 13:32:58
お前らが答えるとスレ密度が下がる
167デフォルトの名無しさん:2005/09/25(日) 14:11:00
神だと思っている
168デフォルトの名無しさん:2005/09/25(日) 14:29:47
殿だと思っている
169デフォルトの名無しさん:2005/09/25(日) 15:17:13
股だと思っている
170156:2005/09/25(日) 15:48:14
>>161-169
すみません、自分が知識不足だったようです。
以前、存在するかどうか調べたいパスと、ExtractFilePathで取得したパスをつき合わせて
パスが存在するかどうか判定する関数を作ったんですが、どうも9x系とNT系で動作が違うんで
調べてみたら>>161のカキコでおっしゃられてる通り、9x系は大文字、NT系は先頭一文字が
大文字で、後は小文字でした。
それで「この違いはファイルシステムの違いなんだな」と一人合点してしまい、ともかくOSの
バージョンの違いを吸収して正常に動作させるためには、双方のパスの文字列を
大文字か小文字に一度変換してから処理したほうが楽だな、と思って関数を書き直した
経緯があったもので、もしかしたら143もそういう事で悩んでるのかな、と思い、
つい156に

>ExtractFilePathをファイルが存在するかどうかの判別に使ってるんなら、
>返ってきたファイルパスと存在するかどうか判別したいファイルパスを
>一度UpperCaseかLowerCaseで大文字か小文字に揃えてから処理すると、
>ファイルシステムによるによるファイルパスの扱いの違いを回避してくれるのでお勧め。

とカキコしてしまいました。
元々知識不足の上に、聞かれてもない事をカキコする必要は無かった訳で、自分のカキコで
荒れる原因になってしまった事をお詫びします。申し訳ございませんでした。
171デフォルトの名無しさん:2005/09/25(日) 16:09:22
>>156は漢じゃん!また来いよ。
172デフォルトの名無しさん:2005/09/25(日) 16:39:12
>>156
パスが存在するかどうか判定するのに大文字小文字は関係無いんじゃないかな?
例えば(試して無いけど)
if DirectoryExists('C:\WiNdOwS') then ShowMessage('あるよ!');
とかでも通ると思う。
いや・・・もっと難しい事がしたいんですよね・・・
173デフォルトの名無しさん:2005/09/25(日) 17:24:02
156は何がしたかったんだろう?
174デフォルトの名無しさん:2005/09/25(日) 18:18:12
if foo then a: = 0
else if bar then a := 1
else continue

if a = 0 then ...

でaが初期化されない可能性とか言われるんだけどどうやって黙らせてる?
175デフォルトの名無しさん:2005/09/25(日) 18:28:28
初期化すれよw
176デフォルトの名無しさん:2005/09/25(日) 18:32:51
それだけのコードじゃ何とも言いがたいが
・あらかじめaを何らかの値に初期化しておく
・どの条件分岐でもaに値が入るようにする
でいいんじゃないか?

黙らせるだけならPCを窓から(ry
177156:2005/09/25(日) 18:51:17
>>171
いや、あまり難しいことをしてるんじゃないんですが・・・。例えばFormCreateで

//変数にパスを代入
 AppPath := ExtractFilePath(Application.Exename);
 DataPath := AppPath + 'Data';
 SettingPath := AppPath + 'Setting';
//保存用フォルダの作成
Attrs := FileGetAttr(DataPath);
 if Attrs and faHidden <> 0 then
  CreateDir(DataPath);
    :
変数に代入したパスを使ってフォルダを作成し、この時作られたサブフォルダ
\Dataと\Settingより前のフォルダにはセーブダイアログからは保存出来ないような
処理を作りたくて、セーブダイアログ終了以降に実行される関数に、

//注:SFilenameにはセーブダイアログのFilenameが代入されている
//\Dataまたは\Settingより前のフォルダにはセーブしない
 if (Pos(DataPath, SFilename) <> 1)
  and (Pos(SettingPath, SFilename) <> 1) then
   ShowMessage('このフォルダにはセーブ出来ません');
    :
というような処理を書いたんですが、これだと仮に正しいサブフォルダ(例えばC:HOGEHOGE\Data)を
セーブ時に選んだとしても、9x系ではセーブダイアログのFilenameは(C:HOGEHOGE\DATA)という
文字列になってるので、まともに動作しないんです。そこで

 if (Pos(AnsiUpperCase(DataPath), AnsiUpperCase(SFilename)) <> 1)
  and (Pos(AnsiUpperCase(SettingPath), AnsiUpperCase(SFilename)) <> 1) then
   ShowMessage('このフォルダにはセーブ出来ません');
    
みたいな処理に書き直した経緯があったんですが、見返すとパスが存在するかどうかの
判定とは全然関係ないような・・・勘違いしてました。ごめんなさい、もう消えます。
178デフォルトの名無しさん:2005/09/25(日) 19:09:58
PopupMenuが閉じたとき、に何かしたい時ってどうすんの?OnHideって感じのーみたいな?
179デフォルトの名無しさん:2005/09/25(日) 19:52:05
日本語、をしゃべってー欲しいみたいな?
180デフォルトの名無しさん:2005/09/26(月) 09:18:47
ユニコードバイトデータを文字列に変更しようと
配列のポインタをWideStringに代入したのですが
いくつか表示されない文字があります。

なにが原因でしょうか?
181デフォルトの名無しさん:2005/09/26(月) 09:23:36
フォントでねーすか?
182デフォルトの名無しさん:2005/09/26(月) 09:39:45
誰かJPNIC範囲内のIPアドレスをランダムに生成するコード書いて
183デフォルトの名無しさん:2005/09/26(月) 09:44:29
>>182
少しは自分で考えろよ能無し。
184180:2005/09/26(月) 09:44:46
>>181
フォントにそうでしょうか?
そうだとしたら変換する前にフォントを変える必要があるのですか?
185デフォルトの名無しさん:2005/09/26(月) 10:03:16
>>184
なぜ前でなきゃいけないと思うの?
186デフォルトの名無しさん:2005/09/26(月) 10:26:00
187180:2005/09/26(月) 10:27:56
>>185
よくわかりませんが
下記のコードでバイト配列に入っているデータを
unicodeに変換すると特殊記号などが'?'で表示されてしまいます
var
WsTemp: WideString;
bTempBuff: array of Byte;
begin
WsTemp := PWideChar(@bTempBuff);
end;
188デフォルトの名無しさん:2005/09/26(月) 10:30:34
>>180
どこへ表示させてるかによる、と思うにゃ
189デフォルトの名無しさん:2005/09/26(月) 10:31:55
>>187
そこまで書いてなぜ問題になるの文字コードをひとつも書かないのかと
190デフォルトの名無しさん:2005/09/26(月) 10:33:41
>>186
俺と似たようなコード書くなキモイ氏ね^^^
191186:2005/09/26(月) 10:34:07
192186:2005/09/26(月) 10:34:46
>>190
うはwwkkwww
193デフォルトの名無しさん:2005/09/26(月) 10:35:47
>>191
俺はa, b, c, d : Integerがip : array [0..3] of Integerになっただけっぽい。。きもい。。
194デフォルトの名無しさん:2005/09/26(月) 11:53:20
偏りそうだな

case Random(7) of
0: b := 11;
1: b := 13;
2: b := Random(5)+15;
3: b := Random(4)+23;
4: b := Random(4)+32;
5: b := 48;
6: b := Random(48)+208;
end;
195デフォルトの名無しさん:2005/09/26(月) 14:31:26
いずれにせよ偏る
196デフォルトの名無しさん:2005/09/26(月) 15:12:50
>>194
それだったら

case Random(64) of
  0 : b := 11;
  1 : b := 13;
  2.. 6: b := Random(5)+15;
  7..10: b := Random(4)+23;
 11..14: b := Random(4)+32;
 15 : b := 48;
 16..63: b := Random(48)+208;
end;

加奈
197デフォルトの名無しさん:2005/09/26(月) 15:54:17
大量にやるならRandom文はひとつで済ませられるけど

それにしてもIPアドレスをランダムに発生させる用途が怪しいな
198デフォルトの名無しさん:2005/09/26(月) 16:22:11
JPNICのアドレスってaaa.bbb.ccc.dddのうち
dddにあたる部分が0ってアリなの?
Random()だと0入るっしょ…
勘違いだったらスマソ
199デフォルトの名無しさん:2005/09/26(月) 16:48:26
以前Delphiの浮動小数演算のモードが他の言語と異なっているというような話を見かけたんですが
Cのint, unsigned long, long, doubleを使ったコードをベタ移植した場合、
演算結果が異なるようなケースがあるのでしょうか?
そのあたりについてのポインタがあったら教えてください。
200デフォルトの名無しさん:2005/09/26(月) 17:13:48
>>199
C(++)のdoubleと同じ8バイトのDouble型の上に
10バイトのExtended型があるというだけのことなので
C(++)⇒Delphiは問題ないかと
201デフォルトの名無しさん:2005/09/26(月) 17:26:41
long double あるからそれは関係ない気が
202デフォルトの名無しさん:2005/09/26(月) 17:32:14
少なくともVC++ではlong doubleも64bitぢゃなかったっけ?
Extendedは80bit
203デフォルトの名無しさん:2005/09/26(月) 17:38:51
VCだと8バイトでBCBだと10バイト。元々C/C++はchar以外のビット幅は処理系依存でないっけ。
モードつうぐらいだから丸めモードとかだべか。
204デフォルトの名無しさん:2005/09/26(月) 17:45:08
//「不正な浮動小数演算命令」が出なくなる
cw:=$133f;
asm
FNCLEX
FLDCW cw;
end;
のこと?
205デフォルトの名無しさん:2005/09/26(月) 19:35:39
Delphi7ってOracle10をサポートしてないみたいなのですが、
接続できるのでしょうか?

購入前なので試すことができません。
だれか繋いでシステム作ってる方はいないでしょうか?
206デフォルトの名無しさん:2005/09/26(月) 19:56:45
>>205
一応可能。もちろん全機能使えない。(自分でOCI等で接続するコード書くなら別)
207デフォルトの名無しさん:2005/09/26(月) 20:05:34
>>206
全機能っていうのは、Oracleのストアドとかが、ぜんぜん使えないことでしょうか?
Oracleも初心者なもので、詳しくないのですが、
ただDBを繋ぐことがとりあえずできる、ということですか?
208デフォルトの名無しさん:2005/09/26(月) 20:12:02
>>207
ADOで良ければ、ストアドも含めて普通に使えるだろ。
BDEも(呆れた事に)まだ行けるらしいし
駄目そうなのは純正dbExpressだけだろ。
209デフォルトの名無しさん:2005/09/26(月) 20:19:03
BDEのソースはここ

BDE5とOracle10gについて
http://bbs.com.nifty.com/mes/cf_wrentT_m/FDELPHI_B003/wr_type=C/wr_page=1/wr_sq=FDELPHI_B003_0000000031

なおWIN2003 Serverだと、IMEをいじったり色々作業が必要。
210207:2005/09/26(月) 20:41:52
今回、dbExpressを使用する予定でいます。
Delphi2005にしたほうがいいでしょうか・・・
211デフォルトの名無しさん:2005/09/26(月) 22:27:44
したほうがいい、とは死んでも言えんね
212デフォルトの名無しさん:2005/09/27(火) 00:08:14
Delphi6Personal でサービスって作れますか?
たぶん作れなくはないけどイチから作る技術がいるって話だと
予想しているのですけど。
そのへん解説してあるところあったら教えてください。
(ググってもサービスじゃあまりに一般名詞すぎてわけわからんです...)
213デフォルトの名無しさん:2005/09/27(火) 00:22:44
ほんとくだらない質問ですが、TEDITにフォーカスがある状態で
ctrl+Aで全選択状態にするにはなんかプロパティの設定で可能ですか?
それともなんかコードを書く必要がありますか?
214デフォルトの名無しさん:2005/09/27(火) 01:29:54
>>210
Direct Oracle Accessでググると少し幸せになれるかもしれない。
215デフォルトの名無しさん:2005/09/27(火) 01:37:02
>>212
WinAPI駆使すれば可能だが、極めて難しい。

C用だけど参考までに。
ttp://hp.vector.co.jp/authors/VA015815/200234.html


>>213
その様なプロパティは存在しない。自分で書くしかない。簡単だけど。
216デフォルトの名無しさん:2005/09/27(火) 02:06:41
>>213
TActionList 置いて、標準アクションの TEditSelectAll 作るだけでおk
217デフォルトの名無しさん:2005/09/27(火) 03:48:58
質問させて下さい。
あるソフトのListViewから指定された文字列がある所を選択させたいのです。
下記の様にやってみましたが、LPARAMをどうしたら良いのか分かりません。
どうか御教示お願いします。

test := 'test';
SendMessage(wnd, LB_SELECTSTRING, -1, test);
218デフォルトの名無しさん:2005/09/27(火) 05:51:24
LB_SELECTSTRING って ListBox用じゃなかったっけ

うる覚えでごめん
219デフォルトの名無しさん:2005/09/27(火) 08:44:03
220デフォルトの名無しさん:2005/09/27(火) 12:56:17
>>217
他のプロセスに対して行うのだったらそれじゃできないよ。
共有メモリ VirtualAllocEx ReadProcessMemory WriteProcessMemory でぐぐれ。
221213:2005/09/28(水) 01:33:29
>>215
確かに簡単でした。ありがとうございます。
222デフォルトの名無しさん:2005/09/28(水) 05:39:52
日本語入力モードかどうかって、どうやれば解かりますか?
223222:2005/09/28(水) 05:57:08
大事な説明が抜けていました。
「他のプロセスも含めて」って事です。
224212:2005/09/28(水) 08:14:46
>>215,219
どうもありがとうございました。
私のウデでは難しいような気がしてきました。
本当にサービスでないといけないのか再検討してみます。
225デフォルトの名無しさん:2005/09/28(水) 11:42:56
例外処理で下のように記述するのは正しい使い方でしょうか?

procedure Main;
begin
try
func1;
func2;
func3;
except
  on e Exception do
begin
ShowMessage(e.Message);
end;
end;
end;

(func2もfunc3も同じように記述)
procedure func1;
begin
try
なんたらかんたら〜
except
raise
end;
end;
226デフォルトの名無しさん:2005/09/28(水) 11:59:11
>>225
間違っちゃいないけれど、Mainでキャッチする例外とfuncXXXでキャッチする例外が同じなら
funcXXXの try〜exceptは別にいらない。
funcXXXで発生した例外は呼び出し側(Main)のexeptでキャッチされるから。
227225:2005/09/28(水) 12:51:33
呼び出し先で例外を捕まえなければ上に伝わっていくのですね
ありがとうございました
228217:2005/09/28(水) 23:31:00
>>218
ListBoxの間違いでした。

>>220
なんか難しそうですが、頑張ってみます。ありがとうございました。
229デフォルトの名無しさん:2005/09/29(木) 13:37:54
Delphi6で作ったプロジェクトをDelphi7でコンパイルしたら、以下のエラーがでてしまいます。

[致命的エラー] ユニット DBTables は異なるバージョン DB.TCustomConnection によりコンパイルされています

なぜでるのか見当つきません。
230デフォルトの名無しさん:2005/09/29(木) 13:48:56
>>229

DBTablesを全ファイル検索してみ?
231229:2005/09/29(木) 13:55:02
>>230
検索して見ました。
プロジェクト内のほとんどのファイルが出てきたのですが・・・
232デフォルトの名無しさん:2005/09/29(木) 13:58:54
「DBTables」はライブラリだから、プロジェクト内にオブジェクトモジュールは無い筈なんだが。
プロジェクト内に持っちゃったら、そりゃー異なるバージョンのDBTablesが出来てエラーになるよ。
233デフォルトの名無しさん:2005/09/29(木) 14:04:50
dbExpressだよね。
なんか見たこと有るな。そのエラー。なんだったか。

えーとD7のアップデートを適用してSqlConstの入れ換えしてない
とか、そんなネタだったような。
http://onigiri.s3.xrea.com:8080/delphi/index.php?Delphi7Update1
234229:2005/09/29(木) 14:13:47
>>232
Delphi6では、同コードで通るので、気づきませんでした・・・。
出てきた分、全部消してみます。

>>233
BDEを使用しています。
dbExpressを使用しなくても出るのかもしれないですね。
確認してみます。
235デフォルトの名無しさん:2005/09/29(木) 14:56:35
DBTablesの中のクラスを派生したクラスのコンパイルに使ったdcuと、
リンク時のDBTables.dcuと異なる場合にそのエラーが出る。

Delphiのコンパイルエラーでは一番やっかいなやつかも。
236デフォルトの名無しさん:2005/09/29(木) 17:36:09
Delphi2005ってStrToInt命令使えないんですか?
237デフォルトの名無しさん:2005/09/29(木) 17:38:18
>>236
つかえる
238デフォルトの名無しさん:2005/09/29(木) 17:54:58
書式ってDelphi7と同じ?
239デフォルトの名無しさん:2005/09/29(木) 18:24:29
>>238
Del win32なら普通にIntToStrが使える
.netならSystem.Convert.ToInt64();

Delphi のリファレンス嫁
240デフォルトの名無しさん:2005/09/29(木) 19:44:51
Formの上にフロートする、チャイルドウィンドウって簡単に作れましたっけ?
241240:2005/09/29(木) 19:48:37
ゴメンなさい、Parent設定するだけで出来ます他。
242デフォルトの名無しさん:2005/09/29(木) 22:34:07
>>239
ありがとうございます助かります。
243デフォルトの名無しさん:2005/10/01(土) 00:27:56
FastMM4の使い方を教えてください。
一応添付のReadmeはよみました。

どうやらFastMM4本体はなにもインストールする必要はなく、単にuseすれば
良いようですね、実際それで動作しました。
しかしBorlandMM.dllの差し替えが良くわかりません。
/binにある同名のファイルを差し替えろと書いてあるようですが、IDEとApplication
とあり、さらにプロジェクトファイルもあり、どうしたらいいかよくわからないです。

バージョンは2005、非公式パッチは入れてあり、リスクは覚悟してます。
よろしくお願いします。
244デフォルトの名無しさん:2005/10/01(土) 00:35:13
LinuxでいうところのDB(Berkeley DB)やCDB,QDBM等の組み込みデータベースで、
WindowsスタンドアロンでDelphi6Personalから使えるものを教えていただけませんか?
Delphiアプリの配布のみで使用できるものがあれば言う事ないのですが…
245デフォルトの名無しさん:2005/10/01(土) 10:14:19
D6per で仕事するなよ
246デフォルトの名無しさん:2005/10/01(土) 10:48:07
>>244
3行目の意味がわからないけど、MDBを使う方法がどこかに書いてあったと思う。
ActiveXを使ってADOがなんちゃらって感じで。
俺はSQLiteを使ったりしてるけど、これはDLL配布が必要です。
247デフォルトの名無しさん:2005/10/01(土) 11:31:25
>>244
>>246
uses ADODB;
TADOQueryでTCustomADODataSetにMDBを指定すればいい
248デフォルトの名無しさん:2005/10/01(土) 11:34:42
>>247
スマン間違えたConnectionStringのプロパティにMDBを指定
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb;Persist Security Info=False
249デフォルトの名無しさん:2005/10/01(土) 14:31:29
まぁ、MDBを仕事で利用するとあとで後悔することもあるけどな。
250デフォルトの名無しさん:2005/10/01(土) 22:19:49
Delphiでワイルドカードマッチってどうやるんだ。。・。?
251デフォルトの名無しさん:2005/10/01(土) 22:50:23
>>250
正規表現コンポを使え

>>243
> しかしBorlandMM.dllの差し替えが良くわかりません。
いろいろあるけど基本的にはPrecompiledのPerformanceにあるDLLを使えばよい

IDE・・・単純に入れ換えるだけ
Application・・・Sharememと同じ要領。プロジェクトのusesの先頭にFastMMのユニット
あとはアプリケーションと一緒にDLLを配布
252デフォルトの名無しさん:2005/10/02(日) 00:00:07
> アプリケーションと一緒にDLLを配布

あっ、VB なみかぁ・・・
253243:2005/10/02(日) 00:36:33
>>251
ありがとう。でもまだいまいちわかりません。すいませんがもう少し教えてください。

FastMMをuseして作ったアプリは全てこのBorlandMM.dllと一緒に配布しないと
いけないってことですか?

IDEのほうを入れ替えるだけなら同時配布は避けられますか?
254デフォルトの名無しさん:2005/10/02(日) 02:39:37
ASP.NET Application - Delphi for .NET
VCL Forms Application - Delphi for .NET
Windows Forms Application - Delphi for .NET

VCL Forms Application - Delphi for Win32


これってなにがどうちがうんですか?

VCL Forms Application - Delphi for Win32とVCL Forms Application - Delphi for .NETって一緒じゃないんですか?
255デフォルトの名無しさん:2005/10/02(日) 02:50:40
Win32 と .NET Framework が同じなわけないだろ。
なんか、自分の使ってるOSにもっと関心を持たないと。プログラミングとか以前に
256デフォルトの名無しさん:2005/10/02(日) 02:59:54
>>255
Win32でつくったやつはうぃんどうずでしかうごかないってことでおk?
257デフォルトの名無しさん:2005/10/02(日) 03:01:49
>>256
VCLの時点でWin専用だ
258デフォルトの名無しさん:2005/10/02(日) 03:11:40
Windows Forms Applicationがうぃんどうず専用じゃなかったのか・・・

ASP.NET Application - Delphi for .NET
VCL Forms Application - Delphi for .NET
Windows Forms Application - Delphi for .NET

VCL Forms Application - Delphi for Win32

これ詳しく解説してくれる人もしくは解説してるサイトない・・・?
259デフォルトの名無しさん:2005/10/02(日) 03:30:17
詳しく解説したら本20冊にはなるな・・・
260デフォルトの名無しさん:2005/10/02(日) 03:32:43
>>259
まじで・・・?
じゃあ重要部分だけでもお願いします・・・。
261デフォルトの名無しさん:2005/10/02(日) 04:24:53
ASPはなんかインターネットのやつ。
VCLは非.NET。
Windows Forms は.NET。
262デフォルトの名無しさん:2005/10/02(日) 04:37:10
>>261
thx

しかしそれだとVCLを使う利点がわからない
.NETつかえたほうがいいにきまってるしなんかVCLのほうが長けてるってのはないのかな
263デフォルトの名無しさん:2005/10/02(日) 04:54:46
VCLはソースが公開されているが、.NETは非公開じゃなかった?
264デフォルトの名無しさん:2005/10/02(日) 05:46:03
.NETが枯れてくればその思想はすばらしい。
面倒な部分を勝手にやってくれる発想だから言ってみればVCLとかぶってる。
ただ一部のコンポーネントの表示が変だったりとか
.NET Frameworkをインストールしないと動かないアプリになったりするとか
その辺が現状のデメリットかな。
265デフォルトの名無しさん:2005/10/02(日) 06:02:35
今のところ.NETを選択する理由がない。
お仕事だったらやるけどねぇ。それ以外では.NETはいらない子。

266デフォルトの名無しさん:2005/10/02(日) 07:27:33
>>251
>>252
>>253
BorlandMM.dllの役割は「プロジェクトの新規作成」「DLLウィザード」を使えばわかるよ。
267デフォルトの名無しさん:2005/10/02(日) 08:47:36
> VCLはソースが公開されているが、.NETは非公開じゃなかった?

Win32 の API は一般人にはソース非公開だろ。
.NET はライブラリレベルで API だから、非公開なのは Win32 と同じ。

VCL.Win32 は単なる一企業のラッパライブラリにすぎない。

> .NETが枯れてくればその思想はすばらしい。

同意。でも、あとまだ時間がかかりそう。
268デフォルトの名無しさん:2005/10/02(日) 11:30:55
何もかもが理想どおり進めばいいのだけどね
269デフォルトの名無しさん:2005/10/02(日) 12:43:12
>>253
> IDEのほうを入れ替えるだけなら同時配布は避けられますか?
はい。
270デフォルトの名無しさん:2005/10/02(日) 15:50:16
> VCL.Win32 は単なる一企業のラッパライブラリにすぎない。

APIまで遡らなくても分かる事・出来る事は沢山あるだろ。
詰まらん物まで非公開。これがMSクオリティ。
271デフォルトの名無しさん:2005/10/02(日) 15:56:12
質問です。
NTFSのファイルの概要を取得したいんですがどうしたらいいでしょうか?

ttp://ant0x.udap.jp/tips/tips_fileSummaryInfo.htm
このページはCですが、こんな事をやりたいんです。
272デフォルトの名無しさん:2005/10/02(日) 16:07:56
> 詰まらん物まで非公開。これがMSクオリティ。

某だってコンパイラや IDE のソースは非公開なわけだが
273デフォルトの名無しさん:2005/10/02(日) 16:13:59
某なんかヘルプさえマトモじゃないんだが・・・
274デフォルトの名無しさん:2005/10/02(日) 16:16:09
> このページはCですが

それ C# だろ。ぜんぜん違う
275デフォルトの名無しさん:2005/10/02(日) 17:36:57
>>273
ソースを読めば色々分かるからね。
276デフォルトの名無しさん:2005/10/02(日) 19:08:21
ヘルプがちゃんとしてないことのいいわけとしては最低だな
277デフォルトの名無しさん:2005/10/02(日) 20:06:17
Delphiのかっこいいアイコンない?
278デフォルトの名無しさん:2005/10/02(日) 20:08:02
>>271
たぶんこれかな。
IPropertyStorageを使ってReadMultipleで読み取り

http://groups.google.co.jp/group/borland.public.delphi.com.activex.using/msg/7d7b55af61b98d08?hl=ja&
279デフォルトの名無しさん:2005/10/02(日) 23:40:32
質問させてください。
インターフェイスがポップアップだけのポップアップランチャーを作ろうと思うんですが、
メインフォームを表示させずポップアップだけにするにはどうしたら良いでしょうか?
280デフォルトの名無しさん:2005/10/02(日) 23:51:20
とりあえずFormのOnCreateにこう書いとけ
Application.ShowMainForm:= False;
これでMainFormはタスクバーからも消える
ちゃんと終了させる方法は用意しとけよ
281デフォルトの名無しさん:2005/10/03(月) 10:20:55
DOSアプリにコマンドを渡して実行し
その結果を受け取るにはどうすればいいのですか?

コマンドプロンプトでの実行は 
>DOSアプリ ファイル名 
で行い
結果はDOS画面に表示されます(1行の文字列)
282デフォルトの名無しさん:2005/10/03(月) 10:39:14
ParamStr(1) で受け取って Writeln() なんかで出力する
283デフォルトの名無しさん:2005/10/03(月) 11:02:44
パラメータは 起動時に指定する

結果を貰うには、起動時に
匿名パイプを作って、そいつを起動プロセスにくっつけるんだけど

http://www.google.co.jp/webhp?q=CreatePipe+Delphi+CreateProcess

で後はなんとかしてくれ
284デフォルトの名無しさん:2005/10/03(月) 11:58:48
285デフォルトの名無しさん:2005/10/03(月) 14:23:37
Delphiを始めてみようと思ったのですが
時代遅れで開発環境も安定していないのでやめたほうがいいといわれました。
皆さんDelphiをやめた後はどんな開発ツールを使っているのでしょうか?
286デフォルトの名無しさん:2005/10/03(月) 14:26:59
>>285
ナ・イ・シ・ョ ♥
287デフォルトの名無しさん:2005/10/03(月) 14:28:48
C#+Python
288デフォルトの名無しさん:2005/10/03(月) 14:59:56
>>285
Eclipce
289デフォルトの名無しさん:2005/10/03(月) 15:14:18
わしも C#+Python だな。D6も使ってるけど。
290デフォルトの名無しさん:2005/10/03(月) 19:04:51
>>285
仕事: Java
趣味: Delphi, C++, SmallTalk

もうJavaいやだ(´・ω・`)
Delphiの仕事したいよぉ…
291デフォルトの名無しさん:2005/10/03(月) 20:33:25
こんな事聞いたら帰れとか言われると思うですが……
このスレには実際Delphiで飯食ってる人はどれくらいいるんですか?
Delphiは趣味な人のほうが多くないですか?
そう思っただけなんですけど……
292デフォルトの名無しさん:2005/10/03(月) 20:35:32
俺は600万ぐらいだからいまいち
293デフォルトの名無しさん:2005/10/03(月) 20:56:23
VB 2005とDelphi 2005でどっちが優れてるんですか?
世間の評判ではVBの圧勝とのことですが本当ですか?
294デフォルトの名無しさん:2005/10/03(月) 21:00:05
VB9はいい感じだな
295279:2005/10/03(月) 21:17:33
>>280
ありがとうございます。やってみます。
296デフォルトの名無しさん:2005/10/03(月) 23:28:39
Delphi2005で、突然ディスクスワップが発生し、
タスクマネージャで見ると、メモリ使用量が350MByteってなってたのは、
Update1までのバグだったんでしょうか?
Update3まで入れたら何とか落ち着いたみたいなんですが・・・
一瞬、メモリ買いにいかなきゃ、と焦りましたよ。
297デフォルトの名無しさん:2005/10/04(火) 01:42:30
今更何言ってるんだか・・・
298デフォルトの名無しさん:2005/10/04(火) 09:44:35
350MBくらいでスワップを起こすPCを使っているほうが悪い。
299デフォルトの名無しさん:2005/10/04(火) 09:51:21
巣に帰れ糞ども
300デフォルトの名無しさん:2005/10/04(火) 11:37:46
>>298
ud3 で直ったんだから D2005 が悪いってことだろ。信者はみんな馬鹿か?
301デフォルトの名無しさん:2005/10/04(火) 16:50:08
馬鹿はお前だ。インライン
302質問:2005/10/04(火) 17:33:58
e=2.718…
ってありますけど、いま数式プログラムを作っている最中で
このeの表記方法がわからずに、2.718を書いて代用しています。
このeを使った正しい表記方法はないでしょうか?
303デフォルトの名無しさん:2005/10/04(火) 17:38:13
意味がわからん
304デフォルトの名無しさん:2005/10/04(火) 17:45:41
double型でも使えば?
305質問:2005/10/04(火) 18:20:12
わかりました
ありがとうございました
306デフォルトの名無しさん:2005/10/04(火) 18:23:10
procedure TForm1.Button1Click(Sender: TObject);
var
  e:extended;
begin
  e := exp(1);
  Label1.Caption := FloatToStr(e);
end;
307デフォルトの名無しさん:2005/10/04(火) 19:10:06
readonly属性のない言語って悲しいね
308デフォルトの名無しさん:2005/10/04(火) 19:14:53
function PI ってなってるけど、 PIの定義場所が systemに無い・・・・・
309デフォルトの名無しさん:2005/10/04(火) 19:19:47
>>302 const e=2.7182818284590452353602874713527;
と定義して使うといいんじゃないの?
310デフォルトの名無しさん:2005/10/04(火) 21:54:11
PI 見たいに関数にしてもいいかもね
311デフォルトの名無しさん:2005/10/05(水) 00:24:42
>>297
>>298
メモリは512MByteだが

>>300

このスレ最悪。
馬鹿ばっかり。

逝ってよ..._〆(゚▽゚*)
312デフォルトの名無しさん:2005/10/05(水) 00:48:08
自分が叩かれたら叩いた相手を馬鹿呼ばわりか。


真性だなwwwwwwwwwwww
313デフォルトの名無しさん:2005/10/05(水) 01:12:04
>>312 自己紹介乙
314デフォルトの名無しさん:2005/10/05(水) 01:43:15
突然ですが、DirectXコンポ何使ってますかい?
ちなみに俺は、Delphi4+DelphiX。
315デフォルトの名無しさん:2005/10/05(水) 01:53:16
使ってない。
Wav音の重ねあわせとMIDI演奏をどうするか考え中。
316デフォルトの名無しさん:2005/10/05(水) 10:20:53
>>314
漏れはQuadruple Dだな
Del2005でも使えるし
317デフォルトの名無しさん:2005/10/05(水) 11:50:06
QDってもう更新終了?
318デフォルトの名無しさん:2005/10/05(水) 13:09:37
二次元配列ではMean関数やSum関数は使えないのでしょうか?
どなたかご教授お願いします。

procedure TForm1.Button1Click(Sender: TObject);
var
hoge : array of double;
hogehoge : array of array of double;
begin
SetLength(hoge, 2);
hoge[0] := 1; hoge[1] := 2;
Label1.Caption := FloatToStr(Sum(hoge)); //3が出力されます。

{ //以下のままだとエラーが出て実行できません。
SetLength(hogehoge, 2, 2);
hogehoge[0,0] := 1; hogehoge[0,1] := 2;
hogehoge[1,0] := 3; hogehoge[1,1] := 4;
Label2.Caption := FloatToStr(Sum(hogehoe)); // 10がでてきてほしい
}
end;
319デフォルトの名無しさん:2005/10/05(水) 13:17:49
>>318

ヘルプより
function Sum(const Data: array of Double): Extended; register;

どう見ても1次元配列だろう。
320デフォルトの名無しさん:2005/10/05(水) 13:19:28
こんな関数、自分で2,3分で作れるのになんで悩むかな・・・
321デフォルトの名無しさん:2005/10/05(水) 13:48:07
>>320
じゃあ作って晒してくれ。
322デフォルトの名無しさん:2005/10/05(水) 13:53:26
動的配列だから、型を定義してと長くなってしまうから、 sumなら直接書いた方がいいでしょ

sum :=0 ;
for x:=0 to High(hogehoge) do
for y:=0 to High(hogehoge[x]) do sum:=sum + hogehoge[x][y];

323デフォルトの名無しさん:2005/10/05(水) 14:02:31
VB.NETなら任意の型の多次元配列の和を求めるコードを一発で書けるのにね
324デフォルトの名無しさん:2005/10/05(水) 14:03:22
これでCGIって作れんの?
325デフォルトの名無しさん:2005/10/05(水) 14:11:22
VB.NET は自分で関数を作れない人には最適ですね。成果物は、.NET が無いと動きませんが。
326デフォルトの名無しさん:2005/10/05(水) 14:15:06
>>324
バージョンとProfessional・Enterpriseの差によって手間は違うけど、作れるよ
327デフォルトの名無しさん:2005/10/05(水) 16:00:27
>>326
6パーソナルしかないけどちょっとやってみよっかな
328デフォルトの名無しさん:2005/10/05(水) 16:33:31
per なら、「ちょっとやってみる」じゃできないだろ
329デフォルトの名無しさん:2005/10/05(水) 17:03:08
作るだけなら簡単だろ
330デフォルトの名無しさん:2005/10/05(水) 17:15:00
IntraWebが付いてるならお手軽なんだけどね。

そうじゃないなら、 WinCGIでDLLを作るか、コンソールアプリCGIでやるかになると思うよ。
331330:2005/10/05(水) 17:31:20
ごめん間違い。 CGIを作るには

・ WinCGI テキストファイルを介してやりとりする
・ コンソール CGI  環境変数と、標準入出力でやりとりする
この2つが実行形式で作れるもの
パーソナルで作るならこの方式になると思う

その他に、ISAPI/NSAPI というのがあって、これがDLL形式
332デフォルトの名無しさん:2005/10/05(水) 18:48:11
CGI作りたかったらperlで作っとけ。簡単だから。
333デフォルトの名無しさん:2005/10/05(水) 18:53:20
談話室どこー?
334デフォルトの名無しさん:2005/10/05(水) 18:54:49
>>333 スレ違い
335デフォルトの名無しさん:2005/10/05(水) 18:55:49
鯖がWinじゃなくても動くし >perl
336デフォルトの名無しさん:2005/10/05(水) 22:12:32
Delphi はApache DSOを作れる+KylixならLinuxで動く
という事で海外ではperl代わりに使っている人も・・・多少は居る
337デフォルトの名無しさん:2005/10/05(水) 23:32:00
Kylix は Delphi じゃないし、レアケースを挙げても意味無いし
338ななしへたぐらま ◆XcB18Bks.Y :2005/10/05(水) 23:37:02
>>308
Pi関数について,手元のDelphi 5で試してみましたがコンパイラは単に定数値を代入しているだけでした.

変数 f を double で定義して f := Pi と代入するコードをコンパイルしてCPUウィンドウで見ると以下のようになっていました.

mov [f],$54442d18
mov [f + $4],$400921fb

mov命令はmove,つまりデータの転送を行う命令です.
変数fの中身がある場所に固定の値を2回に分けて転送しています.
singleやextendedでも試しましたが,転送回数がそれぞれ1回,3回になるほかは同様でした.

同じようにコンパイラが扱う関数や手続きとしては
ほかにord関数,Inc手続き,Dec手続きなどがあります
(…と記憶.どこかに書いてあったはずですが確認できず).

自作の関数では同じようなことはできないので定数を定義するのがよいでしょうね.
339デフォルトの名無しさん:2005/10/06(木) 00:12:00
> 自作の関数では同じようなことはできないので

意味がわかりませんが? 内部実装はともかく

function Napier: extended;
begin
  result := exp(1);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := FloatToStr(Napier);
end;

で、何が不都合なの?
340デフォルトの名無しさん:2005/10/06(木) 00:13:40
> Kylix は Delphi じゃないし
KylixはDelphiですよ。
VCLを使ってますし。CrossKylixを使えば、DelphiのIDEからコンパイル出来ます。

> レアケースを挙げても
Kylixユーザーの大半はCGI目的で使っているのでは。
341デフォルトの名無しさん:2005/10/06(木) 00:16:00
いやそれぐらい意味わかれよ
342デフォルトの名無しさん:2005/10/06(木) 00:16:06
kilyx は delphi じゃないし、Kylix ユーザ自体がレアなのでその大半が CGI でつかって
いてもレアケースだろな
343デフォルトの名無しさん:2005/10/06(木) 00:23:57
レアケースだから意味無い?
Delphiスレなんだから意味あるだろう。何ムキになっているんだか。
344デフォルトの名無しさん:2005/10/06(木) 00:28:14
Delphi スレ以外ではレアケースは意味無いのか? 何ムキになっているんだか。
345デフォルトの名無しさん:2005/10/06(木) 00:30:54
やれやれ、DelスレでPerl 厨まで暴れるようになったか
346デフォルトの名無しさん:2005/10/06(木) 00:32:48
誤魔化さずにちゃんと答えろよ。
347デフォルトの名無しさん:2005/10/06(木) 00:38:14
え、344って質問なのか?
そりゃ意味はあるでしょ。どんなスレでも。情報提供なんだからさ。
348デフォルトの名無しさん:2005/10/06(木) 01:50:00
D6per で CGI つくろうかな、って質問に「KylixならLinuxで動く」って回答する
のはどう見ても見当違いだろ。無意味とはいわんけど。
349デフォルトの名無しさん:2005/10/06(木) 02:18:55
>>348
馬鹿か?参考までにメリットを挙げただけだろ?
そんな事も分からないのか?

ちなみに俺はその解答者じゃないぞw
350デフォルトの名無しさん:2005/10/06(木) 03:19:54
参考っていうなら perl の方が100倍参考になるな。いまから kylix がどうのこうの
いうのは参考というより、有害だわな。
351デフォルトの名無しさん:2005/10/06(木) 03:24:09
これから CGI つくるのに kylix つかうメリットとか本気で思ってるとしたら重傷だな・・・
352デフォルトの名無しさん:2005/10/06(木) 03:28:08
Delphiは鯖がwinじゃないと動かない
→こんなことして動かすこともできますよ。そうしてる人もちょっとはいますよ。
→はぁ?だから何?
→謎の喧嘩   ←今ここ
→ラブホ
353デフォルトの名無しさん:2005/10/06(木) 05:08:44
100倍参考になるとか力説しちゃうわけね。
久しぶりにイタイのが出てきて嬉しいぞ。
354デフォルトの名無しさん:2005/10/06(木) 05:37:01
なんでこう技術系のスレって他人を認めたくない人が多いんだろう
いきなり頭から否定するから無駄に荒れるんだろ
コマンドを頭に詰め込むより人として基本的な事から勉強しようぜ
355デフォルトの名無しさん:2005/10/06(木) 05:47:29
ばかばっか
356デフォルトの名無しさん:2005/10/06(木) 05:57:03
>>339
ばかだね
357デフォルトの名無しさん:2005/10/06(木) 07:42:33
インラインバグを否定されたあたりから精神異常をきたしたらしいよ
358デフォルトの名無しさん:2005/10/06(木) 08:22:01
>>338
自分で作れない関数の代表は write だろうな
型可変オープン配列パラメータでないのに、
 型なしパラメータに見えるのに型に応じて動いてる。

他に Sliceもつくれないな。
359デフォルトの名無しさん:2005/10/06(木) 10:32:42
Format もつくれないかな・・・

VCL はソース公開とかいってるが、特別に文法無視した実装が古くからあるんだよな
360デフォルトの名無しさん:2005/10/06(木) 10:35:50
function PI

っていんちきだったんだ
361デフォルトの名無しさん:2005/10/06(木) 10:51:54
自作関数ではインチキできないから定数で宣言しましょう・・・って変じゃん
362デフォルトの名無しさん:2005/10/06(木) 11:24:30
定数なら宣言/定義合わせて一行で済むし生成されるコードも最小限なのに、関数にする意味無ーいじゃーん
363デフォルトの名無しさん:2005/10/06(木) 11:24:47
おまいな
一応定数を返すだけの関数にしとくと色々便利なんだよ
いつかPIの求め方が変更されるかもしれないだろ?
およそ3とかに
364デフォルトの名無しさん:2005/10/06(木) 11:26:57
>>362
定数の欠点は関数やプログラムコードを使って値を生成できないことだね。
eくらいはどうって事もないけど。
365デフォルトの名無しさん:2005/10/06(木) 11:34:15
>>364
一度コードで値を生成して表示させて、定数として定義するだけじゃねの。あくまで"定数"の話なんだから。
366デフォルトの名無しさん:2005/10/06(木) 11:45:01
データ構造がeより複雑で算出に外部データを必要とする定数の場合は
カスタムビルドステップのないDelphiではその定義するだけが面倒だというお話。
367デフォルトの名無しさん:2005/10/06(木) 11:51:06
わかんねーな。その関数一回呼ぶだけじゃん。型は複雑でも同じ結果返すんだべ?
ま、ぐだぐだ続ける話でもないか。
368デフォルトの名無しさん:2005/10/06(木) 12:20:14
関数にしておくのもそれなりにメリットがあるんだよ。PI が見かけ上関数になってる
のは将来の実装の変更を見越してるから。(精度が倍になるとか)
369デフォルトの名無しさん:2005/10/06(木) 12:21:45
ヘルプに PI が関数になってるのに忠実にしたがえば e は関数にしとくべき
370デフォルトの名無しさん:2005/10/06(木) 12:25:11
>>359
formatは型可変オープン配列パラメータだから作れるだろ
371デフォルトの名無しさん:2005/10/06(木) 12:26:36
>>370
簡単な例たのむ
372デフォルトの名無しさん:2005/10/06(木) 12:27:06
>>368-369
それはちょっと苦しいな
373デフォルトの名無しさん:2005/10/06(木) 12:27:56
function MakeStr(const Args: array of const): string;
const
BoolChars: array[Boolean] of Char = ('F', 'T');
var
I: Integer;
begin
Result := '';
for I := 0 to High(Args) do
with Args[I] do
case VType of
vtInteger: Result := Result + IntToStr(VInteger);

vtBoolean: Result := Result + BoolChars[VBoolean];
vtChar: Result := Result + VChar;
vtExtended: Result := Result + FloatToStr(VExtended^);
vtString: Result := Result + VString^;
vtPChar: Result := Result + VPChar;
vtObject: Result := Result + VObject.ClassName;
vtClass: Result := Result + VClass.ClassName;
vtAnsiString: Result := Result + string(VAnsiString);

vtCurrency: Result := Result + CurrToStr(VCurrency^);
vtVariant: Result := Result + string(VVariant^);
vtInt64: Result := Result + IntToStr(VInt64^);
end;
374デフォルトの名無しさん:2005/10/06(木) 12:35:38
>>371
簡単な例って、 format は SysUtils.pas にそのものがあるじゃないか
375デフォルトの名無しさん:2005/10/06(木) 13:28:20
>>368-369
VCLソースにはPIは関数としても定数としても定義されてない。何らかの理由(効率とか)で特別扱いしてるんだろう。
だからヘルプでは、このどちらでもないものを「便宜上」function PIと表記しているだけだと思う。
eを関数にしたって決してPIと同じ振る舞いはできないのだから、ヘルプにPIが関数として書いてるのだからeも〜ってのは間違ってると思う。
376デフォルトの名無しさん:2005/10/06(木) 13:35:05
> 何らかの理由(効率とか)で特別扱いしてるんだろう。

理由が分からないのに、同じ振る舞いができないからダメって、なぜ言えるんだろう?
377デフォルトの名無しさん:2005/10/06(木) 13:36:07
関数にしとく方がその「理由」に近いかもね
378デフォルトの名無しさん:2005/10/06(木) 13:39:26
>>376
どういう読解力してんだね。
eを関数にするべき理由が、PIも関数と書いてるから、というのはおかしいと言ってるんだ。
379デフォルトの名無しさん:2005/10/06(木) 13:40:40
>>377
いやPIの振る舞いは定数との違いがわからんくらい定数に近い。
380デフォルトの名無しさん:2005/10/06(木) 13:42:10
> eを関数にするべき理由が、PIも関数と書いてるから、というのはおかしいと言ってるんだ。

じゃどうしろと?
381デフォルトの名無しさん:2005/10/06(木) 13:43:51
どっちにしてもeはDelphiのunitじゃバグの元になりそうだな。
っていうかそういう高度な議論はフサスレでやれ。
382デフォルトの名無しさん:2005/10/06(木) 13:45:19
> どっちにしてもeはDelphiのunitじゃバグの元になりそうだな。

なるわけないでしょ。どんなバグを想定してるの?
383デフォルトの名無しさん:2005/10/06(木) 13:47:45
>>380
別に。「e は関数にしとくべき 」って言うけど、その必要はないんじゃね?少なくとも理由は変じゃね?ってだけ。
384デフォルトの名無しさん:2005/10/06(木) 13:49:07
> eを関数にするべき理由が、PIも関数と書いてるから、というのはおかしいと言ってるんだ。

だから、理由が分からないのにどうしておかしいといえるのか? と。
ヘルプで、PI を関数にしてるのは、なぜ「便宜上」そうなってると思う?
定数にしておけばどこが不便だ思う?
385デフォルトの名無しさん:2005/10/06(木) 14:16:58
>>384
「eを関数にしたって決してPIと同じ振る舞いはできないのだから」って書いてるだろう。PIは実際は関数ではないのだから、eを関数にしたってPIと同じようにしたことにはならない。

> ヘルプで、PI を関数にしてるのは、なぜ「便宜上」そうなってると思う?
> 定数にしておけばどこが不便だ思う?
PIの3.1415...を返すという動作を便宜上表現できるものであれば、別に関数でも定数でも良かったんじゃね?たまたま関数で書いたってだけで。
386デフォルトの名無しさん:2005/10/06(木) 14:42:46
なんで実装まで PI と同じにする必要があるんだろう?
387デフォルトの名無しさん:2005/10/06(木) 14:45:09
そんな事言ってねーってのがなんで分からんのかな…だめだこりゃ
388デフォルトの名無しさん:2005/10/06(木) 14:45:22
実装が定数でも関数でもないんだから、実装を真似る必要なんかないだろし、できない。

なぜ、そんなふうになってるかを考えなければ、定数がいいか関数がいいかなんて言えないだろうに。
389デフォルトの名無しさん:2005/10/06(木) 14:49:34
どっちでもないから、一方を主張するヤツに反対するのは簡単だわな・・・
390デフォルトの名無しさん:2005/10/06(木) 14:51:44
まともな根拠の無い主張なんだから、そりゃ簡単だ
391デフォルトの名無しさん:2005/10/06(木) 14:51:58
Piの場合はコンパイラが直接処理してるからソースに出てこないってだけの話しだべ
eはPi程の出番はないだろうということでコンパイラにそこまでやらせてないんだべ

eのExp(1)に相当するものが欲しければArcCos(-1)でも使えばいいね
Mathユニットにちゃんとコードが載ってるし(最後はAsm文へ行き着くけど)

どっちにしても使う側が気にすることでもなかんべ
392デフォルトの名無しさん:2005/10/06(木) 15:19:18
> まともな根拠の無い主張なんだから、そりゃ簡単だ

ということで >>338 の主張は根拠無しってことになった。
393デフォルトの名無しさん:2005/10/06(木) 17:15:19
だれかPi関数をちゃんと範囲内の素数の個数を返してくれるように直してちょんまげ
394デフォルトの名無しさん:2005/10/06(木) 17:22:04
> 範囲内の素数の個数

意味不明。
395デフォルトの名無しさん:2005/10/06(木) 17:27:04
>>394
まあ知らなくても無理はないと思うけど、393は意味不明な事は言っていない。

393は知識をひけらかしかっただけだろうな。間違ってはいないがイタイ奴だ。
396デフォルトの名無しさん:2005/10/06(木) 19:08:57
どっちでもいいから談話スレでやれっての
397デフォルトの名無しさん:2005/10/06(木) 19:10:56
超初心者がくだらないことを話すスレですから
398デフォルトの名無しさん:2005/10/06(木) 19:26:53
399デフォルトの名無しさん:2005/10/06(木) 19:59:57
この話題はどっちだってかまわないだろ。
400デフォルトの名無しさん:2005/10/06(木) 20:03:36
趣味の初心者がいなくなって、初心者といえばお仕事系のDBだとかレポートだとか
つまらん質問ばかりだから、今回のような話題はこっちでやっても委員ジャマイカ
401デフォルトの名無しさん:2005/10/06(木) 20:07:57
ん〜ネットだとやっぱり情報少なくない?
Delphiのいい参考書ないでしょうか?
402デフォルトの名無しさん:2005/10/06(木) 20:08:44
>>400
質問した人間そっちのけで話し進めるならあっちでやれ。
ここは質問スレ。
403デフォルトの名無しさん:2005/10/06(木) 20:12:22
質問した人が出てくるかどうか、なんか回答者に関係ないだろ
このごろの質問者はしっぱなしだし
404デフォルトの名無しさん:2005/10/06(木) 20:14:17
>>402 は「デフォルトの名無しさん」のどれが質問者か分かるらしい
405デフォルトの名無しさん:2005/10/06(木) 20:19:46
そういう質問と無関係なレスもあっちで
406デフォルトの名無しさん:2005/10/06(木) 20:20:36
やたらしきたりたがるひともあっちで
407デフォルトの名無しさん:2005/10/06(木) 20:37:18
408デフォルトの名無しさん:2005/10/08(土) 10:21:34
WinXP+D7Proです。FAQ かもしれない質問ですが…
IDE で、クラス名(Memo1: TMemo; などで TMemo の部分)にマウスカーソルを
あてると、クラスの情報がヒント表示されます。
しかし、フリーの VCL などでは表示されないのもあります。これは何故なのでしょうか?
409デフォルトの名無しさん:2005/10/08(土) 11:22:02
>>408
ソースが無いから。
410デフォルトの名無しさん:2005/10/08(土) 16:00:42
Delphiでのランダム生成ってどうやるんですか?

Randomize(100)とやってもうまくいきません。何か間違ってるでしょうか?
411デフォルトの名無しさん:2005/10/08(土) 16:06:11
Random
412デフォルトの名無しさん:2005/10/08(土) 16:07:02
Randomizeは初期化用で、やりたいのはRandom(100)じゃないの
413デフォルトの名無しさん:2005/10/08(土) 16:10:05
>何か間違ってるでしょうか?
質問時にどう上手くいかないか書かないオマイが間違ってる
ヘルプを読まないオマイが間違ってる

結論:すべてオマイが間違ってる
414デフォルトの名無しさん:2005/10/08(土) 16:15:15
すべて俺が間違ってました

ファー……ブルスコ……ファー


モルスァ
415デフォルトの名無しさん:2005/10/09(日) 01:00:09
ComboBoxでCtrl付きのショートカットを押すと「ポン」と鳴るんですが、
これをどうにかして無くす事はできませんか?
Enterの方は "Key := #0;" で鳴らなくなったんですけど。
416デフォルトの名無しさん:2005/10/09(日) 02:10:44
鳴らん・・・
417デフォルトの名無しさん:2005/10/09(日) 02:17:14
スピーカーつぶせばおk
418デフォルトの名無しさん:2005/10/09(日) 03:20:48
419デフォルトの名無しさん:2005/10/09(日) 04:15:40
delphiしぼんぬwwwwww
420デフォルトの名無しさん:2005/10/09(日) 06:02:09
終りだ
orz
421デフォルトの名無しさん:2005/10/09(日) 06:31:24
422デフォルトの名無しさん:2005/10/09(日) 06:43:19
423デフォルトの名無しさん:2005/10/09(日) 08:50:51
★<米デルファイ>破産法適用を申請★

これ見て「ナニぃ〜!」と一瞬あせったが、会社名「某ランド」だったね。
良かった...。
http://headlines.yahoo.co.jp/hl?a=20051009-00000008-mai-bus_all
424デフォルトの名無しさん:2005/10/09(日) 09:18:41
質問した人間そっちのけで話し進めるなら談話スレでやれ。
ここは質問スレ。
425デフォルトの名無しさん:2005/10/09(日) 12:07:28
>>415
鳴らないよ馬鹿か氏ね
426415:2005/10/09(日) 20:24:53
>>425
馬鹿か氏ねって…
実際に鳴ってて困ってるから質問したのに。
分かりました。質問は取り下げます。
427425:2005/10/09(日) 21:18:52
>>426
そんな悲しい事言うなよ。
428デフォルトの名無しさん:2005/10/09(日) 21:23:16
「馬鹿氏ね」は談話室でやれ
質問者もDelphiのバージョンと使用環境くらい明示しろよ

Delphi 7/XP Pro SP2じゃ鳴らん。
429415:2005/10/09(日) 21:27:07
Delphiユーザーって酷いですね
430デフォルトの名無しさん:2005/10/09(日) 21:45:14
だからデルファイなんてやめればよかったのに・・・
431425:2005/10/09(日) 22:09:21
>>429
たかが一つのスレッドを見てそう判断してるとしたらゴミ以下だよお前の脳みそはw
どうせ騙りだろうけどwwww
432デフォルトの名無しさん:2005/10/09(日) 22:57:05
Delphiでは可変長引数を持つ関数は作れないのでしょうか?
433デフォルトの名無しさん:2005/10/09(日) 23:03:30
はい
434デフォルトの名無しさん:2005/10/09(日) 23:07:30
>>432
型安全なのはarray of const、
Cと同じようにしたければcdeclのvarargs
435デフォルトの名無しさん:2005/10/10(月) 01:18:04
TServiceクラスを使ってサービスアプリを作っています。
例外が発生したときにエラーコードを自動的にイベントビューアに書き込むようですが、これを止めたいです。
どうすればいいのでしょうか?
436デフォルトの名無しさん:2005/10/10(月) 01:32:09
自前で例外を処理するようにすればいいんでないかい
437デフォルトの名無しさん:2005/10/10(月) 01:41:25
知らないけどtry...exceptとかで書けば平気なんじゃ?いや、ほんと知らんけど。
438435:2005/10/10(月) 02:12:47
うーむ、処理した例外のメッセージを取り出すところがちょっと調べないと
難しかったけど、なんとなく出来た気がします。
とりあえずイベントビューアにはのらなくなった。

ふつーに日ごろtryなんて使ってるのになんかサービス&イベントビューア
ってことでなんか特別なのかと身構えちゃって思いつかなかったよ。
ありがとう436,437
439テンプレ:2005/10/10(月) 09:03:18
Delphiでは出来ません。
,NETなら出来ます。

以上。
440デフォルトの名無しさん:2005/10/10(月) 09:27:24
チョンNET ってなに? そもそもプラットフォームの名前が出来るとか出来ないとか
に関係あるのか? アフォレスの典型だな
441デフォルトの名無しさん:2005/10/10(月) 13:28:13
>>440
駄目だよ小学生にマジレスしたら。トラウマになっちゃうよ(笑
442デフォルトの名無しさん:2005/10/10(月) 14:33:55
>>415
よくわかりませんが、こういうことかな?
if Key = #13 then key := #0;
if ((GetKeyState(VK_CONTROL) and $8000) <> 0) then key := #0;
443デフォルトの名無しさん:2005/10/10(月) 18:42:14
>>439
意味がよくわからないのですがDelphi.NETではできるということですか?
ちゃんと答えてください。
444デフォルトの名無しさん:2005/10/10(月) 18:52:14
>>443
それ以外に聞こえたら説明が悪かったのだろう
445デフォルトの名無しさん:2005/10/10(月) 21:15:55
初めまして。
超初心者用のスレなので、書き込んでみます。

最初に i=integer; と宣言して、その下でi=:10と記載しました。
その後にi=real;と型を書き換えたら、エラーがでるようになりました。
realは実数で、integerは整数と参考書に書いてあったのですが、
10は実数ではないのでしょうか???
446デフォルトの名無しさん:2005/10/10(月) 21:22:12
var i: real;
begin i := 10; end;
のようにreal型変数に10を代入しても問題ない。
ただの書き間違いじゃないの。
エラーの内容読んでみ。
447デフォルトの名無しさん:2005/10/10(月) 21:27:18
>>その下でi=:10

i:=10じゃね
448デフォルトの名無しさん:2005/10/10(月) 21:36:45
>>445
書式はなるべくソースそのままにしようぜ
言いたいことはわかるが、それがここだけの打ち間違いなのかソースでも間違ってんのか分かりにくい
449445:2005/10/10(月) 21:37:47
>>446 やっぱり書き間違いかな???
エラー内容は、「指定された引数で呼び出すことができる
オーバーロード関数IntToStrが定義されていません」と・・・。
IntToStrっていう記述は、integer型にしか使えないのかな?
「デルファイはじめの一歩」という文字がでかくイラストが多い本を
まだ60Pしか読んでないから、テキストの例題に記載されたとおりのこと
以外は何もできない・・・。
450デフォルトの名無しさん:2005/10/10(月) 21:40:42
そりゃ"Int"ToStrだからな。
FloatToStrかFormat('%f', [i]);使え。
451445:2005/10/10(月) 21:50:27
みなさん回答ありがとうございます。
もともと文系の人間で、おとといテキストを買ってきたばかりなので
なかなかサクサクとは勉強が進みません。
質問の仕方自体よく分からなかったりもしますが、多分また
お邪魔すると思います。これからもよろしくお願いします(・ω・)ノ
452デフォルトの名無しさん:2005/10/10(月) 21:54:32
>>451
なにが問題なのか自分なりに考えた結果とソースがあればおk
453デフォルトの名無しさん:2005/10/10(月) 22:05:34
>>451
低学歴ニートの俺でも時間掛けたら超基本的なとこまではできたから、絶対大丈夫だよ。
がんばれ〜
454デフォルトの名無しさん:2005/10/10(月) 22:08:14
VB.NETならi.ToString()で済むのにね。
21世紀にもなってまだ整数がオブジェクトじゃない言語があるなんて信じられないよ。
455デフォルトの名無しさん:2005/10/10(月) 22:25:01
>>454
Delphi.NETでもそれで済むよ?
456デフォルトの名無しさん:2005/10/10(月) 22:26:04
>>451
ていうか文系でも複雑な計算が必要だったり
性能を追求しなければ全く問題ない
457デフォルトの名無しさん:2005/10/11(火) 00:53:06
Delphiでは出来ません。
.NETなら出来ます。
458デフォルトの名無しさん:2005/10/11(火) 01:10:15
Str(i, s)で済むんだけどな…。
IntToStrも中身これだし。
古かろうがなんだろうが、コンパイラが直接サポートする手続きのほうが便利だよ。
459デフォルトの名無しさん:2005/10/11(火) 01:27:52
まったく思考が古いですね。
460デフォルトの名無しさん:2005/10/11(火) 02:11:20
人間にとって便利なのが一番
461デフォルトの名無しさん:2005/10/11(火) 08:01:53
>>457
意味がよくわからないのですがVBはだめでDelphi.NETではできるということですか?
ちゃんと答えてください。
462デフォルトの名無しさん:2005/10/11(火) 08:34:54
いいえ。
DelphiはだめでVB.NETではできるということです。
463デフォルトの名無しさん:2005/10/11(火) 09:17:39
ToString()は、.NETのObjectクラスのメソッドだったと思うが。
464デフォルトの名無しさん:2005/10/11(火) 09:17:51
同じ.NETなのに変ですね。
.NET自体が変ということでしょうか?
465デフォルトの名無しさん:2005/10/11(火) 09:38:00
<米デルファイ>破産法適用を申請
http://headlines.yahoo.co.jp/hl?a=20051009-00000008-mai-bus_all
466デフォルトの名無しさん:2005/10/11(火) 09:39:29
超初心者ならまだ傷は浅い。
他の言語をどうぞ。

おおおおおっと、VBの話しが出てますね、VBでもどうぞ。
467デフォルトの名無しさん:2005/10/11(火) 11:29:02
>>465
 >>418 でほぼ既出。
468デフォルトの名無しさん:2005/10/11(火) 12:24:31
>>467
とうか同じやつ(VB厨またはインライン君)でしょ
469デフォルトの名無しさん:2005/10/11(火) 12:52:25
質問した人間そっちのけで話し進めるなら談話スレでやれ。
ここは質問スレ。
470デフォルトの名無しさん:2005/10/11(火) 12:53:28
っていうか、くだ質問する初心者もいなくなったかぁ・・・・・・・・
471デフォルトの名無しさん:2005/10/11(火) 13:27:08
夏休みの2chブラウザ強制が効いたな。
他スレも全然伸びない。
472デフォルトの名無しさん:2005/10/11(火) 14:16:21
インターネット上の画像を取ってきて表示できるコンポーネント無いですか?
(プロキシサーバ対応で・・・)

FileStreamでやらないと駄目なのかなぁ
ちょっとめんどっちい
473デフォルトの名無しさん:2005/10/11(火) 14:20:52
TWebBrowser
474デフォルトの名無しさん:2005/10/11(火) 14:45:13
>>473
あ、そか サンクス

んーJpeg画像を直でURLに指定したら、画像の周りに余白がでるなぁ
消せないのかな

475デフォルトの名無しさん:2005/10/11(火) 14:47:38
ローカルにマージン指定したHTML生成するとか
476472:2005/10/11(火) 14:48:25
あぅ・・windowのサイズに合わせて画像サイズのリサイズもしたいが、
結構めんどいなぁ・・・。

やっぱりImageコンポーネントに入れ込むことを考えないといけないか
477デフォルトの名無しさん:2005/10/11(火) 14:56:19
Delphiやっても、いずれ消滅していく言語だから、やっても意味がないってカキコをみました。

本当なんでしょうか?
どの言語を覚えたらいいか、真剣に考え中です。
478デフォルトの名無しさん:2005/10/11(火) 14:58:14
またおまえか
479デフォルトの名無しさん:2005/10/11(火) 15:09:01
480デフォルトの名無しさん:2005/10/11(火) 15:22:23
>>477
 目的がDelphiをやる事なら君がやっても意味ない。 
 でもDelphiの部分を何に置き換えたって同じだよ

 どの言語を覚えるかというのがプログラム言語の意味なら、
 君は、プログラム言語をやるより、他の事やった方が幸せになれると思うよ。

というか、こんなもの覚えて、何をしたいわけ?
481472:2005/10/11(火) 15:25:57
>>479
サンクスです。いいなぁこのコンポーネント

これでfreeだったらなぁ。。。(ショボーン
482472:2005/10/11(火) 16:31:33
TMSのコンポーネントにありました
ttp://www.tmssoftware.com/webimage.htm

探していただいたかたどうもでした
483デフォルトの名無しさん:2005/10/11(火) 16:52:35
484477:2005/10/11(火) 20:06:00
>こんなもの覚えて、何をしたいわけ?

なんか、Delphiの立場的なものがわかった気がします。
ちょっと、いろいろ調べて考えることにします。
485デフォルトの名無しさん:2005/10/11(火) 20:13:00
まずは日本語から。
486デフォルトの名無しさん:2005/10/11(火) 20:14:25
>>484
そうだね。 学校の勉強と違って、こういうのは、目的があってこその道具。
目的なくて、教養としてとりあえず勉強したいという「勉強が目的」ならC言語でもやればいい
487デフォルトの名無しさん:2005/10/11(火) 21:59:56
いやー釣れた釣れた
488445:2005/10/11(火) 23:03:43
またすごく恥ずかしい質問なのですが、テキストの中の単語の読み方が分かりません。
(例えば、「var」とか「IntToStr」の「Str」部分とか・・・。)
今日同じ会社のプログラマーさんの席の近くを少しうろついてみた(不審?)のですが、
それっぽい単語は出てきませんでした。(´ω`)=3 
これは会社のプログラマーさんに直接聞いていくしかないのでしょうか?
(参考になる本やサイトが見つけられなかったのです・・・。)
みなさんはどうやって覚えたのでしょうか?
489デフォルトの名無しさん:2005/10/11(火) 23:18:44
var は頭の中では バー っていってる。variable 変数って言う意味。
IntToStr() は、頭のなかでは イントトゥストリング と言ってる。
integer 整数を string 文字列 に変換ってことだね。
490445:2005/10/11(火) 23:56:52
>>489 そう読むんですか。勉強になりました。
今日はif文の書き方を覚えました。明日はif文の入れ子のやつを勉強します。
それではおやすみなさい(・ω・)ノシ
491デフォルトの名無しさん:2005/10/12(水) 01:12:18
読み方と言えばprocedureと引数が定番だな
procedureは「プロシージャ」辺りであり「プロセドゥア」でない
あと「引数」は「ひきすう」、間違っても「いんすう」じゃない
492デフォルトの名無しさん:2005/10/12(水) 01:20:22
いんすうってよんでた
493デフォルトの名無しさん:2005/10/12(水) 01:57:11
英語の読み方を片仮名で書くのはどうかと思ったがまあいいや
494デフォルトの名無しさん:2005/10/12(水) 02:08:30
いやいや、コーディングのとき頭のなかでどう言ってるか、ってことなんだ。
オレはブラインドタッチができないけど、頭のなかで イントトゥスリング と
いいながら IntToStr() でタイプしてると効率が上がるような気がする。
人によって言い方も、また、頭の中でもつぶやかない人がいると思うけど。
495デフォルトの名無しさん:2005/10/12(水) 02:58:32
俺はイントトゥストルって読んでる
496デフォルトの名無しさん:2005/10/12(水) 04:16:44
イントトゥストア って読んでる
要はみんな適当。と。
497デフォルトの名無しさん:2005/10/12(水) 07:15:37
親切な文書だと間違えないよう 引き数 って書いてくれるね

ひきすうと読まないと
因数と勘違いしてしまうから、たぶんそう読む事にしたんだろうね。
498デフォルトの名無しさん:2005/10/12(水) 07:17:06
普通はイントトゥーエスティーアールじゃないのかな?
499デフォルトの名無しさん:2005/10/12(水) 07:51:58
俺は頭ん中で文字列が映像として浮かぶから読んでないな
500デフォルトの名無しさん:2005/10/12(水) 08:00:13
trの発音はチュアだろ
501デフォルトの名無しさん:2005/10/12(水) 08:18:24
IncludeTrailingPathDelimiter
↑この関数タイプするのマンドクサイんですが。
502デフォルトの名無しさん:2005/10/12(水) 08:25:24
Ctrl + Spaceで補完できるだろ。
503デフォルトの名無しさん:2005/10/12(水) 08:26:04
IncludeTあたりでCTRL+SPACEとか
504デフォルトの名無しさん:2005/10/12(水) 11:00:09
俺はベタにイントトゥストラ
505デフォルトの名無しさん:2005/10/12(水) 11:38:13
 固定ピッチフォントだけを取り出すため以下のようにしているのですがプロポーショナ
ルフォントと思われる「HG 丸ゴシック M-PRO」や「HG 正楷書体 M-PRO」も列挙され
てしまいます。実用上は EnumFontsProc を呼び出す側でこれらの文字列を判断して
除けばいいのでしょうが、FIXED_PITCHを指定しているのになぜ プロポーショナルフォ
ントがリストアップされるのかわかりません。

function EnumFontsProc(var LogFont: TLogFont; var TextMetric:
 TTextMetric; FontType: Integer; Data: Pointer): Integer; stdcall;
begin
 if (LogFont.lfPitchAndFamily and 3) = FIXED_PITCH then
  TStrings(Data).Add(LogFont.lfFaceName);
 Result := 1;
end;
506デフォルトの名無しさん:2005/10/12(水) 11:57:51
あたりまえだが、固定ピッチだからじゃないの?

> プロポーショナルフォントと思われる「HG 丸ゴシック M-PRO」

どうしてそう思ったの?
507デフォルトの名無しさん:2005/10/12(水) 12:07:52
試しにCanvasに割り当てて TextWidth('i.!') = TextWidth('QWA') とかで判定してみたら?
508デフォルトの名無しさん:2005/10/12(水) 15:54:18
フォームにブラウザコントロールを置いて
wbWWW.Silent := True;
wbWWW.Navigate(openURL);
wbWWW.Refresh;

とやると、
「エラーを特定できません。」というエラーが発生します。
どうしたものでしょうか?
509デフォルトの名無しさん:2005/10/12(水) 16:08:14
>>508
非同期で動いているNavigateが完了する前にRefreshを呼ぶからぢゃない?
てか、Refreshいらんだろ。
510デフォルトの名無しさん:2005/10/12(水) 16:21:23
>>509
なるほど。Refreshしないとページが表示されないのですが
それが問題ということですね。
511デフォルトの名無しさん:2005/10/12(水) 17:46:02
 TreeView1を使って簡単なアウトラインプロセッサを作成しているのですが読み込む部分
でメモリーリークが発生して困っています。
 FileLoad を1回呼んで終了するとファイルのノード数に関わらず1回だけ、それ以上繰
り返して終了するとファイルのノード数が加算された数だけメモリーリークするようです。
 ClearTreeに何か問題があるのでしょうか?
 関係のあるところだけ抜き出しますがちょっと長いので
ttp://kuroneko-upload.no-ip.info/uploader/sn/upload.html
にアップします(up0862.txt[DLKey は 1234)。
512デフォルトの名無しさん:2005/10/12(水) 18:40:23
>>511
>      while Items.Count <> 0 do
>      begin //ノードが保持していたデータオブジェクトを確実に廃棄
>        if Items[0].Data <> nil then
>          TMyNode(Items[0].Data).Free;
>        Items.Delete(Items[0]);
>      end;

これ、遅い上に危険。
Items[0].Deleteが Items[0] の子以下も全て削除するから
子の Data が破棄されない。

for i := 0 to Items.Count - 1 do
 TMyNode(Items[i].Data).Free;
Items.Clear

にすれ。
513デフォルトの名無しさん:2005/10/12(水) 18:42:52
あ、それよりも破棄は TTreeView.OnDeletion に任せる方が安全か。
514デフォルトの名無しさん:2005/10/12(水) 20:08:37
513の言うとおりだな
OnDeletionに

if Assigned(Node.Data) then
TMyNode(Node.Data).Free;

と書いておけばおk
515511:2005/10/13(木) 06:13:00
>>512=たぶん513
>>514
 ありがとうございました。
> Items[0].Deleteが Items[0] の子以下も全て削除するから
> 子の Data が破棄されない。
 なるほど、そうなんですね。
 ところで>>514さんの OnDeletion を使う方法だと
 TreeView1.Items.Clear
だけを実行すればいいわけですね。


516デフォルトの名無しさん:2005/10/13(木) 09:42:32
TRadioGroupで個々の項目を独立してEnabledの設定はできますか?
やはり、TRadioButtonを使うべきでしょうか?
517デフォルトの名無しさん:2005/10/13(木) 10:05:36
>>516
無理
TRadioButtonを置いて個々を管理するしかない
そんときは下のような関数を用意しておいて1度全部Falseにして
必要なものだけTrueにするのがスマートでいいと思う

procedure SetEnabledAll(Control: TWinControl; AEnabled: Boolean);
var
c: TControl;
i: Integer;
begin
Control.Enabled := AEnabled;
for i := 0 to Control.ControlCount-1 do
begin
c := Control.Controls[i];
if c is TWinControl then
SetEnabledAll(TWinControl(c), AEnabled)
else
c.Enabled := AEnabled;
end;
end;
518デフォルトの名無しさん:2005/10/13(木) 10:54:27
>>516

TRadioGroup.Controls[] を通じて個々のラジオボタンにアクセスできるよ。
例えばキャプションが 'ccc' なのを Enabled := false にするには

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to RadioGroup1.ControlCount-1 do
    if TRadioButton(RadioGroup1.Controls[i]).Caption = 'ccc' then
      TRadioButton(RadioGroup1.Controls[i]).Enabled := false;
end;
519デフォルトの名無しさん:2005/10/13(木) 11:02:38
ブラウザをURLを入力するEdit&Button(この二つは同一Form上)   
WebBrowserだけを別のフォームにおいて入力部分と表示部分を分けたブラウザを作りたいと考えているのですが
実行しボタンを押してもForm2が自動で開いてくれません。どのようにすればボタンを押すことによりForm2を表示させることができるのか教えてください。よろしくお願いします。

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw_TLB;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
WebBrowser1: TWebBrowser;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.WebBrowser1.Navigate(Edit1.Text);
Form2.WebBrowser1.Navigate(Edit1.Text);  //ここの部分の処理 別ウィンドウを開かせたい
end;
end.
520デフォルトの名無しさん:2005/10/13(木) 11:06:47
Form2 が自動生成の対象になってるか確認
Form2.Show とか Form2.ShowModal とかのメソッドを使う。
521デフォルトの名無しさん:2005/10/13(木) 11:07:38
Form2.Show;
522デフォルトの名無しさん:2005/10/13(木) 11:08:30
WebBrowserがFomr1とForm2両方にある意味がよくわかんないけど
Form2を表示するならForm2.Show;
523デフォルトの名無しさん:2005/10/13(木) 11:11:09
>>520
自動で開いてくれないのなら手動で開くしかないでしょ。
なぜにそこで指向がストップするんだ?

Form2.WebBrowser1.Navigate(Edit1.Text);  
Form2.Show;  //追加
524デフォルトの名無しさん:2005/10/13(木) 11:11:36
Form2を自動生成してるならForm2.show

自動生成してない場合モーダル表示なら
Form2 := TForm2.Create(Self);
try
 Form2.ShowModal;
finally
 Form2.Release;
end;

モーダル表示しないなら
From2のonCloseイベントに
Action = caFree;
を記述
525523:2005/10/13(木) 11:12:04
間違えた。s/指向/思考
526デフォルトの名無しさん:2005/10/13(木) 11:12:36
フォーム1上にもブラウザをおいたのは同一フォーム内だと正常に動作するのを確かめるためでした
わかりづらいことをしてすみません。解決いたしました ありがとうございます。
527デフォルトの名無しさん:2005/10/13(木) 11:14:36
>>519に怒涛のレスだけどこのスレこんなに住人いたのかw
528デフォルトの名無しさん:2005/10/13(木) 11:16:51
>>527 雰囲気に怖がらずに質問してくれればいいんだよ。 24時間フルサポートって訳にはゆかないが
529デフォルトの名無しさん:2005/10/13(木) 11:18:38
俺は9:00〜17:00までフルサポートするよ
530デフォルトの名無しさん:2005/10/13(木) 11:25:20
仕事しる!
531デフォルトの名無しさん:2005/10/13(木) 13:09:40
Edit1.Text に数字が入ってるのか文字列なのかチェックしたいのですが どのようにすればいいですか?
532デフォルトの名無しさん:2005/10/13(木) 13:21:24
try StrToInt(Edit1.Text); {数字} except {文字列} end; でいんじゃね
533デフォルトの名無しさん:2005/10/13(木) 13:23:03
数字だと仮定して、数値に変換して例外がでるかどうかで判断。
Val() だと例外でなくても判断できる。
534デフォルトの名無しさん:2005/10/13(木) 13:26:45
数字がある範囲内であるのなら(例:0以上) StrToIntDef(Edit1.Text, -1) とかでもいいわな。
535デフォルトの名無しさん:2005/10/13(木) 13:29:04
整数とは限らないわけだが
536デフォルトの名無しさん:2005/10/13(木) 13:32:25
TryStrToInt / TryStrToFloat は?
537デフォルトの名無しさん:2005/10/13(木) 13:35:12
ありがとうございます。マニュアルValの例をそのまま使えました。

var
I,Code:Integer;
begin

Val(Edit1.Text, I, Code);
if code <> 0 then
begin
Edit1.Text := '0';
end;
538デフォルトの名無しさん:2005/10/13(木) 14:30:35
Form1のフレームをマウスでひっぱたら伸びたり縮んだりするんですが、
固定する方法はありますか? 
539デフォルトの名無しさん:2005/10/13(木) 14:32:03
FormStyle
540デフォルトの名無しさん:2005/10/13(木) 14:32:06
>>538
Form1を選択した状態でオブジェクト インスペクタのプロパティにあるBorderStyleをbsSingleに
変更すれば良い。
541デフォルトの名無しさん:2005/10/13(木) 14:36:09
ありがとうございます。 固定できました。
542516:2005/10/13(木) 15:02:56
>>518
できました。

>>517
アレンジして使わせていただきます。
543デフォルトの名無しさん:2005/10/13(木) 15:37:23
procedure TForm1.KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ( Key = VK_DELETE ) and ( ssNone in Shift ) then
  begin
  end;
end;
っでssNone in ShiftとssAlt, ssCtrlだけ入れたいのですが、
どう記述したらよいのでしょうか?
全部andでつなげるしかないのでしょうか?
544デフォルトの名無しさん:2005/10/13(木) 15:50:26
意味がよく汲み取れないのですが、集合型の要素をどうやって設定するかってことなら
ヘルプみると書いてあるよ。
545デフォルトの名無しさん:2005/10/13(木) 15:53:49
設定でなくて検査ならひとつずつ in で調べる。D6 のヘルプには ssNone って載ってない
546デフォルトの名無しさん:2005/10/13(木) 16:03:32
>>543
Shift = [ssShift, ssAlt, ssCtrl] こう使う。
inは一個しか駄目だったと思う。


547デフォルトの名無しさん:2005/10/13(木) 16:10:59
配列の中身を一発でクリアする命令ってないんですか?
548デフォルトの名無しさん:2005/10/13(木) 16:13:56
Altも押してるし Ctrl も押してるけど シフトは押してないという事なら>>546

等号の部分を >= に変えれば部分集合 つまり、含まれていればになるけど、コレはみんなあんまり使わないみたいだから
in を andで書いた方が判りやすいかもね

>>547
配列の種類によっては FillChar とかで出来るけど、可読性が悪いからお勧めじゃない
素直に書いてもコンパイラだから効率悪くないから
549デフォルトの名無しさん:2005/10/13(木) 16:14:30
FillChar なんかどう?
550デフォルトの名無しさん:2005/10/13(木) 16:15:18
>>548
ありがとう
551デフォルトの名無しさん:2005/10/13(木) 16:17:19
FillChar や ZeroMemory 使えるんなら、その方が処理スピードは速いでしょう
552デフォルトの名無しさん:2005/10/13(木) 16:23:11
>>548
for i・・・・
a[i]:= 0;

とかやったらさすがに遅いだろw
553548:2005/10/13(木) 16:28:28
>>551 おっしゃる通り。REP STOSD で4バイト毎に書き込むので、高速は高速ですね。
高速が好みなら MMXで64bit バージョンとか CPUによっては128bitバージョンに挑戦しては?

>>552 それでも aが32bitなら、そんなに変わらないと思うけど?
554デフォルトの名無しさん:2005/10/13(木) 16:35:07
またまた、変なのが現れたなぁ。

FillChar が可読性悪いから、少々遅くてもループで初期化せよ、ってことに
反応しただけでなんで「MMXで64bit バージョンとか CPUによっては
128bitバージョンに挑戦」しなきゃならんの?

FillChar 使える場合は、可読性は FillChar のほうがいいと思うよ。
単機能なんだから何やってるかすぐわかるし。
555デフォルトの名無しさん:2005/10/13(木) 16:40:51
FillChar(array, Sizeof(Array), #0);

for i := 0 to Length(Array) -1 do
 Array[i] := #0;

どっちが見やすいのは一目瞭然だと思うけど
556548:2005/10/13(木) 16:44:50
うーん >>555
for i:= Low(a) to High(a) do a[i]:= 0; として欲しい所だな
557デフォルトの名無しさん:2005/10/13(木) 16:47:35
たしかに配列ならLow, Higth使ったほうがいいな
558548:2005/10/13(木) 16:49:08
そういや  FillChar って 3番目の引き数 Byte タイプの筈なのに Charでも通る変な関数というか
Systemにある関数ってそんなの多いような・・・・
559デフォルトの名無しさん:2005/10/13(木) 16:51:28
> どっちが見やすいのは一目瞭然だと思うけど

それは、要素がひとつだけだからね。
integer のフィールドが20個あるレコード型の配列を初期化してご覧
560548:2005/10/13(木) 16:54:56
>>559
レコード型だと、文字列なんかを後からメンバに加えたりした場合にアレだから
なおさら FillCharはお勧め出来ないけどなあ・・・・
561デフォルトの名無しさん:2005/10/13(木) 16:55:45
FillChar が使える場合は、って言ってるだろ。
562名無し募集中。。。:2005/10/13(木) 16:57:23
>>559
type
563548:2005/10/13(木) 16:59:37
>>561 言いたい事は判ってるし、実は俺もFillCharとか使ってた方だけど

でも、コード規模が大きくなって、3年後で変更なんて事が増えてくると、
for i:= Low(a) to High(a) do SetUpXXXX( a[i] );
なんて 感じの手続きで処理させた方が、多少のコストを払っても
後から効いてくるって事なんだよ
564デフォルトの名無しさん:2005/10/13(木) 17:08:28
いろいろ条件を後付けされても・・・・

>>547 が三年後に変更するかどうかなんか誰にも分からないだろうに。

その論理だと、高速で1行で済むような関数を使うより、メンテが楽で簡単な論理で
済ませられるほうを使え、とかなるけど、どうよ?
565デフォルトの名無しさん:2005/10/13(木) 17:10:03
あと高速処理なら、MMXで64bit バージョンとか CPUによっては128bitバージョンを使え、とかな
566デフォルトの名無しさん:2005/10/13(木) 17:11:46
Delphi つかうことを前提にしてないのかね・・・
567548:2005/10/13(木) 17:12:30
>>564
 急いでるときはなおさら、『メンテが楽で簡単な論理で済ませられるほうを使え』 が正解になる事が多いよ。
 速度そのものはアルゴリズムの工夫の方が結局は効いてくるから
 実装はコードが長くなっても出来るだけメンテが楽で簡単な論理を組み合わせる方がいい。

 これは、コードコピペを薦めてるんじゃなくて、少なくとも構造化をした上でって意味だよ
568デフォルトの名無しさん:2005/10/13(木) 17:14:00
質問した人間そっちのけで話し進めるなら談話スレでやれ。
ここは質問スレ。
569デフォルトの名無しさん:2005/10/13(木) 17:20:56
なんだとこのやろう
570デフォルトの名無しさん:2005/10/14(金) 00:03:36
Edit1を押した時のキーの制限なんですが、数字とバックスペース はDel掲示板を参考に
それに、小数点を追加したいと思いまして、マニュアルのキーより VK_DECIMAL〔.〕キー(テンキー)
というの発見したのですが、小数点 . では反応しません。 どう書けばいいのでしょうか?


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',Chr(VK_BACK),Chr(VK_SPACE),Shr(VK_DECIMAL)]) then Key := #0;
end;
571デフォルトの名無しさん:2005/10/14(金) 00:05:24
Shr(VK_DECIMAL) ミス Chr(VK_DECIMAL) でした
572デフォルトの名無しさん:2005/10/14(金) 00:13:12
'.'でいいのでは…。
573デフォルトの名無しさん:2005/10/14(金) 00:17:10
>>572
できました。ありがとうございました。 
574デフォルトの名無しさん:2005/10/14(金) 03:18:56
ちょっとワロタ
575デフォルトの名無しさん:2005/10/14(金) 12:42:10
フォントのサイズを変更したいのですが
Label1.Font.Size := 9;
この使い方だとえらーがでます。
どうやったら変わりますでしょうか?
576デフォルトの名無しさん:2005/10/14(金) 12:55:13
エラー出ないけど
577デフォルトの名無しさん:2005/10/14(金) 13:09:03
なんてエラーよ?
578デフォルトの名無しさん:2005/10/14(金) 13:51:24
今やったら、うごきました。 
エラーは、実行するとパネルがでて、エラーメッセージはとくになく・・・。
お騒がせしました。 
579デフォルトの名無しさん:2005/10/14(金) 15:22:02
delphi2006っていくらするんですか? 
delphi6より使いやすいですか?
580デフォルトの名無しさん:2005/10/14(金) 16:18:58
まだ未発売だし、日本では未発表。だから、誰にも答えられない。
581デフォルトの名無しさん:2005/10/14(金) 19:48:47
582デフォルトの名無しさん:2005/10/14(金) 19:49:58
BCBとの統合が楽しみだねー
583デフォルトの名無しさん:2005/10/14(金) 19:51:33
いや、Delphi だけで十分なんだが。余分のものにも金払わせられるのは気分わるい。
584デフォルトの名無しさん:2005/10/15(土) 00:32:10
参考書に書いてある例題で
「Edit1に1を入力すると'これは1です’とlabel1に表示し、
 1以外を入力すると’これは1以外です'と表示させる」
という練習問題があるのですが、その記述方法は
i := integer; と書いた後に i := StrToInt(Edit1.text) と記載して、
その後にif文を続けています。

Edit1には0や1などの数字を打ち込むのに、なぜi := StrToIntという風に
文字列⇒整数への変換が必要なのでしょうか?
Edit1には整数しか入力できないという限定が特にされていないから、
1や0が入力されていてもそれを一旦「文字」と捉えて、その後に改めて
整数型に変換しないといけないということでしょうか?

教えてください。よろしくお願いします。
585デフォルトの名無しさん:2005/10/15(土) 00:34:38
Edit1に入力する1は文字の1であって数の1ではないということです。
586デフォルトの名無しさん:2005/10/15(土) 01:16:07
if Edit1.Text = '1' then

のように文字として判断することもできるよ。
587デフォルトの名無しさん:2005/10/15(土) 01:26:25
すべての整数は、また、すべての実数でもあるので、
Integerの値はそのままRealの変数に代入できる。
逆は必ずしも成り立たないので、切り捨てとか切り上げとか四捨五入とか
変換関数を選んでかまさないといけない。
テキスト(文字列)から整数への対応も、一意じゃないでしょ?
もしかしたら16進数で入力されてるかもしれないし、補数表現かもしれないし、区別はつかないし。StrToIntとは別の解釈を行う変換ルーチンは当然存在できる。
(整数と文字列ではメモリ上の表現が著しく異なるというのもある)

まあ勝手に変換してくれる言語もあるけれど、Pascalはその辺きちんとしてるから。
588584:2005/10/15(土) 01:53:48
回答ありがとうございます。
textの中に書き込むものは、見た目が数字でも何でも
全部文字列のものなんですね。

pascal・・・もうちょっと成長してから調べます(,,゚Д゚)
589デフォルトの名無しさん:2005/10/15(土) 02:42:48
いや数字なんだよ。数値ではない、ってこと。
590デフォルトの名無しさん:2005/10/15(土) 21:38:59
TreeViewのスクロールバーを消したいんですが、どういった方法がありますか?
とりあえずShowScrollBarでも消えることは消えるんですが、
変更がある度に呼び出してもかなりスクロールバーがちらついてしまいます。
591デフォルトの名無しさん:2005/10/15(土) 21:40:51
なぜ消したいの?
592デフォルトの名無しさん:2005/10/15(土) 22:23:12
(簡単)
TreeViewをパネルの中にでも置いて、スクロールバーの分だけパネルのサイズを小さくしておく。
(面倒)
CreateParamsオーバーライドしてウィンドウスタイルのWS_VSCROLL、WS_HSCROLLを取る
593デフォルトの名無しさん:2005/10/15(土) 22:26:48
CreateParamsオーバーライドしてウィンドウスタイルに TVS_NOSCROLL を追加する
594デフォルトの名無しさん:2005/10/15(土) 22:31:33
簡単

uses
  CommCtrl;

procedure TForm1.FormCreate(Sender: TObject);
var
  style: LongInt;
begin
  style := GetWindowLong(TreeView1.Handle,GWL_STYLE);
  SetWindowLong(TreeView1.Handle, GWL_STYLE, style or TVS_NOSCROLL);
end;
595デフォルトの名無しさん:2005/10/15(土) 23:34:39
>>591
別のスクロールバーを使うため、TreeViewのものが不要なので。

>>592
>>593
>>594
WS_VSCROLL、WS_HSCROLLは質問の前に試していたのですが、やりかたがまずいのか効果無しでした。
TVS_NOSCROLLの追加でうまくいったようです。
ありがとうございます。
596デフォルトの名無しさん:2005/10/17(月) 09:53:55
元Cプログラマなのですが質問させてください。

サブルーチンにあたるものが欲しくていろいろ参考書に当たってみたのですが
作成の仕方を書いてある文章が見つかりませんでした。

【環境】
言語:Delphi6 personal
OS:Windows2000pro

【やったこと】
--------------------------------------------------------------
(略)
type
TTrance = class(TForm)
(略)
Button3: TButton;
procedure keisan(Sender: TObject); ※これをサブルーチンにしたい
(その他関数)
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
597デフォルトの名無しさん:2005/10/17(月) 09:55:11
(続き)
var
Trance: TTrance;
implementation
{$R *.dfm}
procedure keisan(Sender: TObject);
var
i:interger;
begin
end;
end.
-------------------------------------------------------------
【欲しい関数】C言語において
main()
{a=keisan(8);printf("%d",a);}
int keisan(int i)
{return (i*2);}
例なのですがこんな関数が作りたいわけです。

どうかお願いします。
598デフォルトの名無しさん:2005/10/17(月) 09:58:01
ヒント:function

本当にプログラマだったのか・・?
599デフォルトの名無しさん:2005/10/17(月) 09:59:53
そもそもCでサブルーチンって言葉は使わないような気が‥‥(;´Д`)
600デフォルトの名無しさん:2005/10/17(月) 10:00:35
>>596
どういう事?methodでは具合悪いのか?
ほんとにCやってたの?
別でヘッダーと関数書いたらいいじゃん。
procedure keisan(Sender: TObject);

601デフォルトの名無しさん:2005/10/17(月) 10:01:44
PrivateかPublicにでも宣言しとけ

function TForm1.keisan(const Value: Integer): Integer;
begin
Result:= Value * 2;
end;
602デフォルトの名無しさん:2005/10/17(月) 10:38:48
サブルーチンなんて言葉が死後な若造ですが
それってfunctionじゃなくてprocedureを指す言葉なの?
603デフォルトの名無しさん:2005/10/17(月) 10:45:00
>>602
BASICのサブルーチンなら戻り値ないからprocedureだな。
604デフォルトの名無しさん:2005/10/17(月) 10:56:41
>>603
そうなんですか。勉強になりました。
ボコスカグローバル変数が出来るのはその為なんですね。
605デフォルトの名無しさん:2005/10/17(月) 13:30:15
戻り値 void の関数がprocedureでそれ以外がfunctionだお
606デフォルトの名無しさん:2005/10/17(月) 13:35:50
入門サイト紹介したほうがいいんじゃ・・・・
607デフォルトの名無しさん:2005/10/17(月) 13:46:52
このスレッドはBorland(ボーランド)のDelphi(デルファイ)について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
608596:2005/10/17(月) 15:38:13
ありがとうございます。
そうか、functionか。

DOS時代のプログラマだったので新しい言語のことを全く知らない状態でした。
めんどくさくなったなぁ・・・。
609デフォルトの名無しさん:2005/10/17(月) 16:13:21
iphelper APIを利用してTCPの接続一覧を取得しています。
この中で特定のアドレスからの接続をこのアプリケーションから
強制的に切断するようなことは可能でしょうか?
610デフォルトの名無しさん:2005/10/17(月) 16:22:20
611デフォルトの名無しさん:2005/10/17(月) 16:25:07
>>610
APIスレよりこちらのほうが神クラスの技術者が多いので・・・
612デフォルトの名無しさん:2005/10/17(月) 17:02:47
>>608
まあCよりキータイプ数多いのは事実だけれども
それはそれでデメリットだけじゃないから慣れるしかない。
613デフォルトの名無しさん:2005/10/17(月) 17:55:35
>>611
関係ない。
スレ違いだと言っている。
614デフォルトの名無しさん:2005/10/18(火) 02:27:30
>>608
PascalはDOS以前からあったというか…
615デフォルトの名無しさん:2005/10/18(火) 06:07:45
雑談はフサスレで
616デフォルトの名無しさん:2005/10/18(火) 08:24:30
( ´∀`)σ),゚Д゚彡プニュ
617デフォルトの名無しさん:2005/10/18(火) 17:07:22
TObjectListの使い方で、サンプル ttp://forum.nifty.com/fdelphi/samples/01073.html
List:=TObjectList.Create;
for i:= 0 to 2 do
begin
SG:=TStringGrid.Create(self);
SG.Parent:=self;
SG.Left:=0;
SG.Top:=i*120;
List.Add(SG);
end;

Destroy時に TObjectList.freeにしているが、先に作ったTStringGridはFreeにしなくても大丈夫なんでしょうか?


618デフォルトの名無しさん:2005/10/18(火) 17:10:01
>SG:=TStringGrid.Create(self);
コンストラクタの引数AOwnerにself(=Form1)を渡すことで
開放の責任はselfが負うようになって明示的な開放は不要になるという
TCompnentクラスに共通する性質があるのです。
619デフォルトの名無しさん:2005/10/18(火) 17:12:24
>>618 dくす
じゃ〜TObjectの継承のものはTObjectListに入れても
Freeしないといけないのですか?
620デフォルトの名無しさん:2005/10/18(火) 17:14:46
TObjectListの場合は
Create(True)としてやるかObjectList.OwnsObjects := True;とすると
リストを開放する際にぶら下がっているオブジェクトも開放する機能があります。
621デフォルトの名無しさん:2005/10/18(火) 17:20:09
>>620
TObjectList.Create(True)としておけば特にFreeを考えなくても良いと言う事ですね。
ありがとうございます。
TObjectList.Delete()に関しても同じように考えてよいのでしょうか?
622デフォルトの名無しさん:2005/10/18(火) 17:57:20
ためしてみたら? AV 起こるかどうか
623デフォルトの名無しさん:2005/10/18(火) 18:46:36
>>621
HELP嫁
624デフォルトの名無しさん:2005/10/18(火) 18:47:38
>>622
Taaa = class(TObject)で作ったもので試してみました。
TObjectList.Delete();した後、Taaa で作ったインスタンスに書き込みしようとして
エラーが出ました。
TObjectList.Delete();でインスタンスは消えるみたいでした。
625デフォルトの名無しさん:2005/10/18(火) 22:32:24
raise の後で生成されたTObjectは自動的に解放されるものなのですか?
例えば、以下のコードだとMemCheckが反応しません

procedure Hoge;
begin
raise
TObject.Create;
end;
626デフォルトの名無しさん:2005/10/18(火) 23:13:17
Hoge 実行してないとか
627デフォルトの名無しさん:2005/10/18(火) 23:20:50
ヒント:raise の後で生成された
628デフォルトの名無しさん:2005/10/19(水) 00:15:24
>>626,627
レスありがとうございます
raiseでは自動解放されないのですね
629デフォルトの名無しさん:2005/10/19(水) 03:35:43
indy9のTIdpop3とTIdMessageについて質問です。

日本語のSubjectでちょっと長いやつ(エンコード後に2行になるやつ)
だと変なことになります。
例) 日本語おかしいよ → 日本語おかし 日本語おかしいよ

で、Googleでけっこう探したところ、そこそこ有名なバグらしいのですが、
あちこちで解決策として示されているリンク先がサイト消滅していてどう
しても答えにたどり着けません。
解決ズバリか、参考になるサイトをおしえてもらえませんか?
630デフォルトの名無しさん:2005/10/19(水) 04:10:08
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc8.2ch.net/test/read.cgi/tech/1093654251/
631デフォルトの名無しさん:2005/10/19(水) 04:14:06
ビジュアルスタイルに対応させるべく
ttp://www.delphi-gems.com/ThemeManager.php
Windows XP Theme Managerをインストールしましたが、
ttp://kuraba-web.hp.infoseek.co.jp/cgi-bin/upload/source/up1159.png
のようにステータスバーはきちんとなりませんでした。
ステータスバーをきちんと対応させるにはどうすればよいでしょうか?
環境はdelphi6personal + XPsp1 です。よろしくお願いします。
632デフォルトの名無しさん:2005/10/19(水) 04:20:16
>>628
raise では解放されないというより、 raise で作成されたものが、
どこかにあるはずの exceptでキャッチされる
で、このexceptで解放される。
633デフォルトの名無しさん:2005/10/19(水) 07:41:51
クラスの生成・廃棄がわかりにくかったらこういうコード仕込んで
ログ見てタイミングを調べてみるといいかも

constructor TMyObject.Create;
begin
 inherited;
 Writeln(ClassName, ' created');
end;

destructor TMyObject.Destroy;
begin
 Writeln(ClassName, ' destroyed');
 inherited;
end;
634デフォルトの名無しさん:2005/10/19(水) 07:51:21
ポップアップメニュー表示中はメッセージループってまったく回らないの?
それが嫌な場合TThread使うのが定石?
635デフォルトの名無しさん:2005/10/19(水) 07:57:26
単にポップアップメニューがモーダルなだけであって、メッセージループはまわっているというかそうじゃなければWM_PAINTも処理されないためサブメニューを行ったり来たりしてるとおかしくなるはずではというか。
636デフォルトの名無しさん:2005/10/19(水) 08:12:19
>>631
それのステータスバーの描画方法がまちがってるんじゃねぇの?
ソースを追え。
637デフォルトの名無しさん:2005/10/19(水) 08:59:01
>>635
メッセージはちゃんと処理されてるけど
ApplicationProcessMessagesは制御を返さないの?
後者の動作はどうしようもないの?
638デフォルトの名無しさん:2005/10/19(水) 10:05:40
モーダルループがメッセージループのかわりに回ってるんだよ。
639628:2005/10/19(水) 11:01:02
>>632,633
凄い、本当だ
派生クラスのdestructorにWriteln(F, 'HOGE')を仕込んだところ、
625のコードでもちゃんとHOGEが出力されました
喉の小骨取れました、本当ありがとうございました
640いまだDelphi5:2005/10/19(水) 14:15:56
 TTreeNodes(TTreeViewのItems)のメソッドにAddNodeが追加されたのはどのバージョンからでしょうか?
 また Delphi6以降に TTreeView が著しく改善されたところがあるでしょうか?
 Delphi5ではノードが多くなるとTreeView同士のコピー
TreeView2.Items.Assign(TreeView1.Items);
が遅くなるので、そのへんが改善されていればバージョンアップしたいのです。

641デフォルトの名無しさん:2005/10/19(水) 15:15:52
みなさん、こんにちは
Delphi2005を使ってます。

1:多の関係にある明細付きの納品書を入力する画面を作っています。

TQueryコンポーネントを使って、
1側のレコードが移動すると、
自動的に多側のレコードが対応するものに切り替わるところまで作れたのですが・・

多側のレコードを追加する時に、
自動的に1側のキーをセットしたいのですが、
どうすればよいのでしょうか?

TUpdateSQLのInsertSQLに :1側のキー項目名 と書いたのですが、
「型がわかりません」とエラーがでました
よろしくおねがいします。
642デフォルトの名無しさん:2005/10/19(水) 20:10:49
>>641
それは型を指定していないからじゃないか。
FieldByName(項目名).asStringみたいな事を書くのでは。
643デフォルトの名無しさん:2005/10/19(水) 20:28:22
>>640
> AddNodeが追加されたのはどのバージョンからでしょうか?

今見たらDelphi 7にはあります。
644デフォルトの名無しさん:2005/10/19(水) 20:31:01
>>640
> AddNodeが追加されたのはどのバージョンからでしょうか?

今見たらDelphi 6にはあります。
645デフォルトの名無しさん:2005/10/19(水) 20:33:38
646デフォルトの名無しさん:2005/10/20(木) 00:25:44
実行時にあるフォーム内の子コンポーネントを列挙する方法ってありますか?
647デフォルトの名無しさん:2005/10/20(木) 00:26:34
Components[]
648646:2005/10/20(木) 00:34:14
おぉ、こんな便利なプロパティがあったんですね。
素早い回答ありがとうございました。
649デフォルトの名無しさん:2005/10/20(木) 07:20:58
ボタンを押すとカレントフォルダを開くようにしたいのですが
ご教授くださいませ。
650デフォルトの名無しさん:2005/10/20(木) 07:25:40
>>649
GetCurrentDirectory、ShellExecute
651デフォルトの名無しさん:2005/10/20(木) 07:34:27
>>650
ShellExecuteでディレクトリだけ渡せばよいのでしょうか?
びくーり。
652デフォルトの名無しさん:2005/10/20(木) 09:43:37
>>651
/* Delphi2006対応 */
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 char path[MAX_PATH];
 GetCurrentDirectory(sizeof(path), path);
 ShellExecute(Handle, NULL, path, NULL, path, SW_SHOW);
}
653デフォルトの名無しさん:2005/10/20(木) 10:44:28
TEditを継承して新しいクラスを作ったのですが、デフォルトのフォント周りのプロパティを
変更したいと思っています。
どこを修正すればよいのでしょうか。
654デフォルトの名無しさん:2005/10/20(木) 11:03:58
>どこを修正すればよいのでしょうか。
デフォルトのフォント周りのプロパティを変更するんだよ。いつ変更したらよいかの
方が難しいと思うが。
655デフォルトの名無しさん:2005/10/20(木) 13:11:55
TListViewコンポーネントで選択行が移動する度に
特定の処理をおこないたい場合はどのイベントを使えばよろしいのでしょうか?
656デフォルトの名無しさん:2005/10/20(木) 13:16:24
>>653
コンストラクタoverrideして
constructor TMyEdit.Create(AOwner: TComponent);
begin
   inherited Create
   Font.Color := crRed;
end;
とかすればいいんじゃないの。
657デフォルトの名無しさん:2005/10/20(木) 13:30:12
keypressってどうやって使えばいいの?
文法がわかんない
658デフォルトの名無しさん:2005/10/20(木) 13:38:03
こんなんじゃ駄目か
Editに入力されたキーを表示する

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
ShowMessage('Key = [' + Key + ']');
end;
659デフォルトの名無しさん:2005/10/20(木) 13:41:08
こんなのとか
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
   case Key of
       '0'..'9': Key := #0 // 数字なら捨てる
       else Key := Upcase(Key); // アルファベットなら大文字化
   end;
end;
660デフォルトの名無しさん:2005/10/20(木) 13:46:59
仮想キーボード使えばこんなのも

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 //バックスペースキーを使用不可にする
 if Key = Chr(VK_BACK) then
  Key := #0;
end;
661デフォルトの名無しさん:2005/10/20(木) 14:01:01
>>658-660
Editでしか使えない?
描画した図形をあるキーを押したら少し移動するみたいな使い方をしたいんだけど
662デフォルトの名無しさん:2005/10/20(木) 14:06:40
ヘルプの検索にKeyPressって入れると対応するクラス一覧が出る。
TWinControlならほぼすべて使えるから
KeyPreview:=TrueしてFormでキー入力をトラップするのが楽かも。
663デフォルトの名無しさん:2005/10/20(木) 14:22:29
Form.KeyPreview := Trueでフォームがキー入力を受け取るようにして
フォームのOnKeyPressイベントに下のような処理を追加する。
後は十字キーが押された時の処理を書けばいい

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
case Key of
Char(VK_UP) :  //図形上へ移動;
Char(VK_DOWN) : //図形下へ移動;
Char(VK_LEFT) :  //図形左へ移動;
Char(VK_RIGHT):  //図形右へ移動;
end;
end;
664デフォルトの名無しさん:2005/10/20(木) 14:48:01
>>663
早いレス、どうもです
家に帰ったら、さっそくやってみます
次の授業が始まりそうで、これ以上学校でやれないのが悔しい
665デフォルトの名無しさん:2005/10/20(木) 16:39:03
このスレッドはBorland(ボーランド)のDelphi(デルファイ)について、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Delphi使いが優しくコメントを返しますが、
お礼はDelphiの布教と初心者の救済をお願いします。
666デフォルトの名無しさん:2005/10/20(木) 19:58:59
TntRichEdit と EM 系メッセージ… Win9x じゃ使えねーじゃねーかよ!ぷんぷん!!
667629:2005/10/20(木) 22:38:02
629で質問した件、誘導されていったIndyスレで解決しました。
もしかしたら他にも興味あるかたがいるかもしれないのでご報告。

> 日本語のSubjectでちょっと長いやつ(エンコード後に2行になるやつ)
> だと変なことになります。
> 例) 日本語おかしいよ → 日本語おかし 日本語おかしいよ

IdCoderHeader.pas
function DecodeHeader(Header: string):string;
(略)
    begin
     s := '';             ←追加
     while Length(substring) >= 4 do

いじょ
668デフォルトの名無しさん:2005/10/21(金) 07:20:28
音楽の一括エンコードができるようなソフトを作っています。
Delphiは6Personalです。
エンコードリストにTListBoxを使っているんですが、
デスクトップなどからD&Dしたときの処理に困っています。

・D&Dしたファイルが.wav、.ogg、.mp3なら追加。
 それ以外なら追加しない。
・フォルダがD&Dされた場合、フォルダ内の.wav、.og(ryを検索して追加。
 発見できなければShowMessage('使えるファイルねぇよ!(`Д´)プンプン');

お願いします。
669デフォルトの名無しさん:2005/10/21(金) 07:31:24
お願いしますって・・・・その通り書けばいいんじゃないの? 何かわからない所があるならチャント言ってくれ
670デフォルトの名無しさん:2005/10/21(金) 07:33:26
早朝からサポートご苦労様です。

Q1 D&Dはどうやるのですか?
Q2 拡張子の比較はどうやるのですか?
Q3 フォルダの識別はどうやるのですか?
Q4 フォルダ内のファイル一覧はどうやるのですか?

といったところです。

お願いします。
671デフォルトの名無しさん:2005/10/21(金) 07:41:37
A1 google「delphi ドラッグアンドドロップ」
A2 ケツの4文字
A3 ↑
A4 findfirst next

人に教えられる程スキルを持った人間ではないけどこんな感じ?
672デフォルトの名無しさん:2005/10/21(金) 07:51:22
if AnsiMatchStr(LowerCase(ExtractFileExt(filename)),
   ['.wav', '.ogg', '.mp3']) then
       ShowMessage('sound file');
673668:2005/10/21(金) 08:12:59
中途半端ですみません。

複数ファイルがD&Dされると渡されるファイル名はTStringなので、
その中からサウンドファイルを抜き出す→リストへ追加という動作をさせたいと思ってます。

フォルダ判別に関しては解決しました。
ありがとうございました。
674668:2005/10/21(金) 08:22:13
訂正
TString→TStrings
675668:2005/10/21(金) 08:51:48
何度もすみません、自己解決しました。

ListBoxの各行にアクセス→判別→処理
この繰り返しです。
スレ汚し失礼しました。
676デフォルトの名無しさん:2005/10/21(金) 10:06:55
TWebBrowserで
TWebBrowser.Cursor := crNone;
っとしているのですが、Navigate('http://localhost/');などとすると
マウスカーソルが出てしまいます。
TWebBrowserのマウスカーソルを出ないようにする方法ありますでしょうか?
677デフォルトの名無しさん:2005/10/21(金) 22:52:03
すみません。書き込む場所を間違えました。
こちらで質問させてください。

Googleで検索しても見つからないのですが、
指定したフォルダの下層フォルダ一覧を調べるにはどの関数を
使えばいいでしょうか。
678デフォルトの名無しさん:2005/10/21(金) 23:01:01
>>677
FindFirst,FindNext,FindClose辺りの関数でゴリゴリと書く。
フォルダの階層がいくつもあって、それらも処理したければ再帰処理で繰り返す。
679デフォルトの名無しさん:2005/10/22(土) 08:43:43
ボタンの色を変えたいのですがプロパティにないようです。
変更不可でしょうか?
680デフォルトの名無しさん:2005/10/22(土) 08:47:09
確かボタンの色はゲイツのお気に入りだから、
変更するには独自描写が必要だった気がする
681デフォルトの名無しさん:2005/10/22(土) 08:47:54
まじっすか?ここだけはVBに負けますね
682デフォルトの名無しさん:2005/10/22(土) 09:52:53
>>679
自分で描けばできるけど、キャプションも自分で描く必要有り。
詳しくはオーナードローで。

>681
VBはランタイム自体が独自描画している(RADを実現するためらしい)
その副作用で色が指定できるになった。
683デフォルトの名無しさん:2005/10/22(土) 10:02:31
最近Delphiを始めた者です。
BorlandのHPにDelphi6 Presonalのアップデートパッチがあるのですが、
何度やっても接続に失敗します。
Irvineをつかってもダメでした。

この事項は既出でしょうか?
対処法のご教授願います。
684デフォルトの名無しさん:2005/10/22(土) 10:37:05
>>683
IEでダメならFTPクライアントでftp://ftp.borland.co.jp/pub/delphi/から取ってくる
それかIEのオプションでFTPのパッシブモードを有効にしてみる
685デフォルトの名無しさん:2005/10/22(土) 10:38:15
あとFWソフトでFTPの使うポート20,21をブロックしてたら首吊るといいお
686デフォルトの名無しさん:2005/10/22(土) 14:33:12
>>684,685
回答ありがとうございます。

が、いずれの方法でもダメでした。
FFFTP…「"ftp://ftp.bor(略"が見つかりません」
IE…パッシブモードは既にON
FW…port20,21は通過

コマンドプロンプトでpingしてみると「ホストが見つかりません」になるので、
サーバーが停止しているようです。


元を正せば、エラー「classes.pasが見つかりません」を解決したいだけなんですが。
687デフォルトの名無しさん:2005/10/22(土) 14:41:26
>>686
今、見てみたけど問題なく繋がるけどね。

>FFFTP…「"ftp://ftp.bor(略"が見つかりません」
ってことは、ホスト名に ftp://ftp.borland... と指定しているようだけど
これは間違い。ftp.borland...が正解。
まさかと思うけど ping の時も ftp://ftp.borland... としちゃってる?
688デフォルトの名無しさん:2005/10/22(土) 15:22:46
>>回答していただいた皆様
常駐していたPeerGuardianを停止したところ、即繋がりました。
ご迷惑をおかけしました。

LAN・USBの二重コードで吊ってきますo...rz
689デフォルトの名無しさん:2005/10/22(土) 16:26:00
逆に良くある
690デフォルトの名無しさん:2005/10/22(土) 21:59:25
二つのフォームを用意して、片方のフォームにEdit欄用意してURL入れてNavigateしたら
もう一つのフォーム(Editの欄が無いフォーム)にWebbrowserを表示させるように連動(?)
させたいのですが、どう記述すべきでしょうか。
691デフォルトの名無しさん:2005/10/22(土) 23:28:31
一つのフォームでは出来るの? それなら話は早いが
692デフォルトの名無しさん:2005/10/22(土) 23:53:17
>>690
>>519-526辺りを参照してみれば?
693デフォルトの名無しさん:2005/10/23(日) 02:20:20
「どう記述すべきでしょうか」って質問って、
どう答えれば良いのか分からん。
どういう答えを期待してるのか?
「ソース出して」ってこと?
694ななしへたぐらま ◆XcB18Bks.Y :2005/10/23(日) 10:29:50
>>679,681
色つきボタンは以下のサイトなどでいろいろ公開されているので
これらの中から気に入ったのを使うのも一手かも.

Delphian World
http://www6.airnet.ne.jp/~sone_san/delphi/

695デフォルトの名無しさん:2005/10/23(日) 17:24:10
>>690
とりあえず、Form1のEdit1に入力された文字列をForm2のLabel1に表示させるコードは書けるのかな。
696690:2005/10/23(日) 17:39:58
すいません、返答が遅れました。
無事解決しました。ほぼ>>519-526と同じような事でした。
ありがとうございました。
697デフォルトの名無しさん:2005/10/23(日) 23:38:41
XPスタイルに対応させようと思い、Delphi6 Personalでコンパイルした実行ファイルと同じフォルダ内にmanifestファイルを作成しました。
ところがViewStyleをvsReportにしたTListViewを設置しているフォームが開かれた瞬間
「モジュール 'kernel32.dll' のアドレス 77E683EC でアドレス 00467088 に対する書き込み違反がおきました。.」
と言う内容のエラーダイアログが表示されるのですが、何故でしょうか?
違うマシンで試しても同じ結果に至ったので恐らくDelphi側の問題だとは思うんですが・・
698697:2005/10/23(日) 23:46:48
http://leo10.cse.kyutech.ac.jp/yamada/builder_bug.html

[manifest]
 アプリケーションをWindowsXPスタイルにする方法に、manifestファイルを用いる方法がある。
 しかしこの方法では、TListViewを用いているアプリケーションでは kernel32.dll が読み込み違反エラーを吐いて
 起動に失敗する場合がある。(Delphi,C++Builderで作成されたアプリケーションの場合)

(回避方法)
 →TListViewのカラムヘッダにイメージを入れると正常に起動される。
  または、カラムヘッダを表示しないようにする。

ググってみたらこんな物を見つけたんですが、これ以外に回避法はないんでしょうか?
699186:2005/10/23(日) 23:54:31
やはりカラムヘッダにイメージを挿入する事にしました。お騒がせしましたm_m
700デフォルトの名無しさん:2005/10/24(月) 00:21:50
treeViewとListViewの連携がやりたいですが
うまく動きません。
OnChagingでListViewのアイテムを数えて
メモリを確保して、配列に入れて、Nodo.Dataにポインタ
OnChangeでListViewのアイテムをClearして、指定したNode
だったら、配列を数えて、ListViewにItemを追加のですが
treeViewでどのNodeをクリックしても、最初の配列が残ってしまいます
------------------------------------
treeView | ListView
  |
rootnode   | caption | subitems
┣-aaa |------------
┃ ┣111 <-- |
┃ ┗222 <-- |
┣-bbb |
------------------------------|

よろしくお願いします

701700:2005/10/24(月) 00:22:39
//つづき
/////////////////////////////////////
type
Pdata = ^TIndexData;

TIndexData =Record
code :string;
index :string;
end;
IndexDataArray = Array of TindexData;

TMainForm = class(TForm)
////////////////////////////////////////
private
{ Private 宣言 }

rootNode : TTreeNode;
//////////////////////////////////////
var
MainForm: TMainForm;
CArray :IndexDataArray;
/////////////////////////////////////////
procedure TMainForm.TreeView1Changing(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);

var
c,i : integer;
begin
c := ListView1.Items.count;

702700:2005/10/24(月) 00:23:30
//つづき
SetLength(CArray,c);
For i := 0 to C-1 do
begin
CArray[i].code :=ListView1.items[i].subitems[0];
CArray[i].index:=ListView1.items[i].caption;
end;
node.Data := addr(CArray);

end;

procedure TMainForm.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
C : integer;
i :integer;
ListItem :TListItem;
begin
ListView.Items.Clear;
if (Node = rootNode) or (Node.Parent = rootNode) then exit;
begin
c:= Length(CArray);
For i := 0 to c-1 do
begin
ListItem :=ListView1.items.add;
ListItem.Caption :=CArray[i].index;
ListItem.SubItems.Add(CArray[i].code);

end;
end;

end;
703デフォルトの名無しさん:2005/10/24(月) 01:12:29
チャットプログラムに最適な (サーバー・クライアント) クラスライブラリを教えてください。
704デフォルトの名無しさん:2005/10/24(月) 01:13:09
Indy
705デフォルトの名無しさん:2005/10/24(月) 05:58:13
Unzip.DLLとかない環境でzip解凍圧縮を可能にするコンポーネントが
あったような記憶があるのですが、そういうのありましたでしょうか?
706デフォルトの名無しさん:2005/10/24(月) 06:31:20
あったねぇ
707デフォルトの名無しさん:2005/10/24(月) 06:36:14
おしえてくだせぇー
708デフォルトの名無しさん:2005/10/24(月) 06:46:35
torryというところにあるのでいいのでしょうか?
よくわかりませんが、ダウンしてみます。ありがとうございました。
709デフォルトの名無しさん:2005/10/24(月) 07:40:11
>>705
むかしイロイロと探したが日本語使うとおかしくなるのが多かった。
710デフォルトの名無しさん:2005/10/24(月) 07:43:15
ヘッダーとフッターの作り方さえ知ってれば圧縮自体はzlibだよ。
711デフォルトの名無しさん:2005/10/24(月) 09:10:07
僕ならUnzip.DLLをリソースに仕込んどいて使う時にどっか(Tempフォルダあたり?)にピーコして使います。
本末転倒ですが(w
712デフォルトの名無しさん:2005/10/24(月) 10:03:16
>>711
小心者の僕も同じですね〜プログラム終了時に消しておけばバレない(マテ
713デフォルトの名無しさん:2005/10/24(月) 10:04:29
環境非依存にしたいならスタティックリンクしとけ
714デフォルトの名無しさん:2005/10/24(月) 10:26:10
cabを使うのが流行りですよ
715デフォルトの名無しさん:2005/10/24(月) 11:36:32
ルータのUPnPのコンポーネントはありませんか?
716デフォルトの名無しさん:2005/10/24(月) 13:16:57
Delphi6PersonalにはUDPコンポーネントって無いのねorz
717デフォルトの名無しさん:2005/10/24(月) 13:37:18
>>716
っIndy
718デフォルトの名無しさん:2005/10/24(月) 17:00:28
>>717
Indyはちょっと大げさなのでAPIで実装することにしました。
719デフォルトの名無しさん:2005/10/24(月) 18:26:49
VCL つかってて Indy が大げさってことはないだろ
720デフォルトの名無しさん:2005/10/24(月) 18:42:58
UPnPごときにIndyはおおげさだろう
721デフォルトの名無しさん:2005/10/24(月) 19:41:38
UPnPごときにVCLにおおげさだろう
722デフォルトの名無しさん:2005/10/24(月) 20:04:11
ツンデレが似合うのはおさげだろう
723デフォルトの名無しさん:2005/10/24(月) 20:06:27
苦しすぎ
724デフォルトの名無しさん:2005/10/24(月) 22:40:50
今IEをコンポーネントとして、ブラウザ作ってるんですが
SleipnirやOperaにあるようなwebページのズームイン・ズームアウト表示がやりたい
んですが、そどうすれば良いんでしょうか。
725デフォルトの名無しさん:2005/10/24(月) 22:55:51
>>724
IEの独自拡張を調べなさい
726デフォルトの名無しさん:2005/10/25(火) 00:06:58
delphiに限らない質問かもしれませんが・・・。
プログラミング未経験者で初めて参考書を買って独学をしているのですが、
そのdelphi参考書は「ここはこういう理由でこういう書き方がされている」等の
理由や説明がほとんどなく、例題にあるソースをそのまま自分のパソコンに
打ち込んでいるだけで、「理解している」のではなく「例題をそのまま覚えている」
だけのような気がします。
(私と同じ本を買った人もアマゾンのカスタマーレビューで同じようなことを書いてました・・・。)

みなさんは最初にdelphiを勉強した時は、最初は取り敢えず丸暗記で、後から
内容を理解するという方法だったのでしょうか?それとも1個ずつ理解しながら
勉強していったのでしょうか?
本当に初心者なので、今の丸暗記方式をこのまま続けていってもいいのか心配です。
727デフォルトの名無しさん:2005/10/25(火) 00:12:45
ミ,,゚Д゚彡フサギコのフサフサDelphi談話室その26
http://pc8.2ch.net/test/read.cgi/tech/1128511700/
728デフォルトの名無しさん:2005/10/25(火) 00:28:50
>>726
質問部分には答えよう
オレは丸暗記も1個ずつ理解とやらもしなかった
文法以外は面倒だから覚えず、作りたいものを
サンプル見ながら適当に作っていたら
いつの間にかここで回答者にまわってた
729デフォルトの名無しさん:2005/10/25(火) 00:34:42
>>726

自分は、ずーっと前にその段階だったので記憶が定かではないが、最初は操作自体を
覚えるのも重要です。その本は、それだけのものと思って割り切ることが必要です。
でも、どうしてこうなるのか、と考えながら、自分は何が分からないのだろうか、
ということを知ることが重要です。

自分の場合は、*.pas ファイル、つまり、ユニットファイルの構造を理解し始めた
ときから急速に理解がすすんだように思います。OOP も、IDE では設計時に
TForm の派生クラスを作っているんだ、イベントはそのメソッドなんだ、と
分かりはじめたらしめたものです。

その本より優れた入門サイトがけっこうあります。おすすめは「Seventh Delphi」
です。ググって見ればすぐ見つかります。コードと説明の対応をじっくり学ぶと
じわじわと理解が進むことを実感できるようになります。
730デフォルトの名無しさん:2005/10/25(火) 00:37:56
>>726
そうは言うけどな、いきなりクラスがどうたらバーチャルがなんたらの説明ば
かりあっても初心者では理解できんよ。確実に。
サンプルを暗記っていうのはまず第一歩としてはいいと思うよ。
んでそれをちょっとづつ改造していくと。そのうち壁にぶつかるからその時に
ぶつかった壁をいっこづつ調べて理解していけばいい。

まあ学習の仕方なんて人それぞれだろうからいちがいには言えんが、俺の
場合はそうだった、という例で参考にしてくれ。

ところでその本のタイトルもあげると先人のアドバイスもつきやすいのでは
ないかな。いくらサンプル丸暗記といってもダメなのとイイやつの差はあるし。
731726:2005/10/25(火) 01:01:01
みなさんご助言ありがとうございます。
>>727 そちらの方が適したスレだったかもしれません。すみません。

>>728 作りたいものがあるっていうのは、やはり勉強を進めるには
大きな力になりそうですね。私がしたいことは、私が勤めている会社で
作っているソフトがdelphiで組まれてて、そのソフトがどうして
こういう動きをするのか理解したかったのでした。

>>729 今そこのサイトを拝見させてもらいました。私が買った本よりも
情報量が多くて親切な気がします。これからはそのサイトもみて勉強してみます。

>>730 そうですね。確かにいきなりレベルの高い話をされても理解できなくて
投げ出してしまうかもしれませんね・・・。ちなみに私が買った本は
「delphi はじめの一歩(池田成樹著)」という本です。
池袋の大きな本屋さんを2箇所と、地元の本屋さんを回って、どこでもこの本が
売っていたので、余程支持されている本かと思って購入しました。
732デフォルトの名無しさん:2005/10/25(火) 01:03:55
「Delphi Acid Floor」ってサイトも良いぞ
オレは「Seventh Delphi」とそこを見ながら基本を覚えた
733デフォルトの名無しさん:2005/10/25(火) 02:53:40
Delphiでビットフィールドは使えるのでしょうか?
734デフォルトの名無しさん:2005/10/25(火) 06:56:44
>>733
": 1"しか要らないのであればビット位置を値として指定した列挙型のset。
2ビットとか4ビットとか要るのであればシフト演算でなんとかするしかないなあ。
735デフォルトの名無しさん:2005/10/25(火) 07:11:29
最初は基本を暗記、慣れたら応用、はごくあたりまえのことだろ。
1ヶ月たって応用が利かないようならプログラマの素質ないからあきらめろ。
プログラマもプロ野球選手と一緒で誰でもなれるようなものじゃない。
コーダーなら誰でもなれるけど。
736デフォルトの名無しさん:2005/10/25(火) 07:12:31
屁理屈だな
737デフォルトの名無しさん:2005/10/25(火) 08:24:05
やりたい奴がやる。やらなきゃいけない奴がやる。それでいいんだよ。
738デフォルトの名無しさん:2005/10/25(火) 08:26:21
使えません
739デフォルトの名無しさん:2005/10/25(火) 12:33:58
クラス名の前につくTって何?
740デフォルトの名無しさん:2005/10/25(火) 12:49:56
型(Type)の略。Fはフィールド、Iはインターフェース。他にあったっけ?
741デフォルトの名無しさん:2005/10/25(火) 12:51:03
Eがあった。例外(Exception)だったね。
742デフォルトの名無しさん:2005/10/25(火) 13:15:53
んじゃDelphi2005でも名前空間のことはunit、クラスのことはtype、メソッドのことはプロシージャと呼んだほうがいいのかな?
743デフォルトの名無しさん:2005/10/25(火) 13:17:50
> クラスのことはtype

ちがうでしょ
744デフォルトの名無しさん:2005/10/25(火) 13:22:29
>>743
そうなんですか。
でもとりあえず、unitは名前空間のことでいいんですよね。
745デフォルトの名無しさん:2005/10/25(火) 13:32:45
TってTypeだったんだ
てっきりAPIのTag×××のTかと思ってた
746デフォルトの名無しさん:2005/10/25(火) 15:00:57
意味は無いけど慣習上 T をつけるって聞いたぞ
747デフォルトの名無しさん:2005/10/25(火) 15:06:42
Typification じゃなかったか。
748デフォルトの名無しさん:2005/10/25(火) 15:09:02
お前らソースを出せ
749デフォルトの名無しさん:2005/10/25(火) 15:12:52
Delphi 6 プログラミングバイブルの83ページに慣習って書いてある・・

が、これが正しいかどうかは知らないよ
750デフォルトの名無しさん:2005/10/25(火) 15:49:54
結局「T」ってなんなんだ?
Delphiの中の人の発言はないのか?
751デフォルトの名無しさん:2005/10/25(火) 15:50:57
わーん。
派遣会社からDelphiとOracleの仕事どうですかって言われたよ。
javarerの漏れにはまったくわからない…
752デフォルトの名無しさん:2005/10/25(火) 15:54:08
MFCだってクラス名の頭にC付けるんだから深く考えんな
753デフォルトの名無しさん:2005/10/25(火) 15:55:52
TObject派生クラス = Txxxx
それ以外のクラス = Cxxxx
にしてるBCB使いの漏れ
754デフォルトの名無しさん:2005/10/25(火) 16:03:28
>>753
TObjectから派生しないクラスってあるの?
755デフォルトの名無しさん:2005/10/25(火) 16:17:26
>>754
ハァ?
756デフォルトの名無しさん:2005/10/25(火) 16:19:09
いや、ハア?じゃなくてあるかないか聞いてるんだけど
757デフォルトの名無しさん:2005/10/25(火) 16:24:58
Delphiではなく BCBではという事なんじゃないの?
758デフォルトの名無しさん:2005/10/25(火) 17:15:51
>>756
それならある!
759デフォルトの名無しさん:2005/10/25(火) 18:46:53
>>754
C++Builderの話だろ。
C++にはVCLの最上位クラスを継承しない野良クラスを作れる。
760デフォルトの名無しさん:2005/10/25(火) 19:07:36
作れなかったら、newしなきゃならんという制限を受け継ぐので大変
761751:2005/10/25(火) 22:01:59
Delphi.netのイベントにイベントハンドラを登録したり外したりするわけのわからないメソッドIncludeとかExcludeって何?
どこの名前空間なの?
C#にはこんなのなかったぞい。
762デフォルトの名無しさん:2005/10/25(火) 22:19:46
>>751
何で解らないものを引き受けるんだ
763デフォルトの名無しさん:2005/10/25(火) 22:21:50
>>761
Pascalには無い+=と-=の両演算子の代わりとして、元々集合を扱う手続きが流用されてる。
名前空間はBorland.Delphi.Units.Systemになるんだろうけど、実体の無いコンパイラマジック。
764751:2005/10/25(火) 23:11:14
>>763
それにしても
System.EventHandlerデリゲートがまったく出てこないのはどういうこと?
765デフォルトの名無しさん:2005/10/26(水) 00:00:01
26日をお知らせします
766デフォルトの名無しさん:2005/10/26(水) 00:00:30
誤爆スマン
767デフォルトの名無しさん:2005/10/26(水) 00:05:36
誤爆の上に一秒遅いとは何事か
反省正座
768デフォルトの名無しさん:2005/10/26(水) 00:05:50
26日キタ━━━━━━(゚∀゚)━━━━━━ !!
769デフォルトの名無しさん:2005/10/26(水) 09:18:08
>>758-759
ナメた口聞いてごめんなさい
ひとつ勉強になりました。
770デフォルトの名無しさん:2005/10/26(水) 11:26:08
>>754
type THoge = object
end;
771デフォルトの名無しさん:2005/10/26(水) 11:29:52
質問です。
ClientDataSetに対してSQL(Select)文を発行し、
その結果をGridに表示したいのですが、可能でしょうか?
↓のコンポーネントを用意して自分でやってみたのですがどうも上手くいきません・・・
・ClientDataSet
・Query
・DBGrid
・DataSorce
Delphi始めたばかりなので、コンポーネントの使い方とかよく分かっていない状況です。
これだけのコンポーネントを用意しておけばできるものなのでしょうか?
772デフォルトの名無しさん:2005/10/26(水) 11:46:15
スタンドアローンならClientDataSet使う必要ないと思うけど
C/Sもしくは3層以上のシステムだったらTClientDataSetにデータプロバイダってのが必要
773デフォルトの名無しさん:2005/10/26(水) 12:09:17
>>770
それクラスじゃありませんから
774デフォルトの名無しさん:2005/10/26(水) 14:19:46
>>772
レスありがとうございます。ClientDataは使わないとダメなのです・・・(事情は省略させて下さい)
やりたいことは、、、
現状こうなっているのを↓
ClientDataSet ⇒ DataSorce ⇒ DBGrid
こうしたいんです↓
ClientDataSet ⇒ Query(ClientDataSetに対してSUM関数、GroupByを使用したい) ⇒ DataSorce ⇒ DBGrid
これのどこにデータセットプロバイダというのを挟めばよいのでしょうか?
教えて君ですみません・・・。宜しくお願いします。
775デフォルトの名無しさん:2005/10/26(水) 15:27:53
>>774
ClientDataSetは問い合わせの結果をもらうもの。自前で問い合わせを行うことはできない。
やるんだったら最低C/S形式する。C/S間の通信はTSockectConnectionでTCP/IPが楽
1台でやるならIPアドレスを127.0.0.1に指定する

図で書くとこんな感じ

クライアント部(サーバーに問い合わせ結果を貰う))
TDBGrid←TDataSorce←TClientDataSet → サーバーへ

サーバー部(クライアントからの要求に基づきSQLを発行して結果を返す)
クライアントへ←TQuery←TSession←TDatabase
776デフォルトの名無しさん:2005/10/26(水) 16:28:21
Form1にあるEdit1にURLを入れて、Form2.Show で別窓(Form2)のWebBrowserにForm1のEdit1で指定した
URLのページを表示させる事は出来たんですが、そのForm1から表示させたForm2がアクティブになったら
もう一つ別窓(Form3とする)に同じWebページを表示させる って動作をさせたいのですが、
Form2側の、OnActivateイベントで
Form3.WebBrowser1.Navigate(Edit1.text);
Form3.Show;
とやってもForm2にEdit1は無いのでエラーが出ます。Form3にNavigateする方法は他にあるんでしょうか?
ご教授お願いします。
777デフォルトの名無しさん:2005/10/26(水) 16:50:10
すっごくよろしくないやり方だけど
Form3.WebBrowser1.Navigate(Form1.Edit1.text);
778デフォルトの名無しさん:2005/10/26(水) 18:08:07
ひどいUIだな
779デフォルトの名無しさん:2005/10/26(水) 18:09:38
どうでもいいが、ユニットファイルをまたぐ参照についていちいち質問するつもりですか?
ちゃんと uses の意味を考えてくださいね
780デフォルトの名無しさん:2005/10/26(水) 19:48:47
DelphiでC/Sシステムを開発するために、
書籍でステップごとに作りながら理解できる、お勧めの書籍はありますか?

amazonでの評価を信じて買ったものが、どれも内容が薄すぎて・・・(TーT


781デフォルトの名無しさん:2005/10/26(水) 20:34:27
オフィシャルコースウェアは、どうよ。
古めだがDelphi 4あたりの方がプロっぽい感じがする。
782デフォルトの名無しさん:2005/10/26(水) 20:36:28
あ、ClientDataSetというかMIDASを使う予定なら
Delphi4とはクラス名が異なるので、新しい奴を買ったほうが良いと思う。
783デフォルトの名無しさん:2005/10/26(水) 21:25:29
>>780
Delphi 4プログラミングバイブルっていう青い表紙で分厚い本がオススメ
C/SのみならずDelphiに関する基本的な知識が網羅されてる
784デフォルトの名無しさん:2005/10/26(水) 21:42:29
IDispatchって、アプリ終了前にnilを入れてやらないと、例外が起きるんですか?
785デフォルトの名無しさん:2005/10/26(水) 22:10:43
>>784 いいえ
786デフォルトの名無しさん:2005/10/27(木) 02:27:38
今スレッドを使う練習をしています。
子スレッドからメインスレッドのTList,TStringList等や普通の変数といった
実行時に目に見える形となって出てこないものを操作するときも、
Synchronizeを使わなければいけないのでしょうか?
787デフォルトの名無しさん:2005/10/27(木) 02:53:13
子スレッド動作中にメインスレッドでアクセスしたり、破棄したりといった事が
絶対に無いのであれば、Syncしなくても大丈夫です。

もしアクセスしてしまったりすると・・・
788デフォルトの名無しさん:2005/10/27(木) 06:36:51
普通の変数については、一般的には
・片方が作って片方が読むだけ(32bit変数まで)
・そうして作ったセマファーで読み書きをブロックした上で双方が読み書きする
というようなことをやらなければいけない

 読み書き単位は32ビットなので、それを超える多倍長なデータ等は
 同時に作成されたかどうかわからなくなるので注意。
 もっともSleep命令の直後なんかは大丈夫だろうけど、どこまで大丈夫かわからんからね
789デフォルトの名無しさん:2005/10/27(木) 06:45:27
>>786
TControlに絡まないデータ周りのものはCriticalSection使った方が軽い
790780:2005/10/27(木) 10:29:05
>>781-783
ありがとうございます 。・゜(ノ´Д`ヽ泣)゜・。

Delphi2005を使うのですが、
古いバージョンの本でも大丈夫なんですね
探してみます
791751:2005/10/27(木) 10:44:08
Delphi2005で.netフレームワークのデリケートを扱えますか?
792デフォルトの名無しさん:2005/10/27(木) 10:57:59
>>791
デリケートってdelegateのことか?
793デフォルトの名無しさん:2005/10/27(木) 11:25:36
Win32プロジェクトなら無理だし.NETプロジェクトなら当然使える。
794デフォルトの名無しさん:2005/10/27(木) 11:50:30
>>787-789
ありがとうございます。
CriticalSectionは少し調べた限りだと、あまり難しくなさそうなので試してみます。
あと、ここの過去ログに書いてありましたが、スレッドセーフなTStringListとして
TThreadStringListというのがあるみたいなので、それも試してみようと思います。
795デフォルトの名無しさん:2005/10/27(木) 17:20:19
>>786
シングルプロセッサと、SMPやAthlonX2のようなデュアル環境で
動作が異なる事のないように、できれば両方使える環境で
遊んでみられる事をお勧めしたい。

シングルで問題なく動いてたのに、SMPにした途端・・・・って
バグに泣かされてきましたから。
796デフォルトの名無しさん:2005/10/27(木) 17:36:43
何言ってんだこいつわ
797デフォルトの名無しさん:2005/10/27(木) 17:41:28
何の関係も無いな。
798デフォルトの名無しさん:2005/10/27(木) 19:37:17
>>788,795
初心者スレで無理して答えなくていいよ。
799デフォルトの名無しさん:2005/10/27(木) 21:05:17
ラベルを縦方向に中央表示させ、枠線を付けたいのですが、
TLabelでは枠線がなく、StaticTextでは縦方向に中央表示できませんでした

どうすればよいのでしょうか?
800デフォルトの名無しさん:2005/10/27(木) 21:20:36
二つ重ねる
801デフォルトの名無しさん:2005/10/27(木) 21:30:19
TStaticText + SS_CENTERIMAGE
802751:2005/10/28(金) 00:06:05
>>792
そうです。
クラスでもなく、インターフェースでもないデリゲートです。
>>793
やっぱりそうなんですね!!
では、Includeとかいうのを使わないでC#みたくSystem.EventHandlerデリゲートを使った
イベントハンドラの登録の仕方を教えてください。m(_ _)m



803デフォルトの名無しさん:2005/10/28(金) 00:53:50
delegateはデリゲートとは言いませんよ。

installのことをインストゥールと言うくらい恥ずかしい。
804751:2005/10/28(金) 01:01:34
わーん、そんなレス良いですから、Delphiでどうやってdelegateを扱うか教えてよ。
Google見てものっていないんだよ。
805デフォルトの名無しさん:2005/10/28(金) 01:01:59
806デフォルトの名無しさん:2005/10/28(金) 02:27:22
>>803
じゃあ何て言うの?
807デフォルトの名無しさん:2005/10/28(金) 02:30:11
デリケートです
808デフォルトの名無しさん:2005/10/28(金) 02:39:59
繊細です
809デフォルトの名無しさん:2005/10/28(金) 03:24:12
きっと>>803
gifはギフとは言いませんよ。
installのことをインストゥールと言うくらい恥かしい。

とか言ってしまう恥かしい人なんだと思うよ
810デフォルトの名無しさん:2005/10/28(金) 09:19:01
install→いんすたるる
gif  →じふ
811デフォルトの名無しさん:2005/10/28(金) 15:30:12
書き込み禁止にされているFDに対して
AssingFileを行いReWrite手続きを行うとエラーが発生しますが
例外をtry〜exceptで捕まえられません。どうしてでしょうか?
812デフォルトの名無しさん:2005/10/28(金) 15:32:34
{$I+}してないとか
813デフォルトの名無しさん:2005/10/28(金) 16:42:39
>>811
ベタだけどダミーのファイルをCopyFileでコピーして
失敗したらプロテクトされてると判断するとか
814デフォルトの名無しさん:2005/10/28(金) 17:32:41
エラーメッセージは OSが出してるんではないの?
10年くらい前に、その手のエラーを出さない方法云々でごちゃごちゃやった気がする。
815デフォルトの名無しさん:2005/10/28(金) 20:00:19
FD SetErrorMode で調べたらそれらしい情報が
816デフォルトの名無しさん:2005/10/28(金) 23:09:48
http://msdn.microsoft.com/library/default.asp?url=/workshop/misc/mlang/reference/ifaces/imultilanguage/convertstring.asp

BYTE*がPCharでもPByteでもUINT*がPCardinalでも
Cardinalでも動作するけど、こういうのってUnitやタイプライブラリでの
定義はどっちでも構わないもんなのん?
817デフォルトの名無しさん:2005/10/28(金) 23:33:02
>>811
http://www.google.co.jp/search?hl=ja&q=delphi+fd+%E7%A2%BA%E8%AA%8D%E3%80%80%E4%BE%8B%E5%A4%96&lr=lang_ja

もっと具体的なの昔見た覚えがあるんだが、
どこだったか忘れてもた。
818デフォルトの名無しさん:2005/10/29(土) 03:27:46
>BYTE*がPCharでもPByteでも

どれも8Bits順序値へのポインタに変わりは無いから互換性がある。
しかし、

>UINT*がPCardinalでもCardinalでも動作する

そんなことは無いだろう。
ポインタ型とプリミティブ型は明らかに別物だ。
819818:2005/10/29(土) 03:29:34
自己レススマン
BYTE*に関しては、よく考えるとポインタなら何でもいいんだな。
820デフォルトの名無しさん:2005/10/29(土) 11:19:07
あるバッチをdelphiから起動するのですが
それが終了するまで待機させたいのですが
どのような方法があるでしょうか?
よろしくお願いします。
821デフォルトの名無しさん:2005/10/29(土) 11:20:28
CreateProcess
822デフォルトの名無しさん:2005/10/29(土) 11:42:33
質問があります。
今、TClientSocketを使ってプログラミングをしています。
これを使ってサーバに80ポートで接続をし、
ClientSocket1.Socket.SendText('Get /'+#13#10);
とした所、501が返ってきて、ほしいページのHTMLは返ってきませんでした。
サーバに接続をして、HTMLのソースをダウンロードするには、どのようにしたらできますか?
823デフォルトの名無しさん:2005/10/29(土) 11:52:54
>>822
用途に合わせて
URLDownloadToCacheFile
URLDownloadToFile
824デフォルトの名無しさん:2005/10/29(土) 12:00:07
ついでにHTTPのリクエストヘッダは「GET / HTTP/1.1\r\nHost: hostname\r\n\r\n」だったような
Hostヘッダ抜くとバーチャルホスト使ってるサーバだと要求してるデータが取れないぞ。
825820:2005/10/29(土) 12:11:23
ShellExecuteで起動しているのですが
それで帰ってくるHINSTANCEを1秒おきにしらべて
起動しているかどうかというようなやり方がいいのですが
可能でしょうか?
826デフォルトの名無しさん:2005/10/29(土) 12:11:50
Ex
827デフォルトの名無しさん:2005/10/29(土) 12:16:31
>>822
ステータス501だからリクエストが認識されていないみたいだね。
"Get" ではなくて全部大文字の "GET" にしてみたら?
828820:2005/10/29(土) 12:16:33
GetModuleUsage()
というのがあるようです。ちょっとやってみます。
829デフォルトの名無しさん:2005/10/29(土) 12:26:24
telnetで叩いてみたけどApache1.3.29だとGETが小文字だと501、GETだと200返してくるな
830822:2005/10/29(土) 12:28:44
>>827
大文字にしてみたらうまくいきました。
大文字と小文字は区別されるんですね。Del使ってたからCの頃を忘れてました。

それで、データは見れたんですが、サーバがWinじゃないので日本語が文字化けをしてしまいます。
これをWinでも見れるようにするにはどのようにすればいいですか?

連続の質問で申し訳ない。
831827:2005/10/29(土) 12:43:58
>>830
>大文字と小文字は区別されるんですね。Del使ってたからCの頃を忘れてました。
HTTPのプロトコルレベルの話だから、DelphiだとかCだとかは関係ないだけどね。

日本語の件はデータ内のMETA情報から取得するなり、文字コードをスキャンして
文字コードを判定、変換する処理を自分で書く必要がある。
キツイことを言うようだけど、HTTP直叩きするのなら関連するRFCぐらいは
自分で読まないとしんどいと思うよ。
832822:2005/10/29(土) 13:06:19
>>831
ありがとうございます。とりあえず日本語なRFCをググってきます。
833デフォルトの名無しさん:2005/10/29(土) 13:07:40
   /´ ̄\   
  <ノ_(从_)>    
∩ ヽ  - / ∩  <
(3 )  \/ ( E)
834デフォルトの名無しさん:2005/10/29(土) 17:24:15

コンソールアプリで

Writeln('hogehoge');

の1行だけ書いたものをバッチから

@echo off
Project1.exe
pause

というように実行すると、コンソールウインドウに

hogehoge
続行するには何かキーを押してください . . .

と表示されますが
GUIアプリでEditとButtonを配置し
バッチから実行してEditに文字を入力しButtonを押すと
Editに入れた文字をリダイレクトするものを作りたいと思っています
(バッチで直接入力を拾えとかは無しの方向で)

AllocConsoleでコンソールに書き出す方法は解ったのですが、
バッチにリダイレクトする方法がわかりません。
ググっても子アプリの標準出力を得る方法とかは見つかるんですが
出力する方はよくわからないです
具体的な方法が解る方が居ましたら、ご教示お願いします

WinXP Delphi6Personalです
835デフォルトの名無しさん:2005/10/29(土) 17:33:16
ListViewで条件に一致するアイテムを全て削除するにはどうしたらいいですか?
アイテムが削除される度に以降のアイテムのインデクスが1ずつ減っていくので上手くいきません・・
836デフォルトの名無しさん:2005/10/29(土) 17:52:51
>>835
そういう場合は、お尻側から削除していくのが定石
837デフォルトの名無しさん:2005/10/29(土) 18:05:35
>>836
その言葉を聞いて自分はまだまだだなぁ〜と実感してしまいましたw
ここまで瞬時に「成る程」と感じたのは久しぶりですた ありがとうございます><b
838デフォルトの名無しさん:2005/10/29(土) 18:25:54
839デフォルトの名無しさん:2005/10/29(土) 19:26:28
WideString版StringReplaceなんてのは存在しないのでしょうか?
840デフォルトの名無しさん:2005/10/29(土) 20:06:09
TntClasses.pasにWideStringReplace()なんているのがあると小耳に挟んだが・・・
http://www.tntware.com/delphicontrols/unicode/
841デフォルトの名無しさん:2005/10/29(土) 20:52:48
1:多の関係にあるテーブルの
1側のTQueryコンポーネント(TUpdateSQLあり)を更新しようとした場合、
データベースにStartTransactionを行い、Commitするとエラーになります。

多側のTQueryコンポーネントが、この1側のTQueryコンポーネントをリンク設定しているので、
多側のコンポーネントのACTIVEをFALSEに設定して、
StartTransactionすると問題なく更新できました。

リンク設定されているTQueryコンポーネントで、
StartTransactionを使って更新するには、どうすればよいのでしょうか?

842839:2005/10/29(土) 20:56:50
>>840
TntSysUtils.pas内にTnt_WideStringReplaceというのがありこれがドンピシャでした。
本当にありがとうございました。
843816:2005/10/29(土) 21:35:44
>>818
http://msdn.microsoft.com/library/default.asp?url=/workshop/misc/mlang/reference/functions/convertinetstring.asp
function ConvertINetString(lpdwMode:Cardinal;
dwSrcEncoding: Cardinal;
dwDstEncoding: Cardinal;
lpSrcStr: PChar;
var lpnSrcSize: Cardinal;
lpDstStr:PChar;
var lpnDstSize: Cardinal): HRESULT; stdcall; external 'mlang.dll' name 'ConvertINetString';

function ConvertINetString(略
var lpnSrcSize: PCardinal;
lpDstStr:PChar;
var lpnDstSize: PCardinal): 略

varならどっちでもコンパイル結果は同じ事か。。。て事で納得でけた
レスありがとう
844デフォルトの名無しさん:2005/10/29(土) 21:54:47
CardinalじゃなくてIntegerか
まあいいや
845デフォルトの名無しさん:2005/10/30(日) 01:30:07
>>840
TntSysUtils.pas内にTnt_WideStringReplaceというのがあり、どう見ても精子です。
本当にありがとうございました。
846デフォルトの名無しさん:2005/10/30(日) 01:32:33
847デフォルトの名無しさん:2005/10/30(日) 07:28:16
848834:2005/10/30(日) 10:04:28

>>838
レスありがとうございます。
でもダメでした。

>>834について、ちゃんと動くサンプルを知ってる方、又は書ける方
どうかよろしく御願いします。

849デフォルトの名無しさん:2005/10/30(日) 10:32:27
一旦ファイルに書き出して、cmd.exe経由で、 <, >, |でリダイレクトさせたらどうなるんだ?
850834:2005/10/30(日) 10:40:03

>>849
現在、リダイレクトを使わず、ファイルへの書き出しと読込で処理してますが
ファイルへの書き出しなどをしたくない為に質問に来た次第です。
よろしく御願いします。
851デフォルトの名無しさん:2005/10/30(日) 10:41:57
つか動かないにしてもコードがあるんだからキーワード拾って検索かけろよ。
C/C++のコードくらいは見つかるだろ。
852デフォルトの名無しさん:2005/10/30(日) 10:54:54
ごちゃごちゃ言わずに知ってたら回答しろよなぁー。
知らないなら黙れ。
853デフォルトの名無しさん:2005/10/30(日) 11:00:13
で、君はわかるの?
ここは超初心者スレなんだから
Cのコード拾えなんてレスは検討違い

わかるなら答える、わからないなら黙ってる
たったそれだけでいい
漏れは今回の件はわからないから質問者には無駄レス付けない
854デフォルトの名無しさん:2005/10/30(日) 11:03:42
> わかるなら答える、わからないなら黙ってる

禿道! >>851 みたいのないほうがいいな
855834:2005/10/30(日) 11:08:01

>>851
C/C++のコードを見つけても、無知な私では何の用も足せません。
Delphiでの具体的な方法を知ってるなら示教して頂けませんか?

856デフォルトの名無しさん:2005/10/30(日) 12:16:30
知っているがお前の態度が気に食わない
857デフォルトの名無しさん:2005/10/30(日) 12:27:41
と、言うだけなら知らなくても言える
858デフォルトの名無しさん:2005/10/30(日) 14:21:03
>>834
単純にGUIアプリで作った後に
{$APPTYPE console}
を入れたのではダメなの?
859デフォルトの名無しさん:2005/10/30(日) 14:55:29
TList とか TStringList は Free すれば Clear する必要はないのでしょうか?
それとも Clear してから Free すべきなのでしょうか?
860デフォルトの名無しさん:2005/10/30(日) 14:57:00
FreeするときClearされるよ

たぶん
861デフォルトの名無しさん:2005/10/30(日) 15:23:02
ClearすればFreeされる

それよりも
Freeする前にTListの場合は保持しているオブジェクトを解放
TStringListの場合はAddObjectでオブジェクトを関連付けている場合解放
これを忘れると嬉し恥ずかしメモリリークが発生します
862デフォルトの名無しさん:2005/10/30(日) 15:28:36
TMemoryStreamやTFileStream、TStingStreamはSizeプロパティより先に書き込もうとすると勝手に領域確保してくれますか?
863デフォルトの名無しさん:2005/10/30(日) 15:48:49
はい。
普通は Size を意識する必要はないです。
864デフォルトの名無しさん:2005/10/30(日) 16:23:23
>>861
わかってると思うけど、

>ClearすればFreeされる
というのは逆
865861:2005/10/30(日) 16:55:00
恥ずかしい・・欝だ
866834:2005/10/30(日) 16:56:06

>>858
レスありがとうございます。しかし知りたいのはコンソールアプリにGUIを付ける方法
(=GUIアプリで作った後に{$APPTYPE console}) ではなく
GUIアプリでリダイレクト出力する方法です。

コンソールアプリとして出力するのではなく、コードに因って出力する方法をお願いします。
867デフォルトの名無しさん:2005/10/30(日) 18:17:26
>>866
出先からなんで検証はしていませんが、writelnは、GUIからでも標準出力に書き出せるはずだけど。
ボタンのクリックイベントにwritelnでコードを入れてはどうでしょう。
868デフォルトの名無しさん:2005/10/30(日) 18:33:55
> バッチにリダイレクトする方法がわかりません。

標準出力のことじゃないんだよ。
バッチはそれ自体がプロセスじゃないから、リダイレクトとは違うんじゃないの?
ファイル経由とか・・・
869デフォルトの名無しさん:2005/10/30(日) 18:47:59
>>866
いいから試してごらんよ。
GUIとしてコンソールを持たずに起動したら、標準出力したって、誰が受け取るんだい?
リダイレクトするには、GUI付のコンソールアプリにするしかないだろ?
870デフォルトの名無しさん:2005/10/30(日) 18:58:21
だからコンソールにして出力できたとして、どうなるわけでもないでしょ。
当たり前なんだから。
871869:2005/10/30(日) 19:04:45
だから、やりたい事はなんなのよ。

>バッチから実行してEditに文字を入力しButtonを押すと
>Editに入れた文字をリダイレクトするものを作りたいと思っています

という事をやりたいなら、
 1) GUI付のコンソールアプリか、
 2)コンソールアプリとGUIの2つを作って通信
 させるしかない。
で2は面倒くさいだけで1と見かけは変わらない。

コンソールから起動したアプリに出力しなければリダイレクト出来ないのだから。
872869:2005/10/30(日) 19:06:10
とにかくさ、とりあえずやってみて、それでドコが気に入らないのか言ってくれよ。
873デフォルトの名無しさん:2005/10/30(日) 19:11:00
なんでこの子は熱くなってるの?
874デフォルトの名無しさん:2005/10/30(日) 19:19:49
まだ誰も例のコンポにたどり着けないのか。
アホやね。特に869
875デフォルトの名無しさん:2005/10/30(日) 19:40:04
例のコンポwwww
876846:2005/10/30(日) 23:42:42
>>847
ああ、なるほどw
どもども。
877デフォルトの名無しさん:2005/10/30(日) 23:52:34
delphi 2005の無料版をダウンしてインストールしたらエラーが出てきました。
878デフォルトの名無しさん:2005/10/30(日) 23:59:06
よかったですね♥
879デフォルトの名無しさん:2005/10/31(月) 00:39:51
Delphi6 Personalです。
RichEditで文字列を入力するようにしているのですが、64k(65,546バイト)以上は
入力することが出来ません。コードでTextプロパティに直接入れると64k以上でも
入るのですが・・・
この制限を回避する方法はないでしょうか?
880デフォルトの名無しさん:2005/10/31(月) 00:43:33
>>879
RichEdit.MaxLength := $7FFFFFF0;
とか
SendMessage(RichEdit.Handle, EM_EXLIMITTEXT, 0, $7FFFFFF0);
とか。
881デフォルトの名無しさん:2005/10/31(月) 00:44:58
>>879
MaxLengthの値を増やすんだ。0だと64Kに制限される。
ただしあまり大きな数指定するとやたら時間かかることがある
882879:2005/10/31(月) 01:13:28
>>880,881殿
即レス感謝です。
MaxLengthを適当な値に設定することにより実現できました。
どうもありがとうございました。
883デフォルトの名無しさん:2005/10/31(月) 01:33:45
サイズをメガバイト単位で指定できるコンポーネントなんかを
TCustomRichEditを継承して作ってみるといいよ
自分でコンポーネント(クラス)を作れるともっとDelphiが楽しくなる
884デフォルトの名無しさん:2005/10/31(月) 04:16:36
 ScanLine の使い方がよくわかりません。
ttp://ccfa.info/cgi-bin/up/src/up19081.txt
にコードをアップしたのでどなたか教えてください。
885デフォルトの名無しさん:2005/10/31(月) 04:23:16
886デフォルトの名無しさん:2005/10/31(月) 04:28:10
> Application.ProcessMessages;

じゃなくて Image1.Refresh;
887デフォルトの名無しさん:2005/10/31(月) 04:29:14
TListViewでどこをクリックしてもクリックした行の先頭(Columnsの0の列)にある
captionの内容を取得するにはどうすればいいのでしょうか?
888デフォルトの名無しさん:2005/10/31(月) 04:51:14
ListView1.Selected.Caption;
889デフォルトの名無しさん:2005/10/31(月) 06:31:41
>>884

システムパレットのエントリを使ってるのが間違い。RGB の換算できない。
Pixels[] だと TColor の定義上うまくいくが。

あと、ScanLine をつかってもあまり速くならない。for ix ループで再描画してる
のが遅い原因。再描画を最後の1回だけにすると劇的に速くなる。
890887:2005/10/31(月) 06:55:10
>>888
遅くなって申し訳ないです。
RowSelectをFalseにしたままだと取れないんですね。Trueにしたら問題なくできました。
有難う御座いました。
891デフォルトの名無しさん:2005/10/31(月) 07:27:04
>>889
> システムパレットのエントリを使ってるのが間違い。RGB の換算できない。
> Pixels[] だと TColor の定義上うまくいくが。
   DotColor := PaletteIndex(i mod 20) + 1;
のところだと思うのですがこれ以前ぐぐって見つけたものをそのまま使っただけです。
RGB の換算は具体的にはどうすればいいのでしょう?
892デフォルトの名無しさん:2005/10/31(月) 07:59:57
地道に普通の TColor の配列つくる
893デフォルトの名無しさん:2005/10/31(月) 08:10:37
あと ScanLine[ix] じゃなくて ScanLine[iy] とし、ix の分だけ PRGBTriple ポインタを
インクリメント
894デフォルトの名無しさん:2005/10/31(月) 10:50:47
こんにちわ 今デルファイ6パーソナルで写真から目標物の座標を自動で検出するようなプログラムを作ろうとしてるのですが、まず1、写真を2値化 2.その写真を0〜255で表示
3.その写真をラベリング 4、ラベリングしたグループの中心の座標を計算して出力
というような手順でやろうとおもってます。
今のところ、テキストイメージから2番をすることしかできてないのですが、3のラベリングとはどのようにすればいいのでしょうか?今は写真の数値をstringgridにひとつずつ入れてやってます。。。 空気読んでなくショボイ質問ですがよろしくおねがいします
あと画像の処理においてどこか参考になるサイトとかありましたら教えてください。おねがいします!
895デフォルトの名無しさん:2005/10/31(月) 12:29:05
xpでdelphi6で使って作ってるのですが、 
別の古いパソコンwindows2000で.exeを起動したのですが、エラーがでます。
xpで作ったものは2000で動かなかったりするものなのでしょうか? 
それとも何か設定をしないといけないのでしょうか? 宜しくお願いします。
896デフォルトの名無しさん:2005/10/31(月) 12:34:59
XPにあって2kにないWindowsのモジュール使ってれば動かない事もある。
2kに追加でインストールできる事もあるし
両方の環境で動くようにデバッグしないといけない事もある。
897デフォルトの名無しさん:2005/10/31(月) 12:40:21
>>895
どんなエラーが発生するのか書かないとフォローのしようがない。
今のままだと、場合によっては動かないこともあるよ、としか答えられない。
898デフォルトの名無しさん:2005/10/31(月) 13:02:16
>>895です。
>>896 >>897
ありがとうございます。
エラーは アプリケーションエラー
えらーが発生したため、Project1.exe を終了します。 プログラムを一度閉じる必要があります。
エラーログを作成しています。

と、言うメッセージでエラーログが何処なのかが分かりませんでした。

以前試した時は動いたので、変更した点と言えば、bmpをbmpにコピして貼り付けたことくらいで、これが原因かな?
そのbmpがexeの中ではなくimageフォルダの中にそれを拾いきれてないのか?

exeの中にこのようなbmpを同封することはできるのでしょうか?
899デフォルトの名無しさん:2005/10/31(月) 13:08:57
出来る。リソースファイルでヘルプを引け
後はBMPの処理を行ってる部分で発生する例外を補足すれ
そんな当たり前のメッセージじゃニュータイプでもない限り理解不能
900デフォルトの名無しさん:2005/10/31(月) 13:09:07
それだけじゃまったくわからん。
ソース2kもってってデバッグしろ。
OSの差より環境の差によるバグって気がする。
c:\delphi\proj1\ってディレクトリがないとエラーが出るとか。
901デフォルトの名無しさん:2005/10/31(月) 13:12:38
>>899 >>900
ありがとうございます。 環境から調べてみます。
902デフォルトの名無しさん:2005/10/31(月) 14:10:40
>>895です。

どうもGetCurrentDirを使ってるので思ってるディレクトリより一つ上で保存されたりしていました。

.exeがある現在のディレクトリを指定するにはどのようにすればいいのでしょうか?
903デフォルトの名無しさん:2005/10/31(月) 14:11:17
ExtractFilePath(Application.ExeName);
904デフォルトの名無しさん:2005/10/31(月) 14:15:21
>>894
すみませんが、「写真をラベリング」とは、具体的にどのような処理なのか
教えてくれませんか?
905デフォルトの名無しさん:2005/10/31(月) 16:23:17
>>903
ありがとうございます。

やっぱりimageディレクトリのようです。
一つ上のimageディレクトリの名前を変えたところ、xpでも動かなくなりました。
ExtractFilePath(Application.ExeName); で全部修正をこころみたのですが、
やはり一つ上のimageディレクトリを探しるようです。 
何故かファイルを開いた時はやはり一つ上のimageディレクトリを開くのです。

何か対処方法ありましたら教えてください。
906デフォルトの名無しさん:2005/10/31(月) 16:29:34
>>905
try exceptで思ってるところでLOG出してみたら?
ひとつ上のディレクトリを指定しているのは、お前が指示しているはず。
コンピュータは支持通り動く
907デフォルトの名無しさん:2005/10/31(月) 16:30:15
>>906
支持 ×
指示 ○
908デフォルトの名無しさん:2005/10/31(月) 16:35:06
> 何故かファイルを開いた時はやはり一つ上のimageディレクトリを開くのです。

自分のコードに責任を持ちなよ。なぜか、なんていってるうちは解決できない。
909デフォルトの名無しさん:2005/10/31(月) 16:39:36
>>906 >>908
ありがとうございます。 
アイコン臭いきがしてきました。
910デフォルトの名無しさん:2005/10/31(月) 17:01:18
教えてください。
ListView1.Items.Delete(ListView1.Selected.Index);
としてボタンを押したときに項目を消したいんだけど、
何も選ばれて無いとエラーになる。
どうしたらいいの?
911デフォルトの名無しさん:2005/10/31(月) 17:05:14
>>905
どうせソースに'Image'なんてベタな指定してるんだろ

>>910
リストで行を選択してないだけ
912デフォルトの名無しさん:2005/10/31(月) 17:07:24
>>910
TListView.SelCount見て0ならなにもしない
913デフォルトの名無しさん:2005/10/31(月) 17:10:33
if Assigned(Selected) then Delete
914デフォルトの名無しさん:2005/10/31(月) 17:15:11
>>912 そっか、ありがとう。
915894:2005/10/31(月) 20:48:26
返事ありがとうございます!
916894:2005/10/31(月) 20:51:11
げ エンター押しちゃった。。「写真をラベリング」と言うのは
2値化したの黒の部分のピクセルの座標からその隣がもし黒であったならそれを一つのグループにするみたいな作業です
これをすることによって写真の物体の輪郭がわかったり重心の座標が求めたりしたいのです
ええっとこのような説明でわかりましたでしょうか? 汗
917デフォルトの名無しさん:2005/10/31(月) 20:54:30
Stringgridの指定したマスに色を塗るにはどうしたらいいのでしょうか?
よろしくお願いします。
918デフォルトの名無しさん:2005/10/31(月) 21:29:14
>>895->>909です。

アイコンでもなく、xpのエラーは

デバッガ例外発生
プロジェクト Prodect1.exがExceptionクラスの例外を発生しました。
'Error setting path:"C\Program File\Borland\Delphi6\Projects\gazo\image"'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。

というもで、単にsetting path 変更すればいいのかな?と、
そのsetting path を探せど見つからずで、どこで変更できますでしょうか?
 宜しくお願いします。
919デフォルトの名無しさん:2005/10/31(月) 22:18:07
>>916 = 894
> 2値化したの黒の部分のピクセルの座標からその隣がもし黒であったならそれを一つのグループにするみたいな作業です

ありがとう。

で、具体的には、2値化(って白と黒の2色だよね)した画像の内部データにアクセス
できると問題が解決しますか?

速度を重視しなければ、TBitmap.Canvas.Pixels[] でアクセスできますし、
pf1bit の PixelFirmat でも、ちょっと工夫すると ScanLine で高速に
アクセスすることもできます。
920デフォルトの名無しさん:2005/10/31(月) 22:20:50
つづき

輪郭を求めるには、いちいち各ピクセルを順番になめていくだけです。
白から黒へ変化するときと黒から白に変化するときを記録していきます。
あと、リージョンをつかう方法もあります。
921デフォルトの名無しさん:2005/11/01(火) 06:45:52
>>918
^^;
922894:2005/11/01(火) 08:50:57
>>919
ありがとうございます。画像がJpegなんですけどその場合はあらかじめBMP
に変えておいたほうがいいでしょうか?とりあえず今ラベリングの処理をしてみたところ思いっきり無限ループにはまっちゃいまいした
グループ化する時にきっと再帰関数を使うのでしょうがその使い方がわからずとりあえずifとforで作ったのが原因だと思います
再帰関数使って作ってみますね!
923デフォルトの名無しさん:2005/11/01(火) 14:05:49
起動しているアプリの一覧って取得できますか?
924デフォルトの名無しさん:2005/11/01(火) 14:14:14
>>923
できるよ。
WindowsNTをサポートしなくても良いのならProcess32First,Process32Next,OpenProcess辺りの
APIを使えばオケ。
925デフォルトの名無しさん:2005/11/01(火) 15:58:38
WineでDelphi動きますか?
926デフォルトの名無しさん:2005/11/01(火) 17:28:44
>>924
ありがとうございました。
927デフォルトの名無しさん:2005/11/02(水) 02:17:27
どうみても精子です。
928デフォルトの名無しさん:2005/11/02(水) 07:39:44
Delphi 7 Personal
安いので買いたいのですが、
Indyコンポーネントとかふつうに使えますか?
その他になにか不便なこととか
ありますでしょうか?
よろしくおねがいします!
30000くらいまで出せますので
これを買ったほうがいいっていうのが
あったらそちらも教えてください。
ちなみに学生です。


929デフォルトの名無しさん:2005/11/02(水) 07:46:25
>>928
> 30000くらいまで出せますので
Delphi7 Professionalを買った方が良いです。

> Indyコンポーネントとかふつうに使えますか?
使えます。

> その他になにか不便なこととか
Delphi7 Personalにはソースが付いてません。
無料のD6 Personalと大して違わないと思います。

新しい物が好きなら年末まで待って、Delphi2006を購入するという手もあります。
Delphi2005はあと1ヶ月少々で終了なのでお勧めしません。
930デフォルトの名無しさん:2005/11/02(水) 08:11:58
>>929
ありがとうございます!

ソースって大事ですか?
Delphi2006は30000以内で買えますか?


931デフォルトの名無しさん:2005/11/02(水) 08:24:38
> ソースって大事ですか?

ソースを読めば、コンポーネントがどんな仕組みで動いているのか分かりますので
勉強になります。またちょっとだけ動作を変えたり、バグを発見したり、
いろいろ役立ちます。

> Delphi2006は30000以内で買えますか?

価格は未発表ですけど、アカデミック版なら買えると思いますよ。

ただしDelphi2006はDelphi6/7と違って、いろいろな機能がついているのでIDEの動作は
重たいです。また発展途上なのでバグも残っています。

チャレンジする余裕があるなら、Delphi2006は楽しみな製品ですけど
.NETやリファクタリング、モデリングに興味がなければ、Delphi7でも良いと思います。
932デフォルトの名無しさん:2005/11/02(水) 09:06:21
>>930
おれは学生の時にDelphi1を買った。
プログラミング初めてだったしチンプンカンプンなままほとんど使いこなせずに
Delphi2Pro版を買った。その頃コンポーネントを作ろうと思い立ち、初めて
VCLソースをまじめに追うようになって急激に理解度が増した。目から鱗が
落ちる気分だったよ。
933デフォルトの名無しさん:2005/11/02(水) 09:17:15
JavaやPHP、C#などでいろいろアプリケーション
作ってるんですが、
Delphiでしかやれないことが
いろいろあるんですよね〜。
だからDelphiにはあこがれています。

年末まで待ってDelphi2006買うことに決めました。
アドバイスありがとうございました。
934デフォルトの名無しさん:2005/11/02(水) 09:27:18
まずは Del6personal を使ってみることをオススメする。無料だし。
最初はソースはなくてよい。軽いし、バグに悩まされることも少ない。
Indy も使える。
935デフォルトの名無しさん:2005/11/02(水) 09:37:12
日本語ドキュメント皆無だけどな
936デフォルトの名無しさん:2005/11/02(水) 09:53:04
学生版で商用ソフト作れますか?
937デフォルトの名無しさん:2005/11/02(水) 09:57:40
たしかフリーソフトの配布も無理になったんじゃなかったっけ。
学生用。なんか揉めてたような。
938デフォルトの名無しさん:2005/11/02(水) 12:46:38
ユニット参照について、
interface部の
uses

implementation部の
uses
の違いをご教示ください。

ヘルプを参照しても、usesは
「実現部が独自のuses 節を含む場合もあります。」
とまでしか書いてありません。

今は、コンポーネント貼り付け等による
デフォルトでセットされるユニットではなく、
独自で作成したユニットを、明示的に
参照させる場合に
implementationの
uses節にユニットを追加するようにしています。
939デフォルトの名無しさん:2005/11/02(水) 12:58:37
>>938
interface部でそのユニットが必要なら、interface部のusesに書く。
interface部でそのユニットが不要なら、implementation部のusesに書く。

interface部のusesに書くと循環参照(ユニットが相互に参照し合う)が発生したりして面倒なので
implementation部のusesに書けるものはそちらに書いた方がいい。
940デフォルトの名無しさん:2005/11/02(水) 12:59:08
>>938
C++の.hに書く#includeと.cppに書く#includeの違いみたいな物だと思ってる
941デフォルトの名無しさん:2005/11/02(水) 13:13:56
>>939-940
どうもありがとうございます。
なるほど、外部参照、内部参照定義
みたいなものですね。

942デフォルトの名無しさん:2005/11/02(水) 15:42:26
Delphi6 で ShellTreeView と FileListBox1 を貼り付けて
procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
begin
FileListBox1.Directory := ShellTreeView1.Path;
end;
としているのですが、ShellTreeView を何回かクリックして終了するとメモリーリークが
発生します(起動して終了するだけでも発生することがある)。
 この2つのコンポ相性が悪いのでしょうか?

 ちなみに
ttp://www.bekkoame.ne.jp/~itotaka
で公開されている伊藤隆志氏の ShellTreeView(使用しているのは D5 用)でも同じ症状が発生します。

 リークのチェックは
ttp://hp.vector.co.jp/authors/VA015850/delphi/fragments/LeakChecker.html
を利用しています。
943デフォルトの名無しさん:2005/11/02(水) 17:29:47
質問なんですが、フォームにTButtonとTMemoを置いて、

procedure TForm1.Button1Click(Sender: TObject);
begin
 repeat
  ・・・
  Application.ProcessMessages;
 until hogehoge;
end;

という感じで、ボタンクリック時にかなり長めの処理をしてます。
で、ProcessMessagesを呼んでるのでフォームが固まったりとかはないんですが、
例えばMemo上で右クリックをしてポップアップを出したり、フォームを移動させたりすると、
その間ループ処理が止まってしまいます。
これをスレッドを用いる以外で止まらせずに処理を継続する方法ってあるんでしょうか?
944デフォルトの名無しさん:2005/11/02(水) 17:33:56
おれがやった限りではスレッド使わないと無理だった
945デフォルトの名無しさん:2005/11/02(水) 17:46:35
そりゃそうだろな。モーダルダイアログ表示でも止まるな。当たり前。
946デフォルトの名無しさん:2005/11/02(水) 17:58:00
当たり前というわけでもないな。
947デフォルトの名無しさん:2005/11/02(水) 19:24:10
当たり前だろが。意外に思うのはなぜ?
948デフォルトの名無しさん:2005/11/03(木) 23:06:11
シングルスレッドではループは一つしか回せません。メニューループやモーダルループは
プログラマが必ずしも立ち入れるものではないので、回避策はありません。
949デフォルトの名無しさん:2005/11/04(金) 00:32:39
無理矢理割り込めば回避できなくはないだろうな
950デフォルトの名無しさん:2005/11/04(金) 01:10:59
どうやって?
951デフォルトの名無しさん:2005/11/04(金) 01:14:39
タイマーつかえばええんでない
952デフォルトの名無しさん:2005/11/04(金) 07:43:15
せっかくスレッドが簡単に作れるようになってるのだから
スレッド使えばいいじゃん。あほか。
953デフォルトの名無しさん:2005/11/04(金) 09:15:03
タイマですむなら初めからループ使わねぇだろ
954デフォルトの名無しさん:2005/11/04(金) 10:39:00
なにこのゴミレスの山
955デフォルトの名無しさん:2005/11/04(金) 11:56:39
少なくとも954よりはマシ
956デフォルトの名無しさん:2005/11/04(金) 12:05:43
タイマーでモーダルループに割り込めるよ。
でも、そっから先がめんどくさい。素直にスレッド使ったほうが楽。
957デフォルトの名無しさん:2005/11/04(金) 12:27:43
というかなんでスレッドコンポを標準で提供しないのか謎だな。
タイマーコンポと同じ感じで遥かにレスポンスよく作れるようになるのに。
958デフォルトの名無しさん:2005/11/04(金) 12:30:32
>>957
やっぱある程度理解を深めてから使うのが無難だからじゃ?よく分からんけど。
959デフォルトの名無しさん:2005/11/04(金) 12:55:25
コンストラクタ実行するのがめんどくさいヤツはポトペタしかできないんだろうなぁー
パレットにないとつかえないとか思ってる?
960デフォルトの名無しさん:2005/11/04(金) 13:01:01
>>959
お前ここは初めてか。力抜けよ
961デフォルトの名無しさん:2005/11/04(金) 13:06:20
>>959
はい、クラス名とnewとアスタリスク書くのがめどいです。
静的生成させてくだしあ

byBCB使い
962デフォルトの名無しさん:2005/11/04(金) 13:11:28
TThread はユーザが派生クラスをつくって使う仕様になってるよね。
コンポにして隠蔽してしまうとかえって使いづらいと思うんだが。
963デフォルトの名無しさん:2005/11/04(金) 13:19:20
ダブルクリックしてコード書くだけでマルチスレッドって素敵やん
964デフォルトの名無しさん:2005/11/04(金) 13:37:43
Delphi6でSSEを使う方法ありますか?ないでしょ、ないんですね?
つまりDelphi6はゲーム製作やマルチメディアには向かないということですね?
965デフォルトの名無しさん:2005/11/04(金) 13:47:13
>>964
asm
ま、その調子だとお前さんには無理そうだし、
ないと思っておいていいんじゃない?
966デフォルトの名無しさん:2005/11/04(金) 14:54:20
>>965
そんなことはわかってますよ!
あなたasmばかり繰り返して問題の本質をわかってない
わたしはどうやってそれを実現するんですかと聞いてるんです
誤魔化さないで具体的に答えてください
967デフォルトの名無しさん:2005/11/04(金) 14:55:16
> ダブルクリックしてコード書くだけでマルチスレッドって素敵やん

そうだね。「ダブルクリックして」してどのイベントにコードを書くのか不明だが。
968デフォルトの名無しさん:2005/11/04(金) 14:56:58
>>966
ひとにものを尋ねる態度としては最低だね。あるかないかの質問だったはず。
969デフォルトの名無しさん:2005/11/04(金) 15:09:30
>>967
自作のものだと
OnExecuteでサブスレッドのメイン
OnSynchronizeでVCLとの同期部分
後はおまけでOnInitialize, OnFinalize。
970デフォルトの名無しさん:2005/11/04(金) 15:34:41
>>969
で、そのイベント、誰が呼び出すの?
971デフォルトの名無しさん:2005/11/04(金) 15:50:57
実装はTTheradのラッパーだからTThreadが呼び出すだけ。
972デフォルトの名無しさん:2005/11/04(金) 17:34:51
>>966
必死ですね^^;
973デフォルトの名無しさん:2005/11/04(金) 17:49:20
>>964
SSEで複数の浮動小数点数演算を同時に実行したいのだとすると
DelphiだとSSEコードをインラインアセンブラで書く事になります。

ttp://buin2gou.nyaa.co.uk/delphi/mmxasm.htm

めんどくさいなら、IntelC++とかで、SSE用にコンパイルしたアセンブラ出力を持ってくるとか
974デフォルトの名無しさん:2005/11/04(金) 18:08:15
あのう、RFCを見ていると ISO-3309:1984-PDAD1 を参照しろと出てきたのですが、
そのドキュメントってどうしたら見る事ができますか?
ググっても、それを参照するドキュメントしか出てこないようです。
975デフォルトの名無しさん:2005/11/04(金) 18:14:32
ヘルプ嫁
976デフォルトの名無しさん:2005/11/04(金) 18:16:42
RFCがどうDelphiに関係して来るんだ
977デフォルトの名無しさん:2005/11/04(金) 18:24:54
RFCに準拠してサーバアプリを組んでいるんです。
スレ違いなのは判っているのですが、もし判る方がいらっしゃったら教えていただきたいです。
978デフォルトの名無しさん:2005/11/04(金) 18:27:30
RFCのスレってのは無いのか・・・
979デフォルトの名無しさん:2005/11/04(金) 18:28:23
ネットワークスレがあるだろ
980デフォルトの名無しさん:2005/11/04(金) 18:28:59
ネットワークスレはほとんどソケットスレと化してるし
新規に建てたいな
981デフォルトの名無しさん:2005/11/04(金) 18:31:44
うるさい口答えするな
982デフォルトの名無しさん:2005/11/04(金) 18:42:18
ネトワスレだとRFCの質問受け付けないじゃん
983デフォルトの名無しさん:2005/11/04(金) 20:32:18
うるさい口答えするな
984デフォルトの名無しさん:2005/11/04(金) 20:38:42
お前、上司みたいだな。
985デフォルトの名無しさん:2005/11/04(金) 20:58:00
かわいそうに。もう少し知恵があれば
上司にいびられることもなく、こんな所で煽ってらなくても生きていけるのに。
986デフォルトの名無しさん:2005/11/04(金) 23:32:44
上司がメガネ掛けてて美人でSっぽかったらどんだけいびられても・・・

考えてるだけでも勃ってきた
987デフォルトの名無しさん:2005/11/05(土) 02:11:13
全米が引いた
988デフォルトの名無しさん:2005/11/05(土) 08:13:42
お前、俺の部下みたいだな。
989デフォルトの名無しさん:2005/11/05(土) 08:28:46
メガネ掛けててブ男でMっぽいデブとは俺のことです
990デフォルトの名無しさん:2005/11/05(土) 08:59:12
さらに、年に2度髪型の変わる男とは俺の事だ。
991デフォルトの名無しさん:2005/11/05(土) 10:13:31
さらに、もう某製品は金輪際買うまいと決心した男とは俺の事だ。
992デフォルトの名無しさん:2005/11/05(土) 12:21:36
おもちよりおもちろいのはわたくしのことであります
993デフォルトの名無しさん:2005/11/05(土) 12:22:43
向こうでやれ
994デフォルトの名無しさん:2005/11/05(土) 12:36:43
どうせ、もう終わりだろ、このスレ。ここであと5,6レスで何するつもり?
995デフォルトの名無しさん:2005/11/05(土) 12:40:28
空気読めないマンセー低脳だろ。>向こうでやれ
996デフォルトの名無しさん:2005/11/05(土) 12:59:28
というか、次作れよ
997デフォルトの名無しさん:2005/11/05(土) 13:13:17
肩甲骨って背中に二つだよな?
俺いましらべたら3つあるみたいなんだが・・・。
998デフォルトの名無しさん:2005/11/05(土) 13:23:09
実装が動いてるなら仕様を疑え
999デフォルトの名無しさん:2005/11/05(土) 14:17:13
ヌルポ
1000デフォルトの名無しさん:2005/11/05(土) 14:18:27
1000GET
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。