![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() программа состоит из нескольких Edit'oв , Button'oв и одного Listbox ...
Из Edit'oв информация добавляется в Listbox, как после двойного щелчка по строчке находящейся в Listbox информацию можно было вернуть обратно в Edit's ??? |
#2
|
||||
|
||||
![]() Примерно так:
Код:
procedure TForm1.ListBox1DblClick(Sender: TObject); begin Edit1.Text:= ListBox1.Items.Strings[ListBox1.ItemIndex]; end; |
#3
|
|||
|
|||
![]() спасибо, но все Edit'ы заполняются одними и теми же строками... вот код прогрыммы написанный мной ранее:
unit Unit1; Код:
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; ListBox1: TListBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Edit7: TEdit; Edit8: TEdit; Label7: TLabel; Label9: TLabel; Button4: TButton; Button5: TButton; SaveDialog1: TSaveDialog; OpenDialog1: TOpenDialog; Button6: TButton; Button7: TButton; Button8: TButton; Label8: TLabel; Edit9: TEdit; procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; Edit4.Text:=''; Edit5.Text:=''; Edit6.Text:=''; Edit7.Text:=''; Edit8.Text:=''; Edit9.Text:=''; end; procedure TForm1.Button3Click(Sender: TObject); begin Close; end; procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Add(Edit1.Text+', '+Edit2.Text+' '+Edit3.Text); end; procedure TForm1.Button4Click(Sender: TObject); begin ListBox1.Items.Clear; end; procedure TForm1.ListBox1Click(Sender: TObject); begin Edit1.Text:=ListBox1.Items[ListBox1.ItemIndex]; Edit2.Text:=ListBox1.Items[ListBox1.ItemIndex]; Edit3.Text:=ListBox1.Items[ListBox1.ItemIndex]; Edit4.Text:=ListBox1.Items[ListBox1.ItemIndex]; Edit5.Text:=ListBox1.Items[ListBox1.ItemIndex]; Edit6.Text:=ListBox1.Items[ListBox1.ItemIndex]; Edit7.Text:=ListBox1.Items[ListBox1.ItemIndex]; Edit8.Text:=ListBox1.Items[ListBox1.ItemIndex]; Edit9.Text:=ListBox1.Items[ListBox1.ItemIndex]; end; procedure TForm1.Button5Click(Sender: TObject); begin ListBox1.Items.Delete(1); end; procedure TForm1.Button6Click(Sender: TObject); begin if OpenDialog1.Execute then ListBox1.Items.LoadFromFile(OpenDialog1.FileName); OpenDialog1.Filter:='.txt; .ini; .tmp'; end; procedure TForm1.Button7Click(Sender: TObject); begin SaveDialog1.Execute; ListBox1.Items.SaveToFile(SaveDialog1.FileName); end; procedure TForm1.Button8Click(Sender: TObject); begin with SaveDialog1 do if Execute then begin ListBox1.Items.SaveToFile('FileName'); OpenDialog1.FileName:=FileName; end; end; procedure TForm1.Button9Click(Sender: TObject); begin Close; end; end. lmikle: Хде теги??? |
#4
|
|||
|
|||
![]() А ты чего хотел?
Если ты хочешь вернуть значение в тот же едит, из которого оно получалось, то надо где-то эту инфу сохранять. Например, сделать свой класс и его экземпляры цеплять к добавляемым итемам, а при возврате читать эту информацию и соответсвенно распихивать по едитам... |
#5
|
|||
|
|||
![]() Можно немного поподробней на счёт этого, просто совсем недавно начал сидеть в делфе...
|
#6
|
|||
|
|||
![]() Ну тогда тебе такие фокусы рано делать. в принципе, можно добавлять итемы не через add, а через AddObject, где вторым параметром идет ссылка на экземпляр какого-нить класса. Если бы у тебя итемы добавлялись строго из одного едита (один едит - один итем), то можно было бы сделать так:
Код:
procedure TForm1.btAdd1Click(Sender : TObject); begin Listbox1.Items.AddObject(Edit1.Text,TObject(Edit1)); end; procedure TForm1.btAdd2Click(Sender : TObject); begin Listbox1.Items.AddObject(Edit2.Text,TObject(Edit2)); end; procedure TForm1.Listbox1DblClick(Sender : TObject); begin If ListBox1.ItemIndex > -1 Then TEdit(Listbox1.Items.Objects[ListBox1.ItemIndex]).Text := Listbox1.Items[ListBox1.ItemIndex]; end; Т.к. у тебя итем комбинируется из нескольких едитов, то тебе надо написать свой класс, в который ты просто сохранишь из какого едита пришла та или иная подстрока. Этот класс подцепляется к итему (второй параметр AddObject) и при клике из этого класса и производится восстановление информации. Только надо не забывать аккуратно эти классы удалять при удалении итемов. |
#7
|
|||
|
|||
![]() спасибо огромное)
|