![]() |
"identifier" expected but "BEGIN" found
Hallo, ich bin relativ unerfahren mit freePascal.
Bei der Arbeit mit meinem Projekt, bin auf ein Problem gestoßen, kann nur leider die Lösung nicht finden :( Hier einmal der Fehler: Zitat:
und hier der quelltext:
Delphi-Quellcode:
unit obj_colorfilter;
interface uses Classes, SysUtils, Graphics; type ColorFilter = Object //allgemeine Variebelen (private) private filterColor: TColor; toleranzRed, toleranzYellow, toleranzBlue: Integer; function start (const bmp : TBitmap) : TBitmap; //bitmap Koordinaten var x, y: Integer; maches: Boolean; begin //navigation in der Bitmap for x:= 0 to bmp.Width-1 do begin for y:= 0 to bmp.Height-1 do begin matches:= false; //filtern der Farbe in Verbindung mit der Toleranz: color:= bmp.Canvas.Pixels(x, y); if(Red(color) > Red(filterColor)-toleranzRed & Red(color) < Red(filterColor)+toleranzRed) begin color:= bmp.Canvas.Pixels(x, y); if(Blue(color) > Blue(filterColor)-toleranzBlue & Blue(color) < Blue(filterColor)+toleranzBlue) begin color:= bmp.Canvas.Pixels(x, y); matches:= true; end; end; if(Yellow(color) > Yellow(filterColor)-toleranzYellow & Yellow(color) < Yellow(filterColor)+toleranzYellow) bmp.Canvas.Pixels[x, y].RGBToColor(255, 255, 255); else bmp.Canvas.pixels[x, y].RGBToColor(0, 0, 0); end; end; //rückgabe start:= bmp; end; //setters ---------------------------------------------------------------------- function setColor(value: TColor) begin color:= valu; end; function setTolleranz(red, yellow, blue: Integer) begin toleranzRed:= red; toleranzYellow:= yellow; toleranzBlue:= blue; end; //Create & destroy ------------------------------------------------------------- Constructor Init(color: TColor) begin filterColor:= color; end; Destructor CleanUp; end. Ach und bevor ich es vergesse, meine freePascal Version: FPC-Version 3.0.0 vielen Dank schon einmal im vorraus. :thumb: |
AW: "identifier" expected but "BEGIN" found
|
AW: "identifier" expected but "BEGIN" found
Moin,
erst einmal herzlich Willkommen hier in der Delphi-Praxis. Die genaue Syntax von Freepascal kenne ich zwar auch nicht, aber für mein Verständnis müsste das, verallgemeinert, so aussehen:
Delphi-Quellcode:
Type
Typenbezeichner = class private Felddeklarationen Methodenköpfe protected public constructor destructor end; implementation Implementierung der Methoden |
AW: "identifier" expected but "BEGIN" found
Zitat:
Zitat:
melde mich wenn ich das fertig hab xD |
AW: "identifier" expected but "BEGIN" found
danke,
ich habe jetzt einen Haufen anderer Fehler, aber endlich sind es welche die ich verstehe xD |
AW: "identifier" expected but "BEGIN" found
:thumb::dp:
|
AW: "identifier" expected but "BEGIN" found
Zitat:
Und vor ELSE gehört kein ; Der ganze Code sieht nach einer schlechten Übersetzung aus C/C++ aus. Und wie bereits erkannt, kommt der Fehler von diesem BEGIN, also Implementation im Interface, was ja nicht geht. Zitat:
|
AW: "identifier" expected but "BEGIN" found
Das "&" Symbol gibt es in Delphi in dem Zusammenhang nicht. Dafür benutzt du das Schlüsselwort
Delphi-Quellcode:
.
and
Delphi-Quellcode:
if ((a and b) = c) then begin
// Do something end; |
AW: "identifier" expected but "BEGIN" found
Zitat:
Aber der Quelltext da oben... ich bin kein professioneller Programmierer oder so und mache viele Fehler. Aber der Quelltext da oben ist ein Verbrechen :stupid: Nicht vom Inhalt her sondern von der Syntax und vom Stil. |
AW: "identifier" expected but "BEGIN" found
Ohh, daß kleine & hatte ich glatt übersehn ... tja, wie gesagt, eine schlechte C-Übersetung :lol:
[QUOTE=Jim Carrey;1353067] Zitat:
Der Grund für die erwähnten nötigen Klammen: In Delphi ist Konkator (and or xor) höherrangiger, als ein Vergleich (<>=). AND wird vor < oder > ausgewertet und in C/C++ ist das halt andersrum. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 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