Здравствуйте! Я соединил два проекта после чего попытался работать с переменной с другого проекта(Короче добавил в приложению с базой данной проект вывода отчета) но последовала ошибка о неизвестной переменной. Где я забыл обявить что либо? В dpr файлах система при добавления указала изменения. Скажите как решить эту проблему? как вообще делается добавление? Спасибо!
Доброе время суток, dude! ===== Pro bono publico, no bloody panico! ===== Первое, что хотелось бы сказать: "Следи пожалуйста за тем, что набираешь, а то при таком количестве ошибок в согласовании окончаний достаточно сложно понять смысл вопроса. Пришлось пять раз перечитать." Соединил два проекта, говоришь? Ну-ну. Сказал бы проше: фому из другого проекта засунул. По существу: 1) Ты объявляй в том модуле, который у тебя использует QRLabelForm (обычно Дельфя при попытке компилляции сама пытается это сделать), т.е. в uses'ах Form1. 2) Переменная должна быть доступна. О степени доступности читай в Рассылке Вопрос №191 Выпуск №077 от 25.09.2002, 07:10 ПиС: У тебя вопрос получился из серии "Что-то у меня ничего не работает. Кого попросить, чтобы он нажал, чтобы заработало?" Экспертам: Наверное
пора уже какой-нибудь раздел на сайте открывать, типа "Как спросили, так и ответили!". В раздел можно будет заносить письма (ну и ответы, кончено), в которых отправители выделились а) своей манерой повествования; б) старанием показаться умнее, чем на самом деле; в) и т.д. и т.п. Ответ отправлен: 25.11.2002, 21:20 Отправитель: Idle Sign Отвечает Артём Шегеда
Здравствуйте, dude!
То, что компилятор добавил форму в проект - это хорошо, но этого мало. Необходимо указать одному модулю, что существует ещё один: то есть в модуле Unit1 добавить следующие строки:
impementation uses qrlabelT in 'qrlabelT.pas';
- здесь "implementation" - уже существующее ключевое слово. После этого можешь спокойно обращаться ко всем interface-компонентам модуля qrlabelT из Unit1 Ответ отправлен: 25.11.2002, 13:48 Отправитель: Артём Шегеда Отвечает Jadd
Приветствую Вас, dude! Такс. Давай разбираться. Ты добавил форму из другого проекта(по крайней мере это видно из примера). Далее, чтобы обратиться к переменной из этой формы(читай класса), тебе надо в раздел uses внести запись типа qrlabelT. Далее, в месте, где тебе надо, пишешь: <класс, в котором объявлена переменная>.переменная; Все. Если переменная объявлена вне класса (т.е. глобальная), тогда ссылки на объект не нужно. Естественно, при ссылке на класс, должен существовать экземпляр этого объекта. Ответ отправлен: 25.11.2002, 13:58 Отправитель: Jadd
Вопрос № 304
Здравствуйте, уважаемые эксперты. У меня вопрос следующего содержания. По работе у меня стоит такая задача: написать программу, которая решает дифференциальное уравнение методом Рунге-Кутта. В этом методе график решения [т.е.y=f(x)] строится по точкам. Я для построения использую компонент Image. Для построения каждой следующей точки использую свойство компонента Image Pixels[x,y], где x,y- переменные ЦЕЛОГО типа (типа Integer). А реальная координата, которая получается в результате вычислений почти всегда типа Real. Я и определяю в самом начале x, y как Real. Причём я понимаю, что так или иначе а любой график на компе строится по пикселям , и в компоненте Image Pixels[x,y] всё равно придётся ставить целые переменные. Так вот как, учитывая выше сказанное, описать в программе переменные x,y чтобы они были вроде как Real и в то же время Integer? Короче
говоря, как пишут программы, которые строят графики по координатам типа REAL? Заранее спасибо. Начинающий инженер Алексей.
Приветствую Вас, Алексей! При построении графиков обычно используют округление. Т.е. значения вычисляются как real,и округляются только при выводе на график (чтобы не накапливалась погрешность вычисления). Для округления можно использовать ф-ю Round.
Ответ отправлен: 27.11.2002, 08:58 Отправитель: Рыжик Отвечает Артём Шегеда
Приветствую Вас, Алексей!
Ну, вообще-то, это проблема, скорее, не Delphi, а Pascal, и разрешить её просто - достаточно при выводе точки (линии, окружности и пр.) привести координату к целому:
with Image1.Picture.Bitmap do Canvas.LineTo(round(x/MaxX*Width),Height-round(y/MaxY*Height));
Ответ отправлен: 26.11.2002, 18:55 Отправитель: Артём Шегеда Отвечает Necro
Добрый день, Алексей! График лучше строить не по пикселям, а командами MoveTo и LineTo (См. помощь в Дельфи) round(X:real) возвращает число типа integer, округлённое до ближайшего целого. trunc(X:real) возврашает число типа integer, отрезав дробную часть. Ответ отправлен: 26.11.2002, 19:04 Отправитель: Necro Отвечает Nick Vishnievski
Приветствую Вас, Алексей! а почему бы тебе просто не округлить real значения при задании точек? т.е. у тебя есть значения, полученные из решения + используй функции Round (она возвращает значение в Int64, что немного великовато, но можно и его изменить на просто Int), или функцией floor (округляет до большего, можно сделать floor (x+0.5) и получится нормальное округление). так что Image1.Canvas.Pixels [floor(x+0.5), floor (y+0.5)]=$0; должно работать (как мне кажется). надеюсь, помог, а если нет, то прости, не совсем значит вопрос понял.
Ответ отправлен: 27.11.2002, 14:55 Отправитель: Nick Vishnievski
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.