Вопрос № 123986: Здравствуйте уважаемые эксперты! У меня такая маленькая загагуленка с компонентом TEdit при вводе числа, к примеру, 1000000 автоматически должны проставляться пробелы 1 000 000, есть ли возможность обойтись без написания процедуры? Заранее спасибо!...Вопрос № 124016: Здравствуйте уважаемые эксперты!
У ментя такой вопрос: Как можно динамически создавать произвольный компонент...,например, в эдите пишу имя класса компонента - Tbutton и при нажатии на кнопку должен создаться соответствующий компонент.
Я иска...Вопрос № 124047: Здравствуйте!
Помогите написать программу для следующего задания:
Даны целые числа a1, a2,..., an, среди которых могут быть повторяющиеся. Составить новый массив из чисел, взятых по одному из каждой группы равных членов данной после...Вопрос № 124087: Здравствуйте Уважаемые!Допутим есть заполненый ListBox.По клику кнопки должно в цикле проверяться некоторое условие в строках и если оно выполняется строка должна окраситься в нужный мне цвет.Как это примерно должно выглядеть в коде?...
Вопрос № 123.986
Здравствуйте уважаемые эксперты! У меня такая маленькая загагуленка с компонентом TEdit при вводе числа, к примеру, 1000000 автоматически должны проставляться пробелы 1 000 000, есть ли возможность обойтись без написания процедуры? Заранее спасибо!
Отправлен: 20.02.2008, 09:37
Вопрос задал: Rashit (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, Rashit!
Можно, отчего же нельзя... :)
Только вместо компонента TEdit лучше будет использовать компонент TMaskEdit, у которого есть дополнительное поле EditMask, куда и вводится маска, по которой будут отображаться символы в этом компоненте.
Для примера, если у Вас максимальное число не будет превышать, допустим, 100 000 000, то в это поле нужно ввести "### ### ###".
Здесь символ "#" означает использование символов либо только цифры, либо знака (+-), а пробел так пробелом и будет. При этом в компоненте будет влазить только 9 цифр, по числу символов "#".
Посмотрите в хелпе для этого компонента, там еще есть много масок форматирования.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 20.02.2008, 09:55 Оценка за ответ: 5
Отвечает: Selya
Здравствуйте, Rashit!
Во-первых в TEdit можно вводить что угодно. Раз вы хотите вводить только цифры - используйте TMaskEdit. У него есто свойство EditMask, где вы настраиваете маску для ввода только чисел, там же можно настроить, чтобы число отображалось с "разделителями тысячей" (ThousandSeparator).
См. так же свойство EditText
Ответ отправил: Selya (статус: 8-ой класс)
Ответ отправлен: 20.02.2008, 11:33
Вопрос № 124.016
Здравствуйте уважаемые эксперты!
У ментя такой вопрос: Как можно динамически создавать произвольный компонент...,например, в эдите пишу имя класса компонента - Tbutton и при нажатии на кнопку должен создаться соответствующий компонент.
Я искал примеры, нашел....,но там требуется сначала зарегистрировать компонентый класс, вот так: RegisterClass, RegisterClasses, можно ли обойтись без этого или может во время создания приложения, в FormCreate зарегистрировать все компоненты установленные в Delphi, но тоже как :) ?
Мне это надо для того чтоб сделать программу для чтения dfm файлов, чтоб программа расставляла компоненты на форме...
А так пробовали:
http://delphiworld.narod.ru/base/dynamic_comps_creating.html ?
Ответ отправил: Drbear (статус: 7-ой класс)
Ответ отправлен: 20.02.2008, 12:40 Оценка за ответ: 5 Комментарий оценки: Проблема не решилась вашим ответом, но зато вы дали интересную ссылку...узнал про SmallTalk , спасибо
Компонент - на то и компонент, что его нельзя создать без регистрации.
Ответ отправил: Sosedov A.I. (статус: 1-ый класс)
Ответ отправлен: 20.02.2008, 16:45 Оценка за ответ: 3 Комментарий оценки: Я это знал...я спрашиваю как обойти это...оказывается есть пути, но все равно спасибо
Вопрос № 124.047
Здравствуйте!
Помогите написать программу для следующего задания:
Даны целые числа a1, a2,..., an, среди которых могут быть повторяющиеся. Составить новый массив из чисел, взятых по одному из каждой группы равных членов данной последовательности.
Заранее спосибо!
Отправлен: 20.02.2008, 15:59
Вопрос задал: Slim1210 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Boriss
Здравствуйте, Slim1210!
Посмотрите в приложении: это то, что нужно?
Приложение:
--------- Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор) Россия, Саранск Организация: Мордовский госуниверситет, Саранск Факультет Электронной Техники WWW:Программирование на Паскале ---- Ответ отправлен: 21.02.2008, 14:51
Вопрос № 124.087
Здравствуйте Уважаемые!Допутим есть заполненый ListBox.По клику кнопки должно в цикле проверяться некоторое условие в строках и если оно выполняется строка должна окраситься в нужный мне цвет.Как это примерно должно выглядеть в коде?
Отправлен: 20.02.2008, 18:58
Вопрос задал: Зотов.Г.А (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Drbear
Здравствуйте, Зотов.Г.А!
Предлагаю такой вариант (в приложении). На форме ListBox и Button.
При нажатии на кнопку стиль ListBox изменяется на lbOwnerDrawFixed (иначе ListBox не окрасится). В событии OnDrawItem проверяется условие и окрашиваются строки ListBox. При повторном нажатии на кнопку стиль ListBox восстанавливается в стандартный (окраска строк исчезает).
Приложение:
Ответ отправил: Drbear (статус: 7-ой класс)
Ответ отправлен: 20.02.2008, 19:52 Оценка за ответ: 4
Отвечает: Selya
Здравствуйте, Зотов.Г.А!
Обрабатывайте событие OnDrawItem. Свойство Style при этом должно быть lbOwnerDrawFixed
См.прил.
В справке Delphi и в Demos'ах ещё есть примеры.
Приложение:
Ответ отправил: Selya (статус: 8-ой класс)
Ответ отправлен: 20.02.2008, 21:00 Оценка за ответ: 3 Комментарий оценки: где я уже этот пример с чередованием цветов только не видел,ну хоть что-нибудь своё можно
Отвечает: Genia007
Здравствуйте, Зотов.Г.А!
Предлагаю проверенный код работает без проблем.
procedure TForm2.FormCreate(Sender: TObject);
begin
ListBox1.Style := lbOwnerDrawFixed;
end;
procedure TForm2.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with Control as TListbox do
begin
If Listbox1.Items.Strings[Index] = '55555' then {Проверка нужного условия}
begin
Canvas.Brush.Color := clred; {Задаём нужный цвет строки}
Canvas.Brush.Style := bsSolid;
end;
Rect.Right := Control.ClientWidth;
with Control as TListbox do
begin
Canvas.FillRect(Rect);
Canvas.Brush.Style :=bsClear;
Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top, Items[Index]);
end;
end;
end;
Ответ отправил: Genia007 (статус: 6-ой класс)
Ответ отправлен: 22.02.2008, 19:24 Оценка за ответ: 3 Комментарий оценки: я там вообще-то просил по клику кнопки простое условие выполнить, а вы мне опять про обработку ListBox1DrawItem