Текущий архив: 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.5 MB
Время: 0.004 c