многострочный редактор
От: kardash24  
Дата: 29.03.06 07:30
Оценка:
Задача: вывести в какой-нибудь список содержимое таблицы(текст),причем в зависимости от значений(в таблице) цвет строк должен быть различным.
Вопрос: каким компонентом воспользоваться лучше, и как это сделать(если можно фрагмент кода для изменения цвета одной строки).
Заранее благодарен!!!
Re: многострочный редактор
От: ekamaloff Великобритания  
Дата: 29.03.06 07:36
Оценка:
Здравствуйте, kardash24, Вы писали:

K>Задача: вывести в какой-нибудь список содержимое таблицы(текст),причем в зависимости от значений(в таблице) цвет строк должен быть различным.

K>Вопрос: каким компонентом воспользоваться лучше, и как это сделать(если можно фрагмент кода для изменения цвета одной строки).
K>Заранее благодарен!!!

TListView, стиль Report. Цвет строк задаешь в обработчике OnCustomDrawItem:


procedure TSomeForm.ListViewCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  ListView.Canvas.Font.Color := GetColorByItem(Item);
end;
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re: многострочный редактор
От: kardash24  
Дата: 29.03.06 08:32
Оценка:
Здравствуйте, kardash24, Вы писали:

K>Задача: вывести в какой-нибудь список содержимое таблицы(текст),причем в зависимости от значений(в таблице) цвет строк должен быть различным.

K>Вопрос: каким компонентом воспользоваться лучше, и как это сделать(если можно фрагмент кода для изменения цвета одной строки).
K>Заранее благодарен!!!

А каким образом в TlistView можно выстроить текст в несколько колонок?
Re[2]: многострочный редактор
От: ekamaloff Великобритания  
Дата: 29.03.06 08:35
Оценка:
Здравствуйте, kardash24, Вы писали:

K>А каким образом в TlistView можно выстроить текст в несколько колонок?


Свойсто TListView.Columns — задать колонки
TListItem.SubItems — текст колонок для определенного элемента
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[3]: многострочный редактор
От: kardash24  
Дата: 29.03.06 08:52
Оценка:
Здравствуйте, ekamaloff, Вы писали:

E>Здравствуйте, kardash24, Вы писали:


K>>А каким образом в TlistView можно выстроить текст в несколько колонок?


E>Свойсто TListView.Columns — задать колонки

E>TListItem.SubItems — текст колонок для определенного элемента

Я никогда не работал с этим элементом... Если я хочу вывести во второй столбец строку 'qwert',что я должен сделать в программе? Напишите код,пожалуйста?
Re[4]: многострочный редактор
От: ekamaloff Великобритания  
Дата: 29.03.06 09:00
Оценка:
Здравствуйте, kardash24, Вы писали:

K>Я никогда не работал с этим элементом... Если я хочу вывести во второй столбец строку 'qwert',что я должен сделать в программе? Напишите код,пожалуйста?


В дизайнере формы создай у ListView три столбца (свойство Columns), потом:


procedure TSomeForm.FormCreate(Sender: TObject);
begin
  // Добавляем первую строку
  with ListView.Items.Add() do begin
    Caption := 'Текст первого столбца первой строки';
    SubItems[0] := 'Текст второго столбца первой строки';
    SubItems[1] := 'Текст третьего столбца первой строки';
  end;
  // Добаляем вторую строку
  with ListView.Items.Add() do begin
    Caption := 'Текст первого столбца второй строки';
    SubItems[0] := 'Текст второго столбца второй строки';
    SubItems[1] := 'Текст третьего столбца второй строки';
  end;
end;
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[5]: многострочный редактор
От: Danchik Украина  
Дата: 29.03.06 09:04
Оценка:
Здравствуйте, ekamaloff, Вы писали:

[Skip]

Да и не забудьте поставить
ListView.ViewStyle := vsReport;

Re[5]: многострочный редактор
От: kardash24  
Дата: 29.03.06 09:09
Оценка:
СПАСИБО ОГРОМНОЕ!!!
Re[5]: многострочный редактор
От: kardash24  
Дата: 29.03.06 09:59
Оценка:
Здравствуйте, ekamaloff, Вы писали:


E>В дизайнере формы создай у ListView три столбца (свойство Columns), потом:



E>
E>procedure TSomeForm.FormCreate(Sender: TObject);
E>begin
E>  // Добавляем первую строку
E>  with ListView.Items.Add() do begin
E>    Caption := 'Текст первого столбца первой строки';
E>    SubItems[0] := 'Текст второго столбца первой строки';
E>    SubItems[1] := 'Текст третьего столбца первой строки';
E>  end;
E>  // Добаляем вторую строку
E>  with ListView.Items.Add() do begin
E>    Caption := 'Текст первого столбца второй строки';
E>    SubItems[0] := 'Текст второго столбца второй строки';
E>    SubItems[1] := 'Текст третьего столбца второй строки';
E>  end;
E>end;
E>

Сделал 4 столбца, запустил...
К сожалению на строчке создания subitem-а(SubItems[0] := 'Текст второго столбца первой строки' выдается ошибка list index out of bounds. Что я делаю неправильно?
Re[6]: многострочный редактор
От: ekamaloff Великобритания  
Дата: 29.03.06 10:02
Оценка:
Здравствуйте, kardash24, Вы писали:

Ошибся я...

E>>
E>>procedure TSomeForm.FormCreate(Sender: TObject);
E>>begin
E>>  // Добавляем первую строку
E>>  with ListView.Items.Add() do begin
E>>    Caption := 'Текст первого столбца первой строки';
E>>    SubItems.Add('Текст второго столбца первой строки');
E>>    SubItems.Add('Текст третьего столбца первой строки');
E>>  end;
E>>  // Добаляем вторую строку
E>>  with ListView.Items.Add() do begin
E>>    Caption := 'Текст первого столбца второй строки';
E>>    SubItems.Add('Текст второго столбца второй строки');
E>>    SubItems.Add('Текст третьего столбца второй строки');
E>>  end;
E>>end;
E>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[7]: многострочный редактор
От: kardash24  
Дата: 29.03.06 10:10
Оценка:
Здравствуйте, ekamaloff, Вы писали:

E>Здравствуйте, kardash24, Вы писали:


E>Ошибся я...


Спасибо,получилось. Последний вопрос,если можно — как определить какой из элементов выбран??? Т.е. может быть выбран как item, так и subitem.
Re[8]: многострочный редактор
От: ekamaloff Великобритания  
Дата: 29.03.06 10:21
Оценка:
Здравствуйте, kardash24, Вы писали:

K>Спасибо,получилось. Последний вопрос,если можно — как определить какой из элементов выбран??? Т.е. может быть выбран как item, так и subitem.


SubItem-ы в ListView не могут быть выбраны. Может быть выбрана только строка (первая колонка или вся строка, если включено RowSelect). Получить выбранную строку: ListView.Selected (если свойство MultiSelect установлено в False).

Если требуется возможность выбирать именно ячейки, а не целые строки, то используй TStringList. Там индекс выбранной строки — свойство Row, столбца — Col
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[9]: многострочный редактор
От: ekamaloff Великобритания  
Дата: 29.03.06 10:22
Оценка:
Здравствуйте, ekamaloff, Вы писали:

E>Если требуется возможность выбирать именно ячейки, а не целые строки, то используй TStringList. Там индекс выбранной строки — свойство Row, столбца — Col


Имел ввиду TStringGrid
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.