Results 1 to 7 of 7

Thread: Hoofdletters naar kleine letters in RichMemo

  1. #1

    Hoofdletters naar kleine letters in RichMemo

    L.S.

    Hoe maak je van alle Hoofdletters kleine letters. Dus ABCD naar abcd
    TCharFormat staat in RichEdit.Pas; SES_LOWERCASE staat in RichEdit.

    Graag een werkende procedure.




    Code:
    PROCEDURE Omkering_01;
    Var
      CF : TCharFormat2;
    BEGIN
      FillChar(CF, SizeOf(CF), 0);
      WITH CF DO
      BEGIN
        cbSize := SizeOf(CF);
        RichMemo1.Perform(EM_GETCHARFORMAT, WPARAM(SCF_SELECTION), LPARAM(@CF));
        dwMask :=  CFM_ALLCAPS OR SES_LOWERCASE;
        dwEffects := SES_LOWERCASE or CFM_ALLCAPS;
        RichMemo1.Perform(EM_SETCHARFORMAT, WPARAM(SCF_SELECTION), LPARAM(@CF));
      end;
    END;

  2. #2
    Je hebt een procedure. Wat is er mis mee?
    1+1=b

  3. #3
    Geeft niet het juiste resultaat
    Frans

  4. #4
    Frans, je vraag is als bij de bakker: "een lekker brood graag.".
    Dan vraagt de bakker: "welke smaak wilt u?".
    Vervolgens is jouw antwoord: "Het vorige was niet lekker".
    Weet de bakker nu welk brood jij lekker vindt?

    Geef aan wat het probleem is en je wordt geholpen (vermoedelijk).
    Is je omschrijving: hij doet het niet en je herhaalt dit met andere woorden, dan kunnen we er helaas weinig mee.

    Wat is het resultaat wat niet het juiste resultaat is?
    Welke oplossingen heb je al geprobeerd?

  5. #5
    Maarten je hebt gelijk.

    De onderstaande procedure zet kleine letters (b.v. asdfg) om in: ASDFG. Deze procedure werkt goed. Maar voldoet niet aan de vraag hoe de procedure er dan moet uitzien om te bereiken van ASDFG naar asdf.

    Ik hoop dat het nu duidelijk is.

    Met een hartelijke groet, Frans.


    Code:
    PROCEDURE Omkering_02;
    Var
      CF : TCharFormat2;
    BEGIN
      FillChar(CF, SizeOf(CF), 0);
      WITH CF DO
      BEGIN
        cbSize := SizeOf(CF);
        RMemo1.Perform(EM_GETCHARFORMAT, WPARAM(SCF_SELECTION), LPARAM(@CF));
        dwMask :=  CFM_ALLCAPS;
        dwEffects := CFE_ALLCAPS;
        RMemo1.Perform(EM_SETCHARFORMAT, WPARAM(SCF_SELECTION), LPARAM(@CF));
      end;
    END;

  6. #6
    Wat je vraagt lijkt niet te kunnen.

    SES_LOWERCASE is niet gerelateerd aan CFM_ALLCAPS. De prefix is al een beetje een hint dat dat het geval is.

    CFM = Char Format en gaat vooral over de opmaak ofwel de weergave van tekst. Je kan tekst onderstrepen, vet maken, weergeven als hoofdletters, of kleine hoofdletters. Als je de tekst AbCdEfGh in zou voeren, blijft het gewoon AbCdEfGh, maar door het zetten van de opmaak ziet het eruit als ABCDEFGH. Door andere opmaak te kiezen heb je de oorspronkelijke tekst weer terug.
    Maar kleine letters lijkt niet bij die opties te zitten.

    SES heeft de maken met de Edit Style, en dat bepaalt wat je allemaal daadwerkelijk kan invoeren. En van de mogelijkheden is om de ingevoerde tekst direct om te zetten in kleine letters. Dat is dan ook een daadwerkelijke aanpassing van de tekst, en dus niet van de weergave van de tekst. Als je de tekst AbCdEfGh in zou voeren, dan wordt die omgezet naar abcdefgh.

    De SES waarden hebben dus een ander doel, en gebruik je dan ook met een andere message. Misschien dat ze op de juiste manier doen wat je wilt, maar dat kan ik niet inschatten, omdat je de details daarover niet hebt verwoord.

    Meer info over:
    CFM https://learn.microsoft.com/en-us/wi...charformat2w_1
    SES https://learn.microsoft.com/en-us/wi...m-geteditstyle
    1+1=b

  7. #7
    Senior Member
    Join Date
    Jan 2002
    Location
    Nieuwlande, Nederland
    Posts
    612
    Misschien denk ik te simpel maar ik zou zeggen dat RMemo1.Seltext := Uppercase(RichtEdit1.seltext) ook zou werken. Selstart := 0 en sellength := length(RMemo1.lines.text).

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •