デフォルト値を保存しておくには?


TOT  2004-05-07 03:16:45  No: 8827

フォーム上にエディットを用意し、デフォルトテキストとしてtestと入れて
おくとします。
特になにもイベントが発生することなく、このデフォルト値を保存しておく
ことができますか?
やりたいことは、更新ボタンとキャンセルボタンを作っておいて、キャンセ
ルしたときはデフォルト値がそのまま残っていてほしいというようなことで
す。
よろしくお願いします。


つっか  2004-05-07 03:40:20  No: 8828

設計時に設定したデフォルト値は、実行中に変更しなければそのままですけど。
質問の意味がよく理解できないのですが。


るるとん@K  2004-05-07 03:44:56  No: 8829

ようわからんけど、デフォルト値をグローバル変数に代入か宣言すればええんじゃないん?


るるとん@K  2004-05-07 03:46:12  No: 8830

設定変更ダイアログか何かなら、ModalResultにより[更新]クリック時のみ変更処理を行えば良いわけですが


マンドクセ  2004-05-07 05:37:19  No: 8831

全然違うかもしれませんが、こんなんでいいんだろうか。
あんまりプログラム得意じゃないけど。
フォーム上にEdit3つとButton2つあります。
キャンセルボタン押すと、Editの中身を変更しても更新ボタン押した直後
に戻ります。

これだと、exeのあるフォルダに'Edits.edi'がないときに
キャンセルボタンを押すとエラーになりますけど。
初めて起動するときだけ1回だけ更新ボタン押して'Edits.edi'を作成してくだされ。マンドクセ('A`)んで察しください。
配列の要素が文字列なのになぜバイナリで保存したかというのも、
マンドクセ('A`)んで無視してください。
プログラムに問題があればフォローしてください。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TEdits = record
    a : string[100];
    b : string[100];
    c : string[100];
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BinarySave;
  private
    { Private 宣言 }
    Edits : TEdits;
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BinarySave;
var
  fs : TFileStream;
  fn : String;
begin
  Edits.a := Edit1.Text;
  Edits.b := Edit2.Text;
  Edits.c := Edit3.Text;

  fn := ExtractFilePath(Application.ExeName) + 'Edits.edi' ;
  fs := TFileStream.Create(fn , fmCreate);
  try
    fs.WriteBuffer(Edits, SizeOf(TEdits));
  finally
    fs.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  BinarySave;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  fs : TFileStream;
  fn : String;
begin
  fn := ExtractFilePath(Application.ExeName) + 'Edits.edi' ;
  fs := TFileStream.Create(fn , fmOpenRead);
  try
    fs.ReadBuffer(Edits, SizeOf(TEdits));
    Edit1.Text := Edits.a;
    Edit2.Text := Edits.b;
    Edit3.Text := Edits.c;
  finally
    fs.Free;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  BinarySave;
end;

end.


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

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






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