Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
Delphi 6-7

Как отобразить габаритный рисунок?

19.06.2019, 07:23. Показов 2264. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу попросить совета как можно организовать отображение габаритного рисунка перед пользователем.

На форме есть несколько TImage, которые в стыке с друг другом и наложением пользователю представляются единым изображением. Самый крайний правый TImage динамичен и в зависимости от опред-ых условий может смещаться. И вот смещаться он может далеко вправо. Соответственно, основная форма при этом будет нефигово так расширяться, чего очень не хочется.

На ум приходит масштабировать конечное изображение, а потом по клику выводить полное изо в отдельной форме. Но проблема в том, что каким образом заскринить получившуюся солянку (все TImage), не отображая её перед пользователем предварительно (пусть хоть и не надолго)?
Ещё есть вариант заюзать ScrollBox, но как туда всю солянку без того же скриншота я без понятия как запихнуть.

Что тут можно придумать?

Пызы. Delphi 7.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.06.2019, 07:23
Ответы с готовыми решениями:

Отобразить рисунок по какому-то событию
я не знаю как называется тема на компьютерном языке. но мне нужно сделать 2 рисунка. При этом один рисунок сначала не отображается, а при...

Как отобразить в ячейке рисунок WPF
Как отобразить рисунок в ячейке DataGrid .. Пробовал писать код, //Элемент для DataGrid public class MyDataGridItem { ...

Как с BufferedImage открыть рисунок и отобразить на JFrame
прочитать рисунок могу, а отобразить на JFrame или на панели не получается, JLabel не подходит.

45
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,684
Записей в блоге: 21
19.06.2019, 13:28
Студворк — интернет-сервис помощи студентам
все пришло уже в состояние, когда без ТЗ дальше делать нечего
0
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
19.06.2019, 14:27
Если ещё и именно TLabel дорисовывать, то уже прощще PrintTo() PaintTo()...
Ибо чтоб учесть все текущие характеристики каждого экземпляра... Типа стиль, размер, цвет...
1
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
19.06.2019, 15:44  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
все пришло уже в состояние, когда без ТЗ дальше делать нечего
Да ТЗ то же самое: отобразить в TImage несколько png с сохранением прозрачности.

В инете есть примеры с GDI+, но там в итоге единый файл не отображается на форме, а просто сохраняется.
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,684
Записей в блоге: 21
19.06.2019, 16:00
издеваетесь?
если уж вы смогли сделать битмап чтоб сохранить его, то уж вывести его на экран ну по-любому можно
0
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
19.06.2019, 16:20  [ТС]
Delphi
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
var
  Bckgrnd: TGdipGraphic;
  Img1: TGdipGraphic;
  Img2: TGdipGraphic;
  bmap : TBitmap;
 
begin
  Bckgrnd:=TGdipGraphic.Create;
  Img1:=TGdipGraphic.Create;
  Img2:=TGdipGraphic.Create;
  bmap:=TBitmap.Create;
 
  Bckgrnd.LoadFromResource('Sch21b');
  Img1.LoadFromResource('Sch211');
  Img2.LoadFromResource('Sch212');
 
  bmap.Width := 480;
  bmap.Height := 292;
  bmap.Canvas.FillRect(Rect(0, 0, bmap.Width , bmap.Height));
  bmap.Canvas.Draw(0, 0, Bckgrnd);
  bmap.Canvas.Draw(0, 0, Img1);
  bmap.Canvas.Draw(300, 0, Img2);
 
  //Label1.PainTo( // none such method
  Image1.Picture.Graphic:=nil;
  Image1.Picture.Assign(bmap);
 
  Bckgrnd.Free;
  Img1.Free;
  Img2.Free;
  bmap.Free;
В общем, вот накладывания png-шек... С Label думал сделать так:
Цитата Сообщение от GoodWeather Посмотреть сообщение
Если ещё и именно TLabel дорисовывать, то уже прощще PaintTo()
А оказалось, что именно у TLabel такого метода нема

Добавлено через 8 минут
Или я что-то не так опять делаю? В общем, хочу срисовать label на формируемый tbitmap. Выше был вариант вывода текста, но как заметили:
Цитата Сообщение от GoodWeather Посмотреть сообщение
чтоб учесть все текущие характеристики каждого экземпляра... Типа стиль, размер, цвет...
0
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
19.06.2019, 16:34
Чуть ранее вам писали, что вместо Label надо использовать bmap.Canvas.TextOut(20, 10, 'Some text');
0
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
19.06.2019, 17:54  [ТС]
Пытливый,
Цитата Сообщение от Пытливый Посмотреть сообщение
вместо Label надо использовать bmap.Canvas.TextOut(20, 10, 'Some text');
Цитата Сообщение от UnityMan Посмотреть сообщение
Выше был вариант вывода текста, но как заметили:
Цитата Сообщение от GoodWeather Посмотреть сообщение
чтоб учесть все текущие характеристики каждого экземпляра... Типа стиль, размер, цвет...
Хотя вроде как можно там и стиль задать и прочее.
0
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
19.06.2019, 20:20
Цитата Сообщение от UnityMan Посмотреть сообщение
Хотя вроде как можно там и стиль задать и прочее.
Можно. А что там, несколько параметров всего, скорее всего, цвет и размер шрифта.

Добавлено через 29 минут
Цитата Сообщение от UnityMan Посмотреть сообщение
прощще PaintTo()
А оказалось, что именно у TLabel такого метода нема
Не именно у TLabel. PaintTo есть у наследников TWinControl, к которым относятся формы, кнопки и прочее, а Label, Image и т.д. наследники TGraphicControl, у которого нет PaintTo.
0
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
19.06.2019, 20:33  [ТС]
Мужики, верю, что надоел, но помогите плиз добить задачу. Я в TImage вывожу всю мою солянку но в виде миниатюры (у TImage. стоит Stretched). Теперь хочу, чтобы при клике на миниатюру изображение открывалось полностью, но при этом чтобы выходило за пределы текущей формы и поверх нее, т.к. изображение в форму не умещается - такое реально?
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,684
Записей в блоге: 21
19.06.2019, 20:36
изменяя Left Top Width Height у TImage программно...
0
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
19.06.2019, 21:09
Цитата Сообщение от UnityMan Посмотреть сообщение
но при этом чтобы выходило за пределы текущей формы и поверх нее,
Разве что выводить это дело на отдельную форму, на которой сидит один Image.
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,684
Записей в блоге: 21
19.06.2019, 22:01
ну положить в scrollbox

Добавлено через 52 секунды
но правильное решение ессно - рисовать самостоятельно с нужным масштабом ровно ту часть что нужна
0
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
19.06.2019, 23:45  [ТС]
krapotkin,
Цитата Сообщение от krapotkin Посмотреть сообщение
изменяя Left Top Width Height у TImage программно...
Не, верхний левый угол изображения не должен меняться.
Цитата Сообщение от krapotkin Посмотреть сообщение
положить в scrollbox
Не показывает полностью изо в конкретный момент времени.

AzAtom,
Цитата Сообщение от AzAtom Посмотреть сообщение
Разве что выводить это дело на отдельную форму, на которой сидит один Image.
Это понятно, но хочется обойтись текущей формой.

В общем, вот примерно то, что я хочу получить:
Миниатюры
Как отобразить габаритный рисунок?  
0
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
20.06.2019, 00:22  [ТС]
Нашел в инете следующий совет по этому поводу:
Отрисуй форму с помощью регионов, потом, когда нужно будет выпихнуть изображение за форму - накладывай дополнительный регион туда
Добавлено через 22 минуты
Только не пойму есть ли при этом необходимость отрисовывать саму форму с помощью регионов?
0
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
20.06.2019, 01:28
Цитата Сообщение от UnityMan Посмотреть сообщение
В общем, вот примерно то, что я хочу получить:
Две формы. При нажатии на картинку - по абсолютным координатам картинки открывается всплывающая форма с авторазмером и туда передаётся нужное изображение. При потере фокуса закрывается. Аки всплывающая подсказка.
1
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
20.06.2019, 07:17  [ТС]
GoodWeather, абсолютные координаты- это типа координаты не относительно формы-родителя, а по экрану?
0
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
20.06.2019, 08:00
Image1.ClientToScreen(Point(0, 0)) или Image1.ClientOrigin.
1
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,684
Записей в блоге: 21
20.06.2019, 08:40
я собсно поэтому и говорил про ТЗ. никто не понимает, что конкретно вам нужно
посмотрел картинки
как вы себе представляете компонент, лежащий на форме, но вылезающий за пределы формы???
ессно, в таком случае вам нужна другая форма, в которую будет встроен ваш Image и которая вместе с ним будет расти куда бы вам ни захотелось...
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
20.06.2019, 10:21
Цитата Сообщение от krapotkin Посмотреть сообщение
ессно, в таком случае вам нужна другая форма, в которую будет встроен ваш Image и которая вместе с ним будет расти куда бы вам ни захотелось...
Возможно, с BorderStyle = bsNone
1
2 / 3 / 1
Регистрация: 17.12.2015
Сообщений: 168
20.06.2019, 11:43  [ТС]
krapotkin,
Цитата Сообщение от krapotkin Посмотреть сообщение
я собсно поэтому и говорил про ТЗ. никто не понимает, что конкретно вам нужно
Собственно, остальные участники меня понимают и дают дельные советы, за что им огромная благодарность.
Цитата Сообщение от krapotkin Посмотреть сообщение
как вы себе представляете компонент, лежащий на форме, но вылезающий за пределы формы???
Представляю легко: через регионы. Но как реализовывать не знаю, поэтому выход такой:
Цитата Сообщение от GoodWeather Посмотреть сообщение
При нажатии на картинку - по абсолютным координатам картинки открывается всплывающая форма с авторазмером и туда передаётся нужное изображение. При потере фокуса закрывается. Аки всплывающая подсказка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.06.2019, 11:43

Как на форме отобразить рисунок, находящий в интернете?
Подскажите, пожалуйста, как на форме отображать рисунки, находящиеся в интернете? Рисунок должен быть связанным, а не динамическим. Хочу...

отобразить рисунок
Привет всем!!! Господа, простите за тупой вопрос. Я вот в винформс пишу тупую игру там должны появляться объекты и в них нужно типа...

Отобразить рисунок с помощью Html
Подскажите пожалуйста как сделать что бы рисунок отображался. Делаю так: <HTML> <HEAD></HEAD> <BODY> ...

Отобразить рисунок media файла
Всем привет, пишу плеер и столкнулся с проблемой, не могу понять, как мне mp3file.Tag.Pictures вывести в Image <Image...

Отобразить рисунок, движущийся сверху вниз
Создать программу чтобы показывала такой рисунок и движется сверху вниз.


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru