Проблема с диалогом печати

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

Проблема с диалогом печати

Сообщение zHackLeX » 24.12.2003 (Ср) 22:42

Народ, у меня CommonDialog создаёт ошибку при отмене, как я того и хочу, но после этого он останавливает программу, даже если есть On Error! Как быть, что делать?
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 24.12.2003 (Ср) 23:03

Код: Выделить всё
On Error GoTo err_


Exit Sub (Function)
err_:

MsgBox Err.Number
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 25.12.2003 (Чт) 9:37

MsgBox Err.Number

Это для крутых пацанов, которые все ошибки по номерам помнят :lol:

А вообще, умные люди, которые пишут серьезные программы, обычно не только msgbox с описанием ошибки показывают, но еще и в файл записывают, в каком месте случилась ошибка (хотя бы имя процедуры или функции). И важные действия логируют...

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 25.12.2003 (Чт) 13:25

Дык, а тож! ;)

А вообще это был лишь пример, может человек чего не понимает :) или не так делает. А по-хорошему для обработки ошибок вводится отдельный класс, который уже и занимается всем-всем-всем ;).
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

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

Сообщение RayShade » 25.12.2003 (Чт) 13:33

Умные люди не пользуются таким бредом как .cancelerror = true, они просто смотрят на .filename после выполнения диалога. Если там пусто, значит cancel нажали.

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 25.12.2003 (Чт) 14:54

gaidar писал(а):А вообще это был лишь пример, может человек чего не понимает :) или не так делает.

Да это понятно! Ты, Гайдар, не обижайся. Я просто порадовалась твоему выбору информации из Err, которую ты решил использовать для примера :). И на всякий случай упомянула о минимальной информации, которую необходимо знать при обработке ошибки.

2zHackLeX Если ты знаешь, где кидается ошибка, то поймать её не должно быть проблемой. А там уж делай с ней, что хошь...

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

Сообщение GSerg » 26.12.2003 (Пт) 10:36

RayShade писал(а):Умные люди не пользуются таким бредом как .cancelerror = true, они просто смотрят на .filename после выполнения диалога. Если там пусто, значит cancel нажали.

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

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 06.01.2004 (Вт) 23:43

Да нет, теперь-то уже, кажись, всё в порядке. Почему-то. А раньше
у меня в этом случае оператор On Error почему-то не срабатывал вообще! И если до этого я это обходил, то проблема встала так:
У меня есть RichTextBox, и я собираюсь применить selPrint метод. Но этот метод требует от меня какой-то HDC, и единственный подходящий - у самого CommonDialog. И как тут обойтись без CancelError? Подскажите, если знаете.
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)


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

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

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

    TopList