![]() |
Delphi XE2 Canvas Fehler, die keine sind
Moin,
ich habe ein merkwürdiges Problem mit Delphi XE2. Für eine Seminaraufgabe muss ich ein einwandfrei kompilierbares (also ohne Fehler oder Warnungen) Projekt abgeben. Im Projekt muss ich Canvas verwenden, um Rechtecke und Kreise zu zeichnen. Ich habe also einfach eine neue VCL-Anwendung erstellt und ohne irgendetwas manuell einzubinden Code wie den folgendenen zusammengeschrieben:
Delphi-Quellcode:
Das Projekt beeinhaltet also nur die Units
FMain.Canvas.Ellipse(10,10,20,20);
Delphi-Quellcode:
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
Das Problem ist nun, dass sich das Projekt kompilieren lässt und auch einwandfrei funktioniert, aber: An jeder Stelle im Code, wo ich *.Canvas. verwende, taucht der Fehler "Undeklarierter Bezeichner 'Ellipse' in Zeile..." auf. Ellipse ist durch den jeweiligen Bezeichner nach "Canvas." zu ersetzen. Mein gesamtes Projekt besteht nun schon aus 11 "Undeklarierter Bezeichner"-Fehlern, obwohl ich nur einen Kreis in der Form mit den Pfeiltasten verschieben kann. Warum taucht der Fehler immer wieder auf, obwohl es eigentlich gar kein Fehler ist? Habe ich irgendetwas vergessen oder übersehen? Gruß me123 |
AW: Delphi XE2 Canvas Fehler, die keine sind
Zeig doch mal den Originalcode.
|
AW: Delphi XE2 Canvas Fehler, die keine sind
Delphi-Quellcode:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls; type TForm1 = class(TForm) procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormPaint(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var FMain: TForm1; x,y,big:word; implementation {$R *.dfm} procedure clearCanvas(); begin FMain.Canvas.Brush.Color := clBtnFace; FMain.Canvas.FillRect(FMain.Canvas.ClipRect); end; procedure enter(); begin clearCanvas(); if big >= 5 then begin big := big - 5; FMain.Canvas.Ellipse(x,y,big+x,big+y); end; end; procedure leer(); begin clearCanvas(); big := big + 5; FMain.Canvas.Ellipse(x,y,big+x,big+y); end; procedure links(var x:word); begin clearCanvas(); dec(x); FMain.Canvas.Ellipse(x,y,big+x,big+y); end; procedure hoch(var y:word); begin clearCanvas(); dec(y); FMain.Canvas.Ellipse(x,y,big+x,big+y); end; procedure rechts(var x:word); begin clearCanvas(); inc(x); FMain.Canvas.Ellipse(x,y,big+x,big+y); end; procedure runter(var y:word); begin clearCanvas(); inc(y); FMain.Canvas.Ellipse(x,y,big+x,big+y); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (x > 0) AND (y > 0) then begin case Key of 13: enter(); 32: leer(); 37: links(x); 38: hoch(y); 39: rechts(x); 40: runter(y); end; end else begin if x <= 0 then x := 1; if y <= 0 then y := 1; end; end; procedure TForm1.FormPaint(Sender: TObject); begin FMain.Canvas.Ellipse(x,y,big+x,big+y); end; initialization x := 200; y := 200; big := 20; end. |
AW: Delphi XE2 Canvas Fehler, die keine sind
Zitat:
|
AW: Delphi XE2 Canvas Fehler, die keine sind
Error Insight eventuell?
|
AW: Delphi XE2 Canvas Fehler, die keine sind
Hi,
ich kenne dieses Problem auch - massenweise Fehlerhinweise (rote Wellenlinie), daß diese oder jene Eigenschaft nicht bekannt ist - aber das Programm läßt sich kompilieren und läuft dann auch! Die Fehler werden im Objektinspektor und im Quellcode angezeigt, stören aber nicht. Ich denke, daß das irgendwas mit den Pfadeinstellungen zu tun hat -. Zumindestens nervt das. Gruß Uwe |
AW: Delphi XE2 Canvas Fehler, die keine sind
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: Delphi XE2 Canvas Fehler, die keine sind
[OT]
diese FMain-Bezüge sind grauslig .... [/OT] |
AW: Delphi XE2 Canvas Fehler, die keine sind
Zitat:
|
AW: Delphi XE2 Canvas Fehler, die keine sind
Mach doch aus den regulären Prozeduren besser Methoden von TForm1, dann musst Du auch nicht mehr auf die globale Variable zugreifen. Und diese Wellenlinien kommen von ErrorInsight, das hat noch nie zuverlässig funktioniert. Wenn der Compiler nichts zu meckern hat, ist auch der Code syntaktisch in Ordnung.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 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-2025 by Thomas Breitkreuz