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



BeitragVerfasst: Fr 05.06.09 14:48 
Hallo Leute,
ich mach dieses jahr meine Fachhochschulreife und habe da am Montag meine Prüfung in Delphi das meiste Zeug hab ich auch kapiert nur hat mir jetzt eine Klassenkammeradin ein Programm geschickt das man auch können muss und dieses blick ich eben voll nicht, und sie kanns mir auch nicht erklären weil sie total schlecht in delphi ist...
Ich lade das jetzt einfach mal hier hoch wäre nett wenn es sich jemand anschauen würde und mir erklären könnte (eigentlich sind mir auch nur diese real variablen nicht ganz klar und die erste schleife)
also ich sag schonmal vielen danke im Voraus
Gruß Julian
Einloggen, um Attachments anzusehen!
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Fr 05.06.09 15:12 
In der Exe-Datei ist der Quelltext nicht mehr rekonstruieren, du musst also das ganze Projekt hochladen, am besten gezippt.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Fr 05.06.09 15:28 
Hallo Julian,

ohne Quelltext können wir dir hier auch nicht helfen, du hast nur die EXE angehängt...

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
julian290490 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 05.06.09 15:46 
Ah entschuldigung hier ist die richtige Datei
Einloggen, um Attachments anzusehen!
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Fr 05.06.09 15:47 
Die DPR (Delphi Projekt Datei) alleine nutzt nichts. Du musst uns schon auch die PAS (Pascal / Source-Datei) geben.

Grüße,
Marc
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Fr 05.06.09 15:48 
user profile iconjulian290490 hat folgendes geschrieben Zum zitierten Posting springen:
Ah entschuldigung hier ist die richtige Datei


Ist nur die Projektdatei, du musst Blumenwerfen.pas und evtl. Blumenwerfen.dfm hochladen.
julian290490 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 05.06.09 15:51 
ohje :D sorry ich bin da nicht ganz so fit^^
ich hoff diesmal stimmts?
Einloggen, um Attachments anzusehen!
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Fr 05.06.09 15:56 
Und was genau verstehst du nicht?
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:
unit Blumenwerfen;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image3: TImage;
    Image2: TImage;
    Timer1: TTimer;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormKeyDown(Sender:TObject; var Key:Word;
      Shift: TShiftState);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  x,punk,
  Blumex, Blumey :integer;
  sx, sy, vx, vy, g, t, dt :real;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  image2.transparent:=true;
  image3.transparent:=true;
  sx:=80; sy:=140; dt:=0.2; t:=0; g:=9.81;
  punk:=0;  vx:=40;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   setfocus;
  // hier die Endlosschleife zur Bewegung
  vy:= g*t;

  sx:=sx+vx*dt;
  sy:=sy+vy*dt;
  t:=t+dt;
  Blumex:=round(sx);
  Blumey:=round(sy);
  image2.Left:=Blumex;
  image2.top:=Blumey;
  // Blume zurück an Anfang
  If (sx > 550or (sy > 400then
  begin
    sx:=80; sy:=140; t:=0;
  end;
  // Trefferabfrage
  If (Blumey+40>image3.top+50and (Blumex>image3.left+33and
      (Blumex+40<image3.Left+115then
      begin
        punk := punk + 1;
        // Blume zurück
        sx:=80; sy:=140; t:=0;
        label1.Caption:=inttostr(punk);
        // X-Geschwindigkeit variieren
        vx:=30+round(random(40));
      end;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);


begin

  if Key = vk_left then
  begin
    image3.Left:= image3.left-5;
    if image3.left < 100 then image3.left := 100;
  end;
  if Key = vk_right then
  begin
    image3.Left:= image3.left+5;
    if image3.left > 530 then image3.left := 530;
  end;
end;

end.
julian290490 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 05.06.09 16:07 
najaaa also ich weis nicht was x,punkt bedeutet
dann was es mit real auf sich hat (aber ich glaub das ist irgendwie so für zufallsgeneration kann das sein?) dann wofür in diesem falle vx,vy,g,t und dt steht (g ist glaub erdanziehungskraft?)
dann diesen teil hier
sx:=80; sy:=140; dt:=0.2; t:=0; g:=9.81;
punk:=0; vx:=40;

weis ich absolut nichts mit anzufangen auser das g eben bestimmt für die erdanziehungskraft steht
aber warum sx:=80 und sy:=140 ist kapier ich z.b. auch nicht das werden ja wahrscheinlich die koordinaten des schiffes sein nehm ich an

und die schleife kapier ich eben nicht da ich ja eben eig auch garnicht weis für was das ganze zeug steht
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Fr 05.06.09 16:17 
x, punkt sind globale Integer-Variablen also Ganzzahlen (1, 5, 27, etc.). So ist das vllt. besser zu sehen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var
  Form1: TForm1;
  x,punk, Blumex, Blumey: integer;
  sx, sy, vx, vy, g, t, dt: real;


Die anderen Variablen sind vom Typ Real also Fließkommazahlen (0,1 2,3 etc.).

Beim Timer handelt es sich um ein Objekt das immer beim eingestellten Interval den Code vom OnTimer-Ereignis ausführt. Ist also eigentlich keine richtige Schleife. Weil dein Timer nie deaktiviert wird (Eigenschaft Enabled) wird er eben unendlich lange bzw. bis zum Programmende ausgeführt.
julian290490 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 05.06.09 21:53 
okay gut dankeschön das hat mir schonmal weiter geholfen
aber kannst du mir das hier noch erklären
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
  vy:= g*t;

  sx:=sx+vx*dt;
  sy:=sy+vy*dt;
  t:=t+dt;
  Blumex:=round(sx);
  Blumey:=round(sy);
  image2.Left:=Blumex;
  image2.top:=Blumey;

was da eben genau passiert
und warum z.b. sx:=sx+vx*dt ich blick das irgendwie echt nicht
und zu guter letzt habe ich noch dazu eine frage
ausblenden Delphi-Quelltext
1:
2:
  If (Blumey+40>image3.top+50and (Blumex>image3.left+33and
      (Blumex+40<image3.Left+115then

also ich kapier die bedingung schon aber ähm da steht ja image3.left und so also bei den programmen davor musste ich das immer zuerst einlesen und später wieder auslesen wieso wird das hier irgendwie nicht benötigt?

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 05.06.09 23:07 
Ohne das Programm gesehen zu haben, würde ich sagen das bewegt sich etwas. Und wenn ich mir diese Formel so angucke:
vy:= g*t;
Fliegt es sogar.

Was die Variablennamen bedeuten kann man nur vermuten. Aber da es um das Thema Bewegung und Wurf geht, würde ich jetzt messerscharf mal kombinieren, dass die Variablen die momentane Geschwindigkeit in Richtung der Achsen speichern. Beispiel:
vx ist vermutlich die Geschwindigkeit in Richtung der X-Achse.

ausblenden Delphi-Quelltext
1:
vy:= g*t;					

Schlag mal in deiner Physik Formelsammulung unter Wurf oder Schrägem Wurf nach. Physik 7. Klasse sollte das sein und solche rudimentären Formeln sollte man zumindest noch erkennen, wenn man sie sieht, auch wenn man sie nicht mehr auswendig weiß.

Blumex:=round(sx);
Das Ergebnis wird gerundet, da es nur ganze Pixel gibt.

mage2.Left:=Blumex;
Das Image wird an die angegebene Position verschoben.
julian290490 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Sa 06.06.09 14:08 
okaydankeschön für die antworten
ähm eine kleine frage hätte ich aber noch des hat jetzt garnix mit dem programm zu tun... aber ähm wir sollten auch objekte von oben nach unten fallen lassen können (was ja kein problem ist) allerdings immer an einer anderen stelle also eben das es zufall ist wo das teil runterfliegt könnt mir dazu jemand einen befehl sagen?
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Sa 06.06.09 14:45 
Ihr schreibt Prüfungen und du kennst nicht einmal randomize? :shock:

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Sa 06.06.09 14:57 
Wobei Du natürlich randomize; erst mal zur Initialisierung der Funktion aufrufen musst, und danach dann eigentlich nur noch fallposition:=random(gewuenschterMaximalwert);
wobei Du das dann - wenn der Wert z.B. zwischen 1 und 100 liegen sollte - so schreiben müsstest:
ausblenden Delphi-Quelltext
1:
fallposition:=random(100)+1;					
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 06.06.09 20:59 
user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Ihr schreibt Prüfungen und du kennst nicht einmal randomize? :shock:

Na ja, was willst du verlagen? Sollen die Schüler aller Funktionen der VCL auswendig können? In der Regel werden die Funktionen genannt, die benötigt werden. Wir sollten in der Abschlussprüfung ein Programm schreiben (auf dem Papier), da wurden uns die zur Verfügung stehenden Funktionen genannt.