Archiv verlassen und diese Seite im Standarddesign anzeigen : var, da verstehe ich etwas nicht
Anfänger
07.12.2001, 21:17
Hallo, ich zurzeit besuche zurzeit die 8 Klasse und ich will Delphi lernen also habe ich mir das Buch Delphi für Kids gekauft. So jetzt verstehe ich da aber etwas nicht, und zwar bei Variablen, da steht var Zahl1, Zahl2, Integer;
Wovon ist Integer abgeleitet und was bedeutet es.
Und ich verstehe das noch was nicht so richtig : var TxT: String;
Der unterschied ist mir schonklar das erste ist für Zahlen das zweite für Zeichenketten, aber wobei kann man das zweite den anwenden bzw. benutzen.
Also..
Integer sind wie du schon sagtest Zahlen. Mit Integerwerten rechnest du, also z.B.:
VAR int1,int2,int3,erg:INTEGER;
[...]
int1 := 4;
int2 := 3;
int3 := 6;
erg := int1 + int2 + int3;
Das ist korrekt, in erg wäre dann das Ergebnis dieser Berechnung als Zahl gespeichert, in dem Fall 13.
Wenn du nun statt INTEGER einen STRING genommen hättest, dann würde der Code nun etwas anderes bewirken:
VAR int1,int2,int3,erg:STRING;
[...]
int1 := 4;
int2 := 3;
int3 := 6;
erg := int1 + int2 + int3;
Erstmal würdest du Fehlermeldungen bekommen, weil du vergessen hast, Anführungszeichen bei den Wertzuweisungen der Variablen zu setzen und du damit Zahlen, also Integerwerte als String, also als Text abspeichern wolltest. Du müsstest diese entweder nachträglich setzen oder die Fkt. IntToStr(intX); verwenden.
Und in erg wäre nun folgender Text gespeichert: 436
Mit dem Typ Strings werden also alle möglichen Textoperationen durchgeführt, du kannst damit in Textdateien z.B. alle "ö"´s durch "oe" ersetzen undundund... STRING wird immer benötigt und verwendet, wenn es um Textdarstellung/-bearbeitung geht, da dies mit INTEGER nicht geht, dort kannst du nur Zahlenwerte speichern.
Ich hoffe, das beantwortet deine Frage :)
mfg, Agent
Anfänger
08.12.2001, 11:55
Ja, das hat meine Fragen beantwortet. "Vielen Dank". Aber jetzt habe ich noch mehr fragen natürlich nur, wenn sie Zeit haben sie zu beantworten.
Also sie habe dort jetzt zwei Beispiele gegeben.
Aber wie kann ich sie benutzen das verstehe ich nicht, was muss ich denn da genau machen.
Hier wird sich gedudst! ;)
-Wie sehen die Beispiele denn aus?
Ich denke, er meint meine 2 Codeschnipsel von oben :)
Hmm.. also ganz check cih die Frage nicht.. was ist das Problem?
Wie du sie benutzen kannst.. nunja, du must eben die Variablen definieren, also
VAR a,b,c:STRING;
und dann kannst du die Strings benutzen.. oder meinst du, wie man genau die Beispiele von mir einsetzt? Nunja.. sie sind zwar recht unnötig, aber dazu müstest du dir erstmal ein Formular basteln, mit 3 Editfeldern, also Eingabefeldern. Dann noch einen Button und zwei Labels.
Die Namen lässt du alle wie von Delphi vorgegeben. Dann doppelklickst du den Button. Delphi bringt dich nun zu dem Bereich im Code, der ausgeführt wird, wenn im laufenden Programm jemand auf den Button drückt. Jetzt gehst du mit dem Cursor genau vor das "begin" drückst Enter und gehst in die entstandene freie Zeile. Dort tippst du dann die VAR ... : ...; Zeile(n) ein.
VAR ergebniszahl:INTEGER;
ergebnistext:STRING;
Dann gehst du wieder hinter das "begin". Zwischen begin und end tippst du nun:
ergebniszahl := StrToInt(Edit1.Text) + StrToInt(Edit2.Text) + StrToInt(Edit3.Text);
ergebnistext := Edit1.Text + Edit2.Text + Edit3.Text;
OK. Die erste der 2 Zeilen bewirkt, dass das Programm schaut was in den Feldern steht, diese Texte in Zahlen, mit denen du rechnen kannst, umwandelt (StrToInt) und dann in der Variable ergebniszahl die Zahl speichert, die die 3 eingegebenen Wete zusammen ergeben.
Die zweite Zeile liest wieder die eingegebenen Buchstaben (Texte, Strings) aus den Editfeldern aus, diesmal wird aber nicht gerechnet sondern zusammengehängt: An den Text von Feld1 wird nahtlos der Text von Feld2 und dann daran der von Feld3 angefügt.
Du siehst: 2 ganz verschiedene Vorgänge.
Jetzt tippst du noch:
Label1.Caption := IntToStr(egebniszahl);
Label2.Caption := ergebnistext;
ein, was bewrikt, dass in Label1 jetzt das Ergebnis der Addition von oben steht, wozu der Zahlenwert erst in einen Text umgewandelt werden muss, da nur Texte auf Buttons/Labels/etc. stehen dürfen. (IntToStr)
Und in Label2 steht jetzt der zusammengesetzte String/Text.
Ich hofe, ich hab dir ein klein wenig geholfen :)
mfg, Agent
Anfänger
09.12.2001, 08:22
Irgendetwas will da bei mir nicht klappen.
Ich habe "VAR ergebniszahl:INTEGER;
ergebnistext:STRING; "vor begin eingetippt, also doppelt auf Button geklickt und dort vor begin eingetippt.
Dann habe ich "ergebniszahl := StrToInt(Edit1.Text) + StrToInt(Edit2.Text) + StrToInt(Edit3.Text);
ergebnistext := Edit1.Text + Edit2.Text + Edit3.Text;"Auch eingetippt.
Das Prog starte gar nicht. Dann habe ich den var Text oben hin gesteckt, wo "var
Form1: TForm1;"steht. Das Prog startet jetzt bloß funktionieren tut es im Prog noch nicht. Dann habe ich denn Label Text im Button code eingegeben das Prog startet wieder nicht. Was habe ich falsch gemacht.
Hmmm..
Zip mal alle Dateien des Progs und schick sie mir per Mail, ich schaus mir mal an :)
mfg, Agent
Ich weiß ja nicht, ob Du´s jetzt hinbekommen hast, wenn nicht, guck Dir das mal an:
procedure TForm1.Button1Click(Sender: TObject);
var
ergebnistext: String;
ergebniszahl: Integer;
begin
ergebnistext := Edit1.Text + Edit2.Text + Edit3.Text;
ergebniszahl := StrToInt(Edit1.Text) + StrToInt(Edit2.Text) + StrToInt(Edit3.Text);
Label1.Caption := ergebnistext + #13#10 + IntToStr(ergebniszahl);
end;
Greetz ...
somana
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.