Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

глюк StringGrid [D7, XP]


Страницы:   1 2

VikOss ©   (2011-03-26 16:26:00) 

Кто знает как исправить "глюк" в StringGride - при клике на нижнюю часть видимой области - если там есть лишь часть прорисованной ячейки, он автоматически прокручивает эту ячейку-делает видимой полностью(что правильно), но при этом выделяет кучу ячеек о чём его никто не просит! Короче коряво до ужаса скроллинг работает...


VikOss   (2011-03-27 12:17:00) [1]


> ээээ.... а выставление одной опции в дизайн тайм предложенное
> в [12]... не?
>

Да , очень хорошо работает вместе с предложенным мною.


VikOss   (2011-03-26 22:22:00) [2]


> Ещё и потому, что многие предпочитают вместо StringGrid
> использовать TListView

Не зря они в разных компонентах - не все задачи, скажем так-удобно, делать в ЛистВью, представляю себе реализацию таблицы с шапкой и комбобоксами в ячейках для редактирования, и это при том, что это НЕ основная задача в проекте ;)


VikOss   (2011-03-26 22:18:00) [3]


> ээээ.... а выставление одной опции в дизайн тайм предложенное
> в [12]... не?

Не, это не во всех случаях, короче посмотрю уже завтра, уходить надо. Спасибо ВСЕМ за внимание. Мож кому поможет...


Германн   (2011-03-26 22:09:00) [4]


> Я понял почему этот глюк мало кто замечал

Ещё и потому, что многие предпочитают вместо StringGrid использовать TListView.


sniknik   (2011-03-26 22:08:00) [5]

> самое простое что пришло на ум
ээээ.... а выставление одной опции в дизайн тайм предложенное в [12]... не?


VikOss   (2011-03-26 22:01:00) [6]

Да, в завершение темы, если кто в бедущем "наткнётся" самое простое что пришло на ум, может поможет:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol,
 ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  R: TRect;
G,V: integer;
begin
G:=StringGrid1.LeftCol+StringGrid1.VisibleColCount;
V:=StringGrid1.TopRow+StringGrid1.VisibleRowCount;
if (ACol+1<=G)and(ARow+1<=V) then begin
...Рисуем ваш контрол, ну или делаем что...
                                                  end иначе ПРЯЧЕМ :)

Тогда при изменении размеров формы не будут "повисать" в воздухе ваши комбобоксы ;)
ПыСЫ: Код "на лету" если есть лучше, пишите, думаю ещё народ столкнётся с этой проблемой...


Smile   (2011-03-26 21:54:00) [7]

Мне показалось (надо заметить уже давно), что sniknikчасто "экономит" в окончаниях на "ь"
типа "перестаеш"
:)


VikOss   (2011-03-26 21:37:00) [8]


> т.к. функционалу больше, но узнав перестаеш отвлекаться
> на "велосипеды".

Что-то в этом есть, датасетов небоюсь ;-), просто как многие программеры ленив и не хочется для обычных текстовых операций лишние движения делать, а так да, с вами согласен.
В общем всем спасибо, видно с "простыми" компонентами профи не работают, а у молодёжи требования не высокие, так, лабу сдал и забыл ;).
Я понял почему этот глюк мало кто замечал, много инфы, как например вставить в ячейку какой нить контрол - круто, а как на профессиональном приложении, при работе реального человека, на разных разрешениях, в разных режимах открытия окна и т.д., это многих не грузит...


sniknik   (2011-03-26 21:28:00) [9]

> но много возни по моему представлению,
дело привычки, и вообще удобнее, т.к. если есть данные то их нужно обрабатывать сортировки/фильтры/объединения... и т.д.

> или есть простой способ, без датасетов ???
нет. без датасетов нельзя, но с ними работать чаще проще чем со стринггридом... да больше нужно знать, т.к. функционалу больше, но узнав перестаеш отвлекаться на "велосипеды".


Leon-Z   (2011-03-26 21:06:00) [10]

А чем тебе не нравится мое предложение.
Самое простое.
Установить шаг для VertScrollBar ????
Это же можно сделать в design-time !!!
Настраивай себе компонент как угодно и все :)


VikOss   (2011-03-26 21:02:00) [11]


> счастье, что не пользуюсь StringGrid-ом... заменил на DBGrid

Интересно, но много возни по моему представлению, или есть простой способ, без датасетов ???


VikOss   (2011-03-26 20:58:00) [12]

Не, ну вывернуться из положения разумеется можно, я спросил может кто знает конкретное и элегантное решение, а то не знаешь в какой момент какой компонент понадобится а тут раз и ... - переписывать все компоненты под себя круто но не всегда благодарно... ;-)


sniknik   (2011-03-26 20:56:00) [13]

счастье, что не пользуюсь StringGrid-ом... заменил на DBGrid.

решение может быть таким...
procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 StringGrid1.Options:= StringGrid1.Options - [goRangeSelect];
end;

procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 StringGrid1.Options:= StringGrid1.Options + [goRangeSelect];
end;


хотя, может добавить других проблем...  с выделением например. если оно не нужно имеет смысл вообще убрать опцию.


Leon-Z   (2011-03-26 20:48:00) [14]

А Вы попробуйте для VertScrollBar задать шаг перемещения кратный высоте ячейки StringGrid'а ???
Тогда половина или часть ячейки никогда не появится :))


VikOss   (2011-03-26 20:35:00) [15]

Это очень между прочим неприятно, если теперь нарисовать что-нить в ячейке типа Комбобокса, то эффект просто фантастик! Кстати только у "буржуев" нашёл подобную жалобу, наши чё-то не замечают !?


Германн   (2011-03-26 20:25:00) [16]

Есть глюк. Подверждаю.


VikOss   (2011-03-26 19:57:00) [17]


> А у меня такого "глюка" почему-то не наблюдается. М.б. у
> меня StringGruid неправильный?

Создайте ситуацию как на рисунке и кликните на нижнюю "полувидимую" строку.


VikOss   (2011-03-26 19:55:00) [18]

http://file.qip.ru/photo/eqnI-nDD/11_online.html


Amoeba_   (2011-03-26 19:50:00) [19]


> "глюк" в StringGride

А у меня такого "глюка" почему-то не наблюдается. М.б. у меня StringGruid неправильный?


VikOss   (2011-03-26 19:45:00) [20]

Господа, вы попробуйте то что я написал, а потом ехидничайте...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо