понедельник, 22 октября 2012 г.

TFrame - компонент

Опис
Фрейм являє собою щось середнє між панеллю і формою. З формою його ріднить те, що він:
· Проектується окремо, як самостійний вікно· Має свій модуль -. Файл *.pas· Має можливість спадкування, причому навіть більш широкі, ніж у форми, так як може успадковуватися навіть всередині однієї програми· Може включатися в Депозитарій і використовуватися так само, як і форма, включаючи успадкування
З панеллю фрейм ріднить те, що він:
· Не є самостійним вікном Windows, і може відображатися тільки на формі або іншому контейнері· Має властивості, методи, події, подібні панелі, а не формі
Таким чином, фрейм - це панель, тобто якийсь фрагмент вікна додатку, але здатний переноситися на різні форми, в різні додатки і допускає використання переваг спадкування.
Почати проектування нового фрейму можна командою File | New frame або командою File | New і вибором піктограми кадрів на сторінці Нові вікна Депозитарію. В обох випадках перед вами відкриється вікно фрейма, подібне вікна форми, в який ви можете переносити будь-які компоненти, як на форму.
Розміщення спроектованого фрейму на формі проводиться вибором в палітрі компонентів на сторінці Stanlard піктограми Frame. З'явиться діалогове вікно, в якому буде питати, якою фрейм ви хочете розмістити на формі. Вибрати ваш фрейм і він з'явиться на формі.
Будь-які зміни, які ви робите у фреймі, відобразяться у всіх примірниках фрейма, розміщених на формі, якщо тільки ви не змінили в них якісь властивості вручну.


четверг, 18 октября 2012 г.

Архівація файлів


Значна частина інформаційних ресурсів суспільства зберігається на магнітних носіях. Але інформація на магнітних носіях може бути часткового або повністю втраченою в силу наступних причин:
1)фізичне псування носія в наслідок дії зовнішніх магнітних колів, старіння чи зношення магнітного покриття;
2)діяльність комп’ютених вірусів
3)необачне знищення і т.д.
З метою забезпеченна надійного збереження інформації створюють резервні копії даних. Процес створення резервних копій назив. архівацією. Основний зміст архівації полягає у створенні таких резервних копій, які б займали би значно менше дискової пам’яті, ніж інформація у вихідному стані. Таким чином, сьогодні під архівацією слід розуміти процес перекодування деякої сукупності файлів з метою зменшення загального об’єму пам’яті, який вони займають. Архівацією ще називають процес стискування даних. Розроблено багать різних амореймів архівації. Усі вони ґрунтуються на базі різних підходів та методі, але в сонові більшості з них лежить принцип заміни рівномірного двійкового коду на нерівномірний (кодоскоп).
Кодування слова “абракадабра”.
Для архівації файлі використовують спеціальні програми, які називають архіваторами. Стиснуті файли поміщають у файл, який називають архівом.
Текстові, графічні та інші файли даних можуть бути стиснені у 3-10 разів і знаесені до файлу-архіву спеціальними програмами-архіваторами,
Перші архіватори з’явилися у 1985 році. Основними можливостями сучасних архіваторів є: занесення цілих груп файлів та підкаталогів в архів, поновлення архіву перегляд файлів в архіві, вилучення файлів з архіву, захист файлів від несанкціонованого доступу, перевірка цілісності архіву, створення багатотомних архівів, та архівів, які автоматично розкриваються. Сучасні архіватори дозволяють економити від 20 до 90% дискового простору.
Файлом, який міститься в архіві, можна скористатися лише після того, як він буде відновлений у початковому вигляді, тобто розархівований.
Розархівацію виконують або ті ж самі архіватори, або окремі програми, які називають розрахіваторами.
Найбільш відомими архіваторами (розархіваторами) є: RLZIP.EXE, RKUNZIP.EXE, ARI.EXE, LHARC.EXE.
При виборі конкретного тону архіватора (розархіватора) керуються г-ма критеріями: швидкістю його роботи та коефіцієнти стискування даних. При цьому для одних типів файлів кращим може бути один архіватор, а для інших – інший.

вторник, 9 октября 2012 г.

компонет TIMAGE

компонет TIMAGE - Відображає графічне зображення і забезпечує роботу з ним

модуль extctrls

опис

Компонент TImage відображає на формі графічне зображення. Властивість Picture типу TPicture містить відображуваний графічний об'єкт типу бітової матриці, піктограми, метафайлу або певного користувачем типу. Властивість Canvas дозволяє створювати і редагувати зображення.
Щоб створити на формі або модулі даних зображення, яким керують інші елементи, треба використовувати не TImage, а TImageList.


 Canvas -Поверхня (полотно, канва) для малювання в багатьох компонентах. Властивість Canvas типу TCanvas використовується для малювання пером Pen і пензлем Brush, для модифікації зображення, накладення один на одного декількох зображень.

Основнні методи TCanvas 

procedure Rectangle(X1, Y1, X2, Y2: Integer);  -прямокутник

procedure Ellipse(X1, Y1, X2, Y2: Integer); -малює еліпс

 procedure TextOut(X, Y: Integer; const Text: string); функція TextOut пише рядок тексту Text на канві, починаючи з позиції з координатами (X, Y).

procedure LineTo(X, Y: Integer); -Метод LineTo малює на канві пряму лінію, що починається з поточної позиції пера PenPos і кінчається крапкою (X, Y), виключаючи саму точку (X, Y). Поточна позиція пера PenPos переміщається в точку (X, Y). При малюванні використовуються поточні установки пера Pen.
 
procedure MoveTo(X, Y: Integer); Метод MoveTo змінює поточну позицію пера PenPos на задану точкою (X, Y). Це еквівалентно безпосередній установці властивості PenPos. При переміщенні пера методом MoveTo нічого не малюється.

 procedure RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer); Малює на канві прямокутну рамку з округленими кутами. Метод RoundRect малює на канві прямокутну рамку з округленими кутами, використовуючи поточні установки пера Pen і заповнюючи площа фігури поточної пензлем Brush. Рамка визначається прямокутником з координатами кутів (X1, Y1) і (
X2, Y2). Кути скругляются за допомогою еліпсів з шириною X3 і висотою Y3.
Якщо задати ширину еліпса X3 X2 - X1, то верхня і нижня межі рамки виявляться цілком округленими (без прямолінійною частини). Якщо Y3 Y2 - Y1, те ж саме відбудеться з лівого і правого кордонами рамки. Якщо ж обидва виміри еліпса не менше розмірів рамки, то буде малюватися просто еліпс. Але, звичайно, для малювання еліпса краще використовувати метод Ellipse. Якщо один з розмірів еліпса задати нульовим, то буде малюватися прямокутна рамка. Але, звичайно, для такої рамки краще використовувати метод Rectangle.



Приклади


 image1.Canvas.Brush.color := clRed;
 
image1.Canvas.Brush.Style := bsDiagCross;
  
image1.Canvas.Ellipse(0, 0, Image1.Width, Image1.Height);



понедельник, 8 октября 2012 г.

winexec, ShellExecute

function WinExec(CmdLine: PChar; CmdShow: integеr)  : integer;

Запускає вказаний додаток
опис
Функція WinExec дозволяє виконати вказаний додаток. Параметр CmdLine є покажчиком на рядок з нульовим символом в кінці, що містить ім'я виконуваного файлу і, якщо необхідно, параметри командного рядка.
Якщо ім'я зазначено без шляху, то Windows, шукає виконуваний файл в наступній послідовності:


1. Каталог, з якого завантажено додаток.
2. Поточний каталог.
3. Системний каталог Windows, що повертається функцією GetSystemDirectory.
4. Каталог Windows, що повертається функцією GetWindowsDirectory.
5. Список каталогів із змінної оточення PATH.


 Параметр CmdShow визначає форму подання вікна запускається додатку Windows. Можливі значення цього параметра див в розділі ShellExecute. Для додатків не Windows, для файлів PIF і т.д. стан вікна визначає сам додаток.
При успішному виконанні запуску додатка функція WinExec повертає значення, більше 31. При невдачі можуть повертатися наступні значення (іменовані константи використовуються тільки Win32, а для Delphi 1 можна використовувати лише номери, причому їх більше, ніж наведено в таблиці - див розділ ShellExecute.):
Значення Номер Опис0 0 Не вистачає пам'яті або ресурсів системи.ERROR_BAD_FORMAT 11 Помилковий файл. EXE (наприклад, не для Win32. EXE).ERROR_FILE_NOT_FOUND 2 Вказаний файл не знайдений.ERROR_PATH_NOT_FOUND 3 Вказаний каталог не знайдений.
 
Перевагою функції WinExec є її сумісність з ранніми версіями Windows. Власне для цього вона і зберігається в WIN32, хоча для Win32 рекомендується користуватися функцією CreateProcess (про цю функцію див Вбудовану в Delphi довідку).При роботі з Win32 функція WinExec завершує роботу, якщо спричинене додаток викликає функцію GetMessage або закінчується виділений ліміт часу. Таким чином, очікування можна перервати, передбачивши в процесі, запущеному з допомогою WinExec, в потрібний момент виклик функції GetMessage.

  приклад

 WinExec('calc',SW_RESTORE);

 
 

ShellExecute

 ShellExecute - функція API Windows

 Модуль ShellAPI

 function ShellExecute(Wnd: HWnd;           Operation, FileName, Parameters, Directory: PChar;
          ShowCmd: Integer): THandle;

 опис

Функція ShellExecute дозволяє виконати будь-який додаток Windows. Можна також відкрити файл документа, що означає виконання пов'язаного з ним програми та завантаження в нього цього документа. Наприклад, зазвичай з документами, що мають розширення. DOC, пов'язаний Winword. У цьому випадку відкрити файл, наприклад, з ім'ям 'file.doc "означає запустити Winword і передати йому як параметр ім'я файлу' file.doc. Крім описаних можливостей функція ShellExecute дозволяє роздрукувати вказаний файл або відкрити вказану папку. Останнє означає, що буде запущена програма "Провідник" з відкритою зазначеної папкою.

Параметри функції означають наступне
:


 Wnd Батьківське вікно, в якому відображаються повідомлення запускається додатка.
Операція Вказує на рядок з нульовим символом в кінці, яка визначає виконувану операцію. Цей рядок може містити текст "відкритого" ​​(відкрити) або "друк" (надрукувати). Для Windows 95 і NT визначено ще одне значення: «вивчити» (досліджувати) - відкрити папку. Якщо параметр дорівнює нулю операції, то за умовчанням виконується операція "відкритим".
Ім'я_файлу Вказує на рядок з нульовим символом в кінці, яка визначає ім'я файлу.
Параметри Вказує на рядок з нульовим символом в кінці, яка визначає передаються в додаток параметри, якщо FileName визначає виконуваний файл. Якщо FileName вказує на рядок, визначальну відкривається документ, то цей параметр задається рівним нулю.
Каталог Вказує на рядок з нульовим символом в кінці, яка визначає каталог за замовчуванням.
ShowCmd Визначає, режим відкриття зазначеного файлу.


приклади

ShellExecute(Handle,'explore', 'c:\Program Files\Borland',  nil,nil,SW_RESTORE);
 ShellExecute(Handle,'open','Calc',nil,nil,SW_RESTORE);

 

вторник, 2 октября 2012 г.

Компонент MEMO

Компонент Delphi Memo це простий текстовий редактор. Delphi Memo дозволяє вводити багаторядковий текст з клавіатури, завантажувати його з файлу, редагувати і зберігати в файл текстового формату. При вивченні роботи з Delphi Edit раджу відвідати сторіночку робота з рядками Delphi, так як там описуються функції Delphi для роботи з даними, представленими в текстовій формі, з якими і оперує компонент Memo.

    Простота текстового редактора компонента Delphi Memo полягає в тому, що текстовий редактор Delphi Memo не володіє можливостями форматування содержещегося в ньому тексту. Це означає, що всі атрибути вибраного шрифту будуть ставитися до всього тексту.

    Текст в компоненті Memo Delphi розміщується порядково. Тому є доступ до кожного рядка тексту окремо. Рядка в редакторі Delphi Memo є об'єктами Lines [я] типу String, де я - номер рядка, відлічуваний від нуля. Об'єкт Lines [я] доступний і для читання, і для запису. Відповідно, текст в компоненті Memo можна редагувати не тільки з клавіатури, але і програмно:



 var S: String;
begin
 Memo1.Lines[3]:='Четвёртая строка по счёту';
 S:=Memo1.Lines[3];
end;


 Природно, для успішного присвоєння тексту певної рядку необхідно, щоб цей рядок фізично існувала! Тобто, даним способом можна тільки редагувати текст. Новий рядок створити таким способом неможливо. Для створення нових рядків служать методи


  • Add()
  • Insert()
 Метод Add () додає новий рядок в кінець, а метод Insert () впроваджує новий рядок перед зазначеної, для чого метод Insert () має відповідний параметр:

 begin
 Memo1.Lines.Add('Это будет последняя строка');
 Memo1.Lines.Insert(2, 'Эта строка будет третьей');  //Так как отсчёт идёт от нуля!
end;


 Delphi Memo має також метод для видалення рядки:

 Memo1.Lines.Delete(i); // Видалення рядка з індексом

 Компонент Delphi Memo дозволяє отримати доступ до тексту як цілого. Властивість Текст струнного типу є текстом, що міститься в редакторі, у вигляді одного рядка. Необхідно враховувати, що цей рядок також буде включати в себе і недруковані символи кінця рядка № 13 та символи переносу рядка № 10. До речі, щоб продовжити текст з нового рядка, необхідно використовувати послідовно обидва цих символу:

 Memo1.Text: = 'Попередній текст' + # 13 + # 10 + 'Це вже новий рядок';