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

Вниз

глюк 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.01 c
15-1300257468
Артём
2011-03-16 09:37
2011.07.03
Cистема на работе барохлит?


1-1257942878
Yurikon
2009-11-11 15:34
2011.07.03
Использование RxTrayIcon


2-1301336263
Drowsy
2011-03-28 22:17
2011.07.03
В обработчике какого события можно перехватить ошибку


2-1301068831
johnjar
2011-03-25 19:00
2011.07.03
Сокеты через интернет


15-1300391272
vajo
2011-03-17 22:47
2011.07.03
Проблема со звуком на компе.





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