Добавление записей в TStrings, TTreeView или TListViewDelphi , Компоненты и Классы , СпискиДобавление записей в TStrings, TTreeView или TListView
Оформил: DeeCo { Bei der Klasse TStrings und den Komponenten TTreeview/TListview gibt es die Moglichkeit, neben dem einfachen einfugen eines Strings auch Objekte mitanzufugen. Da eine Klasse TObject erwartet wird, muss man einen kleinen Umweg programmieren. } { The Classes TStrings and the components TTreeview/TListview allow you to add an additional Object to a string. Since a TObject is expected, you need to make a little detour to achive this. } type TMyRecord = record id: Integer; Name: string; {...} end; PMyRecord = ^TMyRecord; {...} { In this example I use a Listview component } procedure Form1.Form1Create(Sender: TObject) var i: Integer; pRec: PMyRecord; begin for i := 0 to 10 do begin new(pRec); pRec.id := i; pRec.Name := 'Entry' + IntToStr(i); {...} ListView1.AddItem('Entry' + IntToStr(i), Pointer(pRec)); end; end; { To retrieve the stored records just use this: } procedure Form1.ListView1Click(Sender: TObject); var i: Integer; xRec: TMyRec; begin for i := 0 to Listview1.Count - 1 do if ListView1.Selected[i] then begin xRec := PMyRecord(ListView1.Items.Objects[i])^; ShowMessage(Format('Record #%d Name: %s', [xRec.id, xRec.Name])); end; end; { finally do not forget to free assigned memory } procedure Form1.FormClose(Sender: TObject); var i: Integer; begin for i := 0 to ListView1.Count - 1 do if ListView1.Items.Objects[i] <> nil then Dispose(ListView1.Items.Objects[i]); end; Привет! Я перевёл текст на русский язык: Это код Delphi, демонстрирующий, как добавить записи в компонент TStrings, TTreeView или TListView, хранящие дополнительную информацию в объекте. Код использует тип записи При создании элементов списка код проходит 11 итераций, создает новый экземпляр записи для каждой итерации, устанавливает поля ( Чтобы получить хранящиеся записи, код определяет обработчик события клика для списка. Когда выбирается элемент, код получает соответствующую запись из объекта, хранящегося в элементе списка, и отображает сообщение об ошибке с полями ( Наконец, когда форма закрывается, код освобождает память, выделенную для каждой записи с помощью метода Вот разбивка кода:
Вот улучшенная версия кода:
В этой улучшенной версии код использует метод Кроме того, я использовал оператор Добавление записей в TStrings, TTreeView или TListView: описано пример использования компонентов для добавления объектов типа TObject и их последующего извлечения. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |