Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2016, 12:30   #21
Fantomas_RUS
Пользователь
 
Регистрация: 19.01.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
что тут такое Self ?
зачем тут эти выкрутасы? в контексте какого объекта работает этот метод, если OnClick:= F.test3;?
Это просто тест, чтоб визуально увидеть изменения. Self -> вызвавший объект Form1. В контексте F.OnClick

Последний раз редактировалось Fantomas_RUS; 20.01.2016 в 12:34.
Fantomas_RUS вне форума Ответить с цитированием
Старый 20.01.2016, 12:33   #22
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

При чем тут тест?
для чего пихать туда Form1? вы понимаете за что это отвечает?

и выбросит весь код надо, как уже не раз тут советовали
come-on вне форума Ответить с цитированием
Старый 20.01.2016, 12:35   #23
Fantomas_RUS
Пользователь
 
Регистрация: 19.01.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Код:
unit ufMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Vcl.StdCtrls, Vcl.Buttons, Vcl.Imaging.pngimage, Vcl.ExtCtrls;

type
  TFormMain = class(TForm)
    ButtonFuckIt: TButton;
    Image1: TImage;
    procedure ButtonFuckItClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TOptionForm = class(TForm)
  private
    procedure Test3(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  public
    Edit1: TEdit;
    constructor CreateNew(AOwner: TComponent; Dummy: Integer  = 0); override;
  end;

var
  FormMain: TFormMain;

implementation

{$R *.dfm}

{ TOptionForm }

constructor TOptionForm.CreateNew(AOwner: TComponent; Dummy: Integer  = 0);
var
  A: TSpeedButton;
begin
  inherited CreateNew(AOwner);
  DefaultMonitor:= dmPrimary;
  Position:= poScreenCenter;
  Width:= 136;
  Height:= 96;
  BorderStyle:= bsDialog;
  Caption:= 'TOptionForm';

  Edit1:= TEdit.Create(Self);
  with Edit1 do
    begin
      Parent:= Self;
      SetBounds(8, 8, Parent.ClientWidth - 16, Height);
      Text:= 'Edit1';
    end;

  A:= TSpeedButton.Create(Self);
  with A do
    begin
      Parent:= Self;
      Caption:= 'Iaiea n iocueie :)';
      SetBounds(8, Edit1.BoundsRect.Bottom + 4, Parent.ClientWidth - 16, Height);
      OnClick:= Test3;
    end;
end;

procedure TOptionForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:= caFree;
end;

procedure TOptionForm.Test3(Sender: TObject);
var
  SenderComponent: TComponent;
begin
  SenderComponent:= TComponent(Sender);
  SenderComponent.Tag:= SenderComponent.Tag + 1;
  Edit1.Text:= Format('Тыкнул %d-й раз.', [SenderComponent.Tag]);
  TSpeedButton(Sender).Caption:= 'wwwwwwwwwwwww';
end;

procedure TFormMain.ButtonFuckItClick(Sender: TObject);
begin
  with TOptionForm.CreateNew(Application) do
    begin
      OnClose:= FormClose;
      Show();
    end;
end;

end.
Tag не подходит, так как нужно передавать/изменять данные другого типа, например string
Fantomas_RUS вне форума Ответить с цитированием
Старый 20.01.2016, 12:46   #24
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Tag не подходит, так как нужно передавать/изменять данные другого типа, например string
Tag я приплёл для примера только. Если
Цитата:
нужно передавать/изменять данные другого типа, например string
- передавай/изменяй, кто ж запрещает?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.01.2016, 13:00   #25
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Tag не подходит, так как нужно передавать/изменять данные другого типа, например string
Ну Вы же теперь ас в ООП после данного примера. Унаследуйте новую форму в которой Tag будет строкой.

ЗЫ
Цитата:
Рязань, 13-й ленинский тупик, д. 13, кв. 13, звонить 8 раз
А почему звонить только 8 раз? Вселеннское равновесие нарушено.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.01.2016, 13:06   #26
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
А почему звонить только 8 раз
Это пароль, что звонит чувак именно с программерсфорума. Не?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.01.2016, 13:21   #27
Fantomas_RUS
Пользователь
 
Регистрация: 19.01.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
При чем тут тест?
для чего пихать туда Form1? вы понимаете за что это отвечает?

и выбросит весь код надо, как уже не раз тут советовали
Что сложного то понять.
Создана автоматически делфой форма. На неё кинута кнопка. В событие (TForm1.BitBtn1Click)OnClick этой кнопке создается переменная TOptionForm -> F. Далее после создание объекта в этом же обработчике (TForm1.BitBtn1Click) происходит показ новой формы F. На этой форме есть кнопка и Edit. При нажатии на кнопку, расположенную на форме F, должны данные записаться в Edit расположенный также на форме F. Прикладываю не готовый проект. По нажатию на "шестеренку" и выскакивает нужная форма F
Вложения
Тип файла: rar Sound.rar (315.2 Кб, 7 просмотров)
Fantomas_RUS вне форума Ответить с цитированием
Старый 20.01.2016, 13:51   #28
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
А почему звонить только 8 раз? Вселеннское равновесие нарушено.
Цитата:
Это пароль, что звонит чувак именно с программерсфорума. Не?
Шоб никто не догадался!

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.01.2016, 13:58   #29
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
Что сложного то понять.
Что вы делаете понятно было сразу.
не понятно почему через зад, также зачем вы при создании формы ей self пихаете, и еще зачем для изменения свойств поля формы делаете выкрутасы с сендерами и овмерами.
come-on вне форума Ответить с цитированием
Старый 20.01.2016, 14:11   #30
Fantomas_RUS
Пользователь
 
Регистрация: 19.01.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
Что вы делаете понятно было сразу.
не понятно почему через зад, также зачем вы при создании формы ей self пихаете, и еще зачем для изменения свойств поля формы делаете выкрутасы с сендерами и овмерами.
Извините. Дело в том, что в моём проекте я попытался прямо указать изменение Edit1. Но тогда выскакивает ошибка, что делфи не понятно, а каком Edit идёт речь.
Поэтому я и попросил, как правильно выполнить это. Если есть статья, то прочту обязательно. Пользовался этой https://rsdn.ru/article/delphi/Handlers.xml но так и не понял до конца.
Fantomas_RUS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добраться до USB через Delphi или С# IgorMagnit Общие вопросы Delphi 1 25.01.2013 06:18
Как изменить свойство ADOConnection1.ConectionString через edit или каким нибуть другим путем xsaroo БД в Delphi 3 14.10.2012 16:54
Ни чего не происходит((( Givshuk Помощь студентам 2 16.03.2012 23:15
Чего не происходит чтения с файла? Nikita1987 Общие вопросы C/C++ 8 29.06.2010 16:14
Как добраться до определенного символа в Edit Ivanko Помощь студентам 2 08.02.2010 11:49