Главная страница
    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.041 c
3-1116840124
aleliko
2005-05-23 13:22
2005.06.29
И снова картинки ...


4-1115567827
alex_samus
2005-05-08 19:57
2005.06.29
Параметры программы


8-1109433379
DIVERSANT_UA
2005-02-26 18:56
2005.06.29
Усеченный конус в OpenGL


14-1117565007
NightStranger
2005-05-31 22:43
2005.06.29
С чего все начинали


14-1117445185
keal
2005-05-30 13:26
2005.06.29
сайт delphigfx.mastak.ru умер?





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