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

解決


NOBB  2009-04-03 21:24:25  No: 33876  IP: 192.*.*.*

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  No: 33877  IP: 192.*.*.*

TForm.OnCreateに書けばいいと思うよ

編集 削除
ちなみに  2009-04-03 21:48:13  No: 33878  IP: 192.*.*.*

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

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

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

編集 削除
NOBB  2009-04-03 22:01:51  No: 33879  IP: 192.*.*.*

回答ありがとうございます。

>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  No: 33880  IP: 192.*.*.*

OnCreate(イベントハンドラ)のコードは手書きするんじゃなくて、
オブジェクトインスペクタで自動生成するのが普通だよ。

編集 削除
NOBB  2009-04-03 22:20:23  No: 33881  IP: 192.*.*.*

回答ありがとうございます

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

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

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

編集 削除
そうだね  2009-04-03 22:28:10  No: 33882  IP: 192.*.*.*

オブジェクトインスペクタで自動生成すれば、
イベントとハンドラの関連付けまで自動的にやってくれるから便利。
手書きが必要なのは、実行時に動的生成する場合。

編集 削除
Mr.XRAY  2009-04-03 22:33:39  No: 33883  IP: 192.*.*.*

Mr.XRAYと申します.

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

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

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

編集 削除
NOBB  2009-04-03 22:35:17  No: 33884  IP: 192.*.*.*

ありがとうございました

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

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

編集 削除
NOBB  2009-04-03 22:39:47  No: 33885  IP: 192.*.*.*

あら(゜O゜;

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

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

編集 削除