Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4

Модерирует : ShIvADeSt

ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Нет не принудительное, а такое же гламурное как у Vista. Типа помигал в том окне, помигал в этом окне, а правда взяла верх. Вы правильно поняли, но тонкость в том что на одну систему для одного процесса насели два потока, сказали что братья а друг о друге ничего знать не хотят. В этом то и задача...

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 20:30 20-05-2009
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover

Цитата:
Вы правильно поняли, но тонкость в том что на одну систему для одного процесса насели два потока

ИМХО по барабану сколько потоков, так как для окна (а именно его хотите вынести наверх) используется только один поток - вот к нему и делай AttachThreadInput. Буду дома - скину кусок кода (вернее оптимизированная процедура SetForegroundWindow), который всегда выносит окно поверх остальных.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:51 21-05-2009
Aladdinych



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f3ka
А по подробнее

Всего записей: 323 | Зарегистр. 18-10-2005 | Отправлено: 07:44 21-05-2009
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Я может не правильно понял, то есть нужно аттачить главный поток к тому окну которое будет создано далее в потоке? Вот приблизительно код:

Код:
 
  AttachThreadInput(PE.ThreadID, MainThreadID, True);
  try
    Application.ProcessMessages;
    PE.Resume;
    while ExecuteThrd do
    begin
      if Application = nil then Break;
      if Application.Terminated then Break;
      Application.ProcessMessages;
    end;
  finally
    AttachThreadInput(PE.ThreadID, MainThreadID, False);
  end;
  Result := ExecuteResult;

PE - это локально созданный поток-объект.  Майн и PE айдишники правильно?

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 08:46 21-05-2009
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aladdinych
Писать наследника TThread в котором выполнять все необходимые действия... тема очень обширная... легче почитать HELP и примеры по потокам...

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 09:01 21-05-2009
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover

Цитата:
Я может не правильно понял, то есть нужно аттачить главный поток к тому окну которое будет создано далее в потоке?

Эээ а нафига в потоке окна создавать? С таким я не сталкивался, так как мое мнение что создавать поток, а потом в нем создавать окно, которое будет иметь свой поток для обработки сообщений - это что то из области мазохизма Если надо вывести какую то мессагу - то делай синхронизацию потока и основного окна и в процедуре синхронизации выдавай диалог. А создавать его в потоке - ИМХО изврат.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 09:22 21-05-2009
Aladdinych



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f3ka
О потоках почитал, понятно
Но есть вопрос - как передать создаваемому потоку параметр?
 

Всего записей: 323 | Зарегистр. 18-10-2005 | Отправлено: 09:48 21-05-2009
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aladdinych
переопределить конструктор например или написать метод у потока который будет получать параметр и запускать поток... вариантов много

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 09:55 21-05-2009 | Исправлено: f3ka, 09:55 21-05-2009
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Это помогло очень здорово!!! Спасибо, даже как специально у метода не было параметров. Только придётся некоторый навес делать.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 16:05 21-05-2009
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ps
Спасибо, был бы я работодателем, оторвал бы Вас с руками... Думяю, что я в дожниках. )

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 18:23 21-05-2009
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как значку программы в Трее выставить свойство "Отображать" вместо по умолчанию "Скрывать неактивные"? Речь идёт о скрытии значков в Трее.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 22:26 23-05-2009 | Исправлено: Aleksandr N, 22:29 23-05-2009
mauar



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйсто решить одну проблему. Есть главная форма,
на ней расположен компонент RichEdit в который из *.rtf файла
выводится текст. Есть вторая маленькая форма производящая поиск
текста на ней есть компонент RichEdit в которой вводишь слово
и он ищет  по компоненту RichEdit из главной формы в котором отображен текст .rtf.
 Проблема такая, маленькую форму поиска я поместил в библиотеку
которая динамически загружается при вызове формы, если кто знает  
почему не получается реализовать поиск из этой формы которая находится  
в библиотеки, для поиска по компоненту RichEdit из главной фрмы!
 
Подробнее...




используем тег more

Всего записей: 134 | Зарегистр. 31-07-2006 | Отправлено: 23:26 23-05-2009 | Исправлено: ShIvADeSt, 14:51 24-05-2009
Grande



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mauar
 
Как я понял, не работает процедура "Click"?
Ну, во-первых, не вижу смысла в ней - при освобождении библиотеки и так всё само закроется (ведь сразу после поиска вызывается процедура "Click", а следом освобождение DLL).
Во-вторых: ясно ведь написано о необходимости применения менеджера памяти (ведь, по сути, метод OnClick является указателем). Где он?
И последнее: методы объектов в DLL вызываются из основной программы совсем по-другому.
Вот здесь всё очень подробно расписано.  

Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 07:28 24-05-2009 | Исправлено: Grande, 09:17 24-05-2009
RS85



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста, у меня в Delphi 2007 не вызывается TObjectList.
 
Если присвоить в разделе var переменную, как обычно при использовании TList`а, пишет что неизвестный идентификатор...
 
Например:
 
var
a:TobjectList не пашет.
 
Пишет:
E2003 Undeclared identifier: 'TObjectList'
 
В чем может быть дело? Или это я туплю?

Всего записей: 593 | Зарегистр. 07-02-2007 | Отправлено: 10:41 24-05-2009
Grande



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RS85
Первое, что пришло в голову: имеется ли строка "uses Contnrs"?

Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 11:06 24-05-2009
RS85



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В смысле, Uses Controls?
 
Да, конечно.
Вроде все модули подключены

Всего записей: 593 | Зарегистр. 07-02-2007 | Отправлено: 11:08 24-05-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr N
А вы уверены, что пользователь обрадуется такому необычному поведению вашей проги? Я спрашиваю потому, что даже касперский не позволяет себе такого.
mauar
Наверно стоит еще включить рантаймпакеты.
RS85
Цитата:
В смысле, Uses Controls?
Именно "Contnrs".

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 11:19 24-05-2009 | Исправлено: Frodo_Torbins, 11:25 24-05-2009
Grande



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RS85
Как справедливо заметил Frodo_Torbins, именно "Contnrs" (контейнеры, то-бишь). Ведь TObjectList является, по сути, контейнером.

Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 11:49 24-05-2009 | Исправлено: Grande, 11:54 24-05-2009
RS85



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Grande
 
Ясно, всё понял! Спасибо!  
 
Добавлено:
А подскажите еще пожалуйста, как можно использовать Tlist или тот же TobjectList, если объекты пока не инициализированы?
 
Ведь Tlist допускает добавление только уже созданных объектов.
 
Или для этого например делать так:
.......................
var
f:TList;
c: array [0-15] of Object;
i:Integer;
begin
for i:= 0 to 15-1 do
c[i]:=Object.Create;
 
И только потом уже заносить эти объекты в Tlist:
f:=Tlist.create;
For i:= 0 to 15-1 do
f.Add (c[i]);

Всего записей: 593 | Зарегистр. 07-02-2007 | Отправлено: 12:12 24-05-2009 | Исправлено: RS85, 12:47 24-05-2009
Grande



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RS85

Цитата:
И только потом уже заносить эти объекты в TObjectlist:

Абсолютно справедливо.

Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 12:36 24-05-2009
   

Страницы: 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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4
ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru