AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aktuelle Zeile auslesen ...

Ein Thema von Nils_13 · begonnen am 12. Nov 2005 · letzter Beitrag vom 13. Nov 2005
Antwort Antwort
Seite 1 von 3  1 23      
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 09:59
Hi,

ich lese mit diesem Code die Zeile aus in der ich mich befinde
Delphi-Quellcode:
  i := 0; i2 := 0;
  while i < Memo1.Lines.Count do begin
    Inc(i2, Length(Memo1.Lines.Strings[i]));
    if i2 < Memo1.SelStart then Break;
    Inc(i);
  end;
Der ganze Code:
Delphi-Quellcode:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var i, i2: integer;
begin
  i := 0; i2 := 0;
  while i < Memo1.Lines.Count do begin
    Inc(i2, Length(Memo1.Lines.Strings[i]));
    if i2 < Memo1.SelStart then Break;
    Inc(i);
  end;

  if Key = VK_Return then
  begin
    if LowerCase(IntToStr(i)) = '#exitthen Application.Terminate;
  end;
end;
Warum passiert nichts, wenn ich '#exit' eintippe und Return drücke ?
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 10:06
Lowercase(i) wird auch nie #exit ergeben Müsste ehr Lowercase(Memo1.Lines[i]) heissen, nicht wahr
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 10:29
Delphi-Quellcode:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var i, i2: integer;
begin
  i := 0; i2 := 0;
  while i < Memo1.Lines.Count do begin
    Inc(i2, Length(Memo1.Lines.Strings[i]));
    if i2 < Memo1.SelStart then Break;
    Inc(i);
  end;

  if Key = VK_Return then
  begin
    if Lowercase(Memo1.Lines[i]) = '#exitthen Application.Terminate;
  end;
end;
Läuft immer noch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 10:32
Wie wäre es, wenn du einfach mal den Debugger zur Hand nimmst und die Variableninhalte prüfst?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 10:33
Hi,
überleg mal bitte: wenn du Enter drückst (=> in die nächste Zeile springst), prüfst du den Inhalt dieser neuen Zeile auf den Wert #exit. Aber im Normalfall steht in dieser Zeile ja noch nichts, weil du gerade erst in sie reingesprungen bist/sie erzeugt hast.
Wo musst du also den Wert überprüfen? Auf jeden Fall nicht in der i. Zeile.

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 11:10
... sondern in der i-1 Zeile.
Michael
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#7

Re: Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 11:43
Zitat von Neutral General:
... sondern in der i-1 Zeile.
Nein.
Delphi-Quellcode:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var i, i2: integer;
begin
  i := 0; i2 := 0;
  while i < Memo1.Lines.Count do begin
    Inc(i2, Length(Memo1.Lines.Strings[i]));
    if i2 < Memo1.SelStart then Break;
    Inc(i);
  end;

  if Key = VK_Return then
  begin
    if Lowercase(Memo1.Lines[i-1]) = '#exitthen Application.Terminate;
  end;
end;
Passiert nichts. Was brinbgt mir außerdem der Debugger ? Es tauchen ja keine Fehler auf.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 11:46
Hallo Nils,

kommst du damit zurecht?

Delphi-Quellcode:
procedure TDemoForm.MemoKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  iLine: integer;
begin
  iLine := Memo.Perform(EM_LINEFROMCHAR, -1, 0);

  if (Key = VK_Return) and (LowerCase(Memo.Lines[iLine]) = '#exit') then
    Application.Terminate;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#9

Re: Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 11:48
Zitat von marabu:
Hallo Nils,

kommst du damit zurecht?

Delphi-Quellcode:
procedure TDemoForm.MemoKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  iLine: integer;
begin
  iLine := Memo.Perform(EM_LINEFROMCHAR, -1, 0);

  if (Key = VK_Return) and (LowerCase(Memo.Lines[iLine]) = '#exit') then
    Application.Terminate;
end;
Grüße vom marabu
Danke jetzt läuft es.

Wie könnte ich es machen, dass überprüft wird, ob es die Befehle überhaupt gibt ? Ich könnte es ja über eine Textdatei machen, in der alle Befehle stehen. Aber wie vergleiche ich das dann ? Dadurch wird der Code auch allgemein kleiner, da ich die if Abfragen nicht mehr für jeden Befehl benötige.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: Aktuelle Zeile auslesen ...

  Alt 12. Nov 2005, 11:52
Zitat von Nils_13:
Was brinbgt mir außerdem der Debugger ? Es tauchen ja keine Fehler auf.
Wenn ein Programm nicht macht, was es soll, ist das ja wohl ein Fehler . Wie gesagt, du hättest die Variableninhalte (und Lines) überprüfen sollen.
http://www.delphipraxis.net/internal...ct.php?t=47972
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:35 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