Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.19;
Скачать: CL | DM;

Вниз

Разная высота строк в dbGrid   Найти похожие ветки 

 
Alex_C ©   (2003-05-27 10:35) [0]

Можно ли в dbGrid сделать для разных строк разную высоту в зависимости от данных?


 
NAlexey ©   (2003-05-27 11:00) [1]

Можно


 
Alex_C ©   (2003-05-27 11:08) [2]

Отличный ответ. :-) Теперь подстажи как это сделать?


 
Polevi ©   (2003-05-27 11:09) [3]

type THackGrid=class(TDBGrid);

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (Table1.RecNo mod 2)=0 then
THackGrid(DbGrid1).RowHeights[Table1.RecNo]:=100
else
THackGrid(DbGrid1).RowHeights[Table1.RecNo]:=THackGrid(DbGrid1).DefaultRowHeight;
end;

но лучше написать свой грид


 
гончий   (2003-05-27 12:06) [4]

Очень не правильный пример!
В RowHeights содержится только количество элементов соответствующих количеству видимых рядов в GRID, поэтому данный пример вызовет исключительную ситуацию здесь:
THackGrid(DbGrid1).RowHeights[Table1.RecNo]


 
Polevi ©   (2003-05-27 12:15) [5]

2гончий (27.05.03 12:06)
это всего лишь пример


 
NAlexey ©   (2003-05-27 12:25) [6]

>В RowHeights содержится только количество элементов соответствующих количеству видимых рядов в GRID
Сомневаюсь я.


 
гончий   (2003-05-27 13:21) [7]

Исходники развеют все сомнения :)
RowHeights[0] это высота Title, если они включены в опциях :)


 
NAlexey ©   (2003-05-27 13:59) [8]

Простой пример развеял мои сомнения: положил StringGrid на форму, RowCount := 25, Height := 100;
Button1.Click - StringGrid.RowHeights[24] := 50; - нормально, а вот - StringGrid.RowHeights[25] := 50; - Grid Index Out Of Range.
И Help тоже развеял мои сомнения: Gives the height (in pixels) of all rows in the grid.
Use the RowCount property to determine the number of entries in the RowHeights array.


 
гончий   (2003-05-27 14:39) [9]

Автор спрашивал как это сделать в DbGrid, а не в StringGrid. Эти два компонента оба образованы от TCustomGrid, но имеют совершенно разную идеологию доступа к данным, если в StringGrid все хранится в памяти, что для БД не очень актуально, то в DbGrid таблица считывается порциями по количеству видимых рядов(записей).


 
NAlexey ©   (2003-05-27 15:20) [10]

Признаю свою ошибку. Да, действительно так как говорит "гончий".


 
Alex_C ©   (2003-05-28 08:40) [11]

Господа! Но вопрос так и остался открытым. Приведенный выше пример, как уже было замечено вызывает исключительную ситуацию Out of range. Работаю с dbGrid. Хоть немного работающий пример please!


 
Danilka ©   (2003-05-28 08:48) [12]

Alex_C © (28.05.03 08:40)
В принципе, здесь привели достаточно информации чтобы можно было на ее основе сделать так, как тебе нужно.
А писать готовую программу забесплатно наврядли найдутся желающие.
:))


 
Bless   (2003-05-28 12:22) [13]

1) По адресу www.volgadb.com можно скачать компонент TVolgaDBGrid,
который позволяет менять ширину строк.
2)Попробовал вышепредложенный способ с массивом RowHeights.
Ширину строк поменяло, по при изменении ширины столбца мышкой
ширина строк стала стандартной. Но все-равно мне понравилось.
Отсюда вопрос. Поясните, плз, строки
type THackGrid=class(TDBGrid);
...
THackGrid(DbGrid1).RowHeights[Table1.RecNo]:=100

То что как-то это позволило использовать свойство из раздела Protected,
мне понятно. Непонятна строка THackGrid(DBGrid1).Something.
Без параметра был бы вызов метода класса, а так что? Объясните, кто знает или посоветуйте, где почитать


 
LAMER Pro   (2003-05-28 12:47) [14]

2 Bless
это приведение типа


 
Bless   (2003-05-28 14:34) [15]

Если я правильно тебя понял, то это аналог integer("a"), только вместо integer THackGrid. А какой смысл в таком приведении, если DbGrid1=class(TDBGrid) THackGrid=class(TDBGrid)?
И каким образом это дало доступ к переменной RowHeights, объявленной в секции protected класса TCustomDBGrid?


 
интересующийся   (2003-05-29 06:02) [16]

Так кто-нить ответит на вопрос Blessа?
Так кто-нить ответит на вопрос Blessа?
Так кто-нить ответит на вопрос Blessа?
Или все молча поняли?


 
Um   (2003-05-29 07:09) [17]

Объявленный новый класс THackGrid наслудует protected секцию у TDBGrid, а в любом месте в пределах этого модуля можно использовать методы и поля из любой секции THackGrid даже из Private.
THackGrid(DbGrid1).RowHeights[Table1.RecNo]:=100
(описанное в том же модуле что и THackGrid);
вызывает Protected свойство класса THackGrid - которое наследовано от TCustomGrid;


 
Um   (2003-05-29 07:15) [18]

>Bless
не DbGrid1=class(TDBGrid),
а DbGrid1:TDBGrid
THackGrid - класс
DbGrid1 - экземпляр класса TDBGrid




 
интересующийся   (2003-05-29 08:26) [19]

> Um
так просто действительно
спасибо


 
Bless   (2003-05-29 09:08) [20]

>Um
Спасибо.




Страницы: 1 вся ветка

Текущий архив: 2003.06.19;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.025 c
14-60323
Лёлик
2003-06-04 00:36
2003.06.19
Crystal Enterprise


1-60194
Sa
2003-05-27 22:20
2003.06.19
Вставка gif в RechEdit


14-60369
Rzhevskiy
2003-06-01 17:38
2003.06.19
Экзамен уже завтра, а темы сочинений я ещё не знаю....


14-60352
TRh
2003-05-28 15:42
2003.06.19
Восстанавливаем исходники


14-60325
ZeroDivide
2003-06-03 17:05
2003.06.19
Зоолетие Питера. Неудавшийся праздник.