トライアルプログラム

解決


ヒロポン  2008-09-08 16:32:52  No: 31880  IP: 192.*.*.*

最初に起動してから1週間で動かなくしたいのですいがどのような方法がよいでしょうか?できるだけ簡単な方法がよいのですが、サンプルと共に宜しくお願いします。

編集 削除
igy  2008-09-08 16:40:18  No: 31881  IP: 192.*.*.*

・最初に起動した日時をレジストリかファイルに保存。
・プログラム起動時に、経過日時を調べ、指定の日時を過ぎていたら、プログラム終了
でどうですか?

編集 削除
は?  2008-09-08 16:43:12  No: 31882  IP: 192.*.*.*

方法:レジストリに保存する
・起動時にレジストリに実行日が記述されているか確認する

日付がある場合
・現在の実行日から一週間経過しているか確認し、経過している場合終了する
  経過していないなら、そのまま起動する

日付がない場合
・日付を書き込んで、起動する

TRegistry クラスを使いましょう

終了

編集 削除
ヒロポン  2008-09-08 17:01:16  No: 31883  IP: 192.*.*.*

レジストリに書き込むのは良い方法とおもったのですが、インストール不要にしたいため、VISTAでは少し厄介になってしまうので。

隠しファイルか何かにしようかと思います、一週間経過したかどうかを確認する部分はどうすればよいでしょうか?

編集 削除
igy  2008-09-08 17:26:50  No: 31884  IP: 192.*.*.*

>一週間経過したかどうかを確認する部分はどうすればよいでしょうか?

最初に起動した日時と、プログラムを起動した日時
を比較するのはどうですか?

編集 削除
めるめる  2008-09-08 17:34:29  No: 31885  IP: 192.*.*.*

> レジストリに書き込むのは良い方法とおもったのですが、
> インストール不要にしたいため、VISTAでは少し厄介になってしまうので。
当方、VISTA(Business) + D2007 ですが、インストールしなくても
 *.exe ファイルのコピーだけで特に問題なく動作していますよ。


>一週間経過したかどうかを確認する部分はどうすればよいでしょうか?
WithinPastDays 関数
WithinPastDays 関数は,2 つの日付が互いに指定された日数内にあるかどうかを示します。

IncDay 関数
IncDay 関数は,指定された日数で変更された日付を返します。

辺りを使用するとよいかも・・・。

編集 削除
igy  2008-09-08 17:37:03  No: 31886  IP: 192.*.*.*

DaysBetween 関数というのもあるみたいです。(Delphi7以降?)

編集 削除
ヒロポン  2008-09-08 19:55:28  No: 31887  IP: 192.*.*.*

DaysBetweenですかなるほど。

DaysBetween(FromDate, ToDate);
なんとなくはわかるのですが、月を跨ぐときどうするのでしょうか?

できれば、今日より一週間たったことがわかるようなサンプルいただけませんか?

編集 削除
くげん  2008-09-08 20:26:11  No: 31888  IP: 192.*.*.*

>できれば、今日より一週間たったことがわかるようなサンプルいただけませんか?
キミはヘルプを見たことないの? 見ようとも思わないの?
ヘルプを見ればすぐに分かるようなこと、関数を二つほど使えば済むようなことにサンプルを欲しがるとは...
ちなみに、WithinPastDays関数は 日数の差を求めるのに DaysBetween関数を使ってることがヘルプを見れば分かるし、TDateTime型は月を跨ごうが年を跨ごうが関係ないよ。

編集 削除
igy  2008-09-08 20:26:19  No: 31889  IP: 192.*.*.*

>月を跨ぐときどうするのでしょうか?

月を跨いでも大丈夫だと思います。

>できれば、今日より一週間たったことがわかるようなサンプルいただけませんか?

まずは、ヒロポン さん自身で、
わかるところまで、プログラムを作成してみるのはいかがですか?

編集 削除
igy  2008-09-08 20:42:41  No: 31890  IP: 192.*.*.*

ちなみに、現在の日時などは、Now 関数(日付部分だけならDate 関数)でよいかと思います。

編集 削除
ヒロポン  2008-09-08 20:50:14  No: 31891  IP: 192.*.*.*

非常に素人でもうしわけございません。


var
day1, day2, day3: TDate;//日にち
begin
//日にち計算部分
day1 := StrToDate('2002/11/23');
day2 := StrToDate('2003/11/24');
day3 := day2 - day1;
ShowMessage(Format('%.1f', [day3]));

これで、日にちの計算はできたのですが、、、、
現在の日にち+7日ってのはどうしたらよいでしょうか?

編集 削除
igy  2008-09-08 20:54:24  No: 31892  IP: 192.*.*.*

>現在の日にち+7日ってのはどうしたらよいでしょうか?

Now 関数 か Date 関数 の戻り値   + 7  
でどうでしょう?

編集 削除
ヒロポン  2008-09-08 21:01:33  No: 31893  IP: 192.*.*.*

Now や  Date  の値に+7したら  37日とかにならないですか?

編集 削除
igy  2008-09-08 21:06:11  No: 31894  IP: 192.*.*.*

>Now や  Date  の値に+7したら  37日とかにならないですか?

なりません。

編集 削除
ヒロポン  2008-09-08 22:12:30  No: 31895  IP: 192.*.*.*

できまひた。。。。

編集 削除
ヒロポン  2008-09-08 22:12:45  No: 31896  IP: 192.*.*.*

できまひた。。。。

編集 削除