Копирование экрана
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
atavin-ta, я не хочу ни у кого спрашивать. Ты факты можешь привести? Собственно, даже фактов мне твоих не нужно, я знаю правильный ответ - это функция VCL. Просто когда бросаешься словами "Учи API" нужно быть уверенным в свои словах, чтобы не ударить лицов в грязь. А если оказался не прав после такого, то не мешало бы извиниться.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Тебя что, не удовлетворяет ссылка на книгу? А ответа ты не знаешь.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Нет, не удовлетворяет. Мне нужны факты.
Кстати, ссылку ты так и не дал. Дай мне ссылку на электронный вариант его книги, где используется эта функция. Я тебе говорю, ты её путаешь с какой другой функцией. А ты вместо того, чтобы доказать свою правоту или сознаться в том, что ошибся, съезжаешь с темы.
Кстати, ссылку ты так и не дал. Дай мне ссылку на электронный вариант его книги, где используется эта функция. Я тебе говорю, ты её путаешь с какой другой функцией. А ты вместо того, чтобы доказать свою правоту или сознаться в том, что ошибся, съезжаешь с темы.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Чарлз Петзолд. Программирование для Windows 95. Это и есть факты. А вот вопрос, на который ты не ответишь: зачем вцлу вообще возиться с контекстом, если на поверхности вцл-компонентов рисуют только методами? То есть внутри процедура прорисовки конгечно использует контекст. Но нафига его передавать самой проге?
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Это не факт, это слова. Ссылку на книгу мне и номер страницы, на которой это написано." писал(а):Чарлз Петзолд. Программирование для Windows 95. Это и есть факты.
Я тоже могу сказать, что Пифагор писал о времени жизни CORBA объектов, но без доказательства мои слова не будет стоит и ломанного гроша, так же, как и твои.
То есть интеграцию с Win API ты отвергаешь на корню? Представь, что у тебя есть сторонняя библиотека, на вход которой ты должен передать DC. Если размышлять, как ты, то эту библиотеку в Borland C++ использовать не получится, так как средствами VCL контекст не получить. В топку такой компилятор, скажу тебе по секрету." писал(а):А вот вопрос, на который ты не ответишь: зачем вцлу вообще возиться с контекстом, если на поверхности вцл-компонентов рисуют только методами?
Кстати, метод GetDeviceContext есть, кажется, у VCL-еского TWinControl. Ты, наверное, очень удивишься, когда увидишь что именно он возвращает... так как возвращает он HDC.
Я ответил на твой вопрос?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
А HDC разве не контекст? Но зачем он нужен вцлу? И у меня вызывается не метод, а функция, не входящая в класс.
Бред. Любая апишная функция создания контекса, вызванная с полем Handle вцл-компонента в качестве параметра типа HWND, даст контекст. Зачем ещё метод-обролочка? Без неё проще." писал(а):То есть интеграцию с Win API ты отвергаешь на корню? Представь, что у тебя есть сторонняя библиотека, на вход которой ты должен передать DC. Если размышлять, как ты, то эту библиотеку в Borland C++ использовать не получится, так как средствами VCL контекст не получить. В топку такой компилятор, скажу тебе по секрету.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Я понимаю, что это метод. Я тебе только указал пример, когда VCL методы возвращают контекст в ответ на то вот эти твои слова:" писал(а):А HDC разве не контекст? Но зачем он нужен вцлу? И у меня вызывается не метод, а функция, не входящая в класс
А вот вопрос, на который ты не ответишь: зачем вцлу вообще возиться с контекстом, если на поверхности вцл-компонентов рисуют только методами?
Согласен, бред. Бред в твоей интерпретации." писал(а):Бред. Любая апишная функция создания контекста, вызванная с полем Handle вцл-компонента в качестве параметра типа HWND даст контекст.
Я повторяю постановку задачи. Представь, что у тебя есть сторонняя библиотека, из которой выставлена наружу функция, принимающая HDC. Если бы VCL методы не могли возвращать контекст, то такую библиотеку мы бы не смогли использовать в Builder/Delphi. Тебе не кажется, что это ограничение надуманным?
Я сторонник идеи того, что любая библиотека-враппер-для-Win-API (будь то MFC, ATL/WTL, VCL, не важно) должна уметь возвращать raw примитивы самой Win API для того, чтобы не накладывать подобные необдуманные ограничения. Все подобные библиотеки, которые мне известны следуют этому принципу и получить их методами, к примеру HDC, не является проблемой.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
У любого вцл обекта есть открытое поле для хранения дискриптора окна данного компонента. Этот хэндл можно непосредственно скормить апи. А любой метод, работающий с контекстом - оболочка для точно такой же апишной функции. Но если есть сама функция, то зачем нужен такой метод? Кроме того, существование метода-оболочки доказывает существование апишного аналога, так как получить контекст самостоятельно вцл не способен.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Прочитал и вспомнил:atavin-ta писал(а):У любого вцл обекта есть открытое поле для хранения дискриптора окна данного компонента. Этот хэндл можно непосредственно скормить апи. А любой метод, работающий с контектом - оболочка для точно такой же апишной функции. Но если есть сама функция, то зачем нужен такой метод? Кроме того, существование метода-оболочки доказывает существование апишного аналога, так как получить контекст самостоятельно вцл не способен.
Если головоломка, которую вы разгадали перед тем, как вы разгадали эту, была труднее, чем головоломка, которую вы разгадали после того, как вы разгадали головоломку, которую вы разгадали перед тем, как вы разгадали эту, то была ли головоломка, которую вы разгадали перед тем, как разгадали эту, труднее, чем эта?
Ты что воще?" писал(а):Прочитал и вспомнил:
Если головоломка, которую вы разгадали перед тем, как вы разгадали эту, была труднее, чем головоломка, которую вы разгадали после того, как вы разгадали головоломку, которую вы разгадали перед тем, как вы разгадали эту, то была ли головоломка, которую вы разгадали перед тем, как разгадали эту, труднее, чем эта?
Где ты вообще увидел ограничение? Бери хэндл и никаких гвоздёв. Кроме того, рисование с помощью апи на вцле - источник проблем, так как вцл имеет собственную процедуру прорисовки, которая точно не договрится ни с какой библиотекой. Если уж очень хочется, то создай потомка вцл класса, перегрузи метод прорисовки и из него вызови все нужные библиотеки.Romeo писал(а): Если бы VCL методы не могли возвращать контекст, то такую библиотеку мы бы не смогли использовать в Builder/Delphi. Тебе не кажется, что это ограничение надуманным?
Разве это ответ? Ты дал пример того, когда вцл именно так и делает, но не сказал, зачем." писал(а):Я понимаю, что это метод. Я тебе только указал пример, когда VCL методы возвращают контекст в ответ на то вот эти твои слова:
А вот вопрос, на который ты не ответишь: зачем вцлу вообще возиться с контекстом, если на поверхности вцл-компонентов рисуют только методами?
А в связи с переходом в другую ось у меня возник вопрос: имеет ли моя задача вообще какое нибудь решение под linuxом? Без TImageа, но чтоб файл можно было сразу после съёмки экрана показать щелчком мыши в окне снимающей экран проги. И чтоб его ещё можно было скролить и менять масштаб его отображения. Формат под linuxом - любой растровый, но задаётся жёстко на этапе разработки. И чтоб картинка в нём сохранялась без потерь. Под виндой постановка задачи не меняется, но сама задача откладывается.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".