AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Edit Felder voneinander Abhängig / Umrechnung
Thema durchsuchen
Ansicht
Themen-Optionen

Edit Felder voneinander Abhängig / Umrechnung

Ein Thema von problemstoffe · begonnen am 10. Jun 2007 · letzter Beitrag vom 11. Jun 2007
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 10. Jun 2007, 20:56
puuuh ja... hab ich nicht bedacht... ich schiess mal aus der Hüfte heraus:

mh... setz die Tags der Edits auf 1,2 und 3... die Onchange-Events setzt du auf CalcFieldsChange, nachdem du es in deinen Code eingebaut hast.

Delphi-Quellcode:
// unter TForm1 eintragen:
procedure CalcFieldsChange(Sender: TObject);

// im Implementations-Bereich
procedure TForm1.CalcFieldsChange(Sender: TObject);
begin
  case (Sender as TEdit).Tag of
    1: begin
      edit2.Text := edit1.Text; // bzw. was du jeweils machen willst
      edit3.Text := edit1.Text;
    end;
    2: begin
      edit1.Text := edit2.Text;
      edit3.Text := edit2.Text;
    end;
    3: begin
      edit1.Text := edit3.Text;
      edit2.Text := edit3.Text;
    end;
  end;
end;
  Mit Zitat antworten Zitat
problemstoffe

Registriert seit: 6. Jun 2007
16 Beiträge
 
#22

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 11. Jun 2007, 15:25
Hey Jungs, jetzt habe ich fast alles geschafft, nur noch ein paar Kleinigkeiten fehlen.
Die Idee ist folgende:
Immer wenn ein OnChange bei einem Edit eintritt, wird die Variable i auf 1,2 oder 3 gesetzt, je nachdem welches Edit Feld geändert wurde. Eigentlich genial einfach, nicht wahr?

Nun habe ich noch ein paar Probleme, irgendwie ist die variable nicht richtig deklariert, jedefalls meckert der Debugger immer rum und sagt mir "Value Assigned to i never used".
Dann bekomme ich irgendwie keine if then else anweisung hin. Die benötige ich aber, sonst würde ja die Schleife wieder mehrmals durchlaufen, weil sich die Felder ja verändern, sobald Erebnisse eingetragen werden.

Und zu guter Letzt habe ich Problem mit der Fahrenheit Rechnung wenn ich das so eintrage wie ich das jetzt gemacht habe, also mit den -32 dann mäckert der debugger und sagt "Incobatible Types : "String" and "Integer"" Ist ja auch logisch, nur wie kann ich das beheben.

Anbei noch der Code, ich hoffe ihr könnt mir auch noch bei den letzten Fragen helfen,

Vielen, vielen Dank!

Delphi-Quellcode:
procedure TForm1.celChange(Sender: TObject);
var i: integer;
  begin
   i:=1
end;

procedure TForm1.reaChange(Sender: TObject);
var i: integer;
  begin
   i:=2
end;

procedure TForm1.fahChange(Sender: TObject);
var i: integer;
  begin
   i:=3
  end;

procedure TForm1.UmrechnenClick(Sender: TObject);
var i: integer ;

begin

if i=1 then

    rea.Text := FloatToStr( round (StrToFloat(cel.Text) * 0.8)) ;
    fah.Text := FloatToStr( round (StrToFloat(cel.Text) * 1.8 + 32));



if i=2 then

    cel.Text := FloatToStr( round (StrToFloat(rea.Text) * 1.25)) ;
    fah.Text := FloatToStr( round (StrToFloat(rea.Text) * 2.25 + 32)) ;


if i=3 then

    cel.Text := FloatToStr( round (StrToFloat(fah.Text-32) * 5 div 9));
    rea.Text := FloatToStr( round (StrToFloat(fah.Text-32) * 4 div 9))
end;
end.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#23

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 11. Jun 2007, 15:41
Du hast die Variable i überall lokal definiert.
Die ist nur in der jeweiligen Methode gültig und nach Abschluss der Methode nicht mehr da.

Mach eine privat Variable in deine Form Klasse

zB.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    Auswahl: Integer;
  public
    { Public declarations }
  end;
und benutze diese Variable.

Edit: Das mit der -32 machst du ganz einfach indem du 32.00 schreibst.

Noch eine Verfeinerung.
Schreibe in die OnCreate Methode deiner Form folgendes.
Damit initialsierst du schon mal die Variable.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Auswahl := 0;
end;
...und folgendes in deine Umrechnen Methode.

Delphi-Quellcode:
procedure TForm1.UmrechnenClick(Sender: TObject);
begin
  if Auswahl = 0 then Exit;
end;
..damit hast du auch noch geprüft, ob dein Initialwert drin steht oder ein neuer Wert.
Die letzen beiden Punkte sind kein muss in deinem Fall, aber soll mehr dem Lernen und sauberem programmieren in späteren Projekten helfen.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
problemstoffe

Registriert seit: 6. Jun 2007
16 Beiträge
 
#24

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 11. Jun 2007, 15:58
Gut, das mit der variable funktioniert.

Wenn ich jedoch 32.00 eingebe sagt er mir Incompatible Types String and Extended.

Notfalls muss ich die als variablen Festlegen und dann die Rechnung machen...
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#25

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 11. Jun 2007, 16:04
...jetzt seh ich wo du den Fehler mit den inkompatiblem Typen hast

zB hier

rea.Text := FloatToStr( round (StrToFloat(fah.Text-32) * 4 div 9)) so muss das lauten

rea.Text := FloatToStr( round (StrToFloat(fah.Text)-32) * 4 div 9)) Du hast versucht von dem Zeichen eine Zahl abzuziehen, daß geht natürlich nicht. Erst umwandeln, dann rechnen.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
problemstoffe

Registriert seit: 6. Jun 2007
16 Beiträge
 
#26

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 11. Jun 2007, 16:18
Ja jetzt ist es fast fertig!

Ich habe das nun so eingegebenrea.Text := FloatToStr( round (StrToFloat(fah.Text)-32.00) * 4 div 9) Funktioniert soweit prima nur nun müsste ich noch die else anweisung reinbringen sonst treten machnmal kleine differenzen beim Umrechnen auf...

Nur wie geht das?


Finde das echt klasse wie intensiv sich manche user hier mit den Problemen anderer rumschlagen. Wirklich ein unglaublich gutes Forum.

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#27

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 11. Jun 2007, 16:24
Ganz grob funktioniert eine if-Anweisung so:
Delphi-Quellcode:
if xyz=acb then
  begin
  end
else
  begin
  end;
Wichtig: vor dem else kein Semikolon!
Richard Mahr
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#28

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 11. Jun 2007, 16:25
Die Differenzen liegen nicht am fehlendem else sondern an fehlenden begin..ends

Wenn du nicht jedem if then sagst wo sie anfängt und endet, nimmt der Compiler nur die erste Zeile danach.

Ein else kannst du trotzdem reinbringen ist sogra besser in dem Fall.

Delphi-Quellcode:
procedure TForm1.UmrechnenClick(Sender: TObject);
begin

if Auswahl=1 then
begin
    rea.Text := FloatToStr( round (StrToFloat(cel.Text) * 0.8)) ;
    fah.Text := FloatToStr( round (StrToFloat(cel.Text) * 1.8 + 32))
end
else
if Auswahl=2 then
begin
    cel.Text := FloatToStr( round (StrToFloat(rea.Text) * 1.25)) ;
    fah.Text := FloatToStr( round (StrToFloat(rea.Text) * 2.25 + 32)) ;
end
else
if Auswahl=3 then
begin
    cel.Text := FloatToStr( round (StrToFloat(fah.Text-32) * 5 div 9));
    rea.Text := FloatToStr( round (StrToFloat(fah.Text-32) * 4 div 9))
end;
end;
Aufgabe:
Guck dir case an und wende es hier an !
Dann lernst du noch etwas zusätzliches, da case noch besser wäre.

Edit:
- die Prüfvariable geändert
- @DreddyH gar nicht, ich habs von oben kopiert und die gefragten Stellen eingesetzt....guck weiter oben und dir wird es klar
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#29

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 11. Jun 2007, 16:46
Wo wird i denn mit einem Wert belegt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
problemstoffe

Registriert seit: 6. Jun 2007
16 Beiträge
 
#30

Re: Edit Felder voneinander Abhängig / Umrechnung

  Alt 11. Jun 2007, 16:52
Und es Funktioniert!

Danke an alle User die Mitgewirkt haben. Letztendlich war es ja dann eine Kombination aus vielein verschiedenen Ideen.

  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 Uhr.
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