トップページ⇒tech
1001コメント282KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/09/13(火) 14:40:39
このスレッドは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/
0002デフォルトの名無しさん2005/09/13(火) 14:41:23
過去スレ
25 http://pc8.2ch.net/test/read.cgi/tech/1119008091/
24 ttp://pc8.2ch.net/test/read.cgi/tech/1115581376/
23 ttp://pc8.2ch.net/test/read.cgi/tech/1110470895/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1107332482/
21 ttp://pc5.2ch.net/test/read.cgi/tech/1104511938/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1101530485/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1097454588/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1093996761/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1091671391/
16 ttp://pc5.2ch.net/test/read.cgi/tech/1089779142/
15 ttp://pc5.2ch.net/test/read.cgi/tech/1087823906/
14 ttp://pc5.2ch.net/test/read.cgi/tech/1085239007/
13 ttp://pc5.2ch.net/test/read.cgi/tech/1081003641/
12 ttp://pc5.2ch.net/test/read.cgi/tech/1076610073/
11 ttp://pc5.2ch.net/test/read.cgi/tech/1076609666/
10 ttp://pc5.2ch.net/test/read.cgi/tech/1074523803/
09 ttp://pc5.2ch.net/test/read.cgi/tech/1071294733/
08 ttp://pc5.2ch.net/tech/kako/1068/10682/1068201045.html
07 ttp://pc5.2ch.net/tech/kako/1065/10651/1065195699.html
06 ttp://pc5.2ch.net/tech/kako/1063/10632/1063202727.html
05 ttp://pc5.2ch.net/tech/kako/1061/10610/1061090908.html
04 ttp://pc5.2ch.net/tech/kako/1058/10588/1058834815.html
03 ttp://pc5.2ch.net/tech/kako/1055/10559/1055986736.html
02 ttp://pc5.2ch.net/tech/kako/1053/10537/1053757982.html
01 ttp://pc5.2ch.net/tech/kako/1051/10518/1051882835.html
0003デフォルトの名無しさん2005/09/13(火) 14:58:11
>>1
乙
0004デフォルトの名無しさん2005/09/13(火) 16:04:24
VCのように4kbyte未満でバイナリを生成することは可能ですか?
8kbyte程度になることは知っています。
0005ななしへたぐらま ◆XcB18Bks.Y 2005/09/13(火) 16:13:24
>>1
お疲れ様でした.
よくみると私が改変したテンプレ,25スレのhを抜き忘れてました(笑).
0006デフォルトの名無しさん2005/09/13(火) 16:41:09
まあなんだ。
PCのスッペクが高い今
コンパイラの最適化の差を語るよりもコードの保守性のよさやらバグがないことを目指してがんばろうと、、
0007デフォルトの名無しさん2005/09/13(火) 17:03:45
前スレ、埋め完了しますた。


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

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

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


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

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

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

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

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

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

これ認めない。
正確には

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

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

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

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

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

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

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

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

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

「ラジオボタン Onchange Delphi」などでググってもなかなか見つからないので
困っています。
0066デフォルトの名無しさん2005/09/17(土) 13:05:33
あ、ごめんなさい。リロードしてませんでした。
OnClickでいけました。
0067622005/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;

のように書いて動いてますが、数が多くなると大変です。よりスマートに書く方法はありますか?
0068デフォルトの名無しさん2005/09/17(土) 13:33:49
名前に統一性を持たせてFor文でループ
FindComponentで探したら行けないかな?
0069デフォルトの名無しさん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;
0070デフォルトの名無しさん2005/09/17(土) 14:25:23
もしくはTListにでも突っ込んどいてTComponent(TList[i]).Enabled := True
0071デフォルトの名無しさん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;
美しくないねごめん。
0072デフォルトの名無しさん2005/09/17(土) 14:44:52
>>71
無駄杉
その記述なら当てはめる値は変数にする方がスマート

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

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

fs.Write(Font.Style, SizeOf(Font.Style));
Font.Style := [fsBold];
0076デフォルトの名無しさん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;
0077デフォルトの名無しさん2005/09/17(土) 18:56:18
あ、最大4つだね
0078デフォルトの名無しさん2005/09/17(土) 19:00:48
>>76
わざわざbyteにキャストする意味が判らん。
var
 fontstyles: TFontStyles;
でいいやん。
0079742005/09/17(土) 19:18:53
皆さんありがとうございます
解決しました
0080デフォルトの名無しさん2005/09/17(土) 20:20:45
ところで、Delphiを1から始めるのに一番いい解説サイトはどこですか?
ググったらたくさん出過ぎてどれをみたらいいのかorz..
0081デフォルトの名無しさん2005/09/17(土) 20:37:49
>>80
googleが一番
0082デフォルトの名無しさん2005/09/17(土) 21:52:23
> わざわざbyteにキャストする意味が判らん。

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

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

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

とやれば簡単なんだけどな。 1行で保存となると、そうなるかな
0085デフォルトの名無しさん2005/09/17(土) 23:19:23
Byteにキャストすると一律に扱いやすいって場合もあるからね
やり方知ってるに越したことはない
0086デフォルトの名無しさん2005/09/18(日) 02:14:58
データベースからツリービューを作るときに
データのIDをPointer型にキャストしてぶら下げるのと同じだね
0087デフォルトの名無しさん2005/09/18(日) 06:53:32
>>80
http://onigiri.s3.xrea.com:8080/delphi/index.php?cmd=read&page=%A5%EA%A5%F3%A5%AF%2F%A4%BD%A4%CE%A3%B1#content_1_6
0088802005/09/18(日) 08:35:28
>>83>>87
ありがとうございます。
0089デフォルトの名無しさん2005/09/18(日) 09:03:37
VB,VSなら情報盛りだくさんだよ
0090デフォルトの名無しさん2005/09/18(日) 23:37:52
こんなところで客引きかよ。
0091デフォルトの名無しさん2005/09/19(月) 00:46:12
2005 Personalって日本じゃ使えないの?
0092デフォルトの名無しさん2005/09/19(月) 00:47:49
外国の雑誌を買ってくれば使える
0093Delフサギコ ◆A6VzDeLphI 2005/09/19(月) 21:47:12
  ∧,,∧ ∧,,∧  
 ミ,,゚Д゚ミ,,・д・ミ ニャ-
 ミ ミつ ミ,,,uu,,ミ〜
  ミ   ミ
  ∪''∪  知ってたら教えてください

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

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

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

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

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

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

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

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

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

さんくす>>97さん、

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

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

一応、期待通りの動作はするのですがSelf.BorderIconsの所で
画面がちらつきます。これを防ぐ方法はないのでしょうか?教えてください。
■ このスレッドは過去ログ倉庫に格納されています