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

Вниз

Как вставить компонент DateTimePicker в ячейку таблицы StringGrid   Найти похожие ветки 

 
r900   (2003-07-02 11:48) [0]

Как вставить компонент DateTimePicker в ячейку таблицы StringGrid?
Если использовать процедуру:
procedure TForm11.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if (arow<>0) and (acol=1) then
begin
DateTimePicker1.Left:=StringGrid1.LeftCol+StringGrid1.DefaultColWidth+3;
DateTimePicker1.Top:=arow*(StringGrid1.DefaultRowHeight+1);
DateTimePicker1.Width:=StringGrid1.DefaultColWidth;
DateTimePicker1.Enabled:=true;
DateTimePicker1.Visible:=true;
end;

end;

, то вроде получается. Но когда появляется полоса прокрутки,т.к. строк может быть много ,то такой фокус не проходит?


 
clickmaker ©   (2003-07-02 11:51) [1]

DateTimePicker1.Parent := StringGrid1


 
Семен Сорокин ©   (2003-07-02 11:59) [2]

обрабатывай сообщения от scroll"а - смещай как надо


 
r900   (2003-07-02 12:25) [3]

А какое сообщение от scroll"а у StringGrid1, чего-то не нашел?. Может можно пример? А насчет DateTimePicker1.Parent := StringGrid1 куда вставить чтобы работалв том числе и с прокруткой?




 
Семен Сорокин ©   (2003-07-02 12:30) [4]

ты прав у StringGrid"а нет, придется делать наследника? наподобие:

type
TScrollDirect = (sdVert, sdHorz);

TScrollEvent = procedure (Sender: TScrollBox; Direct: TScrollDirect; Position: integer) of object;

TScrBox = class(TScrollBox)
private
FOnScroll: TScrollEvent;
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
procedure WMNCHitTest(var Message: TMessage); message WM_NCHITTEST;
published
property OnScroll: TScrollEvent read FOnScroll write FOnScroll;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents("Samples", [TScrBox]);
end;

{ ------------------------------- TScrBox ------------------------------------ }

procedure TScrBox.WMHScroll(var Message: TWMHScroll);
begin
inherited;
if Assigned(FOnScroll) then
FOnScroll(TScrollBox(Self), sdHorz, HorzScrollBar.Position)
end;

procedure TScrBox.WMNCHitTest(var Message: TMessage);
begin
DefaultHandler(Message)
end;

procedure TScrBox.WMVScroll(var Message: TWMVScroll);
begin
inherited;
if Assigned(FOnScroll) then
FOnScroll(TScrollBox(Self), sdVert, VertScrollBar.Position)
end;


 
Song ©   (2003-07-02 12:50) [5]

2r900 (02.07.03 12:25)
TStringGrid.onLeftTopChanged


 
r900   (2003-07-02 13:45) [6]

Song -> Если вставить DateTimePicker1.Parent := StringGrid1
в TStringGrid.onLeftTopChanged все равно с прокруткой не работает, получается какая то ерунда.



 
r900   (2003-07-02 14:04) [7]

Семен Сорокин -> А как увязать ваш компонент с ячейками StringGrid? Если можно на моем примере.


 
Семен Сорокин ©   (2003-07-02 14:28) [8]

r900 (02.07.03 14:04)
делаешь наследника - ловишь скроллы - сдвигаешь свой DateTimePicker1


 
r900   (2003-07-02 14:57) [9]

А можно все-таки пример использования вашего наследника, если нетрудно


 
ZEE ©   (2003-07-02 16:40) [10]

Да не нужен наследник, Song прав
OnLeftTopChanged, но еще строку
DateTimePicker1.Top:=arow*(StringGrid1.DefaultRowHeight+1);
замени на
DateTimePicker1.Top:=(arow+StringGrid1.TopRow)*(StringGrid1.DefaultRowHeight+1);


 
BOA_KAA ©   (2003-07-02 16:51) [11]

Для любителей вставлять в грид всякую гадость :-) в кладовке компонент валялся, насколько я помню. Если не найдешь - могу намылить


 
r900   (2003-07-04 07:22) [12]

Тогда можно вопрос? А что тогда в процедуре OnLeftTopChanged писать? Если \
DateTimePicker1.Parent := StringGrid1
DateTimePicker1.Left:=StringGrid1.LeftCol+StringGrid1.DefaultColWidth+3;
DateTimePicker1.Top:=arow*(StringGrid1.DefaultRowHeight+1);
DateTimePicker1.Width:=StringGrid1.DefaultColWidth;
DateTimePicker1.Enabled:=true;
DateTimePicker1.Visible:=true;
не получается?

BOA_KAA-> А что на счет компонента? В местной кладовке его не
нашел. Если не сложно скиньте по почте r900@yandex.ru



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
14-55796
uw
2003-06-30 16:42
2003.07.17
Visual Studio .NET


3-55399
Пубертанец
2003-06-23 13:57
2003.07.17
Проблема создания loookup-овского поля программным путем


3-55447
Ann
2003-06-24 09:09
2003.07.17
FastReport


3-55441
softmaster
2003-06-24 13:27
2003.07.17
RXQuery


3-55419
Relaxxx
2003-06-24 10:20
2003.07.17
Как выделить програмно нужные строки в DBGrid