::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2004-09-02 16:14:32, Hit : 6839, Vote : 1760
 http://www.howto.pe.kr
 TRichEdit 를 disable 할 때 배경색과 폰트 바꾸기

// TRichEdit을 가지고 무언가 만들고 있는데 TMemo의
// 경우 enable := false 로 하면 배경 텍스트의 색깔이 변경되지 않고
// disable이 되는데, TRichEdit의 경우는 enable := false로 하면
// 배경색이 바뀌어 버리더군요...
// TRichEdit이 disable 되었을때 disable 된 상태로 배경 색깔이 변경되지 않게
// 그대로 흰색으로 보이게 할 수 있는 방법이 없을까요..??

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    RichEdit1: TRichEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure RichEdit1SelectionChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  oldSelStart, oldSelLength: Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Tag := 1 - Memo1.Tag;

  if Memo1.Tag = 1 then
    Memo1.Enabled := False
  else
    Memo1.Enabled := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  RichEdit1.Tag := 1 - RichEdit1.Tag; // 토글일뿐...

  if RichEdit1.Tag = 1 then // Enabled := False
  begin
    oldSelStart  := RichEdit1.SelStart;
    oldSelLength := RichEdit1.SelLength;
    RichEdit1.ReadOnly := True;
    RichEdit1.SelectAll;
    RichEdit1.SelAttributes.color := clInactiveCaption;
    RichEdit1.SelLength := 0;
    HideCaret(RichEdit1.Handle); // 커서(caret) 감추기
  end
  else // Enabled := True
  begin
    RichEdit1.ReadOnly := False;
    SendMessage(RichEdit1.Handle, EM_UNDO, 0, 0);
    RichEdit1.SelStart  := oldSelStart; // 이전 위치 복원
    RichEdit1.SelLength := oldSelLength;
    ShowCaret(RichEdit1.Handle); // 커서(caret) 보이기
  end;
end;

procedure TForm1.RichEdit1SelectionChange(Sender: TObject);
begin
  if RichEdit1.Tag = 1 then
    HideCaret(RichEdit1.Handle);
end;

end.





971   [시스템] 델파이로 DOS 프로그램(Console application) 만들기  김영대 2003/03/06 8779 2833
970   [네트웍/인터넷] 윈도우즈 소켓의 에러번호에 대한 설명  김영대 2003/03/05 7604 2642
969   [시스템] 2기가 이상의 하드의 남은 용량 알아내기...  김영대 2003/03/06 7401 2072
968   [윈도우즈 API] 폼을 최상위로 설정 및 해제  김영대 2003/03/04 5750 2052
967   [윈도우즈 API] 윈도우즈 커서(global cursor) 바꾸기  김영대 2003/03/07 6549 2020
966   [시스템] 시스템 타임이 변경되었는지를 알아내려면...  김영대 2003/03/05 7251 2003
965   [네트웍/인터넷] RFC: Request for Comments  김영대 2003/03/05 7541 1978
964   [시스템] 마우스의 좌/우 기능설정과 버튼갯수 알기  김영대 2003/03/06 7222 1962
963   [일반/컴포넌트] ListBox에 검색(근접검색)기능 두기  김영대 2003/03/05 5864 1954
962   [윈도우즈 API] 작업표시줄의 시계 감추기/보이기  김영대 2003/03/27 7049 1924
961   [네트웍/인터넷] How to bring a network down - "Win Nuke"  김영대 2003/03/06 7038 1922
960   [윈도우즈 API] "Windows 정보" About 화면 사용하기  김영대 2003/03/06 6241 1922
959   [시스템] 내 PC에 사운드카드가 있는지 검사  김영대 2003/03/04 6595 1901
958   [윈도우즈 API] 실행된 Tray Icon 변경하기  김영대 2003/03/07 6166 1861
957   [윈도우즈 API] 메모(TMemo)의 커서(캐럿)모양 바꾸기  김영대 2003/03/05 4676 1855
956   [일반/컴포넌트] 동적으로 생성한 TLabel 마우스로 이동시키기  김영대 2004/08/04 6273 1851
955   [데이터베이스] FoxPro의 제한  김영대 2003/03/05 6654 1847
954   [네트웍/인터넷] Ethernet 랜카드의 MAC adress 구하기  김영대 2003/03/07 7090 1843
953   [일반/컴포넌트] TStatusBar 의 각 Panel의 폰트 바꾸기  김영대 2003/03/04 5546 1834
952   [윈도우즈 API] IE의 "즐겨찾기 구성" 화면 띄우기  김영대 2003/03/30 5546 1832
951   [윈도우즈 API] 윈도우즈 탐색기의 아이콘 뽑아내서 사용하기  김영대 2003/03/07 6303 1831
950   [일반/컴포넌트] 데스크탑의 아이콘을 몽땅 움직여보자!!  김영대 2003/03/05 6220 1831
949   [윈도우즈 API] WinPopup 을 만들기 위한 Mail Slot ?  김영대 2003/03/05 6430 1831
948   [네트웍/인터넷] List of raw FTP commands  김영대 2003/03/05 7024 1829
947   [시스템] 키보드의 Num Lock 키 켜고 끄기  김영대 2003/03/05 6143 1824
946   [일반/컴포넌트] 명령행 인자 받아오기  김영대 2003/03/05 6991 1822
945   [네트웍/인터넷] RS232 통신  김영대 2003/03/07 6698 1803
944   [네트웍/인터넷] NetMask 알아내기  김영대 2003/03/07 7008 1798
943   [일반/컴포넌트] 날짜계산: (yyyy-4) + (mm+254) + (dd+1234) = 몇일?  김영대 2003/03/05 6221 1791
942   [윈도우즈 API] System Images  김영대 2003/03/07 6133 1774
941   [시스템] 프린트 스풀러 제어방법  김영대 2003/03/07 6241 1770
940   [시스템] 마우스가 설치되어 있는지 검사하기  김영대 2003/03/07 6618 1766
939   [일반/컴포넌트] 윈도우즈 "날짜/시간" 설정화면 띄우기  김영대 2003/03/06 5990 1766
938   [시스템] 마우스 자취(trails)의 갯수 조정하기  김영대 2003/03/06 5628 1766
937   [시스템] 마우스 두 번 누르기 속도 조정하기  김영대 2003/03/06 5707 1764
  [일반/컴포넌트] TRichEdit 를 disable 할 때 배경색과 폰트 바꾸기  김영대 2004/09/02 6839 1760
935   [윈도우즈 API] TreeView의 hint popup 없애기  김영대 2003/03/07 5497 1757
934   [일반/컴포넌트] 메뉴의 잘못된 accelerator 를 선택했을때  김영대 2003/03/05 6199 1752
933   [일반/컴포넌트] 사업자 등록번호를 검사하는 법  김영대 2003/03/06 6696 1744
932   [윈도우즈 API] 임시로 만든 파일 꼭 지우기  김영대 2003/03/04 6128 1737

1 [2][3][4][5][6][7][8][9][10]..[25] [다음 10개]
 

Copyright 1999-2019 Zeroboard / skin by zero