3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76

Полноэкранное приложение и масштабирование Image

22.12.2011, 21:41. Показов 7169. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли сделать форму vcl form application полноэкранной?
и примерный код если не сложно пожалуста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2011, 21:41
Ответы с готовыми решениями:

Полноэкранное консольное приложение
Здравствуйте! Вопрос состоим в следующем: как запустить консольное приложение в полноэкранном режиме? Есть ли какая-то функция для...

Создать полноэкранное приложение
Привет, как сделать штобы форма была во весь єран и панель пуск скрывала ну типа как игра...

Создать полноэкранное приложение
Добрый вечер, подскажите как создать форму, чтобы она закрывала весь экран вместе с панелью задач. И как создать приложение чтобы оно...

44
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
22.12.2011, 23:11
Студворк — интернет-сервис помощи студентам
по идее все что ты нарисовал какой-то функцией на канве должно было наложиться на рисунок и с ним сохраниться... хм...
1
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
22.12.2011, 23:28  [ТС]
Цитата Сообщение от QWIPQ Посмотреть сообщение
по идее все что ты нарисовал какой-то функцией на канве должно было наложиться на рисунок и с ним сохраниться... хм...
сорь я тупанул.... дада он сохранился... кажется это решает мою задачу ... спасибо!

Добавлено через 6 минут
блин вот а попроще бы... как бы сделать это тока несохраняя в файл... а то как то туповато мне кажется
Image1->Picture->SaveToFile("123.bmp");
Image1->Picture->LoadFromFile("123.bmp");
и после этого работает
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
22.12.2011, 23:44
почитайте про TMemoryStream ...
C++
1
Image1->Picture->Bitmap->SaveToStream(ms);
и пользуйте без сохранения в файл
C++
1
Image1->Picture->Bitmap->LoadFromStream(ms);
.
1
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
23.12.2011, 00:02  [ТС]
можно тогда ещё вопрос.... как вставлять изображение в Image1->Picture с заданными коордионатами x,y ?

и не знаете случайно, почему при ходе работы программы когда у меня на канве имейджа рисуется что нибудь то имейдж почему то может мерцать?
как это можно было бы исправить?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.12.2011, 00:16
1. Копия картинки
C++
1
Image1->Canvas->Draw(x,y,bitmap); //копируем рисунок на Image
2.
C++
1
Form1->DoubleBuffered = true;
Можно в Инспекторе объектов.
1
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
23.12.2011, 00:21
мерцает - обновление и всего-то... так происходит например когда используешь Refresh(), у тебя эт прорисовка
0
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
23.12.2011, 00:31  [ТС]
Цитата Сообщение от QWIPQ Посмотреть сообщение
мерцает - обновление и всего-то... так происходит например когда используешь Refresh(), у тебя эт прорисовка
ну я понял, а как это убрать? я ведь меняю только кусочками канву на имейдже
0
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
23.12.2011, 00:38
если ты хочешь посмотреть что изменилось допустим в этой теме и дали тебе ответ на твой вопрос ты что делаешь? нажимаешь F5 или обновить... чтоб обновилась инфа нужная тебе, тут такой же принцип... он может и нарисует тебе, но без обновления ты эт не увидишь... и это встроено в методы прорисовки... понял?

проще говоря эт нужно
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.12.2011, 00:41
не понятно, какое собітие используется, в общем, рисовать гламурно в OnPaint, также можно на время ваших махинаций с рисованием запретить, а после - разрешить перерисовку формы/контрола:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// запретить
SendMessage(Control->Handle,WM_SETREDRAW,0,0);
// махинации...
// разрешить
SendMessage(Control->Handle,WM_SETREDRAW, 1, 0);
RedrawWindow(Control->Handle,
             NULL,
             0,
             RDW_ERASE|
             RDW_FRAME|
             RDW_INVALIDATE|
             RDW_ALLCHILDREN)
;
0
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
23.12.2011, 00:49  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
не понятно, какое собітие используется, в общем, рисовать гламурно в OnPaint, также можно на время ваших махинаций с рисованием запретить, а после - разрешить перерисовку формы/контрола:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// запретить
SendMessage(Control->Handle,WM_SETREDRAW,0,0);
// махинации...
// разрешить
SendMessage(Control->Handle,WM_SETREDRAW, 1, 0);
RedrawWindow(Control->Handle,
             NULL,
             0,
             RDW_ERASE|
             RDW_FRAME|
             RDW_INVALIDATE|
             RDW_ALLCHILDREN)
;
не работает
на Control ругается
Undefined symbol 'Control'
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.12.2011, 00:59
все работает, если не отключать мозги
естественно, там должен быть нужный вам контрол, например,
C++
1
Form1->Handle
или
C++
1
Image1->Handle
- отвыкайте от негламурного копипейста
2
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
23.12.2011, 01:06
Цитата Сообщение от LK Посмотреть сообщение
было очень неприличное слово ))
даж плюшку поставлю)))) сам думал уже над этим)))
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.12.2011, 01:09
плюшки - это хорошо )))
0
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
23.12.2011, 01:24  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
все работает, если не отключать мозги
естественно, там должен быть нужный вам контрол, например,
C++
1
Form1->Handle
или
C++
1
Image1->Handle
- отвыкайте от негламурного копипейста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
  HWND retrf;
  retrf=GetForegroundWindow();
  SendMessage(retrf,WM_SETREDRAW,0,0);
  Image2->Canvas->Draw(x*15,y*15,F);
  Image2->Canvas->Draw(x*15,y*15,BIT);
  SendMessage(retrf,WM_SETREDRAW,1,0);
  RedrawWindow(retrf,
               NULL,
               0,
               RDW_ERASE|
               RDW_FRAME|
               RDW_INVALIDATE|
               RDW_ALLCHILDREN);
ну вот как бы
только всёравно мерцает
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.12.2011, 01:46
при чем здесь GetForegroundWindow();?
C++
1
 retrf=ВашаФормаИлиКонтрол->Handle;
чем плохо ?
0
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
23.12.2011, 19:18  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
при чем здесь GetForegroundWindow();?
C++
1
 retrf=ВашаФормаИлиКонтрол->Handle;
чем плохо ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
HWND retrf;
retrf=Form2->Handle;
SendMessage(retrf,WM_SETREDRAW,0,0);
  Image2->Canvas->Draw(x*15,y*15,F);
  y--;
  Image2->Canvas->Draw(x*15,y*15,BIT);
  SendMessage(retrf,WM_SETREDRAW, 1, 0);
  RedrawWindow(retrf,
                     NULL,
                     0,
                     RDW_ERASE|
                     RDW_FRAME|
                     RDW_INVALIDATE|
                     RDW_ALLCHILDREN);
всё равно мерцает

Добавлено через 1 час 51 минуту
Цитата Сообщение от LK Посмотреть сообщение
2.
C++
1
Form1->DoubleBuffered = true;
Можно в Инспекторе объектов.
о вот это помогло спасибо

Добавлено через 15 минут
а можно вывести на имейдж изображение сразу в масштабированом варианте?

Добавлено через 5 часов 17 минут
хелп!! проблема не решена
можно выводить изображение на имейдж кусками и сразу же масштабировать его?
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
23.12.2011, 19:54
Цитата Сообщение от fghjk Посмотреть сообщение
а можно вывести на имейдж изображение сразу в масштабированом варианте?
Добавлено через 5 часов 17 минут
хелп!! проблема не решена
можно выводить изображение на имейдж кусками и сразу же масштабировать его?
C++
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Graphics::TBitmap *b;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
   Image1->Canvas->StretchDraw(RECT(0,0,Image1->Width,Image1->Height),b);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 *b=new Graphics::TBitmap;
 b->Width=800;
 b->Height=640;
}
//---------------------------------------------------------------------------
И соотсветственно у формы:
C++
1
2
BorderStyle = bsNone;
WindowState = wsMaximized;
и компонента Image1:
C++
1
Image1->Align = alClient;
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.12.2011, 20:20
fghjk, вам довольно хорошо все разжевали - масштабируете bitmap , и уже сам bitmap выводите в Image.

Судя по этому вопросу, и по этому:
Цитата Сообщение от fghjk Посмотреть сообщение
C++
1
Form1->DoubleBuffered = true;
о вот это помогло
- вы просто не читаете ответы на свои вопросы в своей же теме, так что отвечать вам как бы и смысла нет.
0
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
23.12.2011, 22:17  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Судя по этому вопросу, и по этому:- вы просто не читаете ответы на свои вопросы в своей же теме, так что отвечать вам как бы и смысла нет.
невнимательность
ну я же патом увидел это

Добавлено через 18 минут
немного не понял... вот через это только масштабировать
C++
1
Image1->Canvas->StretchDraw(RECT(указать масштаб),b);
а если я хочу вывести в какуюто определённую область? как вот например
C++
1
Image2->Canvas->Draw(коордионаты,b);
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.12.2011, 22:24
как вы думаете, для чего там два первых нолика?
C++
1
StretchDraw(RECT(0,0,...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.12.2011, 22:24

Как создать полноэкранное приложение
я написал для друга (ну попугать) так лёгкую пугалку, но её легко снять можно ли сделать так чтобы программа была на весь экран и без...

Как создать полноэкранное приложение?
Как создать полноэкранное приложение? Т.е когда нажимаешь на ярлык приложения открывается во весь экран. К примеру если открыть калькулятор...

Как создать полноэкранное приложение?
Как создать полноэкранное приложение,и как изменить курсор на собственный?

Как создать полноэкранное приложение
Здравствуйте Я столкнулся с очередной проблемой на пути создания своей программы. Возможно многие из Вас видели такую функцию как...

Программа, накладывающее изображение на полноэкранное приложение
Нужна программа, накладывающее изображение на полноэкранное приложение (в моём случае, игру). Видел кучу безполезных программ наподобие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru