Форум: "Начинающим";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
ВнизПроблема с изменением св-в компонент в реалтайм. Найти похожие ветки
← →
AndreyBg (2008-08-20 15:36) [0]Возникла след-я проблема, не могу понять в чем ошибка.
В реалтайм создаю на формочке группу компонентов TLabel. Задаю нужные свойства, все нормально.
Затем пытаюсь изменить их капшион, а он не меняется.. ;( Подскажите, пожалуйста в чем может быть дело?
Код:for i := 1 to BarCodeColumn do
begin
for j := 1 to 10 do
begin
TDisp := TLabel.Create(FrmPrintBuff);
TDisp.Name := "TDisp" + IntToStr((j-1) + (i-1)*10);
TDisp.AutoSize := false;
TDisp.Parent := FrmPrintBuff;
TDisp.Height := 21;
TDisp.Width := 154;
TDisp.Top := 8 + (j-1) * 27;
TDisp.Left := 35 + 196 * (i - 1);
TDisp.Caption := "000000000000";
end;
end;
with dm do
begin
i:= 0;
dm.TmpDS.First;
while not dm.TmpDS.eof do
begin
TDisp := FrmPrintBuff.FindComponent("Disp"+inttostr(i)) as TLabel;
//Disp_Name := TmpDS.fbn("b_barcode").AsString;
TDisp.Caption := TmpDS.fbn("b_barcode").AsString;//Disp_Name; // Вот этого присвоения не происходит !!
FrmPrintBuff.Memo1.Lines.Add(TmpDS.fbn("b_barcode").AsString);
inc(i);
dm.TmpDS.Next;
end;
end;
FrmPrintBuff.ShowModal;
← →
Medbe}I{onok XML © (2008-08-20 15:39) [1]В цикл while не попадаешь
← →
brother © (2008-08-20 15:40) [2]> TmpDS.fbn("b_barcode").AsString
что это? где описано и как?
← →
Германн © (2008-08-20 15:42) [3]
> TDisp.Name := "TDisp" + IntToStr((j-1) + (i-1)*10);
> TDisp := FrmPrintBuff.FindComponent("Disp"+inttostr(i))
> as TLabel;
← →
AndreyBg (2008-08-20 15:43) [4]в цикл попадаю, проверял..
Закоментированная строка Disp_Name получает нужные значения!
← →
brother © (2008-08-20 15:44) [5]> TmpDS.fbn("b_barcode").AsString
как реализовано?
← →
AndreyBg (2008-08-20 15:45) [6]Германн, спасибо...
за день совсем уже ослеп.. =)
← →
Сергей М. © (2008-08-20 15:48) [7]
> Вот этого присвоения не происходит
С чего ты взял ?
Пробуй:TDisp.Caption := TmpDS.fbn("b_barcode").AsString;
FrmPrintBuff.Memo1.Lines.Add(TDisp.Caption);
← →
MsGuns © (2008-08-20 15:56) [8]А зачем для отображения табличных данных использовать лабели, если для этого существует "таблицевидные" компоненты ?
← →
Anatoly Podgoretsky © (2008-08-20 17:37) [9]Что бы таблоид построить
← →
MsGuns © (2008-08-20 17:41) [10]>Anatoly Podgoretsky © (20.08.08 17:37) [9]
>Что бы таблоид построить
Так эта.. можно и в обычном стрингриде зафигачить и бегущую строку, и моргание и черта в ступе
Зачем же каждый раз содавать тучу объектов и затем килять их ?
← →
AndreyBg (2008-08-21 09:30) [11]потому что так начальство захотело...
чтоб мол в уголке висела формочка поверх всех окон и показывала данные.
а не таблица, потому что размеры формы и положение зависят от количества данных, а оно переменно... ну зачем лишнее место занимать?
← →
AndreyBg (2008-08-21 09:32) [12]А еще подскажите, пожалуйста, как вот такой вот созданной кнопке можно обработчик назначить OnClick, например.
← →
Сергей М. © (2008-08-21 09:36) [13]
> как вот такой вот созданной кнопке
Какая еще кнопка ? Ты ж лейбл создаешь ?
> обработчик назначить
MyRunTimeCreatedObject.OnSomeEvent := [SomeObject.]SomeEventHandler;
← →
{RASkov} © (2008-08-21 09:39) [14]> [12] AndreyBg (21.08.08 09:32)
Так и назначай:Knopka.OnClick:=SovmestimyMetod;
← →
AndreyBg (2008-08-21 10:21) [15]на простое присвоиение получаю ошибку:
E2010 Incompatible types: "TNotifyEvent" and "procedure, untyped pointer or untyped parameter"
Присвоить естественно пытаюсь обычную процедуру:
procedure OnClickTBtn(sender: TObject);
begin
ShowMessage((sender as TButton).Name);
end;
← →
Сергей М. © (2008-08-21 10:42) [16]
> Присвоить естественно пытаюсь обычную процедуру
А надо не "обычную", а метод класса.
← →
AndreyBg (2008-08-21 10:44) [17]то есть мне теперь класс какой-то дополнительно создавать? =(
А никак нельзя без оного?
← →
Сергей М. © (2008-08-21 10:45) [18]
> мне теперь класс какой-то дополнительно создавать?
Не обязательно.
Можно использовать имеющийся, например, класс существующей формы.
← →
AndreyBg (2008-08-21 11:01) [19]А можно примерчик как это реализовать? Ну или ссылку, где почитать?
← →
Leonid Troyanovsky © (2008-08-21 11:05) [20]
> AndreyBg (21.08.08 10:44) [17]
> то есть мне теперь класс какой-то дополнительно создавать?
Если контролы создаются динамически, то проще перекрыть Click.
--
Regards, LVT.
← →
Сергей М. © (2008-08-21 11:06) [21]http://www.google.ru/search?q=Delphi+%D0%BA%D0%B0%D0%BA+%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B8%D1%82%D1%8C+%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA+%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F+%D0%B2+run-time&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a
← →
Amoeba © (2008-08-21 11:06) [22]Читать здесь:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342
← →
MsGuns © (2008-08-21 11:33) [23]>Leonid Troyanovsky © (21.08.08 11:05) [20]
>Если контролы создаются динамически, то проще перекрыть Click.
Может быть и правильнее с т.з. "классового" подхода, но не проще
Просто в любом имеющемся в текущей форме ПОДОБНОМ контроле определить обработчик, в котором написать код для "виртуального" контрола, а ссылку на него из имеющегося контрола удалить (или заменить на "свой"). Назначение же событию этого обработчика в рантайме занимает одну строку.
← →
Leonid Troyanovsky © (2008-08-21 13:44) [24]
> MsGuns © (21.08.08 11:33) [23]
> (или заменить на "свой"). Назначение же событию этого обработчика
> в рантайме занимает одну строку.
А при перекрытии - одно слово "override".
Какая разница, чего плодить: TLabel or TMyLabel.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.01 c