Как остановить диалоговое значение по умолчанию и поведение отмены при редактировании узла TTreeView

Я не совсем уверен, что понимаю то, что Вы пытаетесь сделать. Что Вы хотите иметь, происходят со всеми изменениями, внесенными на соединительной линии после того, как ответвление было создано? Вы хотите, чтобы они не появились в журнале, при просмотре истории файла после слияния? Если так, это - то, что Вы получите, если Вы удалите соединительную линию и скопируете ответвление в его место - ответвление совместно использует историю с соединительной линией до того, чтобы быть переходившимся, таким образом, это - то же за исключением изменений, сделанных после ответвления.

, Если Вы хотите сохранить историю соединительной линии, но просто топать на всех изменениях, внесенных между ветвлением и слиянием, это - немного более хитрая проблема. Я думаю, делаете ли Вы слияние, которое игнорирует родословную (существует опция --ignore-ancestry), это заменит содержание соединительной линии с ответвлением. Можно также хотеть попробовать --force опция со слиянием (и вместо и в conjuction с --ignore-ancestry). Попробуйте его несколько различных способов видеть, получаете ли Вы результаты, Вы хотите...

, Если это перестало работать, Вы всегда могли обратное слияние все изменения на соединительной линии начиная с точки разветвления, затем объединяться в ответвлении. Это кажется вероятным вызвать некоторые конфликты, которые Вы, конечно, хотели бы разрешить использование версии от Вашего ответвления. Я не знаю, оптимальна ли какая-либо из этих идей.

5
задан Jamie 28 August 2009 в 09:31
поделиться

4 ответа

вам следует удалить свойства Default и Cancel с кнопок, вместо этого вы должны нажать клавишу в форме keyDown и затем выполнить OK или отменить.

Edit:

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.

3
ответ дан 14 December 2019 в 01:12
поделиться

Возможно, это поможет временно установить значение «По умолчанию» и «Отмена» на False в TTreeView.OnEditing и обратно на True в TTreeView.OnEdited. Нет OnCancelEdit - это может быть проблемой.

1
ответ дан 14 December 2019 в 01:12
поделиться

Не устанавливайте только свойство ModalResult для кнопок OK и Отмена, но создайте обработчик событий OnClick и используйте

if not(TreeView1.IsEditing) then ModalResult:=mrOk

или mrCancel соответственно

2
ответ дан 14 December 2019 в 01:12
поделиться

В этой ситуации я бы добавил обработчик события OnCloseQuery в форму, которая будет удерживать его от закрытие, если TTreeView является сфокусированным элементом управления.

2
ответ дан 14 December 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: