Модератор: Модераторы



Sharfik писал(а):Есть вопрос по Frame....Есть разница принципиальная, использовать PageControl с внедренными на него TForm или TFrame?

Sharfik писал(а):1) Меня напрягает что классический интерфейс заточен для работы через клавиатуру, и теоретически PageControl наверно как то можно переключать в обход клавой.
2) При падении программы, все окна разлетаются во все стороны делая UnDock.
Sharfik писал(а):3) Рамочка! Я не нашел как убрать рамку у PageControl когда табы отключены
  TPageControl = class(ComCtrls.TPageControl)
  private
    procedure CNDrawItem(var Message: TWMDrawItem); message WM_DRAWITEM;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;
procedure TPageControl.CNDrawItem(var Message: TWMDrawItem);
var
  BrushHandle: HBRUSH;
  BrushColor: COLORREF;
  FontHandle: HFONT;
  FontColor: COLORREF;
  FontObject: TLogFont;
  begin
  GetObject(Font.Handle, SizeOf(FontObject), @FontObject);
  with Message.DrawItemStruct^ do
  begin
    BrushColor :=$383838;
if  itemID= self.ActivePageIndex then
    Begin
     BrushColor := RGB(225, 24, 33);
    end ;
    BrushHandle := CreateSolidBrush(BrushColor);
    Windows.FillRect(hDC, rcItem, BrushHandle);
    FontObject.lfItalic := 1;
    FontObject.lfCharSet := FS_CYRILLIC ;// Интересно, а fs_utf8 есть ?
    FontHandle := CreateFontIndirect(FontObject);
    Windows.SelectObject(hDC, FontHandle);
    Windows.SetBkMode(hDC, TRANSPARENT);
    Windows.SetTextColor(hDC,clWhite );
    Windows.DrawTextEx(hDC, PChar(UTF8_CP1251(Page[itemID].Caption)), -1, rcItem, DT_CENTER or
      DT_VCENTER or DT_SINGLELINE, nil);
   Windows.DeleteObject(FontHandle);
  end;
  Message.Result := 1;
end;
procedure TPageControl.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do
  begin
    if not (csDesigning in ComponentState) then
      Style := Style or TCS_OWNERDRAWFIXED;
  end;
end;

Sharfik писал(а):А как обновить фрейм? Если его добавляешь на форму, то он в таком виде и остается, хотя сам pas файл и визуальная часть уже давно изменились. Удалить-Вставить новый как то дико....



Сейчас этот форум просматривают: Google [Bot], GreyCrazyWolf, Yandex [Bot] и гости: 1