Autor Beitrag
Katzenstreu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: Fr 14.04.06 12:26 
Hallo,

ich habe mich mal wieder in diesem Forum eingefunden, da ich ein Problem habe :).


Es geht um ein Programm, dass ich vom Lehrer habe und nicht komplett verstehe.

Ich habe es bereits abgeschriben und nachgebaut, Elemente und werte verändert und das Resultat beobachtet.

user defined image

Nun weiß ich aber in dem Teil der zu der Bewegung des Kreises von links nach rechts führt nicht weiter.

Im Anhang findet ihr den Code, die *.exe und alle sonsteigen mir unbekannten Dateien, die Delphi erstellt ;).


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:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Erscheinen: TButton;
    Bewegen: TButton;
    Verschwinden: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ErscheinenClick(Sender: TObject);
    procedure BewegenClick(Sender: TObject);
    procedure VerschwindenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  x,y,Durchmesser:Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 x:=10;
 y:=10;
 Durchmesser:=200;
end;

procedure TForm1.ErscheinenClick(Sender: TObject);
begin
 Refresh; {Refresh vor dem Kopieren, damit keine unerwünschten Pixel
 kopiert werden}

 canvas.Ellipse(x,y,x+Durchmesser,y+Durchmesser);
end;

procedure TForm1.BewegenClick(Sender: TObject);
var
i:integer;
Quelle, Ziel: TRect;

begin
 for i:=x-5 to ClientWidth-Durchmesser-x-5 do
 {Führe untere Operationen solange aus, bis
 i = die Breite des Fensters - den Durchmesser - 5 ist.}


 begin
  Quelle:=Rect(i,y{-5},i+Durchmesser+5,y+Durchmesser+5);
  Ziel:=Rect(i+1,y{-5,},i+Durchmesser+6,y+Durchmesser+5);
  canvas.CopyRect(Ziel,Canvas,Quelle);
  sleep(1);
 end;
end;

procedure TForm1.VerschwindenClick(Sender: TObject);
begin
 Refresh;
end;

end.


Edit 1:
Speziell geht es mir um die Erkläung aus deisem Bereich:

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:
procedure TForm1.FormCreate(Sender: TObject);
begin
 x:=10;
 y:=10;
 Durchmesser:=200;
end;

procedure TForm1.ErscheinenClick(Sender: TObject);
begin
 Refresh; {Refresh vor dem Kopieren, damit keine unerwünschten Pixel
 kopiert werden}

 canvas.Ellipse(x,y,x+Durchmesser,y+Durchmesser);
end;

procedure TForm1.BewegenClick(Sender: TObject);
var
i:integer;
Quelle, Ziel: TRect;

begin
 for i:=x-5 to ClientWidth-Durchmesser-x-5 do
 {Führe untere Operationen solange aus, bis
 i = die Breite des Fensters - den Durchmesser - 5 ist.}


 begin
  Quelle:=Rect(i,y{-5},i+Durchmesser+5,y+Durchmesser+5);
  Ziel:=Rect(i+1,y{-5,},i+Durchmesser+6,y+Durchmesser+5);
  canvas.CopyRect(Ziel,Canvas,Quelle);
  sleep(1);
 end;
end;


MfG
Tim ;)
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Katzenstreu am Sa 15.04.06 13:43, insgesamt 1-mal bearbeitet
starsurfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 334

Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
BeitragVerfasst: Fr 14.04.06 13:19 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.FormCreate(Sender: TObject);  
begin  
//beim Programmstart wird...
 x:=10;  //x ein Wert zugewiesen
 y:=10;  //y ein Wert zugewiesen
 Durchmesser:=200;  //durchmesser ein Wert zugewiesen 
//dies ist wichtig da andernfalls jeder mögliche wert angenommen werden kann...
end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.ErscheinenClick(Sender: TObject);  
begin  
 Refresh; {Refresh vor dem Kopieren, damit keine unerwünschten Pixel  
 kopiert werden}
  
 canvas.Ellipse(x,y,x+Durchmesser,y+Durchmesser); //Malt einen Kreis/Ellipse auf die Form 
end;


"Canvas" ist in dem fall der Zeichenfläche von der Form1, also kann man es auch "form1.canvas" nennen...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.BewegenClick(Sender: TObject);  
var  
i:integer;  //legt i als Integer Variable auf die procedure begrenzt fest
Quelle, Ziel: TRect; //legt 2 TRect Varibalen auf die procedure begrenzt fest   
begin  
 for i:=x-5 to ClientWidth-Durchmesser-x-5 do  //gehe von "aktueller Position -5" bis "Fensterweite-Kreisdurchmesser-5" 
 {Führe untere Operationen solange aus, bis  
 i = die Breite des Fensters - den Durchmesser - 5 ist.}
  
 begin  
  Quelle:=Rect(i,y{-5},i+Durchmesser+5,y+Durchmesser+5);//legt einen Quellbereich auf der Form fest (aus welchen Bereich soll ichs kopieren)
  Ziel:=Rect(i+1,y{-5},i+Durchmesser+6,y+Durchmesser+5);//legt einen Zielbereich auf der Form fest (in welchen Bereich soll ichs kopieren)
canvas.CopyRect(Ziel,Canvas,Quelle); //kopiert Quellbereich in Zielbereich - Quelle und Ziel Zeichenfläche ist dabei jeweils "Form1.canvas"
sleep(1); //sorgt dafür das das Programm 1ms "schläft" - Damit man die Bewegung auch sieht
 end;  
end;


"Clientwidth" bezieht sich auf die Fenstergröße der Form OHNE Rand. ( auch Form1.clientwidth)

welche Frage du genau haste weis ich nich...hast ja keine direkte Frage gestellt
na vll hilft das hier schon weiter

star

_________________
GEIZ IST GEIL! - Ihr Sozialamt
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: Fr 14.04.06 13:27 
Hallo starsurfer,

danke für deine Hilfe ;).



Warum wird de Elipse (in diesem Fall ein Kreis) durch vier Variablen bestimmt (canvas.Ellipse(x,y,x+Durchmesser,y+Durchmesser);)?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.ErscheinenClick(Sender: TObject);  
begin  
 Refresh; {Refresh vor dem Kopieren, damit keine unerwünschten Pixel  
 kopiert werden}
  
 canvas.Ellipse(x,y,x+Durchmesser,y+Durchmesser); //Malt einen Kreis/Ellipse auf die Form 
end;


Edit 2:
"Ich habe eben rausgefunden, dass die ersten zwei Werte wohl der Bereich sind, wo das Rechteck (Quadrat) anfängt. Die letzten beiden Werte sind für die Breite und die Höhe des Rechtecks verantwortlich."

Dann arbeite ich mal Frage für Frage ab :).

Danke dir! :D

MfG
Tim ;)

Edit 1:
Wofür steht i? Was macht dieser Faktor oder Wert?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.BewegenClick(Sender: TObject);  
var  
i:integer;  //legt i als Integer Variable auf die procedure begrenzt fest
Quelle, Ziel: TRect; //legt 2 TRect Varibalen auf die procedure begrenzt fest   
begin  
 for i:=x-5 to ClientWidth-Durchmesser-x-5 do  //gehe von "aktueller Position -5" bis "Fensterweite-Kreisdurchmesser-5" 
 {Führe untere Operationen solange aus, bis  
 i = die Breite des Fensters - den Durchmesser - 5 ist.}
  
 begin  
  Quelle:=Rect(i,y{-5},i+Durchmesser+5,y+Durchmesser+5);//legt einen Quellbereich auf der Form fest (aus welchen Bereich soll ichs kopieren)
  Ziel:=Rect(i+1,y{-5},i+Durchmesser+6,y+Durchmesser+5);//legt einen Zielbereich auf der Form fest (in welchen Bereich soll ichs kopieren)
canvas.CopyRect(Ziel,Canvas,Quelle); //kopiert Quellbereich in Zielbereich - Quelle und Ziel Zeichenfläche ist dabei jeweils "Form1.canvas"
sleep(1); //sorgt dafür das das Programm 1ms "schläft" - Damit man die Bewegung auch sieht
 end;  
end;


Zuletzt bearbeitet von Katzenstreu am Fr 14.04.06 13:34, insgesamt 1-mal bearbeitet
starsurfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 334

Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
BeitragVerfasst: Fr 14.04.06 13:32 
Also durch die Punkte wird ein Rechteck(deswegen 4 Punkte) bestimmt in das der Kreis gezeichnet wird.

Die ersten 2 Wert: x-y Wert des oben links liegendem Punkt im Rechteck
Die zweiten 2 Werte: x-y Wert des unten rechts liegendem Punkt im Rechteck
ausblenden Quelltext
1:
2:
3:
4:
5:
Punkt 1
*---+
|   |
+---*
    Punkt2

-----

i ist die Varibale für die for..to..do Schleife
irgendwo muss man ja den aktuellen Schleifendurchlauf/Stand speichern :wink:

_________________
GEIZ IST GEIL! - Ihr Sozialamt


Zuletzt bearbeitet von starsurfer am Fr 14.04.06 13:38, insgesamt 1-mal bearbeitet
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: Fr 14.04.06 13:35 
Muss das i sein?

Könnte man nicht sagen, dass der Kreis von links nach rechts bis zum Rand -x Pixel kopiert werden soll?
starsurfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 334

Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
BeitragVerfasst: Fr 14.04.06 13:41 
das i MUSS sein!

du willst ja das es sich nich einfach vom linke rand zum rechten springt (ohne zwischenschritte)

es soll sich ja langsam von links nach rechts bewegen...

kleines Beispiel(hatt nix mit deinem Programm zu tun):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
for i:=1 to 3 do
   begin
   xpos:=i*10;
   end;

i=1
x-pos (vom Kreis): 10

i=2
x-pos (vom Kreis): 20

i=3
x-pos (vom Kreis): 30

und da i durch die for-schleife ständig erhöht wird bewegt der Kreis sich langsam nach rechts!

_________________
GEIZ IST GEIL! - Ihr Sozialamt
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: Fr 14.04.06 14:22 
Das leuchtet mir nun ein :).

Jetzt muss ich nurnach deinen (eigentlich einfachen) Ablauf selbständig ohne sonstige Hilfsmittel (wie in der Klausur) alleine erstellen können.

Wie kann ich das üben?


Und wenn ich das dann kann, muss ich mir noch andere Methoden, die das gleiche Ergebnis haben, erlernen :(.
MfG
Tim :)
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: Fr 14.04.06 15:17 
Die Zeile for i:=..., Quelle:=... und Ziel:=... sind mir nun klar.

Aber Warum steht in dieser Zeile (Form1.Canvas.CopyRect(Ziel, Canvas, Quelle);) erst das Ziel, dann Canvas und dann die Quelle?
Was hat das Wort Canvas in den Koordinaten zu suchen?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.BewegenClick(Sender: TObject);
 var
  i: integer;
  Quelle, Ziel: TRect;
begin
  for i:=x-5 to Form1.ClientWidth-Durchmesser do
   begin
      Quelle:=Rect(i,y-5,i+Durchmesser+5,y+Durchmesser+5);
      Ziel:=Rect(i+1,y-5,i+Durchmesser+6,y+Durchmesser+5);
      Form1.Canvas.CopyRect(Ziel, Canvas, Quelle);
      Sleep(1);
   end;
end;


MfG
Tim ;)
starsurfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 334

Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
BeitragVerfasst: Fr 14.04.06 15:43 
ausblenden Delphi-Quelltext
1:
Form1.Canvas.CopyRect(Ziel, Canvas, Quelle);					


Form1.canvas.copyrect = die zeichenfläche in die kopiert wird
Ziel = Zielbereich auf der zeichenfläche in die kopiert wird (Koordinaten)
Canvas = Form1.canvas = die Zeichenfläche aus der kopiert wird
Quelle = Quellbereich aus der Zeichenfläche aus der kopiert wird (Koordinaten)

_________________
GEIZ IST GEIL! - Ihr Sozialamt
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: Fr 14.04.06 17:53 
Dann ist doch die Quelle das gleiche wie Canvas?! :hmm:
Coder
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1383
Erhaltene Danke: 1

WinXP
D2005 PE
BeitragVerfasst: Fr 14.04.06 19:09 
Das Programm ist aus dem Buch "Delphi für Kids". :mrgreen:
Das hab ich auch und kann ich nur empfehlen.
Ist aber für jüngere geschrieben. :wink:
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: Fr 14.04.06 19:12 
Das Buch habe ich bei meinem Lehrer (, der auch Schulleiter ist ;)) schon gesehen.

Mal sehen, obs das irgendwo billig gibt.

Edit 1:
@Coder: Würdest du mir dein Buch eventuell verkaufen?
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: Sa 15.04.06 13:20 
Hallo,

nun habe ich die angekündigte zweite Variante getestet.
In dieser wird der Kreis gezeichnet. Er wird ebenfalls mit der "for - do"-Schleife verschoben. Der ehemalige Kreis wird mit der Hintergrundfarbe überschrieben.

Im Anhang das Projekt inkluive der ausführbaren Datei.

Hier der 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:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Erscheinen: TButton;
    Bewegen: TButton;
    Verschwinden: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ErscheinenClick(Sender: TObject);
    procedure BewegenClick(Sender: TObject);
    procedure VerschwindenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  x,y,Durchmesser:Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 x:=10;
 y:=10;
 Durchmesser:=200;
end;

procedure TForm1.ErscheinenClick(Sender: TObject);
begin
 Refresh;
 {Form1.Canvas.Pen.Color:=ClRed;} // Farbe des Kreises beim Erscheinen
 Form1.Canvas.Ellipse(x,y,x+Durchmesser,y+Durchmesser);
 end;

procedure TForm1.BewegenClick(Sender: TObject);
var
 i:Integer;
begin
 for i:=1 to Form1.ClientWidth-Durchmesser-2*x do
  begin
   Form1.Canvas.Pen.Color:=Form1.Color;
   Form1.Canvas.Ellipse(x+i-1,y,x+i-1+Durchmesser,y+Durchmesser); // löschen der vorigen Pixel

   Form1.Canvas.Pen.Color:=ClBlack;
   Form1.Canvas.Ellipse(x+i,y,x+i+Durchmesser,y+Durchmesser); // Zeichene des Kreises je um 1 Pixel nach Rechts verschoben

   Sleep(1);
  end;
end;

procedure TForm1.VerschwindenClick(Sender: TObject);
begin
 Refresh;
end;

end.


Jedoch verstehe ich nicht, warum der Kreis in der y-Ebene anscheinend verschoben wird.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
...
Form1.Canvas.Pen.Color:=Form1.Color;
   Form1.Canvas.Ellipse(x+i-1,y,x+i-1+Durchmesser,y+Durchmesser); // löschen der vorigen Pixel

   Form1.Canvas.Pen.Color:=ClBlack;
   Form1.Canvas.Ellipse(x+i,y,x+i+Durchmesser,y+Durchmesser); // Zeichene des Kreises je um 1 Pixel nach Rechts verschoben
...


Könnte mir das jemand erklären?

MfG
Tim ;)

Edit 1:
Nach dem Aufzeichen und nach dem Betrachten dder folgenden Zeichnung habe ich es nun endlich verstanden.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
Punkt 1
*---+
|   |
+---*
    Punkt 2
Einloggen, um Attachments anzusehen!
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: So 16.04.06 14:54 
Hallo,


bitte erklärt mir hier noch einmal den markierten Bereich:

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:
unit Unit1;

interface

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

type
  TKreis = class
   x,y,Durchmesser:Integer;

   constructor Create (xx,yy,dd:Integer);
   procedure Erscheine;
   procedure Bewege;
   Procedure Verschwinde;
  end;

  TForm1 = class(TForm)
    Erscheinen: TButton;
    Bewegen: TButton;
    Verschwinden: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ErscheinenClick(Sender: TObject);
    procedure BewegenClick(Sender: TObject);
    procedure VerschwindenClick(Sender: TObject);
   end;

var
  Form1: TForm1;
  Kreis: TKreis;
  i: integer;
  Quelle, Ziel: TRect;

implementation

{$R *.dfm}

constructor TKreis.Create(xx,yy,dd:Integer);
begin
 x:=xx;
 y:=yy;
 Durchmesser:=dd;
end;


procedure TKreis.Erscheine;
begin
 Form1.Refresh;
 Form1.Canvas.Ellipse(x,y,x+Durchmesser,y+Durchmesser);
end;


procedure TKreis.Bewege;
begin
 for i:=x-5 to Form1.ClientWidth-Durchmesser-x-5 do
 begin
  Quelle:=Rect(i,y-5,i+Durchmesser+5,y+Durchmesser+5);
  Ziel:=Rect(i+1,y-5,i+Durchmesser+6,y+Durchmesser+5);
  Form1.Canvas.CopyRect(Ziel,Form1.Canvas,Quelle);
  sleep(7);
 end;
end;



procedure TKreis.Verschwinde;
begin
 Form1.Refresh;
end;


{------------------------------------------------------------------------------}












procedure TForm1.FormCreate(Sender: TObject);
begin
 Kreis:=TKreis.Create(10,10,200);
end;


procedure TForm1.ErscheinenClick(Sender: TObject);
begin
 Kreis.Erscheine;
end;


procedure TForm1.BewegenClick(Sender: TObject);
begin
 Kreis.Bewege;
end;


procedure TForm1.VerschwindenClick(Sender: TObject);
begin
 Kreis.Verschwinde;
end;

end.


Moderiert von user profile iconGausi: Screenshot entfernt.
Einloggen, um Attachments anzusehen!
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: So 16.04.06 15:28 
Warum machst du bitte nen Screenshot von dem Source und schreibst ihn dann zusätzlich noch rein? :roll: :motz:

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: So 16.04.06 15:34 
user profile iconBorn-to-Frag hat folgendes geschrieben:
Warum machst du bitte nen Screenshot von dem Source und schreibst ihn dann zusätzlich noch rein? :roll: :motz:


Warum so böse?!

Weil ich der Meing bin, dass viele Leute keine Lust haben den Quellcode abzuschreiben.

Du kannst auch gerne alle Bilder von www.feddern.org blockeren, sofern dein Browser das zu lässt ;).



Aber nun BTT: Weißt du Rat?


MfG
Tim
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: So 16.04.06 16:17 
Moderiert von user profile iconKatzenstreu: Großes Lob. Perfekt! Gratulation!
Wie kann man den Bereich im Delphiquekllcode färben?

Und warum steht in derr for-to-do-Schleife 2 mal "-5"?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 16.04.06 16:21 
user profile iconKatzenstreu hat folgendes geschrieben:
Wie kann man den Bereich im Delphiquekllcode färben?
Mit [Highlight]...[/Highlight]

_________________
We are, we were and will not be.
Katzenstreu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Windows XP Professional

BeitragVerfasst: Mo 17.04.06 12:18 
Titel: Problem mit "Constructor Create"!
Hallo,

ich weiß nicht, warum mir folgender Fehler angezeigt wird:
ausblenden Quelltext
1:
2:
3:
4:
5:
[Fehler] Unit1.pas(12): Ungenügende Forward- oder External-Deklaration: 'TKreis1.Create'
[Fehler] Unit1.pas(13): Ungenügende Forward- oder External-Deklaration: 'TKreis1.Erscheine'
[Fehler] Unit1.pas(14): Ungenügende Forward- oder External-Deklaration: 'TKreis1.Bewege'
[Fehler] Unit1.pas(15): Ungenügende Forward- oder External-Deklaration: 'TKreis1.Verschwinde'
[Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden


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:
unit Unit1;

interface

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

type
  TKreis1 = class
   x,y,Durchmesser:Integer;
   constructor Create (xx,yy,dd:Integer);
   procedure Erscheine;
   procedure Bewege;
   procedure Verschwinde;
  end;

  

  TForm1 = class(TForm)
    Erscheinen: TButton;
    Bewegen: TButton;
    Verschwinden: TButton;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Kreis: TKreis1;

implementation

{$R *.dfm}

end.


Edit 1:
Ich habe einfach den Constructor weiter unten gestartet. Damit ist dieses Problem behoben.


Nun habe ich eine For-To-Do-Schleife eingebaut. Dabei erhalte ich folgenden Fehler:
[highlight][Warnung] Unit1.pas(56): FOR-Schleifenvariable muss eine einfache lokale Variable sein[/highlight]
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Katzenstreu am Mo 17.04.06 12:54, insgesamt 1-mal bearbeitet
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Mo 17.04.06 12:51 
das project ist n icht immer nötig :roll: .. naja also die fehlermeldungen kommen weil du prozeduren deklariert hast aber die nirgens in der implementation drinne hast.. ;)


greetz

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.