ZColorStringGrid правяраўся на: Delphi 7, 2005-XE2; C++Builder 6.
ZCLabel правяраўся на:
- Lazarus 0.9.28.2 (FPC 2.2.4 + Debian 5.0 + KDE3.5), Lazarus 0.9.30.2 (FPC 2.4.4 + Debian 6.0.3 + GNOME / Windows)
- Delphi 7, 2005-XE2
- C++Builder 6
Стыль вочка
Прыклад кода для Delphi
|
Прыклад кода для C++Builder-a
|
procedure TfrmMain.FormCreate(Sender: TObject);
var
i, j: integer;
begin
//запаўняем табліцу
for i := 1 to ZColorStringGrid1.ColCount - 1 do
for j := 1 to ZColorStringGrid1.RowCount - 1 do
ZColorStringGrid1.Cells[i, j] := IntToStr(i * j);
//Колер фону
ZColorStringGrid1.CellStyle[1, 1].BGColor := clYellow;
ZColorStringGrid1.CellStyle[2, 1].BGColor := clGreen;
ZColorStringGrid1.CellStyle[3, 1].BGColor := clLime;
//Змяняем стыль у калонкі
ZColorStringGrid1.CellStyleCol[1, false] := ZColorStringGrid1.CellStyle[1, 1];
ZColorStringGrid1.CellStyleCol[2, true] := ZColorStringGrid1.CellStyle[2, 1];
//Змяняем стыль у радку
ZColorStringGrid1.CellStyleRow[3, false] := ZColorStringGrid1.CellStyle[3, 1];
//Шрыфт
ZColorStringGrid1.CellStyle[2, 3].Font.Size := 12;
ZColorStringGrid1.CellStyle[2, 3].Font.Name := 'Tahoma';
ZColorStringGrid1.CellStyle[2, 3].Font.Style := [fsBold, fsItalic];
ZColorStringGrid1.CellStyle[2, 2].Font.Color := clWhite;
//Рамка вочка
ZColorStringGrid1.CellStyle[3, 3].BorderCellStyle := sgLowered;
ZColorStringGrid1.CellStyle[4, 3].BorderCellStyle := sgRaised;
end;
| void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
int i = 0;
int j = 0;
//запаўняем табліцу
for (i = 0; i < ZColorStringGrid1->ColCount; i++)
for (j = 0; j < ZColorStringGrid1->RowCount; j++)
{
ZColorStringGrid1->Cells[i][j] = IntToStr(i * j);
}
//Колер фону
ZColorStringGrid1->CellStyle[1][1]->BGColor = clYellow;
ZColorStringGrid1->CellStyle[2][1]->BGColor = clGreen;
ZColorStringGrid1->CellStyle[3][1]->BGColor = clLime;
//Змяняем стыль у калонкі
ZColorStringGrid1->CellStyleCol[1][false] = ZColorStringGrid1->CellStyle[1][1];
ZColorStringGrid1->CellStyleCol[2][true] = ZColorStringGrid1->CellStyle[2][1];
//Змяняем стыль у радку
ZColorStringGrid1->CellStyleRow[3][false] = ZColorStringGrid1->CellStyle[3][1];
//Шрыфт
ZColorStringGrid1->CellStyle[2][3]->Font->Size = 12;
ZColorStringGrid1->CellStyle[2][3]->Font->Name = "Tahoma";
ZColorStringGrid1->CellStyle[2][3]->Font->Style =
TFontStyles() << fsBold << fsItalic;
ZColorStringGrid1->CellStyle[2][2]->Font->Color = clWhite;
//Рамка вочка
ZColorStringGrid1->CellStyle[3][3]->BorderCellStyle = sgLowered;
ZColorStringGrid1->CellStyle[4][3]->BorderCellStyle = sgRaised;
}
|
Выраўноўванне і водступы
Прыклад кода для Delphi
|
Прыклад кода для C++Builder-a
|
procedure TfrmMain.FormCreate(Sender: TObject);
var
i, j, r: byte;
begin
//Выраўноўванне: гарызанталь - злева, вертыкаль - цэнтр
ZColorStringGrid1.Cells[1, 0] := 'H:L + V:C';
//Выраўноўванне: гарызанталь - справа, вертыкаль - цэнтр
ZColorStringGrid1.Cells[2, 0] := 'H:R + V:C';
//Выраўноўванне: гарызанталь - злева, вертыкаль - зверху
ZColorStringGrid1.Cells[3, 0] := 'H:L + V:T';
//Выраўноўванне: гарызанталь - па цэнтры, вертыкаль - знізу
ZColorStringGrid1.Cells[4, 0] := 'H:З + V:D';
for i := 0 to 5 do
begin
r := i + 1;
for j := 1 to 4 do
begin
ZColorStringGrid1.Cells[j, r] := IntToStr(i);
//Водступ па гарызанталі
ZColorStringGrid1.CellStyle[j, r].IndentH := i;
end;
//Справа
ZColorStringGrid1.CellStyle[2, r].HorizontalAlignment := taRightJustify;
//Зверху
ZColorStringGrid1.CellStyle[3, r].VerticalAlignment := vaTop;
//па цэнтры
ZColorStringGrid1.CellStyle[4, r].HorizontalAlignment := taCenter;
//Знізу
ZColorStringGrid1.CellStyle[4, r].VerticalAlignment := vaBottom;
//Водступ па вертыкалі
for j := 3 to 4 do
ZColorStringGrid1.CellStyle[j, r].IndentV := i;
end;
end;
| void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
//Выраўноўванне: гарызанталь - злева, вертыкаль - цэнтр
ZColorStringGrid1->Cells[1][0] = "H:L + V:C";
//Выраўноўванне: гарызанталь - справа, вертыкаль - цэнтр
ZColorStringGrid1->Cells[2][0] = "H:R + V:C";
//Выраўноўванне: гарызанталь - злева, вертыкаль - зверху
ZColorStringGrid1->Cells[3][0] = "H:L + V:T";
//Выраўноўванне: гарызанталь - па цэнтры, вертыкаль - знізу
ZColorStringGrid1->Cells[4][0] = "H:З + V:D";
int i = 0;
int j = 0;
int r = 0;
for (i = 0; i <= 5; i++)
{
r = i + 1;
for (j = 1; j < 5; j++)
{
ZColorStringGrid1->Cells[j][r] = IntToStr(i);
//Водступ па гарызанталі
ZColorStringGrid1->CellStyle[j][r]->IndentH = i;
}
//Справа
ZColorStringGrid1->CellStyle[2][r]->HorizontalAlignment = taRightJustify;
//Зверху
ZColorStringGrid1->CellStyle[3][r]->VerticalAlignment = vaTop;
//па цэнтры
ZColorStringGrid1->CellStyle[4][r]->HorizontalAlignment = taCenter;
//Знізу
ZColorStringGrid1->CellStyle[4][r]->VerticalAlignment = vaBottom;
//Водступ па вертыкалі
for (j = 3; j < 5; j++)
ZColorStringGrid1->CellStyle[j][r]->IndentV = i;
}
}
|
Аб'яднанне вочак
Прыклад кода для Delphi
|
Прыклад кода для C++Builder-a
|
procedure TfrmMain.FormCreate(Sender: TObject);
var
Rct: TRect;
res: integer;
begin
//Аб'яднанне фіксаваных вочак
res := ZColorStringGrid1.MergeCells.AddRectXY(1, 0, 3, 0);
if (res <> 0) then
begin
{Калі не атрымалася аб'яднаць вочкі}
end;
ZColorStringGrid1.Cells[1, 0] := 'Аб''яднанае вочка';
Rct.Top := 1;
Rct.Left := 0;
Rct.Right := 0;
Rct.Bottom := 3;
ZColorStringGrid1.MergeCells.AddRect(Rct);
ZColorStringGrid1.Cells[0, 1] := 'Тэкст';
//Спроба аб'яднання фіксаваных вочак з нефіксаванымі
res := ZColorStringGrid1.MergeCells.AddRectXY(0, 4, 3, 5);
if (res <> 0) then
ZColorStringGrid1.Cells[0, 4] := 'Правал'
else
ZColorStringGrid1.Cells[0, 4] := 'Атрымалася!';
//Праверку на аб'яднанне можна не рабіць
ZColorStringGrid1.MergeCells.AddRectXY(2, 1, 4, 4);
ZColorStringGrid1.Cells[2, 1] := ZColorStringGrid1.Cells[1, 0];
end;
| void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
int res = 0;
//Аб'яднанне фіксаваных вочак
res = ZColorStringGrid1->MergeCells->AddRectXY(1, 0, 3, 0);
if (res != 0)
{
/* Калі не атрымалася аб'яднаць вочкі */
}
ZColorStringGrid1->Cells[1][0] = "Аб'яднанае вочка";
TRect Rct;
Rct.Top = 1;
Rct.Left = 0;
Rct.Right = 0;
Rct.Bottom = 3;
ZColorStringGrid1->MergeCells->AddRect(Rct);
ZColorStringGrid1->Cells[0][1] = "Тэкст";
//Спроба аб'яднання фіксаваных вочак з нефіксаванымі
res = ZColorStringGrid1->MergeCells->AddRectXY(0, 4, 3, 5);
if (res != 0)
{ZColorStringGrid1->Cells[0][4] = "Правал";}
else
{ZColorStringGrid1->Cells[0][4] = "Атрымалася!";};
//Праверку на аб'яднанне можна не рабіць
ZColorStringGrid1->MergeCells->AddRectXY(2, 1, 4, 4);
ZColorStringGrid1->Cells[2][1] = ZColorStringGrid1->Cells[1][0];
}
|
Заваротак тэксту ў вочках
УВАГА: Паварочваць тэкст можна толькі выкарыстоўваючы TrueType шрыфты!
Прыклад кода для Delphi
|
Прыклад кода для C++Builder-a
|
procedure TfrmMain.FormCreate(Sender: TObject);
var
i, j: integer;
begin
//Усталёўваны ўсім вочкам TrueType шрыфт
for i := 0 to ZColorStringGrid1.ColCount - 1 do
for j := 0 to ZColorStringGrid1.RowCount - 1 do
begin
ZColorStringGrid1.CellStyle[i, j].Font.Name := 'Tahoma';
ZColorStringGrid1.CellStyle[i, j].Font.Size := 12;
end;
//Заваротак у аб'яднаных вочках
ZColorStringGrid1.MergeCells.AddRectXY(0, 1, 0, 4);
ZColorStringGrid1.CellStyle[0, 1].Rotate := 90;
ZColorStringGrid1.Cells[0, 1] := 'Заваротак' + sLineBreak +
'тэксту на' + sLineBreak + '90 градусаў';
ZColorStringGrid1.MergeCells.AddRectXY(1, 0, 3, 0);
ZColorStringGrid1.CellStyle[1, 0].Rotate := 180;
ZColorStringGrid1.Cells[1, 0] := 'Заваротак на 180 градусаў';
ZColorStringGrid1.MergeCells.AddRectXY(2, 1, 4, 6);
ZColorStringGrid1.CellStyle[2, 1].Rotate := 60;
ZColorStringGrid1.CellStyle[2, 1].Font.Size := 16;
ZColorStringGrid1.CellStyle[2, 1].HorizontalAlignment := taCenter;
ZColorStringGrid1.Cells[2, 1] := 'Заваротак' + sLineBreak +
'шматрадковага' + sLineBreak + 'тэксту на' +
sLineBreak + '60 градусаў';
//Заваротак у звычайных вочках
ZColorStringGrid1.CellStyle[1, 1].Rotate := 180;
ZColorStringGrid1.Cells[1, 1] := 'Тэкст';
end;
| void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
int i = 0;
int j = 0;
//Усталёўваны ўсім вочкам TrueType шрыфт
for (i = 0; i < ZColorStringGrid1->ColCount; i++)
for (j = 0; j < ZColorStringGrid1->RowCount; j++)
{
ZColorStringGrid1->CellStyle[i][j]->Font->Name = "Tahoma";
ZColorStringGrid1->CellStyle[i][j]->Font->Size = 12;
}
//Заваротак у аб'яднаных вочках
ZColorStringGrid1->MergeCells->AddRectXY(0, 1, 0, 4);
ZColorStringGrid1->CellStyle[0][1]->Rotate = 90;
ZColorStringGrid1->Cells[0][1] = String("Заваротак") + sLineBreak +
String("тэксту на") + sLineBreak + String("90 градусаў");
ZColorStringGrid1->MergeCells->AddRectXY(1, 0, 3, 0);
ZColorStringGrid1->CellStyle[1][0]->Rotate = 180;
ZColorStringGrid1->Cells[1][0] = "Заваротак на 180 градусаў";
ZColorStringGrid1->MergeCells->AddRectXY(2, 1, 4, 6);
ZColorStringGrid1->CellStyle[2][1]->Rotate = 60;
ZColorStringGrid1->CellStyle[2][1]->Font->Size = 16;
ZColorStringGrid1->CellStyle[2][1]->HorizontalAlignment = taCenter;
ZColorStringGrid1->Cells[2][1] = String("Заваротак") + sLineBreak +
String("шматрадковага") + sLineBreak + String("тэксту на") +
sLineBreak + String("60 градусаў");
//Заваротак у звычайных вочках
ZColorStringGrid1->CellStyle[1][1]->Rotate = 180;
ZColorStringGrid1->Cells[1][1] = "Тэкст";
}
|
Прыклады выкарыстання ZCLabel:
Выраўноўванне і паварот тэксту
Для паспяховага запуску на форме трэба змесцаваць 15 ZClabel-аў, усталяваць ім:
TrueType шрыфт, шырыню і вышыню (80 і 70).
Прыклад кода для Lazarus/Delphi
|
Прыклад кода для C++Builder-a
|
procedure TfrmMain.FormCreate(Sender: TObject);
var
i: integer;
num: integer;
ZCL: TZCLabel;
s: string;
ang: integer;
sEOL: string;
begin
num := 0;
ang := 0;
{$IFDEF FPC}
sEOL := LineEnding;
{$ELSE}
sEOL := sLineBreak;
{$ENDIF}
s := 'Прыклад тэксту' + sEOL + 'нейкі';
//прабягаем па ўсіх кампанентах
for i := 0 to ComponentCount - 1 do
if (Components[i] is TZCLabel) then
begin
ZCL := Components[i] as TZCLabel;
ZCL.Font.Size := 10;
ZCL.Caption := s;
inc(num);
if (num mod 5 in [1, 2, 3]) then
begin
ZCL.Transparent := false;
ZCL.Color := clYellow;
end else
begin
ZCL.Font.Size := 14;
inc(ang, 50);
//вугал павароту
ZCL.Rotate := ang;
end;
//Выраўноўванне па гарызанталі
ZCL.AlignmentHorizontal := num mod 3;
//Выраўноўванне па вертыкалі
ZCL.AlignmentVertical := num mod 5;
end; //if
end;
| void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
int num = 0;
int ang = 0;
int t;
TZCLabel * ZCL;
String s = String("Прыклад тэксту") + sLineBreak + String("нейкі");
//прабягаем па ўсіх кампанентах
int i = 0;
for (i = 0; i < ComponentCount; i++)
{
if (ZCL = dynamic_cast<TZCLabel *>(Components[i]))
{
ZCL->Font->Size = 10;
ZCL->Caption = s;
num++;
t = num % 5;
if ((t > 0) && (t < 4))
{
ZCL->Transparent = false;
ZCL->Color = clYellow;
} else
{
ZCL->Font->Size = 14;
ang += 50;
//вугал павароту
ZCL->Rotate = ang;
}
//Выраўноўванне па гарызанталі
ZCL->AlignmentHorizontal = num % 3;
//Выраўноўванне па вертыкалі
ZCL->AlignmentVertical = num % 5;
}
}
}
|
Маляванне на адвольным палатне
Прыклад кода для Lazarus/Delphi
|
Прыклад кода для C++Builder-a
|
procedure TfrmMain.FormCreate(Sender: TObject);
var
Rct: TRect;
i: integer;
t: byte;
Cl: TColor;
sEOL, s: string;
begin
{$IFDEF FPC}
sEOL := LineEnding;
{$ELSE}
sEOL := sLineBreak;
{$ENDIF}
ZCLabel1.Visible := false;
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.Brush.Style := bsSolid;
Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
Rct.Left := 0;
Rct.Top := 0;
Rct.Right := 120;
Rct.Bottom := 50;
for i := 1 to 5 do
begin
ZCLabel1.Font.Size := 10 + i;
//Малюе тэкст на палатне колерам шрыфта
ZCLabel1.DrawTextOn(Image1.Canvas, 'Some text', Rct, false);
Rct.Top := Rct.Top + 10;
Rct.Bottom := Rct.Bottom + 10;
Rct.Left := Rct.Left + 1;
Rct.Right := Rct.Right + 1;
end;
Rct.Left := 0;
Rct.Right := Image1.Width;
Rct.Top := 0;
Rct.Bottom := Image1.Height;
i := 0;
ZCLabel1.AlignmentVertical := 2;
ZCLabel1.AlignmentHorizontal := 0;
t := 255;
while (i <= 90) do
begin
ZCLabel1.Rotate := i;
cl := t shl 8;
//Малюе тэкст на палатне зададзеным колерам
ZCLabel1.DrawTextOn(Image1.Canvas, 'Some text', Rct, cl, false);
inc(i, 5);
dec(t, 14);
end;
//Выраўноўванне
ZCLabel1.AlignmentVertical := 0;
ZCLabel1.AlignmentHorizontal := 2;
i := 0;
while (i <= 90) do
begin
ZCLabel1.Rotate := i;
ZCLabel1.DrawTextOn(Image1.Canvas, 'Some text', Rct, false);
inc(i, 10);
end;
ZCLabel1.Font.Size := 20;
ZCLabel1.Rotate := -30;
ZCLabel1.AlignmentVertical := 1;
ZCLabel1.AlignmentHorizontal := 1;
//Адлегласць паміж радкамі
ZCLabel1.LineSpacing := -10;
s := 'ZClabel' + sEOL + 'прыклад малявання' + sEOL +
'на адвольным палатне';
ZCLabel1.DrawTextOn(Image1.Canvas, s, Rct, clGreen, false);
//Захаваем атрыманы малюнак у файл
Image1.Picture.Bitmap.SaveToFile({some_path}'1.bmp');
end;
| void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
ZCLabel1->Visible = false;
TRect Rct;
Rct.Left = 0;
Rct.Top = 0;
Rct.Right = 120;
Rct.Bottom = 50;
Graphics::TCanvas *CNV;
CNV = Image1->Canvas;
CNV->Brush->Color = clWhite;
CNV->Brush->Style = bsSolid;
CNV->Rectangle(0, 0, Image1->Width, Image1->Height);
CNV->TextOut(10, 10, "dasd");
String z = "Some text";
int i = 0;
for (i = 1; i < 6; i++)
{
ZCLabel1->Font->Size = 10 + i;
//Малюе тэкст на палатне колерам шрыфта
ZCLabel1->DrawTextOn(CNV, z, Rct, false);
Rct.Top += 10;
Rct.Bottom += 10;
Rct.Left += 1;
Rct.Right += + 1;
}
Rct.Left = 0;
Rct.Right = Image1->Width;
Rct.Top = 0;
Rct.Bottom = Image1->Height;
i = 0;
ZCLabel1->AlignmentVertical = 2;
ZCLabel1->AlignmentHorizontal = 0;
int t = 255;
TColor cl = clBlack;
while (i <= 90)
{
ZCLabel1->Rotate = i;
cl = t << 8;
//Малюе тэкст на палатне зададзеным колерам
ZCLabel1->DrawTextOn(CNV, "Some text", Rct, cl, false);
i += 5;
t -= 14;
}
//Выраўноўванне
ZCLabel1->AlignmentVertical = 0;
ZCLabel1->AlignmentHorizontal = 2;
i = 0;
while (i <= 90)
{
ZCLabel1->Rotate = i;
ZCLabel1->DrawTextOn(CNV, "Some text", Rct, false);
i += 10;
}
ZCLabel1->Font->Size = 20;
ZCLabel1->Rotate = -30;
ZCLabel1->AlignmentVertical = 1;
ZCLabel1->AlignmentHorizontal = 1;
//Адлегласць паміж радкамі
ZCLabel1->LineSpacing = -10;
String s = String("ZClabel") + sLineBreak + String("прыклад малявання") +
sLineBreak + String("на адвольным палатне");
ZCLabel1->DrawTextOn(CNV, s, Rct, clGreen, false);
//Захаваем атрыманы малюнак у файл
Image1->Picture->Bitmap->SaveToFile(/* some_path */"1.bmp");
}
|
|