![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
пожалуйста скажите что не так
Dy1 © (2008-09-14 01:01:00)
procedure TForm1.butAddClick(Sender: PObj);
var f, butOK, Ename: PControl;
procedure Click(d, Sender: PObj);
var i: integer;
begin
i := LV.LVItemAdd(Ename.Text); // AV. Как правильно?
end;
begin
f := NewForm(Applet, 'Добавление/редактирование записи').SetSize(400,300);
f.ExStyle := f.ExStyle or WS_EX_DLGMODALFRAME or WS_EX_WINDOWEDGE;
f.Style := f.Style and not (WS_MINIMIZEBOX or WS_MAXIMIZEBOX);
Ename := NewEditbox(f, []).SetSize(145, 22);
butOK := NewButton(f, 'OK').PlaceRight.SetSize(64, 23);
butOK.OnClick := TOnEvent( MakeMethod(nil, @Click));
f.ShowModal;
Ename.Free;
butOK.OnClick := nil;
butOK.Free;
f.Free;
end;
Dy1 (2008-09-22 17:33:00) [1]там 5 компонентов. butOK, Ename и остальное вынес в глобал. Не нравится, зато работает
Дмитрий К (2008-09-15 16:42:00) [2]Ну сделай так:
procedure TForm1.BtnAddClick(Sender: PObj);
var f, butOK, Ename: PControl;
procedure Click(D: PControl; Sender: PObj);
var i: integer;
begin
i := Form1.LV.LVItemAdd(D.Text);
end;
begin
f := NewForm(Applet, 'Добавление/редактирование записи').SetSize(400,300);
Ename := NewEditbox(f, []).SetSize(145, 22);
butOK := NewButton(f, 'OK').PlaceRight.SetSize(64, 23);
butOK.OnClick := TOnEvent(MakeMethod(Ename, @Click));
f.ShowModal;
f.Free;
end;
только это тоже не совсем правильно, хотя работает.
Dy1 (2008-09-15 16:24:00) [3]а КАК правильно? Это и был вопрос. При выносе Click не видится Ename, а глобальным делать не хочу
Дмитрий К (2008-09-14 22:46:00) [4]
> что не так
то, что локальная процедура метода TForm1 используется как обработчик события другого объекта
Dy1 (2008-09-14 21:23:00) [5]забыл сказать, что Add2Autofree или как там его - AV в этом коде. KOLnMCK 2.86 и 2.87+
Dy1 (2008-09-14 21:22:00) [6]LV есть. МСКшный
Compiler (2008-09-14 20:52:00) [7]> Ename.Free;
> butOK.OnClick := nil;
> butOK.Free;
Лишнее
vampir_infernal (2008-09-14 12:27:00) [8]объект LV вы создаёте?