Q&A

  • form의 버튼 색이 변하려면...
안녕하세요.



첫번째...

form에 위치하는 버튼들의 색은 모두 회색인데 마우스 화살표가 버튼에 놓이게 되면 버튼의 색이 변하게 하고 싶습니다.

마우스 화살표가 다음 버튼으로 이동하면 이전 버튼의 색은 원상태로 되돌아 오고 말입니다.

어떻게 하면 될까요?



두번째...

form위에 테이블을 놓고



테이블 예)

이름 주소 연락번호

@@@ 000000 111-1111

*** $$$$$$ 222-1111



에디트에 "이름" 아래에 있는 '@@@'라는 이름을 적게되면 테이블 왼쪽에 있는 삼각형(화살표 비슷)이 해당 데이터로 이동하게 했습니다.

여기서 삼각형이 위치하는 줄, 데이터들의 글자 색이 변하게 하고 싶습니다.

어떻게 하면 되지요?





1  COMMENTS
  • Profile
    김영대 1999.11.26 02:51
    송수아 wrote:

    > 안녕하세요.

    >

    > 첫번째...

    > form에 위치하는 버튼들의 색은 모두 회색인데 마우스 화살표가 버튼에 놓이게 되면 버튼의 색이 변하게 하고 싶습니다.

    > 마우스 화살표가 다음 버튼으로 이동하면 이전 버튼의 색은 원상태로 되돌아 오고 말입니다.

    > 어떻게 하면 될까요?

    >

    > 두번째...

    > form위에 테이블을 놓고

    >

    > 테이블 예)

    > 이름 주소 연락번호

    > @@@ 000000 111-1111

    > *** $$$$$$ 222-1111

    >

    > 에디트에 "이름" 아래에 있는 '@@@'라는 이름을 적게되면 테이블 왼쪽에 있는 삼각형(화살표 비슷)이 해당 데이터로 이동하게 했습니다.

    > 여기서 삼각형이 위치하는 줄, 데이터들의 글자 색이 변하게 하고 싶습니다.

    > 어떻게 하면 되지요?



    비슷한 팁이 있어서 올립니다(변경해서 사용하세요)



    // 첫번째...

    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    CheckBox1: TCheckBox;

    private

    { Private declarations }

    procedure WndProc(var Message: TMessage); override;

    public

    { Public declarations }

    procedure ChangeColor(Sender: TObject; Msg: Integer);

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    procedure TForm1.WndProc(var Message: TMessage);

    begin

    // 콤포넌트에 마우스가 있으면(over) 폰트의 색상을 바꾼다

    if Message.LParam = Longint(Label1) then

    ChangeColor(Label1, Message.Msg);

    if Message.LParam = Longint(Label2) then

    ChangeColor(Label2, Message.Msg);

    if Message.LParam = Longint(Label3) then

    ChangeColor(Label3, Message.Msg);

    if Message.LParam = Longint(CheckBox1) then

    ChangeColor(CheckBox1, Message.Msg);

    inherited WndProc(Message);

    end;



    procedure TForm1.ChangeColor(Sender: TObject; Msg: Integer);

    Begin

    // 마우스가 Label위에 있을때

    if Sender is TLabel then

    begin

    if (Msg = CM_MOUSELEAVE) then

    (Sender as TLabel).Font.Color := clWindowText; // 마우스가 떠날때

    if (Msg = CM_MOUSEENTER) then

    (Sender as TLabel).Font.Color := clBlue; // 마우스가 들어올때

    end;



    // 마우스가 CheckBox위에 있을때

    if Sender is TCheckBox then

    begin

    if (Msg = CM_MOUSELEAVE) then

    (Sender as TCheckBox).Font.Color := clWindowText;

    if (Msg = CM_MOUSEENTER) then

    (Sender as TCheckBox).Font.Color := clRed;

    end;

    end;



    end.





    // 두번째...

    TDBGrid의 OnDrawColumnCell을 이용하면 편리합니다.

    몇가지만 응용하면 지정한 셀에 이미지를 그려 체크표시등도

    가능합니다.

    아래의 예제는 특정셀을 노란색바탕에 검은 글씨로 만듭니다.

    State를 검사하는 이유는 현재 선택된 셀은 그려선 안되기

    때문이지요.. 또한 Boolean값으로 저장되어 있는 컬럼들,

    예를 들자면 성별같은 것들을 '남','여'로 표시할때도

    이 Event를 사용하지요.



    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;

    const Rect: TRect; DataCol: Integer; Column: TColumn;

    State: TGridDrawState);

    begin

    with TDBGrid(Sender).Canvas do begin

    if (Column.FieldName = 'FILEDNAME') and (State = []) then begin

    Brush.Color := clYellow;

    Font.Color := clBlack;

    end

    else begin

    Brush.Color := clWindow;

    Font.Color := clWindowText;

    end;

    if (gdFocused in State) or (gdSelected in State) then begin

    Brush.Color := clHighlight;

    Font.Color := clHighlightText;

    end;

    FillRect(Rect);

    TextOut(Rect.Left+2,Rect.Top+2,Column.Field.AsString);

    Brush.Style := bsSolid;

    Brush.Color := clWindow;

    end;

    end;





    • 김영현
      1999.11.26 17:12
      살아있는의문부호? wrote: > Delphi5로 업그레이드 할려고 합니다... > 그런데..Delphi5에는 Ctrl3d프로...
    • 살아있는의문부호?
      1999.11.26 17:45
      김영현 wrote: > 살아있는의문부호? wrote: > > Delphi5로 업그레이드 할려고 합니다... > > 그런데..De...
    • 클라라
    • 1999.11.26 10:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      1999.11.26 17:24
      클라라 wrote: > 안녕하세요! 우선 > > A B C D ---->Detail되는 컬럼이구요. > ...
    • 안명호
    • 1999.11.26 09:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김영현
      1999.11.26 17:43
      안명호 wrote: > 문자열의 대소 비교를 하려면 어떻게 해야 하나요? > > 숫자로만 이루어진 문자필드에...
    • 이만준
      1999.11.26 17:22
      안명호 wrote: > 문자열의 대소 비교를 하려면 어떻게 해야 하나요? > > 숫자로만 이루어진 문자필드에...
    • socket
    • 1999.11.26 07:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안재현
      1999.11.26 07:30
      socket wrote: > 질문입니다.. > c/s관련 해서 간단하게 클라이언트에서 서버에 접속해서 db를 조회 하려...
    • 김종운
    • 1999.11.26 05:53
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      1999.11.26 07:02
      김종운 wrote: > 다른폼을 열고 입력된 EDIT의 값이 자동으로 > MAIN폼의 EDIT에 등록되도록 하는 방법을...
    • 이재식
      1999.11.26 06:59
      김종운 wrote: > 다른폼을 열고 입력된 EDIT의 값이 자동으로 > MAIN폼의 EDIT에 등록되도록 하는 방법을...
    • 김봉학
      1999.11.29 19:53
      초초보(^^)델퍼(?) wrote: > 안녕하세요~ 초초보(^^)델퍼(?) 입니다. > 서버에서 클라이언트로 소켓을 ...
    • 초초보(^^)델퍼(?)
      1999.11.30 12:10
      김봉학 wrote: > 초초보(^^)델퍼(?) wrote: > > 안녕하세요~ 초초보(^^)델퍼(?) 입니다. > > 서버에서...
    • 김영필
    • 1999.11.26 03:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      1999.11.26 07:33
      김영필 wrote: > MEMO field 에서 richedit로 문서 data 를 > 불러와 글자의 크기,색상등을 변경했을경우...
    • 최혜리
    • 1999.11.26 03:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      1999.11.26 21:09
      최혜리 wrote: > 저는 도서.비디오 대여 프로그램을 짜고 있는데 해결이 되지 않아서 질문드립니다. > 도...
    • 이만준
      1999.11.26 17:21
      임성룡 wrote: > 메인폼에 차일드 폼을 생성시킬때, 항상 똑같은 위치에 생성시키고 싶습니다. > 근데 Po...
    • 이재식
      1999.11.26 18:37
      김정훈 wrote: > 저기요... > 제목 그대로인데요... > 5 Column 짜리 StringGrid에서 5번째 Column만 Ed...
    • 이만준
      1999.11.26 17:28
      김정훈 wrote: > 저기요... > 제목 그대로인데요... > 5 Column 짜리 StringGrid에서 5번째 Column만 Ed...
    • 김정훈
      1999.11.26 22:30
      답변해 주신 분들께 감사드립니다. 하지만 한가지 문제가 더 있걸랑요... RowSelect가 가능해야 하걸랑요...
    • 김민호
    • 1999.11.26 02:37
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      1999.11.26 20:46
      김민호 wrote: > SQL에서 Select 문을 쓰고,거기에 해당되는 내용을 스트링그리드로 출력하는 것을 어떻게...
    • 박성훈
      1999.11.26 20:48
      박성훈 wrote: > 김민호 wrote: > > SQL에서 Select 문을 쓰고,거기에 해당되는 내용을 스트링그리드로 ...
    • 김매경
    • 1999.11.26 02:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김주석
      1999.11.26 03:40
      김매경 wrote: > procedure TF_ser_Form.FormClose(Sender: TObject; var Action: TCloseAction); > begi...
    • 고옥희
    • 1999.11.26 01:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      1999.11.26 04:57
      고옥희 wrote: > 안녕하세요 > > 프로그램을 정상으로 에라 없이 설치했는데 > > interbase가 되지 ...
    • 송수아
    • 1999.11.26 00:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.11.26 02:51
      송수아 wrote: > 안녕하세요. > > 첫번째... > form에 위치하는 버튼들의 색은 모두 회색인데 마우스 ...
    • 안정한
      1999.11.26 02:50
      sun wrote: > 두개의 subdetail 밴드가 있고 그 밴드안에는 QRDBtext들이 있습니다. > 이 두개의 밴드에...
    • 김영대
      1999.11.26 03:00
      최원오 wrote: > Midas 서버프로그램을 다른 곳으로 옮기려고 하는데요.. > 기존에 있던 곳에 dcomcnfg로...
    • 김상훈
    • 1999.11.25 23:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안재현
      1999.11.26 07:11
      김상훈 wrote: > 정말 죄송합니다. > > 테이블에 거래처 번호라는 값을 주었습니다. > > 그 거래처...
    • 현경
    • 1999.11.25 23:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이재식
      1999.11.26 05:13
      현경 wrote: > 조회는 되는데 edit가 안되는데 이게 도대체 어찌된 일입니까? > 물론 read only는 false...