Autor Beitrag
ss396
Hält's aus hier
Beiträge: 4

Win7
Delphi 2005, Delphi 2007, WinLogo, HTML Editor
BeitragVerfasst: Di 26.06.12 20:04 
Hallo,

ich habe ein kleines problem und wollte Fragen ob mal jemand über meinen Quelltext gucken kann, da ich mithilfe eines Informatik Buches ein MiniPaint programmieren möchte. Meine Endversion sieht auch so aus wie die Musterlösung des Buches, trotzdem werden mir Fehler angezeigt.(der Fehler liegt bei der alleschaltflaechenaktiv prozedur. Dort kennt der die ANwendungen nicht.)

Danke im voraus!

ss396

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:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Buttons;

const Rot       =clRed;
      Gelb      =clYellow;
      Gruen     =clGreen;
      Blau      =clBlue  ;
      Schwarz   =clBlack  ;
      Grau      =clGray    ;

const Freihand             = 1;
      Punkt                = 2;
      Linie                = 3;
      Rechteck             = 4;
      Ellipse              = 5;
      RechteckTransparent  = 6;
      EllipseTransparent   = 7;

type
  TPaint = class(TForm)
    BitBtnRechteck: TBitBtn;
    BitBtnFreihand: TBitBtn;
    BitBtnEllipse: TBitBtn;
    BitBtnLinie: TBitBtn;
    BitBtnPunkt: TBitBtn;
    BitBtnRot: TBitBtn;
    BitBtnGelb: TBitBtn;
    BitBtnGruen: TBitBtn;
    BitBtnBlau: TBitBtn;
    BitBtnSchwarz: TBitBtn;
    BitBtnRechteckTransparent: TBitBtn;
    BitBtnEllipseTransparent: TBitBtn;
    Panel1: TPanel;


  procedure FormMouseDown (Sender: TObject;Button:TMouseButton;Shift:TShiftState; X,Y:integer);
  procedure FormMouseMove (Sender:TObject; Shift:TShiftState; X,Y:integer);
  procedure FormMouseUp (Sender:TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer);
    procedure BitBtnRechteckClick(Sender: TObject);
    procedure BitBtnFreihandClick(Sender: TObject);
    procedure BitBtnEllipseClick(Sender: TObject);
    procedure BitBtnLinieClick(Sender: TObject);
    procedure BitBtnPunktClick(Sender: TObject);
    procedure BitBtnRechteckTransparentClick(Sender: TObject);
    procedure BitBtnEllipseTransparentClick(Sender: TObject);
    procedure BitBtnRotClick(Sender: TObject);
    procedure BitBtnGelbClick(Sender: TObject);
    procedure BitBtnGruenClick(Sender: TObject);
    procedure BitBtnBlauClick(Sender: TObject);
    procedure BitBtnSchwarzClick(Sender: TObject);

  private
  MausGedrueckt :Boolean;
  XAnfang, YAnfang, XEnde, YEnde :Integer;
  Zeichenfarbe: TColor;
  Zeichenart: Integer;
    { Private-Deklarationen }
  public
  procedure AlleSchaltflaechenAktiv;
    { Public-Deklarationen }
  end;

var
  Paint: TPaint;
  MausGedrueckt :Boolean;
  XAnfang, YAnfang, XEnde, YEnde :Integer;
  Zeichenfarbe: TColor;
  Zeichenart: Integer;

implementation

{$R *.DFM}


procedure TPaint.AlleSchaltflaechenAktiv;
BitBtnRechteck.Enabled:=true
BitBtnFreihand.Enabled:=true
BitBtnLinie.Enabled:=true
BitBtnEllipse.Enabled:=true
BitBtnPunkt.Enabled:=true
BitBtnRechtecktransparent.Enabled:=true
BitBtnEllipseTransparent.Enabled:=true
end;
procedure TPaint.BitBtnRechteckClick(Sender: TObject);
begin
AlleSchaltflaechenAktiv;
BitBtnRechteck.Enabled:=False;
Zeichenart:= Rechteck ;
//PanStatus.Caption:=' Zeichenart: Rechteck'
end;

procedure TPaint.BitBtnFreihandClick(Sender: TObject);
begin
AlleSchaltflaechenAktiv;
BitBtnfreihand.Enabled:=False;
Zeichenart:= Freihand ;
//PanStatus.Caption:=' Zeichenart: Freihand'
end;

procedure TPaint.BitBtnEllipseClick(Sender: TObject);
begin
AlleSchaltflaechenAktiv;
BitBtnEllipse.Enabled:=False;
Zeichenart:= Ellipse ;
//PanStatus.Caption:=' Zeichenart: Ellipse'
end;

procedure TPaint.BitBtnLinieClick(Sender: TObject);
begin
AlleSchaltflaechenAktiv;
BitBtnlinie.Enabled:=False;
Zeichenart:= Linie ;
//PanStatus.Caption:=' Zeichenart: linie'
end;

procedure TPaint.BitBtnPunktClick(Sender: TObject);
begin
AlleSchaltflaechenAktiv;
BitBtnPunkt.Enabled:=False;
Zeichenart:= Punkt ;
//PanStatus.Caption:=' Zeichenart: Punkt'
end;

procedure TPaint.BitBtnRechteckTransparentClick(Sender: TObject);
begin
AlleSchaltflaechenAktiv;
BitBtnRechteckTransparent.Enabled:=False;
Zeichenart:= RechteckTransparent ;
//PanStatus.Caption:=' Zeichenart: RechteckTransparent'
end;

procedure TPaint.BitBtnEllipseTransparentClick(Sender: TObject);
begin
AlleSchaltflaechenAktiv;
BitBtnEllipseTransparent.Enabled:=False;
Zeichenart:= EllipseTransparent ;
//PanStatus.Caption:=' Zeichenart: EllipseTransparent'
end;


procedure TPaint.FormMouseDown (Sender: TObject;Button:TMouseButton;Shift:TShiftState; X,Y:integer);
 begin
 MausGedrueckt:=True;
 case Zeichenart of
      Punkt:     begin
                      Canvas.Pen.Color:=Zeichenfarbe;
                      Canvas.Ellipse (x-2,y-2, x+2,y+2);
                 end;
      Freihand:  begin
                      Canvas.Pen.Color:=zeichenfarbe;
                 end;
      Linie,
      Rechteck,
      Ellipse,
      RechteckTransparent,
      EllipseTransparent:  begin
                                Canvas.Pen.Color:=Grau;
                                Canvas.Pen.Mode:=pmNotXor ;
                            end;
      end{case}
      XAnfang:= X;
      YAnfang:= Y;
      XEnde:= X ;
      YENde:= Y;
      Canvas.MoveTo (XAnfang,YAnfang)
end;

procedure TPaint.FormMouseMove (Sender:TObject; Shift:TShiftState; X,Y:integer);
begin
     if MausGedrueckt then begin
        case Zeichenart of
        Freihand: begin
                  Canvas.LineTo (x,y)
                  end;
        Linie: begin
               Canvas.MoveTo (XAnfang,YAnfang);
               Canvas.LineTo (XEnde,YEnde);
               Canvas.MoveTo (XAnfang,YAnfang);
               Canvas.LineTo (X,Y);
               end;
        Rechteck, Ellipse, Rechtecktransparent, EllipseTransparent:
                  begin
                  Canvas.Rectangle (XAnfang,YAnfang,XEnde,YEnde);
                  Canvas.Rectangle (XANfang,YAnfang,X,Y);
                  end;
        end{case}
     XEnde:= X;
     YEnde:= Y;
     end{if MausGedrueckt}
end;

procedure TPaint.FormMouseUp (Sender:TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer);
begin
     case Zeichenart of
     Linie:          begin
                     Canvas.Pen.Color:=Zeichenfarbe;
                     Canvas.Pen.Mode:=pmCopy;
                     Canvas.MoveTo (XAnfang,YAnfang);
                     Canvas.LineTo (X,Y) ;
                     end;
     Rechteck:       begin
                     Canvas.Pen.Color:=Zeichenfarbe;
                     Canvas.Pen.Mode:=pmCopy;
                     Canvas.Rectangle (XAnfang,YAnfang,X,Y)
                     end;
     Ellipse:        begin
                     Canvas.Pen.Color:=Zeichenfarbe;
                     Canvas.Pen.Mode:=pmCopy;
                     Canvas.Ellipse (XAnfang,YAnfang,XEnde,YEnde);
                     end;
     EllipseTransparent:
                        begin
                        Canvas.Rectangle (XAnfang,YAnfang,XEnde,YEnde);
                        Canvas.Pen.Color:=Zeichenfarbe;
                        Canvas.Pen.Mode:=pmCopy  ;
                        Canvas.Brush.Style:=bsClear;
                        Canvas.Ellipse (XAnfang,YAnfang,XEnde,YEnde);
                        Canvas.Brush.Style:=bsSolid;
                        end;
     RechteckTransparent:
                        begin
                        Canvas.Rectangle (XAnfang,YAnfang,XEnde,YEnde);
                        Canvas.Pen.Color:=Zeichenfarbe;
                        Canvas.Pen.Mode:=pmCopy  ;
                        Canvas.Brush.Style:=bsClear;
                        Canvas.Rectangle (XAnfang,YAnfang,XEnde,YEnde);
                        Canvas.Brush.Style:=bsSolid;
                        end;
     end{case}
     MausGedrueckt:=False;
end;






procedure TPaint.BitBtnRotClick(Sender: TObject);
begin
Zeichenfarbe:=Rot;
//PanStatus.Caption:=' Zeichenfarbe: Rot'
end;

procedure TPaint.BitBtnGelbClick(Sender: TObject);
begin
Zeichenfarbe:=Gelb;
//PanStatus.Caption:=' Zeichenfarbe: Gelb'
end;

procedure TPaint.BitBtnGruenClick(Sender: TObject);
begin
Zeichenfarbe:=Gruen;
//PanStatus.Caption:=' Zeichenfarbe: Gruen'
end;

procedure TPaint.BitBtnBlauClick(Sender: TObject);
begin
Zeichenfarbe:=Blau;
//PanStatus.Caption:=' Zeichenfarbe: Blau'
end;

procedure TPaint.BitBtnSchwarzClick(Sender: TObject);
begin
Zeichenfarbe:=Schwarz;
//PanStatus.Caption:=' Zeichenfarbe: Schwarz'
end;

end.


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Di 26.06.12 20:09 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TPaint.AlleSchaltflaechenAktiv;
begin  // DAS FEHLT
  BitBtnRechteck.Enabled:=true
  BitBtnFreihand.Enabled:=true
  BitBtnLinie.Enabled:=true
  BitBtnEllipse.Enabled:=true
  BitBtnPunkt.Enabled:=true
  BitBtnRechtecktransparent.Enabled:=true
  BitBtnEllipseTransparent.Enabled:=true
end;


Das BEGIN hinter der Procedure-Zeile fehlt.

Bitte setze demnächst Deinen Quelltext in die beiden Begrenzer delphi und /delphi, jeweils in eckigen Klammern

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.


Zuletzt bearbeitet von Tranx am Di 26.06.12 20:11, insgesamt 2-mal bearbeitet
ss396 Threadstarter
Hält's aus hier
Beiträge: 4

Win7
Delphi 2005, Delphi 2007, WinLogo, HTML Editor
BeitragVerfasst: Di 26.06.12 20:10 
Danke Problem gelöst!!