![]() |
|
|
#1
|
||||
|
||||
|
как сделать чтобы функции одного класса могли использоваться в другом классе
|
|
#2
|
||||
|
||||
|
Сделать им общего предка.
|
|
#3
|
||||
|
||||
|
можно точнее
|
|
#4
|
||||
|
||||
|
объеденить не выходит так как один класс class(TForm) а другой class(TComponent) но мне нужно чтобы в обоих работалала function GetCurrentWB: TWebbrowser;
|
|
#5
|
||||
|
||||
|
Что-то я сильно подозреваю что приложение у вас спроектировано неверно.
|
|
#6
|
||||
|
||||
|
class(TComponent) был отдельно я его впихнул если что....
|
|
#7
|
||||
|
||||
|
Ну как вариант:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Button1: TButton;
BitBtn1: TBitBtn;
SpeedButton1: TSpeedButton;
CheckBox1: TCheckBox;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
TSuperClass = class
public
function MyClassName: String;
procedure SetMyLeft(NewLeft: Integer);
end;
{ TSuperClass }
function TSuperClass.MyClassName: String;
begin
Result := Self.ClassName;
end;
procedure TSuperClass.SetMyLeft(NewLeft: Integer);
begin
TWinControl(Self).Left := NewLeft;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(TSuperClass(Sender).MyClassName);
TSuperClass(Sender).SetMyLeft(Random(300));
end;
end.Код:
object Form1: TForm1
Left = 192
Top = 107
Width = 979
Height = 563
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object SpeedButton1: TSpeedButton
Left = 256
Top = 128
Width = 73
Height = 25
OnClick = Button1Click
end
object Button1: TButton
Left = 256
Top = 64
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
object BitBtn1: TBitBtn
Left = 256
Top = 96
Width = 75
Height = 25
Caption = 'BitBtn1'
TabOrder = 1
OnClick = Button1Click
end
object CheckBox1: TCheckBox
Left = 256
Top = 160
Width = 97
Height = 17
Caption = 'CheckBox1'
TabOrder = 2
OnClick = Button1Click
end
object Edit1: TEdit
Left = 256
Top = 184
Width = 121
Height = 21
TabOrder = 3
Text = 'Edit1'
OnClick = Button1Click
end
end |
|
#8
|
||||
|
||||
|
не совсем понял как это мне помочь может
|
|
#9
|
||||
|
||||
|
А что тут понимать. Первый код - Unit1.pas Второй - Unit1.dfm
Содай пустой проект замени текст в этих файлах на предоставленный код и увидишь результат. Тут показано как можно сделать для разных классов одну и ту же процедуру и функцию. Правда, пользоваться таким методом надо аккуратно. |