Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/27: Рейтинг темы: голосов - 27, средняя оценка - 4.89
2 / 2 / 0
Регистрация: 10.11.2009
Сообщений: 93

Работа с Календарём в StringGrid

27.03.2010, 15:10. Показов 5241. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
procedure TMatMenu.MatTabMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; ACol, ARow: Integer);
begin
  ShowMessage(IntToStr(ACol));
end;
  1. ShowMessage(IntToStr(ACol)); выдаёт заоблочные цифры... cells[0,0] у меня =417 ;(
    ColCount=RowCount=8, но RowCount во время работы может увеличиваться. Хотелось бы узнать причину такого результата!
  2. Хотел сделать ввод даты из календаря в столбцы 6 и 7. При этом, когда нажимаеш на столбец 6 или 7 появляеться календарь, точнее, как буд-то он из ячейки выезжает. Нажав на дату, календарь проподает и дата вписывается в ячейку. Я пытался, что-то сделать, но вот первая проблема с ACol, а вторая с календарём. Календарь у меня Visible=False, при нажатие ACol=6 (или ACol=7) MounthCalendar1.show;, изначально он появлялся, но я не мог его спрятать, а сейчас вообще... ACol небесный...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2010, 15:10
Ответы с готовыми решениями:

StringGrid работа с TStrings и исключение "превышение размера StringGrid"
предположим есть TStringGrid и у него 10 строк и 2 колонки и есть TStringList и в нем 15 строк теперь выполняем ...

Delphi 7 Stringgrid Нужно сделать цикл для заполнения Stringgrid данными из другого Stringgrid
Нужно чтобы из Stringgrid1 данные переносились в Stringgrid2 Но ТОЛЬКО ПО УСЛОВИЮ Таблицы Stringgrid2 На рис всё показано. За работающий...

Работа в StringGrid
Здравствуйте, помогите пожалуйста добрым словом или кодом если не трудно, буду очень признателен. Проблема в следующем: нужно составить две...

11
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
 Аватар для *~<`PIK`>~*
607 / 387 / 81
Регистрация: 15.12.2009
Сообщений: 753
27.03.2010, 15:32
Ты неправильно используешь OnMouseDown. ACol=положение миши по X а ARow по Y.
Используй не OnMouseDown а OnSelectCell:
Delphi
1
2
3
4
5
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
ShowMessage(IntToStr(ACol));
end;
1
2 / 2 / 0
Регистрация: 10.11.2009
Сообщений: 93
28.03.2010, 18:05  [ТС]
Ты уверен? у меня в Events в StringGrid'е OnSelectCell нету... Я сам прописал, но почему-то процедура не работает!!! =(

Добавлено через 5 часов 41 минуту
Я пользуюсь Code Gear Delphi 2007
0
57 / 57 / 10
Регистрация: 27.02.2010
Сообщений: 282
28.03.2010, 20:23
Есть посмотрите внимательно... Сам часто пользуюсь 23 по счету сверху )))
1
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
 Аватар для *~<`PIK`>~*
607 / 387 / 81
Регистрация: 15.12.2009
Сообщений: 753
28.03.2010, 22:01
Цитата Сообщение от mcKulja Посмотреть сообщение
Я сам прописал, но почему-то процедура не работает!!!
неработает потому, что там было X, Y : INTEGER а ты написал ACol, ARow: Integer и в итоге получилось, что ACol - это положение курсора мышки по X а ARow - по Y
1
2 / 2 / 0
Регистрация: 10.11.2009
Сообщений: 93
29.03.2010, 02:38  [ТС]
Delphi
1
2
procedure TMatMenu.MatTabMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; ACol, ARow: Integer);
Удалил

Delphi
1
2
procedure TMatMenu.MatTabSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
Добавил... но она даже писку не подаёт =(
0
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
 Аватар для *~<`PIK`>~*
607 / 387 / 81
Регистрация: 15.12.2009
Сообщений: 753
29.03.2010, 12:33
не знаю, у меня все работает
1
2 / 2 / 0
Регистрация: 10.11.2009
Сообщений: 93
29.03.2010, 17:50  [ТС]
извиняюсь за свою невнимательность... Всё работает.. теперь продолжение вопроса =)

Как сделать, что при появление календаря, нажав на дату, дата вписывается в ячейку и календарь проподает?

Другой вопрос... Другой календарь.
Как сделать, что при нажатие на дату в календаре, обводиться вся строка в пунктирную красную линию и если нажать на другую дату, то закрашивается другая строка, а предыдущая закрашеная становиться дефолтной!?

Спасибо заранее!
0
2 / 2 / 0
Регистрация: 10.11.2009
Сообщений: 93
31.03.2010, 04:17  [ТС]
люди, я прошу вашей помощи...
поповоду ввода даты, я нашёл информацию про datetimepicker... если с самим еалендарём нельзя сделать, то о чём я прошу, тогда у меня другой вопрос! можноли datetimepicker засунуть в ячейку????
0
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
 Аватар для *~<`PIK`>~*
607 / 387 / 81
Регистрация: 15.12.2009
Сообщений: 753
31.03.2010, 18:41
Короче, кидаешь на форму сначала StringGrid, а потом MonthCalendar(обязательно в том порядке что я указал). У MonthCalendar Vizible=False. В Var указываешь 2 переменные типа Integer: Col и Row. Затем в OnSelectCell у StringGrid пешешь этот код:
Delphi
1
2
3
4
5
6
7
Col:=ACol;
Row:=ARow;
 
MonthCalendar1.Left:=Mouse.CursorPos.X-Form1.Left;
MonthCalendar1.Top:=Mouse.CursorPos.Y-Form1.Top;
MonthCalendar1.Visible:=True;
MonthCalendar1.SetFocus;
В OnDblClick у MonthCalendar пишешь этот код:
Delphi
1
2
StringGrid1.Cells[Col, Row]:=DateToStr(MonthCalendar1.Date);
MonthCalendar1.Visible:=False;
По нажатию на ячейку StringGrid появляется календарь, и по двойному клику по дате, дата вводится в ячейку и календарь пропадает
1
2 / 2 / 0
Регистрация: 10.11.2009
Сообщений: 93
01.04.2010, 12:07  [ТС]
Большое спасибо.. всё работает... вот только интересно, как сделать, чтоб календарь не выезжал за границу stringgrida илил хотябы form
0
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
 Аватар для *~<`PIK`>~*
607 / 387 / 81
Регистрация: 15.12.2009
Сообщений: 753
01.04.2010, 16:16
Цитата Сообщение от mcKulja Посмотреть сообщение
как сделать, чтоб календарь не выезжал за границу stringgrida илил хотябы form
ну мой код открывает календарь в положении курсора, но можно сделать, чтобы он был всегда посредине StringGrid независимо от того где находится курсор.
Для этого удали эти строчки с моего кода:
Delphi
1
2
MonthCalendar1.Left:=Mouse.CursorPos.X-Form1.Left;
MonthCalendar1.Top:=Mouse.CursorPos.Y-Form1.Top;
и в OnCreate у формы впиши этот код:
Delphi
1
2
MonthCalendar1.Left:=StringGrid1.Left+Round((StringGrid1.Width-MonthCalendar1.Width)/2);
MonthCalendar1.Top:=StringGrid1.Top+Round((StringGrid1.Height-MonthCalendar1.Height)/2);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2010, 16:16
Помогаю со студенческими работами здесь

Работа со stringgrid
Здравствуйте! Дан stringgrid, два столбца. в первом имена во втором средний бал. нужно сделать так чтобы по нажатию на кнопку буттон...

Работа со Stringgrid
Вообщем и не знаю как объяснить..надеюсь что поймете... Представьте что у вас матрица в Stringgrid размерности 8*8 По определенному...

Работа с stringgrid
Есть таблица в которой количество строк меняется в зависимости от того сколько строк понадобится пользователю. в два столбика пользователь...

Работа с StringGrid
Здравствуйте всем! Помогите пожалуйста написал формулу для расчета значений на стринггриде, при, хотя бы, одной пустой клетке выдает...

Работа в stringgrid
Добрый день уважаемые программисты! Требуется помощь, застрял:cry: Условия и , что требуется: Есть sg1, sg2, типизир. файл. sg1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru