Форум: "Базы";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
ВнизРазная высота строк в 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.015 c