|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Прием внешних параметров TAction'a
Делаю кнопки дисков для файлменеджера:
Создаю их. Код:
for i := 0 to ( Drives.Count - 1 ) do begin NewBtn := TToolButton.Create ( stlbrLeft ); with NewBtn do begin Parent := stlbrLeft; Tag := i; Action := actChDisk; end; end; И делаю им екшин: Код:
procedure TMainForm.actChDiskExecute(Sender: TObject); var n : Integer; begin if not ( Sender is TToolButton ) then exit; n := ( Sender as TToolButton ).Tag; Caption := Drives.GetChar ( n ) + ':\'; SetCurrentDir ( Caption ); actRefresh.Execute; end; Дабы вас не отвликало клас TDrives самописен, и работает нормально Как не странно но Sender is TToolButton возвращает False. Плюс не знаю правильно ли я прописиваю Caption. |
#2
|
|||
|
|||
И делаю им екшин:
Код:
procedure TMainForm.actChDiskExecute(Sender: TObject); var n : Integer; begin if not ( Sender is TToolButton ) then exit; n := ( Sender as TToolButton ).Tag; Caption := Drives.GetChar ( n ) + ':\'; SetCurrentDir ( Caption ); actRefresh.Execute; end; Как не странно но Sender is TToolButton возвращает False. В данном случае Sender is TAction. Чтобы добраться до кнопки, нужно TAction(Sender).ActionComponent. И Caption присваивать не в момент нажатия, а в момент создания. |