Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Удалить лишние символы из строки
Категория: Текст и строки
Категория: Текст и строки
Как можно проверить, запущена программа с локального диска или из сети
Категория: Интернет и Сети
Категория: Интернет и Сети
Удалить пробелы в начале и конце
Категория: Текст и строки
Категория: Текст и строки
Вывод текста на канву Canvas
Категория: Компоненты
Категория: Компоненты
Затенение компонента определенным цветом
Категория: Компоненты
Категория: Компоненты
Прочитать содержимое папки
Категория: Файловая система
Категория: Файловая система
Быстрое копирование файлов
Категория: Файловая система
Категория: Файловая система
Шифрование текста по паролю
Категория: Текст и строки
Категория: Текст и строки
Переключение раскладки клавиатуры
Категория: Приложение
Категория: Приложение
Перекодировка в DBASE
Категория: Базы данных
Категория: Базы данных
Delphi - Справочник: With
With
|
1 with data name do Statement; 2 with data name do begin Statement; {...} end; |
Ключевое слово (Unit )
|
Средство упрощения ссылок к структурированным переменным
|
Описание:
|
Ключевое слово With - удобство, обеспеченное Delphi для того, чтобы сослаться на элементы сложной переменной, типа записи или объекта. Это упрощает код, удаляя потребность в префиксе для каждого упомянутого элемента переменной со сложным именем. Например: myObject.colour:= clRed; myObject.size:= 23.5; myObject.name:= 'Fred'; может быть перезаписан: With myObject do begin colour:= clRed; size:= 23.5; name:= 'Fred'; end; Однако будьте осторожны, так как его использование может, к удивлению, сделать код более трудным для восприятия. А также это может создать такие проблемы, где изменение кода может подразумевать неправильный адресат для 'дочернего' поля, которое упоминают. |
Пример кода: Использование ключевого слова with со структурой записи
|
type // Объявление записи клиента TCustomer = Record firstName : string[20]; lastName : string[20]; address1 : string[100]; address2 : string[100]; address3 : string[100]; city : string[20]; postCode : string[8]; end; var John, Sarah : TCustomer; begin // Установка подробностей клиента Джона With John do begin firstName := 'John'; lastName := 'Smith'; address1 := '7 Park Drive'; address2 := 'Branston'; address3 := 'Grimworth'; city := 'Banmore'; postCode := 'BNM 1AB'; end; // Установка подробностей сестры Джона - просто копируя целой записи Sarah := John; // И затем изменяем имя Sarah.firstName := 'Sarah'; // Теперь показываем подробности обоих клиентов With John do ShowCustomer([firstName, lastName, address1, address2, address3, city, postCode]); With Sarah do ShowCustomer([firstName, lastName, address1, address2, address3, city, postCode]); end; // Процедура, которая отображает переменный число строк procedure TForm1.ShowCustomer(const fields: array of string); var i : Integer; begin // Отображение всех переданных полей - примечание: массивы начинаются с 0 for i := 0 to Length(fields)-1 do ShowMessage(fields[i]); end;
Результат:
|
John Smith 7 Park Drive Branston Grimworth Banmore BNM 1AB Sarah Smith 7 Park Drive Branston Grimworth Banmore BNM 1AB |