Autor Beitrag
ansc
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 24.01.05 16:11 
Hy Leute,
bin grad in der Schule dabei, ein Minipaint Programm zu entwerfen hab aber ein Problem: Das mit der Form klappt zwar alles aber er zeichnet nix wenn ich das Programm starte. Hier mal der Code

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:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
unit pMiniPaint;

interface

uses
  Windows, Messages, SysUtils, 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 BitBtnFreiClick(Sender: TObject);
    procedure BitBtnPunktClick(Sender: TObject);
    procedure FormMouseMove (Sender:TObject; Shift:TShiftState; X,Y:Integer) ;
    procedure FormMouseUp (Sender:TObject; Button:TMouseButton;
                            Shift:TShiftState; X,Y:Integer) ;
    procedure FormMouseDown (Sender:TObject; Button:TMouseButton;
                            Shift:TShiftState; X,Y:Integer) ;
    procedure FormActivate(Sender: TObject);
    procedure BitBtnStreckeClick(Sender: TObject);
    procedure BitBtnRechteckClick(Sender: TObject);
    procedure BitBtnEllipseClick(Sender: TObject);
  private
    { Private-Deklarationen }
    MausGedrueckt: Boolean;
    XAnfang, YAnfang, XEnde, YEnde: Integer;

  public
    { Public-Deklarationen }
  end;

var
  Paint: TPaint;

implementation

{$R *.DFM}

procedure TPaint.FormActivate (Sender: TObject);
begin
     WindowState := wsMaximized;
     Canvas.Pen.Width := 2;
     MausGedrueckt := False;
end;


procedure TPaint.BitBtnFreiClick(Sender: TObject);
begin
BitBtnFrei.Enabled := False;
BitBtnPunkt.Enabled := True;
BitBtnStrecke.Enabled := True;
BitBtnEllipse.Enabled := True;
BitBtnRechteck.Enabled := True;
end;

procedure TPaint.BitBtnPunktClick(Sender: TObject);
begin
BitBtnFrei.Enabled := True;
BitBtnPunkt.Enabled := False;
BitBtnStrecke.Enabled := True;
BitBtnEllipse.Enabled := True;
BitBtnRechteck.Enabled := True;
end;


procedure TPaint.FormMouseDown (Sender:TObject; Button:TMouseButton;
                            Shift:TShiftState; X,Y:Integer) ;
begin
     if BitBtnFrei.Enabled = False
     then begin
     MausGedrueckt := True;
     XAnfang := X;
     YAnfang := Y;
     XEnde := X;
     YEnde := Y;
     Canvas.MoveTo (XAnfang,YAnfang)
     end
     else     
      Canvas.Ellipse (X-1,Y-1,X+1,Y+1)
      end

    
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.BitBtnStreckeClick(Sender: TObject);
begin
BitBtnFrei.Enabled := True;
BitBtnPunkt.Enabled := True;
BitBtnStrecke.Enabled := False;
BitBtnEllipse.Enabled := True;
BitBtnRechteck.Enabled := True;
end;

procedure TPaint.BitBtnRechteckClick(Sender: TObject);
begin
BitBtnFrei.Enabled := True;
BitBtnPunkt.Enabled := True;
BitBtnStrecke.Enabled := True;
BitBtnEllipse.Enabled := True;
BitBtnRechteck.Enabled := False;
end;

procedure TPaint.BitBtnEllipseClick(Sender: TObject);
begin
BitBtnFrei.Enabled := True;
BitBtnPunkt.Enabled := True;
BitBtnStrecke.Enabled := True;
BitBtnEllipse.Enabled := False;
BitBtnRechteck.Enabled := True;
end;

end.


erstmal hab ich versucht nur punkt und freihand zu zeichnen, aber selbst da streikt er,
sieht jemand von euch den fehler? hab meinen lehrer gefragt, der wusste es aber auch net,
danke schonmal im vorraus,
mfg anna

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 25.01.05 12:18 
Also was ich sofort sehe, ist, dass der Code so gar nicht kompilierbar ist! Entweder in Zeile 84 gehört noch ein begin oder in Zeile 86 das end weg.

Na gut, aber das verursacht nicht den Fehler...

Setz mal einen Haltepunkt auf Zeile 95.
Ich vermute, dass dort MausGedrueckt False ist und deshalb das LineTo niemals ausgeführt wird. :idea:
Wenn das Programm dort ankommt, seh ich im Moment auch keinen Fehler... :shock: :oops: