Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2010, 22:24   #1
Sergio_O
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 15
По умолчанию TRibbon - неверная реакция кнопки

В общем есть риббон и есть попап. При вызове действия добавляется элемент TreeView, ему передается фокус и вызывается EditText.
Дальнейшие действия определяются событиями Edited и CancelEdit
Из менюшки все работает наура, а вот при использовании Ribbon после вызова Action сразу вызывается CancelEdit, как будто мы тыкнули в произвольном месте и отменили редактирование. Как победить?

К примеру:

Код:
{Типовая подготовка к добавлению/редактированию, где и передается фокус}
procedure TDirectStudentsForm.PrepareAdding(tmpNode: TTreeNode);
begin
  tmpNode := HandBooks.Items.AddChild(tmpNode, 'Введите значение');
  tmpNode.Selected := True;
  tmpNode.EditText;
  HandBooks.SetFocus;
  ActiveDS.DataSet.Insert;
end;

procedure TDirectStudentsForm.PrepareEditing(tmpNode: TTreeNode);
begin
  HandBooks.SetFocus;
  tmpNode.Selected := True;
  tmpNode.EditText;
  ActiveDS.DataSet.Locate('ID', tmpNode.SelectedIndex, []);
  ActiveDS.DataSet.Edit;
end;

{Собственно действия}
procedure TDirectStudentsForm.acAddInstituteExecute(Sender: TObject);
var tmpNode: TTreeNode;
begin
  case HandBooks.Selected.Level of
    0 : tmpNode:= HandBooks.Selected;
    1 : tmpNode:= HandBooks.Selected.Parent;
    2 : tmpNode:= HandBooks.Selected.Parent.Parent;
    3 : tmpNode:= HandBooks.Selected.Parent.Parent.Parent;
  end;
  ActiveDS := DS_Institutes;
  PrepareAdding(tmpNode);
end;

procedure TDirectStudentsForm.acEditInstituteExecute(Sender: TObject);
var tmpNode: TTreeNode;
begin
  case HandBooks.Selected.Level of
    1 : tmpNode:= HandBooks.Selected;
    2 : tmpNode:= HandBooks.Selected.Parent;
    3 : tmpNode:= HandBooks.Selected.Parent.Parent;
  end;
  ActiveDS:= DS_Institutes;
  PrepareEditing(tmpNode);
end;

{Отмена редактирования}
procedure TDirectStudentsForm.HandBooksCancelEdit(Sender: TObject; Node: TTreeNode);
begin
  ActiveDS.DataSet.Cancel;
  if HandBooks.Selected.Text = 'Введите значение' then
    HandBooks.Selected.Delete;
end;

{Завершение редактирования редактирования}
procedure TDirectStudentsForm.HandBooksEdited(Sender: TObject; Node: TTreeNode;
  var S: string);
begin
  ActiveDS.DataSet.FieldByName('Название').AsString:= S;
  ActiveDS.DataSet.Post;
  Node.SelectedIndex:= ActiveDS.DataSet.FieldByName('ID').AsInteger;
end;
Внешний вид и исходник прилагается
Изображения
Тип файла: jpg Снимок.jpg (83.7 Кб, 160 просмотров)
Вложения
Тип файла: zip Source.zip (1.40 Мб, 11 просмотров)

Последний раз редактировалось Sergio_O; 03.11.2010 в 22:37.
Sergio_O вне форума Ответить с цитированием
Старый 03.11.2010, 22:29   #2
Sergio_O
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 15
По умолчанию

to mihali4, извините, я так понимаю за 'Неверное название темы', созданное ранее. Если с этой темой все в порядке, прошу прошлую (кривую) удалить.
Если же нет, то укажите на мой недочет в оформлении.

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Уважайте форумчан, и они ответят вам взаимностью...
Модератор

Последний раз редактировалось mihali4; 03.11.2010 в 22:33.
Sergio_O вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неверная запись Golovastik HTML и CSS 1 26.07.2010 21:34
неверная работа функции в Delphi ИльяМалиновский Общие вопросы Delphi 5 31.12.2009 15:07
Неверная всплывающая посказка среды Alex Cones Общие вопросы Delphi 3 17.11.2009 08:11
Неверная сортировка фото php-скриптом Nikolai* Помощь студентам 2 15.11.2008 08:56
Неверная ссылка на профиль AlDelta О форуме и сайтах клуба 2 27.10.2007 21:03