Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2009, 19:40   #1
Antyan-screammer
 
Регистрация: 28.01.2009
Сообщений: 9
Вопрос Помощь с List Box Delphi

объясните как сделать что бы кликая на строку в List Box что то происходило.
Antyan-screammer вне форума Ответить с цитированием
Старый 16.08.2009, 20:02   #2
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Для этого есть события (Закладка Events в Object Inspector).
В твоем случае событие OnClick.
Пример:
Код:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
  ShowMessage('Click!');
end;
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 16.08.2009, 20:03   #3
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Daramant опередил ^_^

Создавай событие OnMouseDown

Один счелчек по ЛистБоксу:
Код:
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 ShowMessage('Это наш пример ^_^');
end;
Два счелчка после которых будет действ:

Код:
...

 private
  function Clicks(chto,nachto:integer): boolean;

...

function TForm1.Clicks(chto,nachto:integer): boolean;
begin
 if Frac(chto/nachto)<>0 then
  begin
    result:=false;
  end
 else
  begin
    result:=true;
  end;
end;


procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
i:=i+1;
if Clicks(i,2))=false then exit;
showmessage('Вы нажали два раза по листбоксу!');
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
 i:=0;
end;
zotox вне форума Ответить с цитированием
Старый 17.08.2009, 13:21   #4
Antyan-screammer
 
Регистрация: 28.01.2009
Сообщений: 9
По умолчанию

Парни спасибо но это немного не то... дело вот в чём...
В List Box дофига строк в каждой какая то надпись... нужно что бы при нажатии на строчку, значение этой строчки помещалось в Edit.

Слова в List Box помещаются из файла...

Вот конкретно что надо.
Antyan-screammer вне форума Ответить с цитированием
Старый 17.08.2009, 13:41   #5
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от Antyan-screammer Посмотреть сообщение
Парни спасибо но это немного не то... дело вот в чём...
В List Box дофига строк в каждой какая то надпись... нужно что бы при нажатии на строчку, значение этой строчки помещалось в Edit.

Слова в List Box помещаются из файла...

Вот конкретно что надо.
Код:
Код:
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 if ListBox1.ItemIndex=-1 then exit; 
//В случае если юзер не кликнул по елементу в листбоксе но кликнул по самому листбоксу то действ. ниже отпадают

 Edit1.Text:=ListBox1.Items.Strings[ListBox1.ItemIndex];
end;
Код загр. из файла (не помешает :-) ):
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
 i:integer;
begin

 if FileExists('file.txt')=false then exit;

 ListBox1.Items.LoadFromFile('file.txt');
end;
Daramant да... я чет проглупил с загр. в листбокс :-D

Последний раз редактировалось zotox; 17.08.2009 в 14:20.
zotox вне форума Ответить с цитированием
Старый 17.08.2009, 14:09   #6
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
Сообщение от zotox Посмотреть сообщение
Код загр. из файла (не помешает :-) ):
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
 i:integer;
begin
 s:=TStringList.Create;

 if FileExists('file.txt')=false then exit;

 s.LoadFromFile('file.txt');
 for i:=0 to s.count-1 do
  begin
    ListBox1.Items.Add(s.Strings[i]);
  end;
end;
Тогда уж лучше так:
Код:
  ListBox1.Items.LoadFromFile(FileName);
Можно конечно еще проверить - существует ли файл:
Код:
  if not FileExists(FileName) then
    raise Exception.Create(Format('Файл не найдет: "%s"', [FileName]));

  ListBox1.Items.LoadFromFile(FileName);
Но исключение и так возникнет при отсутствии файла в LoadFromFile();
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 17.08.2009, 17:33   #7
Antyan-screammer
 
Регистрация: 28.01.2009
Сообщений: 9
По умолчанию

Всё парни спасибо большое помогло
Antyan-screammer вне форума Ответить с цитированием
Старый 16.06.2010, 00:00   #8
sania5768
Новичок
Джуниор
 
Регистрация: 14.06.2010
Сообщений: 2
По умолчанию Помогите сделать прогу в делфи

«Свинья-копилка». Для того, чтобы начать свой бизнес, юный коммерсант решил накопить немного денег. С этой целью он отыскал свинью-копилку и начал собирать деньги. Известно, что определить накопленную сумму в копилке можно, только разбив копилку. Однако, юному коммерсанту не хотелось де¬лать это раньше времени, т.е. до тех пор, пока не накопилась требуемая сумма. Избежать этого ему помог его напарник, который посоветовал, как можно оценить мини¬мальное количество денег внутри копилки, зная ее вес без монет, вес с монетами и вес монет каждого типа. Требуется написать программу, которая определяла бы мини¬мальную сумму денег, которая может находиться в копилке, по известным исходным данным.
Технические требования: Входной файл: INPUT.TXT. Результат выводится на экран. Формат входных данных: Входной файл INPUT.TXT состоит из последовательноеi и строк. В первой строке содержатся два целых числа:
Е - вес пустой копилки (1<Е<10000);
F - вес копилки, заполненной монетами (1<E<F< 10000);
Вторая строка содержит целое число N (1<N<500) - количество типов монет.
Каждая из последующих N строк служит для описания монет заданных типов и со¬держит по два целых числа – PI и Wi (1< PJ <50000, 1< W, < 10000, 1< i <N), где Рi -достоинство монеты i -го типа, a Wi - ее вес.
Формат выходных данных: На экран выводится значение минимальной суммы де¬нег, которая может находиться в копилке. Если заданный вес копилки F не может быть достигнут с монетами заданного типа, то выводится сообщение «Нет решения»'.
sania5768 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование в picture box (C#) ne11son Общие вопросы .NET 6 14.11.2015 00:36
Создать и вставить в макрос свой BOX ЕщеОдинСергей Microsoft Office Excel 8 28.04.2009 20:49
E-Mail форма+List Box Nemesisking PHP 8 05.04.2008 12:59
UpdateData(false) в цикле? вывод числа в Edit box Иван36 Помощь студентам 5 31.03.2008 18:33
Skroll box в чате. Dj_smart Общие вопросы Delphi 9 08.03.2008 09:34