|
Вопрос # 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] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|