Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Функция, которая нарисует на форме сетку и сделает форму похожей на дизайнер форм Delphi

Delphi , Программа и Интерфейс , Формы

Функция, которая нарисует на форме сетку и сделает форму похожей на дизайнер форм Delphi

Функция, которая нарисует на форме сетку и сделает форму похожей на дизайнер форм Delphi. По умолчанию в дизайнере Delphi отступы равны 8 пикселям

Code:

Procedure TForm1.DrawGrid;
Var
TmpBmp: TBitmap;
Begin
TmpBmp := TBitmap.Create;
Try
   With TmpBmp Do
   Begin
     Width := 8;
     Height := 8;
     Canvas.Brush.Color := clBtnFace;
     Canvas.FillRect(TmpBmp.Canvas.ClipRect);
     Canvas.Pixels[0, 0] := clBlack;
     Canvas.Pixels[0, Height] := clBlack;
     Canvas.Pixels[Width, 0] := clBlack;
     Canvas.Pixels[Width, Height] := clBlack;
   End;
   With Canvas, Brush Do
   Begin
     Bitmap := TBitmap.Create;
     Try
       Bitmap.Assign(TmpBmp);
       Canvas.FillRect(Canvas.ClipRect);
     Finally
       Bitmap.Free;
     End;
   End;
Finally
   TmpBmp.Free;
End;
End;
 
{ Использование }
Procedure TForm1.FormPaint(Sender: TObject);
Begin
DrawGrid;
End;

Ещё способ, рисует сетку либо линии на компоненте AObject цветом FGridColor, в параметре ACanvas нужно передать холст компонента, FSizeX и FSizeY определяют размер сетки либо линий:

Code:

...
TGridType = (gtDots, gtLines);
...
Procedure Draw(AObject: TControl; ACanvas: TCanvas; FGridType: TGridType; FGridColor: TColor;
FSizeX, FSizeY: Integer);
Var
ColorRGB, X, Y, MaxX, MaxY: Integer;
DC: HDC;
Begin
MaxX := AObject.ClientWidth Div FSizeX;
MaxY := AObject.ClientHeight Div FSizeY;
Case FGridType of
   gtDots:
     Begin
       ColorRGB := ColorToRGB(FGridColor);
       DC := ACanvas.Handle;
       For X := 0 To MaxX Do
         For Y := 0 To MaxY Do
         SetPixel(DC, X * FSizeX, Y * FSizeY, ColorRGB);
     End;
   gtLines:
     Begin
       ACanvas.Pen.Color := FGridColor;
       For X := 0 To MaxX Do
       Begin
         ACanvas.MoveTo(X * FSizeX, 0);
         ACanvas.LineTo(X * FSizeY, AObject.ClientHeight);
       End;
       For Y := 0 To MaxY Do
       Begin
         ACanvas.MoveTo(0, Y * FSizeY);
         ACanvas.LineTo(AObject.ClientWidth, Y * FSizeY);
       End;
     End;
End;
End;

Автор: Rrader

Взято с Vingrad.ru http://forum.vingrad.ru

Статья Функция, которая нарисует на форме сетку и сделает форму похожей на дизайнер форм Delphi раздела Программа и Интерфейс Формы может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Формы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
24.04.2024 06:45:34/0.00078892707824707/0