Взаимосвязанные объекты

ova
Дата: 15.11.2007 14:02:02
Есть два взаимосвязанных объекта, скажем два поля в таблице, у каждого есть событие OnChange, где прописано изменение второго поля, а во втором наоборот изменение первого поля. Задача - уйти от зацикливания. Сейчас конечно решается но на мой взгляд всякими корявыми способами, может кто знает как правильно это сделать?
Ega
Дата: 15.11.2007 14:05:54
ova
Есть два взаимосвязанных объекта, скажем два поля в таблице, у каждого есть событие OnChange, где прописано изменение второго поля, а во втором наоборот изменение первого поля. Задача - уйти от зацикливания. Сейчас конечно решается но на мой взгляд всякими корявыми способами, может кто знает как правильно это сделать?


Ну флажок проставлять на разрешение модификации.
Что-то типа
procedure OnChangeMyObject
begin
  LockFL := True;
  try
 
  finally
    LockFL := False;
  end; 
end;

procedure FriendObjectChanged
begin
  if LockFL then Exit;
end;
 

Хотя я бы на твоём месте идеологию пересмотрел бы...
Мимопроходящий
Дата: 15.11.2007 14:09:24

Привет, ova!
Ты пишешь:

ova


o> Автор: ova
o> Есть два взаимосвязанных объекта, скажем два поля в таблице,
o> у каждого есть событие OnChange, где прописано изменение второго
o> поля, а во втором наоборот изменение первого поля. Задача -
o> уйти от зацикливания. Сейчас конечно решается но на мой взгляд
o> всякими корявыми способами, может кто знает как правильно это
o> сделать?
может рассмотреть события DataSet'а, вместо TField ?

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

Ega
Дата: 15.11.2007 14:22:31
Мимопроходящий

может рассмотреть события DataSet'а, вместо TField ?


фигасе! вот ты телепат!
И ведь (скорее всего) ты прав... :)
ova
Дата: 15.11.2007 14:30:27
Мимопроходящий

Привет, ova!
Ты пишешь:

может рассмотреть события DataSet'а, вместо TField ?

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4


Например? Если AfterPost, так мне нужно знать что первично а что вторично. Например. Период задается в днях и месяцах, меняем дни хотим чтобы месяцы пересчитались и наоборот, поменяли месяц хотим в днях видеть (сразу скажу - прихоть заказчика).
ova
Дата: 15.11.2007 14:33:39
[quot Ega
Хотя я бы на твоём месте идеологию пересмотрел бы...[/quot]
Ну да именно так и делаю, но считаю это не совсем верным, потому и спрашиваю. Насчет идеологии - вот выше написал пример, как можно ее родимую пересмотреть?
Мимопроходящий
Дата: 15.11.2007 14:35:25

Привет, ova!
Ты пишешь:

ova
o> Например? Если AfterPost, так мне нужно знать что первично а что вторично.

если меняешь в гриде, то проверяй SelectedField

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

ova
Дата: 15.11.2007 14:44:08
Мимопроходящий

Привет, ova!
Ты пишешь:

ova
o> Например? Если AfterPost, так мне нужно знать что первично а что вторично.

если меняешь в гриде, то проверяй SelectedField

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

Тоже не совсем красиво, источник данных находится в модуле данных и вроде как некорректно оперируя данными в этом модуле ссылаться на другие визуальные элементы, еще кучу проверок нужно будет сделать. Кроме того, выход из поля грида происходит путем клика мыши на новом поле, тогджа что покажет SelectedField?
Мимопроходящий
Дата: 15.11.2007 14:49:50

Привет, ova!
Ты пишешь:

ova
o> Тоже не совсем красиво, источник данных находится в модуле данных
в сад!

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

ova
Дата: 15.11.2007 14:51:53
Мимопроходящий

Привет, ova!
Ты пишешь:

ova
o> Тоже не совсем красиво, источник данных находится в модуле данных
в сад!

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

Что не так?