Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Schulprojekt: Thema: Berechnungen am Rechteck (https://www.delphipraxis.net/147795-schulprojekt-thema-berechnungen-am-rechteck.html)

hoika 16. Feb 2010 15:43

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
Hallo,

Delphi-Quellcode:
IF (LaengeEdit.Text <> '') or ((BreiteEdit.Text<> '') and (FlaecheEdit.Text <> '')) THEN
begin
  LaengeEdit.Text := IntToStr(StrToInt(FlaecheEdit.Text)/StrToInt(BreiteEdit.Text));
Das nehmen wir mal auseinander

Delphi-Quellcode:
IF (LaengeEdit.Text <> '') then
begin
  LaengeEdit.Text := IntToStr(StrToInt(FlaecheEdit.Text)/StrToInt(BreiteEdit.Text));
[/delphi]

Der FlaecheEdit oder Breitedit können hier leer sein
dann kommt bei StrToInt('') die besagte Exception


OR

Delphi-Quellcode:
IF ((BreiteEdit.Text<> '') and (FlaecheEdit.Text <> '')) THEN
begin
  LaengeEdit.Text := IntToStr(StrToInt(FlaecheEdit.Text)/StrToInt(BreiteEdit.Text));
[/delphi]


Also stimmt dein if nicht immer


Heiko

Dennis S. 16. Feb 2010 15:45

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
hää?? Bei Fläche muss ja was stehen sonst funktioniert das alles ja nicht aber seite a oder b ist ja immer ins leer.

implementation 16. Feb 2010 17:22

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
Eben. Deshalb musst du das or ja auch durch ein and ersetzen. Es muss ja alles zutreffen.
[ADD]
Außerdem solltest du das erste <> durch = ersetzen.

Dennis S. 16. Feb 2010 17:29

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
also wenn ich das 'or' durch ein 'and' ersetze, dann würde es funktionieren, aber dann kann ich die Fehlende Seite, welches genau mein Ziel ist, ja nicht mehr berechnen und der gesamte Befehl wäre überflüssig, da er ja mit dem 1. IF gedeckt ist.
Sobalt ich aber 'or' verwende schmeißt er mir diesen blöden Error rein.

Dennis S. 16. Feb 2010 17:38

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
@implementation:
ja aber dann müsste feld 1 immer leer sein.
wie müsste das sein wenns auch feld 2 sein kann?

implementation 16. Feb 2010 17:48

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
Wenn das zweite Feld leer ist, soll das ja ausgerechnet werden, oder verstehe ich das falsch?

Dennis S. 16. Feb 2010 17:51

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
genau
Delphi-Quellcode:
IF (LaengeEdit.Text <> '') or ((BreiteEdit.Text<> '') and (FlaecheEdit.Text <> ''))
   THEN
    begin
     LaengeEdit.Text := FloatToStr(StrToInt(FlaecheEdit.Text)/StrToInt(BreiteEdit.Text));
     BreiteEdit.Text := FloatToStr(StrToInt(FlaecheEdit.Text)/StrToInt(LaengeEdit.Text));
    end
ist LaengeEdit leer soll dieses ausgerechnent werden. Ist BreiteEdit frei dann das.

implementation 16. Feb 2010 18:09

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
Delphi-Quellcode:
IF (LaengeEdit.Text { --> } = { <-- } '') { --> } and { <-- } (BreiteEdit.Text<> '') and (FlaecheEdit.Text <> '')
   THEN
    begin
     LaengeEdit.Text := FloatToStr(StrToInt(FlaecheEdit.Text)/StrToInt(BreiteEdit.Text));
     BreiteEdit.Text := FloatToStr(StrToInt(FlaecheEdit.Text)/StrToInt(LaengeEdit.Text));
    end

Dennis S. 16. Feb 2010 18:14

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
es ist zum weinen :wall: Ich wenn ich BreiteEdit und FlaecheEdit ausfülle kommt LaengeEdit aber wenn ich LaengeEdit und FlaecheEdit ausfülle kommt aber keine Breite

hoika 16. Feb 2010 18:17

Re: Schulprojekt: Thema: Berechnungen am Rechteck
 
Hallo,

noch mal die Aufgabe

das wenn man Seite a oder b + die Fläche

Delphi-Quellcode:
if (Edit_a.Text<>'') and (Edit_Area.Text<>'') then
begin
 // a und Fläche gegeben
 // b wird berechnet


  Exit;
end;

if (Edit_b.Text<>'') and (Edit_Area.Text<>'') then
begin
 // b und Fläche gegeben
 // a wird berechnet

  Exit;
end;
Jetzt könnte natürlich auch a und b und die Fläche
per Editor eingegeben sein
-> es wird b berechnet,

oder du fängst da ab

Delphi-Quellcode:
if (Edit_a.Text<>'') and (Edit_b.Text<>'') and (Edit_Area.Text<>'') then
begin
  ShowMessage('ööööö');
  Exit;
end;

Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:15 Uhr.
Seite 2 von 3     12 3      

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