Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.04.2008, 19:36   #1
andreyjn
Пользователь
 
Регистрация: 09.04.2008
Сообщений: 30
Восклицание Сделать скрин формы

Вообщем мне нужно сделать такую ерунду - есть форма на которой есть десять строк текста и его нужно сохранить в виде картинки ! Можете подсказать как или написать код проги а то я уже незнаю что и делать - была мысля поместить текст на Image но тоже провалилась !!!!
From Stilet: Тему называй так чтоб понятно было. В следующий раз удалюю

Последний раз редактировалось Stilet; 10.04.2008 в 09:54.
andreyjn вне форума
Старый 09.04.2008, 19:41   #2
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

НАдо работать с канвой формы.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума
Старый 09.04.2008, 19:49   #3
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Скорее всего эту переместят в помощь студентам или даже закроют из-за не коректного имени.
Вот первое что пришло на ум:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  b:TBitmap;
begin
  if SavePictureDialog1.Execute then
  begin
    b:=TBitmap.Create;
    b.Width:=Width;
    b.Height:=Height;
    b.Canvas.CopyRect(Form1.ClientRect, Form1.Canvas, Form1.ClientRect);
    b.SaveToFile(SavePictureDialog1.FileName);
    b.Free;
  end;
end;

end.
Помог? Ну так нажми на весы!

Последний раз редактировалось SNUPY; 09.04.2008 в 20:01.
SNUPY вне форума
Старый 09.04.2008, 19:58   #4
andreyjn
Пользователь
 
Регистрация: 09.04.2008
Сообщений: 30
По умолчанию

Я вот нарыл такой кодик - по идее должно помещать прозрачный текст на Image а что нужно изменить чтоб он был не прозрачный !!!!

procedure TForm1.Button1Click(Sender: TObject);
var
OldBkMode : integer;
begin
Image1.Picture.Bitmap.Canvas.Font.C olor := clBlue;
OldBkMode := SetBkMode(Image1.Picture.Bitmap.Can vas.Handle,TRANSPARENT);
Image1.Picture.Bitmap.Canvas.TextOu t(300, 300, 'Hello');
SetBkMode(Image1.Picture.Bitmap.Can vas.Handle,OldBkMode);
end;
andreyjn вне форума
Старый 09.04.2008, 20:31   #5
andreyjn
Пользователь
 
Регистрация: 09.04.2008
Сообщений: 30
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  b:TBitmap;
begin
  if SavePictureDialog1.Execute then
  begin
    b:=TBitmap.Create;
    b.Width:=Width;
    b.Height:=Height;
    b.Canvas.CopyRect(Form1.ClientRect, Form1.Canvas, Form1.ClientRect);
    b.SaveToFile(SavePictureDialog1.FileName);
    b.Free;
  end;
end;

end.
[/QUOTE]

Оно копирует и сохраняет не только форму но и часть рабочего стола сохраняет в картинку
andreyjn вне форума
Старый 09.04.2008, 20:48   #6
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Ну это из-за рамки... А вообще этот метод имеет один существенный минус он берет не форму а то что находиться над ней...
Помог? Ну так нажми на весы!
SNUPY вне форума
Старый 09.04.2008, 21:09   #7
andreyjn
Пользователь
 
Регистрация: 09.04.2008
Сообщений: 30
По умолчанию

А может кто знает как разместить текста на сам Images ???
andreyjn вне форума
Старый 09.04.2008, 21:22   #8
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Ну на канве Имеджа нарисуй
Помог? Ну так нажми на весы!
SNUPY вне форума
Старый 09.04.2008, 21:22   #9
andreyjn
Пользователь
 
Регистрация: 09.04.2008
Сообщений: 30
По умолчанию

Вот это код по идее должен вставлять прозрачный текст на Convas Tbitmap но у меня вроде не работает можете у себя глянуть и если работает то что нужно поменять чтоб текст был не прозрачный ???

Код:
procedure TForm1.Button1Click(Sender: TObject);varOldBkMode : integer;beginImage1.Picture.Bitmap.Canvas.Font.Color := clBlue;OldBkMode := SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,TRANSPARENT);Image1.Picture.Bitmap.Canvas.TextOut(10, 10, 'Hello');SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,OldBkMode);end;
andreyjn вне форума
Старый 09.04.2008, 21:24   #10
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
По умолчанию

код:
var
can: tcanvas;
begin
image1.canvas.copyrect(rect(0, 0, image1.width, image1.height), form1.canvas, rect(0, 0, form1.width, form1.height));
end
не проверял, но должно работать..
Карп преодолевший водопад становится драконом.
N!ckeL вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы динамически созданные объекты оставались после закрытия формы? AHAPXUCT2007 Общие вопросы Delphi 7 28.09.2007 08:46
Принт скрин MAcK Win Api 1 31.08.2007 20:48
Лого скрин Elm0 Свободное общение 10 23.06.2007 13:08
Скажите как сделать так, чтобы размер формы оставался фиксированным? Faramund Помощь студентам 2 20.03.2007 20:14
как сделать так чтобы при открытии второй формы олько она была активной doncova1 Общие вопросы Delphi 2 03.02.2007 19:34