Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 7
Всего онлайн: 7
Зарегистрировано юзеров: 7992
Комментариев на сайте: 701
Новый юзер: maksimian



Последние комментарии
c
Leslieanops прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Мир применения строительных вышек Вышки-туры представляют собой мобильную башню-помост. На стройплощадках Москвы вышки туры встречаются робеть часто. Умилостивлять вышку-туру — вероятно, приобрести надежного помощника для строительных работ на больших и средних высотах, недоступных ради обычных стремянок и козел. Строительные туры позволяют наживать тяжелые материалы и движимость, удобно располагать их ради рабочем настиле. Они применяются: около облицовке и окраске фасадов, судопроизводство уборочных и ремонтных работах, близко кладке кирпича вроде внутри здания, беспричинно и со стороны улицы. Туру также приспосабливают в качестве опоры для съемочного оборудования, используют нечаянно судейскую вышку красоваться проведении соревнований. Структура Строительная вышка тура имеет каркасную конструкцию, состоящую из отдельных элементов, дабы существуют и неразборные модели мачтового типа. Конструкция складывается из плоских лестниц и рам, рабочих помостов, опор. Каждая осколки имеет 5 ступеней. Противоположные рамы крепятся между собой с через стяжек. В основании строительной туры лежат винтовые опоры, которые многократно оснащаются колесами дабы передвижения конструкции кстати площадке. Преимущества строительных рейс легкость сборки (здание тура, состоящая из 4 секций, собирается одним работником в ходьба 20 минут); мобильность; устойчивость ради сложном рельефе изза счет использования стабилизирующего оборудования. Монтажные вышки туры Монтажные туры представляют собой передвижные обстановка подмащивания . Их дозволено пользоваться ради работ, связанных с высотой. Монтажная тура собирается из готовых стандартных секций с помощью специальных замков. Дополнительная стяжка обеспечивается диагональными балками. Монтажные вышки отличаются простотой сборки, высокой надежностью и легкостью транспортировки. Продажа вышек дорога в Москве и регионах Ежели вы желаете подкупать строительную вышку туру в Минске alias регионе, общество «Ринстрой» готова поставить вам вооружение как собственного производства, напрасно и других производителей. У нас также действует стиль соответственно сдаче оборудования в аренду, который позволяет заказчикам, организующим кратковременные мероприятия, экономить значительную рацион бюджета. Собственное действие позволяет устанавливать разительно доступные цены ради вышки туры и другое строительное оборудование. И выше бонус вы можете: <a href=https://vk.com/vyshki_tur>вышка тура купить в минске у производителя</a> <a href=https://ok.ru/group/56574637375561/topic/150957017705289>вышка тура купить в минске у производителя</a> <a href=https://www.linkedin.com/pulse/%25D0%25B2%25D1%258B%25D1%2588%25D0%25BA%25D0%25B0-%25D1%2582%25D1%2583%25D1%2580%25D0%25B0-%25D1%2580%25D0%25B8%25D0%25BD-%25D1%2581%25D1%2582%25D1%2580%25D0%25BE%25D0%25B9>вышка тура купить в минске цена</a> <a href=https://www.linkedin.com/pulse/%25D0%25BF%25D1%2580%25D0%25B5%25D0%25B4%25D0%25BB%25D0%25B0%25D0%25B3%25D0%25B0%25D0%25B5%25D0%25BC-%25D0%25BF%25D0%25B5%25D1%2580%25D0%25B5%25D0%25B4%25D0%25B2%25D0%25B8%25D0%25B6%25D0%25BD%25D1%258B%25D0%25B5-%25D0%25B2%25D1%258B%25D1%2588%25D0%25BA%25D0%25B8-%25D1%2582%25D1%2583%25D1%2580%25D1%258B-%25D1%2581%25D0%25BE%25D0%25B1%25D1%2581%25D1%2582%25D0%25B2%25D0%25B5%25D0%25BD%25D0%25BD%25D0%25BE%25D0%25B3%25D0%25BE-%25D1%2580%25D0%25B8%25D0%25BD-%25D1%2581%25D1%2582%25D1%2580%25D0%25BE%25D0%25B9>вышка тура строительная передвижная купить в минске с доставкой</a> <a href=https://www.linkedin.com/pulse/%25D0%25B2%25D1%258B%25D1%2588%25D0%25BA%25D0%25B0-%25D1%2580%25D0%25B8%25D0%25BD-%25D1%2581%25D1%2582%25D1%2580%25D0%25BE%25D0%25B9>вышка тура строительная передвижная</a> <a href=https://www.linkedin.com/pulse/%25D0%25B2%25D1%258B%25D1%2588%25D0%25BA%25D0%25B0-%25D1%2582%25D1%2583%25D1%2580%25D0%25B0-%25D0%25BA%25D0%25B0%25D1%2582%25D0%25B0%25D0%25BB%25D0%25BE%25D0%25B3-01012020-%25D1%2580%25D0%25B8%25D0%25BD-%25D1%2581%25D1%2582%25D1%2580%25D0%25BE%25D0%25B9>вышка тура</a>
Robertrhits прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Всем привет. Хотелось бы поделиться хорошей компанией, которая занимается монтажем, ремонтом систем безопасности. Надеюсь моя информация принесет вам пользу. С вашего позволения, оставлю ссылку на их компанию [url=https://vlkamera.ru/ustanovka-sistem-quotskudquot.html] Монтаж системы управления доступом [/url]

Копирование файлов

Нет другого такого процесса в программе инсталляции, который бы выглядел снаружи столь простым и был бы в реализации столь сложным, как копирование. Сложная фраза. В переводе на русский язык она означает, что сделать хорошую операцию копирования файлов нелегко :) Почему?

Потому что операция копирования файлов должна быть идеальной.

Начнём с самого просто случая — копирования одного файла. Для того, чтобы скопировать один файл, вы можете вызвать функцию Windows, которая называется CopyFile:

function CopyFile(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL; stdcall;
Как видим, функции необходимо передать имена двух файлов: исходного и целевого. Третий параметр отвечает за то, как функция будет поступать, если целевой файл уже существует. Значение True говорит о том, что функция не будет копировать файл, значение False — о том, что целевой файл будет перезаписан.

Функция возвращает True, если операция копирования была успешно выполнена. Значение False подсказывает нам, что необходимо вызвать функцию GetLastError для того, чтобы узнать код произошедшей ошибки.

Эта функция работает очень надёжно, поскольку она является частью операционной системы и практически наверняка именно она тестировалась огромное количетво раз. Тем не менее, первое, на чём мы остановимся — что в этой функции нас не устраивает?
if CopyFile(PChar(SourcePath), PChar(TargetPath), False) then 
// Выполнилась успешно. 
else 
// Ошибка. Код ошибки можно получить, вызвав GetLastError.
У этой функции один недостаток, но он способен перекрыть все её достоинства. Мы не имеем доступа к процессу копирования. Это означает, что мы не можем показывать индикатор процесса копирования и не можем прервать функцию CopyFile, если пользователь нажал кнопку "Отмена" или клавишу Escape.

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

В Windows NT 4.0 появилась новая функция — CopyFileEx, которая позволяет снять все появившиеся проблемы, но добавляет ещё одну — она не работает в Windows 95. :)

В Delphi для копирования файлов, мы можем воспользоваться объектами класса

TFileStream. Например, так:
procedure CopyFile(Source, Target: String); 
var 
SourceStream: TFileStream; 
TargetStream: TFileStream; 
begin 
SourceStream := TFileStream(Source, fmOpenRead); 
try 
TargetStream := TFileStream(Target, fmCreate); 
try 
TargetStream.CopyFrom(SourceStream, 0); 
FileSetDate(TargetStream.Handle, FileGetDate(SourceStream.Handle)); 
finally 
TargetStream.Free; 
end; 
finally 
SouceStream.Free; 
end; 
FileSetAttr(Target, FileGetAttr(Source)); 
end; 
Обработку ошибок, как говорится в таких случаях, я оставляю читателю в качестве упражнения... :)

Немного поговорим о приведённой процедуре. Саму операцию копирования выполняет метод CopyFrom. Если второй параметр этого метода равен нулю, то копируется сразу весь файл, в ином случае копируется указанное количество байтов. Мы можем копировать файл блоками, со всеми вытекающими отсюда преимуществами:
. . . 
const 
BlockSize = 65536; 
. . . 
var 
ElapsedSize: Integer; 
CopySize: Integer; 
. . . 
ElapsedSize := SourceStream.Size - SourceStream.Position; 
while ElapsedSize > 0 do 
begin 
if ElapsedSize < BlockSize then 
CopySize := ElapsedSize 
else 
CopySize := BlockSize; 
TargetSource.CopyFrom(SourceSize, CopySize); 
ElapsedSize := SourceStream.Size - SourceStream.Position; 
// Здесь какие-то действия, например, модификация индикатора процесса 
end; 
. . . 
Замечательные функции FileGetDate, FileSetDate, FileGetAttr, FileSetAttr выполняют очень важную работу, про которую не надо забывать: копируют дату создания файла и его атрибуты. Сейчас мы не будем углубляться в особенности файловой системы NTFS, в которой есть дата последней модификации файла и расширенные атрибуты, поскольку приведённого кода нам вполне для наших целей хватит. Примечание: Корректное копирование предполагает, что у целевого файла обязательно устанавливается флаг Archive. Я не буду углуляться в то, зачем это делается, тем более, что в нашем случае этого делать не обязательно.

Тем не менее, если вы хотите реализовать полноценную операцию копирования, не забудьте про эту маленькую особенность.

Вот и всё, Удачи!

Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 1 Декабря 2013
Просмотров:


Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил: Denismen [Новичок] Дата: 2014-01-25