Модератор: Модераторы
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 файл и визуальная часть уже давно изменились. Удалить-Вставить новый как то дико....
Сейчас этот форум просматривают: MailRu[bot] и гости: 11