![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Edit - выделение [D7, WinXP]
Earth © (2005-06-13 19:46:00)Как запретить выделение текста в Edit?
-=XP=- (2005-06-15 09:53:00) [1]А почему просто не перекрыть WndProc?
Как один из вариантов.
Причем, первый из вариантов.
P.S. С рабочего места, да в такое время...
Юрий Зотов (2005-06-15 09:27:00) [2]> -=XP=- © (14.06.05 22:19) [15]
А почему просто не перекрыть WndProc?
-=XP=- (2005-06-14 22:19:00) [3]
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. Когда Вас будут бить пользователи - не кричите "Помогите!". А то прибегу - и помогу. Пользователям.
Earth (2005-06-14 22:13:00) [4]Хорошо, но я это обошёл, если выделять чень быстро, то таймер не помогает!
-=XP=- (2005-06-14 20:14:00) [5]Вот же неугомонный изобретатель велосипеда!
По таймеру, или в оконной процедуре (тут придется повозиться):
if (<Edit.>SelLength > 0) then <Edit.>SelLength := 0;
Earth (2005-06-14 20:03:00) [6]Это всё не то, да и не по теме!
-=XP=- (2005-06-14 16:13:00) [7]OnChange - нельзя т.к. записывается имя нажатого симфола!
Как насчет Ctrl+V, Shift+Ins?
Earth (2005-06-14 16:09:00) [8]OnChange - нельзя т.к. записывается имя нажатого симфола!
Кто ни будь знает как программно решить мою задачу?
ЮЮ (2005-06-14 11:57:00) [9]>Пользователь вводит пароль, который регистрируется в окне статистики
После каждого нажатия клавиши?
Тогда уж регистрирацию в окне статистики делай в обработчике OnChange, т.е. при каждом изменении содержимого Edit-a :)
-=XP=- (2005-06-14 11:52:00) [10]Вы это о чем?
Earth (2005-06-14 11:30:00) [11]Ситуация такая: Пользователь вводит пароль, который регистрируется в окне статистики, а если пользователь выделяет пароль а затем печатает новый, то в окне статистики ничего о выделении не отображается, пояэтому я считаю, что выделение нужно запретить! А вот как это сделать, не знаю...
Если кто знает помогите
Просто Джо (2005-06-13 22:22:00) [12]Раз уж тут варианты сыплются как из ведра, кину и я свой: Canvas.TextOut в TImage :^)
NightStranger (2005-06-13 22:21:00) [13]Memo c ReadOnly=true;
Edit c Enabled=false;
Да и действительно... Лейбл
;)
-=XP=- (2005-06-13 20:27:00) [14]У меня программа, для защиты компа, и нужен код для запрета выделение!
Защиты от пользователя? :)))
Используйте TLabel.
Ученик (2005-06-13 20:10:00) [15]>Earth (13.06.05 20:07) [2]
Этот текст не надо будет переслать Вам, например, по электронной почте ?
Earth (2005-06-13 20:07:00) [16]У меня программа, для защиты компа, и нужен код для запрета выделение!
Anatoly Podgoretsky (2005-06-13 19:50:00) [17]Оно мешает, мне нет и даже помогает подумать