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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.05.2012, 12:41
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию Получить указатель на объект

Чота туплю совсем.
Создаю метку:
Код:
  //Legend
  with TLabel.Create(FSMSOwner) do
    begin
      Parent:=(FSMSOwner as TWinControl);
      Name:=Format('Legend%d',[FValueCount]);
      Caption:=Title;
      Alignment:=taLeftJustify;
      AutoSize:=False;
      Left:=Xb;
      Top:=FBlockStart.Y;
      Width:=allWidth div 2;
      Height:=Canvas.TextHeight(Title)+4;
      hLegend:=Height;
      SetLength(FObjectsInfo,Length(FObjectsInfo)+1);
      FObjectsInfo[High(FObjectsInfo)].Control:=????
    end;
как получить указатель на нее в том месте где вопросики?
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #2  
Старый 05.05.2012, 12:46
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 297
Репутация: -1806
По умолчанию

Цитата:
Сообщение от Aristarh Dark
как получить указатель на нее в том месте где вопросики?
не пользоваться with, никогда

Последний раз редактировалось robt, 05.05.2012 в 13:01.
Ответить с цитированием
  #3  
Старый 05.05.2012, 13:19
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от robt
не пользоваться with, никогда
очень полезно
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

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

Вот он код моей мечты:
Код:
 //Legend
  SetLength(FObjectsInfo,Length(FObjectsInfo)+1);
  FObjectsInfo[High(FObjectsInfo)].Control:=TLabel.Create(FSMSOwner);
  with FObjectsInfo[High(FObjectsInfo)].Control as TLabel do
    begin
      Parent:=(FSMSOwner as TWinControl);
      Name:=Format('Legend%d',[FValueCount]);
      Caption:=Title;
      Alignment:=taLeftJustify;
      AutoSize:=False;
      Left:=Xb;
      Top:=FBlockStart.Y;
      Width:=allWidth div 2;
      Height:=Canvas.TextHeight(Title)+4;
      hLegend:=Height;
      FObjectsInfo[High(FObjectsInfo)].PLeft:=Left div ((FSMSOwner as TControl).ClientWidth div 100);
      FObjectsInfo[High(FObjectsInfo)].PWidth:=Width div ((FSMSOwner as TControl).ClientWidth div 100);
    end;
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 05.05.2012, 14:08
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 297
Репутация: -1806
По умолчанию

Цитата:
Сообщение от Aristarh Dark
очень полезно
это когда нибуть спасет тебе жизнь
Ответить с цитированием
  #6  
Старый 05.05.2012, 14:16
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Радость

Цитата:
Сообщение от Aristarh Dark
Вот он код моей мечты:
жаль что так указатель мы все-таки не получили


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

var
  obj: array of TObject;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetLength(obj, 2);
  with TLabel.Create(Self) do
  begin
    asm
      push ebx
      mov ebx, obj
      mov [ebx], eax
      pop ebx
    end;
    Caption:='TLabel1';
    Parent:=Self;
    Left:=100;
    Top:=100;
  end;
  with TLabel.Create(Self) do
  begin
    asm
      push ebx
      mov ebx, obj
      mov [ebx+$04], eax
      pop ebx
    end;
    Caption:='TLabel2';
    Parent:=Self;
    Left:=200;
    Top:=200;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TLabel(obj[0]).Caption:='Caption1';
  TLabel(obj[1]).Caption:='Caption2';
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 05.05.2012, 14:18
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

NumLock, читал я про этот вариант. Пишут что с равной вероятностью указатель может быть как в стеке так и в регистре...
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #8  
Старый 05.05.2012, 14:26
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 297
Репутация: -1806
По умолчанию

хочууказатель:=@блабла;
Ответить с цитированием
  #9  
Старый 05.05.2012, 14:29
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

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

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #10  
Старый 05.05.2012, 14:33
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 297
Репутация: -1806
По умолчанию

Цитата:
Сообщение от Aristarh Dark
robt, п 3.3. правил, пока только напоминаю...
в чем претензия? баюсь,баюсь
или мы не знаем для чего @ ?
Ответить с цитированием
  #11  
Старый 05.05.2012, 14:56
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Я! Я! Знаю! Это такая штучка в почте пишется! Вот!
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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