| 
| 
 | Вопрос # 4 976/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!Почему то в Labelы на 5 форме не выводятся строчки из файла
 Приложение:Переключить в обычный режим procedure TForm1.Button2Click(Sender: TObject);var F:TextFile; CHisloS, Name:String;   I:Integer;  Component:TComponent; beginOpenDialog1.Execute;AssignFile(F, OpenDialog1.FileName);Reset(F);ReadLn(F,ChisloS);I:=StrToInt(ChisloS);if I=8 thenForm5.Show;ReadLn(F,Name);Form5.Label16.Caption:=Name;For I:=1 to 8 doReadLn(F,Name);Component:=FindComponent('Form5.label'+IntToStr(I));(Component as TLabel).Caption:=Name; end;
|  |   Вопрос задал: Адмирал (статус: Посетитель)Вопрос отправлен: 28 января 2011, 15:53
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 6; последнее сообщение — 30 января 2011, 11:38; участников в обсуждении: 3. 
|   | Адмирал (статус: Посетитель), 28 января 2011, 16:00 [#1]:кстати ещё спрошу сразу, потаму что прийду наверное только завтра как в OpenDialog ограничить тип файлов, ну тоесть чтобы можно было выбрать только .txt например
 |  
|   | Вадим К (статус: Академик), 28 января 2011, 16:01 [#2]:проблема тут FindComponent('Form5.label'+IntToStr(I)); form5.label1 - так нельзя.
 нужно так
 form5.FindComponent('label'+IntToStr(I));
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Вадим К (статус: Академик), 28 января 2011, 16:03 [#3]:а что бы только текстовые файлы - это просто // Разрешено выбрать только .dpr и .pas файлы
 openDialog.Filter :=
 'Delphi project files|*.dpr|Delphi pascal files|*.pas';
 разрешить только текстовые файлы
 openDialog.Filter :=
 'Текстовые файлы|*.txt';
 либо в коде, либо в инспекторе объектов.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Адмирал (статус: Посетитель), 28 января 2011, 16:06 [#4]:отображается только последняя строчка из файла, причём в 9 Label   |  28 января 2011, 20:26: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А. 
|   | Адмирал (статус: Посетитель), 28 января 2011, 21:39 [#5]:что же делать? |  
|   | Шичко Игорь (статус: 9-ый класс), 30 января 2011, 11:38 [#6]: Цитата: 14.For I:=1 to 8 do15.ReadLn(F,Name);
 16.Component:=FindComponent('Form5.label'+IntToStr(I));
 17.(Component as TLabel).Caption:=Name;
 
 Так ведь в программе и задано чтобы записывалось в Label9.
 Цикл закончился на строке 15. После перебора от 1 до 8 значение I остается равным 9, поэтому в строках 16 и 17 идет определение и запись в компонент Label9.
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |