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

Вниз

Как вставить компонент 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
7-55873
VMcL
2003-05-07 13:53
2003.07.17
Поддержка SIMD


4-55909
fishca
2003-05-06 17:33
2003.07.17
OLE Automation & Win32API


3-55412
Evgenij Kardash
2003-06-22 19:18
2003.07.17
Запрос по двум таблицам


14-55807
Кен
2003-06-19 04:48
2003.07.17
Установил Дельфи 7 трайальную версию. Она меня поблагодарила за


6-55691
Santa
2003-05-12 11:49
2003.07.17
аля FlashGet





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