-
Добрый день. Ситуация такова. На форме есть стринггрид, в котором много ячеек по вертикали, естессно вертикальный скролл. При щелчке на ячейку, мне нужно в ней отображать datetimepicker. Вопрос: как отловить у грида координаты выделенной ячейки? Сейчас у меня примерно так, работает, но до тех пор, пока не сдвинулся с места скролл
procedure TForm1.StGrd1SelectCell(Sender: PControl; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
if acol=1 then begin
dtp.Top:=17*arow-1; end;
end;
-
скажи, ты к справке пытался обратиться?
-
Канеш пытался, сначала туда хожу.. Но на этот раз безрезультатно.
-
а по какому поводу пытался? какие методы видел у TStringGrid ?
-
Методов много увидел, но как-то мало что глазу нравится, а если нравится, то работает не как я подразумеваю.
-
> но как-то мало что глазу нравится
вообще мало? даже в первых 4-ех на глаза попавшихся?
-
Вы о CellRect?
-
ага... а не оно?
-
Оно то оно, только когда за скролл начинаешь мотать грид, то синяя выделенная ячейка меняет координаты, а таймпикер - нет
-
а зачем менять координаты таймпикера при уходе ячейки из области видимости? скрывать его нужно и все...
-
Нее, в том то и дело, что ячейка выделенная в области видимости. 1) щелкаю по ячейке где-нить в середине грида, на нее встает пикер 2) начинаю тянуть мышкой полосу прокрутки вниз (вверх) - координаты пикера остаются прежними, а выделенная ячейка (синим которая) в области видимости и уползает вверх
-
> Vinum (14.05.08 15:30) [10]
ну а сразу то нельзя было сказать, что таймпикер вместе с ячейкой при прокрутке не двигается?
смотри событие OnTopLeftChanged и меняй координаты таймпикера...
-
> смотри событие OnTopLeftChanged и меняй координаты таймпикера...
в качестве альтернативы можно прятать таймпикер по OnExit (у самого так :)
|