Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2009, 12:49   #1
Gypsy
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 42
По умолчанию Динамическое создание нескольких форм

Здравствуйте, уважаемые!
Перерыл полинтернета, не нашел решения своей задачи.
Задача такая: требуется в режиме рантайм время от времени создавать и убивать формы (кол-во от 1 до n, const n=10). Формы в тоже время не пустые, на них присутствуют TStringGrid, TTimer. Я сделал так:

...

type TStakan = class (TForm)
s: TStringGrid;
t: TTimer;
public
procedure CloseStakan(Sender: TObject; var Action: TCloseAction);
end;

var Stakan: array[1..MaxCountStak] of TStakan;

procedure CreateStakan(sname: string);
procedure UpdateStakan;

implementation

procedure CreateStakan(sname: string);
begin
Application.CreateForm(TStakan,Stak an[i]);
Stakan[i].Show;

end;

Выводится ошибка: "Resourse TStakan nof found"

Подскажите, пожайлуста, что делаю не так?
Gypsy вне форума Ответить с цитированием
Старый 21.10.2009, 12:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure CreateStakan(sname: string);
Var s:TStakan;
begin
 s:=Tstakan.Create;
 Stakan[i]:=s;
 Stakan[i].Show;
end;
Но я бы не массивами делал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2009, 13:16   #3
Gypsy
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
procedure CreateStakan(sname: string);
Var s:TStakan;
begin
 s:=Tstakan.Create;
 Stakan[i]:=s;
 Stakan[i].Show;
end;
Но я бы не массивами делал.
Не работает(
На строчку s:=TStakan.Create выдает "Not enough actual parameters"
Gypsy вне форума Ответить с цитированием
Старый 21.10.2009, 13:21   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

s:=Tstakan.Create(Form1);
или Application;
можно вообще nil поставить...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.10.2009, 13:27   #5
Gypsy
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
s:=Tstakan.Create(Form1);
или Application;
можно вообще nil поставить...
Тоже не работает(
Пробовал и aaplication и Form1 и nil. Ошибка как и вначале "Resourse TStakan nof found"

Забыл сказать, может важно. Это все находится не в unit1, а в другом unt'e.
Gypsy вне форума Ответить с цитированием
Старый 21.10.2009, 13:35   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы не стерли директиву {$R *.dfm} из кода?(она обычно после implementation стоит...но можно и сдвинуть её)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.10.2009, 13:39   #7
Gypsy
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а вы не стерли директиву {$R *.dfm} из кода?(она обычно после implementation стоит...но можно и сдвинуть её)
Если я ее стираю, то Form1, которая создана обычным способом, теперь не запускается. Ошибка: "Resourse TForm1 nof found"
Gypsy вне форума Ответить с цитированием
Старый 21.10.2009, 13:46   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это касается любой формы.
стирать её нельзя(эту директиву)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.10.2009, 13:48   #9
Gypsy
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
это касается любой формы.
стирать её нельзя(эту директиву)
Ну так я ее и не стирал. Попробал просто.
А так с этой дериктивой ошибка все та же: "Resourse TStakan nof found"
Gypsy вне форума Ответить с цитированием
Старый 21.10.2009, 13:51   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в юните где описан TStakan есть эта директива?
рядом с файлом этого юнита есть одноименный dfm файл?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамическое создание компонентов DOLBY Компоненты Delphi 10 17.10.2010 14:03
Динамическое создание событий Fandaret Общие вопросы Delphi 4 14.05.2009 04:20
Создание нескольких форм в одной Лукманов Александр Общие вопросы Delphi 1 11.04.2009 13:08
динамическое создание базы Bayazet БД в Delphi 4 18.03.2009 14:01
Динамическое создание формы Rifler Общие вопросы Delphi 6 11.09.2008 20:50