Форум: "Начинающим";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
Вниздоступ к рекорду в другом окне Найти похожие ветки
← →
antonn © (2008-02-11 18:53) [0]Вопросец :)
Создаю окна динамически, у каждого есть определенный record. Знаю хендл окна, как получить этот рекорд? :) кроме WM_COPYDATA, вообще без send/post.messages, возможно как то?
вообще даже так - есть класс, вот он и должен забрать рекорд у окна с известным хендлом.
← →
Palladin © (2008-02-11 18:56) [1]1 может все таки формы а не окна?
2 хранить ссылки на объекты форм и обращаться к ним по божески...
← →
Ins © (2008-02-11 19:00) [2]А свойство-record нельзя сделать у класса?
← →
clickmaker © (2008-02-11 19:22) [3]
> Знаю хендл окна, как получить этот рекорд?
если он туда записан SetWindowLong(Handle, GWL_USERDATA), то GetWindowLong
иначе никак. Хэндл и какой-то там рекорд ничего друг про друга не знают
← →
antonn © (2008-02-11 19:22) [4]ну формы-формы :)
а можно вызвать процедуру у формы, в которую передать "пустой" такой же рекорд (ну через var), который заполнится на стороне той формы, которой я знаю хендл? :)
хранить ссылку на тот рекорд не могу, он там тоже динамически меняется. Та форам, соответственно, не знает о моем классе, на какой форме он находится и обратная связь пока только через WM_COPYDATA через главную форму проекта.
← →
Leonid Troyanovsky © (2008-02-11 22:20) [5]
> antonn © (11.02.08 19:22) [4]
> той формы, которой я знаю хендл? :)
Не переживай, он тоже меняется.
См., например, Recreate
--
Regards, LVT.
← →
antonn © (2008-02-11 23:19) [6]а Recreate где во время работы вызывается?
у меня форма создается динамически, при закрытии она Action:=caFree; и по этому хендлу уже получать ничего не надо :)
ЗЫ форма создается и висит, изредка меняя width и height, меняя позицию в z-order и не содержит заголовка.
← →
ketmar © (2008-02-12 00:31) [7]>[6] antonn © (2008-02-11 23:19:00)
в некоторых интересных местах. и в некоторых неочевидных. генофонд знает.
---
Understanding is not required. Only obedience.
← →
antonn © (2008-02-12 01:29) [8]
> ketmar © (12.02.08 00:31) [7]
есть что сказать - говори :)
с удовольсвием выслушаю, где именно и при каких обстоятельствах он вызывается. то, что именно в генофонде - и так ясно.
← →
Германн © (2008-02-12 01:38) [9]
> antonn © (12.02.08 01:29) [8]
>
>
Так все-таки форма или окно? Если форма, то нафига нужны какие-то левые хэндлы? При создании формы всегда под руками ссылка на созданный экземпляр класса. И уж эта ссылка будет валидной всегда, вплоть до уничтожения сего экземпляра.
А если окно, то тут много чего, Но у окон никогда не было никаких рекордов.
← →
antonn © (2008-02-12 01:44) [10]зарегистрированый класс формы :)
RegisterClasses([TFormI]);
создаю:SomeComponent:TComponent;
begin
SomeComponent:=TComponentClass(FindClass("TFormI")).Create(Application);
ну можно к компонентам обращаться через (SomeComponent as TFormI), но дело в том, что в той форме есть TList, в который потом кладуться указатели на рекорды, которые мне нужно достать. Они там тоже формируются динамически :)
можно конечно завести pointer в public формы, а после заполнения Tlist указывать им на нужный рекорд, но как то некузяво. Как тогда достать пойнтер? :)
← →
ketmar © (2008-02-12 01:47) [11]>[8] antonn © (2008-02-12 01:29:00)
ты альтернативный по жизни, или умело притворяешься? фраза «генофонд знает» не сподвинула тебя сделать поиск по исходникам генофонда? убогим не подаю, обратись к другому кому.
---
Understanding is not required. Only obedience.
← →
antonn © (2008-02-12 01:48) [12]
> Как тогда достать пойнтер? :)
завести еще один пойнтер указывающий на пойнтер на форме? %)
← →
antonn © (2008-02-12 01:49) [13]
> ketmar © (12.02.08 01:47) [11]
форум - это место общения, обсуждения. На ВСЕ вопросы "генофонд знает".
повторюсь - "есть что сказать - скажи".
← →
ketmar © (2008-02-12 01:57) [14]>[13] antonn © (2008-02-12 01:49:00)
я уже сказал. ты отчего-то считаешь, что все вокруг тебе должны. уверяю тебя — это не так. я тебе дал достаточно информации, чтобы ты раскопал интересующее сам. не хочешь? тогда напиши сумму, которую готов мне заплатить за удовлетворение твоего любопытства. работа — она забесплатно делается редко.
---
Understanding is not required. Only obedience.
← →
antonn © (2008-02-12 02:04) [15]на информацию мне намекнул Leonid Troyanovsky. Хотя и известно, что хендл "не железный", спасибо ему что сказал мне об этом совершенно цивилизовано, не ткнув лицом в грязь и тп :)
если ты считаешь, что мы тебе здесь должны - это не так. ты не обязан отвечать. только если тебя там не пытают утюгами %)
> работа — она забесплатно делается редко.
за платно делается качественная работа, а посмотрев отношение к качественной работе в соседней ветке я вижу, что платить не нужно будет, зачем, если код придется пересматривать потом весь, чтобы небыло сюрпризов "а надо было делать вот так!" :) (скока запятых! :))
← →
Германн © (2008-02-12 02:06) [16]
> antonn © (12.02.08 01:44) [10]
>
> зарегистрированый класс формы :)
> RegisterClasses([TFormI]);
>
> создаю:
> SomeComponent:TComponent;
> begin
> SomeComponent:=TComponentClass(FindClass("TFormI")).Create(Application);
>
>
> ну можно к компонентам обращаться через (SomeComponent as
> TFormI), но дело в том, что в той форме есть TList, в который
> потом кладуться указатели на рекорды, которые мне нужно
> достать.
КулХацкер? Только не ври! В угол поставлю!
:)
← →
antonn © (2008-02-12 02:07) [17]
> Германн © (12.02.08 02:06) [16]
>
> КулХацкер? Только не ври! В угол поставлю!
> :)
не бейте дяденька! :)
там типа своего ВЦЛ, хотели сделать более универсальный "креатор объектов".
← →
antonn © (2008-02-12 02:09) [18]хм.. а если я знаю класс окна и его хендл, могу я сотворить что то подобное?
(Getwindowhandle(hwdl) as TFormI).record? есть что нибудь подобное типа Getwindowhandle?
← →
Германн © (2008-02-12 02:19) [19]
> там типа своего ВЦЛ, хотели сделать более универсальный
> "креатор объектов".
>
Где там? В тьмутаракани? Так ведь "там" уже было:
"Сквозь слёзы, застилающие глаза, я увидел, как Кристобаль Хозевич, зловеще
играя тростью, приблизился к Лавру Федотовичу и приказал ему сквозь зубы:
- Пшел вон.
..."
← →
ketmar © (2008-02-12 02:27) [20]>[15] antonn © (2008-02-12 02:04:00)
>за платно делается качественная работа
на качественную у тебя денег не хватит. учитывая уровень клиента — это будет очень дорого.
---
Understanding is not required. Only obedience.
← →
antonn © (2008-02-12 12:21) [21]
> Где там?
там, где нет отношения к сабжу :)
код создания я показал, а как оно выглядит и называется не важно, в общем то...
← →
Ins © (2008-02-12 12:45) [22]
> хм.. а если я знаю класс окна и его хендл, могу я сотворить
> что то подобное?
Есть, только не пойму зачем оно тебе? Чем не подходит [9]? По поводу получения ссылки по хэндлу - см. FindControl
← →
Leonid Troyanovsky © (2008-02-12 12:47) [23]
> antonn © (12.02.08 01:44) [10]
> потом кладуться указатели на рекорды, которые мне нужно
> достать. Они там тоже формируются динамически :)
SetProp, скажем, в перекрытом CreateWnd.
А, во-ще-то, сделать той форме нужное свойство или
метод доступа.
--
Regards, LVT.
← →
antonn © (2008-02-12 12:50) [24]
> Ins © (12.02.08 12:45) [22]
у меня хранятся только хендлы, ссылок на экземпляры класов не хранятся.
> По поводу получения ссылки по хэндлу - см. FindControl
блин )))) спасибо :)
← →
Ins © (2008-02-12 12:53) [25]
> у меня хранятся только хендлы, ссылок на экземпляры класов
> не хранятся.
Вот я этого и не пойму. Почему бы не сделать наоборот?
← →
antonn © (2008-02-12 13:08) [26]потому что оно уже есть, и никто мне не даст переделывать. да и не хочется, там пол ядра переколбасить надо будет...
← →
Ins © (2008-02-12 13:10) [27]
> antonn © (12.02.08 13:08) [26]
Аааа, тогда ясно :) Скажу даже больше, как я тебя понимаю! :-D
← →
ketmar © (2008-02-12 13:24) [28]>[24] antonn © (2008-02-12 12:50:00)
>у меня хранятся только хендлы, ссылок на экземпляры класов не хранятся.
обалдеть! дайте две!
---
Understanding is not required. Only obedience.
← →
antonn © (2008-02-12 13:27) [29]
> ketmar © (12.02.08 13:24) [28]
>
> обалдеть! дайте две!
сначала заработай %))
← →
ketmar © (2008-02-12 13:32) [30]>[29] antonn © (2008-02-12 13:27:00)
на что? на гуано, которое даже спроектировать нормально не могли? опять же у вас денег не хватит доплатить мне, чтобы я это хотя бы взял, я уж не говорю «использовал».
---
Understanding is not required. Only obedience.
← →
antonn © (2008-02-12 13:38) [31]да ладно, не бушуй, я там смайлики, если что, поставил :)
у слона все равно и длиннее и толще %)
← →
ketmar © (2008-02-12 13:59) [32]>[31] antonn © (2008-02-12 13:38:00)
если я не ставлю смайлов — это вовсе не значит, что я серьэёзен, как китайский император.
---
Understanding is not required. Only obedience.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.055 c