Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 366

/ вопрос открыт /

Здравствуйте, эксперты!
Написал программу- альбом. Но изображения выводит не соответствующие каталогу. Посмотрите пожалуйста!

Приложение:
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls, ExtCtrls, Menus, XPMan, ComCtrls;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. GroupBox1: TGroupBox;
  12. RadioButton1: TRadioButton;
  13. RadioButton2: TRadioButton;
  14. RadioButton3: TRadioButton;
  15. RadioButton4: TRadioButton;
  16. RadioButton5: TRadioButton;
  17. GroupBox2: TGroupBox;
  18. ComboBox1: TComboBox;
  19. Image1: TImage;
  20. ListBox1: TListBox;
  21. ListBox2: TListBox;
  22. MainMenu1: TMainMenu;
  23. N1: TMenuItem;
  24. N2: TMenuItem;
  25. N3: TMenuItem;
  26. N4: TMenuItem;
  27. XPManifest1: TXPManifest;
  28. procedure RadioButton1Click(Sender: TObject);
  29. procedure RadioButton2Click(Sender: TObject);
  30. procedure RadioButton3Click(Sender: TObject);
  31. procedure RadioButton4Click(Sender: TObject);
  32. procedure RadioButton5Click(Sender: TObject);
  33. procedure ComboBox1Change(Sender: TObject);
  34. procedure N3Click(Sender: TObject);
  35. procedure FormCreate(Sender: TObject);
  36. private
  37. { Private declarations }
  38. public
  39. { Public declarations }
  40. end;
  41.  
  42. var
  43. Form1: TForm1;
  44. var i: integer;
  45.  
  46. implementation
  47.  
  48. {$R *.dfm}
  49.  
  50. procedure TForm1.RadioButton1Click(Sender: TObject);
  51.  
  52. begin
  53. comboBox1.Clear;
  54. ComboBox1.Tag:= (Sender as TRadioButton).Tag;
  55. for i:=0 to 4 do
  56. ComboBox1.Items.Add(ListBox1.Items[ComboBox1.Tag+i]);
  57. ComboBox1.ItemIndex:=0;
  58. image1.Picture.LoadFromFile(ListBox2.Items[comboBox1.tag]);
  59.  
  60. end;
  61.  
  62. procedure TForm1.RadioButton2Click(Sender: TObject);
  63.  
  64. begin
  65. comboBox1.Clear;
  66. ComboBox1.Tag:= (Sender as TRadioButton).Tag;
  67. for i:=0 to 4 do
  68. ComboBox1.Items.Add(ListBox1.Items[ComboBox1.Tag+i]);
  69. ComboBox1.ItemIndex:=0;
  70. image1.Picture.LoadFromFile(ListBox2.Items[comboBox1.Tag]);
  71. end;
  72.  
  73. procedure TForm1.RadioButton3Click(Sender: TObject);
  74. begin
  75. comboBox1.Clear;
  76. ComboBox1.Tag:= (Sender as TRadioButton).Tag;
  77. for i:=0 to 4 do
  78. ComboBox1.Items.Add(ListBox1.Items[ComboBox1.Tag+i]);
  79. ComboBox1.ItemIndex:=0;
  80. image1.Picture.LoadFromFile(ListBox2.Items[comboBox1.Tag]);
  81. end;
  82.  
  83. procedure TForm1.RadioButton4Click(Sender: TObject);
  84. begin
  85. comboBox1.Clear;
  86. ComboBox1.Tag:= (Sender as TRadioButton).Tag;
  87. for i:=0 to 4 do
  88. ComboBox1.Items.Add(ListBox1.Items[ComboBox1.Tag+i]);
  89.  
  90. image1.Picture.LoadFromFile(ListBox2.Items[comboBox1.Tag]);
  91. end;
  92.  
  93. procedure TForm1.RadioButton5Click(Sender: TObject);
  94. begin
  95. comboBox1.Clear;
  96. ComboBox1.Tag:= (Sender as TRadioButton).Tag;
  97. for i:=0 to 4 do
  98. ComboBox1.Items.Add(ListBox1.Items[ComboBox1.Tag+i]);
  99. ComboBox1.ItemIndex:=0;
  100. image1.Picture.LoadFromFile(ListBox2.Items[comboBox1.Tag]);
  101. end;
  102.  
  103. procedure TForm1.ComboBox1Change(Sender: TObject);
  104. begin
  105. image1.Picture.LoadFromFile(ListBox2.Items[ComboBox1.itemindex]);
  106. end;
  107.  
  108. procedure TForm1.N3Click(Sender: TObject);
  109. begin
  110. form1.Close;
  111. end;
  112.  
  113. procedure TForm1.FormCreate(Sender: TObject);
  114. begin
  115. RadioButton1Click(Radiobutton1) ;
  116. end;
  117.  
  118. end.


fail-gataullin Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: fail-gataullin (статус: Посетитель)
Вопрос отправлен: 28 июня 2010, 13:31
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: DNK

Здравствуйте, fail-gataullin!
Исправь так:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  image1.Picture.LoadFromFile(ListBox2.Items[ComboBox1.Tag + ComboBox1.itemindex]);
end;
И не надо столько обработчиков разводить. Заведи один для первой радиокнопки, а для остальных назначь от первой.

Ответ отправил: DNK (статус: Студент)
Время отправки: 28 июня 2010, 16:01
Оценка за ответ: 5

Комментарий к оценке: Спасибо! Помогло!!!

Мини-форум вопроса

Всего сообщений: 15; последнее сообщение — 28 июня 2010, 16:31; участников в обсуждении: 4.
DNK

DNK (статус: Студент), 28 июня 2010, 13:55 [#1]:

Было бы неплохо и DFM увидеть
"Digital Networked Knight"
fail-gataullin

fail-gataullin (статус: Посетитель), 28 июня 2010, 14:12 [#2]:

куда выслать?
DNK

DNK (статус: Студент), 28 июня 2010, 14:29 [#3]:

Давай куда-нибуть на всеобщее обозрение. Особо интересно, что в ListBox'ах.
"Digital Networked Knight"
IlluminatI

IlluminatI (статус: 2-ой класс), 28 июня 2010, 14:30 [#4]:

залей куда-нибудь на файлообменник
fail-gataullin

fail-gataullin (статус: Посетитель), 28 июня 2010, 14:47 [#5]:

Сейчас...
min@y™

min@y™ (статус: Доктор наук), 28 июня 2010, 15:00 [#6]:

Под дебаггером прогони и посмотри значения переменных, особенно индексов, и всё станет понятно сразу.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
fail-gataullin

fail-gataullin (статус: Посетитель), 28 июня 2010, 15:24 [#7]:

http://depositfiles.com/ru/files/m579oun2m
fail-gataullin

fail-gataullin (статус: Посетитель), 28 июня 2010, 15:25 [#8]:

Залил на депозит-посмотрите пожалуйста!!!
DNK

DNK (статус: Студент), 28 июня 2010, 15:44 [#9]:

У тебя абсолютный путь указан, как так может не соответствует каталогу? Или ты имеешь в виду, что не соответствуют выбранной модели.
"Digital Networked Knight"
fail-gataullin

fail-gataullin (статус: Посетитель), 28 июня 2010, 15:54 [#10]:

Выбираешь любую модель, первое изображение соответствует модели. Остальные кртинки идут только десятой модели. какой бы каталог не выбрал.
min@y™

min@y™ (статус: Доктор наук), 28 июня 2010, 16:04 [#11]:

Смотрю исходники и не понимаю, что должна делать программа. Объясни алгоритм, плиз.
Вижу очень много повторяющегося кода, который можно сократить.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
fail-gataullin

fail-gataullin (статус: Посетитель), 28 июня 2010, 16:12 [#12]:

Программа- альбом. Выбираешь модель ВАЗа и рядом должно появляться изображение автомобиля. В раскрывающемся списке 5 изображений, соответствующих модели. Все получилось. Как код можно сократить?
min@y™

min@y™ (статус: Доктор наук), 28 июня 2010, 16:20 [#13]:

Цитата (fail-gataullin):

Как код можно сократить?

Сделай для всех RadioButton один обработчик OnClick.
А ещё лучше - замени на RadioGroup.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
DNK

DNK (статус: Студент), 28 июня 2010, 16:22 [#14]:

Выбираешь по очереди каждую кнопку. Идешь Object Inspector закладка Events. Напротив пунктов OnClick для каждой радиокнопки выбираешь из выпадающего списка RadioButton1Click. После этого RadioButton2Click, RadioButton3Click, RadioButton4Click, RadioButton5Click можно удалять.
"Digital Networked Knight"
fail-gataullin

fail-gataullin (статус: Посетитель), 28 июня 2010, 16:31 [#15]:

Спасибо всем!!!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:52
Выполнено за 0.04 сек.