View Issue Details

IDProjectCategoryView StatusLast Update
0004349JEDI VCL00 JVCL Componentspublic2008-03-05 08:01
ReporterfranklinhautAssigned Toobones 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionDaily / GIT 
Target VersionFixed in Version3.34 
Summary0004349: JVMenu D7 "Canvas does not allow drawing"
DescriptionAfter upgrading to last revision the error persist, same case at Mantis 0004347

a new screenshot attached

if you need I can dispose more data or a WTS conection.
(send me a mail to franklin.haut@gmail.com )



TagsNo tags attached.

Activities

2008-02-21 07:47

 

error5.JPG (80,836 bytes)
error5.JPG (80,836 bytes)

franklinhaut

2008-02-21 08:00

reporter   ~0014262

wait, is something wrong where, a can´t reproduce again... return the issue to me.

obones

2008-02-21 08:23

administrator   ~0014263

Please try adding back DCX_CACHE in the call to GetDCEx and let me know if this helps.

obones

2008-02-21 08:58

administrator   ~0014264

Ah ok

franklinhaut

2008-02-21 10:05

reporter   ~0014265

Hi,

the error occurs again, using DCX_CACHE the menus are wrong painted

I produced the video to show whats happen in the two situations

http://giro.no-ip.info:8000/JVMenuError/JVMenuError.html

obones

2008-03-04 04:31

administrator   ~0014271

Can you tell me if it works with the very latest SVN version?

franklinhaut

2008-03-04 18:45

reporter   ~0014275

Using the revision 11747 (last at moment), and patching file on 0004352 the problem continues... can i help with some more information ?


ps.: its possible get a commit user on SVN to help on small implementations ?

franklinhaut

2008-03-05 06:00

reporter   ~0014281

I build a executable on my machine and does not work (same message "Canvas does not allow drawing") then i copy the same executable to another machine using XP too, and the message doesn't appear.


After removing the implementation on JVMenus lines 3688~3705 that work in the two machines...

source removed:
          DC := GetDCEx(CanvasWindow, 0, (*DCX_CACHE or *)DCX_WINDOW);
          try
            if not Assigned(FBorderCanvas) then
            begin
              LastError := GetLastError;
              if (DC = 0) and (LastError = ERROR_SUCCESS) then
                FBorderCanvas := TJvDesktopCanvas.Create
              else
                FBorderCanvas := TControlCanvas.Create;
              FBorderCanvas.Handle := DC;
            end;

            if FBorderCanvas.Handle <> DC then
              FBorderCanvas.Handle := DC;
            DrawBorder(FBorderCanvas, WRect);
          finally
            ReleaseDC(CanvasWindow, DC);
          end;

obones

2008-03-05 07:12

administrator   ~0014282

Yes, but removing this you no longer have the borders.
However, I think you can solve the problem by putting back the code then remove this

              if (DC = 0) and (LastError = ERROR_SUCCESS) then
                FBorderCanvas := TJvDesktopCanvas.Create
              else
                FBorderCanvas := TControlCanvas.Create;


and replace with this
              FBorderCanvas := TJvDesktopCanvas.Create;

That should solve the problem on both your machines.

franklinhaut

2008-03-05 07:33

reporter   ~0014283

yes, thats works in all machines, you can commit this changes ?

obones

2008-03-05 08:01

administrator   ~0014284

The changes are now in SVN

Issue History

Date Modified Username Field Change
2008-02-21 07:47 franklinhaut New Issue
2008-02-21 07:47 franklinhaut File Added: error5.JPG
2008-02-21 08:00 franklinhaut Note Added: 0014262
2008-02-21 08:23 obones Note Added: 0014263
2008-02-21 08:23 obones Status new => feedback
2008-02-21 08:58 obones Status feedback => resolved
2008-02-21 08:58 obones Resolution open => unable to reproduce
2008-02-21 08:58 obones Assigned To => obones
2008-02-21 08:58 obones Note Added: 0014264
2008-02-21 10:05 franklinhaut Status resolved => feedback
2008-02-21 10:05 franklinhaut Resolution unable to reproduce => reopened
2008-02-21 10:05 franklinhaut Note Added: 0014265
2008-03-04 04:31 obones Note Added: 0014271
2008-03-04 18:45 franklinhaut Note Added: 0014275
2008-03-05 06:00 franklinhaut Note Added: 0014281
2008-03-05 07:12 obones Note Added: 0014282
2008-03-05 07:33 franklinhaut Note Added: 0014283
2008-03-05 08:01 obones Status feedback => resolved
2008-03-05 08:01 obones Fixed in Version => Daily / SVN
2008-03-05 08:01 obones Resolution reopened => fixed
2008-03-05 08:01 obones Note Added: 0014284