unit untEditInfo;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, DB, SQLDB, Forms, Controls, Graphics, Dialogs, DBCtrls,
StdCtrls;
type
{ TfrmEditInfo }
TfrmEditInfo = class(TForm)
btnSave: TButton;
btnAbort: TButton;
DBWrite: TDataSource;
dbcbxGender: TDBComboBox;
DBData: TDataSource;
dbedtAge: TDBEdit;
dbedtemail: TDBEdit;
dbedtPhone: TDBEdit;
dbedtGiven: TDBEdit;
dbedtFamily: TDBEdit;
dbmemNotes: TDBMemo;
dbmemPostal: TDBMemo;
lblEmail: TLabel;
lblAge: TLabel;
lblPhone: TLabel;
lblGiven: TLabel;
lbFamily: TLabel;
lblGender: TLabel;
lblPostal: TLabel;
lblNotes: TLabel;
ReadQuery: TSQLQuery;
WriteQuery: TSQLQuery;
procedure btnAbortClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure DataChanged(Sender: TObject);
procedure SetupForm(strMode, strID : string);
private
public
end;
var
frmEditInfo: TfrmEditInfo;
implementation
var
strFormMode : string;
intPersonNo : integer;
boolChanged : Boolean;
{ TfrmEditInfo }
procedure TfrmEditInfo.btnAbortClick(Sender: TObject);
begin
if (boolChanged) then
if (MessageDlg('Confirm Close', 'Really Close? Any unsaved data will be lost!', mtWarning, [mbYes,mbNo], 0) = mrYes) then
close();
end;
procedure TfrmEditInfo.btnSaveClick(Sender: TObject);
procedure SetInfoField(strFld, strVal : string);
begin
WriteQuery.FieldByName(strFld).AsString:=strVal;
end;
procedure SetInfoField(strFld : String; intVal : integer);
begin
WriteQuery.FieldByName(strFld).AsInteger:=intVal;
end;
begin
boolChanged := False;
WriteQuery.Close();
WriteQuery.SQL.Text := ReadQuery.SQL.Text;
WriteQuery.Open();
if (strFormMode = 'NEW') then
begin
WriteQuery.Insert();
SetInfoField('IDNo', IntPersonNo);
end
else
WriteQuery.Edit;
SetInfoField('GivenName', dbedtGiven.text);
SetInfoField('FamilyName', dbedtFamily.Text);
SetInfoField('phone', dbedtPhone.Text);
SetInfoField('postal', dbmemPostal.Text);
SetInfoField('gender', dbcbxGender.Text);
SetInfoField('email', dbedtEmail.Text);
SetInfoField('age', StrToInt(dbedtAge.Text));
SetInfoField('notes', dbmemNotes.Text);
WriteQuery.Post();
WriteQuery.ApplyUpdates();
Close();
end;
procedure TfrmEditInfo.DataChanged(Sender: TObject);
begin
BoolChanged:=True;
end;
procedure TfrmEditInfo.SetupForm(strMode, strID : string);
begin
strFormMode:=strMode;
intPersonNo:=StrToInt(strID);
if (strFormMode = 'EDIT') then
begin
ReadQuery.SQL.Text:='select * from Contact where IDNo = ' + strID;
ReadQuery.Open();
end;
end;
{$R *.lfm}
end.