Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi и Lazarus


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 10910
∙ повысить рейтинг »
Орловский Дмитрий
Статус: Мастер-Эксперт
Рейтинг: 7020
∙ повысить рейтинг »
lamed
Статус: Академик
Рейтинг: 5225
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Delphi и Lazarus

Номер выпуска:1644
Дата выхода:12.05.2013, 16:00
Администратор рассылки:Киселёва Алёна aka Verena (Академик)
Подписчиков / экспертов:88 / 53
Вопросов / ответов:3 / 18

Консультация # 27744: Здравствуйте уважаемые эксперты! Проблема такая. Мне нужно что бы внутири моей программы по щелчку на button1 переменная i увеличиволась на единицу и при этом сохраняла свой результат. Заранее спасибки! ...


Консультация # 88044: Здравствуйте. Delphi 7. Как сделать так, что каждый раз при нажатии батона, число инкрементируется в лабеле? Батон можно нажимать до бесконечности. Стартовое число=0;...
Консультация # 25776: Помогите плиз. Использую юнит из приложения для поиска файлов по маске и диску. Область поиска целый диск. Происходит торомжение системы. Хотелось бы код с подобным принципом работы. Буду признателен за любую помощь....

Консультация # 27744:

Здравствуйте уважаемые эксперты!

Проблема такая. Мне нужно что бы внутири моей программы по щелчку на button1 переменная i увеличиволась на единицу и при этом сохраняла свой результат. Заранее спасибки!

Дата отправки: 15.10.2005, 17:44
Вопрос задал: NIKOLLAY
Всего ответов: 7
Страница онлайн-консультации »


Консультирует DAiMor:

Здравствуйте, NIKOLLAY!
тогда обьявляй переменную не в вызываемой процедуре а в самом моделе тогда эта переменная станет глобальной для этого модуля
смотри приложение

Приложение:

Консультировал: DAiMor
Дата отправки: 15.10.2005, 17:49
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Denisss:

Здравствуйте, NIKOLLAY!
Куда "сохраняла" результат?

Для увеличения переменной i на единицу используйте процедуру inc(i);

Если Вы используете эту переменную только в форме, опишите ее в разделе Private класса формы
TForm1 = class(TForm)
..
private
i: Integer;
..
end;


Если Вы хотите, чтобы переменная была доступна из всех модулей, то определите ее как глобальную переменную:
var
Form1: TForm1;
i: Integer;
..


Но не определяйте ее в обоих местах - это может привести к ошибкам

Консультировал: Denisss
Дата отправки: 15.10.2005, 18:06
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Вадим Исаев ака sir Henry (Старший модератор):

Здравствуйте, NIKOLLAY!
Сделайте глобальную переменную и работайте с ней. Пример см в приложении.

Приложение:

Консультировал: Вадим Исаев ака sir Henry (Старший модератор)
Дата отправки: 15.10.2005, 18:45
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Yадозuпп:

Здравствуйте, NIKOLLAY!
В дополнение ко всем ответам - можно не заводить новую переменную, а просто использовать TButton1.Tag. Это свойство позволяет хранить любые числовые значения, да и связь с TButton1 более чем очвидна - не ошибешься, как с глобальной переменной. Только увеличивать значение придется не инкрементом, а через TButton1.Tag := TButton1.Tag + 1

Консультировал: Yадозuпп
Дата отправки: 15.10.2005, 19:06
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Schmak (Практикант):

Здравствуйте, NIKOLLAY!
У каждого компонента есть незадествованная переменная Tag целого типа, её можно использовать в своих целях. Установите 0 в свойстве Tag кнопки Button1, а дав обработчике нажатия напишите:

procedure TForm1.Button1Click(Sender: TObject);
begin
button1.tag:=button1.tag+1;
end;

Тепрерь при нажатии на кнопку Tag будет увеличиваться на 1, при этом его значение будет доступно и из других процедур

Консультировал: Schmak (Практикант)
Дата отправки: 15.10.2005, 21:18
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Romodos:

Здравствуйте, NIKOLLAY!
Надо объявить глобальную переменную( там же где Form:Tform1}
var i:integer;

и писать inc(i) в событии Button1Click;

Консультировал: Romodos
Дата отправки: 16.10.2005, 09:14
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Ерёмин А.А. (Специалист):

Здравствуйте, NIKOLLAY!
Хм. Я немного не понял второй части вопроса - что значит "сохраняла свой результат" ? Пишем: Inc(i);. Переменная i увеличивается на единицу. Куда её сохранить-то нужно? В памяти она и сохраняется.

Консультировал: Ерёмин А.А. (Специалист)
Дата отправки: 16.10.2005, 10:12
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 88044:

Здравствуйте. Delphi 7. Как сделать так, что каждый раз при нажатии батона, число инкрементируется в лабеле? Батон можно нажимать до бесконечности. Стартовое число=0;

Дата отправки: 22.05.2007, 12:40
Вопрос задал: Rosmag
Всего ответов: 9
Страница онлайн-консультации »


Консультирует Rusland:

Здравствуйте, Rosmag!
См. приложение.

PS. Сначала присвоить 0 лейблу.

Приложение:

Консультировал: Rusland
Дата отправки: 22.05.2007, 12:46
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Архангельский Андрей Германови:

Здравствуйте, Rosmag!

Это просто - код в приложении

Приложение:

Консультировал: Архангельский Андрей Германови
Дата отправки: 22.05.2007, 12:49
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Владимир Коваленко:

Здравствуйте, Rosmag!
Примерно так. Label1.Caption присваиваем 0 и ...

Приложение:

Консультировал: Владимир Коваленко
Дата отправки: 22.05.2007, 12:51
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Gsa:

Здравствуйте, Rosmag!

Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума
"О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".

-~= Gh0stik =~-

Консультировал: Gsa
Дата отправки: 22.05.2007, 13:48
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Чрнавин Е. А.:

Здравствуйте, Rosmag!
В модуле в секции var объявляешь переменную x : Integer = 0;

в обработчике на батон делаешь инкремент:
procedure TForm.Button1Click(Sender: TObject);
begin
x := x + 1;
label.caption := inttostr(x);
end;
Бесконечности конечно не будет но кликать точно запаришься.

Консультировал: Чрнавин Е. А.
Дата отправки: 22.05.2007, 14:22
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Анна Игоревна:

Здравствуйте, Rosmag!
До бесконечности не получится по моему.
а так можно сделать следующим образом.
в начале Label.Caption := \'0\'; (это лучше сделать в конструкторе или в обработчике события создания формы FormCreate)
у меня это выглядет так:
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Caption:=\'0\';
end;

в обработчике события OnClick для кнопки Button пишем следующее
i:=StrToInt(Label1.Caption); //берем текст из Label и преобразуем его в целое число
inc(i);// прибавляем 1
Label1.Caption:=IntToStr(i) ; // записываем новое число
у меня это выгляжет так:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
i:=StrToInt(Label1.Caption);
inc(i);
Label1.Caption:=IntToStr(i) ;
end;
* удалены комментарии в неизвестной кодировке(edited by Ерёмин А.)

Консультировал: Анна Игоревна
Дата отправки: 22.05.2007, 14:46
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Виктор Пырлик:

Здравствуйте, Rosmag!
Если свойство Tag у лэйбы не занято:

procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Tag := Label1.Tag+1;
Label1.Caption := IntToStr(Label1.Tag);
end;
иначе
1. гобально (или в классе) обявляем целочисленную переменную val_lable:integer
а дальше...

procedure TForm1.FormCreate(Sender: TObject);
begin
val_lable:= 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
inc(val_lable);
Label1.Caption := IntToStr(val_lable);
end;

Консультировал: Виктор Пырлик
Дата отправки: 22.05.2007, 21:28
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Овчинников Николай Владиславов:

Здравствуйте, Rosmag!
Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума
"О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".
И совет - прежде чем ответить, старайтесь проверять код.

-~= Gh0stik =~-

Консультировал: Овчинников Николай Владиславов
Дата отправки: 23.05.2007, 10:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Elpher2006:

Здравствуйте, Rosmag!
procedure TForm1.Button1Click(Sender:TObject);
begin
Label1.Caption := IntToStr(StrToInt(Label1.Caption) + 1);
end;

Консультировал: Elpher2006
Дата отправки: 25.05.2007, 06:25
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 25776:

Помогите плиз. Использую юнит из приложения для поиска файлов по маске и диску. Область поиска целый диск. Происходит торомжение системы. Хотелось бы код с подобным принципом работы. Буду признателен за любую помощь.

Дата отправки: 03.09.2005, 21:03
Вопрос задал: CJ
Всего ответов: 2
Страница онлайн-консультации »


Консультирует John Freeman:

Здравствуйте, CJ!
Всё у тебя правильно, только ЗАЧЕМ ты всё это выводишь в лист , да ещё в процессе?!?!?! В этом и дело.
Выполни этот же код без визуализации - поймёшь
а так делай 2 вещи с визуализацией:
1) не используй списки с добавлением по одному, при большом количестве они ОЧЕНЬ тормозят везде
2) добавляй всё когда поиск уже закончен если возможно

Консультировал: John Freeman
Дата отправки: 03.09.2005, 21:19
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Вадим Исаев ака sir Henry (Старший модератор):

Здравствуйте, CJ!
Попробуйте задать поиск файлов в отдельном потоке.
Если Вы запускали виндовый поиск, то могли заметить, что там поиск по всем дискам тоже идет не очень быстро. :)
Про организацию потока можно почитать здесь:
delphiworld.narod.ru
www.delphimaster.ru

Консультировал: Вадим Исаев ака sir Henry (Старший модератор)
Дата отправки: 04.09.2005, 04:51
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное