Форум: "Потрепаться";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];
ВнизПервый раз в жизни спрашиваю о компоненте :) Найти похожие ветки
← →
Mischka (2003-01-17 15:44) [11]Насчет рамочек могу посоветовать только использовать полностью свои PopUpMenu :)
А разделы можно и в стандартном сделать. С помощью Owner draw сстесстно...
Я тут делал менюшку:
procedure TMainForm.DrawMenuItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean);
var
SCut: string;
begin
SCut:=ShortCutToText((Sender as TMenuItem).ShortCut);
ACanvas.Brush.Color:=clBtnFace;
ACanvas.Pen.Color:=clBtnFace;
ACanvas.Rectangle(ARect.Left-3, ARect.Top, ARect.Left+24, ARect.Bottom);
ACanvas.Brush.Color:=clWhite;
ACanvas.Pen.Color:=clWhite;
ACanvas.Rectangle(ARect.Left+24, ARect.Top, ARect.Right, ARect.Bottom);
if (Sender as TMenuItem).Enabled then
if Selected then
begin
ACanvas.Brush.Color:=clHighlight;
ACanvas.Pen.Color:=clMenuText;
ACanvas.Rectangle(ARect.Left+2, ARect.Top, ARect.Right-2, ARect.Bottom);
if (Sender as TMenuItem).Caption<>"-" then
begin
ACanvas.Font.Color:=clHighlightText;
ACanvas.TextOut(ARect.Left+26, ARect.Top+3, (Sender as TMenuItem).Caption)
end
else
begin
ACanvas.Pen.Color:=clBtnFace;
ACanvas.moveTo(ARect.Left+27, ARect.Top+2);
ACanvas.LineTo(ARect.Right, ARect.Top+2)
end;
if SCut<>"" then ACanvas.TextOut(ARect.Right-ACanvas.TextWidth(SCut)-5, ARect.Top+3, SCut);
if (Sender as TMenuItem).Checked then SmallImages.Draw(ACanvas, ARect.Left+5, ARect.Top+3, 3)
else
if (Sender as TMenuItem).ImageIndex<>-1 then
hotImages16.Draw(ACanvas, ARect.Left+5, ARect.Top+3, (Sender as TMenuItem).ImageIndex);
end
else
begin
if (Sender as TMenuItem).Caption<>"-" then
begin
ACanvas.Font.Color:=$00000000;
ACanvas.TextOut(ARect.Left+27, ARect.Top+4, (Sender as TMenuItem).Caption)
end
else
begin
ACanvas.Pen.Color:=clBtnFace;
ACanvas.moveTo(ARect.Left+27, ARect.Top+2);
ACanvas.LineTo(ARect.Right, ARect.Top+2)
end;
if SCut<>"" then ACanvas.TextOut(ARect.Right-ACanvas.TextWidth(SCut)-5, ARect.Top+4, SCut);
if (Sender as TMenuItem).Checked then SmallImages.Draw(ACanvas, ARect.Left+5, ARect.Top+3, 4)
else
if (Sender as TMenuItem).ImageIndex<>-1 then
Images16.Draw(ACanvas, ARect.Left+5, ARect.Top+3, (Sender as TMenuItem).ImageIndex);
end
else
begin
if (Sender as TMenuItem).Caption<>"-" then
begin
ACanvas.Font.Color:=clBtnFace;
ACanvas.TextOut(ARect.Left+27, ARect.Top+4, (Sender as TMenuItem).Caption)
end
else
begin
ACanvas.Pen.Color:=clBtnFace;
ACanvas.moveTo(ARect.Left+27, ARect.Top+2);
ACanvas.LineTo(ARect.Right, ARect.Top+2)
end;
if SCut<>"" then ACanvas.TextOut(ARect.Right-ACanvas.TextWidth(SCut)-5, ARect.Top+4, SCut);
if (Sender as TMenuItem).Checked then SmallImages.Draw(ACanvas, ARect.Left+5, ARect.Top+3, 3)
else
if (Sender as TMenuItem).ImageIndex<>-1 then
disImages16.Draw(ACanvas, ARect.Left+5, ARect.Top+3, (Sender as TMenuItem).ImageIndex);
end
end;
procedure TMainForm.exit1MeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
begin
Height:=Height+4;
Width:=Width+32
end;
халява
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.02.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c