くだすれDelphi(超初心者)その27
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/09/13(火) 14:40:39他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
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/
0052デフォルトの名無しさん
2005/09/15(木) 03:20:02アンチなんていないことをいってることくらい分かってくれ。
0053デフォルトの名無しさん
2005/09/15(木) 03:23:08うるさい黙れ!
0054デフォルトの名無しさん
2005/09/15(木) 03:25:31うるさい黙れ!
0055デフォルトの名無しさん
2005/09/15(木) 07:54:010056デフォルトの名無しさん
2005/09/15(木) 08:21:070057デフォルトの名無しさん
2005/09/16(金) 17:07:30CloseメソッドやSendMessageでWM_Closeを送っても一瞬画面が表示されてしまいます。
ズバッと終了させる方法ってないですか?
0058デフォルトの名無しさん
2005/09/16(金) 17:20:480059デフォルトの名無しさん
2005/09/16(金) 17:27:120060カラス
2005/09/16(金) 17:46:300061デフォルトの名無しさん
2005/09/16(金) 18:17:570062デフォルトの名無しさん
2005/09/17(土) 12:38:26あるRadioButtonCheckedプロパティがFalseのときに、
あるコンポーネントのEnabledプロパティをFalseにするようにするには、
どうすればよいですか?
○←False
・−−−−− ←ここを無効にしたい
・−−−−− ←ここを無効にしたい
●←True
・−−−−−
・−−−−−
0063デフォルトの名無しさん
2005/09/17(土) 12:59:320064デフォルトの名無しさん
2005/09/17(土) 13:04:13onClickかな
0065デフォルトの名無しさん
2005/09/17(土) 13:04:32勉強不足ですみません。
「ラジオボタン Onchange Delphi」などでググってもなかなか見つからないので
困っています。
0066デフォルトの名無しさん
2005/09/17(土) 13:05:33OnClickでいけました。
006762
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;
のように書いて動いてますが、数が多くなると大変です。よりスマートに書く方法はありますか?
0068デフォルトの名無しさん
2005/09/17(土) 13:33:49FindComponentで探したら行けないかな?
0069デフォルトの名無しさん
2005/09/17(土) 14:00:08for 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:230071デフォルトの名無しさん
2005/09/17(土) 14:36:54var
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無駄杉
その記述なら当てはめる値は変数にする方がスマート
var
Value: Boolean;
begin
Value:= not (Sender as TCheckBox).Checked;
TButton(…).Enabled:= Value;
end;
0074デフォルトの名無しさん
2005/09/17(土) 18:05:35また、動的にFontDialogを使う事なくFont.Styleを変える事はできないでしょうか?
0075デフォルトの名無しさん
2005/09/17(土) 18:53:17単なる集合型なんで保存はそのままファイルにでも書き出せばいいし、
変更は普通に代入出来るよ。
fs.Write(Font.Style, SizeOf(Font.Style));
Font.Style := [fsBold];
0076デフォルトの名無しさん
2005/09/17(土) 18:54:21ヘルプより
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:180078デフォルトの名無しさん
2005/09/17(土) 19:00:48わざわざbyteにキャストする意味が判らん。
var
fontstyles: TFontStyles;
でいいやん。
007974
2005/09/17(土) 19:18:53解決しました
0080デフォルトの名無しさん
2005/09/17(土) 20:20:45ググったらたくさん出過ぎてどれをみたらいいのかorz..
0081デフォルトの名無しさん
2005/09/17(土) 20:37:49googleが一番
0082デフォルトの名無しさん
2005/09/17(土) 21:52:23ini とかレジストリとかに保存するとき便利でしょ
0083デフォルトの名無しさん
2005/09/17(土) 21:53:36Seventh Delphi がオススメです。
0084デフォルトの名無しさん
2005/09/17(土) 22:32:17うーん。列挙型だと
GetEnumName(TypeInfo(TFontStyle), ord(typ) );
とやれば簡単なんだけどな。 1行で保存となると、そうなるかな
0085デフォルトの名無しさん
2005/09/17(土) 23:19:23やり方知ってるに越したことはない
0086デフォルトの名無しさん
2005/09/18(日) 02:14:58データのIDをPointer型にキャストしてぶら下げるのと同じだね
0087デフォルトの名無しさん
2005/09/18(日) 06:53:32http://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
0089デフォルトの名無しさん
2005/09/18(日) 09:03:370090デフォルトの名無しさん
2005/09/18(日) 23:37:520091デフォルトの名無しさん
2005/09/19(月) 00:46:120092デフォルトの名無しさん
2005/09/19(月) 00:47:490093Delフサギコ ◆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:52htmlに関連付けすればいいんじゃない?
0096デフォルトの名無しさん
2005/09/20(火) 00:43:140097デフォルトの名無しさん
2005/09/20(火) 00:47:31あっちでフサが紹介してた
http://blog.livedoor.jp/junki560/archives/18042687.html
じゃダメなの? グラデーションは
http://blog.livedoor.jp/junki560/archives/18495762.html
で描く、と。
009894
2005/09/20(火) 03:06:14すいません
質問の仕方が悪かったです
htmlの関連付けをそのアプリケーション上で行いたいのですが、
どうしたら良いでしょう?
0099デフォルトの名無しさん
2005/09/20(火) 03:30:04"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の所で
画面がちらつきます。これを防ぐ方法はないのでしょうか?教えてください。
0102デフォルトの名無しさん
2005/09/20(火) 12:44:01begin
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;
0105デフォルトの名無しさん
2005/09/21(水) 16:20:06Delphiになれるため、コンポーネントをいろいろ貼り付けて練習しています。
いまDeerPark の設定ダイアログ( ttp://web.drive.ne.jp/1/soko/VIP03217.PNG )
をDelphiで模造してみようと思っているのですが、上のボタンのようなタブは、Win32-TTabControlで
再現できるものなのでしょうか?それとも、自力でこういうコンポーネントを作らないと無理なのでしょうか。
0106デフォルトの名無しさん
2005/09/21(水) 16:46:02これはXPスタイルなんで、.manifestファイルを同じDirectoryに置くか
リソースでXMLをかくかどっちか
Delphi7なら
C:\Program Files\Borland\Delphi7\Lib\WindowsXP.res
にあるけどD6はなかったと思うので、WindowsXP.resをどっかからもらうか
VC++などについてるリソースエディタで作ってから
{$R WindowsXP.res}とすれば良いと思います。
0107デフォルトの名無しさん
2005/09/21(水) 16:50:49仮にそれが「General」とか書いてあるボタンのことだとしたら、
それは自力で描写する必要があるな
0108デフォルトの名無しさん
2005/09/21(水) 17:42:34おっしゃる通り、「上のボタンのようなタブ」は General〜 以右のことです。
やはりこれは自力でやるしかないのですね。わかりました。
0109デフォルトの名無しさん
2005/09/22(木) 04:21:39某のQ&A位嫁馬鹿
http://www.borland.co.jp/qanda/delphi/d0009423.html
0110デフォルトの名無しさん
2005/09/22(木) 04:57:54HlinkNavigateStringを使い、
HlinkNavigateString(Nil,URL);
このようにしてブラウザにサイトを開かせているんですが、ブラウザを閉じる前に
アプリケーションにウィンドウのフォーカスを戻すと
EStackOverflowクラスの例外が発生してしまいます(ブラウザを閉じた後で発生したことはありません)。
ブラウザを閉じる前にアプリケーションにフォーカスを戻してもエラーが発生しないようにするには
どのようにしたらいいでしょうか?
0111デフォルトの名無しさん
2005/09/22(木) 07:19:070112デフォルトの名無しさん
2005/09/22(木) 07:35:10http://www.borland.co.jp/qanda/delphi/d0003105.html
0113110
2005/09/22(木) 08:03:25そのページは見ていましたが、ShellExecute関数は試していませんでした。
ShellExecuteにすることで、無事ブラウザから戻ってもエラーが出なくなりました。
有り難うございます。
0114デフォルトの名無しさん
2005/09/22(木) 08:12:55http://bonanzas.rinet.ru/
0115デフォルトの名無しさん
2005/09/22(木) 15:16:08誤爆?怖いから俺は踏まないでおくが
0116デフォルトの名無しさん
2005/09/22(木) 15:22:26とりあえずURLはKOLのサイトのようだが
0117デフォルトの名無しさん
2005/09/22(木) 15:22:39KOL(Key Objects Library)のサイトなのかな?
0118114
2005/09/22(木) 15:42:26ちなみに小さなexeを作りたいというのへのレスです。
0119デフォルトの名無しさん
2005/09/22(木) 18:45:39俺もそう思うけど
せめてBorlandのQ&A位は読んでから質問して欲しいよな。
いくらくだすれでもあまりにも幼稚な質問をするのは良くないと思う。
0120デフォルトの名無しさん
2005/09/22(木) 19:28:05せめてヘルプぐらい嫁、とか、MLの過去ログ嫁とか、どんどん拡大していくな、それだと。
くだすれに前提を求めるなよ。だからくだすれなんだから。
っていうか、BorlandのQ&A ってそんなにメジャーかなぁ・・・
0121デフォルトの名無しさん
2005/09/22(木) 19:34:380122デフォルトの名無しさん
2005/09/22(木) 19:35:400123デフォルトの名無しさん
2005/09/22(木) 23:47:39くだすれでそういう議論は不要
上級スレかフサスレでやってくれ
0124デフォルトの名無しさん
2005/09/23(金) 00:39:57>>119 に言ってやれ
0125デフォルトの名無しさん
2005/09/23(金) 00:44:170126デフォルトの名無しさん
2005/09/23(金) 00:49:33ニフティで同じようなことをしたから。ヘルプを見れば分かることなのに
探し方が下手だったり、思いこみで見つけ損ねたりしてたから。
時間がないときはほっておくけど。んで次回見たときに誰も答えてなければ
答える。そうしないと過去、俺に教えてくれた人が同じことしてくれたんだから
申し訳ない。
0127デフォルトの名無しさん
2005/09/23(金) 00:49:560128デフォルトの名無しさん
2005/09/23(金) 00:50:310129デフォルトの名無しさん
2005/09/23(金) 01:02:160130デフォルトの名無しさん
2005/09/23(金) 01:06:59みんな最初は初心者だったでしょ?
0131デフォルトの名無しさん
2005/09/23(金) 01:08:270132デフォルトの名無しさん
2005/09/23(金) 01:18:49「みんな最初は初心者」
↑これみると頭に来る。生ぬるいこと言ってんじゃねぇよハゲが。
ゆとり教育か?あん?100万回ヘルプ読んでこい。全部書いてある。
0133デフォルトの名無しさん
2005/09/23(金) 01:23:580134デフォルトの名無しさん
2005/09/23(金) 01:25:09みんな最初は初心者
みんな最初は初心者
みんな最初は初心者
みんな最初は初心者
みんな最初は初心者
どうぉ?
0135デフォルトの名無しさん
2005/09/23(金) 01:27:550136デフォルトの名無しさん
2005/09/23(金) 02:09:020137デフォルトの名無しさん
2005/09/23(金) 02:21:29IFよりも早く動かしていた記憶があって、ぐぐってるんですが
なかなか昔使っていたような論理計算式が出てきません。
ビット計算?ANDとかNOTを使っていたような?うまいことどんぴっしゃ!というような
が出てきません。
ヒントをもらえませんか?
0138デフォルトの名無しさん
2005/09/23(金) 02:27:58こういうのじゃないのか。
0139Delフサギコ ◆A6VzDeLphI
2005/09/23(金) 02:29:16ミ,,゚Д゚ミ,,・д・ミ ニャ-
ミ ミつ ミ,,,uu,,ミ〜
ミ ミ
∪''∪
>>120、>>126、>>130
激しく同意。
生ぬるいとか言ってるヤツ
2chくだすれの意味わかってんのか
MLに帰れゴルァ
とか言ってみたけど、
眠いから寝て土日は心を落ち着かせて
平和にいこー!
0140デフォルトの名無しさん
2005/09/23(金) 02:50:14あああ!ありがとうございます。その手のたぐいのTIPを
いくつか使用していたはずなんです。ごく当たり前に。
そういうTIPと「何故そうなのか」が集まったサイトないか探しています。
ベーマガやMSXファンなどの投稿雑誌でMSXのプログラムがあったころに本をとっておけばよかった。
そうやって昔は先輩たちのショートプログラムから覚えていったんだから。
当方、Delphiを始めたばかりの元MSXユーザーですわ。
0141デフォルトの名無しさん
2005/09/23(金) 12:09:44Delphi言語は非常に型にうるさい。
また演算子の機能はオペランドの型によって変わってくるので
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文を使わずに処理を切り替えることも可能。
0142デフォルトの名無しさん
2005/09/23(金) 12:16:24BCB6のクイックスタートはそこキチンと直ってるのにねぇ
0143デフォルトの名無しさん
2005/09/24(土) 12:32:41ExtractFilePath(Application.ExeName);
ExtractFilePath(ParamStr[0]);
などとやると思いますが、この TApplication.ExeName や ParamStr[0]は
D:\MyTools\Hoge.exeをD:\MYTOOLS\HOGE.EXE
と大文字化して返してしまいます。元のファイル名のまま得る方法はないでしょうか?
0144デフォルトの名無しさん
2005/09/24(土) 12:50:220145デフォルトの名無しさん
2005/09/24(土) 13:13:42環境は以下の通り。
WinXP + Del5Pro, Del6Personal
ファイルシステムは共にNTFS
ファイルシステムの関係?
0146デフォルトの名無しさん
2005/09/24(土) 13:17:350147デフォルトの名無しさん
2005/09/24(土) 13:38:540148デフォルトの名無しさん
2005/09/24(土) 13:40:120149デフォルトの名無しさん
2005/09/24(土) 13:42:52はい、次の方どうぞ
0150アーツ勝ってばんざい!
2005/09/24(土) 14:33:49サンプルをつけた詳しいレスありがとうございます。遅くなってすいません
修学中ですが、上のサンプルリストは理解できましたが(当たり前の事ながら)
下の方が浅学のため、うっすらとしか分かりませんでしたが、もうちょっと
勉強してきます。配列に入れて摂取を番目にて得るということなんすね?
何故か、MIDを利用して文字を切り抜いたことをやってたなーとか
思い出しました。関係ないか。
ありがとうございます。
0151デフォルトの名無しさん
2005/09/24(土) 15:03:14■ このスレッドは過去ログ倉庫に格納されています