Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2015, 10:50   #11
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Toxa Посмотреть сообщение
как только впишешь фамилии в подчеркивания, все поплывет. я так понимаю ТСу надо чтобы подчеркивания шли вровень
я просто понял вопрос буквально, тс подробностей не предоставил.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.03.2015, 10:50   #12
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

я подозреваю что это пойдет на печать, интересен способ печати. т.к. все опять же может поплыть
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 16.03.2015, 11:04   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

По хорошему позицию табов конечно программно рассчитывать
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  RichEdit1.Font.Name:='Arial';
  RichEdit1.Font.Size:=8;
  RichEdit1.Lines.Clear;
  RichEdit1.Paragraph.TabCount:=1;
  RichEdit1.Paragraph.Tab[0]:=165;
  RichEdit1.Lines.Add('Председатель квалификационной комиссии: '#9'_______ /Петров В.В./');
  RichEdit1.Paragraph.TabCount:=2;
  RichEdit1.Paragraph.Tab[0]:=97;
  RichEdit1.Paragraph.Tab[1]:=165;
  RichEdit1.Lines.Add(#9'Члены комиссии: '#9'_______ /Тимофеев А.А./');
  RichEdit1.Paragraph.TabCount:=1;
  RichEdit1.Paragraph.Tab[0]:=165;
  RichEdit1.Lines.Add(#9'_______ /ИванОв Ы.Ы./');
  RichEdit1.Lines.Add(#9'_______ /Сидоровец Х.Щ./');
end;
Изображения
Тип файла: jpg Безымянный.JPG (11.5 Кб, 57 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.03.2015, 11:19   #14
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию

Код:
procedure TForm1.ReportTemplateBegin; // шапка результата теста
  var
    i: integer;
  begin
    masRT[1]:='';
    masRT[2]:='ПРОТОКОЛ ПРОВЕРКИ ЗНАНИЙ ПО ЭЛЕКТРОБЕЗОПАСНОСТИ' + #13#10 + TicketGroup;
    with ListView1.Selected do
      begin
        masRT[4]:='Дата тестирования: '+Caption;
        masRT[5]:='Тестируемый: '+SubItems.Strings[0]+' '+SubItems.Strings[1]+' '+SubItems.Strings[2];
        masRT[6]:='Должность: '+SubItems.Strings[3];
        masRT[9]:='Задано вопросов: '+SubItems.Strings[6];
        masRT[10]:='Допустимо 2 ошибки, допущено ошибок: '+copy(SubItems.Strings[7],pos('|',SubItems.Strings[7])+1,length(SubItems.Strings[7]));
        masRT[11]:='Время ответа: '+SubItems.Strings[5];
        masRT[12]:='Результат тестирования: '+SubItems.Strings[8];
      end;
    masRT[8]:='Подробный результат тестирования:';
    masRT[3]:='Тестирование проведено: '+LabeledEdit7.Text+' ('+LabeledEdit8.Text+'; телефон: '+LabeledEdit9.Text+')';
    masRT[13]:='Председатель квалификационной комиссии: __________________________ /'+LabeledEdit10.Text+'/';
    // тут запись членов комиссии, пока не реализовал, они хранятся в мемо, каждая строка содержит ФИО
  end;
Результаты перед выводом хранятся в таблице из 4 столбцов (№, вопрос, ответ, правильность ответа)
Код:
procedure TForm1.N1Click(Sender: TObject);  // вывод результата теста в ворд
  const
    mass: array[1..4] of single =
    (1,9,5.5,2.7); // ширина каждого столбца
  var
    s,ss: string;
    tabl,i,j: integer;
  begin
    CoolTrayIcon1.ShowBalloonHint('Информационное сообщение','Подготовка к сохранению...',bitInfo,10);
    s:=ListView1.Selected.SubItems.Strings[0]+' ('+copy(ListView1.Selected.Caption,1,10)+')';
    for i:=1 to length(s) do
      if s[i] = '.' then
        s[i]:=' ';
    if CreateWord then
      begin
        VisibleWord(true);
        if AddDoc then
          begin
            CoolTrayIcon1.ShowBalloonHint('Информационное сообщение','Документ WORD создан...',bitInfo,10);
            ReportTemplateBegin;
            tabl:=1;
            if CreateTable(StringGrid1.RowCount+5,StringGrid1.ColCount,tabl) then //создание таблицы
              for i:=0 to StringGrid1.ColCount-1 do
                for j:=0 to StringGrid1.RowCount-1 do
                  SetHeightWidthTable(tabl,j+4,i+1,1,10,1,mass[i+1]/0.035,StringGrid1.Cells[i,j]); // заполнение результатов тестирования
            SetHeightWidthTable(tabl,1,2,0,12,1,mass[2]/0.035,masRT[2]); // вывод в первую строку
            ss:='';
            for i:=1 to 4 do
              ss:=ss+masRT[i+2]+#13;
            ss:=copy(ss,1,length(ss)-1);
            SetHeightWidthTable(tabl,2,2,0,12,1,mass[2]/0.035,ss); // вывод во 2 строку
            SetHeightWidthTable(tabl,3,2,0,14,1,mass[2]/0.035,masRT[8]); // в 3
            ss:='';
            for i:=1 to 4 do
              ss:=ss+masRT[i+8]+#13;
            ss:=copy(ss,1,length(ss)-1);
            SetHeightWidthTable(tabl,StringGrid1.RowCount+4,2,0,12,1,mass[2]/0.035,ss); // вывод в 14 строку (в данном тесте)
// тут в новой строке (15) и нужно вывести Председателя и членов 
            SetMergeCellsTable(tabl,1,1,1,4,1); // превращение 4 столбцов в один
            SetMergeCellsTable(tabl,2,1,2,4,0);
            SetMergeCellsTable(tabl,3,1,3,4,1);
            SetMergeCellsTable(tabl,StringGrid1.RowCount+4,1,StringGrid1.RowCount+4,4,0);
            CoolTrayIcon1.ShowBalloonHint('Информационное сообщение','Документ WORD заполнен...',bitInfo,10);
          end;
        SaveDocAs(extractfilepath(paramstr(0))+s);
        CoolTrayIcon1.ShowBalloonHint('Информационное сообщение','Документ сохранен...',bitInfo,10);
        CloseDoc;
      end;
    CloseWord;  
    CoolTrayIcon1.ShowBalloonHint('Информационное сообщение','Документ закрыт...',bitInfo,10);
  end;
Цитата:
Сообщение от Аватар Посмотреть сообщение
По хорошему позицию табов конечно программно рассчитывать
Код:
procedure TForm1.Button1Click(Sender: TObject);
Попробую реализовать твой алгоритм, как только окажется под рукой дельфятина
Исходники программ - http:\\www.kort.3dn.ru

Последний раз редактировалось KORT; 16.03.2015 в 11:28.
KORT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лимит для загружаемых фотох на пикселах FeGan JavaScript, Ajax 0 03.12.2011 20:31
ширина табло не та.... mrgrudge JavaScript, Ajax 4 29.12.2010 07:08
Ширина таблицы Syltan HTML и CSS 3 01.05.2010 23:28
Ширина символа Neeter Общие вопросы Delphi 4 10.05.2009 09:40
Ширина формы Glaznoy Общие вопросы Delphi 1 03.05.2009 12:38