Я пытаюсь встроить языковой переключатель в одну из моих программ.
Когда пользователь выбирает язык, а во время выполнения приложение переводится. У меня это получилось в небольшом тестовом проекте. НО только когда формы создаются автоматически, чего я не хочу.
способ создания форм следующий:
Примечание: большинство моих форм — это формы fsMDIChild.
ParametersForm := TParametersForm.Create(Self); //(consider this the mainform for now)
В ParametersForm у меня есть
procedure TParametersForm.FormCreate(Sender: TObject);
begin
ResourceStringsDM.ParametersF; //(consider this the second form)
end;
этот модуль данных содержит заголовки для ParametersForm.
procedure TResourceStringsDM.ParametersF;
begin
with ParametersForm do
begin
bsSkinLabel1.Caption := 'Execute Nieuwefacturen';
bsSkinLabel2.Caption := 'Execute Viewfacturen';
end;
end;
Я добавил ResourceStringsDM к использованию реализации ParametersForm и ParametersForm к использованию интерфейса ResourceStringsDM.
Все вышеперечисленное дает мне причину нарушения доступа в процедуре, где он устанавливает заголовки, использует ParametersForm (имя var формы, которую я хочу перевести), но в этот момент этот var равен нулю. Вероятно, потому что это еще не сделано, создавая форму, и еще не заполнив форму var.
Единственный способ заставить все это работать - использовать
Application.CreateForm(TParametersForm, ParametersForm);
Но я хочу избежать этого, прочитав об этом, и что вы должны использовать это только в своей основной форме. Также он не очень хорошо обрабатывает передаваемые параметры.
Есть ли у кого-нибудь из вас, замечательных людей, какие-либо подсказки или советы / помощь, чтобы получить мне доступ к заголовкам формы 1 из формы 2?
Я, наверное, забыл тонны информации, которая вам, ребята, нужна. просто скажи мне, и я добавлю это.
resourcestring
константы и встроенную поддержку языка вместо того, чтобы самому изобретать велосипед? (И просто к вашему сведению: SO — это сайт для профессионалов; вероятно, это не настоящее слово в английском языке, как и вы. Вы не пишете здесь своим приятелям. Пожалуйста, используйте настоящие слова.) - person Ken White   schedule 08.02.2014