Le 08/11/2012 16:28, Timothy Groves a écrit :
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.




--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus




--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to