msflexgrid

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SlavaY
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 12.03.2003 (Ср) 12:44

msflexgrid

Сообщение SlavaY » 18.07.2003 (Пт) 10:06

делаю такую вещь. Необходимо из базы вытащить (я вытаскиваю в мгрид) содержимое некоторых полей тех записей,которые удовлетворяют условию, поля выбираются пользователем. Неудобно то, что содержимое поля не помещается в ячеку, мона конечно найти длину самого большого и сделать по нему ширину колонки, но это ерунда. Может есть возможность мультилайна или еще что. Или посоветуйте, куда выводить, кроме грида. С массивами объектов не работал. Вот типа таблички, это хорошо.

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 18.07.2003 (Пт) 13:53

multiline в ячейках гриды - это свойство WordWrap = True
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

SlavaY
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 12.03.2003 (Ср) 12:44

Сообщение SlavaY » 18.07.2003 (Пт) 14:10

Не проканало
Просто в свойствах поставил тру, но........

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 18.07.2003 (Пт) 14:12

WordWrap будет работать только если слова разделены vbCrLf

SlavaY
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 12.03.2003 (Ср) 12:44

Сообщение SlavaY » 18.07.2003 (Пт) 14:23

Вопрос глуп и стар как мир: КАК?

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 18.07.2003 (Пт) 14:59

RayShade писал(а):WordWrap будет работать только если слова разделены vbCrLf

RayShade, ты чего? а пробелы?
это если строка длинная и без пробелов то да, а так он нормально их переносит по словам...

2SlavaY: могу предложить вариант автосайза строк по высоте...

на форму с MSFlexGrid'ом положи TextBox. в его свойствах укажи: BorderStyle = 0-None
MultiLine = True

дальше примерно такой
Код: Выделить всё
Option Explicit

'=========================================================================

' API-функция SendMessage используется для определения
' количества строк в TextBox'е, связанном с редактируемой ячейкой
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
        (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
        lParam As Any) As Long
Private Const EM_GETLINECOUNT = &HBA

Private Sub AutoHeightCells()
  ' подгоняем высоту строк в MSFlexGrid под
  ' количество строк текста в его ячейках
  Dim StringCount As Long ' количество строк
  Dim NewHeight As Long ' высота
  Dim MaxHeight As Long
  Dim i As Integer, j As Ineger
  With aFlexGrid
    For j = 0 To .Rows -1 ' цикл по строкам грида
      For i = 0 To .Cols - 1
        aTmpTextBox.Width = .ColWidth(i)
        aTmpTextBox.Text = .TextMatrix(.Row, i)
        StringCount = SendMessage(aTmpTextBox.hwnd, EM_GETLINECOUNT, 0, 0)
        If MaxHeight < StringCount Then MaxHeight = StringCount
      Next i
               
      StringCount = SendMessage(aTextBox.hwnd, EM_GETLINECOUNT, 0, 0)
      ' вычисляем высоту ячейки в зависимости от количества строк и
      ' высоты символа
      If StringCount < MaxHeight Then StringCount = MaxHeight
      StringCount = StringCount + 1
      NewHeight = aTextBox.Parent.TextHeight("A") * StringCount
      ' изменяем высоту всей строки, если новое значение больше старого
      .RowHeight(.Row) = NewHeight
    Next j
  End With
End Sub
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC


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

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

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

    TopList  
cron