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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выравнивание текста в DBGrid по центру 
:(
    Опции темы
varra
Дата 25.3.2003, 06:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











нужно установить свой-во TField.Alignment:=taCenter для всех полей всех таблиц,отображаемых в гриде. как? в цикле?? или,может, есть другой способ центрирования?..
  Вверх
Lobsang
Дата 25.3.2003, 17:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Три переключателя РадиоБатон. Свойсвто TAG каждого относится с соответствующим значением типа TAligment.
Так что твой цикл сокращается только до прохода по всем столбцам, а не по каждой ячейки в отдельности.

With DBGrid1 do
begin
For i:=0 to FieldCount-1 do
Fields[i].Aligment := TAligment ((Sender as TRadioButton).Tag);
end;
end;
  Вверх
varra
Дата 26.3.2003, 01:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ничего не понимаю...

procedure TForm1.N9Click(Sender: TObject);
begin
...
DBGridEh1.Visible:=true;
TextToCenter(DBGridEh1);
end;

procedure TForm1.TextToCenter(DBGrid: TDBGridEh);
var k:integer;
begin
with DBGrid do
begin
for k:=0 to FieldCount-1 do
Fields[k].Alignment:= taCenter;
end;
end;

не работает sad.gif
  Вверх
Cashey
Дата 26.3.2003, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

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



А ты попробуй на Grid'е из стандартной библиотеки
Код

procedure TForm1.TextToCenter(DBGrid: TDBGrid);
var k:integer;
begin
with DBGrid do
begin
for k:=0 to FieldCount-1 do
Fields[k].Alignment:= taCenter;
end;
end;

Работает успешно!


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
varra
Дата 26.3.2003, 15:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











дык используется уже DBGridEH (в силу наличия ряда удобных и нужных в проекте "штучек"), я не могу вернуться к стандартному Grid'у!
  Вверх
Lobsang
Дата 26.3.2003, 15:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А Что это за компонент и чего он дает за "штучки"?

  Вверх
varra
Дата 26.3.2003, 15:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











подробности тут: DBGridEh и не только
  Вверх
Dapo
Дата 26.3.2003, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Каким образом не работает-то? Где ошибка? Fields[i] - прямая ссылка на поле датасет-а подключенного к твоему гриду. Причем, совсем не обязательно, что Columns[i] == Fields[i] (я имею в виду отображаемые и содержащиеся данные). Может тебе именно со столбцами DBGridEh помудрить? Я с этим компонентом не работал и не знаю как он данные показывает, от чего наследуется? Может и "в ручную" придется данные отображать...
PM MAIL   Вверх
varra
Дата 26.3.2003, 16:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











>Каким образом не работает-то?
не центрируется текст

>от чего наследуется
TCustomGrid -> TCustomDBGridEh -> TDBGridEh

>Может и "в ручную" придется данные отображать...
то есть?
  Вверх
varra
Дата 26.3.2003, 16:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











вот что интересно:

procedure TForm1.N9Click(Sender: TObject);
begin
...
(ADODataSet1.Fields.FieldByName('Check') as TBooleanField).DisplayWidth:=2;//работает
...
ADODataSet1.Fields.FieldByName('Цена').Alignment:=taCenter;//не работает
...
end;
  Вверх
Dapo
Дата 27.3.2003, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(varra @ 26.3.2003, 13:00)
>Может и "в ручную" придется данные отображать...
то есть?

Обрабатывать OnDrawColumnCell или OnDrawDataCell.

>ADODataSet1.Fields.FieldByName('Цена').Alignment:=taCenter;
Здесь попробуй опустить Fields или FieldByName.
PM MAIL   Вверх
varra
Дата 27.3.2003, 18:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











не знаю, насколько рационально, но работает(!) при следующем коде:

procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);

var t,r:integer;

begin
...
t:=TDBGridEh(Sender).Canvas.TextWidth(Column.Field.DisplayText);//длина отображаемого значения
r:=Rect.Right - Rect.Left;//длина прямоугольника
TDBGridEh(Sender).Canvas.TextOut(Rect.Left+round((r-t)*0.5), Rect.Top+2,Column.Field.Text);
end;



  Вверх
Dapo
Дата 27.3.2003, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Видимо этот компонент не "смотрит" на свойство Alignment для полей.
PM MAIL   Вверх
Dapo
Дата 27.3.2003, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Видимо этот компонент не "смотрит" на свойство Alignment для полей.
PM MAIL   Вверх
Noubpoeno
Дата 10.12.2022, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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