Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];

Вниз

Вставка/замена в TEdit   Найти похожие ветки 

 
ZEE   (2001-09-16 03:33) [0]

Возможно ли осуществлять смену режимов вставки и замены в компонентах TEdit, если да - то как?


 
Никто   (2001-09-16 03:51) [1]

Клавиша "Insert". Один раз нажмешь - вставка, другой раз - замена.
Шутка.


 
Юрий Зотов   (2001-09-16 08:23) [2]

За абсолютную правильность не ручаюсь (писал "с ходу"), но должно работать.

type
TForm1 = class(TForm)
Edit1: TEdit;
procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
FOwerwrite: boolean;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Shift = []) and (Key = VK_INSERT) then FOwerwrite := not FOwerwrite
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
S: string;
OldPos: integer;
begin
with Edit1 do
if FOwerwrite and (Ord(Key) > 31) and (SelStart < Length(Text)) and (SelLength = 0) then
begin
S := Text;
OldPos := SelStart;
S[SelStart + 1] := Key;
Key := #0;
Text := S;
SelStart := OldPos + 1
end
end;


 
Юрий Зотов   (2001-09-16 09:09) [3]

Сразу не сообразил. Есть более простой вариант. Он лучше еще и тем, что здесь не возникает неувязка с OnChange, которая есть в предыдущем варианте (там при OnChange нарушено SelStart, что неправильно).

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
with Edit1 do
if FOwerwrite and (Ord(Key) > 31) and (SelStart < Length(Text)) and (SelLength = 0) then SelLength := 1
end;

Остальное то же самое.


 
Olgerd   (2001-09-17 01:50) [4]

Вопрос может быть немного не по теме, но как в TRichEdit программно нажать Insert, что переключать режим вставки/замены?


 
Лариса   (2001-11-19 18:18) [5]

Используйте библиотеку dx.
TdxEdit без проблем поддерживает смену режимов.


 
LLL   (2001-11-23 20:01) [6]

А, что это за библиотека dx?
И где её можна глянуть?



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
3-75495
Havez
2001-12-19 18:52
2002.01.24
Постоянно портится Autoincrement поле


14-75681
VID
2001-11-25 22:41
2002.01.24
У кого есть WIN XP? Опишите pls...


3-75494
kserg@ukr.net
2001-12-20 11:09
2002.01.24
Как организовать работу в сети с DBase-таблицами ?


3-75493
Victor
2001-12-20 18:08
2002.01.24
Доступ к базе данных издалека - как?


3-75516
Alex22
2001-12-15 11:02
2002.01.24
Базы данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский