Entwickler-Ecke

Sonstiges (Delphi) - Konsolenanwendung...


654321 - Mo 08.10.07 16:56
Titel: Konsolenanwendung...
Hallo,

da ich im Moment überhaupt keine Ahnung habe wie ich hier weiterkommen soll, wollte ich fragen ob mir jemand Tipps/Hinweise/Lösungsvorschläge geben kann für folgende Aufgabenstellung:

"Bestimme das Quadrat einer ganzen Zahl in einer Konsolenanwendung.
Verwende für die Eingabe die InputBox und für die Ausgabe ein Meldungsfenster.
Aufgabe 1 :Benutze folgende ‚Schablone‘ :Eingabe über Inputbox, defaultwert =1;
Konvertiere den Eingabewert in einen Integerwert;
Berechne das Quadrat;
Nutze für die Ausgabe ein Meldungsfenster ;"

Danke schonmal im Vorraus für alle bemühten Antworten!

MfG

Numberz

PS: Bitte so schreiben das es auch ein Delphi 6 Noob (wie ich) versteht. Danke. ;-)


jasocul - Mo 08.10.07 17:10

:welcome: in der Entwickler-Ecke.

Wie weit bist Du denn schon gekommen mit dem Programm?
Ich fürchte, dass Du ohne Eigenleistung kaum viel Hilfe hier bekommen wirst. Die meisten User sind nicht sonderlich begeistert davon, für andere die Hausaufgaben zu machen.

Also zeig doch mal, was Du bisher geschafft hast. Wir schubsen Dich dann schon in die richtige Richtung. :wink:


654321 - Mo 08.10.07 17:21

Ok verständlich, also als normale Anwendung kam ich so weit:


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

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  a,b: real ;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
a:=strtofloat(Edit1.text);
b:=a*a;
edit2.text:=floattostr(b);
end;

end.

"

Aber ich habe keine Ahnung wie ich das in der Konsolenanwendung machen soll :-( da haperts glaub ich am meisten!

MfG

Numberz

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


Martin1966 - Mo 08.10.07 17:43

user profile icon654321 hat folgendes geschrieben:
Aber ich habe keine Ahnung wie ich das in der Konsolenanwendung machen soll :-(


Im Delphi Menü Datei -> Neu -> Weitere -> Konsolen Anwendung wählen. ;-)

Lg, Martin


654321 - Mo 08.10.07 17:59

user profile iconMartin1966 hat folgendes geschrieben:
user profile icon654321 hat folgendes geschrieben:
Aber ich habe keine Ahnung wie ich das in der Konsolenanwendung machen soll :-(


Im Delphi Menü Datei -> Neu -> Weitere -> Konsolen Anwendung wählen. ;-)

Lg, Martin


und dann da einfach den Code einfügen? Hmm funktionert nicht...

MfG

Numberz


Tino - Mo 08.10.07 19:36

user profile icon654321 hat folgendes geschrieben:
und dann da einfach den Code einfügen? Hmm funktionert nicht...

Nein, einfach einfügen funktioniert nicht. Du musst die Sourcecode Teile schon an den richtigen Stelle im Code einfügen.

Zeig doch mal was du bereits hast.

Gruß
Tino


654321 - Mo 08.10.07 20:41

Wie schon gesagt mehr als das was ich da gepostet habe hab ich noch nicht, da ich garnicht weiss mit welchen Befehlen ich da in diesem Konsolen-"Ding" arbeiten soll. Das andere habe ich mit dem Drag und Drop auf der Delphi-Oberfläche erstellt, was ja nun bei dem Konsolenfenster leider nicht möglich ist. Vielleicht hilft euch das ja mir zu helfen.

MfG Numberz


Sinspin - Mo 08.10.07 22:14

Was du da an Quelltext zeigst ist ja aber nicht aus einer Konsolenanwendung.
Bei Konsolenanwendungen arbeitet mal für gewöhnlich in der Projektdatei (*.DPR).
Und es stehen einem auch keine Fenster zu Verfügung. Zur Laufzeit siehst du dann nur ein DOS ähnliches Fenster.
Eingaben erfolgen dann entweder über dieses Fenster oder über Dialogboxen. Zum Beispiel InputBox, für die Eingabe und MessageBox für die Ausgabe.


654321 - Di 09.10.07 00:20

Ahhh, das hilft doch schon ein bisschen weiter, danke für die Information.

MfG

Numberz


654321 - Di 09.10.07 12:52

so weit bin ich bisher mit der konsole:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
program Project2;



uses
  windows;

begin
      InputBox(1);
      MessageBox();
      ShowMessage();
end.


aber erstens gibt er immer fehlermeldungen aus die ich nicht verstehe, und zweitens weiss ich nicht wie ich weitermachen soll...
kann vielleicht jemand helfen, bitte?

MfG

Numberz

Moderiert von user profile iconjasocul: Delphi-Tags eingefügt


jasocul - Di 09.10.07 12:54

user profile icon654321 hat folgendes geschrieben:
aber erstens gibt er immer fehlermeldungen aus die ich nicht verstehe
Die eine oder andere Meldung kann man sich denken, aber es hilft, wenn Du hier schreibst, welche Meldungen Du bekommst. Dann müssen wir nicht so viel denken. :wink:


654321 - Di 09.10.07 12:57

Danke für die Hilfe, also

[Fehler] Project2.dpr(9): Undefinierter Bezeichner: 'InputBox'
[Fehler] Project2.dpr(10): Nicht genügend wirkliche Parameter
[Fehler] Project2.dpr(11): Undefinierter Bezeichner: 'ShowMessage'

MfG

Numberz


Agawain - Di 09.10.07 12:59

Hi

hier auch für Dich das kleine Tutorial.

Die Konsolenanwendung benutzt sysutils, logischerweise nicht Windows.

Am besten Du erstellst Dir den Programmrumpf mit Datei neu dort Konsolenanwendung auswählen.

Oder halt nach dem Tutorial.

http://www.lima-city.de/tutorials/show/2091

Gruß

Aga


jasocul - Di 09.10.07 13:02

InputBox und ShowMessage ist in Dialogs enthalten. Du musst also diese Unit noch bei Uses mit aufnehmen. Und MessageBox benötigt halt noch Parameter.


654321 - Di 09.10.07 13:03

Dankesehr.

Was mich nur wundert ist, dass mir hier in der Lernanleitung die ich nebenbei benutze gesagt wird ich soll den Term mit //{$APPTYPE CONSOLE} und bei uses die sysutils löschen..., muss ich das verstehen?!??!

MfG Numberz


654321 - Di 09.10.07 13:16

user profile iconAgawain hat folgendes geschrieben:
Hi

hier auch für Dich das kleine Tutorial.

Die Konsolenanwendung benutzt sysutils, logischerweise nicht Windows.

Am besten Du erstellst Dir den Programmrumpf mit Datei neu dort Konsolenanwendung auswählen.

Oder halt nach dem Tutorial.

http://www.lima-city.de/tutorials/show/2091

Gruß

Aga


So ich hab das Tutorial mal "durchgearbeitet" aber bin leider immer noch nicht (viel) schlauer, weil das Tutorial ja nichts zu den Messageboxen sagt, sondern nur ReadLn und WriteLn benutzt. Die Befehle kannte ich vorher schon, die darf ich aber nicht benutzen bei meiner Aufgabe...

MfG Numberz


654321 - Di 09.10.07 13:42

Ich hab jetzt mal (nachdem sie endlich funktioniert) die Delphi Hilfe zu Rate genommen und bin so weit gekommen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
program Project1;

{$APPTYPE CONSOLE}

uses
     Windows,
     Messages,
     SysUtils,
     Dialogs;

var
    x: integer;

begin
      function MessageBox(const Text: 'Hallo';
                          const Caption: 'Quadratrechnen';
                          Buttons: TMessageButtons = [smbOK];
                          Default: TMessageButton = smbOK;
                          Escape: TMessageButton = smbCancel):
                          TMessageButton;
      end;
end.


Nur spuckt er mir hier mehrere Fehlermeldungen aus die ich nicht verstehe:

Zitat:
[Fehler] Project1.dpr(15): Anweisung erwartet, aber 'FUNCTION' gefunden
[Fehler] Project1.dpr(15): Bezeichner erwartet, aber String-Konstante gefunden
[Fehler] Project1.dpr(16): Bezeichner erwartet, aber String-Konstante gefunden
[Fehler] Project1.dpr(17): Undefinierter Bezeichner: 'TMessageButtons'
[Fehler] Project1.dpr(17): Undefinierter Bezeichner: 'smbOK'
[Fehler] Project1.dpr(18): Undefinierter Bezeichner: 'TMessageButton'
[Fehler] Project1.dpr(19): Undefinierter Bezeichner: 'smbCancel'



MfG

Numberz

Moderiert von user profile iconTino: Code- und Quote-Tags hinzugefügt.


Martin1966 - Di 09.10.07 13:51

Du scheinst in der Schule wohl nicht wirklich aufgepasst zu haben. ;-)

Richtig wäre es so (eventuell die Parameter noch anpassen/erweitern):

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
program Project1;

{$APPTYPE CONSOLE}

uses
     Windows,
     Messages,
     SysUtils,
     Dialogs;

var
    x: integer;

begin
  MessageBox('Hallo''Quadratrechnen');
end.


654321 - Di 09.10.07 13:54

user profile iconMartin1966 hat folgendes geschrieben:
Du scheinst in der Schule wohl nicht wirklich aufgepasst zu haben. ;-)

Richtig wäre es so (eventuell die Parameter noch anpassen/erweitern):

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
program Project1;

{$APPTYPE CONSOLE}

uses
     Windows,
     Messages,
     SysUtils,
     Dialogs;

var
    x: integer;

begin
  MessageBox('Hallo''Quadratrechnen');
end.


Spiel bloss nicht auf die Schulzeit an... mal ganz davon abgesehen, das die schon einige Jahre zurückliegt, hab ich nie Delphi gehabt! (Sonst hätte ich wohl auch nicht so viel Hilfe nötig.):-)
Aber dannke für die Hilfe!

MfG

Numberz

Nachtrag: Hmm das was du da geschrieben hast funktioniert bei mir leider so nicht.


Martin1966 - Di 09.10.07 13:58

user profile icon654321 hat folgendes geschrieben:
Spiel bloss nicht auf die Schulzeit an... mal ganz davon abgesehen, das die schon einige Jahre zurückliegt, hab ich nie Delphi gehabt! :-)


Tut mir leid. Ich hatte oben gelesen dass es sich dabei um eine Aufgabenstellung handelt und dann bin ich automatisch auf "Schule" gekommen. Sorry, war keine Absicht. Dann nehme ich das natürlich zurück. ;-)

Lg, Martin


654321 - Di 09.10.07 14:01

user profile iconMartin1966 hat folgendes geschrieben:
user profile icon654321 hat folgendes geschrieben:
Spiel bloss nicht auf die Schulzeit an... mal ganz davon abgesehen, das die schon einige Jahre zurückliegt, hab ich nie Delphi gehabt! :-)


Tut mir leid. Ich hatte oben gelesen dass es sich dabei um eine Aufgabenstellung handelt und dann bin ich automatisch auf "Schule" gekommen. Sorry, war keine Absicht. Dann nehme ich das natürlich zurück. ;-)

Lg, Martin


Keine Problem ich hab das ja nicht als Beleidigung oder so aufgefasst, weil ich mir schon gedacht habe das man vermuten könnte es handele sich um eine Schulaufgabe, was es aber nicht ist.

MfG

Numberz


654321 - Di 09.10.07 14:06

Also bei:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
program Project1;

{$APPTYPE CONSOLE}

uses
     Windows,
     Messages,
     SysUtils,
     Dialogs;

var
     x: integer;

begin
     MessageBox('Hallo');
end.


spuckt er Folgendes aus:

[Fehler] Project1.dpr(19): Inkompatible Typen: 'HWND' und 'String'

Was heisst denn das nun schon wieder (aus der Delphi Hilfe werde ich da leider nicht schlau)

MfG

Numberz

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


Sinspin - Di 09.10.07 16:01

Such mal in der Hilfe nach MessageBox. Da gibt es eine ganze Menge verschiedene Proceduren mit dem gleichen Namen. Du hast da jetzt die falsche erwischt, schmeiß einfach mal die Unit Windows raus, die brauchst du eh nicht. Dann geht es nämlich.


654321 - Mi 10.10.07 11:15

Danke, das Thema hat sich mittlerweile erledigt.

MfG

Numberz