Войти

Показать полную графическую версию : Помогите разобраться с работой компонента


streamrider
07-12-2011, 08:20
Доброе утро !!! Вчера я написал небольшую программу которая отправляет на почту все данные введенные в поля все отправляется но есть одна проблема с компонентом " ComboBox " Задача состоит в том что бы при выборе определенного варианта из списка " ComboBox " эти данные появлялись в поле для отправки в idMessage1.Body.Text после надписи " ID:",т.е то что выбрано то и добавлялось в это поле. Заранее Спасибо

Вот мой код :

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdAntiFreezeBase, IdAntiFreeze, IdMessage, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
IdMessageClient, IdSMTPBase, IdSMTP, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
IdAntiFreeze1: TIdAntiFreeze;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
Edit3: TEdit;
ComboBox1: TComboBox;
Label4: TLabel;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
idSMTP1.Host:= 'smtp.yandex.ru';
idSMTP1.Port:= 25;
idSMTP1.Username:='stream';
idSMTP1.Password:='1234567';
idMessage1.Body.Text:='INFO: YourProduct : '+Edit3.Text + ' Owner:'+Edit1.Text + ' ID: ';
idMessage1.From.Text:='stars@yandex.ru';
idMessage1.Recipients.EMailAddresses:='stars2@mail.ru';
idMessage1.Subject:='Registration Product Informer';
idSMTP1.Connect();
if True then
idSMTP1.Send(idmessage1);
if True then
MessageDlg('Регистрация продукта успешно завершена',mtInformation,[mbOk],0)
else if False then
MessageDlg('Сервис временно не доступен ',mtWarning,[mbOk],0);
idSMTP1.Disconnect();



end;

end.

Tonny_Bennet
07-12-2011, 10:31
Здравствуйте.

Не знаю как в Delphi, но в С# у каждого элемента формы есть несколько обработчиков событий. У ComboBox есть обработчик SelectedIndexChanged, который срабатывает при изменении элемента в комбо-боксе. Вот в него и нужно добавить код, изменяющий содержание вашего текст-бокса. У меня получилось примерно так:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox1.Text = "ID:" + comboBox1.SelectedItem.ToString();
}

streamrider
07-12-2011, 16:54
В том то и дело что на C# comboBox1.SelectedItem.ToString(); будет а как на Delphi это проблема так как недавно только начал с ним работать

DedAlex
08-12-2011, 01:45
Если я правильно понял проблему, надо использовать ComboBox1.Text

streamrider
08-12-2011, 08:55
DedAlex, Совершенно верно )))))) Спасибо огромное все получилось !!!




© OSzone.net 2001-2012