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

Вниз

Edit   Найти похожие ветки 

 
Far   (2003-06-07 18:00) [0]

Подскажите, как не пустить фокус в Edit, не прибегая к свойству Enable?


 
Palladin ©   (2003-06-07 18:46) [1]

Visible:=false


 
Song ©   (2003-06-07 18:49) [2]

Никак. А зачем такое ухищирение? Чем Enabled не нравится?


 
Anatoly Podgoretsky ©   (2003-06-07 18:59) [3]

Спрашивается, а зачем тогда Edit если редактировать нельзя?


 
Far   (2003-06-07 19:27) [4]

Если Enable:=false, то шрифт меняет цвет. А это не подходит. И для Edit уже сделал нужное форматирование, поэтому не хочу выбирать другой объект.


 
Song ©   (2003-06-07 20:09) [5]

Почему именно фокус нельзя пускать?


 
Navi ©   (2003-06-08 08:54) [6]

Замени TEdit на TPanel (поиграй бордером - получится вид как у TEdit).


 
AngelSaint   (2003-06-08 09:22) [7]

Можна сделать так: например у тя есть 3 компонента TEdit. Не пустить фокус те нада во 2-й едит. Так вот, для него на событие OnEnter пишешь:
edit3.SetFocus;
Срабатывает быстро, что и не замечаешь что фокус передается второму едиту.


 
REP ©   (2003-06-08 09:49) [8]

AngelSaint (08.06.03 09:22)
Ага, а если он из первого Edit"a щелкнул мышкой во второй, то попадает в третий, очень удобно... :-)


 
Yanis ©   (2003-06-08 10:22) [9]

WM_SETFOCUS
WM_KILLFOCUS


 
AngelSaint   (2003-06-08 14:37) [10]

REP © (08.06.03 09:49)
а что делать? красота требует жертв. но вабщето компонент, которому передается фокус должен определить Far


 
Мое имя (клоны все равно суксь)   (2003-06-09 09:36) [11]


> Anatoly Podgoretsky © (07.06.03 18:59)

штоп например скопировать

> Far (07.06.03 18:00)

можыт нужно просто штоп по табУ фокус не попадал, тада ТапСтоп=фалсэ (от мыша не спасет ни разу)


 
Um   (2003-06-09 14:48) [12]

var
OldWinProc:pointer;

implementation

Function FunWinProc(a,b,c,d:dword):dword;stdcall;
begin
case b of
WM_LButtonDown,WM_RButtonDown,WM_LBUTTONDBLCLK:;
else result:=CallWindowProc(OldWinProc,a,b,c,d)
end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
if OldWinProc<>nil then exit;
OldWinProc:=pointer(GetWindowLong(edit1.Handle,gwl_wndproc));
SetWindowLong(edit1.Handle,gwl_wndproc,integer(@FunWinProc));
end;


 
VMcL ©   (2003-06-09 14:51) [13]

>Um (09.06.03 14:48)

1. Замечательный Result при WM_LButtonDown,WM_RButtonDown,WM_LBUTTONDBLCLK :)

2. Можно просто перекрыть WndProc (protected).


 
han_malign ©   (2003-06-09 14:59) [14]

Перекрыть CanFocus


 
KSergey ©   (2003-06-09 15:06) [15]

А вот подумалось: задача именно чтобы фокус не пришел, или чтобы нельзя было значение исправить? А то может проще все кнопки просто гасить в KeyDown (не, не там, сечас не помню, смотреть лень, но там, где можно написать Key = #0). Тогда фокус то придет, но значение все равно не исправить.. (ну разве кроме случая вставки из буфера - его навеное тоже можно как-то пришибить)


 
VMcL ©   (2003-06-09 15:08) [16]

>KSergey © (09.06.03 15:06)

>чтобы нельзя было значение исправить
TEdit.ReadOnly


 
han_malign ©   (2003-06-09 15:11) [17]

ControlStyle:=ControlStyle+[csNoStdEvents]-[csClickEvents,csDoubleClicks ,csReflector,csMenuEvents];


 
KSergey ©   (2003-06-09 15:27) [18]

> VMcL © (09.06.03 15:08)

Хи, точно (нервно)
Ну я и балда! :((( Этож надо было такое сморозить...


 
ocean ©   (2003-06-10 12:20) [19]

Господа, не вижу проблемы.
Var MySender : TWinControl;

Во все контролы, имеющие фокус, в OnEnter:
MySender := Sender as TWinControl;

И, наконец:
procedure TForm1.Edit1Enter(Sender: TObject);
begin
MySender.SetFocus;
end;



 
Um   (2003-06-11 06:39) [20]

procedure TForm1.FormCreate(Sender: TObject);
begin
fmedt:=edit1.WindowProc;
edit1.WindowProc:=medt;
end;

procedure TForm1.medt(var message: tmessage);
begin
if message.Msg<>wm_setfocus then
fmedt(message)
else
windows.SetFocus(message.WParam)
end;


 
Anatoly Podgoretsky ©   (2003-06-11 07:54) [21]

Так и не объяснено - почему нельзя пускать фокус. Чувствуется что просто нужна метка, выглядящая как TEdit, но неумеет сделать такой вид и поэтому использован этот контроль.



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

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

Наверх




Память: 0.51 MB
Время: 0.025 c
3-83968
andrey__
2003-05-27 15:25
2003.06.26
Нужно определить фиксированную часть в <B>TDBGrid </B>


14-84705
Maxim Pshevlotsky
2003-06-05 11:30
2003.06.26
Что лучше POP3 или IMAP


14-84537
linker
2003-06-04 10:53
2003.06.26
PDF?????????????????????????????????????


3-83970
Jaxtor
2003-05-29 16:30
2003.06.26
DBGridEh


14-84756
Думкин
2003-06-06 07:29
2003.06.26
Лето - отдых.