Chaging Case in C++

  • Hi,

    I am trying to change case of the text to UpperCase/LowerCase. After experimenting for quite a while with styles, came to the conclusion that the only "right" way to do it is to use CallForSelectedText method.

    However, I cannot get it to work in C++ :(

    Code
    procedure CharCallback(Sender: TObject;      var CharItem: WideChar;      par: TParagraph;      posinpar: Integer;      var Abort: Boolean);
    Code
    type TWPConvertMode = (wpUppercase, wpLowercase);var ConvertMode: TWPConvertMode;procedure TWPTBXForm.CharCallback(Sender: TObject;  var CharItem: WideChar;  par: TParagraph;  posinpar: Integer;  var Abort: Boolean);begin  { if ConvertMode=wpUppercase then         par.ANSIChr[posinpar] := ANSIUppercase(par.ANSIChr[posinpar])[1]   else if ConvertMode=wpLowercase then         par.ANSIChr[posinpar] := ANSILowercase(par.ANSIChr[posinpar])[1];   }  if ConvertMode = wpUppercase then    CharItem := WideUpperCase(CharItem)[1]  else CharItem := WideLowerCase(CharItem)[1];  include(par.prop, paprMustInit);end;
    Code
    procedure TWPTBXForm.Lowercase(Sender: TObject);
    begin
      ConvertMode := wpLowercase;
      WPRichText1.TextCursor.CallForSelectedText(Self, [], nil, nil, CharCallback, nil);
      WPRichText1.DelayedReformat;
    end;

    Has anyone succesfully implemented CallForSelectedText in C++?
    Basic example would help a lot!

    dex

    • Offizieller Beitrag

    Hi,

    check out how C++Builder creates an event handler, i.e. OnClick.

    Copy that and add the parameters required "(System::TObject* Sender, wchar_t &CharItem, TParagraph* par, int posinpar, bool &Abort);"

    Now you can use that method as parameter for CallForSelectedText.

    Julian