Перейти к содержанию
Fire Monkey от А до Я

DarkFlash

Пользователи
  • Постов

    14
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные DarkFlash

  1. а самому можно управлять настройками соединения? сохраните в отдельный файл и сделайте шифрование/дешифрование

    Да это вот не проблема, только для работы FireDAC, для движка его нужен файл FDConnectionDefs.ini в не зашифрованном виде.

  2. Всем доброго дня.

     

    Разрабатываю приложение и подключаюсь к БД через FireDAC. Все настройки подключений хранятся в файле конфигурации FDConnectionDefs.ini.

    Возникла необходимость прописать Логин/Пароль пользователя БД непосредственно в конфигурации, и соответственно они пишутся в FDConnectionDefs.ini без какого-либо шифрования.

     

    А теперь вопрос, есть ли возможность настроить как либо FireDAC, чтобы данный файл был в каком-либо зашифрованном виде или хотя-бы пара логин/пароль шифровалась?

  3. Ну насколько я понимаю, в цивилизованном мире это называется вабинары. Очень многие спецы этим пользуются, например медики. Если речь об этом, то за площадки за эти вебинары, нужно платить)). И зависит это от количества приконнектившихся )

     

    Ну есть и бесплатная площадка, единственно что она не позволяет регулировать подключившихся к просмотру, свободный доступ.

  4. Не так давно узнал о сервисе стримов, онлайн трансляций. Суть явления - это когда один участник вещает потоковое видео своих каких-либо действий( сейчас в основном это игры, но есть и такие вещи как кузнечное дело). Возникла мысль, так как я нахожусь на стадии самообучения RAD Studio в свободное время, тоже начать стримить какой-либо небольшой проект и вести как бы интерактивную разработку, обучаясь вместе. Кому-нибудь такое было бы интересно?

  5. что Debug говорит?

    Проблема в том, что на тех станциях, где программа не работает, у меня нет возможности запустить из под деббагера. На той на которой разрабатывал, все работает отлично, каждый ексель запускается в потоке и все отлично работает...

  6. ну раз используете activex, значит проблема в нем. может excel не установлен

     

    Установлен. Одинаковая редакция. Плюс я закомментил вызов самого Excel. Если чтот-о и происходит, то во время инициализации.

    Как я выше написал. Форма при запуске приложения появляется пустая вся, то есть я в принципе весь этот код вызвать не могу, так как он вызывается из контролов.

  7. Получаю Access Violation на некоторых рабочих станциях при запуске программы, форма выводится, но совершенно пустая без контролов.

    Код мизерный, закомментил вызовы других модулей.

    Рабочие станции вроде одинаковые. Может кто сталкивался с таким?

    КОД:

    unit uMain;
    
    interface
    
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
      FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo,System.Threading{,CustomExcelFunctions},
      ActiveX,System.SyncObjs,uRangeAdd,System.IOUtils, FMX.Edit;
    
    type
      TfMain = class(TForm)
        od_openfiles: TOpenDialog;
        m_files: TMemo;
        btn_openfiles: TButton;
        m_cells: TMemo;
        btn_exec: TButton;
        btn_addcells: TButton;
        gb_files: TGroupBox;
        gb_cells: TGroupBox;
        pb_files: TProgressBar;
        Button1: TButton;
        Edit1: TEdit;
        procedure btn_openfilesClick(Sender: TObject);
        procedure btn_execClick(Sender: TObject);
        procedure btn_addcellsClick(Sender: TObject);
        procedure FormShow(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      fMain: TfMain;
    
    implementation
    
    {$R *.fmx}
    
    procedure ClearBlanksFromList(AList:Tstrings);
    var
      i:integer;
    begin
      for I := AList.Count-1 downto 0 do
        if AList.Strings[i] = '' then
          AList.Delete(i);
    end;
    
    procedure TfMain.btn_openfilesClick(Sender: TObject);
    begin
      if od_openfiles.Execute then
      begin
        m_files.Lines.Text:=od_openfiles.Files.Text;
        ClearBlanksFromList(m_files.Lines);
        pb_files.Max:=m_files.Lines.Count;
      end;
    end;
    
    procedure TfMain.Button1Click(Sender: TObject);
    begin
      if od_openfiles.Execute then
      begin
        edit1.Text:= od_openfiles.Files.Strings[0];
      end;
    end;
    
    procedure TfMain.FormShow(Sender: TObject);
    begin
      {if TFile.Exists('Cells.txt') then
        m_cells.Lines.LoadFromFile('Cells.txt'); }
    end;
    
    procedure TfMain.btn_execClick(Sender: TObject);
    var
      A: array[0..10000] of integer;
      j:integer;
      ex:variant;
      max:integer;
      s:string;
    begin
      if Edit1.Text='' then
        raise Exception.Create('Не выбран файл для результата');
      if m_files.Lines.Count = 0 then
        raise Exception.Create('Не выбранs файлы для обработки');
      Cursor:=crHourGlass;
      for j := 0 to m_cells.Lines.Count-1 do
        A[j]:=0;
      max:=m_files.Lines.Count-1;
      pb_files.Value:=0;
      TParallel.For(0,max, procedure (I:integer)
        var
          ex:variant;
          j:integer;
        begin
          CoInitialize(nil);
          try
            if m_files.lines.strings[i]<>'' then
            begin
              exit;
              //ex:=OpenExcelBook(False,m_files.lines.strings[i]);
              for j := 0 to m_cells.Lines.Count-1 do
                if m_cells.Lines.Strings[j]<>'' then
                begin
                  s:=ex.range[m_cells.Lines.Strings[j]];
                  if (s<>'') and (s<>'0') then
                    A[j]:=A[j]+1;
                end;
              ex.DisplayAlerts := False;
              ex.Quit;
              pb_files.Value:=pb_files.Value+1;
            end;
          finally
            CoUninitialize;
          end;
        end);
      while pb_files.Value<>pb_files.Max do
        sleep(1000);
        exit;
      //ex:=OpenExcelBook(True,edit1.Text);//CreateNewExcelBook(True);
      for j := 0 to m_cells.Lines.Count-1 do
        if m_cells.Lines.Strings[j]<>'' then
        begin
          ex.range[m_cells.Lines.Strings[j]]:=A[j];
        end;
      Cursor:= crAppStart;
    end;
    
    procedure TfMain.btn_addcellsClick(Sender: TObject);
    begin
      if fRangeAdd.ShowModal = mrOk then
      begin
        m_cells.Lines.Text:= m_cells.Lines.Text + fRangeadd.e_Range.Text;
        fRangeadd.e_Range.Text:='';
        ClearBlanksFromList(m_cells.Lines);
      end;
    end;
    
    end. 
  8.  

    Update:

    Проблема крылась в TMesh.

    Изменилось позиционирование объекта

    Описано тут http://docwiki.embarcadero.com/Libraries/Seattle/en/FMX.Objects3D.TShape3D.WrapMode

    Тему можно закрывать.

    Простите, может я не совсем в теме. А как связано событие onResize у TabControl и 3D позиционирование?

     

    Как правильно заметил Belov.V. , это был поиск изменений которые привели к альтернативному поведению сцены. В итоге были найдены изменения в классе TMesh.

  9. К примеру у меня динамически формировалось положение элементов на форме по событию onResize у TabControl. Стало работать по другому. Пришлось переписывать (для всех платформ).

     

    У меня тоже расположение объектов в сцене на onResize весит, покопаю в эту сторону, спасибо.

    И что изменилось примерно можете сказать, если Вас не затруднит?

  10. Добрый день.

     

    Есть проект написанный на XE7.

    Достаточно большой, использует классы TViewport3D, TMesh, TLayer3D,TTextureMaterialSource.

    TMesh формировался заполнением поля Data в риалтайме

    При компиляции проекта в RAD 10, программа работает без ошибок, но объекты не появляются.

     

    Изменялось ли как-то поведение классов?

×
×
  • Создать...