|
Вопрос # 3 282/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Работаю по самоучителю.Нашел дескрипторы окон и пытаюсь вывести скрин окна на Form2.Image1,код:
фрагмент кодаВыводится в любом случае только(скрин),форма 2- это куда я пытаюсь вывести,что не так и как с этим бороться,подскажите пожалуйста.
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: igoriy (статус: Посетитель)
Вопрос отправлен: 14 октября 2009, 09:51
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Написал тебе пример - снятие скриншота окна Notepad.exe. Прицепляю. К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 14 октября 2009, 11:10
Оценка за ответ: 5
Комментарий к оценке: Спасибо
|
Мини-форум вопроса
Всего сообщений: 18; последнее сообщение — 14 октября 2009, 16:12; участников в обсуждении: 4.
|
Тов. Женька (статус: 3-ий класс), 14 октября 2009, 10:17 [#1]:
Не очень понял в чем проблема.
|
|
igoriy (статус: Посетитель), 14 октября 2009, 10:20 [#2]:
Не рисует окно открытой программы,а только что на скрине и все
|
|
Тов. Женька (статус: 3-ий класс), 14 октября 2009, 10:24 [#3]:
Если на вскидку по мелочам, то
1. Зачем WindowToBMP назначать функцией, если возвращаемое значение не используется?
2. Исключить из функции WindowToBMP строку WD := d; - это лишнее.
|
|
Тов. Женька (статус: 3-ий класс), 14 октября 2009, 10:27 [#4]:
А переменная d как-нибудь инициализируется?
Если сделать так:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
WindowToBMP(Form1.Handle);
end;
|
|
igoriy (статус: Посетитель), 14 октября 2009, 10:32 [#5]:
дело в том ,что в начале проги дескриптор WD преобразуется в строку и d,так было удобней, затем наоборот преобразует WD в
integer
|
|
igoriy (статус: Посетитель), 14 октября 2009, 10:37 [#6]:
Кстати WindowToBM я и не понимаю до конца,разве не эта функция должна возвращать картинку от любого открытого окна по определенному дескриптору?
|
|
Тов. Женька (статус: 3-ий класс), 14 октября 2009, 10:37 [#7]:
Т.е., если я правильно понимаю, вы пытаетесь вывести в Form2 скрин какого-то определенного окна, а выводится совсем не то. Так?
|
|
igoriy (статус: Посетитель), 14 октября 2009, 10:39 [#8]:
да.
|
|
Тов. Женька (статус: 3-ий класс), 14 октября 2009, 10:41 [#9]:
igoriy:
"
Кстати WindowToBM я и не понимаю до конца,разве не эта функция должна возвращать картинку от любого открытого окна по определенному дескриптору? "
Ну, если бы, в коде было написано:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Image1.Picture.Bitmap := WindowToBMP(Form1.Handle);
Form2.Show;
end; , то это была бы функия (попутно изменив код функции), а в вашем случае процедура, обозванная функцией.
|
|
Тов. Женька (статус: 3-ий класс), 14 октября 2009, 10:44 [#10]:
Так попробуйте принудительно указать в вызове функции хэндл требуемого окна, а не через переменную. И лучше было бы исходники выслать.
|
|
igoriy (статус: Посетитель), 14 октября 2009, 10:46 [#11]:
а нельзя для особа тупых примерчик.Допустим я вставляю дескриптор(который программа уже нашла ранее)и мне надо вывести скрин этого окна на Form2.Image1.На практике лучше усваивается,тем более многие эксперты посоветовали мой самоучитель в топку,слишком сложно и коряво объясняется и большинство листингов заранее с ошибками
|
|
igoriy (статус: Посетитель), 14 октября 2009, 10:49 [#12]:
Я исходник могу прислать- только сильно не смейтесь и не издевайтесь.И еще а как его теперь сюда прикрепить?
|
|
Тов. Женька (статус: 3-ий класс), 14 октября 2009, 10:58 [#13]:
Никакого смеха и издевок, обещаю. Сам через это прошел, поэтому такое не практикую.
|
|
igoriy (статус: Посетитель), 14 октября 2009, 11:01 [#14]:
А как всетаки добавить листинг сюда?
|
|
Ерёмин А.А. (статус: *Администратор), 14 октября 2009, 15:44 [#16]:
Автору вопроса: когда задаёте вопрос, код лучше вставлять в приложение, а не через сервис обмена кодом. Так будет удобнее и вам и экспертам - он будет отображаться прямо под вопросом. А сейчас нужно специально переходить по ссылке. При обсуждении в мини-форуме - да, вы правильно делаете.
|
|
igoriy (статус: Посетитель), 14 октября 2009, 15:56 [#17]:
Понял.Спасибо
|
|
min@y™ (статус: Доктор наук), 14 октября 2009, 16:12 [#18]:
Ну таки мой ответ помог или где?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|