Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Kreis zeichnen (https://www.delphipraxis.net/11891-kreis-zeichnen.html)

2va 16. Nov 2003 12:56


Kreis zeichnen
 
ich bin leider noch Anfänger im Umgang mit Delphi und kenne mich folgich noch nicht so richtig mit den Befehlen aus.
Ich soll in eine Art "Paint"-Programm einen Kreis zeichen lassen. Dies soll nach Drücken eines Buttons auf der Imagekomponente geschehen und zwar dort wo man mit der Maus den "Startpunkt" und den Endpunkt setzt.
Ich hab schon was versucht, was allerdings nicht ganz bzw. garnicht funktioniert.
Delphi-Quellcode:
//Kreis
  if KreisButton.Down and (Shift =[ssleft]) then
     begin Lox:=X;Loy:=Y; first:=true end;
teil eins
//Kreis
  if KreisButton.Down and (shift=[ssleft]) then
    begin
     image1.Canvas.Pen.Mode:=pmNotXor;
     if not first then image1.Canvas.Ellipse(Lox,Loy,AltX,Alty);
     image1.Canvas.Ellipse(Lox,Loy,X,Y);
     AltX:=X;AltY:=Y;
     first:=false
    end;
teil zwei
//Kreis
  if KreisButton.Down then
  begin
  image1.Canvas.Pen.Mode:=pmCopy
  image1.Canvas.Ellipse(Lox,Loy,X,Y);
  end;
teil drei
Der Fehler tritt im dritten Teil auf und lautet
[Fehler] Grafik4mn.pas(202): Operator oder Semikolon fehlt

was kann man da machen??? Ich bin echt ratlos

Mirilin 16. Nov 2003 12:59

Re: Kreis zeichnen
 
:hi:

Delphi-Quellcode:
if KreisButton.Down then
* begin
* image1.Canvas.Pen.Mode:=pmCopy <-- hier fehlt ein Semikolon
* image1.Canvas.Ellipse(Lox,Loy,X,Y);
* end;

Daniel B 16. Nov 2003 13:00

Re: Kreis zeichnen
 
Hallo und herzlich Willkommen in der DP.

Du hast "teil eins" und "teil zwei" einfach so mitten drin reingeschrieben. Das ist aber kein Befehl und nix, also mach // davor, dann sind es Kommentare.

Christian Seehase 16. Nov 2003 13:06

Re: Kreis zeichnen
 
Moin 2va,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Zitat:

Zitat von 2va
[Fehler] Grafik4mn.pas(202): Operator oder Semikolon fehlt

Zitat:

Zitat von 2va
was kann man da machen???

Ein Semikolon setzen...

I.d.R. muss jede Programmzeile mit einem ; abgeschlossen werden, damit der Compiler erkennen kann, wo ein Statement endet, da man die logisch zusammenhängenden Zeilen über mehrere physikalische Zeilen verteilen kann.

z.B.:

Delphi-Quellcode:
image1.Canvas.Pen.Mode:=pmNotXor;
kann auch geschrieben werden:

Delphi-Quellcode:
image1.Canvas.Pen.Mode
:=
pmNotXor
;
nicht schön, aber machbar. Wo die logische Zeile endet wird mit dem ; markiert.

Bei der genannten Fehlermeldung muss man dann vor der angegebenen Zeile nach dem fehlenden ; (oder ggf. Operator, dürfte wohl aber nur selten der Fall sein) suchen.

Schau Dir also am besten noch einmal den letzten Abschnitt Deines Codeschnipsels an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz