С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 23.01.2012
Сообщений: 239

Не работает Image2

08.11.2024, 20:38. Показов 1948. Ответов 25

Студворк — интернет-сервис помощи студентам
Здраствуте. Проверил матрицу turnfull, все данные в ячейках верны, в assemler орабатывает без ощибок.В конце программы, матрица turnfull , как только переходит в Image2.Picture.Bitmap.Canvas.Pixels[ix,iy] или ListBox1.Items.Add(IntToStr(ini ) компелятор показывает ошибку. access violation at 0x00000000; read of address 0x00000000. Заранее спасибо.

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
unit turnsquar4;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Jpeg,
  Dialogs,StdCtrls, ExtDlgs, ExtCtrls;
 
type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    OpenPictureDialog1: TOpenPictureDialog;
    Image2: TImage;
    procedure Button1OnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  f: TFileStream;
  Form1: TForm1;
  
   turncolour: array[0..335,0..445] of integer;
 
implementation
 
{$R *.dfm}
 procedure LoadPicture(FileName: string; Bitmap: TBitmap);
var
  pic: TPicture;
begin
  pic := TPicture.Create;
  try
    pic.LoadFromFile(FileName);
    Bitmap.Width  := pic.Graphic.Width ;
    Bitmap.Height := pic.Graphic.Height;
    Bitmap.Canvas.Draw(0, 0, pic.Graphic);
  finally
    pic.Free;
  end;
end;
 
 
 
procedure TForm1.Button1OnClick(Sender: TObject);
 
  
    var
  Total: Longword;
  OperBegin, OperEnd: TTimeStamp;
 
begin
 OperBegin:=DateTimeToTimeStamp(Now);
 
 
    Image2.Picture.Bitmap.Canvas.Pen.Color := clBlack;
    Image2.Picture.Bitmap.Canvas.Pen.Width :=1;
    Image2.Picture.Bitmap.Canvas.Brush.Style := bsClear;
 
 
  
  if OpenPictureDialog1.Execute then
  begin
 
      Image2.AutoSize := true;
      LoadPicture(OpenPictureDialog1.FileName, Image2.Picture.Bitmap);
 
 asm
                       push eax 
                        xor eax,eax  
                        push edx    
                        xor edx,edx
                        push ecx
                        xor ecx,ecx
                      mov cx,sx
                      imul ecx,446
                      add cx,sy 
                        mov dx,syL2
                        shl edx,16// 
                        mov dx,sxL2 
                      lea eax,turnfull
                      mov [eax+4*ecx],edx 
                      inc icountTurnFull//
                      inc  icountLine2Stop
                        pop ecx 
                        pop edx//
                        pop eax// 
                           push eax  // 
                           xor eax,eax
                         mov icL2Turn,eax
                            pop eax
                      jmp ii4//  
   
end;
 
  ini:=0; 
begin
   for ix:=0 to 335 do 
begin
   for iy:=0 to 445 do 
begin
 
 if  ( turnfull [ix,iy]>0)then 
begin
  ini:=ini+1;
  iy2:= turnfull[ix,iy] shr 16; 
  ix2:= turnfull[ix,iy] and $0000ffff;
  Image2.Picture.Bitmap.Canvas.Pixels[ix,iy] := clRed;
 { ListBox1.Items.Add(IntToStr(ini ) + ' TurnFull Íîìåð ÿ÷åéêè.');
  ListBox1.Items.Add(IntToStr(ix ) + ' ixTurnfull');
  ListBox1.Items.Add(IntToStr(iy ) + ' iyTurnfull');
  ListBox1.Items.Add(IntToStr(ix2 ) + '     ixline2');//
  ListBox1.Items.Add(IntToStr(iy2 ) + '     iyline2');}
end;
 end;
  end;
   end;
 
OperEnd:=DateTimeToTimeStamp(Now);
  Total:=OperEnd.Time-OperBegin.Time;
  ListBox1.Items.Add(IntToStr(Total)+' MSec');
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2024, 20:38
Ответы с готовыми решениями:

на кнопку кликаешь, Image1.Visible:=False; Image2.Visible:=True; Eще раз ликаешь, Image1.Visible:=True; Image2.Visible:=False.
на кнопку кликаешь, Image1.Visible:=False; Image2.Visible:=True; Eще раз ликаешь, Image1.Visible:=True; Image2.Visible:=False. ...

Image1 и Image2
Здравствуйте. У меня возник такой вопрос: на форме есть 2 компонента Image. Нужно чтоб если картинка с папки "1" скажем...

Запрет наведения Image1 на Image2
На форме обе картинки имеют свойство перемещаться и нужно сделать так, чтобы когда первая картинка при перемещении сталкивалась со второй,...

25
Злостный нарушитель
 Аватар для Verevkin
10251 / 5677 / 1262
Регистрация: 12.03.2015
Сообщений: 26,312
09.11.2024, 01:19
Цитата Сообщение от victor1963 Посмотреть сообщение
компелятор
А задача-то какая? Зачем вся эта срань c ассемблером?
1
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,358
Записей в блоге: 3
09.11.2024, 07:01
что такое turnfull? Где это объявлено? Как инициализировано? Вообще такая ошибка памяти сигнализирует об обращении к еще не созданному или уже удаленному объекту. Вот в Вашем случае я пока что вижу как раз эту ситуацию: под объект turnfull не выделена память, а Вы к нему обращаетесь.

Добавлено через 15 секунд
Цитата Сообщение от Verevkin Посмотреть сообщение
Зачем вся эта срань c ассемблером?
присоединяюсь к вопросу
1
Модератор
4134 / 2348 / 807
Регистрация: 15.11.2015
Сообщений: 9,357
09.11.2024, 10:08
victor1963, весь проект загрузи, чтобы люди его могли просто скомпилировать и запустить.
1
2 / 2 / 0
Регистрация: 23.01.2012
Сообщений: 239
09.11.2024, 14:05  [ТС]
Весь проект не помещаеться в ответе.
0
Злостный нарушитель
 Аватар для Verevkin
10251 / 5677 / 1262
Регистрация: 12.03.2015
Сообщений: 26,312
09.11.2024, 14:12
Цитата Сообщение от victor1963 Посмотреть сообщение
Весь проект не помещаеться в ответе.
Задание покаж, хрен c ним c проектом.
0
2 / 2 / 0
Регистрация: 23.01.2012
Сообщений: 239
09.11.2024, 14:46  [ТС]
У меня вся прог. не помещаеться, должен сократить в 6 раз и это не задание, для себя делаю.
0
Злостный нарушитель
 Аватар для Verevkin
10251 / 5677 / 1262
Регистрация: 12.03.2015
Сообщений: 26,312
09.11.2024, 14:52
Цитата Сообщение от victor1963 Посмотреть сообщение
У меня вся прог. не помещаеться, должен сократить в 6 раз
Есть такие проги, называются "архиваторы". Слыхал, не?

Название: 003113.png
Просмотров: 154

Размер: 8.7 Кб
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,358
Записей в блоге: 3
09.11.2024, 17:37
Цитата Сообщение от victor1963 Посмотреть сообщение
У меня вся прог. не помещаеться
А весь мусор и не нужен. Нужны файлы *.dpr, *.dproj, *.pas, *.dfm - вот их упакуйте в архив и вложите в тему
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
10.11.2024, 03:43
D1973, *.dproj тоже не нужен.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,358
Записей в блоге: 3
10.11.2024, 06:46
Лучший ответ Сообщение было отмечено Cyborg Drone как решение

Решение

Цитата Сообщение от northener Посмотреть сообщение
*.dproj тоже не нужен.
По факту - да. Просто привык его тоже таскать.
0
2 / 2 / 0
Регистрация: 23.01.2012
Сообщений: 239
11.11.2024, 19:16  [ТС]
Письмо2.zip
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
12.11.2024, 00:30
victor1963, это письмо Ваньки Жукова на деревню дедушке.
0
Модератор
10388 / 5676 / 3399
Регистрация: 17.08.2012
Сообщений: 17,323
12.11.2024, 02:15
victor1963, надо весь проект, то есть, то, что указано в сообщении #9, а не только текст Вашего модуля.
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
12.11.2024, 02:47
Цитата Сообщение от D1973 Посмотреть сообщение
По факту - да. Просто привык его тоже таскать.
Он зависит от версии Дельфи. Могут быть нестыковки если пытаться открыть проект через него.

Добавлено через 13 минут
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
victor1963, надо весь проект
Лучше не надо.
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
   Label aa0,aa1,aa2,aa3,aa4,aa5,aa6,aa7,aa8,aa9,aa10,
        bb0,bb1,bb2,bb3,bb4,bb5,bb6,bb7,bb8,bb9,
        bbb0,bbb1,bbb2,
        cc0,cc1,cc2,
        check0,check1,
        dd0,dd1,dd2,dd3,dd4,dd5,dd6,dd7,dd8,dd9,dd10,
        ee0,ee1,ee2,ee3,ee4,
        ff0,ff1,ff2,ff3,ff4,ff5,ff6,ff7,ff8,
        gg0,gg1,gg2,gg3,gg4,gg5,gg6,gg7,gg8,gg9,gg10,gg11,gg12,gg13,gg14,gg15,gg16,gg17,
        hh0,hh1,hh2,hh3,hh4,hh5,hh6,hh7,hh8,hh9,hh10,
        ii0,ii1,ii2,ii3,ii4,ii5,ii6,ii7,ii8,ii9,
        jj0,jj1,jj2,jj3,jj4,jj5,jj6,jj7,jj8,jj9,jj10,jj11,jj12,jj13,jj14,jj15,jj16,jj17,jj18,jj19,jj20,jj21,jj22,
        kk0,kk1,kk2,kk3,
        ll0,ll1,ll2,ll3,ll4,ll5,ll6,ll7,ll8,ll9,
        nn0,nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,
        oo0,oo1,oo2,oo3,oo4,oo5,oo6,oo7,oo8,oo9;
    var
  Total: Longword;
  OperBegin, OperEnd: TTimeStamp;
 iB,iCheckCount,iL2,icL1,icL2,icL1Turn,icL2Turn,iColour,iCountA,icountA1,icountColour,icountExpSquar,icountL1,icountL2,icountL1Turn,icountL2Turn,icountLine1,icountLine2,icountLine1Turn,icountLine2Stop,icountLine2Turn,iCountSurroundings,icountTurnFull,
 icountSquar,icountStep,icountTurnColour,iDegree,iDegreeTurn,iDegreeTurnLine1,iDiffTurn,ie,iHypotenuseSquar, ik,iKeep,il,iLongMx,ini,iMove,iR1,iR2,iShifting,
 ix,ix1,ix2,ixExpand,ixcpMx,iXCrossLinePoint,iXCrossLineTurnPoint,ixDiffSquar,iXDoublestep,iXDownNeighbour,iXDownNeighbourTurn,iXLeftNeighbour,iXLeftNeighbourTurn,iXline2,iXLine2TurnBase,ixMin,ixNext,iXpass,ixPl,iXPicture,iXPictureCenter,iXPictureStart,iXPictureTurn,iXPictureTurnStart,
 ixTurn,ixTurnFull,ixTurnSquar,iy,iy1,iy2,iyDiff,iYEarly,iyExpand,iycpMin,iYCrossLinePoint,iYCrossLineTurnPoint,iYLeftNeighbour,iYLeftNeighbourTurn,iYDoublestep,iYDownNeighbour,iYDownNeighbourTurn,iYLine2TurnBase,iYMax,iyMaxDiff,iyMin,iyNext,iYpass,iYPicture,iYPictureCenter,iYPictureStart,iYPictureTurn,iYPictureTurnStart,iYPictureTurnStop,iyPl,iyTurn,iyTurnFull,iyTurnMove,iyTurnSquar,i100:integer;
 
 re, re2,rCheck,rDiffTurn,rIncrease,rKeep,rl,rl2,rn,rR,rR2,rTurn,rx,rx1,rx2,ry,ry1,ry2,rxTurn,ryTurn,rxTurnMove,ryTurnMove,
  rxTurnSquar,ryTurnSquar :real;
 
  bBlue,bBlue1,bCheck,bGreen,bGreen1,bRed,bRed1:byte;
 
 sx,sxDiff,sxL1,sxL2,sxL1Turn,sxL2Turn,sy,syDiff,syL1,syL2,syL1Turn,syL2Turn:short;
Мозги сдохнут при таком количестве меток и переменных.

Добавлено через 1 минуту
Правильно сказал
Цитата Сообщение от Verevkin Посмотреть сообщение
Задание покаж, хрен c ним c проектом.
0
Злостный нарушитель
 Аватар для Verevkin
10251 / 5677 / 1262
Регистрация: 12.03.2015
Сообщений: 26,312
12.11.2024, 08:02
Цитата Сообщение от northener Посмотреть сообщение
Лучше не надо.
Как это развидеть?
0
453 / 177 / 31
Регистрация: 04.08.2018
Сообщений: 713
12.11.2024, 09:21
Цитата Сообщение от northener Посмотреть сообщение
Лучше не надо.
Вся эта шапка венчает процедуру procedure TForm1.Button1OnClick(Sender: TObject);. А дальше идёт три тысячи строк ассемблерного кода!
0
Злостный нарушитель
 Аватар для Verevkin
10251 / 5677 / 1262
Регистрация: 12.03.2015
Сообщений: 26,312
12.11.2024, 09:24
Цитата Сообщение от Rayvenor Посмотреть сообщение
А дальше идёт три тысячи строк ассемблерного кода!
0
12.11.2024, 11:50

Не по теме:

Ну всё я уже думал что без Verevkinа форум превратится в скучную рутину :)

0
12.11.2024, 12:01

Не по теме:

Цитата Сообщение от SeGun Посмотреть сообщение
Ну всё я уже думал что без Verevkinа форум превратится в скучную рутину :)
Это временно.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2024, 12:01
Помогаю со студенческими работами здесь

Canvas картинками из Image1 и Image2
Всем привет. Есть код, который на канве делает из текстового файла карту. Вот он: for(int i=0;i<10;i++) { for(int...

Копирование выделенной области из Image1 в Image2
Здравствуйте, имеются два компонента Image. На первом - картинка. Во второй Image необходимо вставить только часть рисунка, которую...

Привязка размеров image2 к картинке в image1
Такая проблема. Имею 2 image(image1, image2) image2 имеет включенное свойство transparent. два image наложены друг на друга в image1...

Можно ли обменять содержимое Image1 с Image2
Подскажите пожайлуста: можно ли обменять содержимое Image1 с Image2, изначально в них картинки загружены png. Смысл в этом, что бы при...

Создание динамического перехода от Image1 к Image2
Очень уж нужна помощь по делу, нашел как прорисовать градиент и другое но конкретно с этим никак не разберусь. Туплю, так как с графикой...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru