Молодой человек хочет через компьютер найти жену. Он хочет, чтобы она была брюнетка, небольшого роста, скромно одевалась, была общительной и хорошо плавала. компьютер выдал рекомендацию: "Вам подходит самка пингвина."
unit ChOwn1;
interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ButtonChange: TButton;
ButtonList: TButton;
ListBox1: TListBox;
procedure ButtonChangeClick(Sender: TObject);
procedure ButtonListClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private{ Private declarations }public{ Public declarations }end;
var
Form1: TForm1;
implementationuses ChOwn2;
{$R *.DFM}procedure TForm1.ButtonChangeClick(Sender: TObject);
var
AComp: TComponent;
beginif Assigned (Button1) thenbegin// change parent
Button1.Parent := Form2;
// change owner
AComp := Button1;
RemoveComponent (AComp);
Form2.InsertComponent (AComp);
end;
end;
procedure TForm1.ButtonListClick(Sender: TObject);
var
I: Integer;
begin
ListBox1.Items.Clear;
for I := 0 to ComponentCount - 1 do
ListBox1.Items.Add (Components[I].Name);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage ('My owner is ' +
((Sender as TButton).Owner as TForm).Caption);
end;
end.
unit ChOwn2;
interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm2 = class(TForm)
ButtonList: TButton;
ListBox1: TListBox;
procedure ButtonListClick(Sender: TObject);
private{ Private declarations }public{ Public declarations }end;
var
Form2: TForm2;
implementation{$R *.DFM}procedure TForm2.ButtonListClick(Sender: TObject);
var
I: Integer;
begin
ListBox1.Items.Clear;
for I := 0 to ComponentCount - 1 do
ListBox1.Items.Add (Components[I].Name);
end;
end.
Программа на Delphi, которая демонстрирует изменение родителя и владельца компонента. Проект состоит из двух форм: Form1 и Form2.
Form1
Имеет три кнопки: Button1, ButtonChange и ButtonList.
При клике на Button1 отображается имя его владельца (которым является Form1) в сообщении.
При клике на ButtonChange изменяется родитель Button1 с Form1 на Form2. Также удаляется Button1 из Form1 и добавляется в Form2.
При клике на ButtonList отображается список всех компонентов на форме в списке.
Form2
Имеет две кнопки: ButtonList.
При клике на ButtonList отображается список всех компонентов на форме в списке.
Теперь, когда мы обсудим, как модифицировать этот проект для своих нужд...
Если вы хотите найти жену для молодого человека по его предпочтениям (брюнетка, маленькая ростом, скромно одета, общительная и хороший плавательник), я бы предложил создать базу данных женщин с этими характеристиками и использовать алгоритм рекомендации для предложения потенциальных совместителей.
Альтернативное решение:
Вместо того, чтобы рекомендовать пингвина как жену, вы могли создать форму, которая позволяет молодому человеку ввести свои предпочтения (например, диапазон роста, цвет волос, стиль одежды и т.д.) и использовать эту информацию для поиска подходящих женщин в вашей базе данных. Таким образом, рекомендация будет более персонализированной и актуальной.
Вот пример кода, чтобы начать:
unitMatchFinder;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;typeTForm1=class(TForm)EditHeight:TEdit;EditHairColor:TEdit;ButtonSearch:TButton;procedureButtonSearchClick(Sender:TObject);private{ Private declarations }public{ Public declarations }end;varForm1:TForm1;implementation{$R *.DFM}procedureTForm1.ButtonSearchClick(Sender:TObject);varI:Integer;Woman:TWoman;begin// Clear the list boxListBox1.Items.Clear;// Search for women based on user inputforI:=0toWomen.Count-1dobeginWoman:=Women[I];if(Woman.Height>=StrToInt(EditHeight.Text))and(Woman.HairColor=EditHairColor.Text)thenListBox1.Items.Add(Woman.Name);end;end;end.
В этом коде мы добавили два поля ввода (EditHeight и EditHairColor) для того, чтобы пользователь мог ввести свои предпочтения. Мы также добавили кнопку (ButtonSearch), которая вызывает процедуру при клике. Эта процедура поиска женщин в нашей базе данных, которые соответствуют предпочтениям пользователя, и добавляет их в список.
Обратите внимание, что это только простой пример, и вам нужно создать более сложный алгоритм для поиска подходящих совместителей на основе множества характеристик.
В статье описывается пример программирования на Delphi, где демонстрируется изменение владельца компонента в приложении с использованием классов TForm и TComponent.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.