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

Вниз

Ошибка при удалении Edit.   Найти похожие ветки 

 
Black_Tomcat ©   (2007-09-07 19:58) [0]

У меня возникла не большая проблемка. :-) Решение другое придумать можно, но просто интересно, что происходит.
Дело в том, что на EditOnChange Edit нормально удаляется, а на OnEditKeyDown удаляется, но после окончания происходит ошибка "Access violation at address XXXXXXXX. Read of address XXXXXXXX". Вот то, что я написал.


procedure TCfgForm.PosHorLDblClick(Sender: TObject);
var Edit:TEdit;
begin
Edit:=TEdit.Create(Nil);

Edit.SetBounds(label2.Left-3,Labe2.Top-3,Label2.Width,Label2.Height);
Edit.Text:=PosHorL.Caption;
Edit.Tag:=1;
PrevPosition:=PosHorSB.Position;

Edit.OnChange:=EditOnChange;
Edit.OnKeyPress:=EditOnKeyPress;
Edit.OnKeyDown:=EditOnKeyDown;

Edit.Parent:=GroupBox4;
Edit.SetFocus;
end;

procedure TCfgForm.EditOnKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
Case key of
VK_ESCAPE:Case TEdit(Sender).Tag of
           1:begin
               PosHorSb.Position:=PrevPosition;
               TEdit(Sender).Free;
               Exit;
             end;
            2:begin
               PosVerSb.Position:=PrevPosition;
               TEdit(Sender).Free;
               Exit;
              end;
           end;
VK_RETURN:Case TEdit(Sender).Tag of
           1:begin
               TEdit(Sender).Free;
               Exit;
             end;
            2:begin
               TEdit(Sender).Free;
               Exit;
              end;
           end;
 end;
end;


 
Инс ©   (2007-09-07 20:10) [1]

Однажды отвечал на похожий вопрос:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=46005


 
Вася Правильный   (2007-09-07 20:23) [2]

уничтожение объекта из собственного обработчика чревато


 
Black_Tomcat ©   (2007-09-08 19:49) [3]

Большое спасибо.
Все понятно, буду убивать его чужими руками.


 
MsGuns ©   (2007-09-08 22:40) [4]

Если динамический TEdit отображается в единственном числе, но в разных местах, лучше использовать "обычный" (т.е. созданный в дизайне), показывая его или пряча в нужный момент. В этом случае прятание лучше всего делать в его обработчике OnExit



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

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

Наверх




Память: 0.48 MB
Время: 0.021 c
15-1189390927
Slider007
2007-09-10 06:22
2007.10.07
С днем рождения ! 10 сентября 2007 понедельник


2-1189420317
Nikola62
2007-09-10 14:31
2007.10.07
Как не дать форме открыться


1-1185358913
Kns
2007-07-25 14:21
2007.10.07
Zorder форм


2-1189579699
Sonia
2007-09-12 10:48
2007.10.07
Дата и время в одном поле


6-1170350365
Vitaliy U.S.
2007-02-01 20:19
2007.10.07
Интернет серфинг и TWebBrowser