MSFlexGrid -> Как вводить текст вручную в РанТайме?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
w01fie
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 7
Зарегистрирован: 08.12.2006 (Пт) 19:31
Откуда: Russian Empire, Moscow

MSFlexGrid -> Как вводить текст вручную в РанТайме?

Сообщение w01fie » 08.12.2006 (Пт) 20:21

Первый раз работаю с контролом MSFlexGrid....
и никак не найду нормального способа поработать с таблицей...
:oops: "MSFlexGrid -> Как вводить текст вручную в РанТайме?"
Очень поможете!
··•··•••··•··••·•·•·•···••·•••··
C:\> per asper ad astra
684 Errare humanum est!
C:\>

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

Сообщение Amed » 08.12.2006 (Пт) 20:33

Код: Выделить всё
Private Sub MSFlexGrid1_Click()
    With MSFlexGrid1
        Text1.Move .Left + .ColPos(.Col), .Top + .RowPos(.Row), .ColWidth(.Col), .RowHeight(.Row)
        Text1.Visible = True
        Text1.SetFocus
    End With
End Sub

Private Sub Text1_Click()
    With MSFlexGrid1
        .TextArray(.Row * .Cols + .Col) = Text1.Text
        Text1.Text = vbNullString
        Text1.Visible = False
    End With
End Sub

w01fie
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 7
Зарегистрирован: 08.12.2006 (Пт) 19:31
Откуда: Russian Empire, Moscow

Сообщение w01fie » 08.12.2006 (Пт) 20:40

AmedБольшое спасибо!
но неужели нет такого контрола, чтобы можно было как в Excel или в Delphi просто кликать по ячейке и текст вбивать?
··•··•••··•··••·•·•·•···••·•••··
C:\> per asper ad astra
684 Errare humanum est!
C:\>

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

Сообщение Amed » 08.12.2006 (Пт) 20:48

Поищи grid на http://www.planet-source-code.com.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.12.2006 (Пт) 20:59

w01fie, смени аватару на неподвижную.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

w01fie
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 7
Зарегистрирован: 08.12.2006 (Пт) 19:31
Откуда: Russian Empire, Moscow

Сообщение w01fie » 08.12.2006 (Пт) 21:56

Amed И снова спасибо! нашел что надо - но
каких-нибудь более-менее стандартных контролов нет в обойме ВБ6 Про или Интерпрайз для редактирования таблиц?

GSerg Зачем это мне менять? Что это с ним не так?
··•··•••··•··••·•·•·•···••·•••··
C:\> per asper ad astra
684 Errare humanum est!
C:\>

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

Сообщение Amed » 08.12.2006 (Пт) 22:01

w01fie, стандартные таблицы заточены под доступ к базам данных, вручную редактировать в них приходится с изворотами. :)

Если мне не изменяет память, редактировать хорошо умеет Janus GridEx, но он платный.

w01fie
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 7
Зарегистрирован: 08.12.2006 (Пт) 19:31
Откуда: Russian Empire, Moscow

Сообщение w01fie » 08.12.2006 (Пт) 22:13

Amed
Преподаватель перепутал Делфи с Бейсиком - а я в лепешку разшибайся - сдался уму ввод матрицы М х Н с клавиатуры... А можно же только через таблицу... Спасибо тебе - беру твой код с бегающим текстбоксом!
··•··•••··•··••·•·•·•···••·•••··
C:\> per asper ad astra
684 Errare humanum est!
C:\>

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.12.2006 (Пт) 22:52

w01fie писал(а):GSerg Зачем это мне менять? Что это с ним не так?

http://bbs.vbstreets.ru/viewtopic.php?t=22197
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

w01fie
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 7
Зарегистрирован: 08.12.2006 (Пт) 19:31
Откуда: Russian Empire, Moscow

Сообщение w01fie » 09.12.2006 (Сб) 21:27

http://bbs.vbstreets.ru/viewtopic.php?t=22197

56% сказали ДА подписям и аватарам! - а читать все коменты... :albino:

И не будем лучше офф-топ разводить... Если найду чего получше - сменю
··•··•••··•··••·•·•·•···••·•••··
C:\> per asper ad astra
684 Errare humanum est!
C:\>

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 11.12.2006 (Пн) 23:17

w01fie писал(а):AmedБольшое спасибо!
но неужели нет такого контрола, чтобы можно было как в Excel или в Delphi просто кликать по ячейке и текст вбивать?

А Вы, сударь, полагаете, что там как-то иначе? Мне кажется Exel'евский Grid это как раз и есть пример описанного выше примера (покорнейше извиняюсь за тавталогию). В самом деле, есть ли способ проще и надежнее? Если присмотреться, то в экселе его видно! Со своей стороны я мог бы посоветовать только одно: Объединить MSFlexGrid и TextBox (а лучше RichTextbox - всеравно ocx'ы с прогой тягать) в один юзерконтрол и пользоваться им...
Спасибо за внимание. С уважением, визуально-базовый, прямо трехмерный... Денис.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 11.12.2006 (Пн) 23:21

VB_D3D_Денис
Уважаемый Визуально основной прямой трёхмерный денис

вы в самом деле считаете что Excel использует MSFlexGrid и подставляет тексбоксы во время ввода?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 12.12.2006 (Вт) 0:56

использует грид но не msflexgrid.
а насчет текстбоксов - не знаю. но наиболее вероятно (какой-нибудь системный и явно не из msvbvm). ибо какой смысл держать кучу редактируемых объектов? или держать один огромный объект ввода текста и заморачиваться с координатами, куда этот текст вводить по F2
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 12.12.2006 (Вт) 1:19

:lol: Дарагой. А ты не думаешь что ячейки грида вообще могут быть не объектыми, а просто рисоваться графическими методами?

Каким боком тут msvbvm - вообще не понимаю.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 12.12.2006 (Вт) 1:25

Наверное это так. Вам виднее. Извините.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 12.12.2006 (Вт) 1:39

Я делал редактор фигурок для тетриса. Так в нем у меня тоже ячейки не были объектами, а рисовались в пикчабоксе. При одном клике в квадрате он прорисовывался прямоугольником одного цвета, а при другом - другим цветом. Так что рисование вполне вероятно. И flexgrid наверное тоже рисованый, только поверх рисунка то что? Объект...
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 12.12.2006 (Вт) 1:53

VB_D3D_Денис
если ты не перестанешь делать 2 сообщения подряд, тебе влепят замечание по полной.

Юзай кнопку "Правка" :!:

Во-вторых, все контроллы рисуются ими же самими, при получении WM_PAINT.

И что значит?
flexgrid наверное тоже рисованый, только поверх рисунка то что? Объект...

:?:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 12.12.2006 (Вт) 2:01

Хакер писал(а):VB_D3D_Денис
если ты не перестанешь делать 2 сообщения подряд, тебе влепят замечание по полной.

Юзай кнопку "Правка" :!:

Спасибо. Увлекся. Забыл.

А насчет объекта поверх рисунка... Кажется это и есть WM_PAINT. Догадываюсь - константа для API, но с ними я еще не дружу. Заценил пока только InitCommonControls + 24 в ресурсах :wink:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 12.12.2006 (Вт) 2:19

:lol:
WM_PAINT это WINDOW MESSAGE т.е. сообщение которое система шлёт окну в случае если кусочек окно освободился (стал вдруг видимым) и его следует перерисовать
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 13.12.2006 (Ср) 15:53

Хакер писал(а):VB_D3D_Денис
Уважаемый Визуально основной прямой трёхмерный денис

вы в самом деле считаете что Excel использует MSFlexGrid и подставляет тексбоксы во время ввода?


Итак, подведем итог мини-холивара:
Excel использует объект XLDESK который состоит из двух подклассов:
1. EXCEL7 (знаменитый экселевский грид)
2. EXCEL6 (аналог текстбокса. опыты показали, что при вводе текста в ячейку он получает Visible=True и координаты текущей ячейки)

Для определения всего этого использовался Ace Helper для TC
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.12.2006 (Ср) 16:13

Это окна. Если какое-то окно имеет класс EXCEL6 и выглядит как TextBox, не надо его считать за ТекстБокс. За текстбокс я буду считать только VBный тхандеровский или стандартный едит. Всякие паскалевские TEditBox я не считаю текстбоксами (хотя они настолько же не текстбоксы на сколько и ВБшные).

А в остальном верно. Только вот Spy++ а было достаточно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение Лёха_Virus » 17.08.2007 (Пт) 4:49

офигеть. есть, например, такой контрол как iGrid который прекрасно позволяет редактировать в ячейках. Че вы там выдумываете

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.08.2007 (Пт) 9:47

Что за некрофилия? :x
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


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

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

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

    TopList