AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [delphix] ctrl-alt-del fehler canvas does not allow drawing
Thema durchsuchen
Ansicht
Themen-Optionen

[delphix] ctrl-alt-del fehler canvas does not allow drawing

Ein Thema von mikeSK · begonnen am 20. Nov 2008 · letzter Beitrag vom 20. Nov 2008
 
mikeSK

Registriert seit: 20. Nov 2008
4 Beiträge
 
#10

Re: [delphix] ctrl-alt-del fehler canvas does not allow draw

  Alt 20. Nov 2008, 16:44
Also ich benutzte CPU listing.
Problem ist in diese Funktion: TCanvas.RequiredState

Google kann helfen. Auch in Delphi Code gibt es Bugs:
http://qc.codegear.com/wc/qcmain.aspx?d=5132
Aber dieser Bug hilft nicht.

Dann habe ich diese Procedure gefixt (in Graphics.pas):
Es funkcioniert sehr gut, aber ich muss noch ein paar Teste machen.

OLD PROCEDURE

Delphi-Quellcode:
procedure TCanvas.RequiredState(ReqState: TCanvasState);
var
  NeededState: TCanvasState;
begin
  NeededState := ReqState - State;
  if NeededState <> [] then
  begin
    if csHandleValid in NeededState then
    begin
      CreateHandle;
      if FHandle = 0 then
        raise EInvalidOperation.CreateRes(@SNoCanvasHandle);
    end;
    if csFontValid in NeededState then CreateFont;
    if csPenValid in NeededState then CreatePen;
    if csBrushValid in NeededState then CreateBrush;
    State := State + NeededState;
  end;
end;
NEW PROCEDURE

Delphi-Quellcode:
procedure TCanvas.RequiredState(ReqState: TCanvasState);
var
  NeededState: TCanvasState;
begin
  NeededState := ReqState - State;
  if NeededState <> [] then
  begin
    if csHandleValid in NeededState then
    begin
      CreateHandle;
      if FHandle = 0 then exit; //// ---- CHANGED LINE
      // raise EInvalidOperation.CreateRes(@SNoCanvasHandle); ////---- LINE SKIPPED
    end;
    if csFontValid in NeededState then CreateFont;
    if csPenValid in NeededState then CreatePen;
    if csBrushValid in NeededState then CreateBrush;
    State := State + NeededState;
  end;
end;
[edit=Admin]Delphi-Tags ergänzt. Künftig bitte selber machen, danke. Mfg, Daniel[/edit]
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz