Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > Перевод проги из под DOS в Windows |
Автор: Маринка 13.1.2006, 17:43 |
Здравствуйте, с праздниками всех. У меня такая проблемка. Есть расчетная программа. на VB, которая сделана для работы в DOS'e ! Надо её как-то переделать так, чтобы она работала в виндузе. А также она почему-то не хочет работать с лазерным принтером. Первый раз сталкиваюсь с такой проблемой, поэтому даже не представляю как это делать. вроде бы и не сложно, а когда берусь, то выходит , что не всё так просто. Помогите, пожалуйста. Большое спасибо заранее. |
Автор: Naghual 13.1.2006, 17:47 |
А есть исходники этой програмки? Или хотябы алгоритм ее работы и расчетные функции? |
Автор: Маринка 14.1.2006, 16:22 |
Исходник есть и я его прикрепляла к сообщению №1, почему-то его нет. Можно же сюда вставить файл? Пробую ещё раз. |
Автор: Naghual 15.1.2006, 17:08 |
Програмка эта не на VB а на его далеком предшественнике. Необходимо, во первых, переписать этот исходник под VB. У тебя знания о VB позволят это сделать? |
Автор: Voldemar2004 15.1.2006, 19:51 | ||||
Пример умножения 2-ух матриц:
Маринка, тебе надо только глядя на мой пример, заменить для своего случая операторы. P.S. И не надо пользоваться Goto, а то не понятно, что куда ведет. Для его замены лучше использовать процедуры Sub, If... elseif... end if, Select Case ... End Case. |
Автор: Маринка 18.1.2006, 10:53 |
Ага, понятно..а что там такое Locate ?? Как бороться с этим? |
Автор: ~FoX~ 18.1.2006, 11:13 |
Locate - указывает место на экране где будет надпись выводиться - их можешь просто выкинуть. |
Автор: Маринка 12.2.2007, 11:31 |
Откуда там берётся значение I ?? Что такое Data ..,.,.,.,., ? Как это перевести в нормальный VB, чтоб работало? |
Автор: mihanik 12.2.2007, 15:32 |
Data и Read там используются для определения констант... Оператор DATA позволяет хранить данные прямо в программме Read считывает очередные данные из оператора DATA |
Автор: JusTalionis 12.2.2007, 15:48 |
Data - Read в VB6 нет. Придется в ручную присваивать каждое необходимое значение каждому элементу массива при помощи знака равенства. I - это счетчик цикла. Его начальное и конечное значения задаются в строке For. Маринк, а ты, вообще в Бейсике волокёшь? и в VB6 в частности? Потому что построчно переделывать такой исходник довольно сложно. Я б рекомендовал поступить так. Если тебе известна суть работы программы, легче написать ее интерфейс заново - на VB6. А саму формулу вычисления взять из старого исходника (ну с небольшими исправлениями). Вот так. Потому что идеология интерфейса VB6 (оформление проги, то есть) в VB совсем другая, чем было в DOS. |
Автор: mihanik 13.2.2007, 08:40 |
Маринка, прислушайся к тому, что JusTalionis говорит. Дело, между прочим! |
Автор: JusTalionis 13.2.2007, 13:05 |
mihanik, я тут посмотрел; если у нее не стоит задача сделать законченную прогу, а только проблема с печатью на лазерке, она может сделать много проще: чуть поправить свой исходник и запускать его под QB. Там, как я вижу, принтер открывается как файл, может быть поэтому лазерка и не печатает. Ну-дык, можно легко перенаправить вывод в файл; получится текстовый файл, и его уже распечатать средствами Windows. |
Автор: Маринка 13.2.2007, 15:54 |
- I - это счетчик цикла. Его начальное и конечное значения задаются в строке For. - это понятно, что счетчик. Не понимаю, где используется это значение, т.е. как оно от пользователя зависит? Когда именно I=1 до 6, а когда I=7 до 11 .... где I узнает программа? Мне плохо в том смысле, что самих расчетов у меня нет, в этой строительной теме я ничего не понимаю, мне надо-чтоб прога работала в винде и чтоб печатала нормально. С печатью я ещё не разбиралась. А с самой программой- вроде легкая, расчеты не меняются там, а вот с этими I - не понимаю пока. Сделала просто форму одну, где user вводит все данные, нажимает РАСЧЕТ и ..готово..типа. Там ещё поля Text - куда вводятся все данные надо мне как-то обозначить переменными что ли..(?) - RY, RX и т.д. ну с этим я тоже разберусь, наверное - это тоже из области нетрудного. Добавлено @ 15:56 просто попросидли меня помочь - а я что-то вожусь с ней, самой аж стыдно и неудобно, неприятно. |
Автор: JusTalionis 13.2.2007, 16:29 | ||||||
Весь блок кода с циклами For и DATA - READ - это начальный расклад значений в массивы, то есть инициализация. В VB инициализации выполняющиеся автоматически при старте программы, надо помещать в процедуру Private Sub Form_Load(). Вызываешь, как обычно, пустую заготовку этой процедуры и пишешь в ней присвоения в ручную всем элементам массивов необходимых начальных значений. Например, начинается:
Массив нужно объявить как глобальный: создай модуль, и внутри него объяви. |
Автор: Маринка 14.2.2007, 13:42 |
понятно, хорошо, интересно, а почему тогда в этом исходнике не написали в одну строчку все константы (Data ....) и зачем там сделано было блоками? |
Автор: JusTalionis 14.2.2007, 14:25 |
Вот, сам задавался этим вопросом! Может быть, чтобы было легче отыскать, если потребуется заменить? Это ведь исходные параметры, типа, там, прочности на растяжение, упругости и т. п., как я понял? Ну, понадобится, например заменить данные - для другой марки стали... Но тогда можно было просто визуально поделить блоки DATA, а считывать одним циклом. Вообще, лично я в таких случаях всегда считывал двумя вложенными циклами, и всё OK получалось. Пользуясь случаем!!! Позволь тя в щечку, Мариночка ![]() ![]() |
Автор: Маринка 24.2.2007, 13:51 |
ой, спасибо. Вас всех представителей сильного пола тоже с праздником!!! Вот и ваш праздник красного цвета стал в календаре. А я сделала вроде программку. Буду разбираться с печатью. Пока сделала так, чтобы отчет(все результаты и исходные данные) из Text сохранялся в файл *.txt. Ну и потом его можно и распечатать. Сейчас думаю над кнопочкой на форме, чтоб сразу можно было распечатать.Что, да как это делать, пока не знаю. Есть ли разница работы с лазерными и струйными принтерами? |
Автор: JusTalionis 24.2.2007, 16:50 |
![]() А касательно нюансов печати - не знаю, не пробовал. Кто знает - надеюсь, отпишет. |