Главная страница
    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
1-58628
Skif Swarogich
2003-09-05 14:27
2003.09.18
String to integer


9-58510
SunSay
2003-03-16 23:32
2003.09.18
как вывести картинку Transparent и Alpha (полупрозр.) одновременн


3-58527
SiJack
2003-08-28 13:58
2003.09.18
Организация работы с базой


6-58810
Igpr
2003-07-17 09:31
2003.09.18
Закачка базы с Oracl`а ч/з TWebBrowser.


14-58874
Экселенц
2003-08-24 18:29
2003.09.18
AIM





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский