Avatar billede w13 Novice
16. august 2007 - 21:22 Der 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.

Håber at I forstår og kan hjælpe mig. =)
Avatar billede kroning Nybegynder
16. august 2007 - 21:26 #1
Bruger du TMemo eller hvad?
Avatar billede w13 Novice
16. august 2007 - 21:29 #2
Jup! Og det er vel noget selStart-, selLength-, selText-etellerandet. Har bare ikke nok Delphi-erfaring (endnu) til lige at greje den.
Avatar billede kroning Nybegynder
16. august 2007 - 21:55 #3
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
Avatar billede kroning Nybegynder
16. august 2007 - 21:58 #4
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.
Avatar billede w13 Novice
16. august 2007 - 22:52 #5
Det virker fint! Smid et svar! :)
Avatar billede kroning Nybegynder
16. august 2007 - 22:56 #6
ok
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