Topic: даты в календаре (NEW)
Доброе время суток, help pls. Нужно что бы все даты в таблице, которые были занесены, подсвечивались в календаре. Каким образом это реально сделать? Буду очень благодарен, заранее спасибо.
My Visual Database → Russian → даты в календаре (NEW)
Доброе время суток, help pls. Нужно что бы все даты в таблице, которые были занесены, подсвечивались в календаре. Каким образом это реально сделать? Буду очень благодарен, заранее спасибо.
Приветствую.
Скачайте пожалуйста последнюю бета версию, добавил такую возможнсть
https://www.dropbox.com/s/xhks7c4n6g8m0 … a.zip?dl=0
Пример:
procedure Form1_TableGrid1_OnChange (Sender: TObject);
begin
Form1.MonthCalendar1.Visible := False;
Form1.MonthCalendar1.Date:=Form1.MonthCalendar1.Date - 365;
Form1.MonthCalendar1.Date:=Form1.MonthCalendar1.Date + 365;
Form1.MonthCalendar1.Visible := True;
end;
procedure Form1_MonthCalendar1_OnGetMonthBoldInfo (Sender: TObject; Month, Year: Cardinal; var MonthBoldInfo: Cardinal);
var
AStr: array of string;
AByte: Array of byte;
sMonth, s: string;
i, c: integer;
begin
sMonth := IntToStr(Month);
if Length(sMonth)=1 then sMonth := '0' + sMonth;
s := SQLExecute( 'SELECT group_concat(strftime(''%d'', "DateField"), ",") FROM booking WHERE strftime(''%m.%Y'', "DateField")="'+sMonth+'.'+IntToStr(Year)+'"' ); //
if s <> '' then
begin
AStr := SplitString(s, ',');
SetLength(AByte, Length(AStr));
c := Length(AByte)-1;
for i := 0 to c do
if ValidInt(AStr[i]) then AByte[i] := StrToInt(AStr[i]) else AByte[i] := 0;
TdbMonthCalendar(Sender).BoldDays(AByte, MonthBoldInfo);
end;
end;
Также можете скачать проект с данным примером, в примере даты в календаре будут выделеным жирным шрифтом, к сожалению подобное выделение не делает даты достаточно видимыми, но другой возможности пока нет:
Dmitry, спасибо за быстрый отзыв. Сделал как вы сказали, скачал последнюю бету версию, и пример. Открыл пример с её помощью, запустил и ничего не увидел. ("будут выделеным жирным шрифтом") Все цифры остались одинаковые.
Извинюсь, видимо забыл обновить версию, скачайте пожалуйста программу еще раз и пример тоже.
Dmitry, отлично, заработало. Спасибо! Скажите пожалуйста, стоит ли ожидать изменения цвета у этих дат в дальнейших версиях? (то есть не просто жирным курсивом а красным цветом) Это бы существенно усилило программу для использования её как планировщика.
К сожалению у данного компонента нет возможности выделить более заметно.
Посмотрите пожалуйста данный пример планировщика
http://myvisualdatabase.com/forum/misc. … download=1
Жаль... А есть хотя бы возможность что бы календарь всегда начинал показывать к примеру с 1 мая 2017 года, а не сегоднешней датой?
Жаль... А есть хотя бы возможность что бы календарь всегда начинал показывать к примеру с 1 мая 2017 года, а не сегоднешней датой?
procedure Form1_OnShow (Sender: TObject; Action: string);
begin
Form1.MonthCalendar1.Date := EncodeDate(2018, 05, 1);
end;
Доброе время суток, а какие нужно исправления в скрипте сделать, что бы он работал для MySQL? Просто я так понимаю строка
s := SQLExecute( 'SELECT group_concat(strftime(''%d'', "DateField"), ",") FROM booking WHERE strftime(''%m.%Y'', "DateField")="'+sMonth+'.'+IntToStr(Year)+'"' ); //
явно для SQLite, и после перехода на MySQL теперь не работает. Заранее спасибо
Доброе время суток, а какие нужно исправления в скрипте сделать, что бы он работал для MySQL? Просто я так понимаю строка
s := SQLExecute( 'SELECT group_concat(strftime(''%d'', "DateField"), ",") FROM booking WHERE strftime(''%m.%Y'', "DateField")="'+sMonth+'.'+IntToStr(Year)+'"' ); //
явно для SQLite, и после перехода на MySQL теперь не работает. Заранее спасибо
Для MySQL
s := SQLExecute( 'SELECT CONCAT_WS(",", DATE_FORMAT(`DateField`, "%e")) FROM booking WHERE DATE_FORMAT(`DateField`, "%m.%Y")="'+sMonth+'.'+IntToStr(Year)+'"' );
Для MySQL
s := SQLExecute( 'SELECT CONCAT_WS(",", DATE_FORMAT(`DateField`, "%e")) FROM booking WHERE DATE_FORMAT(`DateField`, "%m.%Y")="'+sMonth+'.'+IntToStr(Year)+'"' );
Поменял код, он заработал, но с какой то ошибкой. Показывает только 1 дату в месяце. Если её удалить, рамдомно будет показываться другая дата в этом месяце, но опять же одна. На (Рис1) как работал код на SQLite, на (Рис2) как он теперь выглядит на MySQL
Переделал немного проект для MySQL
Переделал немного проект для MySQL
А можно изменить цвет выделяемого цвета с черного например на красный ?
DriveSoft wrote:Переделал немного проект для MySQL
А можно изменить цвет выделяемого цвета с черного например на красный ?
Можно создать свой календарь с любыми цветами:
https://createmyvisualdatabaseapp.blogs … /ui-4.html
My Visual Database → Russian → даты в календаре (NEW)
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi