Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.16;
Скачать: CL | DM;

Вниз

Помогите решить проблему!!!!!!!!   Найти похожие ветки 

 
Andy BitOff ©   (2002-09-05 10:31) [0]

Здравствуйте.
Подскажите пожалуйста как реализовать следующую задачу. Есть куча страниц (TabControl), на каждой странице несколько лабелов (Label) и эдитов (Edit), сколько и какие у них имена не известно. Надо прочитать текст из всех эдитов. Я пытаюсь сделать так:

var
p,i:integer;
s:string;
Tn:TcomponentName;
begin
p:=pc.ActivePageIndex; //активная страница
//проверить надо все контролы
for i:=0 to pc.Pages[p].ControlCount-1 do
begin
//если контрол лабел, то нам не надо,
//а все остальные эдиты
if pc.Pages[p].Controls[i].ClassType <> TLabel then
begin
{А здесь мы можем получить либо стринг с именем
контрола, либо TComponentName его же, НО ЧТО С
ЭТИМ ДЕЛАТЬ и как получить текст из этого контрола??? }
s:=pc.Pages[p].Controls[i].GetNamePath;
Tn:=pc.Pages[p].Controls[i].Name;
?????????????????????
end;
end;
end;

Подскажите пожалуйста. Может Вы предложите свой вариант решения этой задачи.


 
lenin ©   (2002-09-05 10:37) [1]

if (Controls[i] is TEdit) then
Text:=(Controls[0] as TEdit).Text;


 
Петров Денис   (2002-09-05 10:46) [2]

Все хорошо до строки "if pc.Pages[p].Controls[i].ClassType <> TLabel then".
Если уж точно анализируются TEdit"ы, то лучше написать так:
if pc.Pages[p].Controls[i].ClassType = TEdit then
(а то мало ли, вдруг на TabSheet появится какой-нибудь TImage, и все). А добраться до свойства Text можно так:

(pc.Pages[p].Controls[i] as TEdit).Text


 
lenin ©   (2002-09-05 10:49) [3]

Я немного ошибся правильнее будет так:
if (pc.Pages[p].Controls[i] is TEdit) then
Text:=(pc.Pages[p].Controls[i] as TEdit).Text;



 
Andy BitOff ©   (2002-09-05 12:59) [4]

Все дело в том, что я уверен, что там ничего другого не будет. Но текст надо прочитать не только из Edit"ов но и из Memo и Combobox. Как это сделать в одном цикле


 
Andy BitOff ©   (2002-09-05 14:13) [5]

Всплываем.


 
Eugene ©   (2002-09-05 14:23) [6]

высылай на мыло процедуру, исправлю и пришлю обратно


 
Guerrillero Che ©   (2002-09-05 14:37) [7]

в чем проблема то ?
добавь еще пару условий, вида
if (pc.Pages[p] is TMemo) then Text:=(pc.Pages[p].Controls[i] as TMemo).Lines.Text;


 
Andy BitOff ©   (2002-09-05 22:34) [8]

Да я так и сделал, всмысле добавил, но думал может через and или or.



Страницы: 1 вся ветка

Текущий архив: 2002.09.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
14-50960
paul_shmakov
2002-08-21 16:21
2002.09.16
Предложение к Merlin по работе с архивами форумов


3-50649
agrig
2002-08-26 16:10
2002.09.16
Как установить LANGDRIVER для драйвера PARADOX программно?


8-50874
max2057
2002-05-16 16:12
2002.09.16
Где взять библиотеки для разгребания содеерж-го MIDI


1-50802
Goliaf
2002-09-03 17:08
2002.09.16
Опять трэй .


1-50678
Mazenrat
2002-09-04 18:33
2002.09.16
Переворот TrackBar.