Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 4

Компонент, одновременно выводящий текст и изображение

25.04.2012, 23:29. Показов 2452. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите пожалуйста, какой компонент делфи одновременно выводит текст и изображение))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.04.2012, 23:29
Ответы с готовыми решениями:

Модуль выводящий текст на всех страницах
У меня вопрос можно ли создать модуль который будет выводить на любой странице сайта определенный текст например...

Статья и изображение в БД одновременно.
Всем привет! Есть бд, в которой две таблице article(id_article, название статьи контент и тд.) image(id_image, url, art_id) связь между...

Можно ли одновременно получать изображение с двух камер
фронтальной и заднего вида?

10
210 / 169 / 24
Регистрация: 24.04.2012
Сообщений: 615
25.04.2012, 23:51
Тебе повезло, ты первый кому он понадобился и у тебя все шансы написать его первым. )
1
 Аватар для Alex_pac
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
26.04.2012, 00:06
подскажите пожалуйста, какой компонент делфи одновременно выводит текст и изображение
TWebbrowser
1
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
26.04.2012, 07:38
TSecretPanel из RXLibrary, а также TRichView (есть бесплатный). Однако, можно реализовать вывод изображения на базе обычных: TMemo, TListbox, TStringGrid и т.д.
1
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 4
26.04.2012, 20:02  [ТС]
тааааааааааааак, а в TMemo,TListbox и т.д. каким образом?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
26.04.2012, 20:30
...да проще простого, перерисовкой на канвасе. Для TListBox:

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
var
  bmp:TBitmap;
 
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var cc:TCanvas;
begin
  cc:=(Control as TListBox).Canvas cc.FillRect(rect);
  cc.Draw(Rect.Left+100,Rect.Top, bmp);
  cc.TextOut(Rect.Left, Rect.Top, 'разум');
end;
 
procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer; var Height: Integer);
begin
  if index=1 then Height:= 24 
   else Height:= 16
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  bmp:=TBitmap.Create;
  bmp.LoadFromFile('test.bmp')
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  bmp.Destroy
end;
Название: 1.PNG
Просмотров: 213

Размер: 4.7 Кб

Пример с TMemo и регионами (усложненный, демонстрация возможностей на About-форме, см. вложение):
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
var   First:Boolean=true;
  BmpText:TBitmap;
 
procedure Tlgs.CreateText;
var i,W,tmp:integer;
 DW:array of Integer;
 bck:TBitmap;
 r:trect;
begin
 
 bck:=TBitmap.Create;
 bck.LoadFromResourceName(HInstance,'BACKGROUND');
 //bck.SaveToFile('2.bmp');
 
 MemoCopyright.Text:= MemoCopyright.Text + GetSysInfo;
 
 BmpText:=TBitmap.Create;
 BmpText.PixelFormat:=pf24bit;
 BmpText.Canvas.Brush.Color:=Im.Picture.Bitmap.Canvas.Pixels[3,Im.Picture.Bitmap.Height-4];
 
 BmpText.Canvas.Font.Assign(MemoCopyright.Font);
 BmpText.Height:=BmpText.Canvas.TextHeight('F')*MemoCopyright.Lines.Count;
 
 W:=0;SetLength(DW,MemoCopyright.Lines.Count);
 for i:=0  to MemoCopyright.Lines.Count-1 do
 begin
  DW[i]:=BmpText.Canvas.TextWidth(MemoCopyright.Lines.Strings[i]);
  if DW[i]>W then W:=DW[i];
 end;
 
 
 if W<bck.Width then w:=bck.Width;
 BmpText.Width:=W;
 BmpText.Height:=BmpText.Height+bck.Height+10;
 
 r.Left:=0;r.Top:=0;r.Right:=BmpText.Width;r.Bottom:=BmpText.Height;
 BmpText.Canvas.Brush.Color:=Im.Picture.Bitmap.Canvas.Pixels[3,Im.Picture.Bitmap.Height-4];
 //BmpText.Canvas.Brush.Bitmap:=bck;
 BmpText.Canvas.FillRect(r);
 BmpText.Canvas.Draw(BmpText.Width div 2- bck.Width div 2,
                     BmpText.Height-bck.Height,bck);
 
 BmpText.Canvas.Brush.Style:=bsClear;
 
 for i:=0  to MemoCopyright.Lines.Count-1 do
  BmpText.Canvas.TextOut((W div 2)-(DW[i] div 2),i*BmpText.Canvas.TextHeight('F'),
   MemoCopyright.Lines.Strings[i]);
 
 bck.free;
 LinePos:=0
end;
 
 
procedure Tlgs.FormCreate(Sender: TObject);
var HRG,HRGSh: HRGN;
begin
 Im.Picture.Bitmap:=TBitmap.Create;
 Im.Picture.Bitmap.LoadFromResourceName(HInstance,'IDE');
 Im.Picture.Bitmap.PixelFormat:=pf24bit;
 Im.Picture.Bitmap.Assign(Im.Picture.Bitmap);
 
 CreateText;
 //Im.Picture.Bitmap.SaveToFile('1.bmp');
 
 HRG:=CreateRectRgn(0,0,Im.Picture.Bitmap.Width,Im.Picture.Bitmap.Height);
 HRGSh:=CreateRectRgn(1,1,Im.Picture.Bitmap.Width+1,Im.Picture.Bitmap.Height+1);
 
 Width:=Im.Picture.Bitmap.Width;
 Height:=Im.Picture.Bitmap.Height;
 Im.Width:=Im.Picture.Bitmap.Width;
 Im.Height:=Im.Picture.Bitmap.Height;
 Im.Left:=0;Im.Top:=0;
 
 CombineRgn(HRG,HRG,HRGSh,RGN_OR);
 Show;
 Application.ProcessMessages;
 
 LinePos:=160;
 
 Application.ShowMainForm:= true;
 close
end;
 
const
 TopScroll=190;
 HeightScroll=70;
 
procedure Tlgs.PaintScrollText;
var
  i,j,n,DLeft: Integer;
  PTxt,PBmp,PBase: PByteArray;
  Bmp: TBitmap;
  R: TRect;
  ArrB: array of byte;
  a1,a2:single;
begin
  fCancel:= False;
  nLines:=4;
 
  Bmp :=Im.Picture.Bitmap;
  SetLength(ArrB,3);
  i:=Im.Picture.Bitmap.Canvas.Pixels[3,Bmp.Height-4];
  ArrB[2]:=GetRValue(i);ArrB[1]:=GetRValue(i);ArrB[0]:=GetBValue(i);
  DLeft:=Bmp.Width div 2-BmpText.Width div 2;
 
  for j:=0  to HeightScroll-1 do begin
    PTxt:=BmpText.ScanLine[(LinePos+j) mod BmpText.Height];
    PBmp:=Bmp.ScanLine[j+TopScroll];
    for i:=0  to BmpText.Width-1 do begin
     a2:=1;
 
     if j=0 then a2:=0.1;  if j=HeightScroll-9 then a2:=0.9;
     if j=1 then a2:=0.2;  if j=HeightScroll-8 then a2:=0.8;
     if j=2 then a2:=0.3;  if j=HeightScroll-7 then a2:=0.7;
     if j=3 then a2:=0.4;  if j=HeightScroll-6 then a2:=0.6;
     if j=4 then a2:=0.5;  if j=HeightScroll-5 then a2:=0.5;
     if j=5 then a2:=0.6;  if j=HeightScroll-4 then a2:=0.4;
     if j=6 then a2:=0.7;  if j=HeightScroll-3 then a2:=0.3;
     if j=7 then a2:=0.8;  if j=HeightScroll-2 then a2:=0.2;
     if j=8 then a2:=0.9;  if j=HeightScroll-1 then a2:=0.1;
 
     a1:=1-a2;
     PBmp[(i+DLeft)*3+0]:=trunc(ArrB[0]*a1+PTxt[i*3+0]*a2);
     PBmp[(i+DLeft)*3+1]:=trunc(ArrB[1]*a1+PTxt[i*3+1]*a2);
     PBmp[(i+DLeft)*3+2]:=trunc(ArrB[2]*a1+PTxt[i*3+2]*a2);
    end;
  end;
  inc(LinePos);
  InvalidateRect(handle,nil,false)
end;
 
 
procedure Tlgs.Timer1Timer(Sender: TObject);
begin
 PaintScrollText
end;
 
procedure Tlgs.ImMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Timer1.Enabled:= not Timer1.Enabled;
 
 if Button=mbRight then begin
  Timer1.Enabled:=false;
  Close
 end
end;
 
procedure Tlgs.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var NewLine: Integer;
begin
 NewLine:=LinePos-Sign(WheelDelta)*5;
 if NewLine<LinePos then NewLine:=NewLine-1;
 if NewLine>0 then  LinePos:=NewLine;
 
 PaintScrollText
end;
 
procedure Tlgs.FormShow(Sender: TObject);
begin
 LinePos:=0;
 PaintScrollText
end;


p.s.: а вообще, скачайте себе Delphi-World справочник ...уверен, многие ваши текущие и будущие вопросы отпадут на время.
Вложения
Тип файла: zip about.zip (199.5 Кб, 49 просмотров)
2
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 4
27.04.2012, 22:15  [ТС]
спасибочки вам огромнейшее))
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
28.04.2012, 05:02
raxp,

Интересный код Вы тут привели.Из любопытства попробовал - но застрял - ругается на LinePos
Delphi
1
2
3
4
5
6
7
8
9
10
var
  Form1: TForm1;
  First:Boolean=true;
  BmpText:TBitmap;
 
implementation
 
{$R *.dfm}
 
uses xmldom;  //   подключил обращение к юниту.

даже в каталог проекта перенес xmldom.pas

[Error] Unit1.pas(91): Undeclared identifier: 'LinePos'

Не признает и все!

а также на GetSysInfo (вероятно, это какой-то сторонний компонент)

Не могли бы пояснить что к чему?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
28.04.2012, 09:36
...getsysinfo() вас не касается, используйте любой текст.

[Error] Unit1.pas(91): Undeclared identifier: 'LinePos'
...
uses xmldom; // подключил обращение к юниту.
из каких соображений? Вы разве не видите по коду, что это переменная и как она используется? Немножко думаем и делаем:
Delphi
1
var LinePos: integer;
1
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
28.04.2012, 10:03
спасибо, а то я замучился разбираться почему LinePos (так как сразу нашел unit тот)
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
28.04.2012, 10:16
...вообще, компилятор вам намекает, что не определена переменная в вашем юните, а не юнит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2012, 10:16
Помогаю со студенческими работами здесь

Компонент TJPEGImage не сохраняет изображение
Здравствуйте. Есть функция(наложение изображения): void GenerateTransparenceImage(String Key, TImage *Infile, TImage *Outfile,...

Компонент, загружающий изображение в элемент инфоблока
Мне нужно создать компонент, загружающий изображение в элемент инфоблока и показывающий её из него же. Создал компонент, загружающий...

Как изображение с компонента image1 вставить в компонент image2?
Допустим есть компоненты image1 и image2. Выполняю фильтрацию фото компонента Image1. Как изображение с компонента image1 вставить в...

Отобразить одновременно текст и картинку
Здравствуйте. Хочу создать создать приложение-обучение математики в формате лекций. Исходя из этого, мне нужно каким-то образом объединить...

BMP изображение из памяти в компонент Image, не пойму почему не работает
В bufrd уже есть изображение, проверял записывая в файл. Graphics::TBitmap* gBitmap = new Graphics::TBitmap; ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru