Форум: "Базы";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
ВнизGrid Найти похожие ветки
← →
vavan (2003-06-24 18:53) [0]Подскажите пожалуйста как получить самую длинную строку текста из колонки грида. Грид из компоненты EHlib.
Необходимо сделать примерно такDBGridEh11.Columns[0].Width:=самый длинный текст колонки 0
← →
Ruslan Banshchikov (2003-06-25 10:05) [1]MainGrid.DataSource.DataSet.First;
while not MainGrid.DataSource.DataSet.Eof do begin
MainGrid.Columns[0].Width:=max(MainGrid.Columns[0].Width,
MainGrid.Canvas.TextWidth(
MainGrid.DataSource.DataSet.FieldbyName(MainGrid.Columns[0].FieldName).AsString));
MainGrid.DataSource.DataSet.Next;
end;
← →
Ruslan Banshchikov (2003-06-25 10:06) [2]Ну типа заменить MainGrid на DBGridEh11
← →
Stas (2003-06-25 11:11) [3]Можно запросом Select Max (MyColumn) from MyTable
← →
Ruslan Banshchikov (2003-06-25 11:23) [4]Select Max (MyColumn) from MyTable
покажет последнюю отсортированную строку
← →
Stas (2003-06-25 11:41) [5]Смотря какой движок.
Тогда так:
Select Max (MyColumn) from MyTable
ORDER BY My Column
← →
Stas (2003-06-25 11:41) [6]Смотря какой движок.
Тогда так:
Select Max (MyColumn) from MyTable
ORDER BY MyColumn
← →
Соловьев (2003-06-25 11:52) [7]
> DBGridEh11.Columns[0].Width:=самый длинный текст колонки
> 0
обработать событие DrawColumnCell:
... Max := (Sender as DBGridEh).Canvas.TextWidth(Columns[0].Field.Value);
...
(Sender as DBGridEh).Columns[0].Width := Max;
← →
vavan (2003-06-25 16:52) [8]Спасибо всем, но теперь появилась другая проблема:
Ширина колонки в этом варианте DBGridEh11.Columns[0].Width:=DBGridEh11.Canvas.TextWidth("123"); получается намного больше чем в этом DBGridEh11.Columns[0].Width:=3;
← →
Соловьев (2003-06-25 16:56) [9]
> DBGridEh11.Columns[0].Width:=3;
3 пикселя
> DBGridEh11.Columns[0].Width:=DBGridEh11.Canvas.TextWidth("123");
>
зависит от Font.Haight и типа Font.Name
← →
vavan (2003-06-25 20:03) [10]Запрос SQL select max(xxx)from table; из таблицы
ххх
---
опф
tyjkk
5444
возвращает запись опф, что это за ерунда, база оракловая.
← →
NDeu (2003-06-25 23:38) [11]
> vavan (25.06.03 20:03)
> возвращает запись опф, что это за ерунда, база оракловая.
Так и должно быт :)
Правильное решение
> Соловьев © (25.06.03 11:52)
← →
sniknik (2003-06-26 02:29) [12]есть аналог MSSQL/Access функции Len в Oracle?
тогда так
Select Max(Len(MyColumn)) from MyTable
> получить самую длинную строку текста (в смысле максимальную длинну в символах)
у Соловьев © (25.06.03 11:52) длинна нужная для отображения строки, при текуших установках шрифта. и толко для отображаемых в текущий момент (видимых в гриде).
кстати еще и перерисовыватся будет по 2 раза.
← →
roottim (2003-06-26 08:29) [13]есть
length(xxx)
← →
SergeyKatruk (2003-06-27 10:23) [14]
Как ни крути, а ширина колонки будет отображаться правильно только если шрифт фиксированной ширины (Courier, Terminal...).
Arial и Times New Roman - не фиксированы.
Я в таком же случае так и не нашол хорошего решения и поэтому просто ширину ячейки пишу в INI-шку на выходе, а на входе ставлю.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c