Q&A

  • Label의 글씨를 깜빡거리게 하려면 어떻게 해야하는지?
Edit 안의 글씨나 Label의 글씨를 깜박깜박 거리게 하려고 합니다.
글씨의 색깔은 바꿀 수는 있느데, 글씨를 깜박깜박 거리게 할 수 있는 방법은 없는지요? 왕초보라 어떻게 해야 할지 막막합니다.  
2  COMMENTS
  • Profile
    최용일 2004.02.27 00:27
    안녕하세요. 최용일입니다.

    간단하게... 폼에 타이머 하나 나두시구요...

    OnTimer이벤트에서 글씨의 색을 토글시켜 주세요...

    예) 흰색<=>검은색

    ^^ 항상 즐코하세요...

  • Profile
    허 강 2004.02.27 09:50
    감사합니다.
    죄송하지만 허접한 소스코드를 보냅니다. 다음과 같은 경우는 어떻게 타이머를 써야하는지요? DBGrid에 어떤 특정한 값이 들어오면 그 줄만 깜박이게 하려고 합니다. 도움 부탁드립니다.

    허 강

    procedure TFrmAlmque.DisplayAlm(sFont: String; sFore, sBack: TColor; nFlash: Word;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
      DGalmque.Canvas.Font.Name := sFont;
      DGalmque.Canvas.Font.Color := sFore;
      DGalmque.Canvas.Brush.Color := sBack;
      DGalmque.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      if nFlash = 1 then
      begin
    //    글씨가 깜박거림
      end;
    end;

    procedure TFrmAlmque.DGalmqueDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);

    var
      sNafore,sAcfore,sUafore,sCffore,sNcfore: TColor;
      sNaBack,sAcback,sUaback,sCfback,sNcback: TColor;
      sNafont,sAcfont,sUafont,sCffont,sNcfont: String;
      nFlash: Word;
      sStatus: String;

    begin

    sNafont := 'MS Sans Serif';
    sAcfont := 'MS Sans Serif';
    sUafont := 'MS Sans Serif';
    sNcfont := 'MS Sans Serif';
    sCffont := 'MS Sans Serif';
    sNafore := clRed;
    sAcfore := clRed;
    sUafore := clRed;
    sNcfore := clMoneyGreen;
    sCffore := clYellow;
    sNaback := clWhite;
    sAcback := clWhite;
    sUaback := clWhite;
    sNcback := clWhite;
    sCfback := clWhite;

    if Talmque.FieldByName('ALMSTAT').AsString = 'ALARM' then
    begin
      sStatus := Talmque.FieldByName('ALMACK').AsString;
      if sStatus = 'NA' then DisplayAlm(sNafont,sNafore,sNaback,0,Rect, DataCol, Column, State)
      else if sStatus = 'AC' then DisplayAlm(sACFONT,sACFORE,sACBACK,1,Rect, DataCol, Column, State)
      else if sStatus = 'UA' then DisplayAlm(sUAFONT,sUAFORE,sUABACK,1,Rect, DataCol, Column, State)
      else if sStatus = 'NC' then DisplayAlm(sNCFONT,sNCFORE,sNCBACK,0,Rect, DataCol, Column, State)
      else if sStatus = 'CF' then DisplayAlm(sCFFONT,sCFFORE,sCFBACK,0, DataCol, Column, State);

    end;

    end;