На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> OpenOffice и Delphi , Подчеркивание текста в OpenOffice выведенном из Delphi
    Здравствуйте, уважаемые форумчане! Подскажите пожалуйста как подчеркнуть слово или фразу выведенную в OpenOffice из Delphi7. Просьба большая показать на примерах.
    Сообщение отредактировано: PavelJun -
      Покажи как ты выводишь слово или фразу из дельфи в опенофис. И я тебе подскажу.
        GonarhНу например вот так: OW.ReplaceAll('#mesto1&','пример фразы',[orpWholeWords]), это все делается в шаблоне.
          В общем каков ответ на вопрос, таков и результат.
          ExpandedWrap disabled
            var VariantArray:Variant;
                MyStruct:Variant;
            begin
              VariantArray:=VarArrayCreate([0, 2], varVariant);
              VariantArray[0] := OW.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
              VariantArray[0].Name := 'Underline.LineStyle';
              VariantArray[0].Value := 1;
              VariantArray[1] := OW.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
              VariantArray[1].Name := 'Underline.HasColor';
              VariantArray[1].Value := False;
              VariantArray[2] := OW.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
              VariantArray[2].Name := 'Underline.Color';
              VariantArray[2].Value := -1;
              MyStruct := OW.CreateInstance('com.sun.star.frame.DispatchHelper');
              MyStruct.ExecuteDispatch(FDocument.getCurrentController.getFrame, '.uno:Underline', '', 0, VariantArray);
              MyStruct := UnAssigned;
              VariantArray:=UnAssigned;
            end;


          Добавлено
          Но если шаблон, то я бы не парился, и сделал форматирование в шаблоне.
          Сообщение отредактировано: Gonarh -
            GonarhИзвините, сразу не ответил. Во первых не понял совсем, о каком форматировании в шаблоне идет речь. А вообще то я привел малюсенький кусочек из того, что необходимо сделать и именно для OpenOffice, для Worda уже давно сделано и прекрасно работает. А теперь надо тоже самое для OpenOffice: в базе данных почти в 90 полях есть признаки, будем говорить какого либо анкетирования, необходимо проверить каждый признак и если он грубо равен 1, то слово или фразу за которое отвечает данный признак надо вывести в документ и его подчеркнуть, если же он равен 0, то вывести надо, но не подчеркивать, вот и все. В Worde, это нескольео строчек кода, непосредственно само условие и три строчки непосредственного поиска и замены и подчеркивания, а во втором случае тоже поиска и замены без подчеркивания. В OpenOfice это целый геморрой. Вставил Вашу процедуру в программку, ругается компилятор на Bridge_GetStruct.
            Мне кто-то прислал следующую процедуру, очень похожую на вашу, но она не подчеркивает:
            procedure TOOWriter.ooUnderline(flag:Integer);
            var oDispatcher,oArgs:variant;
            CoreReflection,propertyValue0, propertyValue1,propertyValue2:variant;
            oFrame:variant;
            begin
            oFrame:=CreateOleObject('com.sun.star.ServiceManager');
            oDispatcher:=oFrame.createInstance('com.sun.star.frame.DispatchHelper');
            CoreReflection:=oFrame.createInstance('com.sun.star.reflection.CoreReflection');
            CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(propertyValue0);
            CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(propertyValue1);
            CoreReflection.forName('com.sun.star.beans.PropertyValue').createObject(propertyValue2);
            oArgs:=VarArrayCreate([0,2],varVariant);
            propertyValue0.Name:='Underline.Underline';
            propertyValue0.Value:=flag;
            oArgs[0]:=propertyValue0;
            propertyValue1.Name:='Underline.HasColor';
            propertyValue1.Value:=False;
            oArgs[1]:=propertyValue1;
            propertyValue2.Name:='Underline.Color';
            propertyValue2.Value:=-1;
            oArgs[2]:=propertyValue2;
            oFrame:=FDocument.getCurrentController.getFrame;
            oDispatcher.executeDispatch(oFrame,'.uno:Underline','',0,oArgs);

            end;

            Не знаю как это сделать в отдельном окошке
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0209 ]   [ 16 queries used ]   [ Generated: 19.04.24, 10:57 GMT ]