![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение имени компонента из файла [D10,D6, WinXp Sp2]
Maloric © (2006-07-04 14:18:00)Здраствуйте уважаемые Мастера!
Простите за нескромный вопрос, можно ли при открытии файла, например:
Label12 Red
Label14 Blue
Присвоить label12 красный цвет, я имею ввиду как присвоить цвет компоненту, название которого находиться в файле.
Возможно ли это? Просто ни когда не интересовался этим вопросом, заранее спасибо за ответ.
Maloric (2006-07-05 00:01:00) [1]
> Вы [5] читали внимательно?
Сильно извиняюсь, сначала не обратил внимания.
Перекомпилировал MCK/KOL с этой директивой.
И в проект также вставил. Заработало.
Спасибо огромное, извините что отнял у Вас времени,
все получилось.
ECM (2006-07-04 23:44:00) [2]> Но свойства Name нету
Вы [5] читали внимательно?
Maloric (2006-07-04 23:33:00) [3]Я тут подумал можно так:
var
komp: Array[0..10] of PControl;
mykomp: string;
begin
for i:=0 to 10 do begin
if komp.name=mykomp then ... //Но свойства Name нету
end;
end;
И как создать этот массив...
Пробовал через Panel1.ChildCount;
Но там при использовании Panel1.Children[i] также нет свойства Name =(
Может я ни туда рою?
ECM (2006-07-04 23:22:00) [4]> Можно ли обратиться к компоненту название которого в строковом
> виде
> Например читаю в переменную komp='Label13';
> Типа komp.color:=clRed
Может Вам книжку по Паскалю почитать?
Для KOL - посмотрите в сторону $DEFINE USE_NAMES...
Но поиск объекта по имени делать придётся всё равно... чудес не бывает
Maloric (2006-07-04 22:33:00) [5]Вариант типа
case komp of
'Label13': Label13.Color:=clRed
...
end;
Мне не подходит. Очень надо, для уменьшения времени и кода.
Спасибо за внимание.
Maloric (2006-07-04 22:27:00) [6]Ну вы конечно тут пошутите. Мне конечно с одной стороны даже обидно, но в вопросе помоему я правильно написал, чего я хочу узнать.
Читать я из файла умею, и не один год это делал =)
Я имел ввиду вот что:
Label13 Red
Например читаю в переменную komp='Label13';
Дык вот я и хочу узнать возможно ли использовать переменную komp.
Типа komp.color:=clRed;
Можно ли обратиться к компоненту название которого в строковом виде
[e]Bu$ter (2006-07-04 19:02:00) [7]Да по ходу из файлов он читать умеет раз взялся.
Трудность скорее всего вызывает то, что человек на знает каким образом в RunTime по именам обращаться к компонентам, которые он раскладывал по форме в DesignTime.
ECM (2006-07-04 17:42:00) [8]> Чтение имени компонента
> я имею ввиду как присвоить цвет компоненту
Так имя или цвет? :)))) Файл я так понимаю текстовый?
> Возможно ли это?
Возможно... Научитесь читать из текстового файла....для начала.
Затем можете обратить внимание на очень полезную функцию из KOL(я надеюсь что в данную конференцию вы не наугад написали - хотя из вопроса это не следует... (я бы на месте модератора сразу бы перенес его в "начинающим")) Parse
function Parse( var S : String; const Separators : String ) : String;
{* Returns first characters of string S, separated from others by
one of characters, taking place in Separators string, assigning
a tail of string (after found separator) to source string. If
no separator characters found, source string S is returned, and
source string itself becomes empty. }
Далее после получения строки цвета в цвет уже тривиально...