Memo-Fenster die zweite. Fehlermeldung

Für Fragen von Einsteigern und Programmieranfängern...
Doreen H.
Beiträge: 31
Registriert: Mi 9. Jun 2010, 15:11

Memo-Fenster die zweite. Fehlermeldung

Beitrag von Doreen H. »

Also ich hab jetzt in meinen quelltext folgendes eingefügt:

Code: Alles auswählen

procedure TForm1.Button2Click(Sender: TObject);
 
var i,j : integer;
 
begin
 
    for i:=0 to 6 do
     begin
    j:=strtoint(Memo2.Lines[0]);
    Memo2.Lines.Add(IntToStr(j));
     end;
 
end;



also jetzt unabhängig davon, dass ich davon ausgehe, dass jemand nur 7 Zeilen eingibt.. bei mir kommt ne fehlermeldung bei der ausführung, dass memo2 ein invalid integer ist.. also geh ich davon aus, dass die Bezeichnung des Fensters raus muss? Aber wie??? ich finde links keine Option, womit ich den Text "Memo2" aus dem Fenster bekomme! :(((
Zuletzt geändert von monta am Mi 3. Nov 2010, 12:41, insgesamt 1-mal geändert.
Grund: Highlighter

Live
Beiträge: 144
Registriert: So 22. Aug 2010, 16:06
OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
CPU-Target: 64bit
Wohnort: NRW
Kontaktdaten:

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Live »

Code: Alles auswählen

for i:=0 to 6 do
begin
j:=strtoint(Memo2.Lines[0]);
Memo2.Lines.Add(IntToStr(j));
end;
Du hast IntToStr und StrToInt falsch interpretiert, so wie ich das sehe.
Zuletzt geändert von Live am Mi 27. Okt 2010, 18:52, insgesamt 1-mal geändert.

Doreen H.
Beiträge: 31
Registriert: Mi 9. Jun 2010, 15:11

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Doreen H. »

Live hat geschrieben:Du brauchst auch IntToStr und nicht StrToInt ;)
na zum einlesen (1. Zeile) nehme ich strToInt..

und zum ausgeben (2. Zeile) IntToStr.. hää? Versteh ich nicht?


wenn ichs vertausche.. kommt die fehlermeldung schon vor dem starten des programms!
Zuletzt geändert von Doreen H. am Mi 27. Okt 2010, 18:50, insgesamt 1-mal geändert.

Live
Beiträge: 144
Registriert: So 22. Aug 2010, 16:06
OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
CPU-Target: 64bit
Wohnort: NRW
Kontaktdaten:

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Live »

Doreen H. hat geschrieben:
Live hat geschrieben:Du brauchst auch IntToStr und nicht StrToInt ;)
na zum einlesen (1. Zeile) nehme ich strToInt..

und zum ausgeben (2. Zeile) IntToStr.. hää? Versteh ich nicht?
Naja denk doch mal nach:

IntToStr wandelt einen Integer in einen String
StrToInt wandelt einen String in einen Integer,

j ist bei dir als Integer definiert und Memo.Lines sind Strings.

Was steht denn in deinem Memo in Line 0? Bzw was gibst du ein?

Doreen H.
Beiträge: 31
Registriert: Mi 9. Jun 2010, 15:11

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Doreen H. »

wenn ichs aber einfach nur vertausche, dann kommt die fehlermeldung schon vor dem start des programms!

ist doch richtig.. j ergibt sich aus den strings aus den memofenstern... die in integer umgewandelt werden.. deswegen ist doch j ein integer..

Live
Beiträge: 144
Registriert: So 22. Aug 2010, 16:06
OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
CPU-Target: 64bit
Wohnort: NRW
Kontaktdaten:

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Live »

Ja, j ist ein Integer, aber je nach dem was du in das Memo eingibst, könnte es ja auch passieren, dass du "nil" , "" oder Chars zu einem Integer umwandeln willst.

Doreen H.
Beiträge: 31
Registriert: Mi 9. Jun 2010, 15:11

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Doreen H. »

ich gebe nur zahlen ein.. eine ziffer pro zeile..

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von theo »

Im Property Lines den Standartext löschen, oder beim Start Memo1.Clear

Doreen H.
Beiträge: 31
Registriert: Mi 9. Jun 2010, 15:11

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Doreen H. »

theo hat geschrieben:Im Property Lines den Standartext löschen, oder beim Start Memo1.Clear
danke.. jetzt hab ich das problem gelöst.. aber jetzt kommt die meldung, dass " " ein invalid integer ist.. ich hab aber nirgendwo leerzeilen gemacht oder so! :/

Live
Beiträge: 144
Registriert: So 22. Aug 2010, 16:06
OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
CPU-Target: 64bit
Wohnort: NRW
Kontaktdaten:

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Live »

Live hat geschrieben:Ja, j ist ein Integer, aber je nach dem was du in das Memo eingibst, könnte es ja auch passieren, dass du "nil" , "" oder Chars zu einem Integer umwandeln willst.
Sobald du irgendwo eine "leere" Zeile hast, besteht das Problem, was ich beschrieben habe. " " gehört zum Beispiel dazu. Schau mal, ob du irgendwo leere Zeilen hast (evtl auch ob Line[0] leer ist)

Doreen H.
Beiträge: 31
Registriert: Mi 9. Jun 2010, 15:11

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Doreen H. »

Sobald du irgendwo eine "leere" Zeile hast, besteht das Problem, was ich beschrieben habe. " " gehört zum Beispiel dazu. Schau mal, ob du irgendwo leere Zeilen hast (evtl auch ob Line[0] leer ist)
hab ich doch schon geschrieben! Nirgendwo freie Zeilen.. wenn ich die Zahlen eingebe, lösche ich das "Memo1" raus.. schreibe in die erste Zeile meine erste ziffer und dann weiter drunter.. und ich hab geprüft.. keine leeren Zeilen!.. un im zweiten memofenster steht auch nur memo2.. das wird ja dann eh geleert mit memo2.clear!

Live
Beiträge: 144
Registriert: So 22. Aug 2010, 16:06
OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
CPU-Target: 64bit
Wohnort: NRW
Kontaktdaten:

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Live »

Doreen H. hat geschrieben:
memofenster steht auch nur memo2.. das wird ja dann eh geleert mit memo2.clear!
Wenn du aus memo2 einen Wert auslesen willst und memo2 leerst und nichts darein schreibst, hast du doch deine leere Zeile *g*

Doreen H.
Beiträge: 31
Registriert: Mi 9. Jun 2010, 15:11

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Doreen H. »

na wenn ich aber kein zweites memo fenster habe, kann ich es auch nirgendwo ausgeben lassen? Wie soll ich das anstellen? In das Meom2 einfach irgendwelche Zahlen eingeben, mit denen dann eh nichts gemacht wird?

Live
Beiträge: 144
Registriert: So 22. Aug 2010, 16:06
OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
CPU-Target: 64bit
Wohnort: NRW
Kontaktdaten:

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Live »

Wie wärs mit einer If-Abfrage, ob die auszulesende Zeile leer ist? Das haben wir afair im Memo-Thread Teil 1 behandelt. Dort hat jemand eine Lösung für eine solche Abfrage vorgestellt.

Doreen H.
Beiträge: 31
Registriert: Mi 9. Jun 2010, 15:11

Re: Memo-Fenster die zweite. Fehlermeldung

Beitrag von Doreen H. »

Live hat geschrieben:Wie wärs mit einer If-Abfrage, ob die auszulesende Zeile leer ist? Das haben wir afair im Memo-Thread Teil 1 behandelt. Dort hat jemand eine Lösung für eine solche Abfrage vorgestellt.
okay, jetzt sieht mein ding so aus:

Code: Alles auswählen

procedure TForm1.Button2Click(Sender: TObject);
 
var i,j : integer;
 
begin
memo2.Clear;
if Memo2.Lines[j] <> '' then
begin
for i:=0 to 6 do
begin
j:=StrToInt(Memo2.Lines[0]);
Memo2.Lines.Add(IntToStr(j));
end;
end;
 
end;
jetzt kommt keine fehlermeldung mehr!!! Juhuuu .... aber... es leert mir einfach nur das zweite fenster und mit den zahlen pssiert gar nichts! eine unklarheit ist noch bei der zeile: j:=StrToInt(Memo2.Lines[0]); und zwar.. müsste in die eckigen klammern nicht sowas wie 0-6 oder so? Weil so sieht das noch unlogisch aus!

Antworten