16. august 2007 - 21:22Der er
5 kommentarer og 1 løsning
Returnere tegn mellem cursor og sidste mellemrum/punktum
Hej Eksperter.
Jeg er i gang med at lave et tekstredigeringsprogram, som indtil videre bare er en avanceret udgave af Notesblok. Jeg er nu i gang med at lægge HTML-, CSS-, JavaScript- og ASP-koder ind i et form for bibliotek i programmet, så jeg kan benytte dem, når jeg skriver hjemmesider. Når man trykker F1 dukker en boks op ved musen, hvori koderne under det valgte kodesprog vises.
Nu ville jeg gerne, at boksen finder ud af, hvilken kode, man er ved at skrive, så den kan vise den. Dvs., at mit spørgsmål er:
Hvordan henter jeg alle tegn fra cursoren og tilbage til sidste mellemrum/punktum/andre tegn, jeg selv kan definere?
Hvis jeg skriver: document.getEleme og trykker F1 skal min kode altså kunne finde og returnere "getEleme", så jeg kan arbejde med denne streng og kun vise ting, der begynder med "getEleme", i boksen.
function GetLastWord(Memo : TMemo; Separators : TSysCharSet) : string; var i : integer; begin for i:=Memo.SelStart downto 1 do if Memo.Text[i] in Separators then begin Result:=Copy(Memo.Text,i+1,Memo.SelStart-i); Break; end; end;
------------------
Kaldes således:
var DinTekst : string; begin DinTekst:=GetLastWord(Memo,['.',#32,',']); end;
her benyttes et punktum et mellemrun(#32) og et komma
Du kunne self. også definere tegnene direkte i GetLastWord funktionen så du ikke skal angive dem hver gang. Og hvis det altid er den samme TMemo behøver du self. heller ikke angive den.
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.