| 
| 
 | Вопрос # 2 337/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Подскажите пожайлуста, как привязать класс к интерфейсной части программы? К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса) Приложение:Переключить в обычный режим unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls; type  TForm1 = class(TForm)    Button1: TButton;    Label1: TLabel;    Label2: TLabel;    Label3: TLabel;    Edit1: TEdit;    Edit2: TEdit;    Edit3: TEdit;    Label4: TLabel;    Label5: TLabel;    ComboBox1: TComboBox;    Label6: TLabel;    Label7: TLabel;    Button2: TButton;    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end; type T3Res=classPrivate    nam1:string[5];    nam2:string;    nam3:string;    nom1:integer;    nom2:integer;    nom3:integer;Publicconstructor Create(name1,name2,name3:string; nomin1,nomin2,nomin3 :integer);Function Info:string;function VelObshSoprot:real; virtual; abstract;end; TPosl=class(T3Res)privateFunction VelObshSoprot:real; override;end; TParall=class(T3Res)privateFunction VelObshSoprot:real; override;end; TSmesh=class(T3Res)privateFunction VelObshSoprot:real; override;end; var  Form1: TForm1;  Parametrs: T3Res;  s1,s2,s3:real; implementation {$R *.dfm} constructor T3Res.Create;beginnam1:=name1;nam2:=name2;nam3:=name3;nom1:=nomin1;nom2:=nomin2;nom3:=nomin3;end; Function T3Res.Info:string;beginresult:=nam1+IntToStr(nom1)+#13+nam2+IntToStr(nom2)+#13+nam3+IntToStr(nom3);end; Function TPosl.VelObshSoprot:real;beginresult:=nom1+nom2+nom3;end; Function TParall.VelObshSoprot:real;beginresult:=(nom1+nom2+nom3)/(nom1*nom2*nom3);end; Function TSmesh.VelObshSoprot:real;beginresult:=((nom1+nom2)/(nom1*nom2))+nom3;end;  procedure TForm1.Button1Click(Sender: TObject);begintryParametrs:=T3Res.Create(Label1.Caption,Label2.Caption,Label3.Caption,strtoint(Edit1.Text),  strtoint(Edit2.Text),strtoint(Edit3.Text));   end; end. 
|  |   Вопрос задала: Milady (статус: Посетитель)Вопрос отправлен: 22 января 2009, 19:44
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Ученый Здравствуйте, Milady! просто для клика кнопки пишите:
 
 
 if Combobox1.ItemIndex=0 then {выполнить такуюто функцию}
lif Combobox1.ItemIndex=1 then {выполнить другую функцию функцию}
if Combobox1.ItemIndex=2 then {выполнить третью функцию функцию}
|  | Ответ отправил: Ученый (статус: 8-ой класс)Время отправки: 22 января 2009, 20:26
 
 |  Ответ #2. Отвечает эксперт: min@y™ Люблю делиться знаниями!Держи примерчик (в прицепе). Жду респектов :)
 Я там твои классы перенёс в отдельный модуль и хорошенько обработал напильником. Как говорится, найди 10 отличий! :)
 К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 
 
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 22 января 2009, 21:26
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 14; последнее сообщение — 22 января 2009, 21:08; участников в обсуждении: 3. 
|   | min@y™ (статус: Доктор наук), 22 января 2009, 20:01 [#1]: Цитата: Подскажите пожайлуста, как привязать класс к интерфейсной части программы?
 
 
 Чото я не понял. Что это значит?
 Объясни, чего ты хочешь, поподробнее. Что такое "интерфейсная часть программы" в твоей интерпретации?
 
 Включить телепатор пробовать пока не буду (пива попил, напрягаться не хочу). Жду комментов, пока в онлайне. Если хошь - заползай ко мне в аську.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Ученый (статус: 8-ой класс), 22 января 2009, 20:05 [#2]:Что-то по мимо вопроса я еще не понял для чего прикреплен ехе'шник.... |  
|   | Milady (статус: Посетитель), 22 января 2009, 20:08 [#3]:ну чтоб интерфейс посмотреть........... |  
|   | Milady (статус: Посетитель), 22 января 2009, 20:11 [#4]:Проблема в том, что я написала 3 класса, теперь при нажатии на кнопку в зависимости от выбранного элемента в ComboBox должны вызываться функции этих классов. (т.е. Если выбрано паралельное соединение, то расчет общего сопротивления должен производиться функцией TParall.VelObshSoprot).Вот. Помогите пожайлуста чем сможите, а то самостоятельно разобраться не получается |  
|   | Ученый (статус: 8-ой класс), 22 января 2009, 20:18 [#5]:ну почемубы не использывать ветвление? если паралельное соединение, то выполнить такую-то функцию... |  
|   | Milady (статус: Посетитель), 22 января 2009, 20:19 [#6]:я просто не понимаю как это реализовать, я понимаю что ветвления, и логику представляю, как код написать не знаю |  
|   | min@y™ (статус: Доктор наук), 22 января 2009, 20:36 [#7]:Ветвления писать не надо. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Milady (статус: Посетитель), 22 января 2009, 20:51 [#8]:[Hint] Unit1.pas(54): Overriding virtual method 'TParall.VelObshSoprot' has lower visibility (private) than base class 'T3Res' (public) 
 что это такое?
 |  
|   | Ученый (статус: 8-ой класс), 22 января 2009, 20:53 [#9]:Может попробывать в if Combobox1.ItemIndex=0 then написать вместо TParall.VelObshSoprot просто TParall.... |  
|   | Milady (статус: Посетитель), 22 января 2009, 20:56 [#10]:Нет, он пишет ошибку [Error] Unit1.pas(107): Statement expected, but expression of type 'Class reference' found
 |  
|   | min@y™ (статус: Доктор наук), 22 января 2009, 20:56 [#11]: Цитата: [Hint] Unit1.pas(54): Overriding virtual method 'TParall.VelObshSoprot' has lower visibility (private) than base class 'T3Res' (public)
 
 
 Ну правильно, они ж у тебя private, а надо public.
 Пример почти готов.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Milady (статус: Посетитель), 22 января 2009, 20:57 [#12]:спасибо |  
|   | Milady (статус: Посетитель), 22 января 2009, 21:00 [#13]:а что именно в public? |  
|   | min@y™ (статус: Доктор наук), 22 января 2009, 21:08 [#14]: Цитата: а что именно в public?
 
 Методы VelObshSoprot() наследников. Посмотри хэлп по этому хинту компилятора.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |