Форум: "Компоненты";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
ВнизКак ограничить Memo ? Найти похожие ветки
← →
Vinil (2004-06-02 02:57) [0]Прошу помощи.
Как ограничить возможности Memo ?
Проблема - пытаюсь сделать компонент имитатор консоли.
Требуется - чтобы имеющийся текст в Memo невозможно было бы
выделить мышкой, удалить , скопировать. Невозможность выделения
текста клавишами с нажатым Шифтом.
Что уже делал - пробовал создать новый Memo, но у него
предок Edit. завяз по самые нехочу. Нуждаюсь в совете как эту
проблему разрешить малой кровью.
Заранее благодарен ...
← →
Sun bittern © (2004-06-02 07:06) [1]Требуется - чтобы имеющийся текст в Memo невозможно было бы
выделить мышкой, удалить , скопировать. Невозможность выделения
текста клавишами с нажатым Шифтом.
Попробовать поюзать SelLength
удалить
ReadOnly := true
← →
Clickmaker © (2004-06-02 13:21) [2]насчет копирования - перехватить WM_COPY (WM_CUT)
Невозможность выделения текста клавишами с нажатым Шифтом - перехватывать WM_KEYDOWN / OnKeyDown
← →
sniknik © (2004-06-08 00:23) [3]> проблему разрешить малой кровью.
вызвать в компоненте cmd или command в зависимости от винды.
> Требуется - чтобы имеющийся текст в Memo невозможно было бы
выделить мышкой, удалить , скопировать. Невозможность выделения
текста клавишами с нажатым Шифтом.
но в консоли все это возможно, кроме удаления не из строки ввода.
для 2000х, мышкой выделяется, копируется (ctrl+c) или из системного меню.
выделение с шифтом после команды "выделить" из того же системного меню.
← →
Mim1 © (2004-06-08 02:14) [4]В listbox"е вродь и не выделить нииизя ни скопировать.
← →
Agent13 © (2004-06-09 17:31) [5]Ну чтобы удалить нельзя было, это я понимаю, но копирование запрещать зачем?
← →
Clickmaker © (2004-06-10 10:59) [6]
> Agent13 © (09.06.04 17:31) [5]
> Ну чтобы удалить нельзя было, это я понимаю, но копирование
> запрещать зачем?
Секретная информация :)
← →
Anatoly Podgoretsky © (2004-06-14 09:03) [7]Рисуешь сам на канве, а текст хранишь отдельно и никому не отдаешь.
← →
Rouse_ © (2004-06-14 13:34) [8]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TROMemo = class(TMemo)
private
procedure WMCut(var Message: TMessage); message WM_CUT;
procedure WMCopy(var Message: TMessage); message WM_COPY;
procedure WMGetText(var Message: TMessage); message WM_GETTEXT;
procedure WMContextMenu(var Message: TWMContextMenu);
message WM_CONTEXTMENU;
public
constructor Create(AOvner: TComponent); override;
end;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TROMemo }
constructor TROMemo.Create(AOvner: TComponent);
begin
inherited;
ReadOnly := True;
end;
procedure TROMemo.WMContextMenu(var Message: TWMContextMenu);
begin
Message.Result := 0;
end;
procedure TROMemo.WMCopy(var Message: TMessage);
begin
Message.Result := 0;
end;
procedure TROMemo.WMCut(var Message: TMessage);
begin
Message.Result := 0;
end;
procedure TROMemo.WMGetText(var Message: TMessage);
begin
Message.Result := 0;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
ROMemo: TROMemo;
begin
ROMemo := TROMemo.Create(Self);
ROMemo.Parent := Self;
ROMemo.Text := "Попробуй получить этот текст :)";
end;
end.
Отключаем все вплоть до контектстного меню, ну за исключением выделения :)
Для этого см > [2] Clickmaker © (02.06.04 13:21) + WM_LBUTTONDOWN
← →
Igorek © (2004-06-15 18:58) [9]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Console: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
I: Integer;
procedure TForm1.Button1Click(Sender: TObject);
procedure AddCommand(const Command: string);
begin
with Console do
Caption := Caption + ">" + Command + #13;
end;
begin
AddCommand("command" + IntToStr(I));
AddCommand("command" + IntToStr(I) + " run result");
Inc(I);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with Console do
begin
Layout := tlBottom;
Color := clHighlightText;
end;
end;
end.
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c