Avatar billede Slettet bruger
11. oktober 1999 - 09:49 Der er 10 kommentarer og
1 løsning

70

Hvordan for jeg delphi til at formatere en text til når jeg trykker på en knap så formatere den en text der står i en memo så hver ? . , ! kommer til at stå med et mellem rumme eksempel.

Der var engang, en mand. som både? i et hus!

bagefter formateringen


Der var engang , en mand . som både ? i et hus !
Avatar billede snorga Nybegynder
11. oktober 1999 - 10:17 #1
En knap(button1) og en memo (memo1)
------------
procedure TForm1.Button1Click(Sender: TObject);
var
  i,k:integer;
  s:string;
begin
  For i:=0 to memo1.lines.count-1 do begin
    k:=2;
    s:=memo1.lines[i];
    while k<=length(s) do begin
      if s[k] in ['?' , '.' , ',' , '!'] then
      if s[k-1]<>' ' then s:=copy(s,1,k-1)+' '+copy(s,k,length(s));
      inc(k);
    end;
    memo1.lines[i]:=s;
  end;
end;
Avatar billede michaelras Nybegynder
11. oktober 1999 - 13:36 #2
Ikke lige angående dette spørgsmålet, men en anden gang, giv lige spørgsmålet en anden titel end 70 - det er lidt irreterende bare med point-tallet

Michael
Avatar billede snorga Nybegynder
11. oktober 1999 - 14:20 #3
Michael har ret.

Man bør kunne se hvad spørgsmålet omhandler ud fra titlen.
Avatar billede TRoXa Novice
11. oktober 1999 - 14:35 #4
Snorga og Michael har ret... det er skide irreterende *g*

Avatar billede Slettet bruger
12. oktober 1999 - 09:37 #5
okey så gør jeg det næste gang
Avatar billede Slettet bruger
12. oktober 1999 - 19:04 #6
det fungre ikke rigtig kan du ikke lige tjekke det igen den gør ikke noget vd texkten jeg tror det har noget at gøre med (while k<=length(s) do begin)
Avatar billede snorga Nybegynder
13. oktober 1999 - 09:19 #7
Underligt det virkede fint her. Men jeg tester det da lige igen.
Avatar billede snorga Nybegynder
13. oktober 1999 - 09:25 #8
Det virker for mig. Jeg startede et nyt projekt, satte en tmemo kaldet memo1, en tbutton.

Button1's onClick som det jeg har svaret længere oppe.

Satte memo1's lines til:
Memo1!
!sdfsfd!dsfsdf!

Klikkede på Button1, og så ændrede teksten i memo1 til:
Memo1 !
!sdfsfd !dsfsdf !
Avatar billede snorga Nybegynder
13. oktober 1999 - 15:37 #9
Her er koden igen, denne gang med kommentar undervejs:
-------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  i,k:integer;
  s:string;
begin
  //For alle linie i memo1 
  For i:=0 to memo1.lines.count-1 do begin
    //K = det tegn den skal start med at kikke på
    //Grunden til at k ikke start på 1 er:
    //1. Det koster mere kode (en extra tjek for om "s[k-1]") går godt
    //2. En linie skal ikke starte med et mellemrum?
    k:=2;
    //s er kortere end at skrive memo1.lines[i] alle steder :)
    s:=memo1.lines[i];
    // kør hele s-stringen igennem og..
    while k<=length(s) do begin
      //.. kik efter '?' '.' ',' og '!'
      if s[k] in ['?' , '.' , ',' , '!'] then
      //Hvis der findes et af tegne og der ikke allerede
      //er mellemrum foran så..
        if s[k-1]<>' ' then
          //.. sæt et mellemrun ind foran
          s:=copy(s,1,k-1)+' '+copy(s,k,length(s));
      //Næste tegn i linien
      inc(k);
    end;
    //Færdig med den linie, sæt den tilbage i memo1
    memo1.lines[i]:=s;
  end;
  //Færdig
end;
Avatar billede Slettet bruger
13. oktober 1999 - 19:07 #10
det må du undskylle jeg havde skrevte programmeringskoden forkert
Avatar billede snorga Nybegynder
14. oktober 1999 - 00:01 #11
Okay det er i orden.. Så det virker nu?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB