Вопрос № 146624: Вопрос такой; Какие существую эфективные способы поддержки мультиязычного интерфейса?...Вопрос № 146644: Здравствуйте уважаемые эксперты, у меня вот такая проблема: Делаю программу-игрушку, что то вроде игры для детей на запоминание предметов и их расположения на доске. Есть матрица из 25 (5х5) компонентов типа DBImage при начале работы они все запо...Вопрос № 146684: Товарищи
эксперты, помогите пожалуста решить задачку. Я думаю. что она простая, но с программированием не дружу вообще, а сдавать и в нашем непрограммистском вузе надо. Ну очень надо!Вся надежда только на вас. Из бинарного файла прочитать симв...Вопрос № 146712: Можно ли получить время часов CMOS из Windows? Весь Интернет облазил и не нашел, в MSDN Library тоже не нашел. Наткнулся только на информацию о том, что это умеет делать
Linux. Но ведь при старте Windows получает время из CMOS, значит это реа...Вопрос № 146734: Здравствуйте! У меня такая проблема. Нужно запустить определенную программу под ограниченной учетной записью с правами администратора. Так просто программа не запускается. Можно только запустить с правами админа. Можно ли это как нибудь сделать прогр...
Вопрос № 146.624
Вопрос такой; Какие существую эфективные способы поддержки мультиязычного интерфейса?
Отвечает: Edwardmm
Здравствуйте, Романов Александр Вячеславович! Самый простой способ это создать текстовый файл в котором присвоить каждому заголовку в программе название и при запуске считывать их. Соответственно сколько языков столько и файлов. Структура INI файла вполне подойдёт.
Ответ отправил: Edwardmm (статус: 1-ый класс)
Ответ отправлен: 09.10.2008, 20:26 Оценка за ответ: 3 Комментарий оценки: Меня интересует принцып присваивания, при большом количесве строк получаеться тупое присваивание очень большого числа строк.
Отвечает: Кэр Лаэда
Здравствуйте, Романов Александр Вячеславович!
надеюсь мой способ для вас будет эффективным
как вы знаете у компонентов есть свойство Name вы можете создать ini файл такого типа Name=Caption
пример
Label25=Вася Label26=Петя
делее идет код
вы просто перебираете все компонеты на форме
for I := 0 to Form1.ComponentCount - 1 do begin // тут вы берете имя компонента Form1.Components[i].Name и проверяете есть ли он в ini
файле. Если есть, то делаете у него другой текст. Надо только помнить, что у одних //компонентов это Text у других Caption , а у третьих еще что нибудь.
end;
--------- Я знаю что ничего не знаю, но я знаю больше, чем тот кто думает что знает все
Ответ отправил: Кэр Лаэда (статус: Практикант)
Ответ отправлен: 09.10.2008, 20:48 Оценка за ответ: 5 Комментарий оценки: Спасибо, хорошее решение и довольно простое в реализации. Как то сам даже неподумал о возможности перебрать все компоненты на форме.
Вопрос № 146.644
Здравствуйте уважаемые эксперты, у меня вот такая проблема: Делаю программу-игрушку, что то вроде игры для детей на запоминание предметов и их расположения на доске. Есть матрица из 25 (5х5) компонентов типа DBImage при начале работы они все заполнены изображением с однородным фоном (типа незаполненные) Зытем при нажатии на кнопку «начать игру» они заполняются рандомным образом любым изображением из вспомогательной папки где лежат изображения. И еще 4 DBImage поля для будущей проверки. Затем по нажатию
кнопки «Начать проверку» все картинки закрываются и сбоку появляются 4 окна с возможными изображениями для проверки, затем пользователь выбирает одно из предложенных изображений щелкая на него мышью а затем по закрытым полям DBImage заполняя тем самым их этими картинками. После нажатия на кнопку «Проверить» программа должна показать число ошибок Но вот беда она не показывает (тоесть показывает неправильно ) Проверка имеет вид:
procedure TForm1.Button2
Click(Sender: TObject); var och,i:byte; MyComponent: TComponent; begin och:=0; //обнуляем число ошибок for i:=1 to 25 do begin MyComponent:=FindComponent('DBImage'+ IntToStr(i)); //перебор элементов Znache:=TDBImage(MyComponent).Picture; //вытаскиваем картинку из элемента if not(Znache=ArMatr[i]) then //сравниваем с массивом для проверки och:=och+1; //считаем ошибки end; Label1.Caption:='Ошибок '+ IntToStr(och); end; Для
справки
Массив ArMatr: Array [1..25]of TPicture;//описан в самом Unit1.pas //заполняется на шаге «начать игру» Дело в том что if not(Znache=ArMatr[i]) всегда ложно! В приложении весь код Unit1.pas А весь проект можно посмотреть тут: http://narod.ru/disk/3091468000/programma.rar.html