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

解決


NOBB  2009-04-04 06:24:25  No: 33876

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-04 06:38:26  No: 33877

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


ちなみに  2009-04-04 06:48:13  No: 33878

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

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

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


NOBB  2009-04-04 07:01:51  No: 33879

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

>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-04 07:09:50  No: 33880

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


NOBB  2009-04-04 07:20:23  No: 33881

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

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

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

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


そうだね  2009-04-04 07:28:10  No: 33882

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


Mr.XRAY  2009-04-04 07:33:39  No: 33883

Mr.XRAYと申します.

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

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

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


NOBB  2009-04-04 07:35:17  No: 33884

ありがとうございました

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

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


NOBB  2009-04-04 07:39:47  No: 33885

あら(゜O゜;

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加