Autor Beitrag
10S96
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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
ausblenden volle Höhe 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:
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
    { Private-Deklarationen }
    MausGedrueckt : Boolean;
  public
    { Public-Deklarationen }
  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
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 08.01.12 20:22 
Rück den Quelltext einmal richtig ein, dann findest du den Fehler auch... :roll:

Dann sieht der nämlich so aus:
ausblenden volle Höhe 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:
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
    { Private-Deklarationen }
    MausGedrueckt: Boolean;
  public
    { Public-Deklarationen }
  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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 08.01.12 21:30 
Tut mir Leid ich sehe es immer noch nicht! :oops:
(Sorry, dass ich mich so dumm anstelle. Es ist das erste Mal, dass ich selbst programmiere.)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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.
ausblenden volle Höhe 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:
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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 08.01.12 22:18 
Also muss ich nur das `End` entfernen?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 08.01.12 22:43 
Naja, das musst du ja wissen von wo bis wo deine Methode gehen soll. :nixweiss:

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.