Параметры Sub main()

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

Параметры Sub main()

Сообщение semg » 10.08.2005 (Ср) 14:59

Программа без окон начинается с sub main()
Как получить параметры, заданные при запуске?
Например, запускаю "prog.exe myparm" - как получить эту myparm?
Thanks - Sam

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

Сообщение alibek » 10.08.2005 (Ср) 15:01

Command$()
Lasciate ogni speranza, voi ch'entrate.

semg
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 10.08.2005 (Ср) 14:54

Сообщение semg » 10.08.2005 (Ср) 15:22

Конечно two, и еще two, и еще ...
Спасибо, alibek, ты действительно Большой Человек !

miroslaw
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 09.05.2002 (Чт) 18:54

Сообщение miroslaw » 11.08.2005 (Чт) 3:34

alibek

Когда MDI программа начинается с sub main() , то попытка закончить программу, вызвав процедуру Unload, не помогает. Программа остается в памяти.
Даже если в процедуру MDIForm_Unload() поместить оператор End,
то это ситуацию не меняет.

Как же правильно закончить такую программу?

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 11.08.2005 (Чт) 6:51

Хм, странно, а у меня выгружается...
Может у тебя в sub main() еще что-то происходит после закрытия главной формы?

чтобы не париться воспользуйся старым добрым пошаговым выполнением (Debug/Step into или "F8"). там и найдешь, где у тебя баг
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.

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

Сообщение alibek » 11.08.2005 (Чт) 7:49

В MDIForm_Unload помести такой код:
Код: Выделить всё
Private Sub MDIForm_Unload()
Dim frm As Form
For Each frm In Forms
  If Not (frm Is Me) Then Unload frm
Next frm
End Sub
Lasciate ogni speranza, voi ch'entrate.

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 11.08.2005 (Чт) 8:12

alibek писал(а):В MDIForm_Unload помести такой код:
Код: Выделить всё
Private Sub MDIForm_Unload()
Dim frm As Form
For Each frm In Forms
  If Not (frm Is Me) Then Unload frm
Next frm
End Sub


Сам Visual Studio предлагает такой вариант:

Код: Выделить всё
Private Sub Form_Unload(Cancel As Integer)
    Dim i As Integer

    '------------------- close all sub forms
    For i = Forms.Count - 1 To 1 Step -1
        Unload Forms(i)
    Next
    '------------------- save settings in reestr
    If Me.WindowState <> vbMinimized Then
        SaveSetting App.Title, "Settings", "FormLeft", Me.Left
        SaveSetting App.Title, "Settings", "FormTop", Me.Top
        SaveSetting App.Title, "Settings", "FormWidth", Me.Width
        SaveSetting App.Title, "Settings", "FormHeight", Me.Height
    End If
   
End Sub


Это сгенерировано мастером создания форм. Примечания мои.
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.

ism
Постоялец
Постоялец
 
Сообщения: 337
Зарегистрирован: 12.12.2001 (Ср) 12:59
Откуда: Russia, Saint-Petersburg

Сообщение ism » 11.08.2005 (Чт) 10:33

hohol_kz,
Код: Выделить всё
    For i = Forms.Count - 1 To 1 Step -1
        Unload Forms(i)
    Next

Код конечно интересен, но он выгружает все формы кроме одной, и не факт что она выгрузится сама.
Для примера создай проект с 2 формами, в Form_Load() первой напиши form2.show, а в Form_Unload второй напиши эту выгрузку. Первая форма не выгрузится при закрытии второй.
Код alibek'а будет работать отовсюду, и даже поверяит не выгружает ли он себя повторно.

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 15.08.2005 (Пн) 11:39

Естественно, этот код же выгружает усе суб-формы, которые могут быть забыты, отчего у чела возможно не завершается прога.
А уж кады все лишнее выгружено и завершено, можно и последнюю форму закрыть.
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.


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

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

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

    TopList