Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

Почему не работает?   Найти похожие ветки 

 
mfender   (2003-09-05 16:59) [0]

begin
with Form do
begin
with TCustomDBGrid(Keys.Strings[n]) do
begin
Color:=StringToColor(DataStr.Strings[1]);
for o:=0 to StrToInt(DataStr.Strings[2])-1 do
begin
Columns[o].Width:=StrToInt(DataStr.Strings[o+3]);
end;
end;
end;

Хотелось бы, чтобы изменялся цвет TCustomDBGrid. В результате меняется цвет формы. По той же причине возникает ИС "Accept violation", видимо по причине отсутствя у TForm Columns.

В чем же порча?


 
MBo   (2003-09-05 17:01) [1]

>TCustomDBGrid(Keys.Strings[n])
поясни


 
Calm   (2003-09-05 17:03) [2]

Конфлик имен, инициированный излишней любовью к опрератору with.

Видимо, что компилятор использует первое найденное свойство с именем Color.
А вот AV получается, скорее всего, потому, что Keys.Strings[n] вовсе не TCustomDBGrid


 
me   (2003-09-05 17:11) [3]

2mfender (05.09.03 16:59)

1) Компилятор не видит св-ва TCustomDBGrid.Color - оно protected,
и берёт то, которое видит, т.е. TForm.Color
(я тебе уже, кажется, уже объяснял, что нужно в этом случае делать)

2) Я, конечно не знаю, что у тебя за Keys и
как организованы твои гриды, но ты случайно не
Keys.Objects[n]
имел ввиду?


 
mfender   (2003-09-05 17:12) [4]

А вот AV получается, скорее всего, потому, что Keys.Strings[n] вовсе не TCustomDBGrid

Вот я и думаю, как тут правильно сделать. Keys.Strings[n] - это имя компонента. Я таким образом пытаюсь обозначить, что
Form.TCustomDBGrid(name).Color:= -----
Form.TCustomDBGrid(name).Columns[o].Width:=----

Я что-то не правильно делаю? Сейчас это особенно остро почувствовалось.
У меня жопыта нет, да и тройничный нерв воспалился - смотреть больно, не то что думать.


 
me   (2003-09-05 17:17) [5]

тогда
with {Form.}FindComponent(Keys.Strings[n]) as THackCustomDBGrid do
...

PS Чего-чего у тебя нет???


 
ZEE   (2003-09-05 17:19) [6]

TCustomDBGrid(FindComponent(Keys.Strings[n])).Color:=

mfender - иногда и отдых полезен...


 
mfender   (2003-09-05 17:22) [7]

Компилятор не видит св-ва TCustomDBGrid.Color - оно protected,
и берёт то, которое видит, т.е. TForm.Color
(я тебе уже, кажется, уже объяснял, что нужно в этом случае делать)


Я так и сделал. THackCustomDBGrid = class TCustomDBGrid;
Это там сработало. Спасибо.

Я, конечно не знаю, что у тебя за Keys и
как организованы твои гриды,


[Form1]
DBGrid1=10 clWindow 4 95 64 28 64

Дык, в том-то и беда. Keys - ключи из ini-файла. Я просто прочитываю секцию из ini в Keys & Values, потом вот вынимаю из Values нужные значения и ставлю их куда следует.
Имя секции - имя формы. Ключ строки - имя компонента. Строка значения - массив, разделенный пробелами. В нем первое значение (здесь 10) по моей классификации означает, что это. В приведенном случае - это TCustomDBGrid. Далее следуют значения цвета(clWindow), количество колонок в гриде(4) и ширина каждой из колонок.


 
mfender   (2003-09-05 17:25) [8]

Чего-чего у тебя нет???

Опыта у меня ж нет. Опечаточка была. ;)


 
mfender   (2003-09-05 17:40) [9]

Получилось. Правда не с TCustomDBGrid, а как раз-таки с наследником, т.н. THackCustomDBGrid:
TmfCustomDBGrid(FindComponent(Keys.Strings[n])).Columns[o].Width:=S trToInt(DataStr.Strings[o+3]);

Объясните, пожалуйста, зачем требуется объявить THackCustomDBGrid = class (TCustomDBGrid). А то слепо пользоваться не охота. Хочется знать, чтобы в следующий раз воспользоываться этим. Заранее благодарен.



Страницы: 1 вся ветка

Текущий архив: 2003.09.18;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.009 c
14-58838
Knight
2003-08-28 21:54
2003.09.18
Взрослеем.... взрослеем...


1-58622
Ozone
2003-09-08 10:17
2003.09.18
Работа с указателями


14-58889
Дмитрий_Б
2003-08-29 08:46
2003.09.18
Сетевые подключения в w2k


1-58700
denis24
2003-09-08 10:01
2003.09.18
удаление слова в строке


7-58939
Ricky-Ticky-Tavy
2003-07-06 13:08
2003.09.18
Надо запусть прогу перед тем как запустится WinME





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский