lazarus/tools/jsonviewer/frmheader.pp
michael 35068a948a * Add REST Server querying capabilities
git-svn-id: trunk@57974 -
2018-05-19 11:37:08 +00:00

111 lines
2.3 KiB
ObjectPascal

unit frmheader;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ButtonPanel, IniPropStorage;
type
{ THeaderForm }
THeaderForm = class(TForm)
BPHeader: TButtonPanel;
CBName: TComboBox;
CBValue: TComboBox;
PSHeaders: TIniPropStorage;
LCBName: TLabel;
LCBValue: TLabel;
procedure CBNameChange(Sender: TObject);
procedure CBValueChange(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure FormShow(Sender: TObject);
private
procedure CheckOK;
function GetComboBox(AIndex: Integer): TCombobox;
function GetString(AIndex: Integer): String;
procedure SetString(AIndex: Integer; AValue: String);
function ValidInput: Boolean;
public
Property HeaderName : String Index 1 Read GetString Write SetString;
Property HeaderValue : String Index 2 Read GetString Write SetString;
end;
var
HeaderForm: THeaderForm;
implementation
{$R *.lfm}
{ THeaderForm }
function THeaderForm.ValidInput : Boolean;
begin
Result:=(CBName.Text<>'')
and (CBValue.Text<>'')
and (Pos(':',CBName.Text)=0);
end;
procedure THeaderForm.CheckOK;
begin
BPHeader.OKButton.Enabled:=ValidInput;
end;
function THeaderForm.GetComboBox(AIndex: Integer): TCombobox;
begin
Case AIndex Of
1 : Result:=CBName;
2 : Result:=CBValue;
end;
end;
function THeaderForm.GetString(AIndex: Integer): String;
begin
Result:=GetComboBox(AIndex).Text;
end;
procedure THeaderForm.SetString(AIndex: Integer; AValue: String);
begin
GetComboBox(AIndex).Text:=AValue;
end;
procedure THeaderForm.CBNameChange(Sender: TObject);
begin
CheckOK;
end;
procedure THeaderForm.CBValueChange(Sender: TObject);
begin
CheckOK;
end;
procedure THeaderForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
With CBName do
if Items.IndexOf(Text)=-1 then
Items.Add(Text);
With CBValue do
if Items.IndexOf(Text)=-1 then
Items.Add(Text);
end;
procedure THeaderForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
begin
CanClose:=(ModalResult<>mrOK) or ValidInput;
end;
procedure THeaderForm.FormShow(Sender: TObject);
begin
CheckOK;
end;
end.