Probleme mit MiniPaint
spacer
Autor Nachricht
10S96
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 03.01.12 18:59 
Hallo. :) Ich habe ein Problem mit meinem Delphi MiniPaint.
Seit einigen Monaten habe ich in der Schule Informatik. Nun soll ich zum ersten Mal etwas programmieren. Ein MiniPaint mit dem man Punkte, freie Linien und "Gummilinien" zeichnen kann. Außerdem soll man Farbe und Dicke variieren können. Ich habe begonnen, doch schon bei den Punkten und Freihandlinen bekam ich Probleme.
Hier mein Quelltext. Ich hoffe ihr könnt mir helfen, denn ich kann mit den Angezeigten Fehlermeldungen leider noch nicht viel anfangen.


Quelltext:
ausblenden volle Höhe Delphi-Quelltext markieren
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:
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;
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);
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:TShifteState; X,Y:Integer);
begin
MausGedrueckt := True;
Canvas.MoveTo (X,Y);

begin
if BitBtnFrei.Enabled = False
then begin
MausGedrueckt := True;
Canvas.MoveTo (X,Y)
end
else
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:TShifteState; X,Y:Integer);
begin
MausGedrueckt := False
end;

end.




ausblenden Fehlermeldungen: markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
[Fehler] Unit1.pas(59): Undefinierter Bezeichner: 'TShifteState'
[Fehler] Unit1.pas(59): Deklaration von 'FormMouseDown' unterscheidet sich von vorheriger Deklaration
[Fehler] Unit1.pas(61): Undefinierter Bezeichner: 'MausGedrueckt'
[Fehler] Unit1.pas(62): Undefinierter Bezeichner: 'Canvas'
[Fehler] Unit1.pas(65): Undefinierter Bezeichner: 'BitBtnFrei'
[Fehler] Unit1.pas(65): 'THEN' erwartet, aber Bezeichner 'Enabled' gefunden
[Fehler] Unit1.pas(68): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(71): ';' nicht erlaubt vor einem 'ELSE'
[Fehler] Unit1.pas(72): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(72): Nicht genügend wirkliche Parameter
[Fehler] Unit1.pas(75): Anweisung erwartet, aber 'PROCEDURE' gefunden
[Fehler] Unit1.pas(83): Deklaration von 'FormMouseUp' unterscheidet sich von vorheriger Deklaration
[Fehler] Unit1.pas(85): Undefinierter Bezeichner: 'MausGedrueckt'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden



Danke schon mal im Voraus :)

Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt

Moderiert von user profile iconNarses: Beiträge zusammengefasst

Der Rechtschreibfehler im Titel tut mir Leid. Ich meinte natürlich Probleme mit MiniPaint. :oops:
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 2837
Erhaltene Danke: 182

Win 2000, Win XP
Delphi 7, Turbo Delphi Exp.
BeitragVerfasst: Di 03.01.12 20:19 
Hallo und :welcome: in der Entwickler-Ecke!

Bitte verwende für Quellcode die entsprechenden [delphi]-Tags, dann wird er "schöner" dargestellt als im Fließtext. Beispiel:
ausblenden Quelltext markieren
1:
[delphi]var Test: integer;[/delphi]

Wird:
ausblenden Delphi-Quelltext markieren
1:
var Test: integer;


Das kannst du nachträglich genauso editieren wie auch den Titel: einfach unten in deinem ersten Beitrag auf user defined image klicken und den Inhalt und/oder Titel ändern.
Ich war aber mal so frei, das gleich zu erledigen :zwinker:


Zum Thema: der Einzige Fehler den ich beim kurzen Überfliegen sehe, ist ein überflüssiges begin in Zeile 59... alles andere dürfte daher kommen dass sich der Compiler daran gründlich verschluckt.
Oh und: Vergleiche von Boolean-Werten auf true oder false sind eine ganz schlechte Idee.

Viele Grüße,
Martok

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Ich code EdgeMonkey -~==~- #ee-lounge in Freenode

Für diesen Beitrag haben gedankt: 10S96
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
10S96 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 03.01.12 22:53 
Danke für die schnelle Antwort und das Verbessern. ;)
Das Weglassen von begin in Zeile 59 reicht leider nicht um es ans Laufen zu bekommen. :(
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1040
Erhaltene Danke: 27

Windows 7 Prof. , UBUNTU
RAD Studio 2010 Prof.
BeitragVerfasst: Mi 04.01.12 01:48 
Zitat:
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
procedure TPaint.BitBtnPunktClick(Sender: TObject);
begin
BitBtnPunkt.Enabled := False;
BitBtnPunkt.Enabled := True;

end;


Das sollte ungefähr gar nichts bewirken, du setzt Enabled erst auf False um es SOFORT wieder auf TRUE zu setzen. Nach dem Klicken ist also alles, wie gehabt. Wenn du den Wert eine Booleans ändern möchtest, schreibe einfach:

ausblenden Delphi-Quelltext markieren
1:
MeinBool := not MeinBool;


LG

_________________
Ich nutze EdgeMonkey, weil ich auf schwules Pink stehe :-*

Für diesen Beitrag haben gedankt: 10S96
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Blup
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Beiträge: 26
Erhaltene Danke: 12



BeitragVerfasst: Mi 04.01.12 10:51 
[Fehler] Unit1.pas(59): Undefinierter Bezeichner: 'TShifteState'
[Fehler] Unit1.pas(59): Deklaration von 'FormMouseDown' unterscheidet sich von vorheriger Deklaration

Delphi sagt doch ganz deutlich was nicht in Ordnung ist.
Der Typ nennt sich TShiftState und so steht es auch oben in der Deklaration.

Für diesen Beitrag haben gedankt: 10S96
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
10S96 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 05.01.12 08:29 
Vielen Dank für eure Hilfe :) jetzt funktioniert es!
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home