Мастер таблиц для редактора 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
Комментарии