| 
| 
 | Вопрос # 2 625/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты! Рисую на канве Image вот таким образом:
 for I := 0 to image1.Height do
for j := 0 to image1.Width do
  image1.Canvas.Pixels[j,i]:= ClRed;затем после отрисовки изменяю размер Image: 
 image1.Height:=image1.Height+15;после увеличения размеров Image  рисую заново, но отрисовка происходит только на той часте на которая была до увеличения размера Image а не на всей поверхности.... Пробовал предворительно очищать поверхность перед второй отрисовкой, но это тоже не помогло...
 Может кто знает, как сделать, что бы отрисовка шла по всей поверхности?
 
|  |   Вопрос задал: Ученый (статус: 8-ой класс)Вопрос отправлен: 13 апреля 2009, 13:55
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Советую не рисовать прямо на Image, а делать это на каком-нить TBitmap, затем копировать его на Image.Z написал тебе примерчик, прицепляю к ответу.
 К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 
 
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 13 апреля 2009, 16:04
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 7; последнее сообщение — 20 декабря 2010, 19:41; участников в обсуждении: 4. 
|   | Вадим К (статус: Академик), 13 апреля 2009, 14:40 [#1]:А что, если рисовать другим цветом второй раз, то получается уголок? В целом, такой способ прорисовки плох, ну как минимум - он медленный.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Ученый (статус: 8-ой класс), 13 апреля 2009, 14:46 [#2]:Дело в том, что когда я увеличиваю размер имеджа, образуется как новая не закрашенная область...мне нодо ее закрасить...но что то не хочет он ее красить....хотя свойство width точно увеличивается.....но рисует повторно только в той области, которая была первоначально до увеличения......пробовал и разными цветами (хотя по условию задачи нада одним и темже перерисовывать) не помогло....такое ощущение ,что увелививается размеры Image, а размеры его канвы не изменяются.... |  
|   | Вадим К (статус: Академик), 13 апреля 2009, 14:54 [#3]:вся прорисовка с изменением в одной процедуре? Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Ученый (статус: 8-ой класс), 13 апреля 2009, 14:58 [#4]:procedure TForm1.Button1Click(Sender: TObject); var
 i,j:integer;
 begin
 for I := 0 to image1.Height do
 for j := 0 to image1.Width do
 image1.Canvas.Pixels[j,i]:= ClRed;
 end;
 
 procedure TForm1.Button2Click(Sender: TObject);
 begin
 image1.Height:=image1.Height+15;
 end;
 
 После увеличения размера нажимаю повторно button1
 |  
|   | Эхо Унитазного Бачка (статус: 1-ый класс), 13 апреля 2009, 15:05 [#5]:Ну все верно. Та быть и должно. допиши на Button1
 var
 i,j:integer;
 b:TBitmap;
 begin
 b:=TBitmap.Create;
 b.Width:=image1.Height;
 b.Height:=image1.Width;
 for I := 0 to image1.Height do
 for j := 0 to image1.Width do
 begin
 b.Canvas.Pixels[j,i]:= ClRed;
 end;
 image1.Picture.Bitmap:=b;
 b.Free;
 |  
|   | Ученый (статус: 8-ой класс), 13 апреля 2009, 15:12 [#6]:Все равно не помогает   |  
|   | Beat (статус: Посетитель), 20 декабря 2010, 19:41 [#7]:Необходимо также увеличить Image1->Picture->Bitmap->Width Image1->Picture->Bitmap->Height
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |