Чтение онлайн

на главную

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

Пример:

TForm1 = class(TForm)

 procedure FormCreate(Sender: TObject);

private

FMyButton: TButton;

protected

 procedure Button1Click(Sender: TObject);

 {Кодируем это вручную,для соответствия}

 {структуреTNotifyEvent}

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

FMyButton := TButton.Create;

 {Здесь
устанавливаем позицию, заголовок и все остальное}

 FMyButton.OnClick := MyButtonClick;

end;

procedure TForm1.MyButtonClick(Sender: TObject);

begin

ShowMessage('Эй! Ты нажал на мою кнопку!');

end;

События для компонентов, созданных во время работы программы II

Delphi 1

Вот простейший код для нового проекта с одной кнопкой и меню. (Надеюсь, в этом ничего сложного нет ... :)

procedure TForm1.Button1Click(Sender: TObject);

var

 NewItem: TMenuItem;

begin

 NewItem := TMenuItem.Create(Form1);

 NewItem.Caption := 'Динамический элемент ...';

 NewItem.OnClick := xyz;MainMenu1.Items.Insert(0, NewItem); ←Примечание: рекомендую бегло ознакомиться с Delphi-примером для команды Insert…

end;

{Любая старая 'xyz'-процедура (в настоящее время может быть определена одна, например, Form1.DblClick)}

procedure TForm1.xyz(Sender: TObject);

begin

 showmessage('Запусти эту процедуру !!');

end;

Примечание: Если вы пользуетесь неопределенной процедурой, вам понадобиться объявить ее. Лично я все это сделал в «верхнем правом углу» объявления типа формы, примерно так:

private

{ Private declarations }

public

{ Public declarations }

procedure xyz(Sender: TObject); ←К
этой процедуре могут иметь доступ не только события Form1 …

Установите свойство обработчика события (например, OnClick, OnDblClick, OnMouseDown и пр.) на процедуру, которую вы создали для обработки этого события. Вам нужно убедиться в том, что параметры в точности соответствуют параметрам ожидаемого заданного обработчика события.

Например:

MySpeedButton.OnClick := MyClickEventHandler;

где…

procedure MyClickEventHandler(Sender: TObject);

begin

end;

Массивы

Динамические массивы V

SottNick пишет:

Если хочется, чтобы в многомерном массиве был разный размер у разных измерений например: VarArray: array[1..2, 1..?] of TType , где ? зависит от "строки" массива (1..2)

То дозволяется сделать так:

1. Объявление

Var VarArray: array of array of array…………

2. Установка длин

SetLength(VarArray, Razmernost1); // У первого измерения

SetLength(VarArray[1], Razmernost2); // У второго измерения первой «строки»

SetLength(VarArray[2], Razmernost3); // У второго измерения второй «строки»

SetLength(VarArray[n], Razmernost4); // У второго измерения n-ной «строки»

SetLength(VarArray[1][1], Razmernost5); // У третьего измерения первой «строки» первого «столбца»

SetLength(VarArray[1][2], Razmernost6); // У третьего измерения первой «строки» второго «столбца»

SetLength(VarArray[n][m], Razmernost7); // У третьего измерения n-ной «строки» m-ного «столбца»

т.д.

Все можно изменять в процессе естественно.

3. Получение длин

Razmernost1:=Length(VarArray); // У первого измерения (количество строк)

Razmernost2:=Length(VarArray[1]); // У второго измерения первой «строки» (количество столбцов)

Razmernost3:=Length(VarArray[2]); // У второго измерения второй «строки» (количество столбцов)

Razmernost4:=Length(VarArray[n]); // У второго измерения n-ной «строки» (количество столбцов)

Razmernost5:=Length(VarArray[1][1]); // У третьего измерения первой «строки» первого «столбца»

Razmernost6:=Length(VarArray[1][2]); // У третьего измерения первой «строки» второго «столбца»

Razmernost7:=Length(VarArray[n][m]); // У третьего измерения n-ной «строки» m-ного «столбца»

Поделиться:
Популярные книги

Бастард Императора

Орлов Андрей Юрьевич
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Бастард Императора

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Измена. Вторая жена мужа

Караева Алсу
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Вторая жена мужа

Буря империи

Сай Ярослав
6. Медорфенов
Фантастика:
аниме
фэнтези
фантастика: прочее
эпическая фантастика
5.00
рейтинг книги
Буря империи

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

На изломе чувств

Юнина Наталья
Любовные романы:
современные любовные романы
6.83
рейтинг книги
На изломе чувств

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый II

Сирота

Шмаков Алексей Семенович
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Сирота

Законы Рода. Том 9

Flow Ascold
9. Граф Берестьев
Фантастика:
городское фэнтези
попаданцы
аниме
дорама
фэнтези
фантастика: прочее
5.00
рейтинг книги
Законы Рода. Том 9

Красноармеец

Поселягин Владимир Геннадьевич
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60
рейтинг книги
Красноармеец

Огненный князь 4

Машуков Тимур
4. Багряный восход
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 4

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор