Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Microo10
45 / 20 / 4
Регистрация: 18.08.2011
Сообщений: 395
1

Подскажите почему не читает процедуру?

28.01.2012, 12:48. Просмотров 836. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста!
У меня есть функция,в коде ошибок нет...а вот когда объявляю ее мне пишут ошибку...
Ошибка:
Код
[DCC Error] Unit1.pas(16): E2065 Unsatisfied forward or external declaration: 'TForm1.Morphing'
Код:
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
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls,PngImage;
 
type
  TForm1 = class(TForm)
    play_puse: TImage;
    procedure FormCreate(Sender: TObject);
    procedure play_puseMouseEnter(Sender: TObject);
    procedure play_puseClick(Sender: TObject);
    procedure play_puseMouseLeave(Sender: TObject);
    procedure Morphing(Png1, Png2: TPngImage; Progress: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Png1,Png2,Png3: TPNGimage; //Тут храним картинки скина
  play_puse_state:integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 Png1 := TPngImage.Create;
  Png2 := TPngImage.Create;
  Png3 := TPngImage.Create;
  Png1.LoadFromFile('Puse&PlayN.png');
  Png2.LoadFromFile('Puse&PlayA.png');
  Png3.LoadFromFile('Puse&PlayAN.png');
  play_puse.Picture.Assign(png1);
  play_puse_state := 0;
end;
 
procedure TForm1.play_puseClick(Sender: TObject);
begin
if play_puse_state =0 then
  play_puse_state := 1
  else
 if play_puse_state =1 then
 play_puse_state := 0
end;
 
procedure TForm1.play_puseMouseEnter(Sender: TObject);
begin
  Morphing(Png1, Png2, 50);
end;
 
procedure TForm1.play_puseMouseLeave(Sender: TObject);
begin
 if play_puse_state = 1 then
  Morphing(Png2, Png3, 50);
  else
  if play_puse_state = 0  then
  Morphing(Png2, Png1, 50);
  end;
 
 procedure Morphing(Png1, Png2: TPngImage; Progress: Integer);
 
var
 
  dstPixel, srcPixel: PRGBQuad;
 
  Weight: Integer;
 
  I: Integer;
 
begin
 
  if (Assigned(Png1) and Assigned(Png2)) then
 
  begin
 
 
    srcPixel := Png2.ScanLine[Png2.Height - 1];
 
    dstPixel := Png1.ScanLine[Png1.Height - 1];
 
    Progress := 100 - Progress;
 
    Weight := MulDiv(256, Progress, 100);
 
    for I := (Png1.Width * Png1.Height) - 1 downto 0 do
 
    begin
 
      with dstPixel^ do
 
      begin
 
        Inc(rgbRed, (Weight * (srcPixel^.rgbRed - rgbRed)) shr 8);
 
        Inc(rgbGreen, (Weight * (srcPixel^.rgbGreen - rgbGreen)) shr 8);
 
        Inc(rgbBlue, (Weight * (srcPixel^.rgbBlue - rgbBlue)) shr 8);
 
      end;
 
      Inc(srcPixel);
 
      Inc(dstPixel);
 
    end;
 
  end;
 
end;
 
end.
Может быть я не так её объявляю? Помогите пожалуйста новичку!!!
P.S процедуру писал не сам,только переделал ее под себя(добавил возможность использовать png).
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2012, 12:48
Ответы с готовыми решениями:

Не могу понять почему Яндекс не читает мой Sitemap? а google читает.
Захожу в яндекс мастер выбираю sitemap а он мне пишет ошибка в файле sitemap невалидный sitemap Но...

почему reader не читает?
почему этот код не работает, помогите пожалуйста: using System.Collections.Generic; using System;...

Почему не читает JOptionPane?
Первую строчку не читает, выдает ошибку, а вторую может прочитать

Почему не читает из файла?
почему не читает из файла? void Container::fromFile(const std::string &fileName) { ...

Почему не читает файл?
Пример из книги, немного обрезанный и переделанный мною, т.к. старый предназначался для запуска...

6
Zombi_sib
370 / 323 / 89
Регистрация: 26.05.2010
Сообщений: 748
Завершенные тесты: 1
28.01.2012, 12:53 2
удали что показано и должно быть все нормально
Delphi
1
2
3
4
5
6
7
8
9
type
  TForm1 = class(TForm)
    play_puse: TImage;
    procedure FormCreate(Sender: TObject);
    procedure play_puseMouseEnter(Sender: TObject);
    procedure play_puseClick(Sender: TObject);
    procedure play_puseMouseLeave(Sender: TObject);
    procedure Morphing(Png1, Png2: TPngImage; Progress: Integer);// удали это 
  private
1
Microo10
45 / 20 / 4
Регистрация: 18.08.2011
Сообщений: 395
28.01.2012, 13:03  [ТС] 3
Цитата Сообщение от Zombi_sib Посмотреть сообщение
удали что показано и должно быть все нормально
Delphi
1
2
3
4
5
6
7
8
9
type
  TForm1 = class(TForm)
    play_puse: TImage;
    procedure FormCreate(Sender: TObject);
    procedure play_puseMouseEnter(Sender: TObject);
    procedure play_puseClick(Sender: TObject);
    procedure play_puseMouseLeave(Sender: TObject);
    procedure Morphing(Png1, Png2: TPngImage; Progress: Integer);// удали это 
  private
Пробовал,когда удаляю пишет [DCC Error] Unit1.pas(55): E2003 Undeclared identifier: 'Morphing'
0
Zombi_sib
370 / 323 / 89
Регистрация: 26.05.2010
Сообщений: 748
Завершенные тесты: 1
28.01.2012, 14:01 4
сделай как исправил в коде полностью и объявление процедуры и далее по тексту саму процедуру
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
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls,PngImage;
 
type
  TForm1 = class(TForm)
    play_puse: TImage;
    procedure FormCreate(Sender: TObject);
    procedure play_puseMouseEnter(Sender: TObject);
    procedure play_puseClick(Sender: TObject);
    procedure play_puseMouseLeave(Sender: TObject);
    
  private
    { Private declarations }
  public
    procedure Morphing(Png1, Png2: TPngImage; Progress: Integer);
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Png1,Png2,Png3: TPNGimage; //Тут храним картинки скина
  play_puse_state:integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 Png1 := TPngImage.Create;
  Png2 := TPngImage.Create;
  Png3 := TPngImage.Create;
  Png1.LoadFromFile('Puse&PlayN.png');
  Png2.LoadFromFile('Puse&PlayA.png');
  Png3.LoadFromFile('Puse&PlayAN.png');
  play_puse.Picture.Assign(png1);
  play_puse_state := 0;
end;
 
procedure TForm1.play_puseClick(Sender: TObject);
begin
if play_puse_state =0 then
  play_puse_state := 1
  else
 if play_puse_state =1 then
 play_puse_state := 0
end;
 
procedure TForm1.play_puseMouseEnter(Sender: TObject);
begin
  Morphing(Png1, Png2, 50);
end;
 
procedure TForm1.play_puseMouseLeave(Sender: TObject);
begin
 if play_puse_state = 1 then
  Morphing(Png2, Png3, 50);
  else
  if play_puse_state = 0  then
  Morphing(Png2, Png1, 50);
  end;
 
 procedure TForm1.Morphing(Png1, Png2: TPngImage; Progress: Integer);
 
var
 
  dstPixel, srcPixel: PRGBQuad;
 
  Weight: Integer;
 
  I: Integer;
 
begin
 
  if (Assigned(Png1) and Assigned(Png2)) then
 
  begin
 
 
    srcPixel := Png2.ScanLine[Png2.Height - 1];
 
    dstPixel := Png1.ScanLine[Png1.Height - 1];
 
    Progress := 100 - Progress;
 
    Weight := MulDiv(256, Progress, 100);
 
    for I := (Png1.Width * Png1.Height) - 1 downto 0 do
 
    begin
 
      with dstPixel^ do
 
      begin
 
        Inc(rgbRed, (Weight * (srcPixel^.rgbRed - rgbRed)) shr 8);
 
        Inc(rgbGreen, (Weight * (srcPixel^.rgbGreen - rgbGreen)) shr 8);
 
        Inc(rgbBlue, (Weight * (srcPixel^.rgbBlue - rgbBlue)) shr 8);
 
      end;
 
      Inc(srcPixel);
 
      Inc(dstPixel);
 
    end;
 
  end;
 
end;
 
end.
1
Microo10
45 / 20 / 4
Регистрация: 18.08.2011
Сообщений: 395
28.01.2012, 14:24  [ТС] 5
Цитата Сообщение от Zombi_sib Посмотреть сообщение
сделай как исправил в коде полностью и объявление процедуры и далее по тексту саму процедуру
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
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls,PngImage;
 
type
  TForm1 = class(TForm)
    play_puse: TImage;
    procedure FormCreate(Sender: TObject);
    procedure play_puseMouseEnter(Sender: TObject);
    procedure play_puseClick(Sender: TObject);
    procedure play_puseMouseLeave(Sender: TObject);
    
  private
    { Private declarations }
  public
    procedure Morphing(Png1, Png2: TPngImage; Progress: Integer);
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Png1,Png2,Png3: TPNGimage; //Тут храним картинки скина
  play_puse_state:integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 Png1 := TPngImage.Create;
  Png2 := TPngImage.Create;
  Png3 := TPngImage.Create;
  Png1.LoadFromFile('Puse&PlayN.png');
  Png2.LoadFromFile('Puse&PlayA.png');
  Png3.LoadFromFile('Puse&PlayAN.png');
  play_puse.Picture.Assign(png1);
  play_puse_state := 0;
end;
 
procedure TForm1.play_puseClick(Sender: TObject);
begin
if play_puse_state =0 then
  play_puse_state := 1
  else
 if play_puse_state =1 then
 play_puse_state := 0
end;
 
procedure TForm1.play_puseMouseEnter(Sender: TObject);
begin
  Morphing(Png1, Png2, 50);
end;
 
procedure TForm1.play_puseMouseLeave(Sender: TObject);
begin
 if play_puse_state = 1 then
  Morphing(Png2, Png3, 50);
  else
  if play_puse_state = 0  then
  Morphing(Png2, Png1, 50);
  end;
 
 procedure TForm1.Morphing(Png1, Png2: TPngImage; Progress: Integer);
 
var
 
  dstPixel, srcPixel: PRGBQuad;
 
  Weight: Integer;
 
  I: Integer;
 
begin
 
  if (Assigned(Png1) and Assigned(Png2)) then
 
  begin
 
 
    srcPixel := Png2.ScanLine[Png2.Height - 1];
 
    dstPixel := Png1.ScanLine[Png1.Height - 1];
 
    Progress := 100 - Progress;
 
    Weight := MulDiv(256, Progress, 100);
 
    for I := (Png1.Width * Png1.Height) - 1 downto 0 do
 
    begin
 
      with dstPixel^ do
 
      begin
 
        Inc(rgbRed, (Weight * (srcPixel^.rgbRed - rgbRed)) shr 8);
 
        Inc(rgbGreen, (Weight * (srcPixel^.rgbGreen - rgbGreen)) shr 8);
 
        Inc(rgbBlue, (Weight * (srcPixel^.rgbBlue - rgbBlue)) shr 8);
 
      end;
 
      Inc(srcPixel);
 
      Inc(dstPixel);
 
    end;
 
  end;
 
end;
 
end.
Теперь запускается но выдает ошибку при наведении...
Подскажите почему не читает процедуру?
0
Microo10
45 / 20 / 4
Регистрация: 18.08.2011
Сообщений: 395
28.01.2012, 14:48  [ТС] 6
прилепляю проект.
0
Вложения
Тип файла: rar Анимация.rar (1.67 Мб, 20 просмотров)
Microo10
45 / 20 / 4
Регистрация: 18.08.2011
Сообщений: 395
29.01.2012, 15:55  [ТС] 7
Кто может подсказать решение данной проблемы?

Добавлено через 19 часов 26 минут
ап-ап
0
29.01.2012, 15:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2012, 15:55

Почему читает и записывает в разные каталоги?
Доброго времени суток уважаемые форумчане) Собственно пытаюсь написать программу по работе с xml....

почему винт постоянно читает чего-то?
win 7 pro 64 sp1. пк -i7/8gb/... смотрел монитор ресурсов. prefmon.exe постоянно чего-то читает-...

Dvd-rom читает не все диски.Почему?
двд ром работал нормально раньше, че то в последнее время погнал и практически не читает ни один...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.