Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi XE2 Canvas Fehler, die keine sind (https://www.delphipraxis.net/166931-delphi-xe2-canvas-fehler-die-keine-sind.html)

me123 6. Mär 2012 12:15

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:
FMain.Canvas.Ellipse(10,10,20,20);
Das Projekt beeinhaltet also nur die Units
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

DeddyH 6. Mär 2012 12:20

AW: Delphi XE2 Canvas Fehler, die keine sind
 
Zeig doch mal den Originalcode.

me123 6. Mär 2012 12:24

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.

SirThornberry 6. Mär 2012 12:24

AW: Delphi XE2 Canvas Fehler, die keine sind
 
Zitat:

Zitat von me123 (Beitrag 1154751)
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.

Irgendwas stimmt an der Aussage nicht. Entweder lässt es sich ohne Fehler kompilieren (exe-datei etc. entsteht) oder der Compiler bringt beim compilieren Fehler wie "Undeklarierter Bezeichner..."

FaTaLGuiLLoTiNe 6. Mär 2012 12:27

AW: Delphi XE2 Canvas Fehler, die keine sind
 
Error Insight eventuell?

DrUArn 6. Mär 2012 12:33

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

me123 6. Mär 2012 12:34

AW: Delphi XE2 Canvas Fehler, die keine sind
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von SirThornberry (Beitrag 1154754)
Irgendwas stimmt an der Aussage nicht. Entweder lässt es sich ohne Fehler kompilieren (exe-datei etc. entsteht) oder der Compiler bringt beim compilieren Fehler wie "Undeklarierter Bezeichner..."

Genau das ist ja das merkwürdige. Beides trifft zu: *.exe etc entsteht UND Fehler tauchen auf (siehe Anhang).

Bummi 6. Mär 2012 12:35

AW: Delphi XE2 Canvas Fehler, die keine sind
 
[OT]
diese FMain-Bezüge sind grauslig ....
[/OT]

me123 6. Mär 2012 12:47

AW: Delphi XE2 Canvas Fehler, die keine sind
 
Zitat:

Zitat von Bummi (Beitrag 1154762)
diese FMain-Bezüge sind grauslig ....

Ich weiß. Sind nur die ersten Tests, damit es schneller geht - habe lange nicht mehr mit Delphi gearbeitet und muss erstmal wieder reinkommen. Wenn später das "richtige" Projekt entsteht, arbeite ich sauberer.

DeddyH 6. Mär 2012 12:47

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.
Seite 1 von 2  1 2      

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