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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2007, 01:42   #1
Дорст
 
Регистрация: 08.11.2007
Сообщений: 3
По умолчанию Несколько Вопросов

Здравствуйте!

Вот с Веба решил перейти на Delphi но сталкнулся с некоторыми проблемами, если можно помогите:
1. Как сделать так чтобы Popupmenu в ListBox появлялось только при наведении на строку.
2. Как сделать так чтобы при клике на строку в ListBox Открывалось новая форма и при этом как передать в форму данную строку.
3. И если можно обьясните ещё раз по подробней как можно в каждой троке вставить картинку.

P.S. Спасибо огромное Всем кто откликнулся. Учу дельфи 5 день пишу клиент информера.
Дорст вне форума Ответить с цитированием
Старый 12.11.2007, 08:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как сделать так чтобы Popupmenu в ListBox появлялось только при наведении на строку.
Это не сложно, но учти что после появления меню требует обязательного щелчка по его пункту. Поэтому в данном лучае мне кажется целесообразнее заменить меню ЛистБоксом, например так:

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    PopupMenu1: TPopupMenu;
    N11: TMenuItem;
    N21: TMenuItem;
    procedure ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var      l:TListBox;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var i:integer;
begin
i:=ListBox1.ItemAtPos(Point(x,y),true);
if i>-1 then begin
  l.Items.Clear;
  l.Items.Add(ListBox1.Items[i]);
  l.Items.Add('Cancel');
  l.Top:=ListBox1.Top+y;
  l.Left:=ListBox1.Left+ListBox1.Width;
  l.Show;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
l:=TListBox.Create(Self);
l.Parent:=Self;

end;

end.
Цитата:
Как сделать так чтобы при клике на строку в ListBox Открывалось новая форма и при этом как передать в форму данную строку.
В листбоксе есть событие OnClick, в нем нужно прописать показ нужной формы, в свойствах которой будет определенная строковая переменная, туда и передавать ListBox.Items[ListBox.ItemIndex].
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2007, 09:05   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

А почему не легче просто проверять по события нужному ListBox.ItemIndex >= 0 ???
BOBAH13 вне форума Ответить с цитированием
Старый 12.11.2007, 09:18   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А почему не легче просто проверять по события
Какому "события"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов Зубоскалик Общие вопросы Delphi 14 20.11.2008 14:28
Несколько вопросов по VBA Graveyard Microsoft Office Excel 6 27.08.2008 08:50
Код и несколько вопросов artemavd Общие вопросы Delphi 18 20.08.2008 10:51
несколько вопросов по RichEdit TaTT DoGG Компоненты Delphi 4 27.05.2008 10:57
Несколько вопросов по Delphi 2005 Nez Общие вопросы Delphi 53 21.02.2007 05:49