![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ListBox-ы и Edit-ы [D3, Win2k]
Ольга © (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