Как сделать чтобы в StringGrid при использовании AnsiUpperCase не выделялось то что вводит

Леон4ik
Дата: 27.12.2019 21:39:38
Как сделать чтобы в StringGrid при использовании AnsiUpperCase не выделялось то что вводится. Поясню подробнее. Допустим у меня в коде стоит "распознаватель ввода", т.е. когда я что то начинаю вводить в определенной колонке то запускается событие SGridsetEditText. В этом событии стоит AnsiUpperCase всего что вводится, но есть проблема, что при вводе то что обработал AnsiUpperCase выделяется и при дальнейшем вводе стирается. Получается что кроме одного символа больше ничего не введешь, т.к. он все выделяет. А хотелось бы чтоб не выделялось, но буквы заменялись на верхний регистр.Можно ли это осуществить, если да то как?
DimaBr
Дата: 27.12.2019 22:01:01
Код в студию, а то "ничего не понятно, но очень интересно"
Леон4ik
Дата: 27.12.2019 22:05:12
DimaBr, попробуйте ввести в 1 колонку, не в 0!!!!(перед вводом щелкните где нибудь на форме, я не успел автосмену языка вписать). Весь прикол в том что для снятия выделения есть функции в обычном эдите( к примеру setlength=0), а в гриде нет, увы.
Dimitry Sibiryakov
Дата: 27.12.2019 22:33:50

Леон4ik
Можно ли это осуществить, если да то как?

Выкинуть свой неправильно написанный обработчик. Дотянуться до InplaceEditor и выставить
ему свойство "приводить к верхнему регистру".

Posted via ActualForum NNTP Server 1.5

Леон4ik
Дата: 27.12.2019 22:53:00
Dimitry Sibiryakov, а точнее можно
Леон4ik
Дата: 27.12.2019 22:53:39
Леон4ik
DimaBr, попробуйте ввести в 1 колонку, не в 0!!!!(перед вводом щелкните где нибудь на форме, я не успел автосмену языка вписать). Весь прикол в том что для снятия выделения есть функции в обычном эдите( к примеру setlength=0), а в гриде нет, увы.
я здесь не то выложил
DimaBr
Дата: 27.12.2019 23:02:49
Леон4ik
Дата: 27.12.2019 23:03:30
DimaBr
Да,извините, я пытаюсь решить данную проблему. Для начала извлеките папку.
DimaBr
Дата: 27.12.2019 23:05:58
Зачем выкладывать какие то архивы. Почему просто не показать текст обработчика события ?
Леон4ik
Дата: 27.12.2019 23:09:17
DimaBr
Зачем выкладывать какие то архивы. Почему просто не показать текст обработчика события ?

как изволите:
procedure TFMain.SGmainSetEditText(Sender: TObject; ACol, ARow: Integer;
  const Value: string);
var s1, s2,str:string; i,row:integer;
begin
  if (ACol=2) then
begin
   if (Value='') then begin

   SGmain.Cells[1,Arow]:=' ';

   end;
   if (length(Value)>=2) then
   begin

   SGmain.Cells[2,Arow]:=AnsiUpperCase(Value);

   end;
   end;

if (ACol=1) then
begin
   if (Value='') then begin

   SGmain.Cells[2,Arow]:=' ';
   end
else begin
SGmain.in
   SGmain.Cells[1,Arow]:=AnsiUpperCase(Value);
   for i:=Low(cmd) to High(cmd) do
begin
if cmd[i,1]=AnsiUpperCase(Value) then begin
   mem[arow]:=(StrToInt('$'+cmd[i,0])+N);
   SGmain.Cells[1,Arow]:=cmd[i,1];
   SGmain.Cells[2,Arow]:=cmd[i,0];
end;
    end;
   end;
end;
end;