Форум: "Основная";
Текущий архив: 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