Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/33: Рейтинг темы: голосов - 33, средняя оценка - 4.91
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76

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

22.12.2011, 21:41. Показов 7018. Ответов 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 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru