С правильно отформатированным кодом и разбираться проще, приведу совсем свежий пример (из RX Library):
procedure TRxLookupControl.SetValue(const Value: string);
begin
if (Value <> FValue) then begin // Polaris // begin added
if CanModify and (FDataLink.DataSource <> nil) and FDataLink.Edit then
begin
// if FMasterField <> nil then FMasterField.AsString := Value
// else FDataField.AsString := Value;
if FMasterField <> nil then SetFieldValue(FMasterField,Value) // Polaris
else SetFieldValue(FDataField,Value); // Polaris
end
else // begin // Polaris
SetValueKey(Value);
Change;
end;
end;Не знаю, как у вас, а у меня произошел вынос мозга, когда я пытался понять, что тут происходит. Однако после нескольких лёгких пассов происходит волшебное преображение:procedure TRxLookupControl.SetValue(const Value: string);
begin
if (Value <> FValue) then
begin
if CanModify and Assigned(FDataLink.DataSource) and FDataLink.Edit then
if Assigned(FMasterField) then
SetFieldValue(FMasterField, Value)
else
SetFieldValue(FDataField, Value)
else
SetValueKey(Value);
Change;
end;
end;Как говорится, комментарии излишни.Эта проблема отсутствует как класс в некоторых языках программирования, где форматирование имеет значение не только для разработчика, который пишет или читает этот код, но и для компилятора (например, Python). Неправильно форматированный код будет неправильно работать.
Комментариев нет:
Отправить комментарий