|
Вопрос # 590/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Добрый день.У меня такой вопрос:ниже приведена процедура экспорта данных в Excel.
Нужно ее запустить в отдельном потоке.
Приложение: Переключить в обычный режим- procedure TForm10.SpeedButton8Click(Sender: TObject);
-
- var
- exl:OleVariant;
- i,j:integer;
-
- begin
- StatusBar1.Panels[2].Text:='Âûïîëíÿåòñÿ
ýêñïîðò
â Excel.
Ïîæàëóéñòà
ïîäîæäèòå.';
- exl:=CreateOleObject('Excel.Application');
- exl.Application.WorkBooks.Add;
- ADOQuery1.First;
- for i:=1 to ADOQuery1.RecordCount do
- begin
- for j:= 1 to DBGrid1.Columns.Count do
- begin
-
exl.Application.WorkSheets.Item['Ëèñò1'].Cells.Item[1,j].FormulaR1C1:=
DBGrid1.Columns[j-1].Title.Caption;
-
exl.Application.WorkSheets.Item['Ëèñò1'].Cells.Item[i+1,j].FormulaR1C1:=
DBGrid1.Fields[j-1].AsString;
- end;
- StatusBar1.Panels[3].Text:=Format('%3.2f',
[100*(i*DBGrid1.Columns.Count)/(ADOQuery1.RecordCount*DBGrid1.Columns.Count)])+'%';
- ADOQuery1.Next;
- Application.ProcessMessages;
- end;
- ADOQuery1.First;
- StatusBar1.Panels[2].Text:='';
- StatusBar1.Panels[3].Text:='';
- exl.Visible:=True;
-
- end;
-
 |
Вопрос задал: KilkaMS (статус: Посетитель)
Вопрос отправлен: 22 мая 2007, 11:50
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 22 мая 2007, 12:55; участников в обсуждении: 1.
|
Venom (статус: 1-ый класс), 22 мая 2007, 12:55 [#1]:
Вообще, поток задается следующим образом:
procedure TCountObj.Execute;
begin
//тело исполняемой процедуры
...
//Если поток остановлен, то выйти.
if terminated then exit;
end;
создание потока:
File->New->Other->Thread Object
запускается с главной формы:
co:=TCountObj.Create(true);
co.Resume;
co.Priority:=tpLower;//приоритет
//остановка выполнения
co.Terminate;
TCountObj - название потока.
со - объект потока
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|