Страница 2 из 2

Добавлено: 29 окт 2006, 00:08
Svoja4ok
Игорь Акопян, слушай, блин... у меня в делфях хелп урезаный... можешь, пожалуйста, привести примерчик смены значения лабел1 по нажатию кнопки1? соответсвенно из файла...

Добавлено: 29 окт 2006, 01:53
Naeel Maqsudov
Svoja4ok,
1. Установите себе нормальную систему с хелпом! Это обязательно.
2. В данном случае хелп ни при чем - все элементарно. Пусть P - это переменная, StringList1 - это список с загруженными в него строками.
В обработчике кнопки пишем всего 2 строки:

Label1.Caption:=StringList1.Strings[P];
P:=(P+1) mod StringList1.Count;

Переменнная P будет меняться "по кругу" вперед, возвращаясь к нулевой строке после прохождения последней.

Добавлено: 29 окт 2006, 02:13
Игорь Акопян
У меня на этой машине нет дельфей...
У TStringList должен быть метод LoadFromFile, с его помощью читаем из файла строки. Далее что-то типа

Код: Выделить всё

procedure NextStringButton(Sender: TObject);
begin
  Inc(iStrNum);
  MyLabel.Caption := MyStringList[iStrNum];
end;

procedure PrevStringButton(Sender: TObject);
begin
  Dec(iStrNum);
  MyLabel.Caption := MyStringList[iStrNum];
end;
упс... долго читал :)

Добавлено: 29 окт 2006, 02:27
Naeel Maqsudov
Ага :)
Деление по модулю - это старый - "с бородой" - прием. Не забывайте его.

(P-1) mod StringList1.Count;

естественно работает тоже по кругу, только назад.

Добавлено: 29 окт 2006, 12:02
Игорь Акопян
Naeel Maqsudov, не спорю, отличный приём, когда надо закруглить обход ;)