Einzelnen Beitrag anzeigen

Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: [nonVCL] Automatisch verschwindender Text in Edit Box

  Alt 29. Jan 2015, 23:07
Also lauffähig hab ich es jetzt, mit nur einem kleinen Problem, jedesmal wenn ich was eingebe in das Memo, und dann das Memo den Fokus verliert und dann wiederbekommt, verschwindet der Text (ist noch da aber nicht mehr sichtbar). Erst wenn ich den Text markiere oder änder wird er wieder angezeigt, woran kann das liegen??

Delphi-Quellcode:
function MemoWndProc(hEdit: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var
 rc: TRect;
 OldFont: HFONT;
 S: string;
 DC: HDC;
 PaintStruct: TPaintStruct;
begin
  case uMsg of
    WM_PAINT:
      begin;
        DC := BeginPaint(hEdit, PaintStruct);

        GetClientRect(hEdit, rc);
        SetBkMode(DC, TRANSPARENT);
        OldFont := SelectObject(DC, hAppFont);

        if (Length(GetText(hEdit)) < 1) and (GetFocus <> hEdit) then begin;
          case GetDlgCtrlID(hEdit) of
            IDC_MEMO1: S := szKBText;
            IDC_MEMO2: S := szReccFarmsText;
          end;
        SetTextColor(DC, GetSysColor(COLOR_GRAYTEXT));
        DrawText(DC, PChar(S), Length(S), rc, DT_CENTER or DT_VCENTER or DT_NOPREFIX or DT_WORDBREAK);
        end;

        SelectObject(DC, OldFont);
        ReleaseDC(hEdit, DC);
        DeleteObject(OldFont);

        EndPaint(hEdit, PaintStruct);
        Result := 0;
     end
  else
    Result := CallWindowProc(OldWndProc, hEdit, uMsg, wParam, lParam);
  end;
end;
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat