Чтение из текстового файла и запись в файл.
End;
Вот пример программы, меняющий цвет формы в зависимости от количества кликов:
i:=i+1;
casei mod 3 of
0: Color:=clred;
1: Color:=clblue;
2: Color:=clgreen;
…
End;
Оператор цикла служит для повторения одинаковых действий данное количество раз. При этом переменная цикла пробегает все значения от начального до конечного. Выглядит этот оператор так:
fori:=5 to10 doнужноедействие;
Опять-таки, если действие нужно выполнить не одно, а несколько, их надо заключить в begin end. Например,
res:=1;
for k:=2 to10do
begin
res:=res*k;
Label1.Caption:=Label1.Caption + ' ' + IntToStr(res);
End
Эта программа выдаст факториалы всех чисел от двух до десяти через пробел.
Условный цикл выглядит так:
whileусловие doоператор ;
Этот оператор будет выполняться до тех пор, пока условие не станет ложным. Например, следующий цикл будет выполняться, пока в строке не обнаружится буква «ы»:
i:=1;
whileMyString[i]<>’ы’ do
i:=i+1;
Обратите внимание на то, что если в строке этого символа вообще не найдется, программа выдаст ошибку при попытке обращения к несуществующему элементу строки. В данном случае следует либо исправить условие цикла, либо оператор, например, так:
whileMyString[i]<>’ы’ do
begin
i:=i+1;
if i>length(MyString) then break;
end;
5.Процедура на Delphiсостоит из следующих блоков:
заголовок | procedure TForm2.FormClick(Sender: TObject); |
раздел описания переменных | var a: integer; |
собственно текст | begin a:=5; height:=height+a; end; |
в заголовке содержится название (которое отражает, что процедура соответствует второй форме и работает по щелчку мыши) и в скобках указываются переменные, которые передаются данной процедуре. Этот раздел начинается со служебного слова procedure.
в разделе описания вы должны познакомить процедуру с новыми для нее именами. Этот раздел начинается со служебного слова var. В нем вы не можете выполнять никаких действий (ни присваивать, ни выполнять никакие операторы).
Основной раздел начинается со служебного слова begin. После него и до слова end;вы пишете последовательность операторов через точку с запятой.
Помимо процедур, в Дельфи предусмотрены функции – процедуры, выдающие определенное значение. Вот пример такой функции:
functionTForm1.factorial (i: integer) : integer;
{получает на входе целое число i и выдает целое число}
varres,k: integer;
Begin
res:=1;
for k:=1 to do
res:=res*k;
factorial:=res;
End;
6.Основные компоненты Delphi.
Каждыйкомпонент содержит параметры и события.Каждому событию можно сопоставить процедуру обработки события (которая запускается при наступлении события). Параметры – это переменные с фиксированным именем, которые отвечают за свойства объекта. Например, параметр height – за высоту объекта, width – за ширину, leftи top – за отступы слева и сверху. Чтобы получить доступ к параметрам компонента надо указать сначала его имя, а потом, через точку, сам параметр. Например, Form1.height – это высота формы, Button1.width – ширина кнопки и т.п.
Чтобы создать компонент вы просто перетаскиваете его мышкой с панели компонентов (в правой части экрана) на форму. При этом параметры объекта (например, его расположение на форме) настраиваются автоматически. Вы можете поменять их двумя способами. Вы можете настроить их вручную (в Objects Inspector на вкладке Parameters в левой части экрана) для каждого компонента (выбрав компонент из раскрывающегося списка). В этом случае программа начнет работать с этими параметрами. Обязательно проверьте, чьи размеры (кнопки, формы или какого-либо поля) вы настраиваете!
Также можно поменять параметры программно, написав соответствующий код. Тогда этот параметр изменится в ходе выполнения программы.
Чтобы связать с событием в данном компоненте какую-то процедуру, выберите нужный компонент и дважды кликните на соответствующем событии. Дельфи сам присвоит этой процедуре имя (которое вы, впрочем, можете изменить) и вставит кусочек кода с описанием данной процедуры. Вам останется только добавить в это описание нужные операторы и описать новые переменные, которые вы будете в ней использовать.
поле вывода TLabel:предназначено для вывода информации. Чтобы напечатать что-то в этом поле надо параметру Caption присвоить значение типа string, например, так:
Label1.Caption:='¡hola!';
Если вы хотите добавить информацию в это поле, напишите
Label1.Caption:=Label1.Caption+'¡hola!';
Если вам надо добавить пробел, прибавьте ' ', чтобы перейти на другую строку, прибавьте #13.
поле ввода TEdit:предназначено для ввода информации. За содержание этого поля отвечает параметр Text. Чтобы получить целое число из этого поля, напишите:
названиепеременной:=StrToInt(Edit1.Text);
кнопка TButton. Название кнопки содержится в поле Caption.
Многострочное поле ввода TMemo. Представляет собой список (или, если угодно, массив) строк. Первая строка имеет номер 0. Чтобы обратиться к строке с номером 7, напишите Memo1.Lines[7]. Чтобы узнать, каков второй символ третьей строки, напишите Memo1.Lines[3][2].
Чтобы добавить строку, используйте метод Memo1.Lines.Add(‘Novaia stroka’);. Помимо этого есть следующие полезные методы (не забудьте написать перед ними Memo1.Lines.):
Clear – очищает поле
Count – выдает количество строк (последняя имеет номер count – 1)
Delete(5) – удаляет строку номер 5.
Insert(5, ‘privet’) – вставляет строку на 5-ю позицию
LoadFromFile(‘a.txt’) – загружает в поле файл
SaveToFile(‘a.txt’) – сохраняет содержимое поля в файл.
Чтение из текстового файла и запись в файл.
Сначала следует описать переменную типа TStringList, потом уже в самой процедуре создать ее (выделить на нее память), загрузить ее из файла и работать с ней, как с полем Мемо. Затем результат можно сохранить в файл. В примере показано, как найти самую длинную строку в файле, выдать ее и завершить программу.
procedureTForm2.FormCreate(Sender: TObject);
varMyFile: TstringList; k:integer; LargestLine:string;
Begin
MyFile:=TStringList.Create;
MyFile.LoadFromFile('c:\a.txt');
LargestLine:='';
fork:=0toMyFile.Count - 1do
iflength(MyFile[k])>length(LargestLine)thenLargestLine:=MyFile[k];
ShowMessage('The largest line is '+LargestLine);
MyFile.Free;
Application.Terminate;
End;
Исключительные ситуации.
Дельфи позволяет перехватывать ошибки, могущие возникнуть в процессе выполнения программы. Впишите в основную процедуру (или на OnCreate)
application.OnException:=MyExcept;
и создайте специальную процедуру, в которой вы произведете нужное действие:
procedure TForm2.MyExcept (Sender: TObject; E: Exception);
Begin
Label1.Caption:='Этого делать нельзя!!!'
end;
Переменная Е отвечает за тип исключения. Например, вы можете поменять текст этой процедуры на такой:
if E=EZeroDivide then ShowMessage('Делить на ноль нельзя!')
elseShowMessage(‘Другая какая-то ошибка‘);
Комментарии.
Если вам надо пояснить что-либо в тексте программы, заключите ваш комментарий в фигурные скобки. Весь закомментированный текст отобразится зеленым.
10. Математические функции
Формула | Функция | Значение |
|x| | Аbs (x) | Абсолютное значение n |
[x] | Trunc(x) | Целая часть числа x |
{x} | Frac(x) | Дробная часть X |
√x | Sqrt (x) | Квадратный корень из x |
x2 | Sqr (x) | Квадрат x |
Sin x | Sin (x) | Синус x |
Cos x | Cos (x) | Косинус x |
arctg x | Arctan (x) | Арктангенс x |
ex | Ехр(x) | Экспонента x |
ln x | Ln(x) | Натуральный логарифм x |
Pi | Число | |
xn | exp(n*ln(x)) | Число х в степени n |
n√x | exp(1/n*ln(x)) | Корень в n-ой степени |
Rardom(n) | Случайное целое число в диапазоне от 0 до n- 1 |