Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi+Excel / 7 сообщений из 7, страница 1 из 1
25.09.2019, 09:31
    #39866659
alexK19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+Excel
Здравствуйте, при запуске Excel из приложения оно открывается на заднем плане. Подскажите как, если возможно, открывать документ на переднем плане.

Вариант - искать окно по его имени через API, как-то не очень...
...
Рейтинг: 0 / 0
25.09.2019, 10:19
    #39866688
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+Excel
25.09.2019 9:31, alexK19 пишет:
> Здравствуйте, при запуске Excel из приложения оно открывается на заднем плане.

как запускаешь?
показывай
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25.09.2019, 10:42
    #39866705
alexK19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+Excel
Мимопроходящий25.09.2019 9:31, alexK19 пишет:
> Здравствуйте, при запуске Excel из приложения оно открывается на заднем плане.

как запускаешь?
показывай



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
const
  ExcelApp = 'Excel.Application';

var
  Excel: OleVariant;

........



function TReportForm.CheckExcelInstall: boolean;
var
  ClassID: TCLSID;
begin
  Result := CLSIDFromProgID(PWideChar(WideString(ExcelApp)), ClassID) = S_OK;
end;

function TReportForm.RunExcel(DisableAlerts: boolean=true; Visible: boolean=false): boolean;
begin
  try
    if CheckExcelInstall then
      begin
        Excel := CreateOleObject(ExcelApp);
        Excel.Application.EnableEvents := DisableAlerts;
        //Excel.Visible := Visible;
        Result := true;
      end
    else
      begin
        MessageBox(0,'Excel íå óñòàíîâëåí','Îøèáêà',MB_OK+MB_ICONERROR);
        Result:=false;
      end;
  except
    Result := false;
  end;
end;

procedure TMainForm.Button1Click(Sender: TObject);
var
  WorkBook, Sheet: OleVariant;
begin
  RunExcel(True, True);
  WorkBook := Excel.Workbooks.Add;
  .......
  //Заполняю отчет
  ....... 
  Excel.Visible := Visible;
end;
...
Рейтинг: 0 / 0
25.09.2019, 11:06
    #39866720
istrebitel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+Excel
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TMainForm.Button1Click(Sender: TObject);
var
  WorkBook, Sheet: OleVariant;
begin
  RunExcel(True, True);
  WorkBook := Excel.Workbooks.Add;
  .......
  //Заполняю отчет
  ....... 
  Excel.Visible := Visible;
  SetForegroundWindow(Excel.Hwnd);
end;
...
Рейтинг: 0 / 0
25.09.2019, 11:10
    #39866726
istrebitel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+Excel
И вообще для максимального ускорения выгрузок

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
class function TExcelExporter.CreateExcelOleObject :OleVariant;
begin
  Result := CreateOleObject('Excel.Application');
  Result.Visible := False;
  Result.EnableEvents := False;
  Result.ScreenUpdating := False;
  Result.WorkBooks.Add;
  Result.Calculation := xlCalculationManual;
  Result.DisplayAlerts := False;
end;

class procedure TExcelExporter.ShowExcelOleObject(xls :OleVariant);
begin
  xls.ScreenUpdating := True;
  xls.EnableEvents := True;
  xls.Calculation := xlCalculationAutomatic;
  xls.DisplayAlerts := True;
  //xls.ReferenceStyle := xlA1;
  xls.Visible:=True;
  SetForegroundWindow(xls.Hwnd);
end;
...
Рейтинг: 0 / 0
25.09.2019, 11:16
    #39866734
alexK19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+Excel
>>SetForegroundWindow(Excel.Hwnd);

Спасибо.
...
Рейтинг: 0 / 0
27.09.2019, 11:35
    #39867757
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi+Excel
alexK19,

не скупитесь, купите компонент Spreadsheet раньше в комплекте DevExpress был сейчас есть и отдельно.

или качните, и вас ни кто не осудит ActiveX, работает от 98 по Windows 10, завоут его F1Book, если не заниматься супер построением графиков в Excel то думаю будет достаточно, просто и быстро.

потому что все эти сервера автоматизации от Microsoft ну не то это
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi+Excel / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]