Страница 1 из 1

Delphi использование listbox

Добавлено: 16 апр 2009, 13:05
Даша:)
Помогите пожалуйста решить задачку, заранее очень благодарна!!!

Создайте приложение, при выполнении которого на экране появляется окно формы со списком (ListBox).
Список должен содержать четыре строки с текстами: Красный, Желтый, Зеленый, Синий.
Затем, после выделения одной из строк списка и последующего щелчка левой кнопкой "мыши", когда указатель "мыши" находится в области формы, форма должна изменить свой цвет на цвет, указанный в выделенной строке.

Сделала, только цвет меняет только на красный, на другие не хочет :( :( :(
ПОЖАЛУЙСТА!!!!

Re: Delphi использование listbox

Добавлено: 16 апр 2009, 13:45
demon416
Выложи код, посмотрим ))

Re: Delphi использование listbox

Добавлено: 16 апр 2009, 14:16
Naeel Maqsudov
В модуле формы, а точнее в определение класса формы добавьте поле

FSelectedColor:TColor

На событие OnClick списка присваивайте
FSelectedColor:=<цвет в зависимости от выбранного элемента>

А на событие OnClick у фомы делвется лишь
Color:=FSelectedColor;

Все.

Re: Delphi использование listbox

Добавлено: 17 апр 2009, 14:33
Даша:)
Вот что написала я :
[syntax=delphi]
unit listbox1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;

procedure FormCreate(Sender: TObject);
procedure FormClick(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormClick(Sender: TObject);

begin
if ListBox1.Items.Strings[0]='Красный' then
begin
Color:=clRed
end
else if ListBox1.Items.Strings[1]='Желтый' then
begin
Color:=clYellow
end
else if ListBox1.Items.Strings[2]='Зеленый' then
begin
Color:=clGreen
end
else if ListBox1.Items.Strings[3]='Синий' then
begin
Color:=clBlue
end
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.AddItem('Красный',ListBox1);
ListBox1.AddItem('Желтый',ListBox1);
ListBox1.AddItem('Зеленый',ListBox1);
ListBox1.AddItem('Синий',ListBox1);
End.
[/syntax]

Re: Delphi использование listbox

Добавлено: 17 апр 2009, 15:19
demon416
Разбор полетов ниже
Даша :) писал(а):Вот что написала я :
unit listbox1; //данный код врятли скомпилировался бы изза конфликта имен
//крайне нежелательно использовать в качестве имени программы название стандартного компонента


procedure TForm1.FormClick(Sender: TObject);

begin
if ListBox1.Items.Strings[0]='Красный' then //крайне интересное условие (если текст !!! в первой строчке listbox-а 'Красный', а это верно всегда соответсвенно все следующие проверки пропускаются
//правильно это условие выглядело бы так
if listbox1.selected(0) then


begin//одну строчку заключать в блок как правило не нужно
Color:=clRed //тут и далее отсутствуют ';' кроме того крайне желательно указывать свойство чегобудет меняться например так form1.color
end

Re: Delphi использование listbox

Добавлено: 19 апр 2009, 09:30
Даша:)
Спасибо всем огромное!!!! :) Все работает! Это самый лучший сайт и самые лучшие программисты!!!!!!