Canvas does not allow excel

Hardware

  • Register Now
    or LOG IN to post
  • Recent Activity
  • FAQs
  • Guidelines

Question

  • Creator

    Topic

  • Canvas does not drawing

    Locked

    by
    robertln1
    ·
    about 15 years ago

    An error message pops-up after I use Excel, Adobe, and real player. Memory is not a problem and I even run the machine with minimum memory use. I am using Windows XP Pro.

    Topic is locked

    This conversation is currently closed to new comments.

  • Creator

    Topic


All Answers

  • Author

    Replies

    • Clarifications

      by
      robertln1
      ·
      about 15 years ago

      In reply to Canvas does not drawing

      Clarifications

    • Exactly what does the error message say?

      by
      boxfiddler
      ·
      about 15 years ago

      In reply to Canvas does not drawing

      Windows has a bazillion different error messages that could mean a thousand different things. We need to know what the error message says.

      • Canvas does not allow drawing

        by
        robertln1
        ·
        about 15 years ago

        In reply to Exactly what does the error message say?

        The error message reads “Canvas does not allow drawing” at this point you have close every thing and restart the computer. None of the other machines on the network have this problem.

        • I have not ever seen this error before.

          by
          boxfiddler
          ·
          about 15 years ago

          In reply to Canvas does not allow drawing

          However, googling the phrase yielded the following, along with a number of other things:

          “This is a Windows error caused by low GDI (Graphic Device Interface) resources. This error can occur when too many programs are open or the open programs are using a large amount of Windows resources. The MediSoft Case window is an example of a particularly large user of Windows resources. The MediSoft Case window uses a large amount of resources because of the number of controls (data fields) in the window. This is not a MediSoft deficiency, but a result of the information necessary in the window.”

          http://inborne.mykb.com/Article_7A622.aspx

          While this information appears to be specific to the app mentioned in it, I think it is highly probable that it is applicable across many situations, being a Windows error.

          edit: clarify

        • Now that I know the FULL error message, it is clear…

          by
          older mycroft
          ·
          about 15 years ago

          In reply to Canvas does not allow drawing

          That the error is related to whatever strain you are placing on the GUI, related to your system’s graphics (SMA graphics ?) capability.

          It seems the most common cause for this error is having multiple windows open simultaneously. usually within a browser.

          In your original post you mentioned that memory was not a problem and that you ran the system with minimum memory. I’m interested as to WHY you mentioned that as it’s not the usual thing to put in a post.

          Have you had memory problems with this system before ?
          How much memory does this ‘puter have ?
          Is the graphics memory dedicated or shared ?
          When you “[i]close every thing[/i]” how many is that ?

    • Huh ?…

      by
      older mycroft
      ·
      about 15 years ago

      In reply to Canvas does not drawing

      “[i]Canvas does not drawing[/i]” – What does that mean ?

  • Author

    Replies

TechRepublic Premium


  • TechRepublic Premium

    Hiring kit: Wireless system engineer

    PURPOSE Finding and hiring Wireless System Engineers will require a focused and comprehensive recruitment plan that looks for qualified individuals with the right technical skills and a personality that will best fit your organizational culture. This Hiring Kit from TechRepublic Premium provides an adjustable framework your business can use to find, recruit and ultimately hire …


  • TechRepublic Premium

    iCloud Usage Policy

    PURPOSE The policy’s purpose is to define proper practices for using Apple iCloud services whenever accessing, connecting to, or otherwise interacting with organization systems, services, data and resources. This policy, from TechRepublic Premium, can be customized as needed to fit the needs of your organization. From the policy: POLICY DETAILS All organization representatives, including all …


  • TechRepublic Premium

    IT expense reimbursement policy

    PURPOSE The policy’s purpose is to define for employees and authorized representatives the technology-related purchases eligible for reimbursement. The policy also seeks to ensure all expenses are properly reported, processed and reimbursed. This policy, from TechRepublic Premium, can be customized as needed to fit your organization’s needs. From the policy: POLICY DETAILS No technology-related purchases …


  • TechRepublic Premium

    Interviewing guidelines policy

    PURPOSE This policy from TechRepublic Premium provides guidelines for conducting useful and appropriate interviews with potential new hires, both from a proper methodology perspective and a legal standpoint. These guidelines will help build a reproducible and consistent interview framework that can be applied to any open role. From the policy: INTERVIEWING GUIDELINES The first step …

  • TechRepublic

  • TechRepublic on Twitter

  • TechRepublic on Facebook

  • TechRepublic on LinkedIn

  • TechRepublic on Flipboard

kessor

4 / 4 / 2

Регистрация: 27.10.2014

Сообщений: 90

1

15.02.2016, 13:09. Показов 9502. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

после N запусков вот этой функции

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function GetGPixelColor(X, Y: Integer): BYTE;
var
 c: TCanvas;
Col: TColor;
begin
c := TCanvas.Create;
  try
    c.Handle := GetWindowDC(GetDesktopWindow);
    Col   := GetPixel(c.Handle, X, Y);
    Result := GetGValue(Col);
  finally
    c.Free;
  end;
end;

программа вылетает с ошибкой canvas does not allow drawing
как исправить?



0



Пишу на Delphi…иногда

1423 / 1278 / 286

Регистрация: 03.12.2012

Сообщений: 3,914

Записей в блоге: 5

15.02.2016, 13:25

2

Цитата
Сообщение от kessor
Посмотреть сообщение

как исправить?

GetWindowDC

After painting is complete, the ReleaseDC function must be called to release the device context. Not releasing the window device context has serious effects on painting requested by applications.



0



kessor

4 / 4 / 2

Регистрация: 27.10.2014

Сообщений: 90

15.02.2016, 14:06

 [ТС]

3

то есть просто добавить строчку

Pascal
1
ReleaseDC(GetDesktopWindow,GetWindowDC(GetDesktopWindow));

?



0



588 / 455 / 147

Регистрация: 09.12.2013

Сообщений: 2,385

Записей в блоге: 2

15.02.2016, 16:20

4

Зачем вообще TCanvas? Просто HDC возьмите. И да, освобождать надо.

Цитата
Сообщение от kessor
Посмотреть сообщение

canvas does not allow drawing

Это логически не может быть из-за показанного кода. Вы там ничего не рисуете. В другом месте наверное что-то делается.

Добавлено через 22 секунды
Почему все так любят GetDesktopWindow? Ноль там должен быть, ноль.



0



kessor

4 / 4 / 2

Регистрация: 27.10.2014

Сообщений: 90

15.02.2016, 17:27

 [ТС]

5

а так можно цвет пикселя получать?

Pascal
1
2
3
4
5
6
7
function GetGPixelColor(X, Y: Integer): BYTE;
var
Col: TColor;
begin
Col   := GetPixel(GetDC(0), X, Y);
Result := GetGValue(Col);
end;



0



BOGG ART

588 / 455 / 147

Регистрация: 09.12.2013

Сообщений: 2,385

Записей в блоге: 2

15.02.2016, 18:40

6

Лучший ответ Сообщение было отмечено kessor как решение

Решение

Я же говорю — возьмите переменную HDC, освобождайте.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function GetPixelColor(X, Y: Integer): TColor;
var DC: HDC;
begin
DC:=GetDC(0); // !!!
Result:=GetPixel(DC, X, Y);
ReleaseDC(0, DC); // !!!
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
var Col: TColor;
begin
with Mouse.CursorPos do
      Col:=GetPixelColor(X, Y);
Color:=GetGValue(Col);
end;



1



4 / 4 / 2

Регистрация: 27.10.2014

Сообщений: 90

18.02.2016, 17:03

 [ТС]

7

после ~100 итераций начинает выдавать всегда одно и то же значение(для G — 255)
помогает перезапуск проги
как исправить?



0



Ошибка — Canvas does not allow drawing

KonstantinDKM

Отредактировано KonstantinDKM11.01.2015, 16:31

16:30, 11.01.2015 | #1

Нет аватара

Сообщений: 13

Добрый день, установил 10 на свой комп и пакет локализации 0.8 Все бы хорошо да вот только винду дико кроет и за одного бага природу которого я не могу понять. Когда он происходит пропадает кнопка пуск, сбиваются шрифты, вместо названий становятся крякозябрики, все тексты становятся жирными, хотел бы показать скриншот но сообщение об ошибке мешает их сохранить.

ChangeBtnPos, err:Canvas does not allow drawing

И за этого приходится перезаходить каждые 2 часа, если честно уже порядком достало. Но иногда комп просто виснет при повторном логине.
довольно таки мощный fx 8320@ 4.2, 8gb, gtx570. Сейчас набираю опять этот баг начался….

sysprg

Отредактировано sysprg11.01.2015, 18:14

18:17, 11.01.2015 | #2

Аватар sysprg

Почетный

Цитата KonstantinDKM ()

только винду дико кроет

Это не Windows кроет, а одно из установленных Вами приложений, на Delphi или того хуже, VB. Вы даже не сообщили о каком билде идет речь и о том, какие приложения гоняете.

Добавлено (11.01.2015, 18:17)
———————————————
Все жалобы на это сообщение относятся именно к подобным приложениям, причем в среде XP, очень старые. В отдельных случаях помогает запуск приложения от администратора.

bl99panda

Отредактировано bl99panda11.01.2015, 19:03

19:03, 11.01.2015 | #3

Нет аватара

Сообщений: 10

Сидел на всех билдах 10ки проблемы такой не было тебе правильно сказали проблемма с софтом…

KonstantinDKM

Отредактировано KonstantinDKM11.01.2015, 19:45

19:30, 11.01.2015 | #4

Нет аватара

Сообщений: 13

Ну в общем так, играю в Star Trek Online, Star Conflict, Word of Warkraft 5.4.8. biggrin
Установлен Eset Smart Security 8.0, торрент клиент, рк, тим спик, Adobe Photoshop CS3.
Поставил был PerfectDisk но у него не было доступа к жд. Удалил, поставил Smart Defrag последний.
Конвертирую видео в XvidPSP, установлены последние кодеки, DirectX 9 и С++ все версии. Как то раз автоматом на комп поставился анти спай от Iobit комп намертво повис когда оно открылось, удалил. angry2

Фиг его знает как понять по чему меню пуск превращается в кашу и система либо перезапукает рабочий стол, либо самому на выход, и то потом бывает зависание намертво, а вчера вообще было зависание 7 раз подряд при загрузке рабочего стола.. стало последней каплей…

Как то раз был вылет в синий экран, тогда посмотрел логи а там chkdsk.exe+8470
DPC_WATCHDOG_VIOLATION как то так…

Билд 9879

Вот только что ради интереса нажал сменить аватар в меню пуск и сразу

опять пошли эти глюки.

sysprg

Отредактировано sysprg11.01.2015, 19:53

19:50, 11.01.2015 | #5

Аватар sysprg

Почетный

Могу лишь посоветовать сносить приложения по одному в обратной к порядку установки последовательности и проверять не возникают ли описанные ошибки. Другой вариант — сразу снести самые старые по возрасту создания приложения, те, котрые Вы еще под XP гоняли, если таковые имеются. Ни с одним из перечисленных Вами, кроме С++ никогда не имел дел. smile

maxaon09

Отредактировано maxaon0911.01.2015, 19:56

19:55, 11.01.2015 | #6

Аватар maxaon09

Почетный

Сообщений: 561

Цитата KonstantinDKM ()

поставился анти спай от Iobit комп намертво повис когда оно открылось

Вот отсюда и пляши, я бы ещё и Eset Smart Security убрал и все приложения от Мэил-ру (ещё та срань зараза) и т.п. Если есть точка восстановления до проблемы откатись. Как вариант Восстановление компьютера без удаления Файлов: «Если ваш компьютер работает неправильно, вы можете его восстановить без потери фотографий, музыки, видео и других личных файлов.» Программки придется переустановить

KonstantinDKM

20:13, 11.01.2015 | #7

Нет аватара

Автор темы

Сообщений: 13

Без антивируса тож не вариант.. нет никакой антивир защиты у провайдера, часто происходят сканирования портов, мдс и проч гадость. У меня стоит майл ру агент последняя версия. Опера.
На 7 тоже откат не хочу, прирост производительности уже очень ощутимый, загружается очень быстро.
Вопрос еще гаджеты от 8.1 могут быть причиной таких провалов? Из гаджетов стоит ток монитор системы 2, и погодка.

Да вот еще что замечали ли вы проблемы с файлом подкачки? Система поставила на С и размер аж 9 ГБ, убрал в ручную выставил 2 ГБ макс, и переместил на другой диск. Один раз было такое что комп стал дико тормозить при конвертировании, посмотрел на монитор, файл подкачки заполнен 100%, а память свободно 60%. Что это может быть?
Из приложений времен Хр стоит ток XvidPSP 5.3 ибо только им можно нормально делать рипы.

sysprg

Отредактировано sysprg11.01.2015, 20:45

20:44, 11.01.2015 | #8

Аватар sysprg

Почетный

Цитата KonstantinDKM ()

XvidPSP 5.3

А вот этот зверь как раз и упоминался как источник ошибки! Снесите и проверьте, не знаю, кто такие рипы, но можете 10 минут без них прожить? Или проверьте запуск этой проги от администратора

otto600

Отредактировано otto60011.01.2015, 21:03

20:54, 11.01.2015 | #9

Нет аватара

Цитата sysprg ()

А вот этот зверь как раз и упоминался как источник ошибки

Именно, в нем есть или для его работы требуется такая мерзость как к-лайт глюко пак, которая калечит систему и корректно удалить его и искоренить остатки не возможно кроме как переустановка ОС. Также этот зверь, когда то заброшенная разработка, теперь поддерживаемая и обновляемая только энтузиастами рутрекера в «домашних условиях» на «коленке».

KonstantinDKM
Попробуйте MeGui и функционал для работы с HD побольше и ни чего вредного для системы нет. Хотя что тот что эта всего лишь графическая морда для многих консольных прог, которыми можно успешно работать без Гуев, тот же eac3to + x264.exe+avisynth. Да и зачем при современном железе, объемах ОЗУ и емкости носителей-HDD заниматься рипованием — ремукс если надо выкинуть лишнее и перекодировать аудио.

KonstantinDKM

Отредактировано KonstantinDKM11.01.2015, 21:41

21:37, 11.01.2015 | #10

Нет аватара

Автор темы

Сообщений: 13

Ну не у всех еще хороший интернет который позволяет качать от 40гб и выше. Ремуксы легко делаются в мкв мерге, но вот что то и с ним не так. Значит недавно делал рип, видео отдельно, а дорожку с блюрика вынул,концерт, чаптеры сделал, мало того что мерге не корректно выставил мои чаптеры, так еще ближе к концу видео рассинхрон видео и картинки. Сначала все превосходно минута в минуту идет.. а в конце такая хрень. Уж очень он как то быстро создавал файл в 12 гб, я вначале не сильно придал этому значение, ну все таки новая винда и т.д . Хорошо хоть ремуксы не испортил, а то в сеть вылаживаю…
Теперь понятно, этот зверь последний раз показал мне ахинею, резал блюрик, на отдельные части, 4 минуты хотел кодировать 10 часов….
Надо подбирать замену.. жаль. Знаю.. 6 его версия шлак полный.

otto600

21:46, 11.01.2015 | #11

Нет аватара

KonstantinDKM, подготавливайте материал вот этим, учитывает задержки видео/аудио, исправляет ошибки в потоках

eac3to и как им пользоваться

PainteR

22:26, 11.01.2015 | #12

Аватар PainteR

DG Win&Soft

Почетный

KonstantinDKM, а мир тесен happy
Решили наконец разобраться? А не меня грязью поливать? dry
http://nnm-club.me/forum/viewtopic.php?p=7055776#7055776

И на счет антивируса: антивирусы используют часто нестандартные приемы для борьбы с вредоносным ПО и они часто создаются под конкретную версию ОС (тот же драйвер), поэтому ставить антивирусное ПО на тех. релиз без подтверждения работы от производителя не имеет смысла, только «дров наломать».
Но это отдельная тема, для списка совместимых антивирусов и т.п.

MisterMyth

22:27, 11.01.2015 | #13

Аватар MisterMyth

otto600, k lite codec pack калечит систему? Не верю. Много лет пользуюсь только им и без проблем.

otto600

Отредактировано otto60011.01.2015, 23:48

23:14, 11.01.2015 | #14

Нет аватара

MisterMyth,
А зачем им пользоваться много лет, для просмотра/прослушивания любой плеер все играет из коробки своими внутренними декодерами с dxva (mpc hc/be, pot player…). А если нужны фильтры для програм конвертирования, достаточно ffdshow или LAV. А в кодепаке все существующие фильтры и кодеки собраны в кучу и конфликтуют между собой.
К-лайт был актуален версий 1и2, когда кроме WMP ничего не было. А современные версии это нонсенс, там и LAV и ffdshow и core, вот и приходится по настройкам плееров скакать приоритеты кодекам задавать, что бы друг у друга декодирование не перехватывали.
Вот MPC BE и никаких глюко паков

KonstantinDKM

23:59, 11.01.2015 | #15

Нет аватара

Автор темы

Сообщений: 13

Прошу прощения, рассматривал разные варианты проблемы, а учитывая что названия файлов превращаются в кашу, грешил на русификатор. sad
Вообще по идее если это есет то система должна была бы обваливаться при загрузке раб. стола по скольку он все время первым грузится.
И ни один антивирус не даст 100% совместимость, под бета версии ни кто такого не делает.

Насчет глюко пака, тоже с вами не согласен , стоял на старом компе, и на новом тоже. А вот всякие там Win7 паки это баги и т.п.
Установлен еще VLC 32 битный с кучей своих кодеков. AIMP, MKV Chaptlizer. Кстати недавно вторая прога Spyware Terminator так же вызвала зависание при загрузке, удалил сразу же.
Увы меню пуск все так же глючит, перебрал уже все программы.

  • Страница 1 из 2
  • 1
  • 2
  • »
Windows 8.1
  • Вопросы и ответы по Windows 8.1
  • Установка Windows 8.1
  • Оформление Windows 8.1
  • Обои / Wallpapers
  • Курсоры / Cursors
Популярное
  • Программы для восстановления данных с Flash-накопителей
  • Где за рубежом открыть IT компанию
  • Где заказать качественную рекламную кампанию и продвижение
  • Децентрализованное хранилище для вашего смартфона
  • Где заказать заправку картриджей с выездом
  • Где заказать разработку сайта на WordPress
  • Стабильные серверы lineage
  • Где отремонтировать MacBook
  • Где купить iPhone 14 Pro
  • Надежный сервис виртуальных SMS-номеров для активации

Solution 1

If you need to work with an additional canvas you will have to assign a HDC e.g.

var
  WindowHandle:HWND;
  ScreenCanvas,BufferCanvas: TCanvas;
  r,r2: TRect;
  ScreenDC,BufferDC :HDC;
  BufferBitmap : HBITMAP;
begin
  WindowHandle := 0;
  ScreenCanvas := TCanvas.Create;
  BufferCanvas := TCanvas.Create;

  ScreenDC:=GetWindowDC(WindowHandle);
  ScreenCanvas.Handle := ScreenDC;

  BufferDC := CreateCompatibleDC(ScreenDC);
  BufferCanvas.Handle := BufferDC;
  BufferBitmap := CreateCompatibleBitmap(ScreenDC,
                     GetDeviceCaps(ScreenDC, HORZRES),
                     GetDeviceCaps(ScreenDC, VERTRES));
  SelectObject(BufferDC, BufferBitmap);

  try
    r := Rect(0, 0, 200, 200);
    BufferCanvas.CopyRect(r,ScreenCanvas,r);
    form1.Canvas.CopyRect(r, BufferCanvas, r);
  finally
    ReleaseDC(WindowHandle, ScreenCanvas.Handle);
    DeleteDC(BufferDC);
    DeleteObject(BufferBitmap);
    BufferCanvas.Free;
    ScreenCanvas.Free;
  end;
end;

Solution 2

It’s a time to toss my solution into the pot!

procedure TForm1.FormClick(Sender: TObject);
var
  ScreenCanvas: TCanvas;
begin
  ScreenCanvas := TCanvas.Create;
  try
    ScreenCanvas.Handle := GetWindowDC(GetDesktopWindow);
    Win32Check(ScreenCanvas.HandleAllocated);
    Canvas.CopyRect(Canvas.ClipRect, ScreenCanvas, ScreenCanvas.ClipRect);
  finally
    ReleaseDC(GetDesktopWindow, ScreenCanvas.Handle);
    ScreenCanvas.Free;
  end;
end;

Comments

  • I want to Draw a Screenshot from the entire screen to a TForm1 Canvas.

    This code works well in Delphi XE3

    procedure TForm1.Button1Click(Sender: TObject);
    var
      c,scr: TCanvas;
      r,r2: TRect;
    begin
    
      c := TCanvas.Create;
      scr := TCanvas.Create;
      c.Handle := GetWindowDC(GetDesktopWindow);
      try
    
        r := Rect(0, 0, 200, 200);
        form1.Canvas.CopyRect(r, c, r);
    
      finally
        ReleaseDC(0, c.Handle);
        c.Free;
      end;
    

    Now I want to copy the screenshot to another canvas first.
    Is there a way to do this without getting this error?

    procedure TForm1.Button1Click(Sender: TObject);
    var
      c,scr: TCanvas;
      r,r2: TRect;
    begin
    
      c := TCanvas.Create;
      scr := TCanvas.Create;
      c.Handle := GetWindowDC(GetDesktopWindow);
      try
    
        r := Rect(0, 0, 200, 200);
    
        scr.CopyRect(r,c,r); <-- Error, canvas does not allow drawing
        form1.Canvas.CopyRect(r, scr, r); <-- Error, canvas does not allow drawing
    
      finally
        ReleaseDC(0, c.Handle);
        c.Free;
      end;
    

  • Once you do that, scr is rather pointless. You may as well just draw directly to bmp.Canvas.

  • @RobKennedy I know it was an example, could have been another DC too.

  • This is very tangled and intricate example: you don’t that excess canvas at all, it is actually a unobvious clone of bmp’s MemDC.

Recents

Related


Home General

Windows service and ‘canvas does not allow drawing’ error

Hello,
I have a windows service which produces PDF files using report
builder 14.04. One of our clients had an error today ‘canvas does not
allow drawing’.

reading back through some very old posts I came up with a couple of
bits of advice.

1.) There needs to be a default printer installed. RB requires this
despite not actually printing to the printer concerned. In this case
there was a default printer but it was a network printer which was
unreachable. I installed a random print driver on lpt1 and the error
went away.

2.) set the printer name to ‘Screen’. This would be the preferred
solution but did not work in this case. Would the windows service need
to be given permission to interact with the desktop for this to work?

Is there anything else I am unaware of when it comes to resolving this
error. Ideally I would like to not have to create a dummy printer on
every server I work with. In some cases this may not be possible anyway.

Regards,
Will.

This discussion has been closed.

В чем вопрос-то? Куда нажать, чтобы увидеть? На свежей альфе? Знаете-ка что…. Этой ошибке ТРИСТА ЛЕТ! Посмотрите на дату исходного сообщения — март 2006 года.

Никуда не нажать. Эта ошибка возникает сама по себе и непредсказуемо. И чем дальше бат деградирует (с увеличением номера версии) — тем чаще.

Я ж сказал — на форумах по дельфи про такую проблему знают, знают про ее причины и знают, что надо делать, чтобы она не возникала. И всяких новичков терпеливо учат, как надо программировать многопоточные приложения.

Также, когда я искал информацию об этой ошибке, я видел много релизов РАЗНЫХ программ, в описании к которым было указано, что в этой версии «исправлена ошибка, приводящая к Canvas does not allow drawing и к Acsess violation at address».

Отрицать очевидное бессмысленно — ошибка в Бате есть, и причина ее — корявое программирование, рассинхронизация процессов, утечки памяти.

Беда в том, что эту ошибку в Бате уже НИКОГДА не исправить!!! Слишком все запущено. Я представляю, сколько кода надо перелопатить. А код уже давно такой, что в одном месте тронешь — в трех других сразу рассыпается.

Понравилась статья? Поделить с друзьями:
  • Canterville ghost excel 9
  • Cant find project or library макрос ошибка excel
  • Cannot use object linking and embedding in excel
  • Cannot think of the word
  • Cannot save or save as in word