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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2019, 11:15   #21
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Там же не просто произвольная картинка. А конкретные области куда текст помещается и нет ни какого изображения, которое нужно восстанавливать. Вот они и чистятся при удалении буквы, например методом Rectangle . В принципе если нужно восстановить изображение на этом участке можно и методом CopyRect . Картинку посмотрел в теме по ссылке из #16, rar-ом не пользуюсь и нет его у меня )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.06.2019, 11:15   #22
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
А Как в этой программе буквы стираются?
а кто же его знает. скорее всего в тех прямоугольничках, куда буквы выводятся выводится чистый белый прямоугольник через Canvas.FillRect();
кстати, буквы тоже выводятся не подряд, а каждая буква в свою отдельную позицию, в свой прямоугольник.

p.s. нарисовал внутри прямоугольников залитые области. Сразу видно, что выводится буква на непрозрачном белом фоне и затирается прямоугольником (или пробелом)

Последний раз редактировалось Serge_Bliznykov; 21.06.2019 в 11:29.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.06.2019, 11:42   #23
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
...

p.s. нарисовал внутри прямоугольников залитые области. Сразу видно, что выводится буква на непрозрачном белом фоне и затирается прямоугольником (или пробелом)
Вот так?:
Код:
     with Image1.Canvas do
      begin
          Brush.Style := bsClear;
          Font.Size:=19;
          Font.Name:='Lucida Console';
          Font.Color:=clBlack;
          FillRect(rect(520,500,10,10));
          Font.Style:= Image1.Canvas.Font.Style + [fsBold];
          s:=Edit1.Text;

          for i:=1 to length(s) do
             TextOut(273,378,s);
      end;
Женя32 вне форума Ответить с цитированием
Старый 21.06.2019, 12:00   #24
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Вот так?:
нет

нужно каждую букву выводить отдельно

вот так
Цитата:
Сообщение от Pavia Посмотреть сообщение
Код:
S:=Edit1.Text;
    PenPos:=Point(10,10);
    for i:=1 to Length(S) do
      TextOut(PenPos.X+Ofs, PenPos.Y, S[i]);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.06.2019, 12:05   #25
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Допустим в Edit.Text="двадцатичетырехбуквенное " слово. И вам нужно удалить или вставит четвёртую букву. Тогда вам придётся стереть те буквы, что с права и перерисовать их заново. И никак иначе.

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Вопрос! Как она ищет позицию для вставки букв?
Перебором. Но Вам до этой программы как пешком до Урала.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 21.06.2019 в 12:08.
Pavia вне форума Ответить с цитированием
Старый 21.06.2019, 12:27   #26
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Почему бы так не сделать, и проще и по силам:
Код:
type
  TForm1 = class(TForm)
    Image1: TImage;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    StaticText3: TStaticText;
    StaticText4: TStaticText;
    StaticText5: TStaticText;
    StaticText6: TStaticText;
    StaticText7: TStaticText;
    StaticText8: TStaticText;
    StaticText9: TStaticText;
    StaticText10: TStaticText;
    Label1: TLabel;
    Edit1: TEdit;
    procedure Edit1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var lSurname: array[1..10] of TStaticText;

procedure TForm1.FormCreate(Sender: TObject);
begin
  lSurname[1]:=StaticText1;
  lSurname[2]:=StaticText2;
  lSurname[3]:=StaticText3;
  lSurname[4]:=StaticText4;
  lSurname[5]:=StaticText5;
  lSurname[6]:=StaticText6;
  lSurname[7]:=StaticText7;
  lSurname[8]:=StaticText8;
  lSurname[9]:=StaticText9;
  lSurname[10]:=StaticText10;
end;

procedure TForm1.Edit1Change(Sender: TObject);
var i: Integer;
begin
  for i:=1 to 10 do
    if i<=Length(Edit1.Text)
      then lSurname[i].Caption:=Edit1.Text[i]
      else lSurname[i].Caption:='';
end;
Подготовку массива тоже можно в цикле )
Изображения
Тип файла: gif 12345.gif (27.2 Кб, 41 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.06.2019, 20:39   #27
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

Да, я же как-то делал.... но не помню как... Вот нашел ехе файл от старого проекта... Посмотрите пожалуйста, может скажите как это делается....


в файле Касперский определил троян.
Удалил вложение Form.exe от греха подальше!
Form\Form.exe обнаружено: троянская программа 'HEUR:Trojan.Win32.Agent.gen' (модификация)
Модератор

Последний раз редактировалось Serge_Bliznykov; 22.06.2019 в 08:45.
Женя32 вне форума Ответить с цитированием
Старый 22.06.2019, 02:16   #28
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Да, я же как-то делал.... но не помню как...
До боли знакомое утверждение на наших форумах.
Если для вас создание программ это не одноразовая работа, то хоть как-то запоминайте где вы какой код нарыли. Кто же вам по ЕХЕ-шнику сможет что-то сказать.
northener вне форума Ответить с цитированием
Старый 23.06.2019, 19:10   #29
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

Приветствую!
В общем, решения этой задаче, почти, нашел! Буквы закрашиваются, кроме 1-ой.
Я не могу понять, как это исправить.
Пожалуйста, помогите решить эту задачу.
Вложения
Тип файла: rar Test.rar (2.57 Мб, 19 просмотров)
Женя32 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
public void someMethod() { this.run = false; Canvas canvas = null; doDraw(canvas); Tatana Java Мобильная разработка (Android) 10 15.12.2016 12:05
Delphi DX10 вывод текста на Canvas vohuanrok Общие вопросы Delphi 10 13.05.2016 10:44
Форматированный вывод текста в Edit mak15 Общие вопросы C/C++ 4 14.12.2015 17:29
TreeView, Canvas, Вывод текста Kotaries Общие вопросы Delphi 1 18.07.2014 18:16
Вывод в edit текста с переменной NecroSlider Общие вопросы C/C++ 4 29.07.2008 14:42