Глючный текстбокс

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

Глючный текстбокс

Сообщение Cryonyx » 26.02.2005 (Сб) 21:41

Чегой-то я запал на эту тему: всё техтбохи да техтбохи :D
Но на этот раз вопрос следующий:
В текстбоксе (самом что ни на есть стандартном, размещёном даже на VB-форме :) ) есть свойство Locked...
Так вот, оно по идее блокирует изменение текста в контроле, но при этом сам контрол активен, т.е. текст можно просмотреть, скопировать и т.д. Так вот, ближе к телу:
Берём какой-нибудь текст откуда угодно, копим его в буфер обмена, нажимаем на нашем текстбоксе правую кнопку мыши и выбираем пункт меню "Вставить"... E'voila! Текст легко и просто вставляется, хотя вроде бы изменение залочено.
Может кто-нить подскажет, як это исправить :?:
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

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

Сообщение Amed » 26.02.2005 (Сб) 21:45

При райт-клике на текстбоксе, если он залочен, подсовывать вместо стендартного меню своё с выкинутым пунктом "Вставить"...

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 26.02.2005 (Сб) 21:51

Это через GetMenu...SetMenu?
Вопрос в тему: а как получить хэндл на меню, сделанное в VB? Т.е., Допустим, у меня есть меню, топ-уровень которого называется Menu1, a от него идут чайлды примерно вот так:

Menu1
:...Menu2
:...Menu3
:...etc.
:...MenuN

Вот мне нужен хэндл этого самого топа, Menu1.

Да и ещё: а можно как-нить узнать hWnd менюшки, что выскакивает при правом клике на текстбоксе и дизейблить пункт "Вставить"?

Кста. а как насчёт комбинации Shift-Ins? Она-то всё равно работает :(
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

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

Сообщение Amed » 26.02.2005 (Сб) 22:14

Комбинация Shift+Ins может блокироваться:

Код: Выделить всё
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
'Если надавили Ins, то абортим...
If KeyCode = 45 Then KeyCode = 0
End Sub

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

Сообщение Amed » 26.02.2005 (Сб) 22:22


HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 27.02.2005 (Вс) 3:14

а может просто text1.disable поюзать, если такая проблема
Изображение

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 27.02.2005 (Вс) 6:49

HotKitten писал(а):а может просто text1.disable поюзать, если такая проблема

У textbox отсутствует свойство disable.
الفيجوال بيسك الرابح

Ship
Новичок
Новичок
 
Сообщения: 35
Зарегистрирован: 15.01.2005 (Сб) 0:53

Сообщение Ship » 27.02.2005 (Вс) 8:28

А может быть просто не отдовать ему фокус.
Например:
Код: Выделить всё
Private Sub Text1_GotFocus()

Command1.SetFocus

End Sub

GM писал(а):У textbox отсутствует свойство disable.

Зато присутствует свойство Enabled

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 27.02.2005 (Вс) 15:22

GM писал(а):
HotKitten писал(а):а может просто text1.disable поюзать, если такая проблема

У textbox отсутствует свойство disable.

а что у чего нибудь подобного в VB есть disable????
естественно enabled = false
Изображение

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 27.02.2005 (Вс) 19:42

HotKitten писал(а):
GM писал(а):
HotKitten писал(а):а может просто text1.disable поюзать, если такая проблема

У textbox отсутствует свойство disable.

а что у чего нибудь подобного в VB есть disable????
естественно enabled = false


А мне как раз и не надо, чтобы enabled был false :?
Мне нужно, чтобы текст свободно прокручивался, просматривался, но в текстбох ничего окромя этого текста запихнуть нельзя было..
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 27.02.2005 (Вс) 19:43

Amed писал(а):Про меню см. тут
http://bbs.vbstreets.ru/viewtopic.php?t=12799


Эймд, может я тупой :oops: , но я не совсем понял. что они тама предлагают...
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

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

Сообщение Amed » 27.02.2005 (Вс) 19:46

Сабклассинг меню, разве нет?
Чуть позже объясню, если сам не разберёшься

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 27.02.2005 (Вс) 19:51

Э-э, будь другом, объясни как сможешь. А то я вообще не въезжаю...
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 28.02.2005 (Пн) 1:37

Да в чём проблема?

Код: Выделить всё
Dim TxtState As String

Private Sub Text1_Change()
    Text1.Text = TxtState
End Sub
Private Sub Text1_GotFocus()
    TxtState = Text1.Text
End Sub

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 28.02.2005 (Пн) 8:03

Как говорится, всё гениальное просто :D
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 28.02.2005 (Пн) 8:05

Но суть в том, что я не ищу простых путей, мне интересно разобраться с самим механизмом подмены пунктов меню :D ну и прочего...
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Глючный текстбокс

Сообщение Andrey Fedorov » 28.02.2005 (Пн) 10:14

Cryonyx писал(а):Текст легко и просто вставляется, хотя вроде бы изменение залочено.
Может кто-нить подскажет, як это исправить :?:


Хм... И как ты это смог проделать? Ничего не вставляется - даже специально попробовал в рабочей программе... Может он у тебя все-же не Locked?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.02.2005 (Пн) 10:17

Ship писал(а):Зато присутствует свойство Enabled


Locked в некоторых случаях удобней. И он нормально работает!

Кривизна где-то в коде автора вопроса - с ним и надо разбираться.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Re: Глючный текстбокс

Сообщение Юстас » 28.02.2005 (Пн) 10:44

Andrey Fedorov писал(а):Хм... И как ты это смог проделать? Ничего не вставляется - даже специально попробовал в рабочей программе... Может он у тебя все-же не Locked?


Видимо, плохо пробовал: Нажимаешь правую кнопку мыши на текстбоксе, и выбираешь пункт меню Вставить. Если в буфере обмена есть текст, то он вставится в текстбокс. Независимо от того, locked или нет. Так же и от Shift+Insert вставляется.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.02.2005 (Пн) 10:51

Да нет - не плохо пробовал :;

Я все-же не первый год работаю и это дело давно использую. Показать дистанционно, конечно, не могу, но обманывать мне смысла абсолютно нет.

Locked работает корректно.

В конце-концов попробуй вставить в приложенном проекте...
Вложения
Locked.rar
(1.04 Кб) Скачиваний: 28
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 28.02.2005 (Пн) 15:36

Andrey Fedorov, ГЫ! У меня вставляет! Может от виндов зависит или от сервис пака VB?
Программисты не глючат - глючат компиляторы...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.02.2005 (Пн) 16:45

CodeName33 писал(а):Andrey Fedorov, ГЫ! У меня вставляет! Может от виндов зависит или от сервис пака VB?


У меня SP6. С SP5 тоже все нормально было. Ну а с более ранними - не пробовал. Поставь SP6.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 28.02.2005 (Пн) 16:54

Со свистом вставляет :)

Если у большинства вставляет, то видимо надо всё-таки отказаться от сомнительного свойства locked, ведь не предложишь всем подряд установить сервиспаки (ещё и неизвестно, то ли 5, то ли 6).

Всё-таки 3-мя строчками этот эффект устраняется надёжней, чем многокилобайтными сервиспаками.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.02.2005 (Пн) 17:39

Юстас писал(а):Если у большинства вставляет, то видимо надо всё-таки отказаться от сомнительного свойства locked, ведь не предложишь всем подряд установить сервиспаки (ещё и неизвестно, то ли 5, то ли 6).


Честно говоря я не помню чтобы под какой-то операционкой Locked глючило у VB5/VB6 с любым сервис паком... Могу только предположить что это большинство пользует откорректированную умельцами/вирусами версию VB/Windows...

Юстас писал(а):Всё-таки 3-мя строчками этот эффект устраняется надёжней, чем многокилобайтными сервиспаками.


Да ну? И зачем только эти сервис паки делают...

P.S. Честно говоря не думаю что это сервис пак - действительно скорей всего что-то с системой...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 28.02.2005 (Пн) 19:18

Andrey Fedorov писал(а):
Юстас писал(а):Если у большинства вставляет, то видимо надо всё-таки отказаться от сомнительного свойства locked, ведь не предложишь всем подряд установить сервиспаки (ещё и неизвестно, то ли 5, то ли 6).


Честно говоря я не помню чтобы под какой-то операционкой Locked глючило у VB5/VB6 с любым сервис паком... Могу только предположить что это большинство пользует откорректированную умельцами/вирусами версию VB/Windows...

Юстас писал(а):Всё-таки 3-мя строчками этот эффект устраняется надёжней, чем многокилобайтными сервиспаками.


Да ну? И зачем только эти сервис паки делают...

P.S. Честно говоря не думаю что это сервис пак - действительно скорей всего что-то с системой...


Ты про Форточки ©:?:
Так я ведь потому и написал, что этот глюк проявляется под Win98, ME, 2k, XP...
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

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

Сообщение Ennor » 28.02.2005 (Пн) 20:08

Вот это да! Всю жизнь глючило, а сейчас проверил на XP SP2 - нет, исправили: пункт Paste по-прежнему активен, а вот выбор его ни к чему не приводит. VB SP6, запускал из-под среды.

Интересно, может, это каким-нить секюрити апдейтом фиксится? В смысле, патчем на для басика, а для самой винды? Скорее всего, учитывая, что стандартный виндовый Edit глючил в свое время точно так же... :)

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 28.02.2005 (Пн) 20:16

А вот мне интересно: разве в си и бэйсике используются не одни и те же стандартные Windows Common Controls? Так почему же тогда в сях этого глюка нет :?: Или я мыслю не туда :?:
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 28.02.2005 (Пн) 20:29

Andrey Fedorov писал(а):Могу только предположить что это большинство пользует откорректированную умельцами/вирусами версию VB/Windows...


Это всего лишь твоё предположение.

Andrey Fedorov писал(а):Да ну? И зачем только эти сервис паки делают...


Вот тебе и ну. А вообще, если у тебя не вставляет, а у остальных вставляет, то наверное у тебя что-то не так :)
Возможно, ты слишком широко трактуешь понятие "Locked".

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 28.02.2005 (Пн) 20:32

Cryonyx

В Си используется обычный edit, в VB - некий "ThunderTextBox"

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 28.02.2005 (Пн) 20:51

Подумаешь, как класс назвать. Хоть "MyCoolWindowClassEditFigna" назови, функциональность не изменится 8)
Моду создают модоки, а распространяют модозвоны.

След.

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

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

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

    TopList  
cron