Autor Beitrag
MasterInfinite
Hält's aus hier
Beiträge: 9

Windows XP Pro (FR)
D6 Personal
BeitragVerfasst: So 08.05.05 14:52 
Hi leute

ich wollte mal um zu starten eine ganz einfach mikrowelle mit hilfe der Fallunterscheidung if then else und "Zustand: Interger;" programmieren.

Das Programm ist so aufgbaut...

[Button Starten der Mikroewelle (BStarten)] [Button Öffnen der Mikrowelle( BOeffnen)] [Button Hineinlegen des Essens in die Mikrowelle (BHineeinlegen)]
[Button Schließen der Mikrowelle(BSchließen)]

[MEMO Anzeige der Mikrowelle auf der steht was gerade geschieht(MAnzeige ist der Name)]


Man muss die Mikrowelle mit öffnen öffnen.
Nur dann kann man das Essen hineinlegen.
Dann muss man sie schließen um sie starten zu können.
Wenn man die Mikrowelle gestartet hat kann sie nur durch öffnen gestoppt werden.

Alles was passiert wird in dem Memo fenster angezeigt. Die Zustände sollen dazu da sein dem Benutzer zu sagen dass er z.B. nicht die Mikrowelle starten kann wenn sie nicht geschlossen wird.

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

interface

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

type
  TTForm = class(TForm)
    MAnzeige: TMemo;
    BStarten: TButton;
    BOeffnen: TButton;
    BBenden: TButton;
    BHineinlegen: TButton;
    procedure BStartenClick(Sender: TObject);
    procedure BOeffnenClick(Sender: TObject);
    procedure BHineinlegenClick(Sender: TObject);
  private
    { Private declarations }
  Zustand: integer;
  public
    { Public declarations }
  end;

var
  TForm: TTForm;

implementation

{$R *.dfm}


procedure TTForm.BOeffnenClick(Sender: TObject);
if Zustand = 0 then begin
 MAnzeige.Lines.Add('Die Mikrowelle wurde geöffnet');
 Zustand = 1;
end;

procedure TTForm.BHineinlegenClick(Sender: TObject);
if Zustand = 1 then begin
 MAnzeige.Lines.Add('Sie haben ihr Essen hineingelegt und können nun die Mikrowelle Schließen');
 Zustand = 2;
end
 else
  MAnzeige.Lines.Add ('Sie müssen zuerst die Mikrowelle öffnen');
end;

end.


Warum steht da immer TTForm obwohl ich mein Formular TForm genannt habe?

Danke im voraus...bitte so unkompliziert wie möglich.

Moderiert von user profile iconMotzi: Delphi-Tags hinzugefügt.
Einloggen, um Attachments anzusehen!
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 08.05.05 14:56 
Hallo,

es gibt Namenskonventionen bei Delphi, die dafür verantwortlich sind. Wenn du das Formular Name nennst, dann heisst die Klasse TName. Das steht für type und soll halt zeigen, dass es sich um einen Typ(Klasse/Record usw.) handelt.

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: So 08.05.05 15:09 
user profile iconMasterInfinite hat folgendes geschrieben:
Hi leute

ich wollte mal um zu starten eine ganz einfach mikrowelle mit hilfe der Fallunterscheidung if then else und "Zustand: Interger;" programmieren.

Das Programm ist so aufgbaut...

[Button Starten der Mikroewelle (BStarten)] [Button Öffnen der Mikrowelle( BOeffnen)] [Button Hineinlegen des Essens in die Mikrowelle (BHineeinlegen)]
[Button Schließen der Mikrowelle(BSchließen)]

[MEMO Anzeige der Mikrowelle auf der steht was gerade geschieht(MAnzeige ist der Name)]


Man muss die Mikrowelle mit öffnen öffnen.
Nur dann kann man das Essen hineinlegen.
Dann muss man sie schließen um sie starten zu können.
Wenn man die Mikrowelle gestartet hat kann sie nur durch öffnen gestoppt werden.

Ist ja lustig ;) .

user profile iconMasterInfinite hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
...
Zustand = 1;
...
 Zustand = 2;
...


Das kann doch gar nicht klappen! Da muss nicht = sondern := stehen.
Du hast wohl vorher mit VB oder sowas zu tun gehabt was? :)

PS. im Beitragseditor gibbet 'nen Knopf oben, wo Delphi drauf steht. Da draufdrücken, wenn du Quelltext markiert hast, dann wird der Code so wie in Delphi dargestellt. ;) Der Code wird dadurch von Delphi-tags umschlossen.

EDIT: user profile iconMotzi hat sie bei deinem Beitrag für dich hinzugefügt.
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: So 08.05.05 15:34 
ich versteh net so ganz den Sinn der Sache, gibt das n Spiel, oder n Treiber für ne Mikrowelle, oder was??
MasterInfinite Threadstarter
Hält's aus hier
Beiträge: 9

Windows XP Pro (FR)
D6 Personal
BeitragVerfasst: So 08.05.05 15:41 
user profile iconJayK hat folgendes geschrieben:
user profile iconMasterInfinite hat folgendes geschrieben:
Hi leute

ich wollte mal um zu starten eine ganz einfach mikrowelle mit hilfe der Fallunterscheidung if then else und "Zustand: Interger;" programmieren.

Das Programm ist so aufgbaut...

[Button Starten der Mikroewelle (BStarten)] [Button Öffnen der Mikrowelle( BOeffnen)] [Button Hineinlegen des Essens in die Mikrowelle (BHineeinlegen)]
[Button Schließen der Mikrowelle(BSchließen)]

[MEMO Anzeige der Mikrowelle auf der steht was gerade geschieht(MAnzeige ist der Name)]


Man muss die Mikrowelle mit öffnen öffnen.
Nur dann kann man das Essen hineinlegen.
Dann muss man sie schließen um sie starten zu können.
Wenn man die Mikrowelle gestartet hat kann sie nur durch öffnen gestoppt werden.

Ist ja lustig ;) .

user profile iconMasterInfinite hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
...
Zustand = 1;
...
 Zustand = 2;
...


Das kann doch gar nicht klappen! Da muss nicht = sondern := stehen.
Du hast wohl vorher mit VB oder sowas zu tun gehabt was? :)

PS. im Beitragseditor gibbet 'nen Knopf oben, wo Delphi drauf steht. Da draufdrücken, wenn du Quelltext markiert hast, dann wird der Code so wie in Delphi dargestellt. ;) Der Code wird dadurch von Delphi-tags umschlossen.

EDIT: user profile iconMotzi hat sie bei deinem Beitrag für dich hinzugefügt.




DAnke aber da kommen immer noch fehler...

Der sinn dabei ist die Programmiersprache kennezulernen.
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: So 08.05.05 16:16 
user profile iconMasterInfinite hat folgendes geschrieben:

DAnke aber da kommen immer noch fehler...

Hab ich vorhin vergessen: :welcome: im DF! ;)
Du hast in den Prozeduren immer das begin vergessen.
Eine Prozedur ist immer wie folgt aufgebaut:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure Bezeichner(Parameter: Parametertyp);
type
//  Typendeklaration
var
//  Variablendeklaration
const
//  Konstantendeklaration
begin
// Befehle / Kommandos, die ausgeführt werden
end;

Das begin fehlt bei dir, du hast gleich mit if...then... weitergemacht.

Ich würde dir empfehlen ersteinmal ein paar Anfängertutorials zu lesen und nachzuschreiben (den Code natürlich ;) ) und ggf. auch verstehen :lol: .
Es gibt auch viele Bücher die den Einstieg mit Delphi erleichtern (siehe Bücher-Sparte).

Grüße, JayK

EDIT: Außerdem wäre es hilfreich, wenn du die Fehlermeldungen des Compilers auch posten würdest ;) .
MasterInfinite Threadstarter
Hält's aus hier
Beiträge: 9

Windows XP Pro (FR)
D6 Personal
BeitragVerfasst: So 08.05.05 16:22 
[Error] UMikrowelle.pas(50): Statement expected but 'PROCEDURE' found
[Error] UMikrowelle.pas(19): Unsatisfied forward or external declaration: 'TTForm.BStartenClick'
[Fatal Error] Mikrowelle.dpr(5): Could not compile used unit 'UMikrowelle.pas'

Kannst du dir das hier bitte anschauen? geht glaub ich besser.
Einloggen, um Attachments anzusehen!
OneOfTen
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 08.05.05 16:58 
Bei der Prozedur fehlt ein "end;" und die eine ist nicht vollständig deklariert, aber ob dir das weiter hilft?
Ich würde dir ganz stark zu einem Anfängerbuch raten.

Nicht böse gemeint, aber dass du mit so einfachen Compilermeldungen nicht klar kommst, kann nur bedeuten, dass du die Grundlagen nicht verstanden hast.
MasterInfinite Threadstarter
Hält's aus hier
Beiträge: 9

Windows XP Pro (FR)
D6 Personal
BeitragVerfasst: So 08.05.05 17:08 
Kannst du mir ne version schicken die funktioniert...nur dass ich sehe was ich falsch gemacht hab?
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: So 08.05.05 17:27 
user profile iconMasterInfinite hat folgendes geschrieben:
Kannst du mir ne version schicken die funktioniert...nur dass ich sehe was ich falsch gemacht hab?

Ich hab die Fehler für dich entfernt und Kommentare gesetzt, ich hoffe du hast eine Delphi-Version, die schon die Kommentare mit // unterstützt. Ich würde dir empfehlen die Delphi-Version in die
<- Randspalte
einzutragen. Da wo bei mir D6 Pers. usw. steht. Wenn du nicht weißt wie das geht sag's mir ;) .
Einloggen, um Attachments anzusehen!
MasterInfinite Threadstarter
Hält's aus hier
Beiträge: 9

Windows XP Pro (FR)
D6 Personal
BeitragVerfasst: So 08.05.05 17:39 
Danke... sag mal weist du wie das mit dem ENABLED von den Buttons funktioniert...also z.B. BBeenden.Enabled:= True..

Was muss ich da im Interface reinschreiben
MasterInfinite Threadstarter
Hält's aus hier
Beiträge: 9

Windows XP Pro (FR)
D6 Personal
BeitragVerfasst: So 08.05.05 17:42 
Habe delphi 6
MasterInfinite Threadstarter
Hält's aus hier
Beiträge: 9

Windows XP Pro (FR)
D6 Personal
BeitragVerfasst: So 08.05.05 17:45 
das ist es bis jetzt...
Einloggen, um Attachments anzusehen!
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: So 08.05.05 17:55 
user profile iconMasterInfinite hat folgendes geschrieben:
Danke... sag mal weist du wie das mit dem ENABLED von den Buttons funktioniert...also z.B. BBeenden.Enabled:= True..

Was muss ich da im Interface reinschreiben


Was wilst de da ins Interface reinschreieb. Einfach die Befehlszeile in deien Procedure eintragen:Button1.enabled := true;

Oder was meinst du??
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: So 08.05.05 17:56 
user profile iconMasterInfinite hat folgendes geschrieben:
Danke... sag mal weist du wie das mit dem ENABLED von den Buttons funktioniert...also z.B. BBeenden.Enabled:= True..

Ja, weiß ich :mrgreen: . Was willst du denn damit machen?

user profile iconMasterInfinite hat folgendes geschrieben:
Was muss ich da im Interface reinschreiben

Ich denke mal, du willst, wenn auf "öffnen" geklickt wird, dass Hineinlegen angeht, oder?
Ins interface schreibst du gar nichts, sondern du nimmst folgendes:
Du klickst in der IDE (=Integrated Development Environment), also da, wo du dein Formular gestaltest, doppelt auf BOeffnen.
Dann müsstest du in der Procedure BOeffnenCklick landen.
Dort ergänzst du (zwischen begin und end):
ausblenden Delphi-Quelltext
1:
BHineinlegen.Enabled := true;					

Wenn Enabled true ist, reagiert die Komponente auf Mausklicks, Tastatureingaben, etc., wenn Enabled false ist nicht.

Mir ist aufgefallen, dass du sämtliche Prozeduren von Hand zu deklarieren und implementieren scheinst.
In Delphi brauchst du nur auf die Komponente klicken, die ein Ereignis kriegen soll, dann im Objekt Inspektor, wo du die Eigenschaften veränderst, oben auf den Reiter "Ereignisse" oder wenn dein Delphi englisch ist "Events" und klickst doppelt auf das gewünschte Ereignis und schon wird der nötige Code erstellt.
Du musst nur noch reinschreiben was passieren soll.

user profile iconMasterInfinite hat folgendes geschrieben:
Habe delphi 6

Ich schreib dir mal 'ne PN wie man das in die Randspalte kriegt.
Wie man PN's abruft, steht bestimmt in der Hilfe.
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: So 08.05.05 18:03 
@MasterInfinite: Das nächste Mal mach ich dann auch so ne Erläuterung, ich bin jetzt fälschlicher Weise davon ausgegangen, dass du schon Grundkenntnisse hast, tschuldige.