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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2009, 11:57   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
Счастье Как изменять свойства и функцыи объекта в памяти?

Есть такой код но не че не меняетса:
Код:
unit Unit1;

interface

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

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

Type
 PButton = ^TButton;

var
  Form1: TForm1;
  but : TButton;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 adrees : cardinal;

begin
 adrees := cardinal(@Button1);
 but.Caption := '1000';
 PButton(adrees)^ := but;
end;

end.
подскажите пожалйста.
VintProg вне форума Ответить с цитированием
Старый 10.07.2009, 10:35   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

извените конечно, а вы вообще вдумывались на счет того, что написали ?

Код:
var
 adrees : cardinal;

begin
 adrees := cardinal(@Button1);
{ Button1 - класс, это по сути и так уже указатель на экземпляр, 
вы же делаите указатель на указатель экземпляра класса }

 but.Caption := '1000';
 { тут я даже удивлен... у вас but: TButton объявлена как глобальная, нигде вы ее (кнопку-класс) не создаете, тут вообще то должен быть Access Violation и т.п.}

 PButton(adrees)^ := but;
 { ну тут как бы в теории верно, но можно было и TButton(address) := but; но опять таки, ерунда }
И вывод, из того что я видел, можно сделать все это так:
Код:
Button1.Caption := '1000';
:D
Или же, если как вы шли... то так
Код:
var Address: DWord;
begin
  Address := DWord(Button1);
  TButton(Address).Caption := '1000';
end;
Пробуйте. Вроде все правильно написал.
BOBAH13 вне форума Ответить с цитированием
Старый 10.07.2009, 15:29   #3
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

BOBAH13
Ну точно правильно спасибо большое!
VintProg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поменять одну из текстур объекта не меняя все остальные и без повторной загрузки объекта в GLScene DomKr@t Мультимедиа в Delphi 0 14.12.2008 01:52
Как подъобекту объекта добавить методы/свойства/классы? Izhic Компоненты Delphi 1 19.10.2008 13:02
Как получить адрес свойства объекта? Lim Общие вопросы Delphi 3 30.11.2007 19:46
Свойства объекта KBak Win Api 5 15.08.2007 20:21