Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как проверить влез ли ВЕСЬ текст в ячейку DBGrid'a 
:(
    Опции темы
AHgpeu
Дата 24.3.2008, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Условие задачи:
Если ТЕКСТ_В_ЯЧЕЙКЕ_dbGRID не влазит то выводить в Hint'e этот текст полностью
я стою на нужной мне строке в нужном столбце
работаю с 
Код

CurColumn: TgpColumn;

Как правильно записать условие:
Код

if CurColumn.Width < CurColumn.<LengthText> then
  SomeDo

--------------------
ᆉᆈǀƿᆇᆆᆅᆂᆁᆇᆆ
PM MAIL   Вверх
Savek
Дата 24.3.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

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



Column.Width - ширина ячейки 
DBGRid1.Canvas.TextWidth(Column.Field.AsString) - ширина текста в ячейке
PM MAIL   Вверх
FlaGmaN
Дата 24.3.2008, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 2.9.2006
Где: Москва

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



Код

procedure Tform1.buttonclick(sender: object);
var
i,j:integer;
value_width,t:integer;
koef:byte;
begin
DBGrid1.defaultdrawing:=false;
koef:=10;

for i:=0 to DBGrid1.columns.Count - 1 do
begin
value_width :=0;
while not (adotable1.eof) do
begin
t:=length (adotable.fields[i].value);
if value_width<t then value_width:=t;
adotable.next;
end;
DbGrid1.columns[i].width:=value_width*koef;
adotable.first;
end;
dbgrid1.defaultdrawing:=true;end;


Этот код подстраивает длинну столбца под максимальную длинну ячейки.
Может пригодится.
З.Ы. на помпиляторе не проверял но должно работать
PM MAIL WWW ICQ   Вверх
Zmitro
Дата 4.4.2008, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(FlaGmaN @ 24.3.2008,  17:28)
Код

procedure Tform1.buttonclick(sender: object);
var
i,j:integer;
value_width,t:integer;
koef:byte;
begin
DBGrid1.defaultdrawing:=false;
koef:=10;

for i:=0 to DBGrid1.columns.Count - 1 do
begin
value_width :=0;
while not (adotable1.eof) do
begin
t:=length (adotable.fields[i].value);
if value_width<t then value_width:=t;
adotable.next;
end;
DbGrid1.columns[i].width:=value_width*koef;
adotable.first;
end;
dbgrid1.defaultdrawing:=true;end;


Этот код подстраивает длинну столбца под максимальную длинну ячейки.
Может пригодится.
З.Ы. на помпиляторе не проверял но должно работать

а если в ADOTable 100000 записей? скока-ж цикл работать будет? 
PM MAIL   Вверх
Savek
Дата 4.4.2008, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

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



Цитата(Zmitro @  4.4.2008,  07:52 Найти цитируемый пост)
а если в ADOTable 100000 записей? скока-ж цикл работать будет? 

Для такого количества записей тэйбл применять не целесообразно, да и вряд ли кому придет в голову тащить на клиента такой объем записей. 
А что касается кода, то он не учитывает размер шрифта да еще и автор видимо забыл что для строки "WWW" ужно больше места чем для "IIIII" тут одним коэффициентом не обойдешся smile 
Достоверно ширину текста можно получить только при помощи DBGRid1.Canvas.TextWidth
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

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


 




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


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

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