Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1299173751
Leon-Z
2011-03-03 20:35
2011.06.12
Поиск 2 одинаковых элементов в массиве.


2-1299212434
smart
2011-03-04 07:20
2011.06.12
Считывание значений из xml


2-1299227899
Leon-Z
2011-03-04 11:38
2011.06.12
Многозадачность. TThread.


2-1299263954
Филька
2011-03-04 21:39
2011.06.12
Windows 7 и плавное перемещение прогрессбара


15-1298266795
Лун
2011-02-21 08:39
2011.06.12
Облегчить беспорядок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский