Автор вопроса: Justas | Web-сайт:justas.newmail.ru | ICQ: 259418212
Привет всем!
Есть 2 вопроса:
1. Есть MSFlexGrid
и база аксесовская. В таблице есть булево поле.
При отображении таблицы в гриде, булево поле отображается как 0 или 1, а сильно хочется что бы было отображалось как “есть” и ”Нет” или вообще галочками (как в
CheckBox). Можно конечно перебирать содержимое ячеек и если “0” ставить “Нет”, но хотелось бы попроще.
Может у MSFlexGrid свойство есть на эту тему???
2. Чисто академический интерес:
Хочу овальное окно, пишу:
Private Sub Form_Load()
Dim region As Long
region = CreateEllipticRgn(0, 0, 200, 200)
SetWindowRgn me.hWnd, region, True
DeleteObject region
End Sub
Всё хорошо, окно овальное.
Шаг второй, хочу например, круглый виндовый калькулятор.
Пишу:
Private Sub Form_Load()
Dim region As Long
Dim hendl As Long
hendl = FindWindow(vbNullString, "Калькулятор")
region = CreateEllipticRgn(0, 0, 200, 200)
SetWindowRgn hendl, region, True
DeleteObject region
End Sub
И калькулятор, против всех ожиданий, остаётся квадратным, а хочется круглый. Как???
1)Данные в MsFlexGrid я заношу отдельно в каждую ячейку, поэтому сделал бы
If True Then ячейка.Техт = " V" Else ячейка.Техт = "" End If Заодно вопрос, а к MsFlexGrid можно подключать сразу весь RecordSet?
2) Я создание эллипсовидного окна решаю так. Делаю это по нажатии кнопки cmdButton.
Public Sub cmdButton_Click()
Static blnClipped As Boolean Dim lngRegion As Long Dim lngResult As Long Dim lngX1 As Long, lngX2 As Long, lngY1 As Long, lngY2 As Long Dim lngXoff As Long, lngYoff As Long
If blnClipped Then 'Restore Window to Normal lngResult = SetWindowRgn(Me.hwnd, 0&, True) 'Change Button Caption cmdEraseForm.Caption = "Clip Me!" Else 'Define the Region to Clip 'If number biggest clip change place to left lngX1 = Int((Me.Width / 3.05) / Screen.TwipsPerPixelX) 'If number biggest clip change place to top lngY1 = Int((Me.Height / 1.15) / Screen.TwipsPerPixelY) 'If number biggest clip change area to small at zir X lngX2 = lngX1 + Int((Me.Width / 3) / Screen.TwipsPerPixelX) 'If number biggest clip change area to small at zir Y lngY2 = lngY1 + Int((Me.Height / 11.5) / Screen.TwipsPerPixelY)
'Now we must introduce an offset to compensate for the fact that 'the title bar and frame have been removed and the region is defined relative 'to the client area and not the entire window. lngXoff = GetSystemMetrics(SM_CXFRAME) lngYoff = GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYCAPTION)