Внешний вид сайта:

Мастер таблиц для редактора HTML

Поместите TMemo на форму(в него будем вставлять html-таблицу) и кнопку для запуска Мастера. В обработчике кнопки напишите:
Form2.ShowModal;

Создайте ещё одну форму и поместите компоненты:

  • Label – 13 штук (ну сами смотрите)
  • Edit – два
  • CheckBox – два
  • SpinEdit – семь
  • ComboBox – один
  • StringGrid – один
  • Button – чётыре
  • ColorDialog – один

Разместите их как душе угодно. У меня всё расположено так:

Окно мастера таблиц HTML

Для начала реализуем вставку цвета бордюра таблицы:

// Функция определения 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

Комментарии

Нет комментариев. Ваш будет первым!