1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 167

Form1.Components[k] не видит TEdit

17.10.2017, 21:19. Показов 5255. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хотел очистить все Edit на форме от Text. Но по какой-то причине то, что работает с TLabel не работает с TEdit
Bcgjkmpe. ShowMessage('1'); для проверки условия и ничего не выдает.
Почему такое может быть? На машине есть установленный ememcadero starter он может такое сделать(заменить библиотеки и т.п.)?
Вот код который использую
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
  k:integer;
begin
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('Select * from tink');
SQLQuery1.Open;
SQLQuery1.First;
k:=1;
For i:=0 to  SQLQuery1.RecordCount do begin
      if k<9 then begin
       if Form1.Components[k] is TLabel then (Form1.Components[k] as TLabel).Caption := SQLQuery1.Fields[0].AsString;
       if Form1.Components[k] is Tlabel then ShowMessage('1');
         //(Form1.Components[k] as TEdit).Clear;
        SQLQuery1.Next;
        k:=k+1;
        ShowMessage(IntToStr(k));
        end;
       end;
SQLQuery1.Close;
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2017, 21:19
Ответы с готовыми решениями:

Метод Main не видит Form1
Нашел одну программку, она работает. Скопировал код к себе,чтобы местами код,а он выдает ошибку using System; using...

ActiveX Control: Form1.Show bvModal if(Form1.Text1.Text <> '') then UserControl.Text2.Text = Form1.Text1.Text
Имеется проект ActiveX Control, в нем: Form1(имеет Text1, Button1), UserControl1 (имеет Text2, Button2). По нажатию на Button2 открывается...

Почему на строку word=form1.pattern.value IE ругается: form1-определение отсутствует?
Почему на строку word=form1.pattern.value IE ругается: form1-определение отсутствует? pattern- это имя текстового поля. Но при...

30
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 167
18.10.2017, 00:19  [ТС]
Студворк — интернет-сервис помощи студентам
В каком виде лучше Вам базу кинуть? Я не работал еще толком в MySQL не могу выбрать, что лучше.
Там всего 1 таблица. Я только-только начал заниматься lazarus. Вот скриншот это таблицы.
Миниатюры
Form1.Components[k] не видит TEdit  
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
18.10.2017, 00:38
Цитата Сообщение от hiddenRaum Посмотреть сообщение
Хотел этим кодом очистить Edit.Text (удобно когда программируешь и видишь названия элементов, а когда программ работает, то они уже мешают). Но этот код не работает. Для Label вроде работает (с некоторыми оговорками)
Когда обрабатываешь OnCreate, надо быть очень осторожным, потому что в этот момент у компонентов формы некоторые качества отличаются от того, когда программа работает. Например, визуальную их сторону нельзя трогать (грубо говоря).

То, что Вы хотите сделать сработает только на OnShow

Добавлено через 3 минуты
Цитата Сообщение от hiddenRaum Посмотреть сообщение
В каком виде лучше Вам базу кинуть?
как файл. Как он у Вас называется tinkoff
0
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 167
18.10.2017, 00:52  [ТС]
Ответ про OnShow не обрадовал, но хотя бы понятен.

Вот файлы базы и таблиц. Скопировать не вышло, так как сервер не дает доступа к файлам. ругнулось и не дало сделать архив для отправки. Там лежат несколько файлов и я не знаю сможете ли вы их потом использовать. чтоб они заработали.
Прикладываю выгрузки из phpmyadmin у него есть средства выгрузки и загрузки. Мне кажется так точно выйдет импортировать базу.
0
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 167
18.10.2017, 00:54  [ТС]
Не пиркрепились видимо формат не тот. Вторая попытка
Вложения
Тип файла: zip Desktop.zip (1.7 Кб, 4 просмотров)
0
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 167
18.10.2017, 01:01  [ТС]
Перенес код на OnShow - все равно не работает

Добавлено через 3 минуты
Использую кнопку для выполнения кода на уже созданной и загруженной форме. Все равно не срабатывает.
Так что дело как минимум не только в том, что форма еще не до создалась.
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
18.10.2017, 01:17
Цитата Сообщение от hiddenRaum Посмотреть сообщение
Использую кнопку для выполнения кода на уже созданной и загруженной форме. Все равно не срабатывает.
Я открыл Ваш проект, перенес код в OnShow - у меня работает. Что-то Вы делаете не так
0
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 167
18.10.2017, 11:26  [ТС]
А что я могу делать не так?

Добавлено через 7 минут
У меня 64-bit windows и все остальное установлено 64 бита.
Виндовс русскоязычная, но интерфейс я выбрал на английском языке
Может lazarus-у есть разница, где запускаться на Вашей машине или на моей, но код ведь одинаковый.

Добавлено через 2 часа 36 минут
Создал новый проект. накидал элементы и запустил на компиляцию. Выдает ошибку:
External:SIGS EGV

Хоть Вы и пытаетесь меня уговорить, что Lazarus это хорошо, но я все больше начинаю думать, что это не так.

Добавлено через 1 час 10 минут
Удалил Rad studio, переустановли Lazarus. Лучше не стало. Теперь еще добавились "странности" с SQl компонентами. Ругаются на то что запрещены циклические запросы.
Components так и не заработал. Пойду посмотрю в сторону С#
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33474 / 21573 / 8249
Регистрация: 22.10.2011
Сообщений: 37,029
Записей в блоге: 12
18.10.2017, 11:37
Цитата Сообщение от hiddenRaum Посмотреть сообщение
Пойду посмотрю в сторону С#
Жду вопросов в ветке по Шарпу: "Ааааа!!!!111... Ничего не работает, переустановил Windows - стало еще хуже"

"Нечего на зеркало пенять..." (С)
1
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 167
18.10.2017, 11:41  [ТС]
ок...
0
602 / 550 / 210
Регистрация: 24.01.2012
Сообщений: 1,352
18.10.2017, 12:07
Если вместо этого куска кода
Pascal
1
2
3
4
5
6
7
8
9
10
k:=1;
while not SQLQuery1.EOF do begin
       if Components[k] is TLabel then (Components[k] as TLabel).Caption := SQLQuery1.FieldByName('Que').AsString;
       //if Components[k] is TEdit then ShowMessage('1');
       if Components[k] is Tedit then ShowMessage('1');
         //(Form1.Components[k] as TEdit).Clear;
        SQLQuery1.Next;
        k:=k+1;
        //ShowMessage(IntToStr(k));
        end;
вставить этот
Pascal
1
2
3
4
5
6
7
for k:=0 to componentcount-1 do begin
  if (Components[k] is TLabel) and not SQLQuery1.EOF  then begin
    (Components[k] as TLabel).Caption := SQLQuery1.FieldByName('Que').AsString;
    SQLQuery1.Next;
  end;
  if Components[k] is Tedit then (Components[k] as TEdit).text:='';
end;
то должно хоть как-то заработать
1
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 167
18.10.2017, 12:38  [ТС]
Да, этот код сработал
Но почему надо писать так не понятно .. мне такие финты не нравятся
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.10.2017, 12:38

Как сделать чтобы окна Form1 и Form1(Design) открывались автоматически?
Как сделать чтобы окна Form1 и Form1(Design) открывались автоматически? В Visual Studio 2010.

Чем отличается Load Form1 от Form1.Visible = true?
ToolBox размещена на основной форме (Form1). На MouseDown подвешено открытие формы Form2 (Form2.Show vbModal), после закрытия которой...

Через Form1 открывают Form2 там открывается Form3 которая меняет данные в Form1. Но они не меняются
В первой форме Main по нажатию кнопки вызываю другую форму private void Button_AddVetrina(object sender, EventArgs e) { ...

Класс Form1 и экземпляр класса Form1. Путаница
Всем привет! Поиском подобной темы не нашел. Создавая любой Windows Forms-проект на VB.NET, по умолчанию создается класс Form1. При...

Как связаны Form1.cs и Form1.Designer.cs?
При создании проекта приложение Windows Forms,у нас имеется 4 вкладки: -1) Program.cs-точка входа для приложения -2) Form1.cs -3)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Опции темы

Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru