Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ListBox-ы и Edit-ы [D3, Win2k]


Страницы:   1 2

Ольга ©   (2002-01-18 12:39:00) 

У меня есть 3 листбокса и 3 едита, мне нужно, чтобы при клике на строке одного из листбоксов, выделялись строки с тем же номером в остальных листбоксах и значения этих строк копировались в едиты, я написала, но что-то глючит, помогите пожалуйста...

ListBox2.ItemIndex:=ListBox1.ItemIndex;
ListBox3.ItemIndex:=ListBox1.ItemIndex;

if ListBox3.ItemIndex < 0 then edit1.text := ""
else edit1.text := ListBox3.Items[ListBox3.ItemIndex];
if ListBox1.ItemIndex < 0 then edit2.text := ""
else edit2.text := ListBox1.Items[ListBox1.ItemIndex];
if ListBox2.ItemIndex < 0 then edit3.text := ""
else edit3.text := ListBox2.Items[ListBox2.ItemIndex];


Serghei   (2002-01-18 14:33:00) [21]

2 yaJohn
I u menia rabotaiet normalino - ne znaiu pocemu takie trabli!


Serghei   (2002-01-18 14:28:00) [22]

2 Ольга
Посмотри на мыло - послал свой проект (сделан в Д4)


yaJohn   (2002-01-18 14:26:00) [23]

Poprobuyte moy kod, rabotaet use, proverenno.... Sm vishe.


Serghei   (2002-01-18 14:22:00) [24]

2 Ольга
У себя заметил недоработку - может мается и у тебя - когда первый раз кликаю по ЛистБокс1 на первую строку, в едитах появляются нужные значения а вот остальные ЛистБоксы не селектятся! Если начинаю со 2, 3 ... строки усе в порядке!


Serghei   (2002-01-18 14:19:00) [25]

2 Ольга
А ты попробуй сделать проверку на совпадение количества строк в листбоксахб если они разные.


Ольга   (2002-01-18 13:54:00) [26]


edit1.text := ListBox3.Items[Listbox1.ItemIndex];
edit2.text := ListBox1.Items[Listbox1.ItemIndex];
{edit3.text := ListBox2.Items[Listbox1.ItemIndex];}

ListBox2.ItemIndex:=ListBox1.ItemIndex;
ListBox3.ItemIndex:=ListBox1.ItemIndex;


Вот так работает, а вот так не работает и пишет ошибку listbox out of bounds


edit1.text := ListBox3.Items[Listbox1.ItemIndex];
edit2.text := ListBox1.Items[Listbox1.ItemIndex];
edit3.text := ListBox2.Items[Listbox1.ItemIndex];

ListBox2.ItemIndex:=ListBox1.ItemIndex;
ListBox3.ItemIndex:=ListBox1.ItemIndex;


Ольга   (2002-01-18 13:50:00) [27]

>Andrey

У меня с OnClick - строка выделяется
а с OnDBClick - данные переносятся

и переносятся во все едиты после двойного DBClick


Andrey   (2002-01-18 13:45:00) [28]

> Ольга
Чтоб с первого раза есть событие OnClick
Чтоб со второго OnDblClick


Ольга   (2002-01-18 13:40:00) [29]

>Andrey

В принципе работает, но у меня все так же, просто 3 едита и тот по которому кликать - не передает значение, а если еще раз кликнуть то передает со второго раза


Ольга   (2002-01-18 13:38:00) [30]

>Andrey

Он мне вот что пишет:
Error reading Form1.OldCreateOrder^ Property does not exist/ Ignore the error and continue? и так далее


Andrey   (2002-01-18 13:31:00) [31]

> Ольга
D5

Опять мыло посмотри.


Ольга   (2002-01-18 13:27:00) [32]

> Serghei
У меня они вот как распологаются

Edit2 Edit3 Edit1

LB1 LB2 LB3

LB3->Ed1
LB1->Ed2
LB2->Ed3, все правильно, и в проге все передается правильно, но вот такой глюк...


Ольга   (2002-01-18 13:24:00) [33]

> Andrey
Спасибо
А в каком Delphi он у тебя написан, а то он мне ошибку выдает:
Invalid Stream Format


Serghei   (2002-01-18 13:16:00) [34]

Не знаю!
У меня получается так:

LB1 LB2 LB3
1 as q
<2> <zx> <w>
3 cv e
4 fg r
5 hj t

Ed1 Ed2 Ed2
w 2 zx
то есть;
LB3->Ed1
LB1->Ed2
LB2->Ed3


Andrey   (2002-01-18 13:13:00) [35]

> Ольга
Мыло посмотри.


yaJohn   (2002-01-18 13:12:00) [36]

Opppssss.... MODERATOR, udalite plizs predidushee soobshenie, na chet HASH, eto iz drugOY vetki :(((((


Ольга   (2002-01-18 13:10:00) [37]

В нумерации ничего не напутано - все правильно.
Просто у меня при клике на 1 лист - данные копируются только во 2 и 3 едиты, при клике на 2 лист, данные копируются в 1 и 3 едиты и в 3 листбоксе такая же фигня. Я ничего не понимаю - два дня уже сижу... Помогите...


yaJohn   (2002-01-18 13:08:00) [38]

Mn...
A zachem hash?
Ne proshe li prosto ID iz globalnoy sohroniaemoy peremennoy s avtoinkrementom?
Krome togo vozmojen sluchay, kogda dannie v raznihuzlah dereva sovpadaut. Hash vernet ravnie ID...


yaJohn   (2002-01-18 13:05:00) [39]

1. Gde stoit etot kod? V obrabotke kakogo sobitia?
2. Esli ListBox1.ItemIndex==ListBox2.ItemIndex==ListBox3.ItemIndex, to zachem tri proverki?
3. Chto gluchit? Kak gluchit?

unit Unit1;

interface

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

type
TForm1 = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
ListBox3: TListBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure FormCreate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
procedure SetItemIndex(Sender,ListBox:TListBox);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Tag:=integer(Edit1);
ListBox2.Tag:=integer(Edit2);
ListBox3.Tag:=integer(Edit3);
end;

procedure TForm1.SetItemIndex(Sender,ListBox:TListBox);
begin

if (Sender<>ListBox)and
(ListBox.Items.Count>Sender.ItemIndex)
then ListBox.ItemIndex:=Sender.ItemIndex;
TEdit(ListBox.Tag).Text:=
ListBox.Items[ListBox.ItemIndex];
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
if TListBox(Sender).ItemIndex<0 then exit;
SetItemIndex(@Sender,ListBox1);
SetItemIndex(@Sender,ListBox2);
SetItemIndex(@Sender,ListBox3);
end;

end.

Dlia vseh ListBox - OnClick=ListBox1Click


Serghei   (2002-01-18 13:01:00) [40]

Да нет не глючит - только что попробовал - все нормально!
По мне разве что порядок присваивания запутан
LB3->Ed1
LB1->Ed2
LB2->Ed3


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо