Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TListView, прошу помощи 
:(
    Опции темы
alan86
Дата 6.3.2006, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 25.1.2006

Репутация: нет
Всего: нет



Хотелось бы узнать следующее: куда можно сохранить данные из ListView, в какой тип файла или даже БД(можно ли исп. XML), чтобы можно было их от туда загружать в этот же ListView.
Пример : В ListView расположено 2 объекта, допустим объект с именем Вася и Петя. У Васи и Пети есть фамилия, но они не должны отображаться в ListView, а отображаються лишь по двойному щелчку на объекте в отдельное поле Edit.

Заранее спасибо.
PM MAIL   Вверх
MIX55
Дата 6.3.2006, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


много работы
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 208
Регистрация: 23.10.2005
Где: Здесь

Репутация: 3
Всего: 4



Вот так можно TListView сохранить как HTML страницу:
Код

function ListViewConfHTML(Listview:TListview; output:string; center: Boolean) : Boolean;
 var
   i,f: Integer;
   tfile: TextFile;
 begin
   try
     ForceDirectories(ExtractFilePath(output));
     AssignFile(tfile,output);
     ReWrite(tfile);
     WriteLn(tfile,'<html>');
     WriteLn(tfile,'<head>');
     WriteLn(tfile,'<title>HTML-Ansicht: '+listview.Name+'</title>');
     WriteLn(tfile,'</head>');
     WriteLn(tfile,'<table border="1" bordercolor="#000000">');
     WriteLn(tfile,'<tr>');
     for i := 0 to listview.Columns.Count - 1 do
     begin
       if center then
         WriteLn(tfile,'<td><b><center>'+listview.columns[i].caption+'</center></b></td>') else
         WriteLn(tfile,'<td><b>'+listview.columns[i].caption+'</b></td>');
     end;
     WriteLn(tfile,'</tr>');
     WriteLn(tfile,'<tr>');
     for i := 0 to listview.Items.Count-1 do
     begin
       WriteLn(tfile,'<td>'+listview.items.item[i].caption+'</td>');
       for f := 0 to listview.Columns.Count-2 do
       begin
         if listview.items.item[i].subitems[f]='' then Write(tfile,'<td>-</td>') else
           Write(tfile,'<td>'+listview.items.item[i].subitems[f]+'</td>');
       end;
       Write(tfile,'</tr>');
     end;
     WriteLn(tfile,'</table>');
     WriteLn(tfile,'</html>');
     CloseFile(tfile);
     Result := True;
   except
   Result := False;
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   if ListViewConfHTML(form1.ListView1,'C:\text.html', true) then
     ShowMessage('OK/ Hat geklappt') else
       ShowMessage('Error occured/ Hat nicht geklappt');
 end;


Можно и в txt на torry.net есть соответствующие компоненты
Добавлено @ 07:01
Так же можно и в XML.
Цитата

но они не должны отображаться в ListView, а отображаються лишь по двойному щелчку на объекте в отдельное поле Edit.

Создать обработчик Edit'a и там описать все это действо.
Добавлено @ 07:06
да а вот пример с xml


Код

uses MSXML98; //у тебя может по другому называться.

procedure...
var
  I: Integer;
  FDoc: IXMLDOMDocument;
  FMainNode: IXMLDOMNode;
  INode, IAttr: IXMLDOMNode;
begin
  FDoc := CoDOMDocument.Create;
  FDoc.load('File.xml');

  FMainNode := FDoc.documentElement; // первая основная ветка

//ЗАГРУЖАЕМ*****************************
  I := 0;  //например хочем первую ветку
// или бежим циклом for I := 0 to FMainNode.childNodes.length - 1 do ...

  INode := FMainNode.childNodes[I]; //если INode = nil значит ошибка.
//ДАЛЕЕ или получаем текст ветки INode.text
//или INode.nodeValue
//или переходим на дочерние ветки INode.childNodes
//или получаем атрибуты текущей ветки INode.attributes и работаем с атрибутами
//****************************************

//СОХРАНЯЕМ*******************************

//можно создать ветку--------
  INode := FDoc.createElement('XXXXXX'); //Создаем ветку с любым именем
  INode := FMainNode.appendChild(INode); //добавляем дочернюю ветку в основную
//---------------------------

//можно создать атрибут для ветки---
  IAttr := FDoc.createAttribute('YYYYYY');//ИМЯ атрибута
  IAttr.nodeValue := 'ля-ля-ля-ля';//значение атрибута
  INode.attributes.setNamedItem(IAttr);//записываем атрибут в ветку
//-----------------------------------

//можно записать значение для ветки-------
  INode.nodeValue := 'ля-ля-фа, эти ноты';
//----------------------------------------

//затем сохраняем--------
  FDoc.save('File.xml');
//****************************************


--------------------
Hарод, а как в дельфи писать паскалевские проги....?*********************************************Жизнь слишком коротка, чтобы писать на Assembler'e
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0387 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.