Autor |
Beitrag |
Fright
      
Beiträge: 26
|
Verfasst: Do 15.09.11 20:46
Hallo zusammen ich bin es mal wieder und wie die Topic schon sagt gibt wieder Probleme mit diesen 2 Sachen und wie ich das nun anstellen soll...
Mal die Aufgabe:
Hier die ersten versuche:
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: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type TForm1 = class(TForm) Label_Materialausdehnung: TLabel; Edit_Ausgangslaenge: TEdit; TrackBar1: TTrackBar; RadioGroup1: TRadioGroup; Label_in_mm: TLabel; Edit_temperaturdifferenz: TEdit; Label_Temperaturdifferenz: TLabel; Label_Laenge: TLabel; Label_Ausdehnung: TLabel; Edit_Laenge: TEdit; Edit_Ausdehnung: TEdit; Label_Laenge2: TLabel; Label_Ausdehnung2: TLabel; Button_Ergebnis: TButton; procedure Edit_AusgangslaengeChange(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit_AusgangslaengeChange(Sender: TObject); var Ausgangslaenge, Temperaturdiffernz, Laenge, Ausdehnung : Integer; begin Ausgangslaenge := StrToInt(Edit_Ausgangslaenge.Text); Temperaturdiffernz := StrToInt (Edit_temperaturdifferenz.Text); Laenge := StrToInt (Edit_Laenge.Text); Ausdehnung := StrToInt (Edit_Ausdehnung.Text)
CASE RadioGroup1.itemindex of
0:Begin if True then 0.000023 end; 1:Begin if True then 0.000012 end; 2:Begin if True then 0.000008 end; 3:Begin if True then 0.000016 end; 4:Begin if True then 0.000009 end; 5:Begin if True then 0.000019 end; 6:Begin if True then 0.000027 end; end; end; end. |
das integer nicht richtig ist weiss ich, aber wusste gerade den Befehl nicht aus dem Kopf und habe das als platzhalter genommen.
wie gehe ich am besten vorran und wie funktionieren diese 2 Funktionen Richtig?
ich habe die Caseof funktion so im forum gefunden und habe sie mal ein wenig abgewandelt, aber weiss nicht ob richtig ist. hatte mir gedacht, das ich sie erweitere in so fern, das wenn es war ist die rechnung dahinter steht oder so. aber irgendwie ist mir das alles noch nicht schlüssig.
hoffe mir kann jemand helfen
--- Moderiert von Narses: Beiträge zusammengefasst---
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| CASE RadioGroup1.itemindex of 0: Edit_Ausdehnung.Text := FloatToStr (Ausgangslaenge*0.000023); 1: Edit_Ausdehnung.Text := FloatToStr (Ausgangslaenge*0.000012); 2: Edit_Ausdehnung.Text := FloatToStr (Ausgangslaenge*0.000008); 3: Edit_Ausdehnung.Text := FloatToStr (Ausgangslaenge*0.000016); 4: Edit_Ausdehnung.Text := FloatToStr (Ausgangslaenge*0.000009); 5: Edit_Ausdehnung.Text := FloatToStr (Ausgangslaenge*0.000019); 6: Edit_Ausdehnung.Text := FloatToStr (Ausgangslaenge*0.000027); |
wo ist der case of fehler das würde mir schon weiter helfen...
Moderiert von Narses: Bild als Anhang hochgeladen.
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von Fright am Do 15.09.11 23:07, insgesamt 1-mal bearbeitet
|
|
HenryHux
      
Beiträge: 542
Erhaltene Danke: 33
Windows 7 Premium
Delphi XE, Eclipse
|
Verfasst: Do 15.09.11 22:02
In dem Abschnitt ist kein direkt sichtbarer Fehler.
ABer wenn ich in den ersten Post gucke, siehts doch fast so aus, als hättest du in der Zeile über der Case-Verzweigung ein Semikolon vergessen
lg
EDIT: Am besten kann dir hier geholfen werde, wenn du angibst, welche Meldung dir der Compiler gibt.
Für diesen Beitrag haben gedankt: Fright
|
|
Fright 
      
Beiträge: 26
|
Verfasst: Do 15.09.11 22:32
Möchte gern alles so umstellen, das er die ergebnisse erst anzeigt wenn ich auf E drücke. desweiteren soll dabei auch noch die Laenge-ausgangslaenge gerechnet werden. hat da wer einen tip?
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: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type TForm1 = class(TForm) Label_Materialausdehnung: TLabel; Edit_Ausgangslaenge: TEdit; TrackBar1: TTrackBar; RadioGroup1: TRadioGroup; Label_in_mm: TLabel; Edit_temperaturdifferenz: TEdit; Label_Temperaturdifferenz: TLabel; Label_Laenge: TLabel; Label_Ausdehnung: TLabel; Edit_Laenge: TEdit; Edit_Ausdehnung: TEdit; Label_Laenge2: TLabel; Label_Ausdehnung2: TLabel; Button_Ergebnis: TButton; procedure Edit_AusgangslaengeChange(Sender: TObject); procedure TrackBar1Change(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit_AusgangslaengeChange(Sender: TObject); var Ausgangslaenge, Temperaturdiffernz, Laenge, Ausdehnung : Extended; begin Ausgangslaenge := StrToFloat(Edit_Ausgangslaenge.Text); Temperaturdiffernz := StrToFloat (Edit_temperaturdifferenz.Text); Edit_Laenge.Text := FloatToStr (Laenge); Edit_Ausdehnung.Text := FloatToStr (Ausdehnung);
CASE RadioGroup1.itemindex of 0: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000023 * Temperaturdiffernz)); 1: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000012 * Temperaturdiffernz)); 2: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000008 * Temperaturdiffernz)); 3: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000016 * Temperaturdiffernz)); 4: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000009 * Temperaturdiffernz)); 5: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000019 * Temperaturdiffernz)); 6: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000027 * Temperaturdiffernz)); END; end; procedure TForm1.TrackBar1Change(Sender: TObject); begin Edit_Ausgangslaenge.Text:= FloatToStr (TrackBar1.Position); end;
end. |
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 15.09.11 23:00
Moin!
Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
1.2 Beiträge: | Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist. [...] |
Einfach unten in deinem ersten Beitrag auf  klicken und den Titel ändern. Danke Dir!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
Für diesen Beitrag haben gedankt: Fright
|
|
HenryHux
      
Beiträge: 542
Erhaltene Danke: 33
Windows 7 Premium
Delphi XE, Eclipse
|
Verfasst: Do 15.09.11 23:06
Da musst du wohl selber überlegen, wie du das am haben willst.
Immoment hast du alles ja in sowas gepackt : procedure TForm1.Edit_AusgangslaengeChange(Sender: TObject);
Jedes mal wenn also etwas in dem Edit-Feld verändert wird, wird die Procedure ausgeführt.
Also musst du das wohl als erstes da raußnehmen und wo anders reinstecken.
Ein kleiner Tipp : Such mal nach OnKeyDown.
lg
Für diesen Beitrag haben gedankt: Fright
|
|
Fright 
      
Beiträge: 26
|
Verfasst: Do 15.09.11 23:08
kannst du ein wenig genauer werden?
ich bin in programmieren totaler anfänger. ich mach das gerade das 2 mal und kenne diese funktion nicht
--- Moderiert von Narses: Beiträge zusammengefasst---
kann man auch einfach sagen
CASE RadioGroup1.itemindex of
0: 0.0002 z,b,
1: 0.23232
und dann bei der formel sagen das er einen einen wert aus der box nehmen soll beim rechnen also aus der raidogroupbox?
--- Moderiert von Narses: Beiträge zusammengefasst---
wie bau ich das ein bei mir in der case alles andere soll aber so bleiben...
Edit_Ausdehnung.Text := FloatToStr ( Laenge - Ausgangslaenge);
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: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type TForm1 = class(TForm) Label_Materialausdehnung: TLabel; Edit_Ausgangslaenge: TEdit; TrackBar1: TTrackBar; RadioGroup1: TRadioGroup; Label_in_mm: TLabel; Edit_temperaturdifferenz: TEdit; Label_Temperaturdifferenz: TLabel; Label_Laenge: TLabel; Label_Ausdehnung: TLabel; Edit_Laenge: TEdit; Edit_Ausdehnung: TEdit; Label_Laenge2: TLabel; Label_Ausdehnung2: TLabel; Button_Ergebnis: TButton; procedure TrackBar1Change(Sender: TObject); procedure Button_ErgebnisClick(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button_ErgebnisClick(Sender: TObject); var Ausgangslaenge, Temperaturdiffernz, Laenge, Ausdehnung : Extended;
begin Ausgangslaenge := StrToFloat(Edit_Ausgangslaenge.Text); Temperaturdiffernz := StrToFloat (Edit_temperaturdifferenz.Text); Edit_Laenge.Text := FloatToStr (Laenge); Edit_Ausdehnung.Text := FloatToStr (Ausdehnung);
CASE RadioGroup1.itemindex of 0: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000023 * Temperaturdiffernz)); 1: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000012 * Temperaturdiffernz)); 2: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000008 * Temperaturdiffernz)); 3: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000016 * Temperaturdiffernz)); 4: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000009 * Temperaturdiffernz)); 5: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000019 * Temperaturdiffernz)); 6: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000027 * Temperaturdiffernz)); END; end;
procedure TForm1.TrackBar1Change(Sender: TObject); begin Edit_Ausgangslaenge.Text:= FloatToStr (TrackBar1.Position); end;
end. |
|
|
Fright 
      
Beiträge: 26
|
Verfasst: Do 22.09.11 22:24
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: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type TForm1 = class(TForm) Label_Materialausdehnung: TLabel; Edit_Ausgangslaenge: TEdit; TrackBar1: TTrackBar; RadioGroup1: TRadioGroup; Label_in_mm: TLabel; Edit_temperaturdifferenz: TEdit; Label_Temperaturdifferenz: TLabel; Label_Laenge: TLabel; Label_Ausdehnung: TLabel; Edit_Laenge: TEdit; Edit_Ausdehnung: TEdit; Label_Laenge2: TLabel; Label_Ausdehnung2: TLabel; Button_Ergebnis: TButton; procedure Edit_AusgangslaengeChange(Sender: TObject); procedure TrackBar1Change(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit_AusgangslaengeChange(Sender: TObject); var Ausgangslaenge, Temperaturdiffernz, Laenge, Ausdehnung : Extended; begin Ausgangslaenge := StrToFloat(Edit_Ausgangslaenge.Text); Temperaturdiffernz := StrToFloat (Edit_temperaturdifferenz.Text); Edit_Laenge.Text := FloatToStr (Laenge); Edit_Ausdehnung.Text := FloatToStr (Ausdehnung);
Laenge := (Ausgangslaenge * ( 1 + Laenge * Temperaturdiffernz));
CASE RadioGroup1.itemindex of 0: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000023 * Temperaturdiffernz)); 1: Edit_Laenge.Text := FloatToStr (0.000012); 2: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000008 * Temperaturdiffernz)); 3: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000016 * Temperaturdiffernz)); 4: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000009 * Temperaturdiffernz)); 5: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000019 * Temperaturdiffernz)); 6: Edit_Laenge.Text := FloatToStr (Ausgangslaenge * (1 + 0.000027 * Temperaturdiffernz)); END; end; procedure TForm1.TrackBar1Change(Sender: TObject); begin Edit_Ausgangslaenge.Text:= FloatToStr (TrackBar1.Position); end;
end. |
Wie man sieht habe ich alles hin bekommen bis auf eine Sache.
Und zwar wie berechne ich nun die Ausdehnung aus?
Im Grunde "Edit_Ausdehnung = Edit_Laenge - Edit_Ausgangslänge"
Aber 2 Probleme kommen mir dabei. Wir haben 2 verschiedene Formate sprich einmal ist eins Text und das andere eine Zahl
wie ich das löse keine ahnung wie man so eine verschachtelte rechnung macht
2. denke wenn ich den code dafür habe wird er die beiden rechnungen machen und beide ergebnisse in den 2 verschiedenen felder anzeigen oder muss ich da was beachten?
kann mir einer die codezeile dafür machen und dann kurz 1-2 sätze schreiben?
|
|
Xion
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: Fr 23.09.11 01:18
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
|
|
Fright 
      
Beiträge: 26
|
Verfasst: Fr 23.09.11 05:48
so hatte ich das vorher auch mal, aber alpha zeigt er mir als fehler an.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 23.09.11 09:14
Ach übrigens es geht auch komplett ohne Verzweigung. 
|
|
Xion
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: Fr 23.09.11 10:31
Du musst ja auch Alpha als Variable deklarieren!?
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
|
|
Fright 
      
Beiträge: 26
|
Verfasst: Mi 28.09.11 18:54
Danke, durch die noch nicht so guten Erfarhungen und dadurch Folgende fehlende Ruhe beim Programmieren habe ich sowas einfaches vergessen
danke
|
|
|