Мастер таблиц для редактора HTML
Form2.ShowModal;
Создайте ещё одну форму и поместите компоненты:
- Label – 13 штук (ну сами смотрите)
- Edit – два
- CheckBox – два
- SpinEdit – семь
- ComboBox – один
- StringGrid – один
- Button – чётыре
- ColorDialog – один
Разместите их как душе угодно. У меня всё расположено так:

Для начала реализуем вставку цвета бордюра таблицы:
// Функция определения HEX-кода
function GetHTMLColor(cl: TColor; IsBackColor: Boolean): string;
var
rgbColor: TColorRef;
begin
if IsBackColor then
Result := 'bg'
else
Result := '';
rgbColor := ColorToRGB(cl);
Result := Result + '#' +
Format('%.2x%.2x%.2x',
[GetRValue(rgbColor),
GetGValue(rgbColor),
GetBValue(rgbColor)]);
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
// Вызываем диалог для выбора цвета
if Color.Execute then
// через функцию определения HEX-кода цвета, вставим цвет
Edit1.Text := GetHTMLColor(Color.Color, False);
end;
Далее вставляем цвет фона таблицы:
procedure TTableWiz.Button4Click(Sender: TObject);
begin
// Вызываем диалог для выбора цвета
if Color.Execute then
begin
// Цвет фона компонента StringGrid, устанавливаем равным выбранному цвету
StringGrid1.Color := Color.Color;
// через функцию определения HEX-кода цвета, вставим цвет
Edit2.Text := GetHTMLColor(Color.Color, False);
end;
end;
А теперь самое главное:
procedure TForm2.Button1Click (Sender: TObject);
Var
Row, Col: integer; //Переменные для хранения ячеек и столбцов
Width, Height: string; //Переменные для хранения ширины и высоты
Begin
Begin
//Если установлена галочка...
If CheckBox1.Checked then
//...то, результат присваиваем в процентах
Width := IntTostr(SpinEdit3.Value) + '%'
Else
//иначе без процентов
Width := IntTostr(SpinEdit3.Value);
End;
Begin
//Если установлена галочка...
If CheckBox2.Checked then
Height := IntTostr(SpinEdit4.Value) + '%'
Else
//...то, результат присваиваем в процентах
Height := intTostr(SpinEdit4.Value);
End;
//Вставляем открывающий тег таблицы
Form1.Memo1.SelText :=
'<table bgcolor="' + Edit2.Text + '" ' + //Вставляем тег фона
'width="' + width + '"' + //Вставляем тег ширины
'height="' + height + '" ' + //Вставляем тег высоты
'align="' + AlignBox.Text + '" ' + //Вставляем тег выравнивания
'border="' + IntToStr(border.Value) + '" ' + //Вставляем толщину бордюра
'bordercolor="' + Edit1.Text + '" ' + //Вставляем цвет бордюра
'cellspacing="' + IntToStr(SpinEdit7.Value) + '" ' + //Вставляем cellspacing
'cellpadding="' + IntToStr(SpinEdit6.Value) + '">' + #13); //Вставляем cellpadding
//Запускаем цикл создания столбцов и ячеек
for a := 1 to SpinEdit1.Value do
begin
//Вставляем открывающий тег строки
Form1.Memo1.SelText := '<tr>'</tr> + #13;
//Вставляем ячейки
for b := 1 to SpinEdit2.Value do
begin
Form1.Memo1.SelText := ' <td> </td>' + #13;
end;
//Вставляем закрывающий тег строки
Form1.Memo1.SelText := '</tr>' + #13;
end;
//Вставляем закрывающий тег таблицы
Form1.Memo1.SelText := '</table>';
end;
Ну вот вроде всё что я хотел рассказать...
Автор: SNiPeR © 2006
Комментарии