■ 起動時にボタンを無効にするには?

[Delphi Q & A 掲示板] [過去ログの一覧]


NOBB 2009/04/03(金) 21:24:25 <初心者>
Delphi始めたばかりです。
よろしくお願いします。

EXE起動時に自身のパスを取得

そのパスに特定の文字列を追加してフォルダの存在判定

フォルダが存在しない時フォーム上のボタンを無効に

という処理をしたいのですが、記述位置?がわかりません

処理的には
procedure TForm1.kyuBtnClick(Sender: TObject);
begin
  try
    strFolname := ExtractFilePath(Application.Exename);
    showmessage(strfolname);

    if direxists(strfolname + kyuname) then
      showmessage(strfolname + kyuname + #13#10 +'あり')
    else
      kyubtn.Enabled := False;
      showmessage('なし');

  finally

  end;
end;
このような事がしたいのです。
これでは当然ですがボタンが押された後無効になります。

起動時にフォルダが無ければ無効にする方法を教えてください。

それは 2009/04/03(金) 21:38:26
TForm.OnCreateに書けばいいと思うよ

ちなみに 2009/04/03(金) 21:48:13
ボタンの有効・無効の処理は一行で書くとこうなるかな。

kyubtn.Enabled :=DirectoryExists(ExtractFilePath(Application.Exename)+kyuname);

始めたばかりは手探り状態で大変ですよね
がんばってくださいね(^ ^)/~

NOBB 2009/04/03(金) 22:01:51 <初心者>
回答ありがとうございます。

>TForm.OnCreateに書けばいいと思うよ
との事でしたので、、

type内?に
procedure OnCreate(Sender: TObject);

implementation内?に
procedure TForm1.OnCreate(Sender: TObject);
begin
  kyubtn.Enabled := False;
end;

と記述してみましたが無効になってくれません
なにか根本で違っていそうな気がしてはいるのですが分かりません。


>ボタンの有効・無効の処理は一行で書くとこうなるかな。

>kyubtn.Enabled :=DirectoryExists(ExtractFilePath(Application.Exename)+kyuname);

これは目からウロコでした
Bool返してくれるからこういう使い方もできるって勉強になります

基本がまだまだ 2009/04/03(金) 22:09:50
OnCreate(イベントハンドラ)のコードは手書きするんじゃなくて、
オブジェクトインスペクタで自動生成するのが普通だよ。

NOBB 2009/04/03(金) 22:20:23 <初心者>
回答ありがとうございます

目的の動作できました!
で、一応確認なのですが、、
オブジェクトインスペクタのOnCreateをダブルクリック

FormCreateができたので
>kyubtn.Enabled :=DirectoryExists(ExtractFilePath(Application.Exename)+kyuname);
を記述

としたのですがこれが普通という事でいいんでしょうか?

そうだね 2009/04/03(金) 22:28:10
オブジェクトインスペクタで自動生成すれば、
イベントとハンドラの関連付けまで自動的にやってくれるから便利。
手書きが必要なのは、実行時に動的生成する場合。

Mr.XRAY 2009/04/03(金) 22:33:39
Mr.XRAYと申します.

>としたのですがこれが普通という事でいいんでしょうか?

ダブルクリックでなくとも,自分で適当に名前をつけられます.
でも,可読性という意味でダブルクリックで自動的に出来た名前を,そのまま
利用するのがいい場合が多いようです.

こんなところが,少しは参考になれば幸いです
http://mrxray.on.coocan.jp/Others/A_UltraIntro01.htm

NOBB 2009/04/03(金) 22:35:17
[[解決]]

ありがとうございました

オブジェクトインスペクタに沢山イベントがあったので
今度はそのあたりから勉強して行こうと思います

これにて解決ということで
本当にありがとうございました

NOBB 2009/04/03(金) 22:39:47 <初心者>
あら(゜O゜;

Mr.XRAYさんありがとうございます
参考になるどころではないですね

今からそのようなサイト探しに行こうかとしていたところです
勉強させていただきます

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library