Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
sg-ua
0 / 0 / 1
Регистрация: 17.09.2012
Сообщений: 113
1

Узнать какой Item был выбран пользователем и перенести LabelName

24.05.2015, 16:12. Просмотров 1041. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста, решит проблему...нужно узнать какой Item был выбран пользователем и перенести LabelName.Text выбранного Item в DishDetailName: TLabel (который лежит на другой странице) и потом перейти на эту страницу.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
unit Unit1;
 
interface
 
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ListBox,
  FMX.Controls.Presentation, FMX.Edit, FMX.SearchBox, FMX.Layouts,
  FMX.TabControl, FMX.Objects, FMX.StdCtrls, FMX.ListView.Types, FMX.ListView,
  Data.DB, DBAccess, MyAccess, MemDS, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP;
 
type
  TForm1 = class(TForm)
    TabControl1: TTabControl;
    TabItem1: TTabItem;
    TabItem2: TTabItem;
    TabItemDishDetail: TTabItem;
    ListBox1: TListBox;
    SearchBox1: TSearchBox;
    ListBox2: TListBox;
    Layout1: TLayout;
    Layout2: TLayout;
    Layout3: TLayout;
    DishDetailName: TLabel;
    Layout4: TLayout;
    DishDetailIcon: TImage;
    Layout5: TLayout;
    Layout6: TLayout;
    Layout7: TLayout;
    Layout8: TLayout;
    DishDetailIconPrice: TLabel;
    Button1: TButton;
    DishDetailСomposition: TText;
    TabItemKorzina: TTabItem;
    ListView1: TListView;
    MyConnection1: TMyConnection;
    MyQuery1: TMyQuery;
    IdHTTP1: TIdHTTP;
    SearchBox2: TSearchBox;
    procedure ListBox1Cick(Sender: TObject);
    procedure ListBox2Cick(Sender: TObject);
    procedure TabItem1Click(Sender: TObject);
 
  private
    { Private declarations }
  public
 
 
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.fmx}
 
 
 
 
procedure TForm1.TabItem1Click(Sender: TObject);
  begin
        MyConnection1.Connected:= true;
        MyQuery1.Active:=false;
        MyQuery1.SQL.Text:='select * from type';
        MyQuery1.Active:=true;
        ListBox1.Clear;
        while (not myQuery1.Eof) do
          begin
            ListBox1.Items.Add(MyQuery1.FieldByName('name_type').AsString);
            MyQuery1.Next;
          end;
  end;
 
 
 
procedure TForm1.ListBox1Cick(Sender: TObject);
var
  Item: TListBoxItem;
  ms: TMemoryStream;
  LayoutMain: TLayout;
  Icon: TImage;
  LayoutSP: TLayout;
  LayoutNP: TLayout;
  LayoutNPS: TLayout;
  LabelName: TLabel;
  LabelСomposition: TLabel;
  LabelPrice: TLabel;
begin
        ListBox2.Clear;
        MyQuery1.Active:=false;
        MyQuery1.SQL.Text:='select * from dish, type where type.id_type=dish.id_type and type.name_type= :parType';
        MyQuery1.Params.ParamByName('parType').Value:=ListBox1.Selected.Text;
        MyQuery1.Active:=true;
 
 
  ListBox2.BeginUpdate;
  Item:=TListBoxItem.Create(ListBox2);
  Item.Height:=90;
 
 
  while (not myQuery1.Eof) do
  begin
  IdHTTP1 := TIdHTTP.Create(Application);
  ms := TMemoryStream.Create;
  IdHTTP1.Get(MyQuery1.FieldByName('image').AsString , ms);
 
  LayoutMain:=TLayout.Create(Item);
  LayoutMain.Parent:=Item;
  with LayoutMain do
    begin
      Align:=TAlignLayout.Client;
    end;
 
  Icon:=TImage.Create(Item);
  Icon.Parent:=LayoutMain;
  with Icon do
    begin
       Icon.Align:=TAlignLayout.Left;
       Icon.Bitmap.LoadFromStream(ms);
       Icon.Width:=90;
       Icon.Height:=90;
    end;
 
  LayoutNPS:=TLayout.Create(Item);
  LayoutNPS.Parent:=LayoutMain;
  with LayoutNPS do
    begin
      LayoutNPS.Align:=TAlignLayout.Client;
    end;
 
  LayoutSP:=TLayout.Create(Item);
  LayoutSP.Parent:=LayoutNPS;
  with LayoutSP do
    begin
      LayoutSP.Align:=TAlignLayout.MostBottom;
    end;
 
  LabelName:=TLabel.Create(Item);
  LabelName.Parent:=LayoutNPS;
  with LabelName do
    begin
      LabelName.Align:=TAlignLayout.MostTop;
      LabelName.Text:=MyQuery1.FieldByName('name_dish').AsString;
      LabelName.AutoSize:=true;
    end;
 
 LabelСomposition:=TLabel.Create(Item);
  LabelСomposition.Parent:=LayoutSP;
  with LabelСomposition do
    begin
      LabelСomposition.Align:=TAlignLayout.Bottom;
      LabelСomposition.TextSettings.Font.Size:=5;
      LabelСomposition.Text:='Состав: ' + MyQuery1.FieldByName('struktyre').AsString;
    end;
 
  LabelPrice:=TLabel.Create(Item);
  LabelPrice.Parent:=LayoutSP;
  with LabelPrice do
    begin
      LabelPrice.Align:=TAlignLayout.MostRight;
      LabelPrice.TextSettings.Font.Size:=5;
      LabelPrice.TextSettings.VertAlign:=TTextAlign.Trailing;
      LabelPrice.Text:='Цена: ' + MyQuery1.FieldByName('Цена').AsString;
    end;
   ListBox2.AddObject(Item);
   MyQuery1.Next;
 
  end;
  ms.Free;
   IdHTTP1.Free;
  ListBox2.EndUpdate;
  TabControl1.Next();
 
end;
 
procedure TForm1.ListBox2Cick(Sender: TObject);
begin
  TabControl1.Next();
end;
 
end.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2015, 16:12
Ответы с готовыми решениями:

Как узнать, какой Items выбран в ComboBox?
Народ подскажите, как узнать какой Items выбран в ComboBox? Зарания спасибо.

Как перенести какой-то объект в Delphi на другой слой(чтобы он не накладывался сверху объекта, а был под ним)
Думаю, всем знакома такая вещь, как слои, например, в том же фотошопе. С делфи...

Проверить какой эдит выбран
Привет всем, снова я :) Немного запутался с одной штуковиной, вот на днях...

RadioGroup: проверить, какой элемент выбран
Нужна помощь. у меня на форме компонент RadioGroup с 4 Items. как мне проверить...

Отловить, какой узел дерева сейчас выбран
Привет!) Кто пользовался компонентом dxMasterLevel ? Отличная компонента, в...

5
Joey
Форумчанин
831 / 552 / 219
Регистрация: 05.05.2015
Сообщений: 3,210
Записей в блоге: 1
24.05.2015, 16:25 2
Я не совсем понял, если честно. Может я не прав, но если нужно понять, что выбрал пользователь в ListBox, и отобразить эту строчку в Label, тогда Вам нужно у ListBox1 два раза щелкнуть по событию OnClick, а в созданном обработчике прописать:
Delphi
1
  DishDetailName.Caption:=ListBox1.Items[ListBox1.ItemIndex];
0
sg-ua
0 / 0 / 1
Регистрация: 17.09.2012
Сообщений: 113
24.05.2015, 16:30  [ТС] 3
мне нужно не индекс итема, а LabelName.Text, который находится в Item

Delphi
1
2
3
4
5
6
7
8
  LabelName:=TLabel.Create(Item);
  LabelName.Parent:=LayoutNPS;
  with LabelName do
    begin
      LabelName.Align:=TAlignLayout.MostTop;
      LabelName.Text:=MyQuery1.FieldByName('name_dish').AsString;
      LabelName.AutoSize:=true;
    end;
0
krapotkin
3419 / 3026 / 1047
Регистрация: 14.04.2014
Сообщений: 14,682
Записей в блоге: 15
24.05.2015, 17:16 4
вы же вставили Label в LayoutNPS
теперь можно взять item и воспользоваться его свойствами
Delphi
1
2
 property ChildrenCount: Integer read GetChildrenCount;
 property Children: TFmxChildrenList read FChildrenList;
перебором найти ваш Label и использовать его
0
sg-ua
0 / 0 / 1
Регистрация: 17.09.2012
Сообщений: 113
24.05.2015, 17:35  [ТС] 5
krapotkin, а можно расписать поподробней, я только учусь delphi и не могу понят как это сделать...спасибо
0
krapotkin
3419 / 3026 / 1047
Регистрация: 14.04.2014
Сообщений: 14,682
Записей в блоге: 15
24.05.2015, 18:15 6
Лучший ответ Сообщение было отмечено sg-ua как решение

Решение

чтобы обработать клик на Item а не на сам List
нужно при создании его присвоить ему обработчик
вот тут на 5:00 показано как
http://www.youtube.com/watch?v=NrgjHHUOCUo
в обработчике
Delphi
1
2
3
4
5
var Item:TListBoxItem;
begin
  Item:=(Sender as TListBoxItem);
  ...
end;
Item Получили, далее используем FindComponent
в поиске найдете

возможно нужно было вообще поступить вот так:
http://www.youtube.com/watch?v=XRj3qjUjBlc
полезное видео в целом, но я имею в виду 29:00 и далее
0
24.05.2015, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2015, 18:15

Как проверить не был ли закрыт Ехcel пользователем
Создаю объект: ExcelApplication:=CreateOleObject ('Excel.Application'); ...

Какой из компонентов был нажат?
в общем есть массив изображений, который создаётся так: ...

Как узнать был ли вставлен текст из ClipBoard?
Такая проблема, на форме есть Edit, необходимо определить был ли вставлен в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru