![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как посоветуете реализовать [D7]
***mikle*** © (2007-04-23 01:34:00)У меня есть несколько однотипных объектов, их надо обрабатывать на отдельной форме. Как реализовать обработку этих объектов, чтобы мне не приходилось обращаться к главной форме, а можно было работать как в процедуре с передаваемыми аргументами, но после этого их вернуть в уже изменённом виде обратно в исходную форму?
default (2007-04-23 02:38:00) [1]а окна редактирования обычно показывают в модальной режиме поэтому я ShowModal и приплёл
default (2007-04-23 02:28:00) [2]ну можешь добавить к форме редактирования метод типа
procedure TEditForm.ShowXXX(car: TCar);
begin
//...
ShowModal; //можешь результат ShowModal проверять, обычно так и делают
//...
end;
ShowModal не вернёт управления пока форма не будет закрыта
и ты в главной форме будешь писать editForm.ShowXXX(car)
и после этой строчки car будет отредактирован
можно редактируемый объект выставлять через свойство формы редактирования, передавать через конструктор,...
всякие варианты вообщем есть
выбери наиболее подходящий тебе
{RASkov} (2007-04-23 02:25:00) [3]> [6] ***mikle*** © (23.04.07 02:20)
Описание своей машинки сделай в отдельном юните, там же и переменную, и этот юнит куда надо туда и подключай.... потом работай с той переменной с любого места программы... типа Application, Screen, Printer....
***mikle*** (2007-04-23 02:20:00) [4]как буде твыглядеть примерный синтаксис такой формы, в каком обработчике надо будет возвращать конечные данные(OnClose?) и как оформить в форме входные данные? Просто ничего подобно я никогда не писал... я паскаль знаю более-менее, а делфи своими силами осваиваю, потому спросить более не у кого, так что извините, если вопросы кажутся тупыми... Заранее спасибо за помошь!
default (2007-04-23 02:04:00) [5]объекты передаются по ссылке ведь всегда(даже без var они будут по ссылке передаваться)
то есть всё, что будет наделано с объектом внутри формы редактирования объекта будет видно и коду который вызвал эту форму редактирования передав ей параметром объект для редактирования через GUI
default (2007-04-23 02:03:00) [6]объекты передаются по ссылке ведь всегда(даже без var они будут по ссылке передаваться)
то есть всё, что будет наделано с объектов внутри форме редактирования объекта будет видно и коду который вызвал эту машинку
***mikle*** (2007-04-23 01:56:00) [7]я ж не спрашиваю, как реализовывать процедуру...
у в одной форме описаны объекты такого плана (например машинка)
MyCar=object
Pict:TImage;
x,y:integer;
end;
мне надо открыть другую форму и в ней произвести какие-нибудь действия с определённорй машиной, нипример поменять ей изображение, узнать скорость, посчитать расстояние до чего-нибудь и т.д., а потом при закрытии второй формы вернуться к первой и при этом вернуть какие-нить величины (например хоть скорость). Просто реализовать интерфейс для пользователя на имеющейся форме будет оч сложно - много-много элементов (в реальном случае их намного больше), а динамически убирать имеющиеся, создавать новые, потом опять возрождать старые - это извращенство!
Меня интересует, можно ли грубо говоря вызвать форму с параметрами, типа
form2.show(Var car1:MyCar; its_speed:integer);
или же это надо какую-нить DLL писать отдельную или вообще отдельную прогу, а потом её вызывать из текущей.
default (2007-04-23 01:44:00) [8]можешь, например, эти объекты кидать к конструктор формы которая их будет редактировать через свой GUI
Kedge (2007-04-23 01:39:00) [9]procedure ChangeLabel(Lb: TLabe; const NewCapt: string);
begin
Lb.Caption := NewCapt;
end;
?