summaryrefslogtreecommitdiff
path: root/extras/tiopf/demos/EditControlsDemo/frmMain.pas
diff options
context:
space:
mode:
authorgraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2008-08-25 14:58:28 +0000
committergraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2008-08-25 14:58:28 +0000
commita88f8e00c7094d32411871d3993654f326563e3b (patch)
treea030e9a89fac72e6d01fc72a2b180a064c75b93c /extras/tiopf/demos/EditControlsDemo/frmMain.pas
parent6106c289874b0205aaebbf37a78ccc23fb7ff5c4 (diff)
downloadfpGUI-a88f8e00c7094d32411871d3993654f326563e3b.tar.xz
* published OnEnter and OnExit it TfpgComboBox
* published OnEnter and OnExit it TfpgEditComboBox * published OnEnter and OnExit it TfpgTrackBar * Changed GUIFieldName in TMediatorComboBoxView to 'Text' to fix bug in mediator observing text property. * Changed GUIFieldName in TMediatorItemComboBoxView to 'FocusItem' * Added a public visible RegisterFallBackMediators procedure which can be called by the developer as a fallback for generic mediator handling. * Implemented the missing SetupGUIandObject in TMediatorComboBoxView which now makes it work. * tiOPF mediator demo: removed debug output * tiOPF mediator demo: cleaned up the Model_View unit. This removed a huge amount of code. Awesome! * tiOPF mediator demo: cleaned up the frmMain unit. This removed plenty of code. I also fixed up the package requirements or the project.
Diffstat (limited to 'extras/tiopf/demos/EditControlsDemo/frmMain.pas')
-rw-r--r--extras/tiopf/demos/EditControlsDemo/frmMain.pas75
1 files changed, 3 insertions, 72 deletions
diff --git a/extras/tiopf/demos/EditControlsDemo/frmMain.pas b/extras/tiopf/demos/EditControlsDemo/frmMain.pas
index d6e416de..7e85f4a2 100644
--- a/extras/tiopf/demos/EditControlsDemo/frmMain.pas
+++ b/extras/tiopf/demos/EditControlsDemo/frmMain.pas
@@ -17,7 +17,6 @@ type
Label1: TfpgLabel;
Label2: TfpgLabel;
edtName: TfpgEdit;
-// edtAge: TSpinEdit;
AgeTrackBar: TfpgTrackBar;
memMemo: TfpgMemo;
cbGender: TfpgComboBox;
@@ -27,23 +26,12 @@ type
FPerson: TPerson;
{ Form Mediator }
FMediator: TFormMediator;
- { Edit mediators }
-// FEditNameMediator: TMediatorEditView;
-//// FSpinEditAgeMediator: TMediatorSpinEditView;
-// FTrackBarAgeMediator: TMediatorTrackBarView;
-// FMemoNameMediator: TMediatorMemoView;
-// FComboBoxGenderMediator: TMediatorComboBoxView;
procedure btnCloseClick(Sender: TObject);
procedure btnShowModelClick(Sender: TObject);
procedure btnViaCodeClick(Sender: TObject);
- procedure edtNameChange(Sender: TObject);
- procedure edtAgeChange(Sender: TObject);
- procedure AgeTrackBarChange(Sender: TObject; APosition: integer);
- procedure cbGenderChange(Sender: TObject);
procedure InitializeComponents;
procedure SetupMediators;
- procedure SetupEventHandlers;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
@@ -76,27 +64,6 @@ begin
FPerson.Gender := genFemale;
end;
-procedure TMainForm.edtNameChange(Sender: TObject);
-begin
- //FEditNameMediator.GUIChanged;
-end;
-
-procedure TMainForm.edtAgeChange(Sender: TObject);
-begin
-// FSpinEditAgeMediator.GUIChanged;
-end;
-
-procedure TMainForm.AgeTrackBarChange(Sender: TObject; APosition: integer);
-begin
- //FTrackBarAgeMediator.GUIChanged;
-end;
-
-procedure TMainForm.cbGenderChange(Sender: TObject);
-begin
- //writeln('cbGenderChange');
- //FComboBoxGenderMediator.GUIChanged;
-end;
-
procedure TMainForm.InitializeComponents;
begin
Label1 := TfpgLabel.Create(self);
@@ -177,17 +144,6 @@ begin
TabOrder := 3;
end;
-{
- object edtAge: TSpinEdit
- Left = 64
- Height = 22
- Top = 40
- Width = 100
- MaxValue = 0
- TabOrder = 4
- end
-}
-
AgeTrackBar := TfpgTrackBar.Create(self);
with AgeTrackBar do
begin
@@ -195,10 +151,7 @@ begin
Height := 41;
Top := 72;
Width := 150;
-// ScrollStep := 10;
-// Frequency := 10;
Max := 100;
-// ScalePos := trTop;
ShowPosition := True;
TabOrder := 5;
end;
@@ -219,9 +172,6 @@ begin
Left := 264;
Height := 21;
Top := 96;
-// Width := 145;
-// AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending];
-// MaxLength := 0;
TabOrder := 7;
end;
end;
@@ -229,16 +179,12 @@ end;
procedure TMainForm.SetupMediators;
begin
{
- FEditNameMediator := TPerson_Name_TextEdit_View.CreateCustom(edtName, FPerson, 'Name', 'Text');
-// FSpinEditAgeMediator := TPerson_Age_SpinEdit_View.CreateCustom(edtAge, FPerson, 'Age', 'Value');
- FTrackBarAgeMediator := TPerson_Age_TrackBar_Mediator.CreateCustom(AgeTrackBar, FPerson, 'Age', 'Position');
- FMemoNameMediator := TPerson_Name_Memo_Mediator.CreateCustom(memMemo, FPerson, 'Name', '');
FComboBoxGenderMediator := TPerson_Gender_ComboBox_Mediator.CreateCustom(cbGender, FPerson, 'GenderGUI', 'Text');
}
if not Assigned(FMediator) then
begin
FMediator := TFormMediator.Create(self);
- FMediator.Name := 'DemoMediator';
+ FMediator.Name := 'DemoFormMediator';
FMediator.AddProperty('Name', edtName);
FMediator.AddProperty('Age', AgeTrackBar);
FMediator.AddProperty('Name', memMemo);
@@ -248,15 +194,6 @@ begin
FMediator.Active := True;
end;
-procedure TMainForm.SetupEventHandlers;
-begin
- { Setup generic OnChange event for all GUI controls. }
- edtName.OnChange := @edtNameChange;
-// edtAge.OnChange := @edtAgeChange;
- AgeTrackBar.OnChange := @AgeTrackBarChange;
- cbGender.OnChange := @cbGenderChange;
-end;
-
constructor TMainForm.Create(AOwner: TComponent);
var
i: TGender;
@@ -279,13 +216,7 @@ end;
destructor TMainForm.Destroy;
begin
- { free mediators - they will detach themselves }
-// FEditNameMediator.Free;
-//// FSpinEditAgeMediator.Free;
-// FTrackBarAgeMediator.Free;
-// FMemoNameMediator.Free;
-// FComboBoxGenderMediator.Free;
-
+ // TFormMediator (FMediator) get free'd automatically because it's a TComponent
FPerson.Free;
inherited Destroy;
end;
@@ -296,7 +227,7 @@ begin
{ The only trick here is to not let the OnChange events fire
before the mediators are not set up!! }
SetupMediators;
- SetupEventHandlers;
+
// This will cause all components to update at once
FPerson.NotifyObservers;
end;