| 
| 
 | Вопрос # 2 273/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты! Можно сделать так, что бы на форме разместить друг на друга компоненты TImage и при нажатии на баттон их меняло? Нажал на баттон - оно тебе Image2 открыло, еще раз нажел - Image3 и т. д..? Спасибо. 
|  |   Вопрос задал: Хитманчан (статус: Посетитель)Вопрос отправлен: 7 января 2009, 15:14
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Ученый Здравствуйте, Хитманчан! Предложу один из способов решения....Объявляем глобальную переменную  a:integer;
 в FormCreate пишем  a:=1;
 а в Button1Click пишем:
 a:=a+1;
 TImage(FindComponent('Image'+IntToStr(a))).Visible:=true;
 TImage(FindComponent('Image'+IntToStr(a-1))).Visible:=false;
 Ну само разумеющееся Свойство Visible у всех Image, кроме первого должно быть равно False....
 
 
 Удачи!!!!
 
|  | Ответ отправил: Ученый (статус: 8-ой класс)Время отправки: 7 января 2009, 15:58
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 25; последнее сообщение — 9 января 2009, 19:59; участников в обсуждении: 5. Страницы: [1] [2] [Следующая »]  
|   | min@y™ (статус: Доктор наук), 7 января 2009, 15:28 [#1]: Цитата: ........Здравствуйте, уважаемые эксперты! Можно сделать так, что бы
 
 Да! Даже у TImage есть свойство Visible, прикинь!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Ученый (статус: 8-ой класс), 7 января 2009, 15:32 [#2]:Способов решения МОРЕ. Но самое легкое юзать Visible... |  
|   | Ученый (статус: 8-ой класс), 7 января 2009, 16:06 [#3]:Да забыл сказать....когда Image'ы закончатся, вылетит ошибка.... Так что учитывайте этот факт и соответственно пропишите условие if a={номер последнего Image} Then a=0; |  
|   | Хитманчан (статус: Посетитель), 7 января 2009, 16:10 [#4]:Ученый, большое спасибо! min@y™, и вам спасибо...
 |  
|   | Хитманчан (статус: Посетитель), 7 января 2009, 16:51 [#5]:Ученый, не подскажите мне еще немного, как можно сделать так, что бы на баттон 2 на первую картинку возвращало... ну если по логике должно там быть a:=1;
 TImage(FindComponent('Image'+IntToStr(a))).Visible:=true;
 
 В вот как .Visible:=false; к текущей картинки применить, не подскажите?
 |  
|   | Ученый (статус: 8-ой класс), 7 января 2009, 16:59 [#6]:Элементарно: на клике второго батона пишем TImage(FindComponent('Image'+IntToStr(a))).Visible:=False;
 a:=1;
 TImage(FindComponent('Image'+IntToStr(a))).Visible:=true;
 |  
|   | Хитманчан (статус: Посетитель), 7 января 2009, 17:07 [#7]:Точно... спасибо - не сообразил) |  
|   | Хитманчан (статус: Посетитель), 8 января 2009, 10:46 [#8]:А можно еще такое спросить - а вот как сделать, что бы при определенных значениях a баттон был недоступным, ну типа при a=1 Button2.Enabled:=false? 
 Пробую через if - then - else - не хочет - не там пишу может? Не подскажите, как это правильноможно сделать? Спасибо....
 |  
|   | Вадим К (статус: Академик), 8 января 2009, 10:59 [#9]:ну вот если бы написали, что там пишете.... может и помогли бы.... Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Ученый (статус: 8-ой класс), 8 января 2009, 11:31 [#10]:Не совсем понятен вопрос, но рискну предположить что Button2 должен быть недоступен до тех пор, пока не кончаться Imagе. В таком случае все просто. В FormCreate пишем Button2.Enabled:=false; В Button1Click пишем if a={Номер последнего image} Then Button2.Enabled:=True;  //тоесть когда появится последний image вторая кнопка станет доступной. Можно еще дописать строку
 if a={Номер последнего image} Then Button1.Enabled:=false; // тогда при появлении последнего Image первая кнопка станет недоступной...
 |  
|   | Хитманчан (статус: Посетитель), 8 января 2009, 11:35 [#11]:Большое спасибо.. разобрался! |  
|   | Пупкин В.В. (статус: 1-ый класс), 8 января 2009, 11:36 [#12]:удобнее использовать TImageList |  
|   | Ученый (статус: 8-ой класс), 8 января 2009, 11:44 [#13]:Кому как.... я бы вообще мог сделат все это и спомощью всего лишь одного image... |  
|   | Пупкин В.В. (статус: 1-ый класс), 8 января 2009, 11:47 [#14]:=) можно вообще без image обойтись |  
|   | Хитманчан (статус: Посетитель), 9 января 2009, 18:04 [#15]:Пупкин В.В., не знаю - Вам может и удобнее, но я обращаться с TImageList не умею... хотя с радостью бы научился... Ну вот у меня какая проблема есть - все работает идеально - но 1 неприятный момент есть - думает долго что-то) Если 2 раза подряд на кнопку нажать тока 1 раз сменит картинку) Может можно сделать как-то, что бы стабильно было - раз нажал - раз переключило?) Ученый, Вы говорили есть море вариантов, не могли бы Вы посоветовать еще какой-то, если у Вас время конечно будет! Был бы признателен) Спасибо!
 |  
|   | Вадим К (статус: Академик), 9 января 2009, 18:06 [#16]:Неужели вы так быстро на кнопку жмете? выложите сорцы, почитаем, покорректируем... Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Хитманчан (статус: Посетитель), 9 января 2009, 18:31 [#17]:Вадим К, ну скажем так - успеваю углядеть, что это еще не та страница, которая мне нужна, и нажать на кнопку следущая страница - и не меняет еще) Вот код проги (не знаю. как его скрывать... вылажу текстом... если что сорри): 
 unit Unit1;
 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls, PNGButton;
 
 type
 TForm1 = class(TForm)
 Image1: TImage;
 Image2: TImage;
 Image3: TImage;
 Image4: TImage;
 Image5: TImage;
 Image6: TImage;
 Image7: TImage;
 Image8: TImage;
 Image9: TImage;
 Image10: TImage;
 Image11: TImage;
 Image12: TImage;
 Image13: TImage;
 Image14: TImage;
 Image15: TImage;
 Image16: TImage;
 Image17: TImage;
 Image18: TImage;
 Image19: TImage;
 Image20: TImage;
 Image21: TImage;
 Image22: TImage;
 Image23: TImage;
 Image24: TImage;
 Image25: TImage;
 Image26: TImage;
 Image27: TImage;
 Image28: TImage;
 Image29: TImage;
 Image30: TImage;
 Image31: TImage;
 Image32: TImage;
 Image33: TImage;
 Image34: TImage;
 Image35: TImage;
 Image36: TImage;
 Image37: TImage;
 Image38: TImage;
 Image39: TImage;
 Image40: TImage;
 Image41: TImage;
 Image42: TImage;
 Image43: TImage;
 Image44: TImage;
 Image45: TImage;
 Image46: TImage;
 Image47: TImage;
 Image48: TImage;
 Image49: TImage;
 Image50: TImage;
 Image51: TImage;
 Image52: TImage;
 Image53: TImage;
 Image54: TImage;
 Image55: TImage;
 Image56: TImage;
 Image57: TImage;
 Image58: TImage;
 Image59: TImage;
 Image60: TImage;
 Image61: TImage;
 Image62: TImage;
 Image63: TImage;
 Image64: TImage;
 Image65: TImage;
 Image66: TImage;
 Image67: TImage;
 Image68: TImage;
 Image69: TImage;
 Image70: TImage;
 Image71: TImage;
 Image72: TImage;
 Image73: TImage;
 PNGButton4: TPNGButton;
 PNGButton5: TPNGButton;
 PNGButton6: TPNGButton;
 Image74: TImage;
 procedure FormCreate(Sender: TObject);
 procedure PNGButton4Click(Sender: TObject);
 procedure PNGButton5Click(Sender: TObject);
 procedure PNGButton6Click(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
 
 var
 Form1: TForm1;
 
 a:integer;
 implementation
 
 {$R *.dfm}
 
 procedure TForm1.FormCreate(Sender: TObject);
 begin
 Position:=poDesktopCenter;
 VertScrollBar.Visible:=False;
 HorzScrollBar.Visible:=False;
 Form1.DoubleBuffered:=true;
 a:=1;
 PNGButton4.Enabled:=false;
 PNGButton5.Enabled:=false;
 end;
 
 procedure TForm1.PNGButton4Click(Sender: TObject);
 begin
 
 a:=a-1;
 TImage(FindComponent('Image'+IntToStr(a))).Visible:=true;
 TImage(FindComponent('Image'+IntToStr(a+1))).Visible:=false;
 if a=1 then PNGButton4.Enabled:=false;
 if a=1 then PNGButton5.Enabled:=false;
 PNGButton5.Enabled:=true;
 PNGButton6.Enabled:=true;
 end;
 
 procedure TForm1.PNGButton5Click(Sender: TObject);
 begin
 TImage(FindComponent('Image'+IntToStr(a))).Visible:=False;
 a:=1;
 TImage(FindComponent('Image'+IntToStr(a))).Visible:=true;
 PNGButton5.Enabled:=false;
 PNGButton6.Enabled:=true;
 PNGButton4.Enabled:=false;
 end;
 
 procedure TForm1.PNGButton6Click(Sender: TObject);
 begin
 a:=a+1;
 TImage(FindComponent('Image'+IntToStr(a))).Visible:=true;
 TImage(FindComponent('Image'+IntToStr(a-1))).Visible:=false;
 if a=73 then PNGButton6.Enabled:=false;
 PNGButton5.Enabled:=true;
 PNGButton4.Enabled:=true;
 end;
 
 end.
 |  
|   | Вадим К (статус: Академик), 9 января 2009, 19:11 [#18]:о ужас. 74 Image на форме... вы в своем уме? а не думали, почему программа так медленногрузиться, почему exe файл так много весит? для осуществления задачи надо всего один Image и всё.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Хитманчан (статус: Посетитель), 9 января 2009, 19:21 [#19]:Не ну размер проги меня не волнует - де-то 20 метров она весит - если учесть что вес всех картинко где-то 19) Мне просто важно, что бы все картинки в проге были, а не отдельно от нее) |  
|   | Ученый (статус: 8-ой класс), 9 января 2009, 19:26 [#20]:Дауж...размеры впечатляют..... Но Вадим безусловно прав, здесь нужен всего один image... |  Страницы: [1] [2] [Следующая »]  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |