You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6666 8e941d3f-bd1b-0410-a28a-d453659cc2b4
308 lines
9.5 KiB
ObjectPascal
308 lines
9.5 KiB
ObjectPascal
{******************************************************************
|
|
|
|
JEDI-VCL Demo
|
|
|
|
Copyright (C) 2002 Project JEDI
|
|
|
|
Original author: Christopher Latta
|
|
|
|
Contributor(s):
|
|
|
|
You may retrieve the latest version of this file at the JEDI-JVCL
|
|
home page, located at http://jvcl.delphi-jedi.org
|
|
|
|
The contents of this file are used with permission, subject to
|
|
the Mozilla Public License Version 1.1 (the "License"); you may
|
|
not use this file except in compliance with the License. You may
|
|
obtain a copy of the License at
|
|
http://www.mozilla.org/MPL/MPL-1_1Final.html
|
|
|
|
Software distributed under the License is distributed on an
|
|
"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
implied. See the License for the specific language governing
|
|
rights and limitations under the License.
|
|
|
|
******************************************************************}
|
|
|
|
{
|
|
A demo for the JvValidateEdit component. You don't need to install the component
|
|
to run this demo, but the JvValidateEdit and the JvCharStrEditor units
|
|
must be in the same directory.
|
|
}
|
|
unit MainFrm;
|
|
|
|
{$MODE OBJFPC}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ComCtrls, Spin, ExtCtrls, ColorBox,
|
|
JvValidateEdit;
|
|
|
|
type
|
|
|
|
{ TfrmValidateEditDemo }
|
|
|
|
TfrmValidateEditDemo = class(TForm)
|
|
btnSetToPI: TButton;
|
|
GroupBox4: TGroupBox;
|
|
GroupBox1: TGroupBox;
|
|
Label1: TLabel;
|
|
Label3: TLabel;
|
|
cbDisplayFormat: TComboBox;
|
|
chkHasMaxValue: TCheckBox;
|
|
chkHasMinValue: TCheckBox;
|
|
seDecimalPlaces: TSpinEdit;
|
|
Label4: TLabel;
|
|
chkZeroEmpty: TCheckBox;
|
|
edCheckChars: TEdit;
|
|
GroupBox2: TGroupBox;
|
|
Label5: TLabel;
|
|
edSetTo: TEdit;
|
|
rgSetToType: TRadioGroup;
|
|
btnSetTo: TButton;
|
|
chkValueChanged: TCheckBox;
|
|
btnCheckChars: TButton;
|
|
Label6: TLabel;
|
|
Label7: TLabel;
|
|
edDisplayPrefix: TEdit;
|
|
edDisplaySuffix: TEdit;
|
|
btnSetDisplayPrefix: TButton;
|
|
btnSetDisplaySuffix: TButton;
|
|
edMaxValue: TEdit;
|
|
edMinValue: TEdit;
|
|
GroupBox3: TGroupBox;
|
|
edCPMaxValue: TEdit;
|
|
Label9: TLabel;
|
|
colCPAbove: TColorBox;
|
|
edCPMinValue: TEdit;
|
|
Label11: TLabel;
|
|
colCPBelow: TColorBox;
|
|
Label12: TLabel;
|
|
cbCPCheckPoints: TComboBox;
|
|
chkAsVariant: TCheckBox;
|
|
JvValidateEdit: TJvValidateEdit;
|
|
chkMaxValueIncluded: TCheckBox;
|
|
chkMinValueIncluded: TCheckBox;
|
|
procedure btnSetToPIClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure cbDisplayFormatKeyPress(Sender: TObject; var Key: Char);
|
|
procedure cbDisplayFormatChange(Sender: TObject);
|
|
procedure seDecimalPlacesChange(Sender: TObject);
|
|
procedure chkHasMaxValueClick(Sender: TObject);
|
|
procedure chkHasMinValueClick(Sender: TObject);
|
|
procedure btnSetToClick(Sender: TObject);
|
|
procedure chkZeroEmptyClick(Sender: TObject);
|
|
procedure btnCheckCharsClick(Sender: TObject);
|
|
procedure btnSetDisplayPrefixClick(Sender: TObject);
|
|
procedure btnSetDisplaySuffixClick(Sender: TObject);
|
|
procedure edCPMaxValueExit(Sender: TObject);
|
|
procedure edCPMinValueExit(Sender: TObject);
|
|
procedure colCPAboveChange(Sender: TObject);
|
|
procedure colCPBelowChange(Sender: TObject);
|
|
procedure cbCPCheckPointsChange(Sender: TObject);
|
|
procedure edMaxValueExit(Sender: TObject);
|
|
procedure edMinValueExit(Sender: TObject);
|
|
procedure JvValidateEditCustomValidate(Sender: TObject; Key: Char;
|
|
const AText: String; const Pos: Integer; var IsValid: Boolean);
|
|
procedure JvValidateEditValueChanged(Sender: TObject);
|
|
procedure chkMaxValueIncludedClick(Sender: TObject);
|
|
procedure chkMinValueIncludedClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmValidateEditDemo: TfrmValidateEditDemo;
|
|
|
|
implementation
|
|
uses
|
|
TypInfo,
|
|
JvJCLUtils, JvJVCLUtils; // for D5
|
|
|
|
{$R *.lfm}
|
|
|
|
|
|
procedure TfrmValidateEditDemo.FormCreate(Sender: TObject);
|
|
var
|
|
df: TJvValidateEditDisplayFormat;
|
|
cp: TJvValidateEditCriticalPointsCheck;
|
|
begin
|
|
for df := Low(TJvValidateEditDisplayFormat) to High(TJvValidateEditDisplayFormat) do
|
|
cbDisplayFormat.Items.Add(GetEnumName(TypeInfo(TJvValidateEditDisplayFormat), Ord(df)));
|
|
cbDisplayFormat.ItemIndex := ord(dfFloat);
|
|
cbDisplayFormatChange(Self);
|
|
|
|
for cp := Low(TJvValidateEditCriticalPointsCheck) to High(TJvValidateEditCriticalPointsCheck) do
|
|
cbCPCheckPoints.Items.Add(GetEnumName(TypeInfo(TJvValidateEditCriticalPointsCheck), Ord(cp)));
|
|
cbCPCheckPoints.ItemIndex := 0;
|
|
|
|
edCPMaxValue.Text := FloatToStr(JvValidateEdit.CriticalPoints.MaxValue);
|
|
edCPMinValue.Text := FloatToStr(JvValidateEdit.CriticalPoints.MinValue);
|
|
|
|
colCPAbove.Selected := JvValidateEdit.CriticalPoints.ColorAbove;
|
|
colCPBelow.Selected := JvValidateEdit.CriticalPoints.ColorBelow;
|
|
colCPAbove.OnChange := @colCPAboveChange;
|
|
colCPBelow.OnChange := @colCPBelowChange;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.btnSetToPIClick(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.AsFloat := pi;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.cbDisplayFormatKeyPress(Sender: TObject; var Key: Char);
|
|
begin
|
|
if Key = #13 then
|
|
cbDisplayFormatChange(Sender);
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.cbDisplayFormatChange(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.DisplayFormat := TJvValidateEditDisplayFormat(cbDisplayFormat.ItemIndex);
|
|
edCheckChars.Text := JvValidateEdit.CheckChars;
|
|
btnCheckChars.Enabled := (cbDisplayFormat.Text = 'dfCheckChars') or (cbDisplayFormat.Text = 'dfNonCheckChars');
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.seDecimalPlacesChange(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.DecimalPlaces := seDecimalPlaces.Value;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.chkHasMaxValueClick(Sender: TObject);
|
|
begin
|
|
// NOTE: StrToFloatDefIgnoreInvalidCharacters now called JvSafeStrToFloatDef:
|
|
JvValidateEdit.MaxValue := StrToFloatDef(edMaxValue.Text, 0);
|
|
JvValidateEdit.HasMaxValue := chkHasMaxValue.Checked;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.chkHasMinValueClick(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.MinValue := StrToFloatDef(edMinValue.Text, 0);
|
|
JvValidateEdit.HasMinValue := chkHasMinValue.Checked;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.btnSetToClick(Sender: TObject);
|
|
begin
|
|
case rgSetToType.ItemIndex of
|
|
0:
|
|
if chkAsVariant.Checked then
|
|
JvValidateEdit.Value := StrToCurrDef(edSetTo.Text, 0)
|
|
else
|
|
JvValidateEdit.AsCurrency := StrToCurrDef(edSetTo.Text, 0);
|
|
1:
|
|
if chkAsVariant.Checked then
|
|
JvValidateEdit.Value := StrToFloatDef(edSetTo.Text, 0)
|
|
else
|
|
JvValidateEdit.AsFloat := StrToFloatDef(edSetTo.Text, 0);
|
|
2:
|
|
if chkAsVariant.Checked then
|
|
JvValidateEdit.Value := StrToIntDef(edSetTo.Text, 0)
|
|
else
|
|
JvValidateEdit.AsInteger := StrToIntDef(edSetTo.Text, 0);
|
|
3:
|
|
if chkAsVariant.Checked then
|
|
JvValidateEdit.Value := edSetTo.Text
|
|
else
|
|
JvValidateEdit.Text := edSetTo.Text;
|
|
end;
|
|
edSetTo.SetFocus;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.chkZeroEmptyClick(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.ZeroEmpty := chkZeroEmpty.Checked;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.btnCheckCharsClick(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.CheckChars := edCheckChars.Text;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.btnSetDisplayPrefixClick(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.DisplayPrefix := edDisplayPrefix.Text;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.btnSetDisplaySuffixClick(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.DisplaySuffix := edDisplaySuffix.Text;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.edCPMaxValueExit(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.CriticalPoints.MaxValue := StrToFloatDef(edCPMaxValue.Text, 0);
|
|
edCPMaxValue.Text := FloatToStr(JvValidateEdit.CriticalPoints.MaxValue);
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.edCPMinValueExit(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.CriticalPoints.MinValue := StrToFloatDef(edCPMinValue.Text, 0);
|
|
edCPMinValue.Text := FloatToStr(JvValidateEdit.CriticalPoints.MinValue);
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.colCPAboveChange(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.CriticalPoints.ColorAbove := colCpAbove.Selected;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.colCPBelowChange(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.CriticalPoints.ColorBelow := colCpBelow.Selected;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.cbCPCheckPointsChange(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.CriticalPoints.CheckPoints :=
|
|
TJvValidateEditCriticalPointsCheck(cbCPCheckPoints.ItemIndex);
|
|
end;
|
|
|
|
|
|
procedure TfrmValidateEditDemo.edMaxValueExit(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.MaxValue := StrToFloatDef(edMaxValue.Text, 0);
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.edMinValueExit(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.MinValue := StrToFloatDef(edMinValue.Text, 0);
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.JvValidateEditCustomValidate(
|
|
Sender: TObject; Key: Char; const AText: String; const Pos: Integer;
|
|
var IsValid: Boolean);
|
|
|
|
function KeyOrAscii(Key: Char): string;
|
|
begin
|
|
if Key < #32 then
|
|
Result := Format('#%s', [Key])
|
|
else
|
|
Result := Key;
|
|
end;
|
|
|
|
begin
|
|
IsValid := MessageDlg(Format('Accept this key: %s?', [KeyOrAscii(Key)]), mtConfirmation, [mbYes, mbNo], 0) = mrYes;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.JvValidateEditValueChanged(Sender: TObject);
|
|
begin
|
|
if chkValueChanged.Checked then
|
|
MessageDlg('ValidateEdit Text changed to: ' + JvValidateEdit.Text,
|
|
mtInformation, [mbOK], 0);
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.chkMaxValueIncludedClick(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.CriticalPoints.MaxValueIncluded := chkMaxValueIncluded.Checked;
|
|
end;
|
|
|
|
procedure TfrmValidateEditDemo.chkMinValueIncludedClick(Sender: TObject);
|
|
begin
|
|
JvValidateEdit.CriticalPoints.MinValueIncluded := chkMinValueIncluded.Checked;
|
|
end;
|
|
|
|
end.
|