есть кто на дельфи пишет? хочу задать пару ламерских вопросов...
Action - вроде с клавой связь
там еще что то типа ActionList есть, посмотри.
тяжело на дельфи писать
я его ваще не знаю
но у меня есть готовая прога и мне надо ее немного изменять
типа добавить кнопочки, пункты меню и так далее
я делаю все тупым копипастом
обычно это срабатывает
а в дельфи нет
а тяжесть заключается вот в чем
где нибудь тыкнешь мышкой и в нескольких местах чтото изменится, фиг уследишь где изменилось
а в ноутпаде нельзя работать, данные формы в бинарном виде находятся
в результате у меня запущена сравнивалка директорий/файлов (araxis merge)
и я после каждого тыканья мышкой смотрю в ней какие строчки в каких файлах изменились и если это нежеательно возвращаю назад
уфффффффф
в Object Inspector написан обработчик события
например для onClick написано N12Click
можно как нибудь быстро перейти к коду этой процедуры?
если код в соответствующем этой форме .pas файле я могу поиском по файлу сделать
но тут используется наследование и соотв. процедура может лежать совсем в другом файле
приходится делать в тотакл коммандере поиск по всем файлам, а потом в дельфи этот файл открывать
Итак, Actions и с чем их едят.
Допустим, у тебя в приложении одно и то же действие (e.g. удалить из таблицы строку под курсором) может делаться несколькими различными способами: через контекстное меню, через главное меню и через кнопку на тулбаре. Тогда, положив на форму компнент ActionList, ты можешь создать в нем действие "acDeleteRow", назначить ему заголовок (Caption иконку, процедуру, и т.п., после чего назначить соответствующим кнопкам и пунктам меню этот Action - заголовок, иконка, процедура и всё остальное присвоится автоматически. Оно же помогает избежать проблем рассинхронизации, например когда в главном меню иконку поменял, а в контекстном забыл.
в Object Inspector написан обработчик событиянапример для onClick написано N12Clickможно как нибудь быстро перейти к коду этой процедуры?если код в соответствующем этой форме .pas файле я могу поиском по файлу сделатьно тут используется наследование и соотв. процедура может лежать совсем в другом файлеДабл клик по названию процедуры в object inspector'е. В другом файле она лежать не может - во всяком случае не должна - т.к. onClick - это объект класса TNotificationEvent, а его перекрывать нелогично.
Итак, Actions и с чем их едят.понял, спасибо
один момент непонятно
если я присвоил для TMenuItem этот самый Action
то он когда выполинтся? когда выполнится onClick?
а для onClick я тогда не должен ничего задавать?
аналогично caption
он будет браться из самого объекта TMenuItem или из назначенного Action?
если я присвоил для TMenuItem этот самый Actionто он когда выполинтся? когда выполнится onClick?а для onClick я тогда не должен ничего задавать?аналогично captionон будет браться из самого объекта TMenuItem или из назначенного Action?В качестве onClick ставится процедура Action.OnExecute
Caption и остальные общие параметры берутся из Action'а.
TMenuItem вообще трогать не надо после установки Action'а
В другом файле она лежать не может - во всяком случае не должна - т.к. onClick - это объект класса TNotificationEvent, а его перекрывать нелогично.не понял что ты сказал
у меня вот так: есть некий класс для работы с таблицей БД
от него наследуются остальные формы
типа вот так:
type
TdmWebRegVisitors = class(TdmDBObject)
и там набор стандартных кнопок типа удалит, изменить,добавить запись в таблицу
и обработчики onClick - унаследованы
если я два раза кликну на обработчик onClick я попаду в текущий файл и там создастся, ИМЕННО создастся вот такой код:
procedure TdmWebRegVisitors.acUpdateExecute(Sender: TObject);
begin
inherited;
end;
поначалу я всё жал ctrl+z чтобы удалить этот код
а теперь выяснил что он удаляется сам при компиляции!
прикиньте? при компиляции код удаляется
а как мне попасть в сам код, он как бы в классе-отце и при этом минуя создание вот этой заглушки - я не знаю
procedure TdmWebRegVisitors.acUpdateExecute(Sender: TObject);
begin
inherited;
end;
когда ты делаешь дабл-клик, этой процедуры еще нет. Дельфи тебе предлагает ее создать. Первая строчка - inherited - вызывает аналогичную процедуру из базового класса. Ctrl-Click по Inherited тебя в нее перенесет. А если ты после inherited ничего не напишешь, то очевидно, что эта процедура не нужна, поэтому она удаляется (кстати, ДО компиляции).
кстати, ДО компиляциину не знаю
у меня удаляется при ctrl+F9
что нажать чтобы удалилась без этого?
Ctrl-Click по Inherited тебя в нее перенесет.у меня дельфи 6
не переносит
А с каким нибудь Ctrl или Alt?
когда закрываю проект: file -> close all
а потом открываю
то открывается другое расположение окон
всегда одно и то же открывается, там даже нету последних открытых файлов
кнопка save current desktop не помогает
как-то же ему объяснили что открывать всегда эти?
что нажать чтобы удалилась без этого?Ctrl-S
у меня дельфи 6у меня дельфи 6
не переносит
Ctrl-click
переносит
еще одна трабла: когда закрываю проект: file -> close all, а потом открываю, то открывается другое расположение окон - всегда одно и то же открывается, там даже нету последних открытых файловмб у тебя дельфа палёная? никогда таких проблем не встречал? Save Current Desktop сохраняет положение всех окон. Потом достаточно в выпадающем списке режимов выбрать сохраненный - и всё.
кнопка save current desktop не помогает
как-то же ему объяснили что открывать всегда эти?
Последние открытые файлы хранятся в солюшене (*.bpg). Если ты работаешь без солюшена, то последние открытые файлы можешь открывать через Recent Files.
мб у тебя дельфа палёная? никогда таких проблем не встречал? Save Current Desktop сохраняет положение всех окон. Потом достаточно в выпадающем списке режимов выбрать сохраненный - и всё.счастливчик, а у меня такая же проблема, как и топикстартера. Пытался найти где это можно настроить - не получилось.
Последние открытые файлы хранятся в солюшене (*.bpg). Если ты работаешь без солюшена, то последние открытые файлы можешь открывать через Recent Files.
Ctrl-Sработает
у меня дельфи 6
Ctrl-click
переносит
проблему сохранения окошек поборол
была отключена галочка в настройках: Autosave editor files
неправильный кеймаппинг используете . IDE Classic рулит, а там это F2 называется.
Оставить комментарий
pitrik2
вот первый:попап меню, его пункт: TMenuItem
в Object Inspector есть onClick
это вроде понятно что такое
а еще есть Action
что это такое?
в хелпе:
а что это все равно непонятно
и зачем у него onExecute? когда оно вызовется?