Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.06 c
1-1118870859
marri2005
2005-06-16 01:27
2005.07.11
Delphi и Word


14-1118378367
Gamer
2005-06-10 08:39
2005.07.11
СПАМЕР НАЙДЕН


3-1116913651
Ярослав
2005-05-24 09:47
2005.07.11
Case в MS SQL


6-1112613606
BioHaz
2005-04-04 15:20
2005.07.11
Печать из TWebBrowser


3-1116927000
msguns
2005-05-24 13:30
2005.07.11
Что нужно на клиенте для работы ADO+Access