Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035

Исключения в билдере. Головная боль!

03.05.2011, 14:14. Показов 3339. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
толи билдер такой наглый толи ещё че. не пойму.
Сделал обработку исключения
try{
char ADevice[100], ADriver[100], APort[100];
THandle Mode;
PDeviceMode DevMode;

Printer()->GetPrinter((wchar_t *)ADevice, (wchar_t *)ADriver, (wchar_t *)APort, Mode);
DevMode =(_devicemodeW*) GlobalLock((void *)Mode);

DevMode->dmFields |= DM_ORIENTATION;
DevMode->dmOrientation = DMORIENT_PORTRAIT ;// DMORIENT_LANDSCAPE; //

Form2->RichEdit1->Print("Печать");

GlobalUnlock(DevMode);

}
catch (...){
ShowMessage("Какой принтер установлен по умолчанию? Откройте Пуск-Принтеры и факсы. Выберите принтер. Нажмите правой кнопкой. И установите - Установить по умолчанию. Программа будет закрыта.");
Application->Terminate();
}
Делаю спецом исключение.

Вылетает эта мессага. Все отлично. Но какого то черта вылетает ещё 100 мессаг... о том что к памяти не так я обращаюсь. Какая скатина их порождает и как их отключить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.05.2011, 14:14
Ответы с готовыми решениями:

Конструкторы - моя головная боль)
Помогите кто чем может!!! Мне надо создать конструктор который бы вычислял длину прямой, которая задана 2-мя точками на плоскости. ...

указатели и ссылки - головная боль!
Как вы уже догадались из названии темы, никак не пойму работу указателей и ссылок... Где нужно их инкриментировать, и как ссылаются на...

Code Block и моя двухнедельная головная боль(
Здравствуйте, форумчане, помогите, пожалуйста, разобраться с этим Code Block-сом( В этой программе работаю впервые. Мне очень нужно...

34
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
03.05.2011, 18:59  [ТС]
Студворк — интернет-сервис помощи студентам
и поэтому он не обработается в том модуле из которого был вызван?
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
04.05.2011, 12:38
Нет, скорее всего исключение никто не вызывает.
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
04.05.2011, 12:41  [ТС]
а че , как так тогда? откуда столько месаг о памяти.
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
04.05.2011, 14:02
А как же ж
Цитата Сообщение от ht1515 Посмотреть сообщение
Кстати там есть(картинку с исключением посмотрите) Ignore it excepton type.
Я её нажал, теперь просто тупо мессаги вылетают в бесконечном количестве.
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
04.05.2011, 14:08  [ТС]
то есть эти мессаги генерируются ОС которая как-то неправильно чето херачит из dll к которому я обращаюсь из программы на билдере?
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
04.05.2011, 14:54
В общих чертах как-то так.
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
04.05.2011, 14:58  [ТС]
в дебагере стек посмотреть может? вызовы какие нить...
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
04.05.2011, 15:04
Если так хочется, хотя может лучше почитать мануалы про метод Print, может всеже он требует каких то проверок доступности принтера перед своим вызовом.
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
04.05.2011, 15:16  [ТС]
kazak, вчера архангельского читал. Про печать ваще скудно че написал.
Про проверку ничего не писал. Смысл в том что нужно юзать fastreport или rave.
Или класс Tprinter вроде и через канву все херачить там.

Добавлено через 7 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
procedure TCustomRichEdit.Print(const Caption: string);
var
  Range: TFormatRange;
  LastChar, MaxLen, LogX, LogY, OldMap: Integer;
  SaveRect: TRect;
  TextLen: TGetTextLengthEx;
{$IF DEFINED(CLR)}
  Buffer: IntPtr;
{$IFEND}
begin
{$IF NOT DEFINED(CLR)}
  FillChar(Range, SizeOf(TFormatRange), 0);
{$IFEND}
  with Printer, Range do
  begin
    Title := Caption;
    BeginDoc;
    hdc := Handle;
    hdcTarget := hdc;
    LogX := GetDeviceCaps(Handle, LOGPIXELSX);
    LogY := GetDeviceCaps(Handle, LOGPIXELSY);
    if IsRectEmpty(PageRect) then
    begin
      rc.right := PageWidth * 1440 div LogX;
      rc.bottom := PageHeight * 1440 div LogY;
    end
    else begin
      rc.left := PageRect.Left * 1440 div LogX;
      rc.top := PageRect.Top * 1440 div LogY;
      rc.right := PageRect.Right * 1440 div LogX;
      rc.bottom := PageRect.Bottom * 1440 div LogY;
    end;
    rcPage := rc;
    SaveRect := rc;
    LastChar := 0;
 
    // retrieve number of characters in rich edit control
    TextLen.Flags := GTL_NUMCHARS;
{$IF DEFINED(CLR)}
    if Marshal.SystemDefaultCharSize = 1 then
      TextLen.CodePage := CP_ACP // Active ANSI code page
    else
      TextLen.CodePage := 1200;  // Unicode
    Buffer := Marshal.AllocHGlobal(Marshal.SizeOf(TypeOf(TGetTextLengthEx)));
    try
      Marshal.StructureToPtr(TObject(TextLen), Buffer, False);
      MaxLen := SendMessage(Self.Handle, EM_GETTEXTLENGTHEX, LPARAM(Buffer), 0);
    finally
      Marshal.FreeHGlobal(Buffer);
    end;
{$ELSE}
    TextLen.CodePage := 1200;  // Unicode
    MaxLen := SendMessage(Self.Handle, EM_GETTEXTLENGTHEX, LPARAM(@TextLen), 0);
{$IFEND}
 
    chrg.cpMax := -1;
    // ensure printer DC is in text map mode
    OldMap := SetMapMode(hdc, MM_TEXT);
    SendMessage(Self.Handle, EM_FORMATRANGE, 0, 0);    // flush buffer
    try
      repeat
        rc := SaveRect;
        chrg.cpMin := LastChar;
        LastChar := SendStructMessage(Self.Handle, EM_FORMATRANGE, 1, Range);
        if (LastChar < MaxLen) and (LastChar <> -1) then
          NewPage;
      until (LastChar >= MaxLen) or (LastChar = -1);
      EndDoc;
    finally
      SendMessage(Self.Handle, EM_FORMATRANGE, 0, 0);  // flush buffer
      SetMapMode(hdc, OldMap);       // restore previous map mode
    end;
  end;
end;
по сути в модуле ComCtrls эта функция вызывается когда делаю рич->принт.

а на этой строке видать сбой
Delphi
1
LastChar := SendStructMessage(Self.Handle, EM_FORMATRANGE, 1, Range);
дальше нее не идет.
http://docwiki.embarcadero.com... uctMessage
0
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
04.05.2011, 15:25
скомпили программу в релизе и запусти екзешник
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
04.05.2011, 15:26  [ТС]
скомпили программу в релизе и запусти екзешник
об этом уже вроде говорили.
0
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
04.05.2011, 15:33
если не поможет, проверь тоже но на шестом билдере

Добавлено через 1 минуту
Цитата Сообщение от ht1515 Посмотреть сообщение
об этом уже вроде говорили.
значит я пропустил
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
04.05.2011, 15:36  [ТС]
проверил на 6. Так же.
Короче да. Походу просто билдер так не умеет. Может это и правильно в принципе. Типо код неуправляемый же.
0
 Аватар для kazak
3605 / 2745 / 356
Регистрация: 11.03.2009
Сообщений: 6,313
04.05.2011, 15:42
Как вариант можно попробовать на другом компе, с другим принтером.
0
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
04.05.2011, 17:24
в билдер принцыпе перехватывает исключение, и только исключение (тоисть то что было вазвано throw), а то что выскакивает у тебя это ошибка переполнения/доступа памяти которую отлавливает сама винда и выдает сообщение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.05.2011, 17:24

Матрицы, головная боль
Эту тему я очень хотел бы развить как лично для себя, так и для других новичков которые наталкиваются на неизбежную работу с матрицами. Я...

Кроссдоменность - головная боль?
Здравствуйте уважаемые форумчане. Нужен совет, ну или помощь кому не лень. Трабла такая - пихаем видео на страницу, реализовываем к плееру...

Головная боль от экрана
Жутко замучилась с головной болью. На днях сгорела материнка на моем ноуте и я временно пересела на &quot;ультрабук&quot; своего парня. За...

Головная боль по имени args
Позвольте &quot;чайнику&quot; поинтересоваться... Во всех книгах по Java которые смог найти включая &quot;для чайников&quot;, &quot;для...

Большая головная боль с Сёмерочкою...
Помогите плизз!!!!23 числа сего месяца на Винде 7 Макси произошло обновления(человек по незнанке применил обновления)В итоге после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru