det burde virke hvis du sagde "for j := 0 to Length(Edit1.text)-2" istedet. Som du gør nu traverserer du jo bare hele strengen og tilføjer al indhold, du glemmer at trække den sidste fra ;)
Derudover har du muligvis et lille problem idet du benytter dig af StartText[j] := <noget> idet at du ikke har angivet en længde på strengen og jeg går udfra at Delphi dermed opfatter strengen som havende en nullværdi. Det burde kunne løses ved f.eks. at lave en setlength(StartText,length(edit1.text)-1); (mener det er sådan den hedder, er lidt rusten når det kommer til pascal ligenu :)
Alternativt, og som nok er en bedre løsning kan du istedet for: StartText[j] := Edit1.text[j];
anvende:
StartText := StartText + Edit1.text[j];
Så behøver du ikke at tænke på at angive en længde på strengen, eller nullværdier for den sags skyld.
Håber det var til en hjælp, jeg har ikke lige haft mulighed for at selv at afprøve noget af det jeg har foreslået, men det burde virke :)
procedure TForm1.Button20Click(Sender: TObject); begin {Fjerner sidste tegn i Edit1.text (aka. backspace)} if Length(Edit1.text) > 0 then begin StartText := ''; for j := 0 to (Length(Edit1.text)-2) do // Da der er en null-karakter til sidst, skal der trækkes to fra. StartText := StartText + Edit1.text[j];
procedure TForm1.Button20Click(Sender: TObject); begin {Fjerner sidste tegn i Edit1.text (aka. backspace)} if Length(Edit1.text) > 1 then // Programmet går ned hvis " > 2 then..." begin Setlength(StartText, Length(Edit1.text)-1); for j := 0 to (Length(Edit1.text)-1) do StartText[j] := Edit1.text[j];
Edit1.text := StartText; end else begin Edit1.text := ''; end; j := 0; end;
Begge disse skulle gerne virke, og er noget bedre at bruge da du slipper for "tonsvis" af overflødig kode:D
Den øverste tror jeg ikke ville virke med en TEdit, men prøv.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.