Le 08/11/2012 16:28, Timothy Groves a ?crit :
Show quoted text 11 lines
I have a program which allows you to edit records. This is done using a
dynamic array of records, with three strings in each record. I have
been using TEdits to allow the user to edit the records. The record is
updated during TEdit.OnChange.
Unfortunately, whenever I push the data *from* a selected record *to*
the form, TEdit.OnChange triggers, which tends to corrupt my data. I
tried disabling the TEdit, using TEdit.Enabled := false, but the event
still triggers.
Any suggestions?
Yep.
On all "controlled" TEdit components setup a OnEnter, OnChange and OnExit event
Remove the OnChange event from the component events list but leave the code in the unit anyway. Then fill in the following: (assume TMyEdit is one of the components)
TMyForm.MyEditOnEnter(Sender: TObject);
begin
MyDedit.OnChange := @MyEditChange;
end;
TMyForm.MyEditOnChange(Sender: TObject);
begin
do whatever you need to when Edit changes
end;
TMyForm.MyEditOnExit(Sender: TObject);
begin
MyDedit.OnChange := nil
end;
When you fill in data from the program code the events are not fired. But they are when the use enters someting in them.
Show quoted text 9 lines