Я не совсем уверен, что понимаю то, что Вы пытаетесь сделать. Что Вы хотите иметь, происходят со всеми изменениями, внесенными на соединительной линии после того, как ответвление было создано? Вы хотите, чтобы они не появились в журнале, при просмотре истории файла после слияния? Если так, это - то, что Вы получите, если Вы удалите соединительную линию и скопируете ответвление в его место - ответвление совместно использует историю с соединительной линией до того, чтобы быть переходившимся, таким образом, это - то же за исключением изменений, сделанных после ответвления.
, Если Вы хотите сохранить историю соединительной линии, но просто топать на всех изменениях, внесенных между ветвлением и слиянием, это - немного более хитрая проблема. Я думаю, делаете ли Вы слияние, которое игнорирует родословную (существует опция --ignore-ancestry
), это заменит содержание соединительной линии с ответвлением. Можно также хотеть попробовать --force
опция со слиянием (и вместо и в conjuction с --ignore-ancestry
). Попробуйте его несколько различных способов видеть, получаете ли Вы результаты, Вы хотите...
, Если это перестало работать, Вы всегда могли обратное слияние все изменения на соединительной линии начиная с точки разветвления, затем объединяться в ответвлении. Это кажется вероятным вызвать некоторые конфликты, которые Вы, конечно, хотели бы разрешить использование версии от Вашего ответвления. Я не знаю, оптимальна ли какая-либо из этих идей.
вам следует удалить свойства Default и Cancel с кнопок, вместо этого вы должны нажать клавишу в форме keyDown и затем выполнить OK или отменить.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_ESCAPE)and not (TreeView1.IsEditing) then
CancelClick(sender)
else
if (Key = VK_RETURN) and not (TreeView1.IsEditing) then
OkClick(sender);
end;
также вам необходимо установите для keypreview значение true.
Возможно, это поможет временно установить значение «По умолчанию» и «Отмена» на False в TTreeView.OnEditing и обратно на True в TTreeView.OnEdited. Нет OnCancelEdit - это может быть проблемой.
Не устанавливайте только свойство ModalResult для кнопок OK и Отмена, но создайте обработчик событий OnClick и используйте
if not(TreeView1.IsEditing) then ModalResult:=mrOk
или mrCancel соответственно
В этой ситуации я бы добавил обработчик события OnCloseQuery в форму, которая будет удерживать его от закрытие, если TTreeView является сфокусированным элементом управления.