Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];

Вниз

Как поменять цвет для разных едитов одной строкой кода   Найти похожие ветки 

 
{bas}   (2002-11-04 14:27) [0]

В обработчике OnEnter для разных элементов ввода(TDBEdit, TDBLookUpCombo and so on) я пишу так
(Sender as TWinControl).Color := clBlack; - компилятор ругается и говорит что это свойство не определено, хотя TDBEdit и другие его наследуют у TWinControl.
Если я пишу так:
(Sender as TDBEdit).Color := clBlack; - то все ок

В чем тут грабли????????????????


 
Anatoly Podgoretsky   (2002-11-04 14:36) [1]

Оно Protected


 
Skier   (2002-11-04 14:40) [2]

>{bas}
св-во Color объявлено в классе TControl как protected.

Попробуй так :


type
THackControl = class(TControl);

//.............
begin
//.............
THackControl(Sender).Color := clBlack;
//.............
end;


 
{bas}   (2002-11-04 15:01) [3]

я сделал так
type
THackControl = class(TControl)
public
property Color;
end;

//.............
begin
//.............
THackControl(Sender).Color := clBlack;
//.............
end;

Это правильно??


 
Skier   (2002-11-04 15:02) [4]

>{bas}

> Это правильно??

Вполне...И что ?


 
{bas}   (2002-11-04 15:05) [5]

>>Skier
не просто после твой подсказки сделал решил спросить правильно или надо как то по другому делать.


 
Skier   (2002-11-04 15:07) [6]

>{bas}
Да нет, всё нормально.
Таким приёмом частенько пользуются...


 
Anatoly Podgoretsky   (2002-11-04 15:10) [7]

{bas} (04.11.02 15:01)
За исключение, что

public
property Color;
end;

лишнее


 
{bas}   (2002-11-04 15:15) [8]

>> Anatoly Podgoretsky © (04.11.02 15:10)
без

public
property Color;
end;

компилятор ругается


 
Skier   (2002-11-04 15:20) [9]

>{bas}

> компилятор ругается


Как присваиваешь цвет ?
Покажи...


 
{bas}   (2002-11-04 15:25) [10]

>>Skier © (04.11.02 15:20)

В одном модуле обявляю так:
type
THackControl = class(TControl)
public
property Color;
end;

При таком обявлении выдает ошибку что не определено свойство:
THackControl = class(TControl)
end;

а в другом использую:
procedure TForm1.Edit1Enter(Sender: TObject);
begin
THackControl(Sender).Color := clBlack;
end;


 
Skier   (2002-11-04 15:31) [11]

>{bas}
В том же модуле где пишешь THackControl(Sender).Color := clBlack; объяви класс THackControl = class(TControl) end;


 
{bas}   (2002-11-04 15:39) [12]

>>Skier
Я хочу для многих модулей (около 10) использовать этот прием, и что мне в каждом объявлять - я объявил в общем.
А что правильнее в каждом объявлять ??


 
Anatoly Podgoretsky   (2002-11-04 15:45) [13]

Тогда тебе надо создать нормального наследника и размесить его на палитре компонентов


 
Skier   (2002-11-04 15:51) [14]

>{bas}
Или см. Anatoly Podgoretsky © (04.11.02 15:45)
Или можно так в одном модуле (например ColorChange.pas) пишешь

procedure ChangeColor(AControl: TControl; const
AColor : TColor );

implementation

type

THackControl = class(TControl);


procedure ChangeColor(AControl: TControl; const
AColor : TColor );
begin
if AControl <> nil then
THackControl(AControl).Color := AColor;
end;

И потом только говоришь uses ColorChange.pas и
вызываешь ChangeColor(...)


 
{bas}   (2002-11-04 15:58) [15]

спасибо Skier & Anatoly Podgoretsky



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

Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
7-46177
yxz
2002-07-15 21:14
2002.11.14
hook на окошко...


14-46096
Ricks
2002-10-25 17:52
2002.11.14
Тургенев,


3-45748
Ээх
2002-10-24 22:45
2002.11.14
Как установить ширину столбца в RxDBGrid, чтоб был виден ...


1-45984
Gadfly
2002-11-03 14:09
2002.11.14
Change cursor


3-45698
Vityanya
2002-10-27 03:12
2002.11.14
БД





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