Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.13;
Скачать: 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 вся ветка

Текущий архив: 2003.10.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
3-40231
MVVD
2003-09-24 12:36
2003.10.13
Грохнул таблицу


1-40387
Zhouck
2003-09-29 11:38
2003.10.13
перехожу с С++B на Delphi. Как сделать в Delphi безразмерный масс


7-40682
Anatol
2003-08-01 09:03
2003.10.13
Курсор


14-40647
onix
2003-09-24 12:06
2003.10.13
Обратите внимание на проблему


14-40577
ZeroDivide
2003-09-23 10:49
2003.10.13
Paint Shop Pro 8. Ваши впечатления.