Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.06.2011, 14:04
VANNIK002 VANNIK002 вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 28
Репутация: 10
По умолчанию Передать данные в форму как в функцию

Помогите кто знает
Есть код:
F_Msg := TF_Msg.Create(Self);
F_Msg.x := 110;
F_Msg.y := 130;
F_Msg.z := 130;
F_Msg.Label1.Caption := 'Так работает';
F_Msg.ShowModal;
F_Msg.Free;
Хочу сделать вот так:
F_Msg('Так хочется', X, Y, Z,);
Варианты использования стандартных диалоговых функций типа ShowMessage(' '); не предлагать. Я их все знаю.

Последний раз редактировалось VANNIK002, 01.06.2011 в 15:03.
Ответить с цитированием
  #2  
Старый 01.06.2011, 14:07
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Конструктор перегрузи.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 01.06.2011, 14:53
VANNIK002 VANNIK002 вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 28
Репутация: 10
По умолчанию

И что будет, если перезагрузить конструктор? К динамически создаваемой форме можно будет обращаться как к функции? Я хоть и чайник со свистком,но ни на столько. Спасибо за столь содержательный ответ.
Ответить с цитированием
  #4  
Старый 01.06.2011, 15:18
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

простейший пример перегрузки конструктора и использования классового метода:

Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
  private
    { Private declarations }
    ACaption: String;
    x, y, z: Integer;
  public
    { Public declarations }
    class function CreateForm(ACaption: String; x, y, z: Integer): TForm2; overload;
    constructor CreateForm(AOwner: TComponent; ACaption: String; x, y, z: Integer); overload;
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

{ TForm2 }

constructor TForm2.CreateForm(AOwner: TComponent; ACaption: String; x, y, z: Integer);
begin
  inherited Create(AOwner);
  Self.ACaption:=ACaption;
  Self.x:=x;
  Self.y:=y;
  Self.z:=z;
  Label1.Caption:=ACaption;
end;

class function TForm2.CreateForm(ACaption: String; x, y, z: Integer): TForm2;
begin
  Result:=TForm2.CreateForm(Application, ACaption, x, y, z);
  Result.ShowModal;
  Result.Free;
end;

end.

использование:

Код:
unit Unit1;

interface

uses
  Unit2,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  TForm2.CreateForm('Button1Click', 1, 2, 4);
end;

end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 01.06.2011, 15:39
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

VANNIK002, не "перезагрузить", а "перегрузить"
NumLock - как всегда красавчик!!!
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #6  
Старый 01.06.2011, 15:51
VANNIK002 VANNIK002 вне форума
Прохожий
 
Регистрация: 01.06.2011
Сообщения: 28
Репутация: 10
По умолчанию

Спасибо большое. Пошел переваривать.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:17.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025