Groups > Borland > Delphi winforms controls > Re: D 2007 - TDBCtrlGrid - Canvas painting not allowed




D 2007 - TDBCtrlGrid - Canvas painting not allowed

D 2007 - TDBCtrlGrid - Canvas painting not allowed
Fri, 04 May 2007 08:48:19 +020
Hello,
I get the exception "Canvas painting not allowed" if the user want to

scroll in the Control Grid.
Is this a known problem?
Best wishes
Post Reply
Re: D 2007 - TDBCtrlGrid - Canvas painting not allowed
Fri, 04 May 2007 09:09:45 +020
Bernhard Roos schrieb:
> Hello,
> I get the exception "Canvas painting not allowed" if the user
want to 
> scroll in the Control Grid.
> Is this a known problem?
> Best wishes
> Bernhard

This is the callstack :

date/time         : 2007-05-04, 08:49:15, 64ms
computer name     : PC47
user name         : Administrator <admin>
registered owner  : HeiBa GmbH / HeiBa GmbH operating system  : Windows 
XP Service Pack 2 build 2600
system language   : German
system up time    : 13 minutes 38 seconds
program up time   : 8 minutes 26 seconds
processor         : AMD Athlon(tm) XP 1700+
physical memory   : 559/1023 MB (free/total)
free disk space   : (C:) 25,96 GB
display mode      : 1280x1024, 32 bit
process id        : $880
allocated memory  : 44,61 MB
executable        : ZeitarbeitDeluxe.Exe
exec. date/time   : 2007-05-03 18:40
version           : 2006.100.0.566
compiled with     : BCB 2006
madExcept version : 3.0d
callstack crc     : $b735a57c, $db8374c7, $9f4be492
exception number  : 4
exception class   : EInvalidOperation
exception message : Leinwand/Bild erlaubt kein Zeichnen.

Main ($884):
0048aa40 +00040 ZeitarbeitDeluxe.Exe Graphics          2785   +8 
TCanvas.RequiredState
0048a222 +00016 ZeitarbeitDeluxe.Exe Graphics          2456   +2 
TCanvas.DrawFocusRect
009fec61 +00131 ZeitarbeitDeluxe.Exe DBCGrids           260  +18 
TDBCtrlPanel.PaintWindow
004cb29d +00101 ZeitarbeitDeluxe.Exe Controls          7349  +19 
TWinControl.PaintHandler
009fed19 +00049 ZeitarbeitDeluxe.Exe DBCGrids           285   +6 
TDBCtrlPanel.WMPaint
004c70eb +002bb ZeitarbeitDeluxe.Exe Controls          5146  +83 
TControl.WndProc
004cb03a +004fa ZeitarbeitDeluxe.Exe Controls          7271 +111 
TWinControl.WndProc
004ca764 +0002c ZeitarbeitDeluxe.Exe Controls          7040   +3 
TWinControl.MainWndProc
0048027c +00014 ZeitarbeitDeluxe.Exe Classes          11583   +8 StdWndProc
7c91eae0 +00010 ntdll.dll 
KiUserCallbackDispatcher
7e36d825 +0002c USER32.dll 
UpdateWindow
004cda89 +00015 ZeitarbeitDeluxe.Exe Controls          8800   +1 
TWinControl.Update
009ff1a6 +0014a ZeitarbeitDeluxe.Exe DBCGrids           441  +38 
TDBCtrlGrid.DataSetChanged
009feac1 +00005 ZeitarbeitDeluxe.Exe DBCGrids           217   +0 
TDBCtrlGridLink.DataSetChanged
009240ad +000bd ZeitarbeitDeluxe.Exe DB                7693  +19 
TDataLink.DataEvent
00924693 +0003f ZeitarbeitDeluxe.Exe DB                7965   +4 
TDataSource.NotifyLinkTypes
009246c2 +0001e ZeitarbeitDeluxe.Exe DB                7972   +3 
TDataSource.NotifyDataLinks
009246ef +00023 ZeitarbeitDeluxe.Exe DB                7980   +4 
TDataSource.DataEvent
00928fdd +00131 ZeitarbeitDeluxe.Exe DB               10036  +36 
TDataSet.DataEvent
0094d664 +0005c ZeitarbeitDeluxe.Exe nxdb              8388  +10 
TnxDataset.DataEvent
00951da7 +0002b ZeitarbeitDeluxe.Exe nxdb             10524   +3 
TnxIndexDataSet.DataEvent
00a1513e +0004a ZeitarbeitDeluxe.Exe SUControls        6109   +3 
TSUTable.DataEvent
0092907b +0004f ZeitarbeitDeluxe.Exe DB               10065   +8 
TDataSet.EnableControls
009ffc23 +001b3 ZeitarbeitDeluxe.Exe DBCGrids           730  +38 
TDBCtrlGrid.Scroll
009ff352 +0012e ZeitarbeitDeluxe.Exe DBCGrids           484  +22 
TDBCtrlGrid.DoKey
009ffd61 +00129 ZeitarbeitDeluxe.Exe DBCGrids           773  +34 
TDBCtrlGrid.ScrollMessage
00a005dc +00000 ZeitarbeitDeluxe.Exe DBCGrids          1084   +0 
TDBCtrlGrid.WMVScroll
004c70eb +002bb ZeitarbeitDeluxe.Exe Controls          5146  +83 
TControl.WndProc
004cb03a +004fa ZeitarbeitDeluxe.Exe Controls          7271 +111 
TWinControl.WndProc
004ca764 +0002c ZeitarbeitDeluxe.Exe Controls          7040   +3 
TWinControl.MainWndProc
0048027c +00014 ZeitarbeitDeluxe.Exe Classes          11583   +8 StdWndProc
7c91eae0 +00010 ntdll.dll 
KiUserCallbackDispatcher
7e36b8fe +00044 USER32.dll 
SendMessageW
7e37f117 +11c29 USER32.dll 
DefWindowProcA
7e36f658 +00016 USER32.dll 
CallWindowProcA
004cb137 +000d7 ZeitarbeitDeluxe.Exe Controls          7301  +23 
TWinControl.DefaultHandler
004ccc3d +000a1 ZeitarbeitDeluxe.Exe Controls          8220  +16 
TWinControl.WMSysCommand
004c70eb +002bb ZeitarbeitDeluxe.Exe Controls          5146  +83 
TControl.WndProc
004cb03a +004fa ZeitarbeitDeluxe.Exe Controls          7271 +111 
TWinControl.WndProc
004ca764 +0002c ZeitarbeitDeluxe.Exe Controls          7040   +3 
TWinControl.MainWndProc
0048027c +00014 ZeitarbeitDeluxe.Exe Classes          11583   +8 StdWndProc
7c91eae0 +00010 ntdll.dll 
KiUserCallbackDispatcher
7e36b8fe +00044 USER32.dll 
SendMessageW
7e37f117 +11c29 USER32.dll 
DefWindowProcA
7e36f658 +00016 USER32.dll 
CallWindowProcA
004cb137 +000d7 ZeitarbeitDeluxe.Exe Controls          7301  +23 
TWinControl.DefaultHandler
004c7735 +00015 ZeitarbeitDeluxe.Exe Controls          5267   +2 
TControl.WMNCLButtonDown
004c70eb +002bb ZeitarbeitDeluxe.Exe Controls          5146  +83 
TControl.WndProc
004cb03a +004fa ZeitarbeitDeluxe.Exe Controls          7271 +111 
TWinControl.WndProc
004ca764 +0002c ZeitarbeitDeluxe.Exe Controls          7040   +3 
TWinControl.MainWndProc
0048027c +00014 ZeitarbeitDeluxe.Exe Classes          11583   +8 StdWndProc
7e3696c2 +0000a USER32.dll 
DispatchMessageA
004e6344 +000fc ZeitarbeitDeluxe.Exe Forms             8015  +23 
TApplication.ProcessMessage
004e637e +0000a ZeitarbeitDeluxe.Exe Forms             8034   +1 
TApplication.HandleMessage
004e65d4 +000cc ZeitarbeitDeluxe.Exe Forms             8125  +23 
TApplication.Run
00febf32 +00aea ZeitarbeitDeluxe.Exe ZeitarbeitDeluxe   649 +140 
Post Reply
Re: D 2007 - TDBCtrlGrid - Canvas painting not allowed
Fri, 04 May 2007 11:36:03 +020
I've solved it. It is a bug in D 2007 (which worked fine in D7).

I use a TBitBtn in a Control Panel. In OnPaintPanel I've changed the 
text of the button. And this results in an exception.

Best wishes
Bernhard

Bernhard Roos schrieb:
> Bernhard Roos schrieb:
>> Hello,
>> I get the exception "Canvas painting not allowed" if the user
want to 
>> scroll in the Control Grid.
>> Is this a known problem?
>> Best wishes
>> Bernhard
> 
> This is the callstack :
> 
> date/time         : 2007-05-04, 08:49:15, 64ms
> computer name     : PC47
> user name         : Administrator <admin>
> registered owner  : HeiBa GmbH / HeiBa GmbH operating system  : Windows 
> XP Service Pack 2 build 2600
> system language   : German
> system up time    : 13 minutes 38 seconds
> program up time   : 8 minutes 26 seconds
> processor         : AMD Athlon(tm) XP 1700+
> physical memory   : 559/1023 MB (free/total)
> free disk space   : (C:) 25,96 GB
> display mode      : 1280x1024, 32 bit
> process id        : $880
> allocated memory  : 44,61 MB
> executable        : ZeitarbeitDeluxe.Exe
> exec. date/time   : 2007-05-03 18:40
> version           : 2006.100.0.566
> compiled with     : BCB 2006
> madExcept version : 3.0d
> callstack crc     : $b735a57c, $db8374c7, $9f4be492
> exception number  : 4
> exception class   : EInvalidOperation
> exception message : Leinwand/Bild erlaubt kein Zeichnen.
> 
> Main ($884):
> 0048aa40 +00040 ZeitarbeitDeluxe.Exe Graphics          2785   +8 
> TCanvas.RequiredState
> 0048a222 +00016 ZeitarbeitDeluxe.Exe Graphics          2456   +2 
> TCanvas.DrawFocusRect
> 009fec61 +00131 ZeitarbeitDeluxe.Exe DBCGrids           260  +18 
> TDBCtrlPanel.PaintWindow
> 004cb29d +00101 ZeitarbeitDeluxe.Exe Controls          7349  +19 
> TWinControl.PaintHandler
> 009fed19 +00049 ZeitarbeitDeluxe.Exe DBCGrids           285   +6 
> TDBCtrlPanel.WMPaint
> 004c70eb +002bb ZeitarbeitDeluxe.Exe Controls          5146  +83 
> TControl.WndProc
> 004cb03a +004fa ZeitarbeitDeluxe.Exe Controls          7271 +111 
> TWinControl.WndProc
> 004ca764 +0002c ZeitarbeitDeluxe.Exe Controls          7040   +3 
> TWinControl.MainWndProc
> 0048027c +00014 ZeitarbeitDeluxe.Exe Classes          11583   +8
StdWndProc
> 7c91eae0 +00010 ntdll.dll KiUserCallbackDispatcher
> 7e36d825 +0002c USER32.dll UpdateWindow
> 004cda89 +00015 ZeitarbeitDeluxe.Exe Controls          8800   +1 
> TWinControl.Update
> 009ff1a6 +0014a ZeitarbeitDeluxe.Exe DBCGrids           441  +38 
> TDBCtrlGrid.DataSetChanged
> 009feac1 +00005 ZeitarbeitDeluxe.Exe DBCGrids           217   +0 
> TDBCtrlGridLink.DataSetChanged
> 009240ad +000bd ZeitarbeitDeluxe.Exe DB                7693  +19 
> TDataLink.DataEvent
> 00924693 +0003f ZeitarbeitDeluxe.Exe DB                7965   +4 
> TDataSource.NotifyLinkTypes
> 009246c2 +0001e ZeitarbeitDeluxe.Exe DB                7972   +3 
> TDataSource.NotifyDataLinks
> 009246ef +00023 ZeitarbeitDeluxe.Exe DB                7980   +4 
> TDataSource.DataEvent
> 00928fdd +00131 ZeitarbeitDeluxe.Exe DB               10036  +36 
> TDataSet.DataEvent
> 0094d664 +0005c ZeitarbeitDeluxe.Exe nxdb              8388  +10 
> TnxDataset.DataEvent
> 00951da7 +0002b ZeitarbeitDeluxe.Exe nxdb             10524   +3 
> TnxIndexDataSet.DataEvent
> 00a1513e +0004a ZeitarbeitDeluxe.Exe SUControls        6109   +3 
> TSUTable.DataEvent
> 0092907b +0004f ZeitarbeitDeluxe.Exe DB               10065   +8 
> TDataSet.EnableControls
> 009ffc23 +001b3 ZeitarbeitDeluxe.Exe DBCGrids           730  +38 
> TDBCtrlGrid.Scroll
> 009ff352 +0012e ZeitarbeitDeluxe.Exe DBCGrids           484  +22 
> TDBCtrlGrid.DoKey
> 009ffd61 +00129 ZeitarbeitDeluxe.Exe DBCGrids           773  +34 
> TDBCtrlGrid.ScrollMessage
> 00a005dc +00000 ZeitarbeitDeluxe.Exe DBCGrids          1084   +0 
> TDBCtrlGrid.WMVScroll
> 004c70eb +002bb ZeitarbeitDeluxe.Exe Controls          5146  +83 
> TControl.WndProc
> 004cb03a +004fa ZeitarbeitDeluxe.Exe Controls          7271 +111 
> TWinControl.WndProc
> 004ca764 +0002c ZeitarbeitDeluxe.Exe Controls          7040   +3 
> TWinControl.MainWndProc
> 0048027c +00014 ZeitarbeitDeluxe.Exe Classes          11583   +8
StdWndProc
> 7c91eae0 +00010 ntdll.dll KiUserCallbackDispatcher
> 7e36b8fe +00044 USER32.dll SendMessageW
> 7e37f117 +11c29 USER32.dll DefWindowProcA
> 7e36f658 +00016 USER32.dll CallWindowProcA
> 004cb137 +000d7 ZeitarbeitDeluxe.Exe Controls          7301  +23 
> TWinControl.DefaultHandler
> 004ccc3d +000a1 ZeitarbeitDeluxe.Exe Controls          8220  +16 
> TWinControl.WMSysCommand
> 004c70eb +002bb ZeitarbeitDeluxe.Exe Controls          5146  +83 
> TControl.WndProc
> 004cb03a +004fa ZeitarbeitDeluxe.Exe Controls          7271 +111 
> TWinControl.WndProc
> 004ca764 +0002c ZeitarbeitDeluxe.Exe Controls          7040   +3 
> TWinControl.MainWndProc
> 0048027c +00014 ZeitarbeitDeluxe.Exe Classes          11583   +8
StdWndProc
> 7c91eae0 +00010 ntdll.dll KiUserCallbackDispatcher
> 7e36b8fe +00044 USER32.dll SendMessageW
> 7e37f117 +11c29 USER32.dll DefWindowProcA
> 7e36f658 +00016 USER32.dll CallWindowProcA
> 004cb137 +000d7 ZeitarbeitDeluxe.Exe Controls          7301  +23 
> TWinControl.DefaultHandler
> 004c7735 +00015 ZeitarbeitDeluxe.Exe Controls          5267   +2 
> TControl.WMNCLButtonDown
> 004c70eb +002bb ZeitarbeitDeluxe.Exe Controls          5146  +83 
> TControl.WndProc
> 004cb03a +004fa ZeitarbeitDeluxe.Exe Controls          7271 +111 
> TWinControl.WndProc
> 004ca764 +0002c ZeitarbeitDeluxe.Exe Controls          7040   +3 
> TWinControl.MainWndProc
> 0048027c +00014 ZeitarbeitDeluxe.Exe Classes          11583   +8
StdWndProc
> 7e3696c2 +0000a USER32.dll DispatchMessageA
> 004e6344 +000fc ZeitarbeitDeluxe.Exe Forms             8015  +23 
> TApplication.ProcessMessage
> 004e637e +0000a ZeitarbeitDeluxe.Exe Forms             8034   +1 
> TApplication.HandleMessage
> 004e65d4 +000cc ZeitarbeitDeluxe.Exe Forms             8125  +23 
> TApplication.Run
> 00febf32 +00aea ZeitarbeitDeluxe.Exe ZeitarbeitDeluxe   649 +140 
Post Reply
about | contact