{
Данный код изменяет стиль шрифта поля редактирования,
если оно выбрано. Может быть адаприрован для управления
шрифтами в других объектах.
Расположите на форме Edit(Edit1) и ListBox(ListBox1).
Добавьте следующие элементы (Items) к ListBox:
fsBold
fsItalic
fsUnderLine
fsStrikeOut
}procedure TForm1.ListBox1Click(Sender: TObject);
var
X: Integer;
type
TLookUpRec = record
Name: string;
Data: TFontStyle;
end;
const
LookUpTable: array[1..4] of TLookUpRec =
((Name: 'fsBold'; Data: fsBold),
(Name: 'fsItalic'; Data: fsItalic),
(Name: 'fsUnderline'; Data: fsUnderline),
(Name: 'fsStrikeOut'; Data: fsStrikeOut));
begin
X := ListBox1.ItemIndex;
Edit1.Text := ListBox1.Items[X];
Edit1.Font.Style := [LookUpTable[ListBox1.ItemIndex + 1].Data];
end;
Программный код на Delphi, предназначенный для управления стилями шрифта в поле редактирования (Edit1) и списке элементов (ListBox1). Когда пользователь выбирает элемент в списке, процедура ListBox1Click изменяет стиль шрифта поля редактирования соответствующим образом.
Вот как это работает:
Массив LookUpTable содержит предопределенные записи, которые сопоставляют имена элементов списка с соответствующими стилями шрифта.
Когда пользователь выбирает элемент в списке, процедура ListBox1Click активируется.
Эта процедура получает индекс выбранного элемента с помощью ListBox1.ItemIndex.
Затем она устанавливает текст поля редактирования (Edit1) в имя выбранного элемента из списка с помощью Edit1.Text := ListBox1.Items[X];.
Наконец, она применяет стиль шрифта, соответствующий выбранному элементу, установив Edit1.Font.Style в значение из LookUpTable.
Вот улучшенная версия кода с некоторыми предложениями:
procedureTForm1.ListBox1Click(Sender:TObject);varX:Integer;FontStyle:TFontStyle;beginX:=ListBox1.ItemIndex;// Получаем стиль шрифта, соответствующий выбранному элементуifX>=0andX<Length(LookUpTable)thenFontStyle:=LookUpTable[X+1].DataelseFontStyle:=[];Edit1.Text:=ListBox1.Items[X];Edit1.Font.Style:=FontStyle;end;constLookUpTable:array[1..4]ofTLookUpRec=((Name:'fsBold';Data:fsBold),(Name:'fsItalic';Data:fsItalic),(Name:'fsUnderline';Data:fsUnderline),(Name:'fsStrikeOut';Data:fsStrikeOut));
В улучшенной версии:
Я добавил переменную FontStyle для хранения стиля шрифта, соответствующего выбранному элементу.
В процедуре я использовал условный оператор if-then-else, чтобы обеспечить установку FontStyle только в том случае, если индекс выбранного элемента находится в пределах границ LookUpTable.
Я удалил ненужное присваивание Edit1.Text := Edit1.Items[X];, так как оно не изменяет ничего в этом контексте.
Эти изменения делают код более читаемым и поддерживаемым, но в целом оригинальный код работает корректно.
Код на примере позволяет управлять настройками шрифта поля редактирования, выбранного из списка ListBox, путем изменения стиля шрифта в зависимости от выбранной строки списка.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.