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;
このような事がしたいのです。
これでは当然ですがボタンが押された後無効になります。
起動時にフォルダが無ければ無効にする方法を教えてください。
TForm.OnCreateに書けばいいと思うよ
ボタンの有効・無効の処理は一行で書くとこうなるかな。
kyubtn.Enabled :=DirectoryExists(ExtractFilePath(Application.Exename)+kyuname);
始めたばかりは手探り状態で大変ですよね
がんばってくださいね(^ ^)/~
回答ありがとうございます。
>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返してくれるからこういう使い方もできるって勉強になります
OnCreate(イベントハンドラ)のコードは手書きするんじゃなくて、
オブジェクトインスペクタで自動生成するのが普通だよ。
回答ありがとうございます
目的の動作できました!
で、一応確認なのですが、、
オブジェクトインスペクタのOnCreateをダブルクリック
↓
FormCreateができたので
>kyubtn.Enabled :=DirectoryExists(ExtractFilePath(Application.Exename)+kyuname);
を記述
としたのですがこれが普通という事でいいんでしょうか?
オブジェクトインスペクタで自動生成すれば、
イベントとハンドラの関連付けまで自動的にやってくれるから便利。
手書きが必要なのは、実行時に動的生成する場合。
Mr.XRAYと申します.
>としたのですがこれが普通という事でいいんでしょうか?
ダブルクリックでなくとも,自分で適当に名前をつけられます.
でも,可読性という意味でダブルクリックで自動的に出来た名前を,そのまま
利用するのがいい場合が多いようです.
こんなところが,少しは参考になれば幸いです
http://mrxray.on.coocan.jp/Others/A_UltraIntro01.htm
ありがとうございました
オブジェクトインスペクタに沢山イベントがあったので
今度はそのあたりから勉強して行こうと思います
これにて解決ということで
本当にありがとうございました
あら(゜O゜;
Mr.XRAYさんありがとうございます
参考になるどころではないですね
今からそのようなサイト探しに行こうかとしていたところです
勉強させていただきます
ツイート | ![]() |