時・分・秒を表示するには?

解決


AN  2012-05-29 03:55:29  No: 42352  IP: [192.*.*.*]

時・分・秒  を表示するコンポーネントを探しております。
パネルにコンポーネントを貼り付けた時点で時間が経過するようなものです。
どなたか、ご教示下さい。

編集    削除
Quest  2012-05-29 04:48:44  No: 42353  IP: [192.*.*.*]

デザイン時にも現在時刻を表示し続けるとなると
専用のコンポーネントが必要ですが
単純に時分秒の表示だけなら難しいものではないですよ。
TLabel(TEditでもいいです)とTTimerをフォームに貼り付けて
TTimerのIntervalプロパティを1000
EnabledプロパティをTrueにして
OnTimerイベントで
Label1.Caption := TimeToStr(Now);
とするだけです。
コンポーネントになっていなければならない理由があるなら仕方ないですが
タイマーとラベルやエディットを使った方が自分の好き勝手ができると思います。

編集    削除
KHE00221  2012-05-29 06:15:33  No: 42354  IP: [192.*.*.*]

簡単に・・・

  TTimeLabel = class(Vcl.StdCtrls.TLabel)
  private
    FTimer: TTimer;
  protected
    procedure TimerOnTimer(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
  end;


constructor TTimeLabel.Create(AOwner: TComponent);
begin
    inherited Create(AOwner);
    FTimer := TTimer.Create(Self);
    FTimer.OnTimer := TimerOnTimer;
end;

destructor TTimeLabel.Destroy;
begin
    FTimer.Free;
    inherited Destroy;
end;

procedure TTimeLabel.TimerOnTimer(Sender: TObject);
begin
    Caption := TimeToStr(Now);
end;

編集    削除
AN  2012-05-29 19:45:27  No: 42355  IP: [192.*.*.*]

Quest様  KHE00221様
コンポーネントでなければいけなかった理由です。
□現在バージョンアップ作業中□
前任者が各プログラムで時間表示のコンポーネントを使用していた為です。
※上記コンポーネントソースが紛失して移行できなかった。
各プログラムを修正する事にしました。コンポーネントにこだわりすぎていたと思います。

Quest様 KHE00221様 ありがとうございました。

編集    削除