Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как "растягивать" грид в runtime? / 5 сообщений из 5, страница 1 из 1
06.05.2004, 18:06
    #32509729
мадама
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как "растягивать" грид в runtime?
Пользуюсь Mshflexgrid. Как можно, скажем, потянуть его курсором (мауспойнтером) за уголок и растягивать по форме в рантайм? (Не путать со скроллом). Если у кого есть похожий кусочек кода, поделитесь please...
...
Рейтинг: 0 / 0
21.05.2004, 02:30
    #32527237
arseny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как "растягивать" грид в runtime?
Объясню кратко. Если будет непонятно, то напишу подробнее.
Ставишь PictureBoxы справа от FlexGrid и снизу FlexGrid (PictureBoxы будут служить растягивателями для FlexGrid). Называешь их picVer (для правого) и picHor (для нижнего).
Используется глобальная переменная для того, чтобы знать, когда нажата мышка и идёт изменение размера FlexGrid.
И вот прога:

Option Explicit

Private blMouseDown As Boolean

Private Sub Form_Load()
blMouseDown = False
End Sub



Private Sub picHor_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
blMouseDown = True
End Sub
Private Sub picHor_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
blMouseDown = False
End Sub

Private Sub picHor_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static sprevY As Single


If sprevY = 0 Then
sprevY = Y
Else
If blMouseDown Then
picHor.Top = picHor.Top + (Y - sprevY)
flxGrid.Height = flxGrid.Height + (Y - sprevY)
picVer.Height = picVer.Height + (Y - sprevY)
End If
End If
End Sub



Private Sub picVer_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
blMouseDown = True
End Sub
Private Sub picVer_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
blMouseDown = False
End Sub

Private Sub picVer_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static sprevX As Single


If sprevX = 0 Then
sprevX = X
Else
If blMouseDown Then
picVer.Left = picVer.Left + (X - sprevX)
flxGrid.Width = flxGrid.Width + (X - sprevX)
picHor.Width = picHor.Width + (X - sprevX)
End If
End If
End Sub
...
Рейтинг: 0 / 0
21.05.2004, 22:23
    #32529077
мадама
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как "растягивать" грид в runtime?
Конечно программа полный писк, мне понравилось, особенно идея. Но легко валится, когда пытаешься заезжать пикчами на "отрицательную границу", т.е. уменьшить объект донельзя. Спасибo anyway.
...
Рейтинг: 0 / 0
21.05.2004, 23:59
    #32529116
arseny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как "растягивать" грид в runtime?
Так в чём проблема поставить If и контролировать, чтобы не заезжало за отрицательные границы...?
Я же только принцып сделал.
:-)
...
Рейтинг: 0 / 0
22.05.2004, 00:20
    #32529123
мадама
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как "растягивать" грид в runtime?
Принцып чудный, спасибо большое. Я с лёту пыталась подправить и хотела послать. Но гладко, что б всё путём так сразу не получилось. Ещё раз спасибо.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как "растягивать" грид в runtime? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]