Вниз
Скачать: CL | DM;

Как в ListView при редактировании запретить действие ShortCutов ?   Найти похожие ветки 

← →
GreySerg   (2003-09-30 20:44) [0]

Как в ListView при редактировании запретить действие ShortCutов ?
т.е в ListView в Popup меню у меня назначены Actionы , у которых есть ShortCut, так вот надо , чтобы при редактировании itema в ListView они не действовали (при нажатии клавиши del не вызывался Execute actiona, если у actiona назначен shorcut = del, а нормально удалялся символ itemа )


← →
GreySerg   (2003-10-01 11:26) [1]

Подскажите, очень надо ))


← →
clickmaker ©   (2003-10-01 11:28) [2]

procedure TForm1.ActionList1Update(Action: TBasicAction;
var Handled: Boolean);
begin
if ListView.IsEditing then begin

TAction(Action).Enabled := false;
Handled := true;
end;
end;


← →
GreySerg   (2003-10-01 11:58) [3]

да , но тогда не работает удаление выделенного фрагмента в редактировании itema при нажатии клавиши del


← →
clickmaker ©   (2003-10-01 12:09) [4]

А так ?

procedure TForm1.DelActionUpdate(Sender: TObject);
begin
DelAction.Enabled := not ListView1.IsEditing;
end;


← →
GreySerg   (2003-10-01 12:11) [5]

то же самое , уже пробовал , не работает удаление выделенного фрагмента в редактировании itema при нажатии клавиши del


← →
clickmaker ©   (2003-10-01 12:19) [6]

странно... у меня работает


← →
GreySerg   (2003-10-01 12:46) [7]

сделал простой пример - тоже работает
а вот у меня в приложении не работает :(


← →
GreySerg   (2003-10-01 17:28) [8]

понял почему не работает
у меня MDI приложение и в MDIForm есть action , у которого ShortCut = Del и в MDI Child есть action у которого ShortCut = Del , когда делаю
procedure TForm1.DelActionUpdate(Sender: TObject);
begin
DelAction.Enabled := not ListView1.IsEditing;
end;
то видимо при редактировании itema перехватывает action из главной формы , поэтому не удаляет выделенный фрагмент .
когда в главной форме убираю у action shortCut = Del , то всё замечательно работает (удаляет выделенный фрагмент при редактировании)
Мастера, подскажите пожалуйста , как сделать чтобы не перехватывало ShortCut из главной формы ?


← →
GreySerg   (2003-10-01 17:56) [9]

Так что ? никто не знает ?


← →
clickmaker ©   (2003-10-01 18:00) [10]

Запрещай экшн и в главной форме до кучи :)


← →
GreySerg   (2003-10-01 18:12) [11]

пробую запрещать , но ничё не выходит , делаю :

procedure TForm1.DelActionUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := (not (ActiveMDIChild is TForm2));
end;

procedure TForm2.Action1Execute(Sender: TObject);
begin
ListView1.DeleteSelected;
end;

procedure TForm2.Action1Update(Sender: TObject);
begin
(Sender as TAction).Enabled := not ListView1.IsEditing
end;


а почему то при редактировании ListView в Form2 (MDIChild), когда ставлю прерывание в procedure TForm1.DelActionUpdate(Sender: TObject);, ActiveMDIChild = nil , хотя я редактирую в форме Form2, которая является MDIChild


← →
GreySerg   (2003-10-01 18:13) [12]

у этих 2-х Actionов один и тот же ShortCut = Del


← →
GreySerg   (2003-10-01 18:33) [13]

всё, всем спасибо , всё заработало, просто в спешке вместо formStyle = fsMDIChild поставил fsNormal :)


← →
GreySerg   (2003-10-02 13:46) [14]

ещё одна проблема возникла:
если у ListView есть Popup меню , а в нём есть item с action , у которого ShortCut = Del , то не удаляет выделенный фрагмент при редактировании (делаю всё как вышеи написано)
Если в событии OnEditing ставлю Action1.ShortCut :=0, то нормально удаляет выделенный фрагмент при редактировании
проблема в том где поставить Action1.ShortCut := TextToShortCut("Del")?
если в событии OnEdited , то оно не сработает, если я во время редактирования нажму Escape , ShortCut останется равным 0.
Помогите, Мастера !!1


← →
GreySerg   (2003-10-02 14:13) [15]

Тогда как сделать , чтобы Update Actiona всё время делался ? тогда я знаю как решить эту проблему


← →
GreySerg   (2003-10-02 14:19) [16]

Что , никто не сталкивался с таким ?


← →
GreySerg   (2003-10-02 14:26) [17]

и вообще , что за глюк такой в ListView ?


← →
GreySerg   (2003-10-02 15:32) [18]

Мастера, ответьте !!! Очень надо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.025 c
1-40512
Legran
2003-10-02 07:58
2003.10.13
Перегрузка сортировки TListview


4-40739
diMAN
2003-08-06 19:25
2003.10.13
Изменение размера шрифта у консольного приложения


6-40561
Vredina
2003-08-01 15:20
2003.10.13
UDP Message


14-40620
Ihor Osov'yak
2003-09-21 17:03
2003.10.13
RunOnce в Win9X в real mode (дос-режиме)


3-40318
Игорь Ч
2003-09-22 09:02
2003.10.13
Как работать со справочником из другой программы?




   Наверх