Всем хорошего настроения!
В ActionList, заложен Search в нём есть SearchFind.
Названия элементов на Search форме - как узнать, чтобы получить к ним доступ ?
Имеются ввиду Label, т.к. остальное выведено в панель.
Модератор: Модераторы
pupsik писал(а):StdActns
pupsik писал(а):динамически создаете ваше "чудо"
ENERGIX писал(а):SearchFind
TSearchFind = class(TSearchAction)
....
property Dialog: TFindDialog read GetFindDialog;
FFindForm: TForm;
TMyFindDialog = class(TFindDialog)
public
function Execute: Boolean; override;
end;
function TMyFindDialog.Execute: Boolean;
begin
inherited;
(FFindForm.FindComponent('FindButton') as TButton).Caption := 'Поиск'; // и т.д.
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MyFindDialog := TMyFindDialog.Create(Self);
end;
procedure TForm1.Action1Execute(Sender: TObject);
begin
MyFindDialog.Execute;
end;
resident писал(а):Поискал решение, но похоже халявы не предусмотрено
vitaly_l писал(а):Спасибо ГРОМАДНОЕ!
Вот только как Вы узнали имя кнопки => "FindButton" ??? Где имена элементов хранятся?
function CreateForm:TForm;virtual;
function TFindDialog.CreateForm: TForm;
begin
// do not use Self as Owner, otherwise as desgntime this will not work
Result := TFindDialogForm.Create(nil);
with TFindDialogForm(Result) do
begin
FindButton.Caption := rsFind;
CancelButton.Caption := rsMbCancel;
HelpButton.Caption := ifsVK_HELP;
WholeWordsOnlyCheckBox.Caption := rsWholeWordsOnly;
CaseSensitiveCheckBox.Caption := rsCaseSensitive;
EntireScopeCheckBox.Caption := rsEntireScope;
FindLabel.Caption := rsText;
DirectionRadioGroup.Caption := rsDirection;
DirectionRadioGroup.Items[0] := rsForward;
DirectionRadioGroup.Items[1] := rsBackward;
//Setting up button eventhandlers
FindButton.OnClick := @FindClick;
HelpButton.OnClick := @HelpClick;
CancelButton.OnClick := @CancelClick;
PopupMode := pmAuto;
end;
end;
function TMyFindDialog.Execute: Boolean;
var i: integer;
begin
inherited;
(FFindForm.FindComponent('FindButton') as TButton).Caption := 'Поиск';
for i := 0 to pred(FFindForm.ComponentCount) do
Form1.mm.Lines.Add(FFindForm.Components[i].Name + ' - ' + FFindForm.Components[i].ClassName);
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 229