Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 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.013 c
9-1110363388
Djon007
2005-03-09 13:16
2005.06.06
Любители Diablo LoD отзовитесь?


1-1116446492
MuZa
2005-05-19 00:01
2005.06.06
MDI + menu


1-1116534544
Green_Templar
2005-05-20 00:29
2005.06.06
возведение в квадрат


1-1116927001
serg128
2005-05-24 13:30
2005.06.06
Подскажите как создать Dll с формой...


3-1114433967
Bless
2005-04-25 16:59
2005.06.06
Эффективность плана выполнения запроса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский