Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Вниз

StringGrid и DBGrid   Найти похожие ветки 

 
Vaddya   (2003-01-17 00:04) [0]

Попросили помочь написать что-то типа телефонного справочника. Данные выводятся в DBGrid, а для сортировки по полям используется StringGrid. Я уже почти все сделал, но никак не могу добиться изменения размера ячеек StringGrida при изменении размера ячеек DBGrida. Как это сделать?
У меня есть некоторые соображения. Для одновременного скролла я перекрыл оконную процедуру DBGrida и после WM_HSCROLL посылаю его и StringGridy. Но в случае изменения размера не получается определить нужное сообщение и его параметры. Или тут не по этому принципу надо?


 
mrcat   (2003-01-17 00:19) [1]

Vaddya © (17.01.03 00:04)
...
Данные выводятся в DBGrid, а для сортировки по полям используется StringGrid.
...


по каким соображениям используете StringGrid для сортировки?
Почему не пользуетесь сортировкой средствами БД? Например, при формировании SQL запроса?


 
Vaddya   (2003-01-17 11:43) [2]

Расположение идет такое:

------------------------------------------
| кл | | | | StringGrid
------------------------------------------
| Фамилия| Тел. | Поле3 | П4 | Заголовок DBGrid
------------------------------------------
| Климов | 347192 | | |
| Кличко | 469806 | | | Данные справочника
| Клыков | 235678 | | |
------------------------------------------

И в случае изменения текста в одной из ячеек StringGrid идет ФИЛЬТРАЦИЯ (я написал сортировка? - извините, описка) по соответствующему полю. Все работает, но вот в случае изменения размера колонок DBGrida весьма разумно было бы менять соответствующие колонки StringGrida. Что и требуется.


 
dolmat   (2003-01-17 11:56) [3]

Выбрось DBGrid и StringGrid.
Поставь QuantumGrid если такового нет кину но под d5


 
mrcat   (2003-01-17 12:03) [4]

Vaddya © (17.01.03 11:43)
...
и после WM_HSCROLL посылаю его и StringGridy
...


и вчем тут проблема? Посылаете стандартный TMessage и при получении берете оконные параметры DBGrid... так?


 
Bucho   (2003-01-17 14:44) [5]

Используй RXDBGrid, там же можешь и сортировать и что угодно


 
Vaddya   (2003-01-17 20:12) [6]

>mrcat

Так вот мне и надо знать какое сообщение нужно отловить у DBGrida и какое нужно после этого послать StringGridy. Именно это. То есть, как определить, к примеру, что именно третий столбец был сдвинут влево на 5 пикселов и сдвинуть также 3 столбец на 5 пикселов влево у StringGrida?


 
Vaddya   (2003-01-21 00:43) [7]

Не знаю, может кому пригодится. Я делаю эту программу по образцу другого телефонного справочника, так вот после долгих дней поиска решил изучить, как это делается в той программе. Скачал DeDe, просмотрел. Оказалось, что обрабатывается событие DBGrid.OnDrawColumnCell. В своей программе я написал так:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
StringGrid1.ColWidths[DataCol] := Column.Width;
end;


Оказывается все так просто. По-моему, не оптимально, но уж лучше так, чем никак.



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

Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
3-96552
asf
2003-01-08 23:45
2003.01.30
Decision Cube и запрос SQL


7-97051
ReYken
2002-11-19 11:00
2003.01.30
Как узнать размер и частоту экрана?


1-96727
DVM
2003-01-21 23:42
2003.01.30
Кнопка с ... в Caption


3-96526
Ag2002
2003-01-10 18:28
2003.01.30
EHlib


1-96697
Gayrus
2003-01-21 16:44
2003.01.30
Height





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский