Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Добавление компонент на форму   Найти похожие ветки 

 
Дмитрий   (2012-03-03 12:32) [0]

Извините за ламерский возможно вопрос.
Никак не могу разобраться со следующим вопросом:

В ручную добавляю компоненты на форму. Пример кода:


  TLabel* _label = new TLabel(this);
  _label->Caption = "1";
  _label->Parent = this;
  _label->Align = alTop;

  _label = new TLabel(this);
  _label->Caption = "2";
  _label->Parent = this;
  _label->Align = alTop;


На форме получаю сверху формы компонент с Caption = "2", а под ним компонент с Caption = "1".

Если воспользоваться редактором и проделать все точно самое в ручную, то получим наверху компонент с Caption = "1".

Как мне добиться того же самого ??


 
sniknik ©   (2012-03-03 12:48) [1]

ты форумы не перепутал? тебе к С-шникам/подобиям языкам нужно. (=, new, this)


 
Дмитрий   (2012-03-03 12:55) [2]

Хорошо. Перепишу так:


var
  _label : TLabel;

 _label = TLabel.Create(self);
 _label.Caption = "1";
 _label.Parent = Self;
 _label.Align = alTop;

 _label =  TLabel.Create(self);
 _label.Caption = "2";
 _label.Parent = this;
 _label.Align = alTop;


Так что нибудь меняется по сути вопроса ?
или тут нельзя задавать вопросы по VCL ?


 
sniknik ©   (2012-03-03 13:20) [3]

> Так что нибудь меняется по сути вопроса ?
конечно, т.к. ТАК этот код работает (если исправить еще одну "несовместимость" конечно)

> или тут нельзя задавать вопросы по VCL ?
можно, почти все можно, неважно по чему, главное по тому что показано и в нужном разделе.
а вот показывать одно, а спрашивать про другое оно как бы... вранье однако.
или извинятся за ламеризм и писать в основную, вместо начинающих... это вообще по другому называется.


 
Дмитрий   (2012-03-03 13:53) [4]

Ну понятно. Извините, если обидел твое самолюбие.
Лучше бы помог, а читал мне мораль.

Други, если можете помогите пожайлуста.


 
QAZ   (2012-03-03 14:09) [5]

а догадаться что что их позиция аналогична порядку создания не?


 
Дмитрий   (2012-03-03 14:12) [6]

Да конечно это возможно.
Но команда на создания компонент приходит хаотично из внешней среды.
А мне нужно чтобы компонент, который был создан первым и оставался на форме первым, а не становился в стек.


 
QAZ   (2012-03-03 14:15) [7]

Удалено модератором


 
sniknik ©   (2012-03-03 14:26) [8]

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


 
Дмитрий   (2012-03-03 14:29) [9]


> вдруг прислушаешься и задашь адекватно... подскажу решение.

Извини, конечно. А в чем неадекватность вопроса ?
Вопрос нормальный вроде бы.

Ну конечно я перепутал тему, но для меня все равно какой язык программирования. Начинал с Object Pascal, потом очень заразился C++, так что ничего для себя криминального не вижу.

Так что если можешь, то подскажи.


 
Дмитрий   (2012-03-03 14:30) [10]


> тогда какого фака ты всем ставиш _label.Align = alTop;
> если сверху нужен только первый?
> да еще и предки разные


Про предков я ничего не понял.
А  _label.Align = alTop; ставлю, что так на форме они должны располагаться занимая верхнюю часть формы.

Сверху нужен не первый, а кто первый помещен, тот первым на форме сверху отображается и т.д.


 
Дмитрий С ©   (2012-03-03 14:33) [11]

нижнему после всего сделай Top := MaxInt может поможет


 
Дмитрий   (2012-03-03 14:42) [12]


> нижнему после всего сделай Top := MaxInt может поможет
>
>


Интересный подход и действительно работает. Спасибо.
скорее всего так и делает редактор. У компонента же Top назначается когда он помещен на форму мышкой, а потом установлением параметра Align.

Все стало понятно. Спасибо.


 
sniknik ©   (2012-03-03 14:43) [13]

> Про предков я ничего не понял.
->
> Но команда на создания компонент приходит хаотично из внешней среды.
> self

как написано, так тебя и понимают. так и ответы дают.


 
sniknik ©   (2012-03-03 14:45) [14]

> Интересный подход
очевидный подход, стоило только задаться мыслью "чем определяется положение компонента?".

кстати при добавление не мигает?


 
Дмитрий   (2012-03-03 14:49) [15]

При таком коде:



 for (int i = 0; i < 10; i++) {

_label = new TLabel(this);
_label->Caption = "ddddddddddddddddddddddddddddddddddddddd";
_label->Parent = this;
_label->Align = alTop;
_label->Top = MaxInt;
Application->ProcessMessages();
Sleep(500);
  }



Морганий не замечано.
Правда машина мощная.


 
sniknik ©   (2012-03-03 14:55) [16]

ставить положение сначала в 0, и менять его после... наверняка где нибудь приведет к "помаргиванию".


 
Дмитрий   (2012-03-03 15:03) [17]


> ставить положение сначала в 0, и менять его после... наверняка
> где нибудь приведет к "помаргиванию".


Хорошо. Буду ставить значение Top сразу после создания компонента.


 
QAZ   (2012-03-03 15:15) [18]

Удалено модератором


 
Дмитрий   (2012-03-03 15:21) [19]


> ахаха
> нуда,только на мощьных машинах 2 операции в секунду не вызывают
> морганий :)))))

Зря смеешься.
Мне приходиться работать на таких машинках, процессор 400Мгц и памяти 256 метров с медленными флешками, так вот если у тебя свеп заработал, то можно иногда видеть на графическом интерфейсе как отрабатывают последовательно сообщения :) :) :)


 
Anatoly Podgoretsky ©   (2012-03-03 17:12) [20]


> потом очень заразился C++,

Это последствия


 
QAZ   (2012-03-03 18:02) [21]

Удалено модератором


 
Дмитрий   (2012-03-03 19:28) [22]


> з.ы. нормальному человеку работающему на такой технике,даже
> в голову бы не пришла такая идея с лейблами,когда есть листбокс
> например


А ты уж крайне не профессионально оцениваешь задачу, не знаю полного описания.

Вот на таких доброжелателях и строятся слухи, домыслы и все остальное. Как бабка.

А то, что ты хамишь не известному тебе человеку, говорит уже о многом, например о неполноценности.


 
QAZ   (2012-03-03 20:17) [23]

Удалено модератором



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.065 c
2-1342690776
vasa777
2012-07-19 13:39
2013.03.22
другой домен


15-1343889055
БарЛог
2012-08-02 10:30
2013.03.22
Велопоход в никуда с палаткой на несколько дней


2-1343500390
vasa777
2012-07-28 22:33
2013.03.22
скрыть ненужные компоненты из палитры


15-1345846617
wl
2012-08-25 02:16
2013.03.22
Книга


2-1333737680
SiDimka
2012-04-06 22:41
2013.03.22
Вызов прцедуры из bpl





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский