Files
lazarus-ccr/components/cryptini/latest_stable/demo/umemoform.pas
gbamber 4bd9b0fd4b cryptini component initial commit
Component V 0.1.2.0
Demo V 0.1.2.0

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5487 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2016-12-14 13:19:41 +00:00

95 lines
1.9 KiB
ObjectPascal

unit umemoform;
{$mode objfpc}{$H+}
interface
uses
Forms, StdCtrls, SysUtils,
Buttons, Classes, Dialogs,Controls;
type
{ TShowINIForm }
TShowINIForm = class(TForm)
cmd_Abort: TBitBtn;
cmd_saveChanges: TButton;
cmd_Close: TBitBtn;
Memo_INI: TMemo;
procedure cmd_CloseClick(Sender: TObject);
procedure cmd_saveChangesClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Memo_INIChange(Sender: TObject);
private
public
bDirty: boolean;
sINIFilePath: string;
// Help = MakeReadonly, OpenINI = MakeWriteable
procedure MakeReadOnly;
procedure MakeWriteable;
end;
var
ShowINIForm: TShowINIForm;
implementation
// Uses umainform;
{$R *.lfm}
{ TShowINIForm }
procedure TShowINIForm.MakeReadOnly;
begin
Memo_INI.Readonly:=TRUE;
end;
procedure TShowINIForm.MakeWriteable;
begin
Memo_INI.Readonly:=FALSE;
end;
procedure TShowINIForm.cmd_saveChangesClick(Sender: TObject);
begin
if bDirty then
try
{$I+}
Memo_INI.Lines.SaveToFile(sINIFilePath);
ShowMessage('Changes saved OK.');
Close;
except
On E: Exception do
ShowMessageFmt('Oops! Error: %s', [E.Message]);
end;
end;
procedure TShowINIForm.cmd_CloseClick(Sender: TObject);
begin
if bDirty then
If MessageDlg('Discard changes?',mtConfirmation,[MBYES,MBNO],0,MBNO) = mrNo then
Begin
cmd_saveChanges.Click;
Exit;
end;
Close;
end;
procedure TShowINIForm.FormCreate(Sender: TObject);
begin
Icon := Application.Icon;
end;
procedure TShowINIForm.FormShow(Sender: TObject);
begin
bDirty := False;
cmd_saveChanges.Enabled := False;
end;
procedure TShowINIForm.Memo_INIChange(Sender: TObject);
begin
bDirty := True;
cmd_saveChanges.Enabled := True;
end;
end.