![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
|||
|
|||
|
спасибо огромное)
|