Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR_Delphi_2.doc
Скачиваний:
9
Добавлен:
18.09.2019
Размер:
1.91 Mб
Скачать

Implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Edit1.Text:=IntToStr(Thread1.Count);

Edit2.Text:=IntToStr(Thread2.Count);

Thread1.Count:=0;

Thread2.Count:=0;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Thread1:=TSimpleThread.Create( False );

Thread1.Priority:=tpLowest;

Thread2:=TSimpleThread.Create( False );

Thread2.Priority:=tpLowest;

end;

procedure TForm1.TrackBar1Change(Sender: TObject);

var

I:Integer;

Priority: TThreadPriority;

begin

Priority := tpLowest;

for I:=0 to (Sender as TTrackBar).Position-1 do inc(Priority);

If Sender=TrackBar1

then Thread1.Priority:=Priority

else Thread2.Priority:=Priority;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Thread1.Suspend;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Thread1.Resume;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Thread2.Suspend;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

Thread2.Resume

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

Thread1.Suspended:=not Thread1.Suspended;

Thread2.Suspended:=not Thread2.Suspended;

end;

end.

Выводы

  1. Многозадачная операционная система Windows поддерживает параллельно исполняемые процессы, отводя каждому процессу кванты времени.

  2. Для управления параллельными процессами в языке Object Pascal используются потоки Thread.

  3. Класс TThread – абстрактный класс. Для использования потоков нужно создавать класс-потомок.

  4. Объекты класса TThread имеют приоритеты, регулируя которые можно изменять долю времени, отводимому операционной системой на выполнение каждого процесса.

21.Класс tStream

Подготовка к работе

  1. По рекомендованной литературе изучить:

  • назначение объектов класса TStream,

  • классификация объектов класса TStream,

  • свойства и методы объектов класса TStream,

  1. Разработать алгоритмы и программы решения в соответствии с указанными заданиями.

Контрольные вопросы

  1. Определение класса потока TStream.

  2. Свойства Size и Position потока TStream.

  3. Функция CopyFrom потока TStream.

  4. Функции Read и Write потока TStream.

  5. Процедуры ReadBuffer и WriteBuffer.

  6. Функции ReadComponent, ReadComponentRes и процедуры WriteComponent, WriteComponentRes.

  7. Процедуры ReadResHeader и WriteResourceHeader.

  8. Функция Seek потока TStream.

  9. Процедура SetSize потока TStream.

  10. Процедура Free потока TStream.

  11. Конструктор файлового потока TFileStream.

  12. Режимы Mode открытия файла в потоке TFileStream.

  13. Режимы Right совместного использования файла в потоке TFileStream.

  14. Свойство Memory потока TMemoryStream.

  15. Процедура SetSize потока TMemoryStream.

  16. Процедура Clear потока TMemoryStream.

  17. Процедуры LoadFromFile, LoadFromStream и SaveToFile, SaveToStream для потока TMemoryStream.

  18. Класс потока строк TStringStream.

Задания к работе

  1. Создать программу, создающую 4 файловых потока класса TFileStream. Два потока используют существующие файлы MyFile1 и MyFile2, а два поддерживают новые файлы MyFile3 и MyFile4. Файл MyFile3 = MyFile1 + MyFile2, а файл MyFile4 = MyFile2 + MyFile1. Предварительно файлы MyFile1 и MyFile2 нужно создать с помощью программы Блокнот и поместить в папку проекта. Проект – приложение.

  2. Изменить программу задания 1, чтобы в ней для данных из файлов MyFile1 и MyFile2 использовались потоки класса TMemoryStream. Проект – приложение.

Пример выполнения

Задание 1

Создаем приложение, форма которого представлена на рис. 21 .8. Файлы проекта сохраняем в папке 21_1.

рис. 21.8. Окно формы проекта задания 1 на этапе конструирования

Для формы определим надпись «Класс TFileStream». В верхней части формы размещены две кнопки с надписями:

  • Создать файловые потоки Stream 1..4. Этой кнопке соответствует обработчик, создающий потоки Stream1, Stream2, Stream3, Stream4, связанные с файлами MyFile1, MyFile2, MyFile3, MyFile4.

  • Формировать файловые потоки Stream 3, 4.

В редакторе Блокнот создаем текстовые файлы MyFile1 и MyFile2. Каждый из них содержит уникальные строки. Эти файлы сохраняем в папке проекта. В нижней части формы размещены 4 многострочных редактора Memo1, Memo2, Memo3 и Memo4, в которые программно выводятся файлы потоков. Над каждым редактором размещена метка с заголовком, содержащим имя файла. Над указанными компонентами размещена кнопка с надписью «Посмотреть файлы», обработчик которой выводит в редакторы содержимое файлов.

Листинг модуля формы

unit Prg_21_1_;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]