Создание своего терминала. На основе Delphi
|
|
Space | Дата: Пятница, 05.03.2010, 00:52 | Сообщение # 46 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Quote (Dimsan) Всё это можно реализовать, кроме видео, т.к скорости не хватит. вот на робофоруме нашёл. не знаю на сколько хорошо работает, но делают такое
|
|
| |
Dimsan | Дата: Суббота, 06.03.2010, 00:52 | Сообщение # 47 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| Space, Кое-что сделал. Правда с самим кодом Ком-порта не разбирался. Протестируй(Сам не смог, т.к. временно нет Ком-порта под рукой) Нужно ещё добавить синхронизацию между настройками порта и в настройке меню добавить обработку DTR, RTS,... Я не понял, что ты имел в виду под Настройкой программы. Что там должно быть? Завтра, я надеюсь, доделаем...
|
|
| |
Space | Дата: Суббота, 06.03.2010, 10:34 | Сообщение # 48 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Quote (Dimsan) Space, Кое-что сделал. Правда с самим кодом Ком-порта не разбирался. Протестируй(Сам не смог, т.к. временно нет Ком-порта под рукой) Нужно ещё добавить синхронизацию между настройками порта и в настройке меню добавить обработку DTR, RTS,... Я не понял, что ты имел в виду под Настройкой программы. Что там должно быть? хорошо спасиб ща проверю. настройка программы это я потом сам сделаю. что то типо настройки шрифтов.Добавлено (06.03.2010, 10:34) --------------------------------------------- отлично работает. как надо. спасибо те огромное. скинь ещё исходник
|
|
| |
Space | Дата: Суббота, 06.03.2010, 10:51 | Сообщение # 49 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Тут ещё есть нюанс. На днях делал заставку и хотел чтобы вместо стандартной иконки на exe была другая. Вообщем код нашёл всё сделал. Загружается, но не то не другое почему то не работает. Уже всё проверял не знаю в чём причина. Когда загружаю программу задержка в момент которой должа быть заставка есть, а самой заставки нет. Исходники ниже. С заставкой папка тож есть, отдельная, рабочая(на картинку не обращай внимания я потом её сменю, если заработает) -собственно такая иконка должна была быть на exe.
|
|
| |
Dimsan | Дата: Суббота, 06.03.2010, 11:04 | Сообщение # 50 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| ЛС прочитай. Заставка у тебя работает вроде. А чтобы изменить иконку .ехе файла нужно зайти Project - Options - Application и там уже указать .ico файл - иконка.
|
|
| |
Space | Дата: Суббота, 06.03.2010, 11:11 | Сообщение # 51 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Ок терь работает
|
|
| |
Dimsan | Дата: Суббота, 06.03.2010, 19:13 | Сообщение # 52 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| Смотри.
|
|
| |
Space | Дата: Суббота, 06.03.2010, 21:46 | Сообщение # 53 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| так нормик. терь осталось убрать лишние всё. То есть убрать меню PageControl И вид будет такой:
|
|
| |
Dimsan | Дата: Суббота, 06.03.2010, 22:43 | Сообщение # 54 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| Тю, блин... Я долбался, чтобы те 2 окна показывали одинаковое, а оказывается одно лишнее... Добавлено (06.03.2010, 22:43) --------------------------------------------- Кстати. У меня на 128000 и 256000 Бод вылетает ошибка. Проверьте ещё кто-то. И данные только 8 бит.
|
|
| |
Doniak | Дата: Суббота, 06.03.2010, 23:20 | Сообщение # 55 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote (Dimsan) Кстати. У меня на 128000 и 256000 Бод вылетает ошибка. Проверьте ещё кто-то. И данные только 8 бит. скорость зависит от вашего ком порта. если он не поддерживает выставленную скорость будит вылетать ошибка. Максимально допустимую скорость можно посмотреть в диспетчере устройств найти свой ком порт и глянуть в его настройки.
|
|
| |
Space | Дата: Суббота, 06.03.2010, 23:37 | Сообщение # 56 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Quote (Dimsan) Тю, блин... Я долбался, чтобы те 2 окна показывали одинаковое, а оказывается одно лишнее... я думал ты понял, сам посуди нафигаж 2 одинаковые окна менюшку та сделал временно и об этом вроде упоминал
|
|
| |
Dimsan | Дата: Суббота, 06.03.2010, 23:46 | Сообщение # 57 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| Doniak, 128000 поддерживает, а вот 256000 действительно нет. Space, ну ладно, не беда)
|
|
| |
Space | Дата: Суббота, 06.03.2010, 23:58 | Сообщение # 58 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| не заморачевайся на счёт скоростей всё равно больше чем 19200 б/с мало кто использует
|
|
| |
Dimsan | Дата: Воскресенье, 07.03.2010, 22:10 | Сообщение # 59 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| Тестируем последнюю версию)
|
|
| |
Space | Дата: Вторник, 09.03.2010, 12:32 | Сообщение # 60 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| короч проверил, всё работает кроме передачи команд, выводит в окно memo причём вместо одной цифры две((( на счёт сохранения настроек идею подкинул MiBBiM: Quote (MiBBiM) идея - при выходе сохранять в ини-файле поля компонента tbcomport, а при загрузке восстанавливать. Code procedure TfrmMain.LoadConfigs; const FileName = 'MBTerm.ini'; MaxAmount = 16; var ini: TINIFile; k,i: byte; s: string; begin ini := TINIFile.Create(extractfilepath(Application.ExeName) + FileName); with ini do begin with frmMain do begin //MainForm position Left := ReadInteger('MainForm', 'Left', 100); Top := ReadInteger('MainForm', 'Top', 100); //MainForm sizes Height := ReadInteger('MainForm', 'Height', 425); Width := ReadInteger('MainForm', 'Width', 677); //MainForm state WindowState := TWindowState(GetEnumValue(TypeInfo(TWindowState), ReadString('MainForm', 'WindowState', 'wsNormal') )); end;
//LoadCommands for i := 0 to MaxAmount - 1 do begin s := ReadString('CNames', inttostr(i), 'Error'); if s <> 'Error' then sgComm.Cells[0,i] := s else break; end;
k := i; setlength(commands, k); if k <> 0 then for i := 0 to k - 1 do commands[i] := ReadString('CComms', inttostr(i), 'Error');
with ComPort do begin Port := ReadString('ComPort', 'Port', 'COM1'); BaudRate := TBaudRate(GetEnumValue(TypeInfo(TBaudRate), ReadString('ComPort', 'BaudRate', 'br115200') )); end; end; end;
procedure TfrmMain.SaveConfigs; const FileName = 'MBTerm.ini'; var ini: TINIFile; i,am: shortint; begin ini := TINIFile.Create(extractfilepath(Application.ExeName) + FileName); with ini do begin with frmMain do begin //MainForm position WRiteInteger('MainForm', 'Left', Left); WRiteInteger('MainForm', 'Top', Top); //MainForm sizes WRiteInteger('MainForm', 'Height', Height); WRiteInteger('MainForm', 'Width', Width); //MainFormState WriteString('MainForm', 'WindowState', GetEnumName( TypeInfo(TWindowState), ord(WindowState)) ); end;
with ComPort do begin //ComPort Main Feautures WriteString('ComPort', 'Port', Port); WriteString('ComPort', 'BaudRate', GetEnumName( TypeInfo(TBaudRate), ord(BaudRate)) ); end;
//SaveCommands am := high(commands); if am > -1 then for i := 0 to am do begin WriteString('CNames', inttostr(i), sgComm.Cells[0,i]); WriteString('CComms', inttostr(i), commands[i]); end;
end; end; Quote (MiBBiM) нужно подключить Code uses ..., TypInfo, inifiles Quote (MiBBiM) GetEnumValue,GetEnumName, TypeInfo - из первой либы запись, чтение из ini - из второго. получается примерно такой иник: Code [MainForm] Left=670 Top=520 Height=425 Width=677 WindowState=wsNormal [ComPort] Port=COM1 BaudRate=br115200 [CNames] ... Добавлено (09.03.2010, 12:24) --------------------------------------------- Вот так работает: Добавлено (09.03.2010, 12:32) --------------------------------------------- если ни чего не видно, то скину оригинал на полный экран
|
|
| |
|