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

Вниз

глюк StringGrid   Найти похожие ветки 

 
VikOss ©   (2011-03-26 16:26) [0]

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


 
sniknik ©   (2011-03-26 17:18) [1]

почини клавиатуру... зажатый шифт.


 
VikOss ©   (2011-03-26 19:09) [2]

Не смешно.


 
sniknik ©   (2011-03-26 19:10) [3]

не шутка.


 
Anatoly Podgoretsky ©   (2011-03-26 19:23) [4]

Компьютер надо заменить.


 
VikOss ©   (2011-03-26 19:45) [5]

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


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


> "глюк" в StringGride

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


 
VikOss ©   (2011-03-26 19:55) [7]

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


 
VikOss ©   (2011-03-26 19:57) [8]


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

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


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

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


 
VikOss ©   (2011-03-26 20:35) [10]

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


 
Leon-Z ©   (2011-03-26 20:48) [11]

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


 
sniknik ©   (2011-03-26 20:56) [12]

счастье, что не пользуюсь 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;


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


 
VikOss ©   (2011-03-26 20:58) [13]

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


 
VikOss ©   (2011-03-26 21:02) [14]


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

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


 
Leon-Z ©   (2011-03-26 21:06) [15]

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


 
sniknik ©   (2011-03-26 21:28) [16]

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

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


 
VikOss ©   (2011-03-26 21:37) [17]


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

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


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

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


 
VikOss ©   (2011-03-26 22:01) [19]

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

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 иначе ПРЯЧЕМ :)

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


 
sniknik ©   (2011-03-26 22:08) [20]

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


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


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

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


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


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

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


 
VikOss ©   (2011-03-26 22:22) [23]


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

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


 
VikOss ©   (2011-03-27 12:17) [24]


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

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



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

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

Наверх




Память: 0.53 MB
Время: 0.009 c
11-1234851691
xz386
2009-02-17 09:21
2011.07.03
фукция копирования


1-1258536836
Separator
2009-11-18 12:33
2011.07.03
id текущего thread?


15-1291142271
xayam
2010-11-30 21:37
2011.07.03
Как ускорить индексирование сайта поисковиками?


15-1299878994
Юрий
2011-03-12 00:29
2011.07.03
С днем рождения ! 12 марта 2011 суббота


2-1301060792
Fr
2011-03-25 16:46
2011.07.03
Текст на TImage