Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
13th
Янв
Как лучше оптимизировать код?
Posted by Chas under Delphi
Есть довольно некрасивый код, потому что вовсю используется копипаст. Очень хотелось бы узнать как можно было бы автоматизировать этот процесс.
А вот сам кусочек кода для оптимизации:
procedure TForm2.ProgramLabel1MouseEnter(Send er: TObject);
begin
ProgramLabel1.Font.Style:=[fsBold];
end;
procedure TForm2.ProgramLabel1MouseLeave(Send er: TObject);
begin
ProgramLabel1.Font.Style:=[];
end;
procedure TForm2.ProgramLabel2MouseEnter(Send er: TObject);
begin
ProgramLabel2.Font.Style:=[fsBold];
end;
procedure TForm2.ProgramLabel2MouseLeave(Send er: TObject);
begin
ProgramLabel2.Font.Style:=[];
end;
procedure TForm2.ProgramLabel3MouseEnter(Send er: TObject);
begin
ProgramLabel3.Font.Style:=[fsBold];
end;
procedure TForm2.ProgramLabel3MouseLeave(Send er: TObject);
begin
ProgramLabel3.Font.Style:=[];
end;
Пепел Феникса
назначить всем лейблам один обработчик, а доступ к лейблу вызвавшему событие получать доступ через Sender.
пример
(Sender as TLabel).Font.Style:=[fsBold];
А вот похожий код который не получается оптимизировать:
procedure TForm2.ProgramLabel1Click(Sender: TObject);
begin
NotebookPrograms1.PageIndex:=2;
end;
procedure TForm2.ProgramLabel2Click(Sender: TObject);
begin
NotebookPrograms1.PageIndex:=3;
end;
procedure TForm2.ProgramLabel3Click(Sender: TObject);
begin
NotebookPrograms1.PageIndex:=4;
end;
procedure TForm2.ProgramLabel4Click(Sender: TObject);
begin
NotebookPrograms1.PageIndex:=5;
end;
veniside
NotebookPrograms1.PageIndex := (Sender as TLabel).Tag;
kettanaito
Или как вариант создай свою функцию/процедуру. На случай если в качестве Sender не всегда бывает TLabel.
procedure TForm2.SetNoteBookIndex(Index:Integer);
begin
NotebookPrograms1.PageIndex:=Index;
end;
procedure TForm2.ProgramLabel9Click(Sender: TObject);
begin
SetNotebookIndex(10);
end;
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)