2016-04-24 14 views
-1
unit frmDisplaySentence_u; 

interface 

uses 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs, StdCtrls, ComCtrls; 

type 
    TfrmDispOneChar = class(TForm) 
    edtCode: TEdit; 
    btnDisplay: TButton; 
    lblMsg: TLabel; 
    memOutput: TMemo; 
    procedure btnDisplayClick(Sender: TObject); 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

var 
    frmDispOneChar: TfrmDispOneChar; 

implementation 

{$R *.dfm} 

procedure TfrmDispOneChar.btnDisplayClick(Sender: TObject); 
var 
    K, iLength : integer; 
    cOne : char; 
    sCode : string; 
begin 
    sCode := edtCode.Text; 
    iLength := Length(sCode); 
    for K := 1 to iLength do 
     cOne := sCode[K]; 
     memOutput.Lines.Add(cOne); 

end; 

Dies ist mein Code in einem Memo Wort in einzelne Buchstaben aufgeteilt, ein Wort zu spalten in sie in einem Memo einzelne Buchstaben sind, die jeweils in separaten Zeilen.Kann nicht

Mein Code gibt nur den letzten Buchstaben des Wortes zurück. Ich denke, das ist sehr eng, aber ich weiß nicht weiter. Jede Hilfe wäre willkommen.

+3

den Debugger verwenden, kann man diese Art von Problem, sich beim nächsten Mal helfen herauszufinden. –

Antwort

3

Delphi ist nicht wie Python, wo Whitespace ist signifikant und definiert Block. In Delphi haben Sie begin und end verwenden, um den Block, in diesem Fall markieren Ihre for-Schleife:

procedure TfrmDispOneChar.btnDisplayClick(Sender: TObject); 
var 
    K, iLength : integer; 
    cOne : char; 
    sCode : string; 
begin 
    sCode := edtCode.Text; 
    iLength := Length(sCode); 
    for K := 1 to iLength do begin 
     cOne := sCode[K]; 
     memOutput.Lines.Add(cOne); 
    end; 
end; 
+0

konnte nicht glauben, dass es so einfach war * facepalm * danke aber –