Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помагите новичкам

1.8K
15 марта 2004 года
Syama
97 / / 01.03.2004
Хочу попросить вас помоч мне и наверника многим начинаюшим.Как вы предложыли бы изучить Visual Basic?Какими методами,с чего начать?Я например читаю книги о Visual Basic-ке но чуствою что ,эффект не очень хорошый.
Заранее благодарень за ответ:)
Страницы:
266
31 марта 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by Syama


Kak vseqda ne moqu s pervoqo raza,reshit zadachu.
mojet kak to pomojete?Ya peremennix ne davno chital,i pomoemu prosil vas o nix zadachu dat.
Problema v tom chto ne moqu generirovat code v bashke (men kajetsya chto et iz toqo chto ya novichok) kak vi schitayete tak i dayte podskazku


Код, особенно на первых порах, лучше не в голове укладывать, а сначала на бумажке представлять в виде блок-схем, диаграмм, ну и т.п. - в чём удобнее, а потом просто описывать "нарисованное" командами. Это на первых порах наиболее эффективный и простой способ.
А по поводу оптимизации... Самый простой способ. Нарисуй на бумажке алгоритм, который хочешь оптимизировать. Посмотри, какие одинаковые действия в нём выполняются и какие из них можно объединить. Какие переменные у тебя используются, и какие из них могут использоваться дважды, а какие можно вообще выкинуть. Где линейный алгоритм можно заменить на циклы. Потом нарисуй новый алгоритм и запрограммируй его.

1.8K
01 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by mhaturov

Знать так,
UBound и LBound - это границы массивов элементов (такие эе свойства есть и у масссивов данных).
UBound - верхняя граница,
LBound - нижняя граница,
Count - количестиво
Тоесть, если ц тебя 4 элемента CbUnload, с индексами от 0 до 3, то
CbUnload.LBound = 0
CbUnload.UBound = 3
CbUnload.Count = 4
Тоесть CbUnload(CbUnload.LBound) это в данном случае всё равно, что CbUnload(0), просто ссылка не по фиксированному индексу, а по вычисляемому гораздо универсальнее.


Aaaa,ponyatno

1.8K
01 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by xelos

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


A fuksiya peremennix ne zakluchayetsya v etom?.Peremenniye ne sushestvuyut chto bi chtoto soxranyat?I chto vi imeyete v vvidu koqda qovarite spesialnim sposobom?Vi naverxu qovarili chto nado ispolzovat ne qlobalniy (ostayotsya Private i Static)

319
01 апреля 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Syama

A fuksiya peremennix ne zakluchayetsya v etom?.Peremenniye ne sushestvuyut chto bi chtoto soxranyat?I chto vi imeyete v vvidu koqda qovarite spesialnim sposobom?Vi naverxu qovarili chto nado ispolzovat ne qlobalniy (ostayotsya Private i Static)


Все так мыслишь...
я подразумеваю под обычным объявлением
Dim i as Integer
Тебе осталось выбрать как объявить переменную - Private или Static.

1.8K
03 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by xelos

насчет переменных...
Создай 1 кнопку и 1 объект для вывода текста (можно static, например). в обработчике нажатия кнопки используй одну локальную переменную. при нажатии на кнопку в объекте выводи количество нажатий на кнопку. ОБЯЗАТЕЛЬНОЕ УСЛОВИЕ: глобальные переменные использовать нельзя.



Znayete obyevit peremennix ya uje znayu,no problema v tom chto ne moqu pisat kod kotoriy budet fiksirovat kajdiy raz kliki(click).dlya odnoqo raza moqu, no dalshe ne moqu,i eto mne kajetsya ot toqo chto ya ne poka ne chital etot chast kniqi,netli sdes standartnix veshey?esli nado chto nado pisat ot sebya ,toqda budu prodoljat dumat,mojet poluchitsya,v prinsipe u menya shas ekzameni ne moqu udelyat na eti veshi mnoqo vremeni,no starayus zanimatsya etim toje;)

266
03 апреля 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by Syama


Znayete obyevit peremennix ya uje znayu,no problema v tom chto ne moqu pisat kod kotoriy budet fiksirovat kajdiy raz kliki(click).dlya odnoqo raza moqu, no dalshe ne moqu,i eto mne kajetsya ot toqo chto ya ne poka ne chital etot chast kniqi,netli sdes standartnix veshey?esli nado chto nado pisat ot sebya ,toqda budu prodoljat dumat,mojet poluchitsya,v prinsipe u menya shas ekzameni ne moqu udelyat na eti veshi mnoqo vremeni,no starayus zanimatsya etim toje;)


как понять, не можешь фиксировать клик?
В VB6.0 для создания прцедуры клика по кнопке достаточно на форме, когда ты выкладываешь кнопку на неё, 2 раза кликнуть по кнопке и у тебя откроется код "пустой" процедуры клика, который будет вызываться событием клика при работающей программе. Можно так же следующим образом его отискать:
В коде формы, на которой лежит кнопка в левом верхнем углу окна с колом есть комбобоксик. Кликаешь по нему - у тебя открывается список объектов формы. Выбираешь в нём твою кнопку. Потом открываешь правый комбобоксик - в нём будет перечень событиё твоего объекта. Выбираешь нитересующее событие - попадаешь в шаблон кода для него...
А вот если тебе нужно подсчитывать клики по кнопке... Тут уж я подсказывать пока не буду - только направление поиска задам - просмотри внимательно особенности переменных, объявленных разными способами и на разных уровнях...

1.8K
05 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:


Nu kakto napisal kod (kak mhaturov predlojil,napisal kod na bumajku:D )No poka ne testiroval ,potomu chto shas ya ne doma ,i Visual Basic-a net v etom kompe,esli chto skajite pojalyusta,i esli pravilno xochu videt optimalniy kod xelos-a.Pasib tebe:)
[COLOR=blue]Function kuper (num)[/COLOR]
[COLOR=blue]Static intx[/COLOR]
intx=intx+num
kuper=intx
End Function [/COLOR]

1.8K
05 апреля 2004 года
Syama
97 / / 01.03.2004
[COLOR=blue]Function kuper (num)[/COLOR]
[COLOR=blue]Static intx[/COLOR]
[COLOR=blue]intx=intx+num[/COLOR]
[COLOR=blue]kuper=intx[/COLOR]
[COLOR=blue]End Function[/COLOR]
319
05 апреля 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Syama
[COLOR=blue]Function kuper (num)
Static intx
intx=intx+num
kuper=intx
End Function[/COLOR]


ну по идее, я не понял зачем ты сделал отдельную функцию, и что это за параметр num.
мой вариант:

 
Код:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Static Dim a As Integer
        a = a + 1
        Label1.Text = a.ToString
    End Sub


это все скомпилено в .НЕТ, так что не обращайте внимания на небольшие различия в синтаксисе - логика такова.
1.8K
06 апреля 2004 года
Syama
97 / / 01.03.2004
Ups,zabil eto:)
[COLOR=blue]text1=intx[/COLOR]
Цитата:
(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


ochen proshu vas obyesnit mne eto,a to ya poka ne doshol v kniqe do tokix veshey.
Perviyje den napisal etot kod,no ne moq napisat eqo tak chtob vse kliki soxranilis na peremennom.

[COLOR=blue]Private Sub command1_click()[/COLOR]
[COLOR=blue]Static i As Integer[/COLOR]
[COLOR=blue]Static n As Integer[/COLOR] [COLOR=blue]i = 2[/COLOR]
[COLOR=blue]n = i - 1[/COLOR]
[COLOR=blue]Text1 = n[/COLOR]
[COLOR=blue]End Sub[/COLOR]

319
06 апреля 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Syama
Ups,zabil eto:)
[COLOR=blue]text1=intx[/COLOR]

ochen proshu vas obyesnit mne eto,a to ya poka ne doshol v kniqe do tokix veshey.
Perviyje den napisal etot kod,no ne moq napisat eqo tak chtob vse kliki soxranilis na peremennom.

[COLOR=blue]Private Sub command1_click()[/COLOR]
[COLOR=blue]Static i As Integer[/COLOR]
[COLOR=blue]Static n As Integer[/COLOR] [COLOR=blue]i = 2[/COLOR]
[COLOR=blue]n = i - 1[/COLOR]
[COLOR=blue]Text1 = n[/COLOR]
[COLOR=blue]End Sub[/COLOR]



(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

это такие обработчики в .НЕТ, там активно используются нэймспейсы - это что-то типа объединения функций по группам :) в VB 6.0 этого нет, так что не забивай голову.
по идее sender - это куому послано сообщение, т.к. когда ты кликаешь на форме - системе нужно определить это кнопка, сам диалог или еще что, а EventArgs - дополнительные аргументы сообщения (надеюсь, ты знаешь, что такое сообщения и как они используются в виндоуз). для клика мышкой, обычно это координаты. Насчет твоего кода - попробуй просто:

 
Код:
Private Sub command1_click()
Static i As Integer
i = i + 1
Label1.Caption = Str(i)
End Sub[/COLOR]


Str(i) тебе позволяет перевести числовую переменную в строковую.
1.9K
06 апреля 2004 года
MishaSoft
48 / / 16.09.2003
Цитата:
Originally posted by xelos


(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

это такие обработчики в .НЕТ




Извеняюсь за вторжение, Xelos, ты .НЕТ хорошо знаешь? Есть соображения по поводу ЭТОГО ?

266
06 апреля 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by xelos


(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

это такие обработчики в .НЕТ, там активно используются нэймспейсы - это что-то типа объединения функций по группам :) в VB 6.0 этого нет, так что не забивай голову.
по идее sender - это куому послано сообщение, т.к. когда ты кликаешь на форме - системе нужно определить это кнопка, сам диалог или еще что, а EventArgs - дополнительные аргументы сообщения (надеюсь, ты знаешь, что такое сообщения и как они используются в виндоуз). для клика мышкой, обычно это координаты. Насчет твоего кода - попробуй просто:
 
Код:
Private Sub command1_click()
Static i As Integer
i = i + 1
Label1.Caption = Str(i)
End Sub[/COLOR]


Str(i) тебе позволяет перевести числовую переменную в строковую.


Лучше использовать Str$(i), так как Str(0) = VBNullString, тоесть, пустое значение, а Str$(0) = "0"

319
06 апреля 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by MishaSoft



Извеняюсь за вторжение, Xelos, ты .НЕТ хорошо знаешь? Есть соображения по поводу ЭТОГО ?


Вечром дома посмотрю, ок?

1.8K
07 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by xelos


(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

это такие обработчики в .НЕТ, там активно используются нэймспейсы - это что-то типа объединения функций по группам :) в VB 6.0 этого нет, так что не забивай голову.
по идее sender - это куому послано сообщение, т.к. когда ты кликаешь на форме - системе нужно определить это кнопка, сам диалог или еще что, а EventArgs - дополнительные аргументы сообщения (надеюсь, ты знаешь, что такое сообщения и как они используются в виндоуз). для клика мышкой, обычно это координаты. Насчет твоего кода - попробуй просто:
 
Код:
Private Sub command1_click()
Static i As Integer
i = i + 1
Label1.Caption = Str(i)
End Sub[/COLOR]


Str(i) тебе позволяет перевести числовую переменную в строковую.


daaaa,i vpravdu rabotayet.A chem eto svyazano?Pochemu nelzya napisat eto kak Chislavoye?

1.8K
07 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by mhaturov

Лучше использовать Str$(i), так как Str(0) = VBNullString, тоесть, пустое значение, а Str$(0) = "0"


Mojete obyesnit,pochemu eto nado pisat mesto Str(i)?

266
07 апреля 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by Syama

Mojete obyesnit,pochemu eto nado pisat mesto Str(i)?


Так я же объяснил это...
Во-первых, Str$ считается почему-то более эффективной и быстрой, нежели Str
Во-вторых, если ты пишешь A=Str(1), то A у тебя получтися A="1", если ты пишешь A = Str$(1), то А у тебя опять-таки будет равна А="1".
НО Если ты пишешь А = Str(0), то А у тебя получтися равным ПУСТОЙ СТРОКЕ(!!!) ТОЕСТЬ, А="", а вот если ты пишешь А = Str$(0), то А получится равным А="0". Разницу видишь? Str(0) = "", тоесть VBNullString, а Str$(0) = "0", тоесть 0 в виде текста.

1.8K
08 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by mhaturov

Так я же объяснил это...
Во-первых, Str$ считается почему-то более эффективной и быстрой, нежели Str
Во-вторых, если ты пишешь A=Str(1), то A у тебя получтися A="1", если ты пишешь A = Str$(1), то А у тебя опять-таки будет равна А="1".
НО Если ты пишешь А = Str(0), то А у тебя получтися равным ПУСТОЙ СТРОКЕ(!!!) ТОЕСТЬ, А="", а вот если ты пишешь А = Str$(0), то А получится равным А="0". Разницу видишь? Str(0) = "", тоесть VBNullString, а Str$(0) = "0", тоесть 0 в виде текста.


Axda,shas ponel:) Takim ya uje stalkivalsya,no ne dumal chto i VB toje takiye veshi est.

1.8K
08 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by xelos

вторая задача - создай функцию, в которой вычисляешь корни уравнения второй степени (их 2, насколько мы помним из курса школьной математики, если их нет, то необходимо, чтобы функция это определяла). на форме создай объекты для ввода 3-х коэффициентов для уравнения и один объект для вывода результата. при нажатии кнопки ты вызываешь функцию для рассчета корней, что ты сделал в самом начале и выводишь результат в объект для этого предназначенный. Нужно обойтись только локальными переменными.


A vot i vtoroye zadaniye.No doljen predupredit chto nad vvodom urovneniya ya ne ochento rabotal.Dumal chto et ne vajno ,no esli nado zdelayu.i vot chto esho et code dlaya takix urovneniy ,qde perviy kofsent roven 1.
-----------------------------------------------
[COLOR=blue]Private Sub command1_click()
Static x1 As Integer
Static x2 As Integer
Static p As Integer
Static q As Integer
p = Text2.Text
q = Text3.Text
x1 = -p / 2 + Sqr(((p / 2) ^ 2) - q)
x2 = -p / 2 - Sqr(((p / 2) ^ 2) - q)
Text4 = x1
Text5 = x2
End Sub[/COLOR]







1.8K
08 апреля 2004 года
Syama
97 / / 01.03.2004
Jdu novix zadach, uvajayemiy mhaturov i xelos
319
08 апреля 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Syama
Jdu novix zadach, uvajayemiy mhaturov i xelos


Твое решение правильное, но цель задачи немного другая.

Смотри внимательнее, ты не соблюдаешь условие. В процедуре нажатия кнопки ты должен вызвать другую процедуру, которая только решает уравнение. Вывод на экран должен быть осуществлен в процедуре нажатия кнопки. Т.е. если структуру накидать, то должно быть что-то типа:

Код:
Sub Button_Click
...
Reshsenie(.....)
...
Text1.Text=...
Text2.Text=...
End Sub

Sub Reshenie(....)
....
End Sub


P.S. Замечание по предложенному тобой решению - оно работает, только нет смысла объявлять переменные как статические.
1.8K
09 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by xelos

Твое решение правильное, но цель задачи немного другая.

Смотри внимательнее, ты не соблюдаешь условие. В процедуре нажатия кнопки ты должен вызвать другую процедуру, которая только решает уравнение. Вывод на экран должен быть осуществлен в процедуре нажатия кнопки. Т.е. если структуру накидать, то должно быть что-то типа:
Код:
Sub Button_Click
...
Reshsenie(.....)
...
Text1.Text=...
Text2.Text=...
End Sub

Sub Reshenie(....)
....
End Sub



Da ya kajetsya ne vnimatelno chtal zadachku,izvinite.No starayus ispravitsya :)

Цитата:
P.S. Замечание по предложенному тобой решению - оно работает, только нет смысла объявлять переменные как статические.


Seqodnya xotel v druqom topike ob etom vas sprosit, mesto etoqo ya polzovalsya Dim -mom,et toje rabotayet,xotel sprosit esli net raznisi zachem polzovatsya im?No v vashem zadache qovarite ya doljet obxaditsya tolko Localnimi peremennimi.Vi chto imeyete vvedu (mojet Private)

319
09 апреля 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Syama

Da ya kajetsya ne vnimatelno chtal zadachku,izvinite.No starayus ispravitsya :)

Seqodnya xotel v druqom topike ob etom vas sprosit, mesto etoqo ya polzovalsya Dim -mom,et toje rabotayet,xotel sprosit esli net raznisi zachem polzovatsya im?No v vashem zadache qovarite ya doljet obxaditsya tolko Localnimi peremennimi.Vi chto imeyete vvedu (mojet Private)



при использовании локальных переменнызх подазумевается их объявление внутри функций и процедур - а как ты их объявляешь значения не имеет. Посмотри в книжках темы - время жизни переменной, область видимости переменных (variable's scope).

1.8K
12 апреля 2004 года
Syama
97 / / 01.03.2004
Mojet tak?Et toje rabotayet
[COLOR=blue]Private x1 As Integer
Private x2 As Integer
Private p As Integer
Private q As Integer
Sub Command1_click()
p = Text1.Text
q = Text2.Text
resheniye (intx)
Text3 = x1
Text4 = x2
End Sub


Sub resheniye(intx)
x1 = -p / 2 + Sqr(((p / 2) ^ 2) - q)
x2 = -p / 2 - Sqr(((p / 2) ^ 2) - q)
End Sub[/COLOR]
6.0K
12 апреля 2004 года
Wowan
7 / / 12.04.2004
Цитата:
Originally posted by Syama
Хочу попросить вас помоч мне и наверника многим начинаюшим.Как вы предложыли бы изучить Visual Basic?Какими методами,с чего начать?Я например читаю книги о Visual Basic-ке но чуствою что ,эффект не очень хорошый.
Заранее благодарень за ответ:)



Советую приобрести книгу "Программирование на VBA 2002", автор В.Г.Кузьменко, там очень много как справочной информации, так и примеров по программированию на VBA и VB6, лично мне эта книга очень помогла.

266
12 апреля 2004 года
mhaturov
901 / / 23.10.2003
Знать так. Надеюсь, у тебя корректно поддерживаются русские шрифты, потому как я выкладываю сюда транслитератор, которым советую пользоваться. Как он работает - думаю разберёшься. Набираешь в поле текст, даёшь команду перевести на нужный язык и он у тебя в другом поле переводится. Вобщем, попробуешь.
В архиве - готовый экзешник и исходники.
Так как писал это дело на скорую руку, в экзешнике есть неточности (в частности, в модуле азбуки - там местами поменяны русские и латинские буквы). Но так как времени править нет, исходники сюда кладу и неточности не критичны, то выкладываю как есть.
Думаю, тебе стои попробовать пользоваться этим транслитератором для того, чтобы посты сюда выкладывать, а то очень неудобно расшифровывать каждый раз транслит...;)

P.S. ВНИМАНИЕ! ИЗ ОКНА ТРАНСЛИТЕРИРОВАННОГО ТЕКСТА РУССКИЙ ТЕКСТ СЮДА (на CodeNet) ТЕКСТ НУЖНО КОПИРОВАТЬ ЧЕРЕЗ FAR ИЛИ ДРУГОЕ ПРИЛОЖЕНИЕ, КОТОРОЕ ТЕКСТ В DOS-КОДИРОВАКУ ПЕРЕВОДИТ, ИНАЧЕ ТУТ КРАКОЗЯБРЫ ПОЛЕЗУТ!!!!
319
12 апреля 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Syama
Mojet tak?Et toje rabotayet
[COLOR=blue]Private x1 As Integer
Private x2 As Integer
Private p As Integer
Private q As Integer
Sub Command1_click()
p = Text1.Text
q = Text2.Text
resheniye (intx)
Text3 = x1
Text4 = x2
End Sub


Sub resheniye(intx)
x1 = -p / 2 + Sqr(((p / 2) ^ 2) - q)
x2 = -p / 2 - Sqr(((p / 2) ^ 2) - q)
End Sub[/COLOR]


значит так, Sub resheniye(intx) - вообще непонятно что такое, имхо ты некорректно объявляешь функцию.
Второе: объявление
Private x2 As Integer
Private p As Integer
Private q As Integer
это объявление глобальных переменных, которое запрещено по условию задачи. Все переменные что ты используешь должны объявляться внутри функций или процедур.

1.8K
14 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by mhaturov
Знать так. Надеюсь, у тебя корректно поддерживаются русские шрифты, потому как я выкладываю сюда транслитератор, которым советую пользоваться. Как он работает - думаю разберёшься. Набираешь в поле текст, даёшь команду перевести на нужный язык и он у тебя в другом поле переводится. Вобщем, попробуешь.
В архиве - готовый экзешник и исходники.
Так как писал это дело на скорую руку, в экзешнике есть неточности (в частности, в модуле азбуки - там местами поменяны русские и латинские буквы). Но так как времени править нет, исходники сюда кладу и неточности не критичны, то выкладываю как есть.
Думаю, тебе стои попробовать пользоваться этим транслитератором для того, чтобы посты сюда выкладывать, а то очень неудобно расшифровывать каждый раз транслит...;)

P.S. ВНИМАНИЕ! ИЗ ОКНА ТРАНСЛИТЕРИРОВАННОГО ТЕКСТА РУССКИЙ ТЕКСТ СЮДА (на CodeNet) ТЕКСТ НУЖНО КОПИРОВАТЬ ЧЕРЕЗ FAR ИЛИ ДРУГОЕ ПРИЛОЖЕНИЕ, КОТОРОЕ ТЕКСТ В DOS-КОДИРОВАКУ ПЕРЕВОДИТ, ИНАЧЕ ТУТ КРАКОЗЯБРЫ ПОЛЕЗУТ!!!!



Да,у меня были некоторые проблемы с шрифтами,но это случалось тока с Oper-ой.И так-как я уже привык к нему,решил писать английскими буквами.А с этого момента буду пользоватся с прогой которую вы дали, шас уже испытательний срок:)(Но должен сказать что *.exe работает но *.vbp не работает, translator.dll отсуствоет,если можно подкинте и его,pls) .Пасиба

1.8K
14 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by Wowan


Советую приобрести книгу "Программирование на VBA 2002", автор В.Г.Кузьменко, там очень много как справочной информации, так и примеров по программированию на VBA и VB6, лично мне эта книга очень помогла.


А можно ли его найти в инете?

1.8K
14 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by xelos

значит так, Sub resheniye(intx) - вообще непонятно что такое, имхо ты некорректно объявляешь функцию.
Второе: объявление
Private x2 As Integer
Private p As Integer
Private q As Integer
это объявление глобальных переменных, которое запрещено по условию задачи. Все переменные что ты используешь должны объявляться внутри функций или процедур.


:( Насчeт локалниx переменниx я понел ,исправился уже
шас начинаю читать и о Sub-аx,если что вам скажу:)

266
14 апреля 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by Syama

А можно ли его найти в инете?


Sorry. Transliterator.dll - моя библиотека (ну не совсем моя - её в большей степени товарищь по работе писал). Но, вроде, он не должен требоваться....
Ща проверю....
Правда, не требуется...
Я тут выложу dll, но посмотри код ещё раз - не должна dll требоваться вроде как... Я специально её не включал, чтобы ты код модуля посмотреть мог...
К тому же в dll ошибочка есть - не все латинские буквы транслитерирует. Перекомпилить ща некогда, поэтому кладу как есть, но ты погляди ещё раз проект, ладно... Не должен он требоваться...
Так, нашёл!
1. Открой файл Travsliterator.vbp при помощи Notepad

Код:
Type=OleDll
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINNT\system32\stdole2.tlb#OLE Automation
Class=Language; Language.cls
Startup="(None)"
HelpFile=""
!--------------------------------!
!Title="Transliterator"          !
!ExeName32="Transliterator.dll"  !
!Path32="C:\WINNT\system32"      !
!--------------------------------!
Command32=""
Name="Transliterator"
HelpContextID="0"
Description="Осуществляет транслитерацию и обратную транслитерацию строк"
!-------------------------------------------------------!
!CompatibleMode="2"                                     !
!CompatibleEXE32="C:\WINNT\system32 Transliterator.dll" !
!VersionCompatible32="1"                                !
!-------------------------------------------------------!
MajorVer=1
MinorVer=0
RevisionVer=5
AutoIncrementVer=1
ServerSupportFiles=0
VersionCompanyName="VKO-Travel"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=1
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1
ThreadingModel=1
DebugStartupOption=0

[MS Transaction Server]
AutoRefresh=1

Строки, который я в рамочку выделил, нужно удалить - должно помочь...
Если не поможет, будем дальше искать...
P.S. Не забудь перед выполнением удаления сделать резервную копию VBP-шника!!!
266
14 апреля 2004 года
mhaturov
901 / / 23.10.2003
Так, тут всё, что может понадобиться и даже намного больше.
1.8K
15 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by mhaturov
Так, тут всё, что может понадобиться и даже намного больше.


Да Я Пробовал, Шас Все Рулит ,спасибо ,суперская Прога,мне Оно Очен Помогает
Но Ест Одна Проблема ,почемута Все Слова Начинаются С Болшой Буквы

266
15 апреля 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by Syama

Да Я Пробовал, Шас Все Рулит ,спасибо ,суперская Прога,мне Оно Очен Помогает
Но Ест Одна Проблема ,почемута Все Слова Начинаются С Болшой Буквы


если внимательно посмотришь модуль Language, то в Public Function Russify в самом конце найдёшь строку Russify = Proper(strus). Если её заменить на Russify = strus, то буквы не будут менять регистр.

1.8K
17 апреля 2004 года
Syama
97 / / 01.03.2004
У меня вот какая проблема,обьевляю переменниx вне процедуры все Ок,но когда обевляю иx внутри процедуры почемута всегда ответы получаються как ноль,вчем дело?
319
17 апреля 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Syama
У меня вот какая проблема,обьевляю переменниx вне процедуры все Ок,но когда обевляю иx внутри процедуры почемута всегда ответы получаються как ноль,вчем дело?


приведи код, как ты их используешь.

1.8K
17 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by xelos

приведи код, как ты их используешь.





[COLOR=blue]Private Sub Button_click()
dim x1 As Integer
dim x2 As Integer
dim p As Integer
dim q As Integer
p = Text1.Text
q = Text2.Text
resheniye (intx)
Text3 = x1
Text4 = x2
End Sub

Sub resheniye(intx)
x1 = -p / 2 + Sqr(((p / 2) ^ 2) - q)
x2 = -p / 2 - Sqr(((p / 2) ^ 2) - q)
End Sub
[/COLOR]

319
17 апреля 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Syama

[COLOR=blue]Private Sub Button_click()
dim x1 As Integer
dim x2 As Integer
dim p As Integer
dim q As Integer
p = Text1.Text
q = Text2.Text
resheniye (intx)
Text3 = x1
Text4 = x2
End Sub

Sub resheniye(intx)
x1 = -p / 2 + Sqr(((p / 2) ^ 2) - q)
x2 = -p / 2 - Sqr(((p / 2) ^ 2) - q)
End Sub
[/COLOR]


ага, ошибка с пониманием области видимости переменных (scope).
Теория: Для каждой переменной определена так называемая область видимости. Переменная существует только в своей области видимости, когда ты пытаешься обратится к ней из участка программы, который не входит в область видимости - переменная считается неопределенной и в VB она создается заново но уже в другой области видимости. Надеюсь хоть что-то понятно :):)
Если переменная объявлена внутри функции (локальная), то ты можешь использовать ее для хранения значений только внутри этой функции. Из других функций эта переменная видна не будет.
Практика:
Т.о. в твоем коде, когда во второй функции ты пытаешься присвоить значения переменным х1 и х2 - компилятор уже не видит переменных, что ты объявил в первой функции, поэтому он создает 2 другие переменные с такими же именами. Все операции присвоения во второй функции происходят с этими новыми переменными и никак не влияют на переменные из первой функции. Точно так же и с коэффициентами q и р, они доступны из первой функции, но не доступны из второй (во второй функции компилятор создает другие переменные и при присвоении автоматически присваивает им значения 0).

Чтобы посмотреть как это все работает ты можешь воспользоваться дебаггером. поставь точку останова на вызове функции reshenie(intx) (она должна выделится жирным шрифтом) и точку останова на х2=...
и когда во время выполнения программа прервется просто наведи курсор на переменные q и p - ты увидишь какие-то значения в первой функции. нажми на F5 и программа остановится второй раз в функции решение - наведи курсор на р и q - значения теперь 0.

Подсказка:
чтобы р и q не были равны 0 в функции решение, их надо в нее передать...

1.8K
17 апреля 2004 года
Syama
97 / / 01.03.2004
Цитата:
Originally posted by Syama




[COLOR=blue]Private Sub Button_click()
dim x1 As Integer
dim x2 As Integer
dim p As Integer
dim q As Integer
p = Text1.Text
q = Text2.Text
resheniye (intx)
Text3 = x1
Text4 = x2
End Sub

Sub resheniye(intx)
x1 = -p / 2 + Sqr(((p / 2) ^ 2) - q)
x2 = -p / 2 - Sqr(((p / 2) ^ 2) - q)
End Sub
[/COLOR]



Насчот проседури Суб ,ну как читал в книге () здес должен бит или переменний или же константы ,а почему надо иx писат здесь?,я имею в виду для чего можно использовать ети переменные (в Проседуре), ешо читал что иx можно оставит пустыми (и Ето Тоже Обыесните ,пожалюста)

1.8K
10 мая 2004 года
Syama
97 / / 01.03.2004
Ну наконецто экзамени закончились.начинаю снова VB.(тока надеюсь на вашу поддержку ребята,пасибо за все)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог