Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » Software » Кто силен в паскале?


Кто силен в паскале?

Сообщений 1 страница 18 из 18

1

Здравствуйте.
Нужна маленькая консультация знающего паскаль.
Есть каталог со всякими-разными файлами внутри, включая с расширением pas (отчего и подозрение на паскаль),  и нужно ответить на вопрос, является ли ли этот каталог исходником, и если да,
то каким софтом его можно откомпилировать в exe.
Каталог лежит здесь:
https://dl.dropbox.com/s/vs75clyx700mvyd/Sd25.rar?dl=0

Отредактировано SMART (2017-07-01 12:42:18)

2

Это Delphi, но нет некоторых библиотек (пару десятков классов), может они есть внутри проекта, я особо не смотрел. Но Delphi 100%. Еще используються большие паки либ, от сторонних библиотекописателей (Comm Port и др.). И там есть exe в архиве.

Отредактировано MasterElectric (2017-07-01 14:00:25)

3

О как, оказывается Delphi!
Поясню смысл любопытства.
У этой программы два выхода - один через COM1 на ПЛК, а второй на принтер, который может быть подключен через другой порт COM, LPT1, USB или TCP IP.
Есть подозрение, что эта версия программы не содержит блока обслуживания принтера вообще, но есть надежда, что высланный итальянцами пакет, который был приложен выше, может позволить
включить этот блок (но не написать!), если он существует.
Если моя идея не выглядит бредом, подскажите, каким IDE Delphi можно со всей этой кучей поиграться? Если это конечно возможно в принципе.

4

в config файле были пути к Delphi 6, но она очень устаревшая, лучше delphi 7, но я пробовал открывать в последней, она очень не совместима со старыми версиями в основном из-за уникода.

5

SMART написал(а):

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

SMART, выглядит бредом вообще вся история, так не высылают, так посылают )

6

MasterElectric написал(а):

в config файле были пути к Delphi 6, но она очень устаревшая, лучше delphi 7, но я пробовал открывать в последней, она очень не совместима со старыми версиями в основном из-за уникода.

Спасибо,  значит надо искать IDE  Delphi 6, а может и раньше?

------------------------
vt340, на безрыбье и рак - рыба. Или утопающий за соломинку хватается. Вам лично какая поговорка больше по душе в такой ситуации?

Отредактировано SMART (2017-07-01 20:58:15)

7

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

8

Если известен алгоритм передачи (или если его подсмотреть в исходниках) может проще свою программку написать?

9

MasterElectric написал(а):

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

Я правильно понял, что в текущей комплектации для сборки недостаточно? Если так, то я не этим заниматься не буду. Собственно и попросил консультации только для выяснения, просто это будет или сложно. 

MasterElectric написал(а):

Пробовал запустить exe шник из этого пакета вываливается ошибка.

Ошибка потому, что прога ищет папку sd25 как корневую на диске С.  На англо-русской XP работать не будет. Но на русской семерке x64 почему-то работает.

MasterElectric написал(а):

Если известен алгоритм передачи (или если его подсмотреть в исходниках) может проще свою программку написать?

Как блок этой программы?  А иначе смысла нет, потому как этикетка должна печататься автоматом после резки каждой детали, а сигнала об этом на выходе программы мне обнаружить не удалось (смотрел по всем портам). Отсюда и впечатление, что автор программы в имеющейся версии не все скомпилировал. С другой стороны, в имеющихся файлах с расширением pas полно "зеленых", т.е. если я правильно понимаю, незадействованных блоков.

10

Фрагмент ниже отражает ИМХО как раз то, что мне нужно.

Код:
procedure TForm_imposta_stampante.BitBtn3Click(Sender: TObject);
var
   LISTA_PROVA:LIST;
   nome_file:string;
   slista2:TStringlist;
   sagome:sago_ma;
   dato_etichetta:string;
   posietic:string;
begin
BASE_.PF4.SetListaCaratteri(PRINTER_SETUP[5]);

if radiobutton_macchina.Checked then
begin
     panel_tipo_operazione.Visible:=false;
         try
         Slista2:=TStringlist.Create;
         try
            reset(setta_etichetta);
            readln(setta_etichetta,dato_etichetta);
            readln(setta_etichetta,dato_etichetta);
            readln(setta_etichetta,dato_etichetta);
            closefile(setta_etichetta);
         except
           dato_etichetta:='';
         end;//fine del try
         nomefile:=mainpath+'\printer\format\'+dato_etichetta;
         lista_prova.codprof:='abcdefgh';
         lista_prova.qta:=1;
         lista_prova.colore:='wh';
         lista_prova.lungmax:=1000.0;
         lista_prova.sx:=45;
         lista_prova.dx:=45;
         lista_prova.box:='0001';
         lista_prova.finestra:='Hello';
         lista_prova.commessa:='Test11';
         lista_prova.cliente:='test 12';
         lista_prova.SINGLE:='1';
         lista_prova.lungmin:=900.0;
         lista_prova.descrizione_pezzo:='Windo';
         lista_prova.disponibile_1:='time data';
         lista_prova.disponibile_2:='Code';
         SAGOME.codprof:='abcdefgh';
         sagome.CommentP:='test tiket';
         ConvertDataToPrinter( Lista_prova, NomeFile, SLista2,0,sagome);
         base_.pf4.loadlist(slista2);
         base_.pf4.active:=true;
         base_.pf4.stampa;
         finally
         Slista2.free;
         end;//fine della gestione del puntatore (assurdo) alla tabella di stringhe per il padssaggio dei dati a Lucio
         base_.pf4.active:=false;
end;//fine della scelta formato macchina


BitBtn3 - это кнопка вывода этикетки на печать.
base_.pf4 - это принтер c драйвером EasyCoder PF4i
radiobutton - это кнопка источника этикетки, в данном случае, насколько я понимаю, с компа.

Есть ли во фрагменте выше команда вывода на печать?

Отредактировано SMART (2017-07-02 11:28:18)

11

SMART написал(а):

BitBtn3 - это кнопка вывода этикетки на печать.

Похоже на то

SMART написал(а):

base_.pf4 - это принтер c драйвером EasyCoder PF4i

Это объект base_,у него есть pf4 (явно принтформ), после этого управление свойствами либо команды.

SMART написал(а):

radiobutton - это кнопка источника этикетки, в данном случае, насколько я понимаю, с компа.

Не, это селектор.
Выглядит как несколько кружочков в общей рамке, из них выбранный с точкой.
Находится где-то на форме (видимый объект), из которой выдран этот кусок кода.
http://sg.uploads.ru/t/oe3SH.jpg

Вполне возможно, что печать просто не активирована.

SMART написал(а):

Есть ли во фрагменте выше команда вывода на печать?

base_.pf4.stampa;

З.Ы.
Забавно.
Вот по-русски писать в программах не комильфо, а по-итальянски - пожалуйста

А сюда картинки не вставляются?
Бо пипец как удобно.

Отредактировано omercury (2017-07-02 18:34:24)

12

Дык вот эта форма (Delphi от borland сам вытащил).
http://s5.uploads.ru/t/UL4yb.jpg
Справа посередке тест печати, кнопка Printer видимо отправка на печать, а Macchina и Client - да, можно назвать селектор. При выборе Cliente программа лезет на диск с требованием указать на файл этикетки.

так base_.pf4.stampa - это на самом деле base_.pf4.print:tired:
Типовая конструкция

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Print;
end;

но на итальянском языке?

Если так, то правильно ли я понимаю, что Print в Delphi отправляет на печать на принтер, установленный по умолчанию, при этом не имеет значения, как этот принтер подключен - по LPT1, USB или IP?

Отредактировано SMART (2017-07-03 06:54:59)

13

смею предположить что за печать отвечает объект
BASE_.PF4.

например
      ConvertDataToPrinter( Lista_prova, NomeFile, SLista2,0,sagome);
         base_.pf4.loadlist(slista2);
         base_.pf4.active:=true;
         base_.pf4.stampa;

конвертирует разную инфу в некий объект slista2
если принтер активный (в начале кода был выбор принтера)
то запустить метод stampa . думаю он и печатает/

14

SMART написал(а):

Если так, то правильно ли я понимаю, что Print в Delphi отправляет на печать на принтер, установленный по умолчанию, при этом не имеет значения, как этот принтер подключен - по LPT1, USB или IP?

А ему пофиг, куда отправлять: на принтер, в файл, в Com-port....
Шурует в открытый поток (или как оно там правильно называется).

15

omercury написал(а):

SMART написал(а):
    Если так, то правильно ли я понимаю, что Print в Delphi отправляет на печать на принтер, установленный по умолчанию, при этом не имеет значения, как этот принтер подключен - по LPT1, USB или IP?
А ему пофиг, куда отправлять: на принтер, в файл, в Com-port....
Шурует в открытый поток (или как оно там правильно называется).

Тут вот какой прикол.
Автор софта требует, чтобы нужный принтер был установлен по умолчанию, и при этом настаивает на искусственной замене его названия.
Отсюда непонятки: если делфи по Print все равно куда отправлять, то зачем менять название этого "куда"? А если менять название, то зачем устанавливать по умолчанию?

16

SMART написал(а):

Отсюда непонятки: если делфи по Print все равно куда отправлять, то зачем менять название этого "куда"? А если менять название, то зачем устанавливать по умолчанию?


возможно в коде еще что-то где-то проверяется именно по названию.

17

Atomic-dm написал(а):

SMART написал(а):
    Отсюда непонятки: если делфи по Print все равно куда отправлять, то зачем менять название этого "куда"? А если менять название, то зачем устанавливать по умолчанию?
возможно в коде еще что-то где-то проверяется именно по названию.

А, извините, зачем, если нужный принтер должен быть выставлен по умолчанию?

18

Дальнейшее изучение исходников делфи показало, что за печать на не LPT1 отвечает класс PrinterParIntermecF4, а файл PrinterParIntermecF4.pas отсутствует.
Что напрочь лишает возможности разобраться с системой обращения к принтеру не на LPT1 (принтер, который на LPT1, работает напрямую, через DLPORTIO, и в мониторе поэтому не виден).
:suspicious:

Отредактировано SMART (2017-07-05 06:21:31)


Вы здесь » Микроконтроллеры » Software » Кто силен в паскале?