Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kann mir jemand bei der erstellung eines Quelltextes helfen? (https://www.delphipraxis.net/2205-kann-mir-jemand-bei-der-erstellung-eines-quelltextes-helfen.html)

Hansa 15. Jan 2003 08:25

Hi,

Zitat:

Zitat von MrSpock
Hansa ist vielleicht etwas scharf im Ton, aber er hat natürlich Recht.

Wenn sowas in einem Tag fertig werden soll, dann hilft sonst nichts. :mrgreen: Außerdem wage ich zu behaupten : Ohne mein Beispiel wäre hier nicht mehr allzu viel passiert.

@Bloodhound : Versuche deinen Lehrer zu überzeugen, daß Du ihm ein perfektes Programm zeigen wirst, aber erst am Montag. Das könnte noch hinhauen.

Dann zu den Fehlern :
Code:
fi := 'Wert für fi(die eingabe muss noch *(-1)genommen werden;
Da fehlt am Schluß das ' (einfaches Apostroph) vor dem ;
Am Anfang steht eins, alles was danach kommt, wird von Delphi als BESTANDTEIL des strings gewertet !! Auch das "end" in der nächsten Zeile, daher kommen die Fehler :!: Das ist mir noch an drei anderen Stellen aufgefallen. Achte unbedingt darauf, daß ' nur im PAAR auftreten darf !! Alles zwischen dem führenden ' und dem abschließenden ' ist KEIN Code, sondern ein String.

Gruß
Hansa

Hansa 15. Jan 2003 08:45

Das hier ist noch schlimmer :

Code:
procedure TForm1.ErgebnisChange(Sender: TObject);
begin
if checkbox1.checked then
* btemp := b 'Wenn checkbox angehakt muss b mit pi multipliziert werden;
else
* btemp := floattostr(3,14159 * strtofloat(b));
DeinLabel.Caption := 'f(x) =' a + '*sin(btemp(x-' + (-fi) + '))';
guck Dir mal Dein a und b an. :spin: Die stehen einfach so im Raum rum!

Gruß
Hansa

Bloodhound 15. Jan 2003 13:37

Hallo,
wo muss das a und b denn stehen??
Ich kann das Projekt einfach nicht kompilieren, kann das daran liegen das das Prog in Delphi6 geschrieben wurde und ich ne Trial von Delphi 7 habe??

nailor 15. Jan 2003 13:56

Wenn sie neuer als 30 Tage ist, muss es (bei den verwendeten Funktionen) gehen.

nailor 15. Jan 2003 13:58

Zitat:

Zitat von Hansa
Das hier ist noch schlimmer :

Code:
procedure TForm1.ErgebnisChange(Sender: TObject);
begin
if checkbox1.checked then
* btemp := b 'Wenn checkbox angehakt muss b mit pi multipliziert werden;
else
* btemp := floattostr(3,14159 * strtofloat(b));
DeinLabel.Caption := 'f(x) =' a + '*sin(btemp(x-' + (-fi) + '))';
guck Dir mal Dein a und b an. :spin: Die stehen einfach so im Raum rum!

Gruß
Hansa

Die Prozedur erinnert mich sehr an eine von mir, die ich unter http://www.delphipraxis.net/viewtopic.php?t=2411 gepostet habe. Da waren das string-Variablen und somit an der Stelle völlig OK. Wenn jetzt in dem Projekt die Variablen aber nicht deklariert sind, dann wird es auch nicht gehen...

Bloodhound 15. Jan 2003 15:17

Jo das war auch dein Text ich dachte ich könnte das übernehmen!!
Wie kann ich selbiges Problem von dieser Basis ausgehend lösen??
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    a: TEdit;
    b: TEdit;
    fi: TEdit;
    Ergebnis: TEdit;
    Berechnen: TButton;
    CheckBox1: TCheckBox;
    procedure aChange(Sender: TObject);
    procedure bChange(Sender: TObject);
    procedure fiChange(Sender: TObject);
    procedure ErgebnisChange(Sender: TObject);
    procedure BerechnenClick(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.aChange(Sender: TObject);
begin
//
end;

procedure TForm1.bChange(Sender: TObject);
begin
//
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
//
end;

procedure TForm1.fiChange(Sender: TObject);
begin
//
end;

procedure TForm1.BerechnenClick(Sender: TObject);
begin
//
end;

procedure TForm1.ErgebnisChange(Sender: TObject);
begin
//
end;

end.

Bloodhound 15. Jan 2003 18:00

Der Lehrer hat mir nochmal bis Freitag Zeit gegeben, musste ihm aber versprechen noch nen Handbuch mitzuschreiben, aber das ist ja kein Problem

Hansa 15. Jan 2003 19:10

Hi,

Nailor hat doch geschrieben a und b seien String- Variablen. Also mußt Du VAR a:string; und VAR b:string; irgendwo stehen haben. Bei Dir sind sie aber vom Typ TEdit. Willst Du den Wert verwenden, mußt Du a.Text, b.Text usw. verwenden !! Solange das mit den ' aber nicht klar ist, compiliert Dein Programm nie :!: Noch einmal : Dann ist dein Quelltext Bestandteil eines strings, also von irgendwelchen Daten. Die werden von keiner Programmiersprache als Anweisung interpretiert :!:

Gruß
Hansa

Bloodhound 15. Jan 2003 20:41

So die String hab ich geändert, das mit den komentaren geht jetz denke ich auch in Ordnung

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    a: TEdit;
    b: TEdit;
    fi: TEdit;
    Ergebnis: TEdit;
    Berechnen: TButton;
    CheckBox1: TCheckBox;
    procedure aChange(Sender: TObject);
    procedure bChange(Sender: TObject);
    procedure fiChange(Sender: TObject);
    procedure ErgebnisChange(Sender: TObject);
    procedure BerechnenClick(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  a,b,fi: text;

implementation

{$R *.dfm}

procedure TForm1.aChange(Sender: TObject);
begin
a := 'Wert für a';
end;

procedure TForm1.bChange(Sender: TObject);
begin
 b := floattostr(2 * 3.14159 // '2 * 3.14159geteilt durch eingabe ist b')
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
//
end;

procedure TForm1.fiChange(Sender: TObject);
begin
fi := 'Wert für fi(die eingabe muss noch *(-1)genommen werden';
end;

procedure TForm1.BerechnenClick(Sender: TObject);
begin
//
end;

procedure TForm1.ErgebnisChange(Sender: TObject);
begin
if checkbox1.checked then
* btemp := b 'Wenn checkbox angehakt muss b mit pi multipliziert werden';
else
* btemp := floattostr(3,14159 * strtofloat(b));
DeinLabel.Caption := 'f(x) =' a + '*sin(btemp(x-' + (-fi) + '))';
end;

end.

Daniel B 15. Jan 2003 20:46

Du willst jetzt aber nicht behauoten das sich das komplizieren lässt oder?!?!?!

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr.
Seite 5 von 6   « Erste     345 6      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz