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

Вниз

Создание компонентов Событие OnChange Для TEdit   Найти похожие ветки 

 
Коля   (2005-06-08 09:08) [0]

Уважаемые мастера Delphi у меня возникла пробляма суть которой я так и немогу понять. На динамически создоваемый компонент TEdit
Событию  OnChange присваиваю процедуру

procedure TLocate.SetGrid(const Value: TMyDbGrid);
begin
FGrid:=Value;
if Value<>nil then
 begin
  if FEdit=nil then
   begin
    FEdit:=TEdit.Create(Self);
    FEdit.Visible:=False;
    FEdit.Parent:=FGrid;
    FEdit.Ctl3D:=False;
    FEdit.OnChange:=EditChange;//-Вот она
    FEdit.OnKeyDown:=EditKeyDown;
    FEdit.OnExit:=EditExit;
    FGrid.OnKeyPress:=KeyPressGrid;
   end;
 end;
Все остальные присвоеные процедуры вызываются
а OnChange нет туда даже незажоит может кто знает вчём дело
Помогите пожалуйста очень надо.
end;


 
Digitman ©   (2005-06-08 09:17) [1]


> Все остальные присвоеные процедуры вызываются


это как ?

при


> FEdit.Visible:=False


эдит-контрол не может получить фокус, соответственно не может реагирговать ни на какие события ввода ..

?


 
Коля   (2005-06-08 09:23) [2]

Эдит становится Visible=True при KeyPress Grida И соответственно получает фокус ввода.

Procedure TLocate.KeyPressGrid(Sender: TObject; var Key: Char);
begin
FEdit.Visible:=True;
FEdit.Text:=Key;
FEdit.SetFocus;
FEdit.SelStart:=Length(FEdit.Text);
end;


 
Digitman ©   (2005-06-08 09:41) [3]

странно это ..

а ты WndProc() нигде не перекрывал ?


 
Коля   (2005-06-08 10:28) [4]

Да вроде нет


 
Digitman ©   (2005-06-08 10:43) [5]

метод TCustomEdit.Chahge (в теле которого собссно и вызывается обработчик OnChange) вызывается как результат обработки нотифик.сообщения EN_CHANGE

цитата из справки :

The EN_CHANGE notification message is sent when the user has taken an action that may have altered text in an edit control. Unlike the EN_UPDATE notification message, this notification message is sent after Windows updates the screen. The parent window of the edit control receives this notification message through the WM_COMMAND message.

Обрати внимание на подчеркнутое


 
Коля   (2005-06-08 11:17) [6]

Ну да после переопределения Parent на SetParent(value) компонента тобишь на форму или панель то всё ок но как это избавиться мне нужен парент на Grid


 
Digitman ©   (2005-06-08 11:42) [7]


> мне нужен парент на Grid


чем это обосновано ?


 
Коля   (2005-06-08 12:34) [8]

да уменя Grid Align =AlCli.. чтобы не искать его по форме
Left и TOP
Я выкрутился создал TPanel Определил на Grid а на Panel уже определил мой Edit


 
Digitman ©   (2005-06-08 12:39) [9]

можно было и без панели

делаешь форму родителем, обрабатываешь у нее OnResize, а в обработчике вычисляешь и устанавливаешь координаты эдит-контрола


 
Коля   (2005-06-08 14:36) [10]

Ну да можно было и так спасибо за помощь



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

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

Наверх




Память: 0.46 MB
Время: 0.042 c
3-1116063132
Shnayder
2005-05-14 13:32
2005.06.29
Borland Delphi 5 ->MS SQL


4-1115230473
pound
2005-05-04 22:14
2005.06.29
порты


6-1112245143
Norn1
2005-03-31 08:59
2005.06.29
http&amp;ftp via proxy


8-1109794554
starlit
2005-03-02 23:15
2005.06.29
как поменять изображение у BitBtn? взять его из ImageList ?


14-1117694379
12DFBDDh
2005-06-02 10:39
2005.06.29
файлы djvu





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