Как получить объединенную ячейку у VSFlexGrid?

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

Как получить объединенную ячейку у VSFlexGrid?

Сообщение brigval » 16.07.2007 (Пн) 12:16

Ковырял, ковырял, так и не получил нужного результата. Если не трудно, приведите пример кода в несколько строк.
brigval

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 16.07.2007 (Пн) 12:32

VSFlexGrid1.MergeCells...

brigval
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 16.10.2005 (Вс) 12:37
Откуда: Подмосковье

Сообщение brigval » 16.07.2007 (Пн) 12:41

Avtopic писал(а):VSFlexGrid1.MergeCells...

Это понятно. Есть еще .MergeRow и .MergeCol
Для MergeCells присваиваются константы.

А как практически можно написать код так, что вместо двух ячеек на экране отображалась одна?
brigval

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 16.07.2007 (Пн) 13:30

MergeCells нельзя установить для определенных ячеек без данных, работает в привязке с данными.
Вернее установить можно, но визуально объединятся, не будут, обедняются одинаковые данные в зависимости от MergeCells MergeRow MergeCol

пример из его же хелпа

Код: Выделить всё

    fg.MergeCells = flexMergeFree
    fg.MergeCol(1) = True: fg.MergeCol(2) = True: fg.MergeCol(3) = True
   
    fg.TextMatrix(3, 1) = " "
    fg.TextMatrix(4, 1) = " "
    fg.TextMatrix(5, 1) = " "
    fg.TextMatrix(6, 1) = " "
    fg.TextMatrix(7, 1) = " "
   
    fg.TextMatrix(3, 2) = "uyuk jyt "
    fg.TextMatrix(4, 2) = "uyuk jyt "
    fg.TextMatrix(5, 2) = "jyt "
    fg.TextMatrix(6, 2) = "jyt "
   
    fg.TextMatrix(3, 3) = "uyuk jyt "
    fg.TextMatrix(4, 3) = "uyuk jyt "
    fg.TextMatrix(5, 3) = "uyuk jyt "
    fg.TextMatrix(6, 3) = "jyt "

brigval
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 16.10.2005 (Вс) 12:37
Откуда: Подмосковье

Сообщение brigval » 16.07.2007 (Пн) 14:42

Avtopic, большое спасибо. Все работает.
А текст можно раположить этом гриде вертикально?
brigval

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 16.07.2007 (Пн) 17:38

brigval писал(а):А текст можно раположить этом гриде вертикально?
По-моему напрямую, никак.
Как альтернатива, имеется свойство OwnerDraw и евент DrawCell
с помощью которых можно по идее вытворять в ячейке все что угодно и константы для OwnerDraw внушительные по возможностям, но реально, как только выставляется режим OwnerDraw (когда юзер может рисовать) все до невозможности тормозит. Об этом тормозе пишут и сами разработчики этого контроля в документации.
Как реальная альтернатива, не использовать встроенный OwnerDraw, и рисовать текст самому с помощью апи. но это должно стоить свеч.

brigval
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 16.10.2005 (Вс) 12:37
Откуда: Подмосковье

Сообщение brigval » 16.07.2007 (Пн) 22:38

Avtopic, ясно. Спасибо за консультацию.
Объедиенные ячейки, почему-то сами иногда разъединяются. Причем не все. Момент это поймать мне не удалось: все мысли о коде. Вероятно ячейки разъединяются после перекрытия окнами других программ. Но может быть я что-то не так делаю...
brigval

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 17.07.2007 (Вт) 1:42

Этот грид содержит маленькие глюки, как и все на земле… С которыми иногда приходится бороться (.Refresh, .Redraw)
Но нужно признать, что он достаточно наворочен…

brigval
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 16.10.2005 (Вс) 12:37
Откуда: Подмосковье

Сообщение brigval » 17.07.2007 (Вт) 5:44

Avtopic писал(а):Но нужно признать, что он достаточно наворочен…

Да, довольно удобный грид. Спасибо.
brigval

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 18.07.2007 (Ср) 16:27

Слушайте, тож вопрос по FlexGrid'у: как выровнять по-центру(горзонтально)?
Пробовал делать так:
Код: Выделить всё

Fg.ColAlignment (0) = 1
Fg.ColAlignmentFixed (0) = 1
Fg.ColAlignmentBand (0, 0) = 1

Fg.Row = 0
Fg.Col = 0
Fg.CellAlignment = 1


Это выравнивает не помогает :( . Если заместо 1 поставить 2, то происходит выравнивание по-вертикали (по-нижнему краю).
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 19.07.2007 (Чт) 15:22

Люди, что никто не знает ответ на мой вопрос? :( Или просто надо другую тему создать?
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Niko
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 102
Зарегистрирован: 16.03.2006 (Чт) 14:43

Сообщение Niko » 19.07.2007 (Чт) 15:48

Это выравнивает не помогает . Если заместо 1 поставить 2, то происходит выравнивание по-вертикали (по-нижнему краю).

а если 3 поставить

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 20.07.2007 (Пт) 18:56

Niko, точно! Только лучше 4. Спасибо!
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 24.07.2007 (Вт) 14:58

Ну вот, опять в эту тему пишу :)

Вообщем в MSFlexGrid'е мудреный заголовок и пришлось объединять ячейки. Для объединения я юзал Fg.MergeCells = flexMergeFree, но потом обнаружил, что при введении одинаковых данных в соседние ячеки, эти ячейки объединяються, а это мне совсем не надо. Можно ли запретить или разрешить объединение только определенных ячеек?

Думаю для этой цели и служит Fg.MergeCells, но не разобрался с какими значениями как все работает.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 25.07.2007 (Ср) 9:41

Ну точно: надо другую тему.. А то ответа в два раза дольше ждешь..
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман


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

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

Сейчас этот форум просматривают: AhrefsBot, Majestic-12 [Bot], Yandex-бот и гости: 20

    TopList