Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Delphi Hausaufgabe - Stringgrid fühlt sich nicht


Peter83 - Di 24.06.08 11:38
Titel: Delphi Hausaufgabe - Stringgrid fühlt sich nicht
Hi Leutz,

ich bin der Peter, neu hier in diesem Forum und beschäftige mich seit wenigen Wochen mit Delphi. Leider braucht man mittlerweile sogar Delphi, wenn man Pädagogik studiert, da muss ich nun wohl durch *g* OK, viell. entdeck ich auch noch die Freude am Programmieren.
Wir haben heute im Kurs eine Hausaufgabe bekommen. Wir sollen uns von einem unbekannten Projekt die Unit anschauen, ob dort Fehler sind, diese beseitigen und... mehr interessiert erstmal nicht.

Also, in diesem Projekt geht es wohl um Luftdruck, Temperatur etc. , soviel ist mir schon mal klar.
Im Formular haben wir zwei Stringgrids, wohl eine zum eingeben, eine zur Ausgabe, sowie ein Label mit Aufschrift: "Werte nicht geprüft" und einen Button "Auswertung starten.

Ich habe nun die Fehler beseitigt und es läuft auch. Aber es passiert nichts. Damit meine ich, dass die Stringgrids nicht beschriftet werden und dass ich auch Werte eingeben kann, mit diesen geschieht aber ebenfalls nix.


Wenn jemand daran Freude hat, darf er mir gerne einen Tip geben. Außerdem frage ich mich, wo man "FormCreate" eingeben kann, wie es hier geschehen ist (kenne ich noch nicht). Hier kommt der Quelltext:




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

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, Grids;

const
  AnzWerte=3;

type
  TMWVector=array[1..AnzWerte] of double;
  TMW_Art=(Luftdruck,Temperatur);

  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    StringGrid2: TStringGrid;
    Status: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    MW:array[TMW_Art] of TMWVector;
    WerteOk:boolean;
    procedure LeseWerte( var V:TMWVector; const Spalte:byte; const Unten,Oben:double);
    procedure Maximum( const V:TMWVector; var max :double);
  public
    { Public-Deklarationen }
  end;


var
  Form1: TForm1;




implementation

{$R *.DFM}


procedure TForm1.LeseWerte( var V:TMWVector; const Spalte:byte; const Unten,Oben:double);
  var i:byte;
begin

  for I:=1 to AnzWerte do
  begin
  {---Werte konvertieren}
    if stringgrid1.cells[Spalte,i] = ''
    then V[i]:=0
    else V[i]:=StrToFloat(stringgrid1.cells[Spalte,i]);

  {---Werte pruefen}
    if (V[i] < Unten) or (v[i] > Oben) then WerteOk:=false;
  end;

end;

procedure TForm1.Maximum( const V:TMWVector; var max :double);
  var i:byte;
begin
  max:=V[1];
  for I:=1 to AnzWerte do
  begin
    if v[i] > max then max:=v[i];
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);

 var
   max,min,sum:double;
begin
 WerteOk:=true;

 {---Werte konvertieren}
 LeseWerte(MW[Temperatur],2,-273,1000);


 {--- Auswertung starten und Ergebnis eintragen}
 Maximum(MW[Temperatur],max);
 stringGrid2.cells[2,1]:=FloatToStr(max);


 if WerteOk
 then
   begin
     Status.caption:='Status:  Werte innerhalb zulässiger Grenzen';
     status.color:=clWindow;
   end
 else
   begin
      Status.caption:='Status:  Werte außerhalb zulässiger Grenzen';
      Status.color:=clRed;
   end;

end;

procedure TForm1.FormCreate(Sender: TObject);
  var i:byte;
begin
   stringGRid1.RowCount:=AnzWerte+1;

  {--- Beschriftung - Werte initialisieren}
  stringGrid1.cells[0,0]:='Nr';
  stringGrid1.cells[1,0]:='Luftdruck';
  stringGrid1.cells[2,0]:='Temperatur';
  for I:=1 to AnzWerte do stringGrid1.cells[0,i]:=IntToStr(i);

  stringGrid2.cells[1,0]:='Luftdruck';
  stringGrid2.cells[2,0]:='Temperatur';
  stringGrid2.cells[0,1]:='Maximum';
  stringGrid2.cells[0,2]:='Minimum';
  stringGrid2.cells[0,3]:='Durchschnitt';
end;

end.


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


GericasS - Di 24.06.08 11:47

Setzt das ganze mal in Delphi-Tags rein kann man sonst nicht lesen danke =)


ZeitGeist87 - Di 24.06.08 11:54

bäh..die Einrückung is ne Katastrophe..

Ja klar..wo kein Code ist, kann er auch nichts berechnen..

Und was genau zeichnet er nicht im StringGrid?

Am besten du postest mal das Projekt.

LG
Stefan


Christian S. - Di 24.06.08 11:55

Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian


GericasS - Di 24.06.08 11:59

Form.Create erreichst du durch einen doppelklick auf die Form =)


Tilman - Di 24.06.08 14:58

user profile iconGericasS hat folgendes geschrieben:
Form.Create erreichst du durch einen doppelklick auf die Form =)


Und generell die meisten Eregnisse in dem du im ObjektInspektor auf "Eregnisse" klickst, und dann auf den betreffenden Eintrag Doppelt.


Peter83 - Mi 25.06.08 17:50
Titel: Back again...
user profile iconZeitGeist87 hat folgendes geschrieben:
bäh..die Einrückung is ne Katastrophe..

Ja klar..wo kein Code ist, kann er auch nichts berechnen..

Und was genau zeichnet er nicht im StringGrid?

Am besten du postest mal das Projekt.

LG
Stefan


Hallo, Danke für die Antworten. ich habe den Titel geändert.

Wie poste ich das Projekt? Häng ich einfach das ganze Delphi-Projekt als Dateianhang an?

Danke und schön der EM 11 die Daumen drücken *g*

Davor werde ich allerdings noch ein wenig im Buch "Jetzt lerne ich Delphi lesen"
Hoffentlich hilfts *g*

VG
Peter


Narses - Mi 25.06.08 17:58
Titel: Re: Back again...
Moin und :welcome: im Forum!

user profile iconPeter83 hat folgendes geschrieben:
Wie poste ich das Projekt? Häng ich einfach das ganze Delphi-Projekt als Dateianhang an?
Pack einfach den Inhalt des Projektordners (aber ohne die EXE) in ein ZIP-Archiv und stell das in den Anhang deines Beitrages. ;)

cu
Narses


Peter83 - Mi 25.06.08 18:31
Titel: Re: Back again...
user profile iconNarses hat folgendes geschrieben:
Pack einfach den Inhalt des Projektordners (aber ohne die EXE) in ein ZIP-Archiv und stell das in den Anhang deines Beitrages. ;)

Hi Narses
Tja leider verstehe ich das mit ohne die EXE nicht. Hab nun einfach mal alles angehängt...
cu
Peter

Moderiert von user profile iconNarses: Zitat gekürzt


Jakob_Ullmann - Mi 25.06.08 18:38

Wenn du compilierst (F9), wird ein Programm erzeugt, und das hat die Endung .exe (für executable), also eine ausführbare Datei. Diese Programmdatei sollst du nicht mit packen, also ohne EXE.


Narses - Mi 25.06.08 18:38
Titel: Re: Back again...
Moin!

user profile iconPeter83 hat folgendes geschrieben:
Tja leider verstehe ich das mit ohne die EXE nicht.
Ähm :? wenn eine Datei mit der Endung .exe dabei gewesen wäre, hättest du sie weglassen sollen. 8) Hab ich mich so undeutlich ausgedrückt? :oops: :nixweiss:

user profile iconPeter83 hat folgendes geschrieben:
Hab nun einfach mal alles angehängt...
Passt doch. ;)

cu
Narses


Peter83 - Mi 25.06.08 18:43
Titel: Ok Ok
hätte ich durchaus verstehen können ;)


Jakob_Ullmann - Mi 25.06.08 19:02

Ist doch egal, jest weißt du halt für's nächste mal, was eine EXE ist. :wink: