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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 00:01   #1
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
Восклицание Delphi окна

Здраствуйте.....
Не могли бы вы мне прояснить кое что....
Я в программе собираюсь использовать две формы....
одна которая вычисляет некоторые значения, а другая форма будет строить график по этим значениям...
Как две формы связать я поняла..
А вот как передать эти значения на другую форму???
Подскажите мне пожалуйста
tanek вне форума Ответить с цитированием
Старый 02.12.2009, 00:07   #2
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Цитата:
Сообщение от tanek Посмотреть сообщение
А вот как передать эти значения на другую форму???
Подскажите мне пожалуйста
ггггг . Есть много способов... а вабще можно вызовом функции формы которая строит график...

uses Unit2;

Form2.SetFunc(data : pointer) // это я к примеру

Можно глобальными переменными, а потом опять же вызывать функцию обновления графиков (ну или сообщить второй форме что данные обновились).
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Старый 02.12.2009, 00:08   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Берем переменную из второй формы в первую:
NewVar:=Form2.MyVar;
Цитата:
Сообщение от notHaker Посмотреть сообщение
А зачем их множить если есть доступ к этим же данным во втором модуле?... А хотя гггг....
Это просто описание принципа, а не готовый ответ

Последний раз редактировалось mihali4; 02.12.2009 в 12:41.
mihali4 вне форума Ответить с цитированием
Старый 02.12.2009, 00:13   #4
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Берем переменную из второй формы в первую:
NewVar:=Form2.MyVar;
А зачем их множить если есть доступ к этим же данным во втором модуле?... А хотя гггг....
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Старый 02.12.2009, 00:24   #5
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

гыыыыы..... не получается... не могу передать параметры...
не могли бы вы мне посмотреть проект сам?
пожалуйста....
Вложения
Тип файла: rar курсач Таня.rar (36.2 Кб, 18 просмотров)
tanek вне форума Ответить с цитированием
Старый 02.12.2009, 00:50   #6
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

итак... в чём состоит задание и что делали вы сами, а что нет? и ГЛАВНОЕ - чего вы хотели добиться в Unit2?
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Старый 02.12.2009, 09:39   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Танюша. что-то мне твой алгоритм предельно не нравится...
Что он делать должен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2009, 13:04   #8
Lokuson
 
Аватар для Lokuson
 
Регистрация: 08.12.2008
Сообщений: 7
По умолчанию

Для того что бы переменные одного модуля Unit1(например) были доступны во втором модуле Unit2(например) Можно:
1. Объявить переменные глобальными в модуле 1 и в модуле 2 в uses прописать название модуля 1 (uses unit1)
2. Можно Объявить функцияю/процедуру модля 1 в пространстве имен класса формы первого модуля (в разделе public пишем переменную:
type
TForm1 = class(TForm)
private
public
MyVar: integer;
end;

Затем в модуле 2 пишем Form1.MyWar и получаем её значение.
3. Можно из формы 1 обращаться к компонентам формы 2 для управления ими (рисования графиков, присваивания названий компонентов) для этого в коде при вывод графика и/или значения пишем Form2.label1.Caption:=MyVar
Я бы этот мир перекомпилил....
Lokuson вне форума Ответить с цитированием
Старый 02.12.2009, 19:12   #9
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
По умолчанию

Я сделала программу вычисления СЛАУ методом простых итераций...
Я ввожу матрицу 3x3, а 4-ая строка идет в матрицу vsego, которая отвечает за свободные коэффициенты....
Он расчитывает прекрасно, и вот я подумала сделать вторую форму, которая бы рисовала диаграмму по ответу....
Поэтому мне нужно туда передать x[g,i], i в unit2 вы не могли бы хотябы кусочек продемонстрировать, а то я не понимаю?!?!?!. Смогла только привязать форму2 к форме1 в процедуре, которая отвечает за построения графика.....

ребят.... ну помогите мне плз... не могу понять
Код:
type
TForm1 = class(TForm)
private
public
MyVar: integer;
end;

Последний раз редактировалось Stilet; 04.12.2009 в 08:52.
tanek вне форума Ответить с цитированием
Старый 04.12.2009, 09:24   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Итак Танюша:
1) Переносим uses Unit2; в самое начало модуля, в interface
2) в Unit2 переносим из первого ArrayX=array [1..100] of array [1..100] of extended;
Пусть там лежит, именно поэтому нужно выполнить 1)
3) x:ArrayX; скопируй во второй модуль в var; Он будет посредником
4) процедуру обьявляй так:
procedure MyGrath(i:integer;x:ArrayX;Sender:TObject);

5) в главной форме пиши вызов окна графика так:
Код:
procedure TForm1.N3Click(Sender: TObject);
begin
 Form2 := TForm2.Create(Application);
 form2.MyGrath(1,x,self);
 form2.Show;
end;
6) Я конечно может чего-то не допонял, но мне ойкак не понравилась твоя работа с гридом. Там ты написала обращение у четвертой колонке, с которой vsego берется, но в работе у меня лично колоноки с таким номером нет, и прога твоя падала. Посему поставил заполнение таблицы так:
Код:
     for i:=1 to count do
    for j:=1 to count+1 do begin
      DefinitionMatrix.Cells[j,i]:=format('%2.3f',[50/(random(100)+1)]);
      matrix[i,j]:= StrToFloat(DefinitionMatrix.Cells[j,i]);
    end;

    for j:=1 to count do
       vsego[j]:=StrToFloat(DefinitionMatrix.Cells[j,3]);
    CalculationOfMaximum;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
delphi прозрачность чужого окна guffer Общие вопросы Delphi 1 26.11.2009 22:20
открытие окна в Delphi R11 Помощь студентам 3 14.02.2008 16:23
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13
открытие окна в delphi dima00 Общие вопросы Delphi 14 27.06.2007 23:25