Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/55: Рейтинг темы: голосов - 55, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 39

Смена изображения

29.10.2010, 21:56. Показов 11430. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Пишу программу-тест(до сих пор, ога). Вопросы - это отдельные вкладки в PageControl. Как сделать так, чтобы при смене вкладки менялось изображение в Image? Причем, не рандомно, а каждой вкладке - своя картинка. Реально ли это вообще?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.10.2010, 21:56
Ответы с готовыми решениями:

Смена изображения при изменении пункта ComboBox-а
как сделать что бы выбрав в ComboBox пункт, менялось изображение???

Смена Image1 при наведение сохраняя изображения в программу при компиляции
Доброго времени суток ! Суть такова , использую Image в качестве кнопки , хотел реализовать визуальные эфекты при наведение и нажатие ! ...

Смена изображения
Здравствуйте. У меня есть папка "screens" В которой лежит файл last.jpg Файл меняется раз в 2 секунды. Есть ещё html-ка ...

43
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 17
18.01.2012, 13:04
Студворк — интернет-сервис помощи студентам
Mawrat:
Тут ещё такоей вопрос. у вас написано. Image1.Picture.Bitmap.Assign(Jpg); а мне приходится писать Form1.Image1.Picture.Bitmap.Assign(Jpg); иначе ошибку выдаёт [Pascal Error] Unit1.pas(1): Unable to invoke Code Completion due to errors in source code . с чем связано такое поведение? разница в версиях? у меня седьмой.
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.01.2012, 15:04
Если Image1 находится на форме TForm1 и код выполняется в методе этого же класса формы:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses
  Jpeg;
 
procedure TForm1.Button1Click(Sender: TObject);
const
  Fn = '01.jpg';
var
  Jpg : TJpegImage;
  FileName : String;
begin
  //Предположим, файл лежит в той же папке, в которой располагается
  //исполняемый файл программы. Формируем полное имя файла:
  FileName := ExtractFilePath(ParamStr(0)) + Fn;
 
  Jpg := TJpegImage.Create;
  Jpg.LoadFromFile(FileName);
  Image1.Picture.Bitmap.Assign(Jpg); //Или: Self.Image1.Picture.Bitmap.Assign(Jpg);
  FreeAndNil(Jpg);
end;
то здесь дописывать "Form1." не надо, и более того - это было бы даже нежелательным. Вместо Form1 здесь можно написать Self - эта встроенная переменная ссылается на тот экземпляр класса, в отношении которого в данный момент выполняется метод. Form1 - это внешняя по отношению к классу TForm1 переменная. На один и тот же экземпляр могут ссылаться несколько переменных. И в методах надо стараться избегать ссылок на внешние переменные.
---
Если обработка проводится не в методе экземпляра класса TForm1, вот тогда понадобится сослаться на экземпляр (форму), которому принадлежит Image1. Это может быть в случае, если надо получить доступ к Image1, например, из методов другой формы. Пускай это будет TForm2, к примеру:
Delphi
1
2
3
4
5
6
7
procedure TForm2.Button1Click(Sender : TObject);
...
begin
...
  Form1.Image1.Picture.Bitmap.Assign(Jpg);
...
end;
1
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 17
18.01.2012, 15:17
может дело в процедуре которую я вывожу? Я как бы плонирую сделать процедуру смены картинки отдельно. А потом просто ссылатся на неё при смене ListBox1.Index.Strings[0] и переменной, между RadionBatton1. так вот я к чему это всё.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Procedure VisiblImagi();
 const
  Fn ='cever_s~1.jpg';
 
    var
      Jpg: TJpegImage;
      FileName: String;
 
begin
 
  FileName := ExtractFilePath(ParamStr(0)) + Fn;
 
 
   Jpg:=TJpegImage.Create;
   Jpg.LoadFromFile(FileName);
   Self.Image1.Picture.Bitmap.Assign(Jpg);
   FreeAndNil(Jpg);
 
end;
и он выдоёт ошибку.
[Pascal Error] Unit1.pas(1): Unable to invoke Code Completion due to errors in source code
а ставлю Form1 и так далие, всё прокатывает.
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.01.2012, 17:28
Self - эта переменная предопределена только в методах классов. В обыкновенной процедуре этой переменной быть не может. В общем, здесь лучше написать так:
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
procedure VisibleImage(aImg : TImage);
const
  Fn ='cever_s~1.jpg';
var
  Jpg: TJpegImage;
  FileName: String;
begin
  FileName := ExtractFilePath(ParamStr(0)) + Fn;
  
  Jpg:=TJpegImage.Create;
  Jpg.LoadFromFile(FileName);
  Img.Picture.Bitmap.Assign(Jpg);
  FreeAndNil(Jpg);
end;
 
//Если надо загрузить картинку из метода TForm1.
procedure TForm1...;
...
begin
...
  VisibleImage(Image1);
...
end;
 
//Если надо загрузить картинку НЕ из метода TForm1.
procedure ...;
...
begin
...
  VisibleImage(Form1.Image1);
...
end;
Или так:
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
procedure VisibleImage(aImg : TImage; const aFileName : String);
var
  Jpg: TJpegImage;
begin
  Jpg:=TJpegImage.Create;
  Jpg.LoadFromFile(aFileName);
  Img.Picture.Bitmap.Assign(Jpg);
  FreeAndNil(Jpg);
end;
 
//Если надо загрузить картинку из метода TForm1.
procedure TForm1...;
const
  Fn = 'cever_s~1.jpg';
var
  FileName : String;
begin
  FileName := ExtractFilePath(ParamStr(0)) + Fn;
  VisibleImage(Image1, FileName);
...
end;
 
//Если надо загрузить картинку НЕ из метода TForm1.
procedure ...;
const
  Fn = 'cever_s~1.jpg';
var
  FileName : String;
begin
  FileName := ExtractFilePath(ParamStr(0)) + Fn;
  VisibleImage(Form1.Image1, FileName);
...
end;
1
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 17
18.01.2012, 18:48
Mawrat :
Очнеь, спосибо. Я обязательно займусь этим на стадии оптимизации. а вот тут хочу показать, к чему я в итоге пришол. И если вдруг что я ещё сюда же планирую привезать, соответственную звуковую дорожку. Тока их в отличии от картинок, будет 3 а не 2 варианта(именно поэтомуRalionButten должно быть 3)
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
125
126
var
  Form1: TForm1;
   paz:Boolean;
  // at,at2,at3:integer;
   pi,pi1,pi2:Boolean;//string;
  // pictAft:TPicture;
   //jpg: TJpegImage;
   ImageV:String;
 
 
 
 
implementation
 
 
{$R *.dfm}
procedure TForm1.ListBox1Click(Sender: TObject);
begin
radioButton1.Checked:= False;
radioButton2.Checked:= False;
radioButton3.Checked:= False;
 
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
paz:=pi;
end;
 
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
paz:=pi1
end;
 
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
paz:=pi2
end;
 
Procedure ChengeImage();
   const
    Im0 ='cever~1.jpg';
    Im1 ='Pereval~1.jpg';
    Im2 ='rawnina~1.jpg';
    Im3 ='Malinovka~1.jpg';
    Im4 ='Ximki~1.jpg';
      Im5 ='Carelia~1.jpg';
      Im6 ='proxarovka~1.jpg';
      Im7 ='ensk~1.jpg';
      Im8 ='lasvil~1.jpg';
      Im9 ='ryinberg~1.jpg';
 
    Im10 ='rydniki~1.jpg';
    Im11 ='myrowanka~1.jpg';
    Im12 ='erlenberg~1.jpg';
    Im13 ='linZikfr~1.jpg';
    Im14 ='Cowmarin~1.jpg';
      Im15 ='Ytec~1.jpg';
      Im16 ='Monactir~1.jpg';
      Im17 ='Topi~1.jpg';
      Im18 ='WectFil~1.jpg';
      Im19 ='PickaReka~1.jpg';
 
    Im20 ='AlHaluf~1.jpg';
    Im21 ='Fiordi~1.jpg';
    Im22 ='RedShir~1.jpg';
    Im23 ='ribensk~1.jpg';
////////////////              ///////////////По разведке
    ImS1 ='cever_s~1.jpg';
    ImS2 ='Pereval_s~1.jpg';
    ImS3 ='rawnina_s~1.jpg';
    ImS4 ='Malinovka_s~1.jpg';
    ImS5 ='Ximki_s~1.jpg';
      ImS6 ='Carelia_s~1.jpg';
      ImS7 ='proxarovka_s~1.jpg';
      ImS8 ='ensk_s~1.jpg';
      ImS9 ='lasvil_s~1.jpg';
      ImS10 ='ryinberg_s~1.jpg';
 
    ImS11 ='rydniki_s~1.jpg';
    ImS12 ='myrowanka_s~1.jpg';
    ImS13 ='erlenberg_s~1.jpg';
    ImS14 ='linZikfr_s~1.jpg';
    ImS15 ='Cowmarin_s~1.jpg';
      ImS16 ='Ytec_s~1.jpg';
      ImS17 ='Monactir_s~1.jpg';
      ImS18 ='Topi_s~1.jpg';
      ImS19 ='WectFil_s~1.jpg';
      ImS20 ='PickaReka_s~1.jpg';
 
    ImS21 ='AlHaluf_s~1.jpg';
    ImS22 ='Fiordi_s~1.jpg';
    ImS23 ='RedShir_s~1.jpg';
    ImS24 ='ribensk_s~1.jpg';
 
    ///48 обектов картинок
begin
//вчастности
//вот это место
 If paz:=pi and ListBox1.items.Strings:=ListBox1.items.Strings[0]
 THEN
 begin
 ImageV:=im0;
 end;
end;
 
Procedure VisiblImagi();
 const
  Fn =ImageV;
 
    var
      Jpg: TJpegImage;
      FileName: String;
 
begin
 
  FileName := ExtractFilePath(ParamStr(0)) + Fn;
 
 
   Jpg:=TJpegImage.Create;
   Jpg.LoadFromFile(FileName);
   Form1.Image1.Picture.Bitmap.Assign(Jpg);
   FreeAndNil(Jpg);
 
end;
///ну тут ещё куча мусара из моих прошлых попытог. думаю это не будет интересно.
end.
если в крадце, я чёта поругался с условием if

Добавлено через 12 минут
P.S.
Я забыл добавть что if будет стаять 3 вряд. Так можно делать или тут должна быть альтернативная, процедура?
0
Автор FAQ
Автор FAQ
 Аватар для REALIST07
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
18.01.2012, 19:29
пропиши лучше так
Delphi
1
Form1.Image1.Picture.LoadFromFile(ExtractFilePath(paramstr(0))+'Image\cever.jpg');
Добавлено через 37 секунд
упс...не дочитал
0
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 17
20.01.2012, 13:48
Переработал код. Сразу оптимезировал. Чегото не дапонял, поэтому чуток допереписал. Но опять же зацыклился в томже месте. в добавок, подозреваю что вытворяю чёто вобще не допустиме. Думаю тут можно было бы както с цыклом сделать, но я чёта с цыклами пока не дружу. вобщем вот новый вариант, приминения Image через варианты кнопок.
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
125
126
127
128
  Form1: TForm1;
   paz:String;
  // at,at2,at3:integer;
   pi,pi1,pi2:string;
  // pictAft:TPicture;
  // jpg: TJpegImage;
   id0,id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,id12,id13,id14,id15,id16,id17,id18,id19,id20,id21,id22,id23: String;
   ImageV:String;
 
 
 
 
implementation
 
 
{$R *.dfm}
procedure TForm1.ListBox1Click(Sender: TObject);
begin
ListBox1.Items.Strings[0]:= id0;
radioButton1.Checked:= False;
radioButton2.Checked:= False;
radioButton3.Checked:= False;
 
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
//Pi:=True ;
//pi:=False;
//pi:=False;
paz:=pi;
end;
 
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
paz:=pi1
end;
 
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
paz:=pi2
end;
 
Procedure ChengeImage();
   const
    Im0 ='cever~1.jpg';
    Im1 ='Pereval~1.jpg';
    Im2 ='rawnina~1.jpg';
    Im3 ='Malinovka~1.jpg';
    Im4 ='Ximki~1.jpg';
      Im5 ='Carelia~1.jpg';
      Im6 ='proxarovka~1.jpg';
      Im7 ='ensk~1.jpg';
      Im8 ='lasvil~1.jpg';
      Im9 ='ryinberg~1.jpg';
 
    Im10 ='rydniki~1.jpg';
    Im11 ='myrowanka~1.jpg';
    Im12 ='erlenberg~1.jpg';
    Im13 ='linZikfr~1.jpg';
    Im14 ='Cowmarin~1.jpg';
      Im15 ='Ytec~1.jpg';
      Im16 ='Monactir~1.jpg';
      Im17 ='Topi~1.jpg';
      Im18 ='WectFil~1.jpg';
      Im19 ='PickaReka~1.jpg';
 
    Im20 ='AlHaluf~1.jpg';
    Im21 ='Fiordi~1.jpg';
    Im22 ='RedShir~1.jpg';
    Im23 ='ribensk~1.jpg';
////////////////              ///////////////По разведке
    ImS1 ='cever_s~1.jpg';
    ImS2 ='Pereval_s~1.jpg';
    ImS3 ='rawnina_s~1.jpg';
    ImS4 ='Malinovka_s~1.jpg';
    ImS5 ='Ximki_s~1.jpg';
      ImS6 ='Carelia_s~1.jpg';
      ImS7 ='proxarovka_s~1.jpg';
      ImS8 ='ensk_s~1.jpg';
      ImS9 ='lasvil_s~1.jpg';
      ImS10 ='ryinberg_s~1.jpg';
 
    ImS11 ='rydniki_s~1.jpg';
    ImS12 ='myrowanka_s~1.jpg';
    ImS13 ='erlenberg_s~1.jpg';
    ImS14 ='linZikfr_s~1.jpg';
    ImS15 ='Cowmarin_s~1.jpg';
      ImS16 ='Ytec_s~1.jpg';
      ImS17 ='Monactir_s~1.jpg';
      ImS18 ='Topi_s~1.jpg';
      ImS19 ='WectFil_s~1.jpg';
      ImS20 ='PickaReka_s~1.jpg';
 
    ImS21 ='AlHaluf_s~1.jpg';
    ImS22 ='Fiordi_s~1.jpg';
    ImS23 ='RedShir_s~1.jpg';
    ImS24 ='ribensk_s~1.jpg';
 
    ///48 обектов картинок
begin
//вчастности
//вот это место
 
 If paz = pi and id0 THEN
 begin
  ImageV:=im0;
 end;
end;
 
Procedure VisiblImagi(aImg: TImage);
 const
  //Fn =ImageV;
 
    var
      Jpg: TJpegImage;
      FileName: String;
 
begin
 
  FileName := ExtractFilePath(ParamStr(0)) + ImageV; ////Fn;
 
 
   Jpg:=TJpegImage.Create;
   Jpg.LoadFromFile(FileName);
   aImg.Picture.Bitmap.Assign(Jpg);    //////Я чегото не понял поэтому сделал так
   FreeAndNil(Jpg);
 
end;
Так вот, мне кажется что осталось тока с if разобратся а там уже дело пойдёт. Тока я не могу понять чего он от меня хочет?
кричит следуйщее.
[Error] Unit1.pas(133): Operator not applicable to this operand type
[Error] Unit1.pas(143): Identifier expected but 'VAR' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
0
Автор FAQ
Автор FAQ
 Аватар для REALIST07
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
20.01.2012, 14:47
Чтобы работать с циклом нужно названия менять,я делал такой прикол с inifile вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'img.ini');
ini.WriteString('Picture','№1',ExtractFilePath(ParamStr(0))+'img\1.jpg');
ini.WriteString('Picture','№2',ExtractFilePath(ParamStr(0))+'img\2.jpg');
ini.WriteString('Picture','№3',ExtractFilePath(ParamStr(0))+'img\3.jpg');
ini.WriteString('Picture','№4',ExtractFilePath(ParamStr(0))+'img\4.jpg');
ini.WriteString('Picture','№5',ExtractFilePath(ParamStr(0))+'img\5.jpg');
ini.WriteString('Picture','№6',ExtractFilePath(ParamStr(0))+'img\6.jpg');
ini.WriteString('Picture','№7',ExtractFilePath(ParamStr(0))+'img\7.jpg');
ini.WriteString('Picture','№8',ExtractFilePath(ParamStr(0))+'img\8.jpg');
ini.WriteString('Picture','№9',ExtractFilePath(ParamStr(0))+'img\9.jpg');
ini.WriteString('Picture','№10',ExtractFilePath(ParamStr(0))+'img\10.jpg');
ini.WriteString('Picture','№11',ExtractFilePath(ParamStr(0))+'img\11.jpg');
ini.WriteString('Picture','№12',ExtractFilePath(ParamStr(0))+'img\12.jpg');
ini.WriteString('Picture','№13',ExtractFilePath(ParamStr(0))+'img\13.jpg');
ini.WriteString('Picture','№14',ExtractFilePath(ParamStr(0))+'img\14.jpg');
ini.WriteString('Picture','№15',ExtractFilePath(ParamStr(0))+'img\15.jpg');
ini.WriteString('Picture','№16',ExtractFilePath(ParamStr(0))+'img\16.jpg');
ini.WriteString('Picture','№17',ExtractFilePath(ParamStr(0))+'img\17.jpg');
ini.WriteString('Picture','№18',ExtractFilePath(ParamStr(0))+'img\18.jpg');
ini.WriteString('Picture','№19',ExtractFilePath(ParamStr(0))+'img\19.jpg');
А потом на кнопке просто вот такая тема:
Delphi
1
2
3
 img1.Picture.LoadFromFile(ini.ReadString('Picture','№'+inttostr(i),ExtractFilePath((ParamStr(0))+'1.jpg')));
 
  if i=19 then i:=1 else  i:=i+1;
1
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
20.01.2012, 15:29
Цитата Сообщение от REALIST07 Посмотреть сообщение
Чтобы работать с циклом нужно названия менять,я делал такой прикол с inifile вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'img.ini');
ini.WriteString('Picture','№1',ExtractFilePath(ParamStr(0))+'img\1.jpg');
ini.WriteString('Picture','№2',ExtractFilePath(ParamStr(0))+'img\2.jpg');
ini.WriteString('Picture','№3',ExtractFilePath(ParamStr(0))+'img\3.jpg');
ini.WriteString('Picture','№4',ExtractFilePath(ParamStr(0))+'img\4.jpg');
ini.WriteString('Picture','№5',ExtractFilePath(ParamStr(0))+'img\5.jpg');
ini.WriteString('Picture','№6',ExtractFilePath(ParamStr(0))+'img\6.jpg');
ini.WriteString('Picture','№7',ExtractFilePath(ParamStr(0))+'img\7.jpg');
ini.WriteString('Picture','№8',ExtractFilePath(ParamStr(0))+'img\8.jpg');
ini.WriteString('Picture','№9',ExtractFilePath(ParamStr(0))+'img\9.jpg');
ini.WriteString('Picture','№10',ExtractFilePath(ParamStr(0))+'img\10.jpg');
ini.WriteString('Picture','№11',ExtractFilePath(ParamStr(0))+'img\11.jpg');
ini.WriteString('Picture','№12',ExtractFilePath(ParamStr(0))+'img\12.jpg');
ini.WriteString('Picture','№13',ExtractFilePath(ParamStr(0))+'img\13.jpg');
ini.WriteString('Picture','№14',ExtractFilePath(ParamStr(0))+'img\14.jpg');
ini.WriteString('Picture','№15',ExtractFilePath(ParamStr(0))+'img\15.jpg');
ini.WriteString('Picture','№16',ExtractFilePath(ParamStr(0))+'img\16.jpg');
ini.WriteString('Picture','№17',ExtractFilePath(ParamStr(0))+'img\17.jpg');
ini.WriteString('Picture','№18',ExtractFilePath(ParamStr(0))+'img\18.jpg');
ini.WriteString('Picture','№19',ExtractFilePath(ParamStr(0))+'img\19.jpg');
А потом на кнопке просто вот такая тема:
Delphi
1
2
3
 img1.Picture.LoadFromFile(ini.ReadString('Picture','№'+inttostr(i),ExtractFilePath((ParamStr(0))+'1.jpg')));
 
  if i=19 then i:=1 else  i:=i+1;
можно поставить поиск файлов и потом их загружать... и названия знать не надо, не обязательно

Добавлено через 2 минуты
Цитата Сообщение от Микс_CTATNCT Посмотреть сообщение
Переработал код. Сразу оптимезировал. Чегото не дапонял, поэтому чуток допереписал. Но опять же зацыклился в томже месте. в добавок, подозреваю что вытворяю чёто вобще не допустиме. Думаю тут можно было бы както с цыклом сделать, но я чёта с цыклами пока не дружу. вобщем вот новый вариант, приминения Image через варианты кнопок.
код
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
125
126
127
128
  Form1: TForm1;
   paz:String;
  // at,at2,at3:integer;
   pi,pi1,pi2:string;
  // pictAft:TPicture;
  // jpg: TJpegImage;
   id0,id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,id12,id13,id14,id15,id16,id17,id18,id19,id20,id21,id22,id23: String;
   ImageV:String;
 
 
 
 
implementation
 
 
{$R *.dfm}
procedure TForm1.ListBox1Click(Sender: TObject);
begin
ListBox1.Items.Strings[0]:= id0;
radioButton1.Checked:= False;
radioButton2.Checked:= False;
radioButton3.Checked:= False;
 
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
//Pi:=True ;
//pi:=False;
//pi:=False;
paz:=pi;
end;
 
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
paz:=pi1
end;
 
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
paz:=pi2
end;
 
Procedure ChengeImage();
   const
    Im0 ='cever~1.jpg';
    Im1 ='Pereval~1.jpg';
    Im2 ='rawnina~1.jpg';
    Im3 ='Malinovka~1.jpg';
    Im4 ='Ximki~1.jpg';
      Im5 ='Carelia~1.jpg';
      Im6 ='proxarovka~1.jpg';
      Im7 ='ensk~1.jpg';
      Im8 ='lasvil~1.jpg';
      Im9 ='ryinberg~1.jpg';
 
    Im10 ='rydniki~1.jpg';
    Im11 ='myrowanka~1.jpg';
    Im12 ='erlenberg~1.jpg';
    Im13 ='linZikfr~1.jpg';
    Im14 ='Cowmarin~1.jpg';
      Im15 ='Ytec~1.jpg';
      Im16 ='Monactir~1.jpg';
      Im17 ='Topi~1.jpg';
      Im18 ='WectFil~1.jpg';
      Im19 ='PickaReka~1.jpg';
 
    Im20 ='AlHaluf~1.jpg';
    Im21 ='Fiordi~1.jpg';
    Im22 ='RedShir~1.jpg';
    Im23 ='ribensk~1.jpg';
////////////////              ///////////////По разведке
    ImS1 ='cever_s~1.jpg';
    ImS2 ='Pereval_s~1.jpg';
    ImS3 ='rawnina_s~1.jpg';
    ImS4 ='Malinovka_s~1.jpg';
    ImS5 ='Ximki_s~1.jpg';
      ImS6 ='Carelia_s~1.jpg';
      ImS7 ='proxarovka_s~1.jpg';
      ImS8 ='ensk_s~1.jpg';
      ImS9 ='lasvil_s~1.jpg';
      ImS10 ='ryinberg_s~1.jpg';
 
    ImS11 ='rydniki_s~1.jpg';
    ImS12 ='myrowanka_s~1.jpg';
    ImS13 ='erlenberg_s~1.jpg';
    ImS14 ='linZikfr_s~1.jpg';
    ImS15 ='Cowmarin_s~1.jpg';
      ImS16 ='Ytec_s~1.jpg';
      ImS17 ='Monactir_s~1.jpg';
      ImS18 ='Topi_s~1.jpg';
      ImS19 ='WectFil_s~1.jpg';
      ImS20 ='PickaReka_s~1.jpg';
 
    ImS21 ='AlHaluf_s~1.jpg';
    ImS22 ='Fiordi_s~1.jpg';
    ImS23 ='RedShir_s~1.jpg';
    ImS24 ='ribensk_s~1.jpg';
 
    ///48 обектов картинок
begin
//вчастности
//вот это место
 
 If paz = pi and id0 THEN
 begin
  ImageV:=im0;
 end;
end;
 
Procedure VisiblImagi(aImg: TImage);
 const
  //Fn =ImageV;
 
    var
      Jpg: TJpegImage;
      FileName: String;
 
begin
 
  FileName := ExtractFilePath(ParamStr(0)) + ImageV; ////Fn;
 
 
   Jpg:=TJpegImage.Create;
   Jpg.LoadFromFile(FileName);
   aImg.Picture.Bitmap.Assign(Jpg);    //////Я чегото не понял поэтому сделал так
   FreeAndNil(Jpg);
 
end;

Так вот, мне кажется что осталось тока с if разобратся а там уже дело пойдёт. Тока я не могу понять чего он от меня хочет?
кричит следуйщее.
[Error] Unit1.pas(133): Operator not applicable to this operand type
[Error] Unit1.pas(143): Identifier expected but 'VAR' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
улыбнула 7 строка... не знание что такое массив
1
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 17
21.01.2012, 01:37
Цитата Сообщение от Arcor Посмотреть сообщение
можно поставить поиск файлов и потом их загружать... и названия знать не надо, не обязательно

Добавлено через 2 минуты


улыбнула 7 строка... не знание что такое массив
Я знаю что такое массив. Я как не пытаюсь использовать его, ничего не получается. Короче знать то знаюю И видео смотре. И... Короче, не получается и всё тут.
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
21.01.2012, 02:09
Цитата Сообщение от Микс_CTATNCT Посмотреть сообщение
Я знаю что такое массив. Я как не пытаюсь использовать его, ничего не получается. Короче знать то знаюю И видео смотре. И... Короче, не получается и всё тут.
значит еще не созрело, бывает, знаю, новая тема всегда воспринимается как-то сложно и долго, нужна практика, и это самое главное
0
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 17
21.01.2012, 18:35
Цитата Сообщение от Arcor Посмотреть сообщение
значит еще не созрело, бывает, знаю, новая тема всегда воспринимается как-то сложно и долго, нужна практика, и это самое главное
Я так думаю придётся идти самым длинным путём, чтобы время не терять. Я щас купил курс по С++. Пройду его. После этого либо, попробую сделать ту же программу визул С++ либо догоню как это сделать да делфик, либо повешаюсь, от потологического недоламерства
0
Автор FAQ
Автор FAQ
 Аватар для REALIST07
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
21.01.2012, 20:22
Выложи прогу свою,посмотрим что там у тебя
0
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 17
22.01.2012, 00:12
Цитата Сообщение от REALIST07 Посмотреть сообщение
Выложи прогу свою,посмотрим что там у тебя
Ну можно, в принципе. В общем, программа, в принципе, не очень важная и не какая-то особая. Просто я в одном игровом клане. И как-то задолбало, рассказывать всем подряд простую, в общем-то, информацию. И решил я забабахать, такой как бы мануальчик. То есть, выбираешь картинку. Потом варианта из трёх. Чего тебя больше интересует. Там, где лучше держать оборону, где светить, ну, в общем, это чисто визуальная часть. А когда надо более, детальная инфа, нажимается на кнопочку, воспроизвести комментарий к картинке. В общем, как я думал, просто. Кто муже полезно, для применения программирования. Насколько это было для меня не просто, вы увидите, по мусору который ниже. И это ещё не весь мусор. Я 4 раза начинал заново.
 Комментарий модератора 
Ссылки удалены!
Прикрепляйте Ваши архивы к сообщениям! Не следует постить ссылки на файлообменники!
Вложения
Тип файла: rar pr.part1.rar (9.90 Мб, 20 просмотров)
Тип файла: rar pr.part2.rar (9.90 Мб, 16 просмотров)
Тип файла: rar pr.part3.rar (2.59 Мб, 17 просмотров)
0
 Аватар для БогДелфей
474 / 337 / 36
Регистрация: 31.05.2011
Сообщений: 1,164
22.01.2012, 00:43
норкоманство какоето О_о
0
Автор FAQ
Автор FAQ
 Аватар для REALIST07
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
22.01.2012, 16:40
Переделал я твой проект забирай,только потом в папку добавь папку под именем img и скопируй картинки свои
Вложения
Тип файла: rar Передаланный.rar (232.6 Кб, 30 просмотров)
1
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 17
23.01.2012, 16:27
Цитата Сообщение от REALIST07 Посмотреть сообщение
Переделал я твой проект забирай,только потом в папку добавь папку под именем img и скопируй картинки свои
Ну блин спосибо агрофигенное.
Delphi
1
img :array [1..24] of string[25]=('cever~1.jpg','Pereval~1.jpg','rawnina~1.jpg','Malinovka~1.jpg','Ximki~1.jpg','Carelia~1.jpg','rovka~1.jpg','ensk~1.jpg','lasvil~1.jpg', 'ryinberg~1.jpg', 'rydniki~1.jpg','myrowanka~1.jpg', 'erlenberg~1.jpg', 'linZikfr~1.jpg','Cowmarin~1.jpg', 'Ytec~1.jpg','Monactir~1.jpg','Topi~1.jpg','WectFil~1.jpg', 'PickaReka~1.jpg','AlHaluf~1.jpg','Fiordi~1.jpg','RedShir~1.jpg','ribensk~1.jpg');
без опыта конечно такое не придумать. Я лично это по другом представлял. Хотя вот вопрос, это ведь один из вариантов да? или по другом тут никак? Мне просто интересно, мнение в этом. Просто подозреваю что есть несколько решений, одной и той же задачи.
0
Автор FAQ
Автор FAQ
 Аватар для REALIST07
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
23.01.2012, 16:39
Можно было бы даже "запись(record)" сделать и объединить 2 массива-img и imgs,на плюсах я бы обязательно сделал структуру или даже класс под это дело=).
А кардинально отличающегося если честно лично в мою голову не приходит,единственное можно было бы их назвать например:
1.jpg,2.jpg,3.jpg и т.д. тогда к ним можно было бы обращаться вот таким способом
Delphi
1
2
FileName := ExtractFilePath(ParamStr(0))+'img\'+inttostr(ListBox1.itemindex+1)+'.jpg';
VisiblImagi(Image1,filename);
И массивы огроменные не нужны бы были,но это уже как кайф,я показал как можно
1
4195 / 1841 / 223
Регистрация: 06.10.2010
Сообщений: 4,127
24.01.2012, 21:57
Не проще использовать Animate?
Вложения
Тип файла: rar Не лезь вариант 2.rar (4.72 Мб, 17 просмотров)
1
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 17
28.01.2012, 18:14
Цитата Сообщение от murderer Посмотреть сообщение
Не проще использовать Animate?
Так там дело в том что, вариантов картинок 2. а вариантов озвучки 3. так что это простой вариант, но мне он вобще никак.


REALIST07;
Я тут хотел спросить кстати. Если я ту же схему возьму для присвоения аудио трека поотношению к картинки по итогу нажатия кнопки это будет коректно или нет?
короче вот пример
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
var
mp3p :array [1..24] of string[25]=('cever.mp3','Pereval.mp3','rawnina.mp3','Malinovka.mp3','Ximki.mp3','Carelia.mp3','rovka.mp3','ensk.mp3','lasvil.mp3', 'ryinberg.mp3', 'rydniki.mp3','myrowanka.mp3', 'erlenberg.mp3', 'liniZkfr.mp3','Cowmarin.mp3', 'Ytec.mp3','Monactir.mp3','Topi.mp3','WectFil.mp3', 'PickaReka.mp3','AlHaluf.mp3','Fiordi.mp3','RedShir.mp3','ribensk.mp3');
    mp3s :array [1..24] of string[25]=('cever_s.mp3','Pereval_s.mp3','rawnina_s.mp3','Malinovka_s.mp3','Ximki_s.mp3','Carelia_s.mp3','rovka_s.mp3','ensk_s.mp3','lasvil_s.mp3', 'ryinberg_s.mp3', 'rydniki_s.mp3','myrowanka_s.mp3', 'erlenberg_s.mp3', 'liniZkfr_s.mp3','Cowmarin_s.mp3', 'Ytec_s.mp3','Monactir_s.mp3','Topi_s.mp3','WectFil_s.mp3', 'PickaReka_s.mp3','AlHaluf_s.mp3','Fiordi_s.mp3','RedShir_s.mp3','ribensk_s.mp3');
    mp3v :array [1..24] of string[25]=('cever_v.mp3','Pereval_v.mp3','rawnina_v.mp3','Malinovka_v.mp3','Ximki_v.mp3','Carelia_v.mp3','rovka_v.mp3','ensk_v.mp3','lasvil_v.mp3', 'ryinberg_v.mp3', 'rydniki_v.mp3','myrowanka_v.mp3', 'erlenberg_v.mp3', 'liniZkfr_v.mp3','Cowmarin_v.mp3', 'Ytec_v.mp3','Monactir_v.mp3','Topi_v.mp3','WectFil_v.mp3', 'PickaReka_v.mp3','AlHaluf_v.mp3','Fiordi_v.mp3','RedShir_v.mp3','ribensk_v.mp3');
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 if pi = true THEN
  begin
   MediaPlayer1.Free;
   MediaPlayer1.FileName:= ExtractFilePath(ParamStr(0))+'mp3\'+mp3p[ListBox1.itemindex+1];
   MediaPlayer1.Play;
  end ELSE
   if pi1 = true THEN
  begin
   MediaPlayer1.Free;
   MediaPlayer1.FileName:= ExtractFilePath(ParamStr(0))+'mp3\'+mp3p[ListBox1.itemindex+1];
   MediaPlayer1.Play;
  end ELSE
   if pi2 = true THEN
  begin
   MediaPlayer1.Free;
   MediaPlayer1.FileName:= ExtractFilePath(ParamStr(0))+'mp3\'+mp3p[ListBox1.itemindex+1];
   MediaPlayer1.Play;
  end
  ELSE ShowMessage('Не выбран вариант озвучки!!!');
end;
а да pi pi1 pi2 это значения переменных которые включаются во время нажатия радион батон.
вобщем вот.
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
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
    //PageControl1.ActivePage:=PageControl1.ActivePage.TabSheet1;
//Pi:=True ;
//pi:=False;
//pi:=False;
 pi:=False;
 pi1:=False;
 pi2:=False;
 pi:=True;
//paz:=pi;
end;
 
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
  // PageControl1.ActivePage:=PageControl1.ActivePage[2];
//paz:=pi1
 pi:=False;
 pi1:=False;
 pi2:=False;
 pi1:=True;
end;
 
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
  //PageControl1.ActivePage:=PageControl1.ActivePage[1];
//paz:=pi2
 pi:=False;
 pi1:=False;
 pi2:=False;
 pi2:=True;
end;
И к ним же хочу приладить афтоматическую смену изображения холста. Ну в смысле 1 холст второй. Правда не знаю как там индекс прописывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2012, 18:14

Смена изображения
Идея в том что надо сделать одновременную смену изображения как по вертикали, так и по горизонтали. У меня получается сделать это только...

Смена изображения
Друзья помогите зделать вот в чом вопрос єсть 5 изображений которие должни изменятса в цикле и 2 кнопки нужна сделать чтоби при...

Смена изображения
Подскажите пожалуйста. Как сделать смену изображения. (КОД). Мои действия. У меня на рабочем столе два подготовленных изображения. 1 и 2....

Смена изображения
На форме Image, туда при создании формы грузиться Картинка1, при наведении грузиться Картинка2.... как при убирании курсора с картинки2,...

Смена изображения ImageButton
Нужно что бы при нажатии на ImageButton менялось ее изображение.


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru