![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет! Есть форма. На ней несколько десятков Labelов. При клике мыши по Label он меняет цвет. При нажатии Button выделенные Labelы должны поменять позицию. Ну например Label43.Top:= Label43.Top+1; Это всё понятно, ну как узнать из кучи Labelов какие из них поменяли цвет, чтобы именно они передвигались при клике по Button. Вообщем объяснил как смог. Надеюсь на Вашу помощь.
|
|
#2
|
||||
|
||||
|
Код при нажатии на кнопку:
Код:
procedure TMyForm.ButtonClick(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ComponentCount - 1 do
if Components[i] is TLabel then
if TLabel(Components[i]).Font.Color = clRed then
begin
TLabel(Components[i]).Font.Color := clBlack;
TLabel(Components[i]).Top := TLabel(Components[i]).Top + 1;
end;
end; |
|
#3
|
|||
|
|||
|
Цитата:
Спасибо БОЛЬШОЕ. Ещё один вопросик. На форме есть компонент Image отображающий бланк документа формата А4. Я хочу сделать чтобы при выводе на печать Image.Enable:= false; и остались бы одни Labelы. Но при Form.Print; печатается только видимая часть формы. На каком компоненте можно разместить Labelы, чтобы печатался весь документ. |
|
#4
|
||||
|
||||
|
vmilyoshin, эксперементировали со свойтсвом формы "PrintScale"? Насколько я знаю, печатается только видимая на экране часть формы (если я неправ - не судите строго).
Из "родной" справки Delphi: Цитата:
Последний раз редактировалось Amgsys HQ, 17.11.2011 в 23:40. |
|
#5
|
|||
|
|||
|
Цитата:
Не помогло. То что не входит в видимую часть формы всёравно остаётся за кадром. |
|
#6
|
|||
|
|||
|
Придется печатать самому
![]() Собственно, создать битмап и с помощью TextOut вывести на него содержимое всех меток - не так и сложно. Только не забудь, что у принтера разрешение "немножко" больше, чем у монитора, соответсвенно, надо умножить все размеры и координаты на соотв. коэф. (ЗЫ. размер шрифта увеличивать не надо). |