Выполнение команды из TextBox

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

Выполнение команды из TextBox

Сообщение Jenizix » 30.04.2004 (Пт) 9:36

Нужно чтобы при нажатии на кнопку происходила команда написанная в TextBox, например в текстбоксе написано MsgBox "Hello!!!" надо чтоб эта команда выполнялась при нажатии на кнопку. :( :( :) :)

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

Сообщение Ennor » 30.04.2004 (Пт) 9:57

Уж сколько раз твердили миру, что VB, написаный на VB, будет работать медленнее, чем VB, написанный на С++ :)
Попробуй поискать на форуме по словам MSVBVM60 и Declare.

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

Сообщение alibek » 30.04.2004 (Пт) 11:16

Можно даже более конкретно, EbExecuteLine.
Только такая прога не будет работать после компиляции.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение RayShade » 30.04.2004 (Пт) 11:30

А как насчет MS Script Control? :) Делаем так:

Код: Выделить всё
dim scc as new scriptcontrol
dim mdl as module
with scc
.language = "vbscript"
set mdl = .modules.add "dummy"
end with
with mdl
.addcode "sub mysub():" & text1.text &": end sub"
.run "mysub"
end with

all
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 01.06.2004 (Вт) 18:48

Сообщение all » 02.06.2004 (Ср) 20:58

if text1.text="msgBox("hello world")" then msgBox"hello world" :lol: :lol:

ChelDm
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 112
Зарегистрирован: 14.02.2004 (Сб) 14:56

Сообщение ChelDm » 03.06.2004 (Чт) 9:37

2all точно подметил - молодец :)

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 03.06.2004 (Чт) 10:16

all писал(а):if text1.text="msgBox("hello world")" then msgBox"hello world" :lol: :lol:


ххххааааааа!!!!!
А если вместо Hello world будет написанно Game Over, он все равно напишет Hello world :D :? :!: :?:

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 03.06.2004 (Чт) 11:15

Он вообще нчиего не напишет =)

Tamahawk
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 03.02.2004 (Вт) 22:11

Сообщение Tamahawk » 03.06.2004 (Чт) 17:40

If left(Text1.text, 6)=Msgbox Then
Msgbox right(Ttext1.text, len(text1.text)-6)

лучше юзай EbExecuteLine эта штука работает и после компиляции (ументь надо)

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 03.06.2004 (Чт) 20:36

Сколько тут предложений различных.
А между тем, я бы человеку посоветовал другое.
Скорее всего ему нужен ЛА(тобиш Лексический Анализатор)
Это самый лучший выход, если он хочет, скажем, сделать скриптовый язык для своей игры.
Поэтому советую всем, кому это нужно, искать в интернете
"парсер", "parser" и "лексический анализатор".
Хороший пример есть на gameDev. Только он на с++.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 03.06.2004 (Чт) 23:20

Сказали же уже - VB на VB медленнее, чем VB на C++! (Возгласы из-за кадра - Да ну!? Ух ты! Не знал! :wink:)
Юзайте EbExecuteLine!
Код: Выделить всё
Option Compare Text

Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Foo1 As Long, ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

Private Sub cmdRun_Click()
Dim Code As String
Code = "MsgBox ""Hello, World!!!"""
EbExecuteLine StrPtr(Code), 0&, 0&, False
End Sub
Нет меня больше

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 03.06.2004 (Чт) 23:27

all писал(а):if text1.text="msgBox("hello world")" then msgBox"hello world" :lol: :lol:

Не будет пахать. Должно быть If Text1.Text = "MsgBox(""hello world"")" Then MsgBox "hello world". 8)
Нет меня больше

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 09.06.2004 (Ср) 13:04

а как сделать, чтоб EbExecuteLine после компиляции работало???
плиз!!!

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 09.06.2004 (Ср) 21:36

Таскать с собой vba6.dll, я так думаю... :roll:
Нет меня больше

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 10.06.2004 (Чт) 14:13

НЕТ!!!!
Если я положу рядом vba6.dll, то он выдает ошибку, что память по адресу <адрес> не может быть read

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 10.06.2004 (Чт) 19:15

Кинь в system32...
Да, и зарегь её! :roll:
Нет меня больше

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

Сообщение alibek » 11.06.2004 (Пт) 9:27

Дык это ж Native, ее регистрировать не надо.
Глюки компилированной проги вылазят от того, что EbExecuteLine не знает, в каком контексте эту команду выполнять.
Кто-то тут пускал слухи, что знает, как обмануть vba6.dll, но я вживую такого не видел.
Lasciate ogni speranza, voi ch'entrate.


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

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

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

    TopList