Autor |
Beitrag |
10S96
Hält's aus hier
Beiträge: 6
|
Verfasst: So 08.01.12 20:04
Hay  ich habe schon wieder Probleme mit meinem MiniPaint. In den letzten Tagen habe ich nun versucht das Programm um die "Gummilinien" zu erweitern, was leider noch nicht funktioniert hat. Ich hoffe ihr könnt mir wieder so toll helfen wie beim letzten Mal
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;
type TPaint = class(TForm) PnlWerkzeug: TPanel; BitBtnFrei: TBitBtn; BitBtnPunkt: TBitBtn; BitBtnStrecke: TBitBtn; BitBtnRechteck: TBitBtn; BitBtnEllipse: TBitBtn; procedure BitBtnPunktClick(Sender: TObject); procedure BitBtnFreiClick(Sender: TObject); procedure FormMouseDown (Sender: Tobject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer); procedure FormMouseUp (Sender: Tobject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer); procedure FormMouseMove (Sender: Tobject; Shift: TShiftState; X,Y: Integer); procedure BitBtnStreckeClick(Sender: TObject); procedure BitBtnRechteckClick(Sender: TObject);
private MausGedrueckt : Boolean; public end;
var Paint: TPaint;
implementation
{$R *.dfm}
procedure TPaint.BitBtnPunktClick(Sender: TObject); begin BitBtnPunkt.Enabled := False; BitBtnPunkt.Enabled := True;
end;
procedure TPaint.BitBtnFreiClick(Sender: TObject); begin BitBtnFrei.Enabled := False; BitBtnFrei.Enabled := True; end;
procedure TPaint.FormMouseDown (Sender:TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer); begin MausGedrueckt := True; Canvas.MoveTo(X, Y); end;
begin if BitBtnFrei.Enabled = False
then begin MausGedrueckt := True; Canvas.MoveTo (X,Y)
Canvas.Ellipse (X-1,Y-1,X+1,Y+1); end;
procedure TPaint.FormMouseMove (Sender:TObject; Shift:TShiftState; X,Y:integer);
begin if MausGedrueckt then Canvas.LineTo(X,Y) end;
procedure TPaint.FormMouseUp (Sender:TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer); begin MausGedrueckt := False end;
procedure TPaint.FormActivate (Sender: TObject); begin WindowState := wsMaximized; Canvas.Pen.Width := 2; MausGedrueckt := False; end;
procedure TPaint.BitBtnStreckeClick(Sender: TObject); begin procedure TPaint.FormMouseDown (Sender:TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer); begin MausGedrueckt := True; XAnfang := X; YAnfang := Y; XEnde := X; YEnde := Y; Canvas.MoveTo (XAnfang,YAnfang); end;
procedure TPaint.MouseMove (Sender:TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer); begin Canvas.Pen.Mode := pmNotXor; Canvas.MoveTo (XAnfang, YAnfang); Canvas.LineTo (XEnde, YEnde); Canvas.MoveTo (XAnfang, YAnfang); Canvas.LineTo (X, Y); XEnde := X; YEnde := Y; end;
end. |
Fehlermeldung
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| [Fehler] Unit1.pas(64): Undefinierter Bezeichner: 'BitBtnFrei' [Fehler] Unit1.pas(64): 'THEN' erwartet, aber Bezeichner 'Enabled' gefunden [Fehler] Unit1.pas(67): Undefinierter Bezeichner: 'MausGedrueckt' [Fehler] Unit1.pas(68): Undefinierter Bezeichner: 'Canvas' [Fehler] Unit1.pas(68): Undefinierter Bezeichner: 'X' [Fehler] Unit1.pas(71): Operator oder Semikolon fehlt [Fehler] Unit1.pas(71): Nicht genügend wirkliche Parameter [Fehler] Unit1.pas(74): Anweisung erwartet, aber 'PROCEDURE' gefunden [Fehler] Unit1.pas(88): Undefinierter Bezeichner: 'FormActivate' [Fehler] Unit1.pas(88): ';' erwartet, aber '(' gefunden [Fehler] Unit1.pas(90): Undefinierter Bezeichner: 'WindowState' [Fehler] Unit1.pas(91): Operator oder Semikolon fehlt [Fehler] Unit1.pas(99): Anweisung erwartet, aber 'PROCEDURE' gefunden [Fehler] Unit1.pas(101): Bezeichner redefiniert: 'TPaint.FormMouseDown' [Fehler] Unit1.pas(103): Undefinierter Bezeichner: 'XAnfang' [Fehler] Unit1.pas(104): Undefinierter Bezeichner: 'YAnfang' [Fehler] Unit1.pas(105): Undefinierter Bezeichner: 'XEnde' [Fehler] Unit1.pas(106): Undefinierter Bezeichner: 'YEnde' [Fehler] Unit1.pas(110): Undefinierter Bezeichner: 'MouseMove' [Fehler] Unit1.pas(113): Operator oder Semikolon fehlt [Fehler] Unit1.pas(114): Operator oder Semikolon fehlt [Fehler] Unit1.pas(114): Undefinierter Bezeichner: 'YAnfang' [Fehler] Unit1.pas(115): Operator oder Semikolon fehlt [Fehler] Unit1.pas(115): Undefinierter Bezeichner: 'YEnde' [Fehler] Unit1.pas(116): Operator oder Semikolon fehlt [Fehler] Unit1.pas(117): Operator oder Semikolon fehlt [Fehler] Unit1.pas(117): Nicht genügend wirkliche Parameter [Fehler] Unit1.pas(25): Ungenügende Forward- oder External-Deklaration: 'TPaint.BitBtnRechteckClick' [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
Danke schonmal im Voraus 
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 08.01.12 20:22
Rück den Quelltext einmal richtig ein, dann findest du den Fehler auch...
Dann sieht der nämlich so aus: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;
type TPaint = class(TForm) PnlWerkzeug: TPanel; BitBtnFrei: TBitBtn; BitBtnPunkt: TBitBtn; BitBtnStrecke: TBitBtn; BitBtnRechteck: TBitBtn; BitBtnEllipse: TBitBtn; procedure BitBtnPunktClick(Sender: TObject); procedure BitBtnFreiClick(Sender: TObject); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure BitBtnStreckeClick(Sender: TObject); procedure BitBtnRechteckClick(Sender: TObject);
private MausGedrueckt: Boolean; public end;
var Paint: TPaint;
implementation
{$R *.dfm}
procedure TPaint.BitBtnPunktClick(Sender: TObject); begin BitBtnPunkt.Enabled := False; BitBtnPunkt.Enabled := True;
end;
procedure TPaint.BitBtnFreiClick(Sender: TObject); begin BitBtnFrei.Enabled := False; BitBtnFrei.Enabled := True; end;
procedure TPaint.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MausGedrueckt := True; Canvas.MoveTo(X, Y); end;
begin if BitBtnFrei.Enabled = False
then begin MausGedrueckt := True; Canvas.MoveTo(X, Y)
Canvas.Ellipse(X - 1, Y - 1, X + 1, Y + 1); end;
procedure TPaint.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin if MausGedrueckt then Canvas.LineTo(X, Y) end;
procedure TPaint.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MausGedrueckt := False end;
procedure TPaint.FormActivate(Sender: TObject); begin WindowState := wsMaximized; Canvas.Pen.Width := 2; MausGedrueckt := False; end;
procedure TPaint.BitBtnStreckeClick(Sender: TObject); begin
procedure TPaint.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MausGedrueckt := True; XAnfang := X; YAnfang := Y; XEnde := X; YEnde := Y; Canvas.MoveTo(XAnfang, YAnfang); end;
procedure TPaint.MouseMove(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Canvas.Pen.Mode := pmNotXor; Canvas.MoveTo(XAnfang, YAnfang); Canvas.LineTo(XEnde, YEnde); Canvas.MoveTo(XAnfang, YAnfang); Canvas.LineTo(X, Y); XEnde := X; YEnde := Y; end;
end. | Was gehört denn jetzt zu welcher Methode? Speziell die Wörter begin und end.
|
|
10S96 
Hält's aus hier
Beiträge: 6
|
Verfasst: So 08.01.12 21:30
Tut mir Leid ich sehe es immer noch nicht!
(Sorry, dass ich mich so dumm anstelle. Es ist das erste Mal, dass ich selbst programmiere.)
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 08.01.12 21:43
Dort ist FormMouseDown zu Ende... alles was danach kommt hängt frei in der Unit, deshalb kann Delphi damit nix anfangen. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66:
| procedure TPaint.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MausGedrueckt := True; Canvas.MoveTo(X, Y); end;
begin if BitBtnFrei.Enabled = False
then begin MausGedrueckt := True; Canvas.MoveTo(X, Y)
Canvas.Ellipse(X - 1, Y - 1, X + 1, Y + 1); end;
procedure TPaint.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin if MausGedrueckt then Canvas.LineTo(X, Y) end;
procedure TPaint.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MausGedrueckt := False end;
procedure TPaint.FormActivate(Sender: TObject); begin WindowState := wsMaximized; Canvas.Pen.Width := 2; MausGedrueckt := False; end;
procedure TPaint.BitBtnStreckeClick(Sender: TObject); begin
procedure TPaint.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MausGedrueckt := True; XAnfang := X; YAnfang := Y; XEnde := X; YEnde := Y; Canvas.MoveTo(XAnfang, YAnfang); end;
procedure TPaint.MouseMove(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Canvas.Pen.Mode := pmNotXor; Canvas.MoveTo(XAnfang, YAnfang); Canvas.LineTo(XEnde, YEnde); Canvas.MoveTo(XAnfang, YAnfang); Canvas.LineTo(X, Y); XEnde := X; YEnde := Y; end;
end. |
|
|
10S96 
Hält's aus hier
Beiträge: 6
|
Verfasst: So 08.01.12 22:18
Also muss ich nur das `End` entfernen?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 08.01.12 22:43
Naja, das musst du ja wissen von wo bis wo deine Methode gehen soll.
Vermutlich meintest du das aber so, ja. Dann ist da aber immer noch ein begin zu viel und hinter dem Code von FormMouseDown muss das end natürlich dann irgendwo hin.
|
|
|