Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-60112
Klim Samgin
2003-06-06 08:38
2003.06.19
TThread


1-60110
Back
2003-06-06 10:48
2003.06.19
Как отобразить окно поверх всех окон всех работающих приложений


1-60134
Merlot
2003-06-06 13:16
2003.06.19
количество дней между датами


1-60160
child_sun
2003-06-06 23:26
2003.06.19
Помогите написать скринсейвер


1-60107
Nucl
2003-06-06 10:39
2003.06.19
Долгие вычисления и прогресс бар





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский