Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Delphi | Как сделать, чтобы в дочерней форме...

Ответить
Настройки темы
Delphi - [решено] Delphi | Как сделать, чтобы в дочерней форме...

Новый участник


Сообщения: 27
Благодарности: 1

Профиль | Отправить PM | Цитировать


Проблема такова. При запуске программы в основной форме я ввожу некое число. Нажимаю ОК. Должна открыться дочерняя форма, в которой уже будет находиться несколько полей для ввода чисел (число полей равно числу, вводимому на основной форме). Далее с этими числами будет производиться некий счет и все они будут записываться в файл. Вопрос таков: как именно реализовать переход от основной формы к дочерней, чтобы было нужное количество полей?
P.S. Прошу прощения, если вопрос очень тупой, я в программировании почти полный ноль, но прогу нужно срочно написать, кровь из носу.

Отправлено: 19:05, 24-09-2006

 

Новый участник


Сообщения: 6
Благодарности: 1

Профиль | Отправить PM | Цитировать


грид на дочернюю форму

Отправлено: 15:26, 25-09-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 27
Благодарности: 1

Профиль | Отправить PM | Цитировать


Что есть грид? *смущенно*

Отправлено: 19:43, 25-09-2006 | #3


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Madmech
TDrawGrid....

а вообще просто динамически создаемы необходимое кол-во TEdit'ов...
TEdit *te=new TEdit;
te->Top=...;
te->Left=....;

(C++)...

Отправлено: 20:25, 25-09-2006 | #4


Новый участник


Сообщения: 27
Благодарности: 1

Профиль | Отправить PM | Цитировать


Хорошо, это я понял, а как тогда сделать, чтобы во 2-м модуле, где прописаны свойства и методы дочерней формы, использовались значения переменных из 1-го (основного) модуля? Дело в том, что значения переменных k и n, отвечающих за количество столбцов и строк в дочерней форме, задаются в реализации одного из методов 1-го модуля, то есть после implementation, и, значит, не видны для 2-го модуля.

Отправлено: 20:12, 27-09-2006 | #5


Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


Можно после implementation второго модуля написать строчку
uses Unit1;
После этого будет доступен первый модуль. Нужные переменные придется делать глобальными, чтоб можно было их считать.

-------
Лучше ничего не делать, чем делать ничего.


Отправлено: 23:05, 27-09-2006 | #6


Новый участник


Сообщения: 27
Благодарности: 1

Профиль | Отправить PM | Цитировать


Сделал уже давно! Все равно не помогает! Второй модуль видит эти переменные, при компиляции ничего не гавкает, но не воспринимает их значения, которые я задал в реализации методов в первом модуле.

В первом модуле:
Код: Выделить весь код
procedure TForm1.Button1Click(Sender: TObject);
begin
   k := StrToInt(Trim(Edit1.Text));
   n := StrToInt(Trim(Edit2.Text));
   Form2.Show;
end;
Во втором модуле:
Код: Выделить весь код
procedure TForm2.FormCreate(Sender: TObject);
var i, j: integer;
begin
  with StringGrid1 do
  begin
    ColCount := n;
    RowCount := 2*k+1+4;
    for i := 1 to n do
      Cells[i,0] := 'Шпангоут №'+IntToStr(i);
    for j:= 1 to k do
      Cells[0,j] := 'f(x'+IntToStr(j)+')';
    for j:= k+1+4 to 2*k+4 do
      Cells[0,j] := 'fкорр(x'+IntToStr(j-k-4)+')';
    Cells[0,k+1] := 'fср';
    Cells[0,k+2] := 'a1';
    Cells[0,k+3] := 'b1';
    Cells[0,k+4] := 'c2';
  end;
end;
Все равно при компиляции k и n воспринимаются равными нулю, как будто я не задавал их значения.

Отправлено: 23:29, 27-09-2006 | #7


Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


Во втором модуле не нужно объявлять глобальные переменные k и n. А обращатся к ним нужно вот так:
Form1.k
Form1.n

Как вариант, можно обращаться непосредственно к Edit`у первой формы:
k := StrToInt(Trim(Form1.Edit1.Text));
n := StrToInt(Trim(Form1.Edit2.Text));

-------
Лучше ничего не делать, чем делать ничего.


Отправлено: 08:47, 30-09-2006 | #8


Новый участник


Сообщения: 27
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо! Проблема решена. Я сделал это так, если кому интересно:
Код: Выделить весь код
procedure TForm1.Button1Click(Sender: TObject);
begin
  k := StrToInt(Trim(Edit1.Text));
  n := StrToInt(Trim(Edit2.Text));
  Application.CreateForm(TForm2, Form2);
  Form2.Show;  
end;
Нажимая на Button1 в 1-й форме, я перехожу во 2-ю, дочернюю форму, где строится таблица k x n.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:56, 30-09-2006 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Delphi | Как сделать, чтобы в дочерней форме...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] как сделать чтобы окно не закрывалось? Ingolder Скриптовые языки администрирования Windows 12 20-01-2015 19:10
PowerShell - [решено] как сделать чтобы окно не закрывалось? Ingolder Скриптовые языки администрирования Windows 4 09-12-2009 13:10
Разное - [решено] Как сделать, чтобы комп выключался с отключением питания? James Douglas Microsoft Windows 2000/XP 2 04-09-2008 20:27
[решено] как сделать чтобы ХР показывал расширения файлов? eeezurab Microsoft Windows 2000/XP 8 27-06-2007 18:46
как зделать чтобы ктопка в форме становилась неакнивной Vlad Drakula Вебмастеру 1 21-12-2003 02:58




 
Переход