Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Эдит энабле:=фалсе, как сделать фонт цветом, как в труе? [D6, XP]


vegarulez ©   (2007-07-15 14:48:00) 

привет всем мастерам!
У меня такой вопрос, допустим на форме имеется эдит, когда он становится фалсе, меняется цвет текста немного, с чёрного, на несовсем чёрный, как сделать чтобы он даже когда фалсе был чёрным?


vegarulez   (2007-07-20 07:32:00) [1]

Псп, попробую.


alal   (2007-07-17 21:22:00) [2]


> evvcom ©

Спасибо. Я раньше не знал, что так можно. Только
edit1.Enabled:=form1.ActiveControl<>edit1;
Тогда текст будет черным это именно то, чего хотел vegarulez ©.


evvcom   (2007-07-17 10:11:00) [3]


> Alal ©   (16.07.07 21:14) [12]

:-)
твой код записывается гораздо проще:
Edit1.Enabled := Form1.ActiveControl = Edit1;
учи булеву алгебру

> Самое правильное решение

Самое правильное - фигней не страдать, не сбивать никого с толку. Я иногда наоборот хочу, чтобы в задизэйбленном едите можно было текст выделить и в буфер. Вот тогда меняю ReadOnly и Color. Цвет шрифта оставляю как есть, т.е. черный, тогда видно, что от Enabled := False стиль отличается, и есть желание его щелкнуть тогда.


Dib@zol   (2007-07-16 22:05:00) [4]

А мож поставить самопальный обработчик на WM_CTLCOLOREDIT? Если IsWindowEnabled(edit1.Handle)="фалсе", то рисуемся всёравно COLOR_WINDOW'ом и COLOR_WINDOWTEXT'ом.


Alal   (2007-07-16 21:14:00) [5]

а если так:

procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
 var Done: Boolean);
begin
 if Form1.ActiveControl=Edit1 then Edit1.Enabled:=false
   else Edit1.Enabled:=true;
end;


{RASkov}   (2007-07-15 20:17:00) [6]

> не надо прикидываться, речь шла про Эдит %)

Ну я вообще-то и про Эдит рассказывал… :)

Можно конечно и, примерно, так "извернуться":
type
 TMyEdit = class(TEdit)
 private
   procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
 end;
..........

procedure TMyEdit.WMPaint(var Message: TWMPaint);
var Cnv: TControlCanvas;
begin
 inherited;
 if not Enabled then begin
  Cnv:=TControlCanvas.Create;
  Cnv.Control:=Self;
  Cnv.Font.Assign(Font);
  Cnv.FillRect(ClientRect);
  Cnv.TextOut(1, 1, Text+' (disable)');
  Cnv.Free;
 end;
end;


Zagaevskiy   (2007-07-15 20:14:00) [7]


>
> Положи его (Эдит) на контейнер, а контейнеру делай Енабле=фалсе.
> ...(TPanel например).

Самое правильное решение


antonn   (2007-07-15 19:43:00) [8]


> {RASkov} ©   (15.07.07 19:21) [8]

не надо прикидываться, речь шла про Эдит %)


{RASkov}   (2007-07-15 19:21:00) [9]

> [7] antonn ©   (15.07.07 19:16)
> > Тебе нужен Label или лучше Статик с белым фоном....
>
> а как в нем привычным образом редактировать написанное?


[0]> как сделать чтобы он даже когда фалсе былчёрным?

А здесь как? :) Не надо ему походу его редактировать привычным образом....
Только вместо белого фона, нужно clWindow.... у меня просто белый, а про других я не подумал... )


antonn   (2007-07-15 19:16:00) [10]


> Тебе нужен Label или лучше Статик с белым фоном....

а как в нем привычным образом редактировать написанное?


{RASkov}   (2007-07-15 19:04:00) [11]

> [0] vegarulez ©   (15.07.07 14:48)

Положи его (Эдит) на контейнер, а контейнеру делай Енабле=фалсе....(TPanel например).

> [2] vegarulez ©   (15.07.07 17:50)

Тебе нужен Label или лучше Статик с белым фоном....


Kolan   (2007-07-15 18:09:00) [12]

> но тогда как сделать чтоб мышой незя было эдит выделять

Тут поподробее бы — что значит «выделять».


vegarulez   (2007-07-15 18:02:00) [13]

ну или поканает как ты написал... но тогда как сделать чтоб мышой незя было эдит выделять?


Kolan   (2007-07-15 18:02:00) [14]

> а мне нужно, чтобы его нельзя было мышкой выделить…

Ну вот и не мучь пользователя, который за 15 лет уже привык, что если контрол недоступен, то он серый и текст в нем серый и не майся фигнёй.
Или опеши задачу полностью, возможно есть нормальное решение…


vegarulez   (2007-07-15 17:50:00) [15]

не... так не канает... потому как едит мышкой мона выделить... а мне нужно, чтобы его нельзя было мышкой выделить....


Kolan   (2007-07-15 15:00:00) [16]

> Эдит энабле:=фалсе, как сделать фонт цветом, как в труе?

Сделать Енэйбл Тру, и РидОнли = Тру.


Наверх

Титульная страница Поиск, карта сайта Написать письмо