Технический форум по робототехнике.
//описания добавочных файлов
type FileInf = record
FileName: string[20];
ShortComment: string[255];
end;
//описание проекта
type Project = record
ProjectName: string[20];
ShortComment: string[255];
Version: single;
FromSite: boolean;
Date: string[8];
HasInternalHex: boolean;//хекс встроен в проект или же валяется где-то на диске
HexPath: string;
HasInternalCode: boolean;//аналогично с кодом
CodePath: string;
HasWideComment: boolean;
HasTerminalCodes: boolean;
HasFiles: boolean;
Files: array of FileInf;//описатель добавочных файлов
end;
{структура файла: |размерфайла1|файл1|размерфайла2|файл2|}
{вначале пишутся (если существуют) Hex,Code,WideComment, TerminalCodes)}
Vooon писал(а):Читай про сериализацию
Vooon писал(а):Ну и лучше используй xml, парсеров полно.
Myp писал(а):1. в настройках порта когда выпадающий список выпадает пытаюсь колёсиком прокрутить, а крутится не список а активная ячейка на форме скачет вниз
Myp писал(а):2. нужна функция добавить свою настройку кроме тех 3х которые есть
зачем? а вот для разных роботов
может у меня 1 со медленным уартом а второй с быстрым
вот я бы и соххранил настроечки под каждого робота
Myp писал(а):3. там где меняется скин написать что эта галочка включает поддержку скинов и отключаети чтоб при снятой галке список выбора скина становился неактивный
Myp писал(а):4. не работает файл->выход
MiBBiM писал(а):Именно из-за этого я решил что от мди надо избавляться (точнее, это было последним гвоздем в крышку гроба). Если у вас нет открытых проектов, то кнопочка будет работать. Причина в том, что меню дочки замещает меню родительского окна. У родительского окна выход прописан, а у дочки нет. А писать одно и то же несколько раз мне не в кайф
procedure TfrmMain.FileSaveExecute(Sender: TObject);
var i:byte;
buf:string;
begin
for i:=0 to 5 do SaveInterface(i); //сохраняю интерфейс в проекты
i:=tcProject.TabIndex; //запоминаю проект для сохранения
buf:=Projects[i].FilePath; //запоминаю путь до файла
if Projects[i].FilePath='' then
begin
dlgSave.Filter:='Проект МиниБот Студии *.mbp|*.mbp';
dlgSave.InitialDir:=Path;
dlgSave.Execute;
buf:=dlgSave.FileName;
if buf='' then exit; //выхожу если отменили
//если пользователь "забыл" написать расширение файла
if copy(buf, length(buf)-3, 4)<>'.mbp' then
insert('.mbp', buf, length(buf)+1);
if FileExists(buf) then //указали на существующий файл
if MessageDlg('Заменить?', mtInformation, [mbYes,mbNo],0)=mrYes then
begin
for i:=0 to High(Projects) do //такой файл открыт?
if Projects[i]<>nil then //пустые проекты не проверяю
if Projects[i].FilePath=buf then
begin //такой файл открыт?
MessageDlg('Этот проект открыт, сохранение невозможно!',
mtInformation, [mbOk], 0);
exit;
end;
DeleteFile(buf); //удаляю файл для замены
end else
begin
MessageDlg('Проект не сохранен!', mtinformation, [mbOk],0);
exit;
end;
end;
i:=tcProject.TabIndex; //восстанавливаю номер, изменившийся после цикла
Projects[i].FilePath:=buf; //сохранил путь
SaveProject(i); //теперь процедура сохранения создаст новый файл
UpdateInterface(i,0,true);
end;
For Tmp1 = 1 To 255
Print "Checkboot " ; Tmp1
Waitms 10
S = Inkey()
If S = 80 Then
Print ""
Print "programing!!!"
'Jmp $3800
Wait 3
End If
Next
Do
Led = 1 : Waitms 250
Led = 0 : Waitms 250
Loop
****************************************************
и дальше асмовский код?
Как проверить:
Запускаете приложение
Версия миниботаПро сильно отличается то минибота?
Вы так и не ответили какие есть возможности подключения минибота к компьютеру. Какие планируются?