why AUGUST init on fryday!!!
-
- PlatinumLounger
- Posts: 4535
- Joined: 26 Apr 2010, 17:36
why AUGUST init on fryday!!!
why AUGUST init on fryday!!!
You do not have the required permissions to view the files attached to this post.
-
- 5StarLounger
- Posts: 667
- Joined: 27 Jun 2021, 10:46
Re: why AUGUST init on fryday!!!
Mainly because the code is a mess. Finding the last and first days can be done in a line, no need for the multiline functions or checking for leap ears. That being said they do look like they get the right values. But how those values are then used to figure out where to print the numbers (both in the DrawDays and in the mousemove routine) is inconsistent and incorrect.
Here's a modification of DrawDays(still not great code) that at least puts the dates in the right cells:
Note that this should give you enough info to make a similar modification the MouseMove event
Here's a modification of DrawDays(still not great code) that at least puts the dates in the right cells:
Code: Select all
Private Sub DrawDays()
Dim I As Long
Dim iRow As Integer
Dim iMonth As Integer
Dim sText As String
On Local Error Resume Next
If Not mfLoaded Then Exit Sub
'Get selected month
iMonth = cboMonth.ListIndex + 1
iRow = 1
For I = DateSerial(cboYear.Text, iMonth, 1) To DateSerial(cboYear.Text, iMonth + 1, 0) 'nDate + iLast - 1
sText = Format$(Day(I), "0")
picCal.CurrentY = (Dy * iRow) + (0.5 * (Dy - picCal.TextHeight(sText)))
picCal.CurrentX = dX * (Weekday(I, vbMonday) - 1) + (0.5 * (dX - picCal.TextWidth(sText)))
picCal.Print sText
iRow = iRow - (Weekday(I) = vbSunday)
Next
End Sub
-
- PlatinumLounger
- Posts: 4535
- Joined: 26 Apr 2010, 17:36
Re: why AUGUST init on fryday!!!
tks bro.SpeakEasy wrote: ↑31 Jul 2024, 23:28Mainly because the code is a mess. Finding the last and first days can be done in a line, no need for the multiline functions or checking for leap ears. That being said they do look like they get the right values. But how those values are then used to figure out where to print the numbers (both in the DrawDays and in the mousemove routine) is inconsistent and incorrect.
Here's a modification of DrawDays(still not great code) that at least puts the dates in the right cells:
Note that this should give you enough info to make a similar modification the MouseMove eventCode: Select all
Private Sub DrawDays() Dim I As Long Dim iRow As Integer Dim iMonth As Integer Dim sText As String On Local Error Resume Next If Not mfLoaded Then Exit Sub 'Get selected month iMonth = cboMonth.ListIndex + 1 iRow = 1 For I = DateSerial(cboYear.Text, iMonth, 1) To DateSerial(cboYear.Text, iMonth + 1, 0) 'nDate + iLast - 1 sText = Format$(Day(I), "0") picCal.CurrentY = (Dy * iRow) + (0.5 * (Dy - picCal.TextHeight(sText))) picCal.CurrentX = dX * (Weekday(I, vbMonday) - 1) + (0.5 * (dX - picCal.TextWidth(sText))) picCal.Print sText iRow = iRow - (Weekday(I) = vbSunday) Next End Sub
but not mine code.
-
- PlatinumLounger
- Posts: 4535
- Joined: 26 Apr 2010, 17:36
Re: why AUGUST init on fryday!!!
BRO...SpeakEasy wrote: ↑31 Jul 2024, 23:28Mainly because the code is a mess. Finding the last and first days can be done in a line, no need for the multiline functions or checking for leap ears. That being said they do look like they get the right values. But how those values are then used to figure out where to print the numbers (both in the DrawDays and in the mousemove routine) is inconsistent and incorrect.
Here's a modification of DrawDays(still not great code) that at least puts the dates in the right cells:
Note that this should give you enough info to make a similar modification the MouseMove eventCode: Select all
Private Sub DrawDays() Dim I As Long Dim iRow As Integer Dim iMonth As Integer Dim sText As String On Local Error Resume Next If Not mfLoaded Then Exit Sub 'Get selected month iMonth = cboMonth.ListIndex + 1 iRow = 1 For I = DateSerial(cboYear.Text, iMonth, 1) To DateSerial(cboYear.Text, iMonth + 1, 0) 'nDate + iLast - 1 sText = Format$(Day(I), "0") picCal.CurrentY = (Dy * iRow) + (0.5 * (Dy - picCal.TextHeight(sText))) picCal.CurrentX = dX * (Weekday(I, vbMonday) - 1) + (0.5 * (dX - picCal.TextWidth(sText))) picCal.Print sText iRow = iRow - (Weekday(I) = vbSunday) Next End Sub
now i test new code with msflexgrid.
the project is a reservation room
my prob, is:
if i cleck one time on msflexgrid i need to insert the date in tbox ARRIVO, the second click on msflexgrisd if for tbox PARTENZA.
HOW TO CHECK THIS CPNIDTIO?
In effect i need to rtestrict only two click....
Code: Select all
Private Sub MSFlexGrid2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim CL As Integer, RW As Integer, iMonth As Integer
iMonth = cboMonth.ListIndex + 1
y = cboYear.Text
With MSFlexGrid2
RW = .MouseRow
CL = .MouseCol
If RW >= 1 And .TextMatrix(RW, CL) > "" Then
Me.TARRIVO.Text = Format(.TextMatrix(RW, CL) & "/" & iMonth & "/" & y, "DD/MM/YYYY")
Else
Me.TARRIVO.Text = ""
End If
End With
End Sub
You do not have the required permissions to view the files attached to this post.
-
- 5StarLounger
- Posts: 667
- Joined: 27 Jun 2021, 10:46
Re: why AUGUST init on fryday!!!
As I recall, you use VB6 - and VB6 includes both a Calendar control and a DatePicker control (the latter of which seems ideal for what you are trying to do). Why reinvent the wheel?