diff options
author | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-08-25 14:58:28 +0000 |
---|---|---|
committer | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-08-25 14:58:28 +0000 |
commit | a88f8e00c7094d32411871d3993654f326563e3b (patch) | |
tree | a030e9a89fac72e6d01fc72a2b180a064c75b93c /extras/tiopf/demos/EditControlsDemo/frmMain.pas | |
parent | 6106c289874b0205aaebbf37a78ccc23fb7ff5c4 (diff) | |
download | fpGUI-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.pas | 75 |
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; |