В дополнение к вопросу №1584 Ну, в принципе, да. Только дело в том, что моя программя является только доолнением к основной. Основная создает файлы, выставляет файл-флаг, потом запускает мою программу и ждет, пока моя программа выполнит архивацию и резервное копирование. После этого (моя программа тоже ставить флаг-файл) продолжает работать основная программа. После окончания ее работы (тут основная программа удаляет свой флаг) моя копирует в каталог для исходящих файлов то, что получилось. Так что все правильно.
Доброе время суток, Alexandr! Я понял. А может быть сделать так, чтобы запускалась сначала Ваша программа, которая делает архивацию и копирование, а потом основная? Вот примерная схема работы: 1. Старт Вашей программы. 2. Из нее запускается основная программа и делает свое дело. Ствит флаг. 3. Ваша программа в свою очередь проводит архивацию и копирование. Ставит флаг. 4. Основная программа доделывает то что не доделала. Удаляет флаг. 5. Ваша программа копирует ее доделки. Удаляет свой флаг. -------- Ваша программа, с помощью таймера, проверяет каждые, например, 2 секунды наличие флага от основной программы. Период проверки можно выставить замерив время работы основной программы. -------- Еще, я бы Вам посоветовал вместо двух программ со сложным взаимодействием (тем более что они, если я не ошибаюсь, выполняют две части одной задачи),
написать одну программу с правильно выстроеной логикой работы :). Впрочем, я могу и ошибаться, не зная сути работы основной программы :). Ответ отправлен: 04.06.2004, 12:47 Отправитель: sir henry
Вопрос № 1593
В дополнение к вопросу №1586 Странное дело, но при использовании вместо Sleep() Sleep(0) нагрузка на процессор хот и осталась на прежнем уровне (хотя нет, понизилась до 99 - 93%), но другие приложения перестали тормозить. Спасибо.
Приветствую Вас, Alexandr! Вот-вот и я искал, как реализована эта функция, но в описании ПРОЦЕССОРА нашел, то что написал :)) Вернее, там рекомендуется приостанавливать поток (!!!) и Sleep(0) - отдавать время процессора. Но не успел найти, как в kernel32.dll - реализована Sleep
Ответ отправлен: 02.06.2004, 11:36 Отправитель: Boriss
Вопрос № 1594
Здравствуйте эксперты. Столкнулся с проблемой в Delphi: нужно увеличить размер динамического массива (a: array of integer) на N единиц. По этому поводу 2 вопроса: 1.Как определить размер динамического массива ? 2.Как увеличить размер этого массива на N единиц? Спасибо всем за ответы.
Здравствуйте, Licha! 1. Размер массива возвращает функция Length(Имя_массива), 2. Изменяет размер динамического массива функция SetLength(Имя_массива, Новый_размер). Ответ отправлен: 03.06.2004, 06:54 Отправитель: sir henry Отвечает THE_PRO
Добрый день, Licha! ispolzuy SetLength napr SetLength(DynArray,n); Pri etom yesli n menshe chem razmer DynArray to massiv usekayetsya v protivnom sluchaye noviye elementi dobaylyayutsya v konets massiva i initsializiruyutsya nulyami. Ответ отправлен: 02.06.2004, 12:31 Отправитель: THE_PRO Отвечает Boriss
Приветствую Вас, Licha! var da: array of integer; ... SetLength(da, 10); .... SetLength(da, length(da)+10)); ... Finalize(da); High - наибольшее значение индекса Low - наименьшее значение индекса (всегда 0) Если массив имеет нулевую длину, то High вернет -1 Ответ отправлен: 02.06.2004, 12:42 Отправитель: Boriss Отвечает CrackLab
Здравствуйте, Licha! 1. Функция length 2. SetLength(<массив>, length(<массив>)+n); -------------------------- -=Experts helper: testmode=- Ответ отправлен: 02.06.2004, 20:19 Отправитель: samum2000 Отвечает Snowm@n
Добрый день, Licha! Динамическими массивами здесь не обойдешься. Используй связные списки. Ответ отправлен: 02.06.2004, 20:30 Отправитель: Snowm@n
Вопрос № 1595
У меня такая проблема. Пишу код: procedure TEditr.N11Click(Sender: TObject); var BlSt : TADOBlobStream; begin if not OpenPictureDialog2.Execute then exit; OleContainer1.CreateObjectFromFile(OpenPictureDialog2.FileName,False); With ADOTable1 do begin Edit; BlSt:=TADOBlobStream.Create(ADOTable1Risunok,bmReadWrite); OLEContainer1.SaveToStream(BlSt as TStream); BlSt.Free; Post; end; end; При запуске сохраняю в базу данных большой рисунок (более 2 МБ). Закрываю базу. При новом открытии базы выдаёт ошибку (что-то с Ole). При изменении кода: procedure TEditr.N11Click(Sender: TObject); var BlSt : TADOBlobStream; begin OleContainer1.CreateObjectFromFile(\'D:РИСУНКИОткрыткиВил.bmp\', False); With ADOTable1 do begin Edit; BlSt:=TADOBlobStream.Create(ADOTable1Risunok,bmReadWrite);
OLEContainer1.SaveToStream(BlSt as TStream); BlSt.Free; Post; end; end; Работает всё нормально. Подскажите, пожалуйста, почему?.
Здравствуйте, Vovac! Было бы неплохо привести текст сообщения об ошибке дословно. Похоже на то, что у Вас в базу записывается не большой рисунок :), а что-то другое. База какого типа? Как Вы записываете рисунок в базу? Могут быть нюансы записи именно рисунков в Акцессе и в Парадоксе. Ответ отправлен: 03.06.2004, 07:38 Отправитель: sir henry Отвечает Boriss
Здравствуйте, Vovac! Хорошо звучит последняя фраза: "все работает. Почему?" Причина явно в OpenPictureDialog2.FileName, коя есть String, а нужно PChar - попробуйте преобразовать PChar(...). Да и то, что что-то неплохо бы посмотреть :))
Ответ отправлен: 02.06.2004, 16:18 Отправитель: Boriss
Вопрос № 1596
Сохраняю в базу большой рисунок. База была 1Мб, стала 3 Мб. Удаляю этот рисунок, но база все-равно осталась 3Мб. Как очистить базу от удалённых данных?. (Работаю с ADO) Спасибо.
Приветствую Вас, Vovac! Дело тут совершено не в ADO. У Вас остается пустое пространство от рисунка, пэтому таблицу, где хранился ресунок, надо упаковать. Как - зависит от формата базы данных. Ответ отправлен: 03.06.2004, 08:05 Отправитель: sir henry Отвечает Boriss
Доброе время суток, Vovac! Конечно, первый вопрос: "А как удаляете?" Второй, проверяете ли, что удалили? Ответ отправлен: 02.06.2004, 16:14 Отправитель: Boriss
Вопрос № 1597
В Delphi7 после компиляции она мне выдаёт "IO Error 32 progect stopped, use step or run to continue". Что такое "IO Error 32".
Здравствуйте, Лёха! Ну, Леха! Почему бы и не описать, что делаете? Но я буду добрее, чем Вы заслуживаете своей лаконичностью. 32-я ошибка может появиться при обращении к файлу, доступ к которому закрыт. Может и еще когда, но лень искать - раз Вам лень описать ситуацию Ответ отправлен: 03.06.2004, 14:39 Отправитель: Boriss Отвечает sir henry
Здравствуйте, Лёха! IO Error - это ошибка ввода-вывода. А уж что Вы там вводите-выводите будет ясно только после знакомства с Вашей программой :)). Ответ отправлен: 04.06.2004, 13:22 Отправитель: sir henry
Вопрос № 1598
Вопрос : 1) Ситуация такая : справочник товаров создан изначально как FreNabor: TFrame, На форму справочника кидаю FreNabor - все нормально, затем работаю, тоже путем, но через определенный промежуток времен (всегда по-разному) при открытии справочника в виде формы(at design time) он выдает ошибку : Access violatin at address 007EFD98 in module VCL70.BPL Ignore the error & contunie ? После чего форма вообще не открывается, хотя начинаю комплить, даже с такой формой все компилится. Большую часть кода, не считая мелочей при открытии я спрятал в Frame справочника, дабы по-быстрому решать проблему, но эта проблема с кажным днем все чаще и чаще. Может это из-за того что я на фрейм много чего переложил, правда я боюсь выкладывать код на форме, т.к. потом трудно все восстанавливать. Сильно ли зависит спользование ОЗУ программа , если использует сложные фреймы
? Помогите.
Здравствуйте, jiny! Кроме ОЗУ у Виндов еще и своп есть. Если памяти не хватает, можно своп использовать. Однако здесь дело не в памяти, bpl - это пакеты Дельфи, с помощью которых можно уменьшить размер программ. Или этот пакет поврежден или вирус :). А как у Вас проги компилируются? С использованием пакетов или без? Ответ отправлен: 04.06.2004, 15:34 Отправитель: sir henry
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.