Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.07.2011, 10:20
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
Радость Нужна помощь с кодом

Доброго времени суток. Меня интересует реализация моей задачи. Допустим у меня есть кнопка и три картинки, мне нужно что бы при нажатии на кнопку картинка становились visible:=false и так при каждом нажатии на кнопку картинки по очереди становились visible:=false.
Как это можно реализовать?
Заранее спасибо)
Ответить с цитированием
  #2  
Старый 05.07.2011, 11:03
chainik chainik вне форума
Начинающий
 
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
По умолчанию это несложно

ЭТО НЕСЛОЖНО.
делаем глобальную переменную, в которой храним индекс картинки.
при каждом нажатии на кнопку индекс инкрементируем,
а чтобы он не вышел за границы- применяем функцию mod
Я этот трюк часто применяю Довольно удобно для пользователя
и экономит площадь экрана.

Код:
type
Tz=array[0..2] of record
                    CFNam,      //имя файла с картинкой
                    Cap:string; //заголовок кнопки
                    end;

const
Z:Tz=((CFnam:'Pictures1.bmp';Cap:'Картинка1'),
        (CFnam:'Pictures2.bmp';Cap:'Картинка2'),
        (CFnam:'Pictures3.bmp';Cap:'Картинка3'));

var
Index:integer;      //здесь хранится индекс картинки

procedure TForm1.Button1Click(Sender: TObject);
begin
Index:=(Index+1) mod Length(Z);
Button1.Caption:=Z[Index].Cap;
Image1.Picture.LoadFromFile(Z[Index].CFnam);
end;
Ответить с цитированием
  #3  
Старый 05.07.2011, 11:35
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
Подмигивание

Спасибо большое за код он мне пригодится). Но мне нужно именно чтоб они становились не видимыми. Когда последняя картинка станет Visible:=false то у меня запланировано действие.
Ответить с цитированием
  #4  
Старый 05.07.2011, 17:05
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Тут большой простор для фантазии. Если вам нужно случайным образом скрывать следующую картинку, а на форме кроме ваших картинок иных нет, то можно просто пробежаться по всем контролам формы и при нахождении нужного типа контрола в видимом состоянии скрывать его. Можно ориентироваться по имени картинки, если они однотипные, то можно искать контрол по маске имени и тоже скрывать по необходимости. Можно сделать массив из указателей на ваши картинки и работать с ним и т.д.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 07.07.2011, 08:12
Аватар для DrDharm
DrDharm DrDharm вне форума
Прохожий
 
Регистрация: 07.07.2011
Адрес: Cаратов
Сообщения: 7
Версия Delphi: 7
Репутация: 10
По умолчанию

Ну, вот говорят: поздно рыть колодец, когда хочется пить...только вчера скачал Дельфи, и...понял что за пару дней не разберусь...

Поскольку, проблема аналогична, не рискнул создавать новую тему. помогите, плиз, с кодом : необходимо сделать программку для рассчета плотности двухкомпонентной смеси с содержанием компонентов 0-100% с шагом 1, для температур -40...40 с шагом 1 , по формуле

P=100/(d1/p1+(100-d1)/p2)/1000;

где d1 - доля 1-го компонента, P1,P2 - массивы по 81 числу(заданные плотности для текущей температуры)...

т.е. для температуры -40, производится 101 рассчет для 0-100% содержания, затем для -39 и т.д.

если возможно, как-то сделать вывод результатов в виде таблицы...
__________________
BENEFICIUM ACCIPERE LIBERTATEM EST VENDERE
Ответить с цитированием
  #6  
Старый 07.07.2011, 09:37
Аватар для Developer
Developer Developer вне форума
Прохожий
 
Регистрация: 01.07.2011
Адрес: Украина
Сообщения: 27
Версия Delphi: 7, 2009
Репутация: 75
По умолчанию

Можете опесать детальдно формулу, а именно что это за массивы P1, P2 и откуда они берутся? Желательно навести пример пару расчётов.
Во всяком случае я создал проект в Delphi7 которые поможет решить вашу задачу (скачать). В место i*j вам необходимо вставить вашу формулу.
Ответить с цитированием
  #7  
Старый 07.07.2011, 12:03
chainik chainik вне форума
Начинающий
 
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
По умолчанию

За 2 дня не осилишь. Точно говорю.
Да и не в тему по-моему...

Я тут накропал кое- что
Надеюсь поможет
exe в прищепку не влез. Откомпилируешь сам (Delphi7)

Обработку ошибок не делал!
При неверном вводе повиснет!

А еще смущает формула. Там деление на 1000- делить все выражение или только то что в скобках?
Как я понимаю это переводной коэфф плотности (но тебе виднее)
Короче внимательно посмотри скобки и внеси в мой исходник.
Вложения
Тип файла: zip Tmp.zip (11.5 Кбайт, 2 просмотров)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:32.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025