Глюк компонента Microsoft Calendar Control

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Глюк компонента Microsoft Calendar Control

Сообщение Alexanbar » 11.01.2006 (Ср) 0:18

ПРи смене месяца или года день обнуляется, в результате чего при попытке чтения месяца и года выдаются нули, в то время, как видим мы абсолютно ненулевые конкретные значения. Пока не ткнешь на к-л день, ситуация не меняется. ОДнако лишнее тыканье не всегда входит в наши планы, а , меняя месяц или год, мы не планируем менять день, поэтому сей глюк откорректировал следующим образом:
Код: Выделить всё
Private myDay As Integer
....
Private Sub Calendar1_Click()
myDay = Me.Calendar1.Day

End Sub

Private Sub Calendar1_NewMonth()
CorrectDay
End Sub

Private Sub Calendar1_NewYear()
CorrectDay
End Sub

private Sub CorrectDay()


md% = myDay
On Error Resume Next
'--------------------------
'переводи фокус в сторону от контрола. М.б. это и не обязательно
cmdOK.SetFocus
If Err.Number <> 0 Then
'если форма ещё не загружена,  на кнопку фокус передать нельзя, а  VB6, почему-то считает своим долгом вырубить программу по этому пустяковому поводу
   Err.Clear
    Exit Sub
End If
'--------------------------


If md > 1 Then
    Calendar1.Day = myDay - 1
Else
    Calendar1.Day = myDay + 1
End If
Calendar1.Day = md
Calendar1_Click
Err.Clear
On Error GoTo 0
End Sub
Private Sub Form_Activate()

myDay = Me.Calendar1.Day

End Sub


Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 12.01.2006 (Чт) 16:00

Глюки продолжаются. Контрол не считает нужным сохранять параметры, указанные во время дизайна на всех компах, кроме моего. Метод борьбы: Задание нужных параметров в событии Form_Load:

Код: Выделить всё
With Calendar1
    .GridFont.Size = 12
    .GridFont.Name = "Arial Cyr"
    .GridFont.Italic = True
    .MonthLength = 0
    .FirstDay = 1
    .DayLength = 1
    .DayFont.Size = 9
    .DayFont.Name = "Times New Roman Cyr"
    .TitleFont.Name = "Arial Cyr"
    .TitleFont.Size = 9
   
End With


Обнаружено также, что в w98 контрол версии 11 работает неверно, те. в Combobox-ах выбора месяца и года ничего не отображается. Т.е. в дистрибутив нужно включать версию 9. Не пойму, где же тогда используется внрсия 10, если в дистрибутив Office2000 входит 9я, а в дистрибутив Offic XP - 11я?
Вложения
MSCalendar глюк.zip
(6.34 Кб) Скачиваний: 31


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 17

    TopList