Avatar billede kinginkvong Nybegynder
15. september 2006 - 21:44 Der er 5 kommentarer

"Canvas does not allow drawing"

Jeg har det problem, at når jeg vil tegne til en variabel af typen TCanvas, så får jeg fejl meddelelsen ”Canvas does not allow drawing”.

Min kode ser således ud:

var
  Cv : Tcanvas;
begin
  Cv := Tcanvas.Create;
try
  Cv.Font.Size := 12;

  Cv.TextOut(10, 10, 'tttt');
finally
  Cv.Free;
  end;

Er der nogen der ved hvad jeg kan gøre, for at undgå fejlen?
Avatar billede kroning Nybegynder
16. september 2006 - 00:13 #1
Prøv med:

var
  Cv : Tcanvas;
  notUsed: HWND;
begin
  Cv := Tcanvas.Create;
    Cv.Handle:=GetDeviceContext(notUsed);
try
  Cv.Font.Size := 12;
  Cv.TextOut(10, 10, 'tttt');
finally
  Cv.Free;
  end;
end;

Men hvorfor ikke bruge en TPaintBox i stedet?
Avatar billede kinginkvong Nybegynder
16. september 2006 - 20:45 #2
Delphi vil ikke acceptere GetDeviceContext.
Avatar billede kroning Nybegynder
17. september 2006 - 07:44 #3
Jeg bruger Delphi 7, hvad bruger du? I D7 findes GetDeviceContext i Controls uniten.
Avatar billede dkn Nybegynder
18. september 2006 - 16:20 #4
Du prøver ikke at gøre dette fra en thread? eller et threaded komponent med en event?
Avatar billede kinginkvong Nybegynder
18. september 2006 - 19:06 #5
Jeg bruger også Delphi 7 og jeg har tilføjet Controls under Uses min unit.

Imidlertid har jeg dog valgt, at bruge TPaintBox eller TBitmap i stedet, som kroning foreslog, så mit problem er løst.


Nej jeg køre koden med en procedure, som jeg har liggende i en ekstern unit, og jeg kalder denne procedure under eventen Onclick for en knap på min form.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester