Глупый но мучительный вопрос по MsFlexGrid

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

Глупый но мучительный вопрос по MsFlexGrid

Сообщение Костя111 » 14.04.2005 (Чт) 8:47

Пытался написать нечто пдобное
Код: Выделить всё
Dim x, y As Long
For x = 1 to 5
      For y = 1 to 5
            MsFlexGrid1.TextMatrix (x, y) = "123"
      Next
Next
           

И вот че то ему не нравиться, заменяя x y на простые числа все работает. Можно ли заполнять MsFlexGrid в автоматическом режиме - сам думаю что возможно но не знаю как.
Заранее благодарен[/code]

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 14.04.2005 (Чт) 8:58

а там не с ноля.

попробуй увеличь количество строк и столбцов на 1
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.04.2005 (Чт) 9:35

Нет, попробуй правильно объявить x.
Lasciate ogni speranza, voi ch'entrate.

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 14.04.2005 (Чт) 9:35

нулевые строки это заголовки а вот на счет инкримента чет я не подумал.......генеральный про..б :oops:

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 14.04.2005 (Чт) 9:36

alibek
что значит правильно объявлять..... не Dim а что нит другое?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.04.2005 (Чт) 9:37

Не
Код: Выделить всё
Dim x, y As Long
, а
Код: Выделить всё
Dim x As Long, y As Long
.
В данном случае это никак не сказывается на функциональности, но является хорошим тоном и помогает избежать некоторых сложнообнаруживаемых ошибок.
Lasciate ogni speranza, voi ch'entrate.

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 14.04.2005 (Чт) 9:46

с Public все работает......псибо :)

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 14.04.2005 (Чт) 10:00

Костя111 писал(а):с Public все работает......псибо :)
Нихрена себе, новый способ :shock: А без паблик типа не работало... Значит все теперь объявляю пабликом!!!

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 14.04.2005 (Чт) 10:04

Костя111 писал(а):с Public все работает......псибо :)


Нука напиши код который у тебя получился, дай гляну, неужели просто Dim на Public и всё работает??? Странно...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 14.04.2005 (Чт) 10:04

Это не нужно. Public нужен не всегда, см. пост Alibek. Так всё тоже отлично работает.

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 15.04.2005 (Пт) 8:20

Джеффи
просто это первое что я сделал и на самом деле стало работать

vvs_adm
честно говоря, я действительно начинающий так что для меня любой способ - новый :lol:

PLA
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 08.04.2005 (Пт) 16:09
Откуда: Москва

Сообщение PLA » 15.04.2005 (Пт) 14:48

1) Dim x As Long, y As Long
2) Определи рамер сетки:
MSFlexGrid.Сols = 6
MSFlexGrid.Rows = 6

И все у тебя получится!

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 29.04.2005 (Пт) 7:24

Не хотел начинать новую тему, так что продолжим.... :lol:

Есть ли какой нить оператор который удаляет все значения из MSHFlexGrid?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 29.04.2005 (Пт) 10:56

Костя111 писал(а):Не хотел начинать новую тему, так что продолжим.... :lol:

Есть ли какой нить оператор который удаляет все значения из MSHFlexGrid?

А ты угадай :lol:

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 29.04.2005 (Пт) 11:08

Ага, среди методов объекта!
Век живи - век учись!
www.detal-plast.narod.ru

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 29.04.2005 (Пт) 11:23

Костя111
есть такая фича в бейсике - Object Browser называется
если уж все для тебя так ново, то может быть в форум для новичков будешь писать :wink:

PLA
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 08.04.2005 (Пт) 16:09
Откуда: Москва

Сообщение PLA » 29.04.2005 (Пт) 12:22

Народ! Как вам не стыдно? Посылать на другой форум, чморить Object Browser - ом. Так ты скажи мне как удалить все значения, удалить все столбцы и строки, а главное как очистить формат столбцов. Кстати не забудь, что нужно очистить значения из памяти компьютера, а не только визуально.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 29.04.2005 (Пт) 12:26

OMG! WTF!?

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 30.04.2005 (Сб) 20:07

ROFL! LOL!
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 03.05.2005 (Вт) 9:05

В целом я не вижу принципиальной разницы между форумами, просто если уж начал писать здесь то какой смысл переходить куда то еще, а вас господа програмисты, если вам так угодно, за яица никто не тянет, если нет желания отвечать на "глупый вопрос ", то можно и промолчать и нет смысла прикалываться над тем что кто то знает VB хуже чем вы.
пис :wink:

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 03.05.2005 (Вт) 9:17

Костя111

Понимаешь есть разница между новичком который хочет узнать, и новичком который не хочет понять. Он хочет чтобы ему разжевали и за него проглотили.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 03.05.2005 (Вт) 9:32

Дело в том что програмирование это мое хобби, и не стоит упрекать меня в том что я чего то не хочу понять или мне надо это разжевать, просто мне пока полностью не понять структуры построения программ и алгоритма выполниния, так что если кого то напрягает - то можете не отвечать......без обид
простите за оффтоп

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 03.05.2005 (Вт) 14:56

Когда человек задает вопрос, то непонятно - он любитель или профессионал. Т.е. с некоторыми понятно, конечно, но это к сожалению скорее исключение, нежели правило.

Насчет Object Browser совет был дельный - полезная вещь, реально рулит при изучении сложных контролов и/или библиотек. Сам им периодически пользуюсь, чего и тебе советую. А нужный тебе метод называется Clear - при достаточном знании английского и умении работать с VB6 IDE этот ответ был бы найден тобой самостоятельно минут за пять максимум, учитывая всю развесистость вышеозначенного компонента.

ЗЫ Отговорки типа "я не знаю английского" рекомендую не использовать - здесь это скорее наоборот будет воспринято. Опять-таки, никто не запрещает тебе его начать учить, хотя бы даже в объемах, необходимых для программирования.

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 04.05.2005 (Ср) 14:29

2 Ennor
Достойный ответ достойного человека.....спасиб, я уже понял свой касяк, следующий раз не поленюсь воспользоваться мсдн`ом, тем более он у меня теперь есть, а англ язык я и так знаю, просто спросил я у одного чудика что делает Clear, он сказал что он удаляет значение только одной ячейки, я так подумал что в цикл загонять смысл есть если кол-во ячеек не превышает 1000, да и то это наверно перебор и конкретно повесит комп, а у меня к сожалению их более 10000.
А я решил свою проблему с помощью SQL запросов (работаю с базой данных)

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 05.05.2005 (Чт) 13:03

Чтобы не создавать новую тему попутно вопрос по гриду:
как выделить (подсветить) необходимую строку грида?

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 05.05.2005 (Чт) 13:08

Public Sub SelChange() 'Выделение строки с фокусом желтым цветом
Dim MyC As Long
Static MyCo As Long
Dim MyCol As Integer

On Error Resume Next
With MeObject.MSHFlexGrid1
MyCol = .Cols
MyCC = .col
MyC = .Row
.Visible = False

If MyCo <> 0 Then
.Row = MyCo
For i = 1 To MyCol - 1
.col = i
.CellBackColor = &HFFFFFF
Next
.col = 0
.CellBackColor = &H8000000F
End If

.Row = MyC
For i = 0 To MyCol - 1
.col = i
.CellBackColor = &HC0FFFF
Next
.Visible = True

MyCo = MyC
.SetFocus
.col = MyCC
End With
End Sub
Век живи - век учись!
www.detal-plast.narod.ru

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 05.05.2005 (Чт) 13:20

мдаа... я предполагал что есть способ попроще, типа как у listbox'а
list.selected(x) = true...
большеватый код получается просто для highlight'а выделенной строки...
разве недьзя сделать выделение такое же, какое происходт при клике мышью по гриду?

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 05.05.2005 (Чт) 13:28

Народ... Я тут не в тему..., но всё же... Не так давно выяснил, что если объявлять переменные
Код: Выделить всё
Dim a,b as long
, то вторая переменная - b будет типа VARIANT

А чтобы верно было надо объявлять их отдельно

Код: Выделить всё
Dim a as long, b as long


Бред...., а ведь не знал..... И не знал, что оказывается True - это не 1, а -1

ПОЗОР МНЕ !!!! :oops:

Век живи.... век учись.....

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.05.2005 (Чт) 13:30

Код: Выделить всё
Me.MSFlexGrid1.SelectionMode = flexSelectionByRow

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 05.05.2005 (Чт) 14:17

Konst_One писал(а):
Код: Выделить всё
Me.MSFlexGrid1.SelectionMode = flexSelectionByRow

Может ошибаюсь, но при таком варианте фокус всегда находится только на первой не фиксированной ячейке первого столбца. Причем, почему-то ввод данных в ячейки в таком варианте реализовать не получилось. Наверное из-за того же фокуса на ячейке.
Если не понимаю - объясните.
Век живи - век учись!
www.detal-plast.narod.ru

След.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 128

    TopList