Текущий архив: 2005.07.11;
Скачать: CL | DM;
ВнизEdit - выделение Найти похожие ветки
← →
Earth (2005-06-13 19:46) [0]Как запретить выделение текста в Edit?
← →
Anatoly Podgoretsky © (2005-06-13 19:50) [1]Оно мешает, мне нет и даже помогает подумать
← →
Earth (2005-06-13 20:07) [2]У меня программа, для защиты компа, и нужен код для запрета выделение!
← →
Ученик (2005-06-13 20:10) [3]>Earth (13.06.05 20:07) [2]
Этот текст не надо будет переслать Вам, например, по электронной почте ?
← →
-=XP=- © (2005-06-13 20:27) [4]У меня программа, для защиты компа, и нужен код для запрета выделение!
Защиты от пользователя? :)))
Используйте TLabel.
← →
NightStranger © (2005-06-13 22:21) [5]Memo c ReadOnly=true;
Edit c Enabled=false;
Да и действительно... Лейбл
;)
← →
Просто Джо © (2005-06-13 22:22) [6]Раз уж тут варианты сыплются как из ведра, кину и я свой: Canvas.TextOut в TImage :^)
← →
Earth (2005-06-14 11:30) [7]Ситуация такая: Пользователь вводит пароль, который регистрируется в окне статистики, а если пользователь выделяет пароль а затем печатает новый, то в окне статистики ничего о выделении не отображается, пояэтому я считаю, что выделение нужно запретить! А вот как это сделать, не знаю...
Если кто знает помогите
← →
-=XP=- © (2005-06-14 11:52) [8]Вы это о чем?
← →
ЮЮ © (2005-06-14 11:57) [9]>Пользователь вводит пароль, который регистрируется в окне статистики
После каждого нажатия клавиши?
Тогда уж регистрирацию в окне статистики делай в обработчике OnChange, т.е. при каждом изменении содержимого Edit-a :)
← →
Earth (2005-06-14 16:09) [10]OnChange - нельзя т.к. записывается имя нажатого симфола!
Кто ни будь знает как программно решить мою задачу?
← →
-=XP=- © (2005-06-14 16:13) [11]OnChange - нельзя т.к. записывается имя нажатого симфола!
Как насчет Ctrl+V, Shift+Ins?
← →
Earth (2005-06-14 20:03) [12]Это всё не то, да и не по теме!
← →
-=XP=- © (2005-06-14 20:14) [13]Вот же неугомонный изобретатель велосипеда!
По таймеру, или в оконной процедуре (тут придется повозиться):if (<Edit.>SelLength > 0) then <Edit.>SelLength := 0;
← →
Earth (2005-06-14 22:13) [14]Хорошо, но я это обошёл, если выделять чень быстро, то таймер не помогает!
← →
-=XP=- © (2005-06-14 22:19) [15]
unit uUnselEdit;
interface
uses
Windows, Messages, StdCtrls, Classes, Controls;
type
TNonSelEdit = class(TEdit)
private
OldWndProc: TWndMethod;
procedure AddWndProc(var Message: TMessage);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("Standard", [TNonSelEdit]);
end;
{ TNonSelEdit }
procedure TNonSelEdit.AddWndProc(var Message: TMessage);
var
SS, SE: integer;
begin
if (Message.Msg <> EM_SETSEL) and (Message.Msg <> EM_GETSEL) and (SelLength > 0) then
SelLength := 0;
OldWndProc(Message);
end;
constructor TNonSelEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OldWndProc := WindowProc;
WindowProc := AddWndProc;
end;
destructor TNonSelEdit.Destroy;
begin
WindowProc := OldWndProc; //Х.З.
inherited;
end;
end.
P.S. Когда Вас будут бить пользователи - не кричите "Помогите!". А то прибегу - и помогу. Пользователям.
← →
Юрий Зотов © (2005-06-15 09:27) [16]> -=XP=- © (14.06.05 22:19) [15]
А почему просто не перекрыть WndProc?
← →
-=XP=- © (2005-06-15 09:53) [17]А почему просто не перекрыть WndProc?
Как один из вариантов.
Причем, первый из вариантов.
P.S. С рабочего места, да в такое время...
Страницы: 1 вся ветка
Текущий архив: 2005.07.11;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.044 c