Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

HELP! Add a caracter in Memo at cursor Pos

SeaWolfSeaWolf Member Posts: 6
Anyone can help me? I want to add a caracter in a Memo at cursor Position... thanx a lot!..

Comments

  • zibadianzibadian Member Posts: 6,349
    : Anyone can help me? I want to add a caracter in a Memo at cursor Position... thanx a lot!..
    :
    The code below will add the text to the memo at the cursor position.
    [code]
    Memo1.SelLength:=0; // make sure no text is selected, otherwise it is replaced.
    Memo1.SelText:='The character'; // Adding the text
    [/code]
  • SeaWolfSeaWolf Member Posts: 6
    : : Anyone can help me? I want to add a caracter in a Memo at cursor Position... thanx a lot!..
    : :
    : The code below will add the text to the memo at the cursor position.
    : [code]
    : Memo1.SelLength:=0; // make sure no text is selected, otherwise it is replaced.
    : Memo1.SelText:='The character'; // Adding the text
    : [/code]
    :

    thanx a lot .. now I tried with a richedit and works fine too but change the font of the caracter.. do you know why?

  • zibadianzibadian Member Posts: 6,349
    : : : Anyone can help me? I want to add a caracter in a Memo at cursor Position... thanx a lot!..
    : : :
    : : The code below will add the text to the memo at the cursor position.
    : : [code]
    : : Memo1.SelLength:=0; // make sure no text is selected, otherwise it is replaced.
    : : Memo1.SelText:='The character'; // Adding the text
    : : [/code]
    : :
    :
    : thanx a lot .. now I tried with a richedit and works fine too but change the font of the caracter.. do you know why?
    :
    :
    It probably takes the values from DefAttributes and uses those to format the added text. You could try to change them. Or you could try to set the SelAttributes just after you set the SelText.
  • SeaWolfSeaWolf Member Posts: 6
    : : : : Anyone can help me? I want to add a caracter in a Memo at cursor Position... thanx a lot!..
    : : : :
    : : : The code below will add the text to the memo at the cursor position.
    : : : [code]
    : : : Memo1.SelLength:=0; // make sure no text is selected, otherwise it is replaced.
    : : : Memo1.SelText:='The character'; // Adding the text
    : : : [/code]
    : : :
    : :
    : : thanx a lot .. now I tried with a richedit and works fine too but change the font of the caracter.. do you know why?
    : :
    : :
    : It probably takes the values from DefAttributes and uses those to format the added text. You could try to change them. Or you could try to set the SelAttributes just after you set the SelText.

    hmm I tried with selattributes before and after the seltext and doesn't work too. I tried with DefAttributes and doesn't work too.. any other propositions?

  • zibadianzibadian Member Posts: 6,349
    : : : : : Anyone can help me? I want to add a caracter in a Memo at cursor Position... thanx a lot!..
    : : : : :
    : : : : The code below will add the text to the memo at the cursor position.
    : : : : [code]
    : : : : Memo1.SelLength:=0; // make sure no text is selected, otherwise it is replaced.
    : : : : Memo1.SelText:='The character'; // Adding the text
    : : : : [/code]
    : : : :
    : : :
    : : : thanx a lot .. now I tried with a richedit and works fine too but change the font of the caracter.. do you know why?
    : : :
    : : :
    : : It probably takes the values from DefAttributes and uses those to format the added text. You could try to change them. Or you could try to set the SelAttributes just after you set the SelText.
    :
    : hmm I tried with selattributes before and after the seltext and doesn't work too. I tried with DefAttributes and doesn't work too.. any other propositions?
    :
    :
    I have here a succesfully tested code, which does what you want:
    [code]
    procedure TForm1.Button1Click(Sender: TObject);
    var
    OldPos:integer;
    begin
    RichEdit1.SelLength:=0; // Unselect any previous selections
    OldPos:=RichEdit1.SelStart; // Remember the cursor position
    RichEdit1.SelText:='The character'; // Add the text
    RichEdit1.SelStart:=OldPos; // Go back to the original position
    RichEdit1.SelLength:=length('The character'); // select the text
    RichEdit1.SelAttributes.Color:=clRed; // change the attributes
    RichEdit1.SelLength:=0; // remove the selection
    end;
    [/code]
    The reason for the OldPos is that delphi moves the cursor to the last character of the new text. So if you don't jump back to the original position, you will change the text after the inserted text, not the inserted text itself.
  • SeaWolfSeaWolf Member Posts: 6
    : : : : : : Anyone can help me? I want to add a caracter in a Memo at cursor Position... thanx a lot!..
    : : : : : :
    : : : : : The code below will add the text to the memo at the cursor position.
    : : : : : [code]
    : : : : : Memo1.SelLength:=0; // make sure no text is selected, otherwise it is replaced.
    : : : : : Memo1.SelText:='The character'; // Adding the text
    : : : : : [/code]
    : : : : :
    : : : :
    : : : : thanx a lot .. now I tried with a richedit and works fine too but change the font of the caracter.. do you know why?
    : : : :
    : : : :
    : : : It probably takes the values from DefAttributes and uses those to format the added text. You could try to change them. Or you could try to set the SelAttributes just after you set the SelText.
    : :
    : : hmm I tried with selattributes before and after the seltext and doesn't work too. I tried with DefAttributes and doesn't work too.. any other propositions?
    : :
    : :
    : I have here a succesfully tested code, which does what you want:
    : [code]
    : procedure TForm1.Button1Click(Sender: TObject);
    : var
    : OldPos:integer;
    : begin
    : RichEdit1.SelLength:=0; // Unselect any previous selections
    : OldPos:=RichEdit1.SelStart; // Remember the cursor position
    : RichEdit1.SelText:='The character'; // Add the text
    : RichEdit1.SelStart:=OldPos; // Go back to the original position
    : RichEdit1.SelLength:=length('The character'); // select the text
    : RichEdit1.SelAttributes.Color:=clRed; // change the attributes
    : RichEdit1.SelLength:=0; // remove the selection
    : end;
    : [/code]
    : The reason for the OldPos is that delphi moves the cursor to the last character of the new text. So if you don't jump back to the original position, you will change the text after the inserted text, not the inserted text itself.

    I have tried your way but richedit change font when I try to entre a caracter like . try it with the caracter #0176 and keep the Terminal font. :)

Sign In or Register to comment.