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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.027 c
3-83985
shoo
2003-05-30 10:23
2003.06.26
Выделить программно все строки в dbgrid е


3-83921
Крот
2003-05-29 12:44
2003.06.26
Операция побитового AND в SQL


1-84195
JS
2003-06-12 11:50
2003.06.26
Выбор директории


1-84295
???
2003-06-15 11:17
2003.06.26
как изменить время появления Hint a? и можно отловить это событее


14-84646
Janus
2003-05-28 17:43
2003.06.26
Дизассемблер





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