Форум: "Начинающим";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];
ВнизИмя активного окна Найти похожие ветки
← →
rodionov_uv (2011-03-04 16:31) [0]Как узнать имя активного окна Word.
Word запускается из Delphi количество запущенных документов может быть разным.
← →
clickmaker © (2011-03-04 16:32) [1]GetForegroundWindow что-ли? Или что значит "активного"?
← →
rodionov_uv (2011-03-04 16:35) [2]того в котором происходит поиск
← →
Противный (2011-03-04 17:10) [3]> rodionov_uv (04.03.11 16:31) Word запускается из Delphi
Вот так вот сам берет и запускается?
> rodionov_uv (04.03.11 16:31) того в котором происходит поиск
Вот, гад, сам запускается, сам ищет!
← →
rodionov_uv (2011-03-04 17:53) [4]Вот так я запускаю и ищу что надо и могу одновременно делать это в нескольких документах(вернее по очереди, так как мне узнать в каком окне сейчас происходит поиск.
private
procedure Find;
{ Private declarations }
public
i,t,t1,ch,ch1,bt,bt1,n,k : integer;
W : Variant;
ReadList: TStringList;
EditList: TStringList;
WriteList : TStringList;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Find;
var
x: TLabeledEdit;
begin
if W.Selection.Find.Execute("$##") then
begin
n := W.Selection.Start;
end;
if W.Selection.Find.Execute("^?##") then
begin
k := W.Selection.End;
i := i + 1;
if odd(i) then
begin
ReadList.Add(W.ActiveDocument.Range(n, k).Text);
x:=TLabeledEdit.create(self);
x.parent:=Panel1;
x.name := "edit" + IntToStr(i);
EditList.Add("edit" + IntToStr(i));
x.EditLabel.Caption:= W.ActiveDocument.Range(n+3, k-2).Text;
x.EditLabel.Font.Size := 11;
x.Text := "";
x.left:=10;
x.top:=t;
x.Width:=250;
t := t + 50;
bt := bt + 50;
OpenBut.Top := bt;
PrintBut.Top := bt;
Form1.ClientHeight := ch + t - 30;
Panel1.Height := ch + t - 30;
end
else
begin
ReadList.Add(W.ActiveDocument.Range(n, k).Text);
x := TLabeledEdit.create(self);
x.parent :=Panel1;
x.name := "edit" + IntToStr(i);
EditList.Add("edit" + IntToStr(i));
x.EditLabel.Caption := W.ActiveDocument.Range(n+3, k-2).Text;
x.EditLabel.Font.Size := 11;
x.Text := "";
x.left:=280;
x.top := t1;
x.Width:=250;
t1 := t1 + 50;
bt1 := bt1 + 50;
OpenBut.Top := bt1;
PrintBut.Top := bt1;
Form1.ClientHeight := ch1 + t1 - 30;
Panel1.Height := ch1 + t1 - 30;
end;
W.Selection.Start := k;
end;
end;
procedure TForm1.OpenButClick(Sender: TObject);
var
q:integer;
aaa:String;
begin
................
begin
Form1.Visible := false;
W := CreateOleObject("Word.Application");
W.Visible := False;
for q:=1 to W.ActiveDocument.Words.count do
begin
Find;
end;
OpenBut.Enabled := False;
PrintBut.Enabled := True;
Form1.Constraints.MaxWidth := 567;
Form1.Constraints.MinWidth := 567;
if Panel1.Height <= 560 then
begin
Form1.Constraints.MaxHeight := Panel1.Height+34;
Form1.Constraints.MinHeight := Panel1.Height+34;
Form1.Constraints.MaxWidth := 550;
Form1.Constraints.MinWidth := 550;
end
else
begin
Form1.Constraints.MaxHeight := 600;
Form1.Constraints.MinHeight := 600;
end;
SetWindowPos(Form1.Handle,HWND_TOP,round((screen.Width/2)-(form1.Width/2)),0,0,0,SWP_nosize or SWP_NOACTIVATE);
Form1.Visible := True;
SetWindowPos(FindWindow(nil,PChar(aaa + " - Microsoft Word")) or FindWindow(nil,PChar(aaa + " [Режим ограниченной функциональности] - Microsoft Word")),HWND_TOP,0,(Form1.Height + 5),0,0,SWP_nosize or SWP_NOACTIVATE);
W.Visible := True;
end;
end;
......................................
← →
clickmaker © (2011-03-04 18:00) [5]> как мне узнать в каком окне сейчас происходит поиск.
узнать откуда?
сам же запустил поиск, и не знаешь где?
← →
rodionov_uv (2011-03-04 18:08) [6]это я просто щас вам на кнопку повесил чтоб было понятно , а так это происходит автоматически.
ладно начну с самого начала
имеем некий прибор который опрашивает счётчики элекроэнергии и значения заносит в таблицу Exel, прога ищет значения превышающие значения находящихся в тех.условии и создаёт таблицу превышения нагрузок, а заодно создаёт тех.условия и акты разграничений и т.д
← →
clickmaker © (2011-03-04 18:12) [7]> заносит в таблицу Exel
опа. Новый персонаж появился. А Word тут причем?
← →
rodionov_uv (2011-03-04 18:15) [8]просто когда идёт поиск и я создаю тех.условие у меня выскакивает ошибка,
т.к окрыто несколько документов сразу
← →
Противный (2011-03-04 18:15) [9]Application.ActiveWindow.Caption?
← →
rodionov_uv (2011-03-04 18:21) [10]просто раньше была написана только для снятия показаний, а теперь ещё надо сверять с тех условиями.
тех.условия в worde, акты тоже в worde
алгоритм такой сняли показания - занесли в exel - открыли word - нашли строку- сравнили - если больше - создаём новый документ, но при етом можно создавать тех условия и акты во время поиска
← →
clickmaker © (2011-03-04 18:23) [11]такой алгоритм наводит на мысль о БД...
← →
rodionov_uv (2011-03-04 18:25) [12]да исли это важно то опрос идёт каждую минуту
← →
rodionov_uv (2011-03-04 18:29) [13]речи о бд быть не может по тому что эти листы нагрузук в 00:00 формируются в отдельный файл и отправляются по почте и в течении дня могут быть просмотрены как оперативным составом так по сети, а из програмного обеспечения кроме офиса ничего нет
← →
rodionov_uv (2011-03-04 22:37) [14]Противный СПАСИБО тебе огромное опять выручил.
Только понять не могу, а чего ник такой выбрал вроде сам то и нечего и приятно на вопросы отвечаешь.
Если чего не ругайся на меня ведь програмированию учился 13 лет назад и больше не занимался, а щас просто нужда заставила вспомнить.
← →
KilkennyCat © (2011-03-05 00:55) [15]
> rodionov_uv (04.03.11 18:29) [13]
да, это мощнейший аргумент против бд.
сглючит твоя возня с ехел-ворд-хрензнаетчего, да еще с такой частотой - раз в минуту.
пиши бд, пока по уши не увяз.
← →
Германн © (2011-03-05 01:08) [16]
> тех.условия в worde, акты тоже в worde
> алгоритм такой сняли показания - занесли в exel - открыли
> word - нашли строку- сравнили - если больше - создаём новый
> документ
Что простые текстовые файлы использовать в алгоритме обработки часто поступающих данных использовать некошерно? Обязательно Ворд и Ёксель?
Ну и clickmaker © (04.03.11 18:23) [11] + KilkennyCat © (05.03.11 00:55) [15] дело говорят.
← →
han_malign (2011-03-05 09:15) [17]
> да, это мощнейший аргумент против бд.
>
> сглючит твоя возня с ехел-ворд-хрензнаетчего
- тем более, что наверняка существуют менее ректальные пути экспорта ежедневного отчета, хотя бы в том же MS Access... - учитывая, что офис таки слегка заточен под автоматизацию документооборота...
З.Ы. Причем, за исключением опроса устройства, все остальное наверняка решается скриптами.
← →
rodionov_uv (2011-03-05 12:29) [18]Как я уже говорил сама программа опроса была написана прежним програмистом и работает вот уже почти полтора года и нареканий пока не было.А с приходом нового начальства начались новые бзики, раньше получили отчёт отправили и хрен с ним, а теперь обработай и пошли в обработанном виде.
Теперь чтоб сформировать отчёт работают 3 человека, которые вообще не имеют представления что конкретно надо сделать и для чего это надо.
Среди них и я,а я сам-то человек ленивый вот и решил дописать програму, благо исходники остались.Вроде бы всё работает, а там дальше поглядим.
Единственное, что хотелось бы доделать, так это подсветку вводимого текста в документ при создании нового документа из шаблона, текст кода из четвёртого поста.Т.е когда компонент TLabeledEdit находится в фокусе то в Worde подсвечивался текст который я ввожу.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.003 c