Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Хелп Выполняю следующее Код: plaintext 1. 2. 3. 4. В OnShow для закладки пейдж контрола. Странно, но при создании формы в первый раз, этот метод отрабатывает, но едита не видно. При повторном запуске становится видно. Также становится видно, если сделать взибл = фолс, = тру. Как бы сделать чтобы изначально видно было. Чего только не пробовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 10:58 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Попробуй .Refresh в конце сделать. Пробовал? И что значит "При повторном запуске становится видно."? В смысле через раз он отображается что ль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 11:13 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Refresh чего? Не через раз, а при запуске программы, при создании формы, когда вызывается первый раз TabSheetOnShow не отражается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 11:23 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
А закладка, случаем не та, которая текущая? Ну так и оставь Edit.Visible := True;. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 12:16 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Ну дак он сначала рисует (пока компонент не создан), а потом выполняет OnShow, поэтому, как советует Gluk99 надо сделать Refresh. Код: plaintext или Код: plaintext или Invalidate или Paint - попробовать, а лучше почитать описания для всех этих методов... Если не помогает - Form.Refresh... А вообще, наверное, лучше создать эти TEdit-ы заранее, например на PageControl.OnChange ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 13:30 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Дык когда вызывать то TabSheet01.Refresh; Там же???? В On Show ????? Куда бы пристроить их.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 13:47 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Ну да, там же в OnShow можешь попробовать, но это как-то криво (два раза рисовать будет)... В конце, после приведённого тобой кода... А можешь, кстати и Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:14 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Не помогает. ПРобовал в том же методе и рефреши и репаинты, и сетфокус, и брингтофронт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 14:33 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Ага. Вот как... Ну а если в PageControl.onChange а не в OnShow добавлять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 15:03 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
а почему не в формовском оншоу? делай там, какая тебе разница, у меня все работает таким образом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 15:07 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
а почему не в формовском оншоу? Дык мне то надо при показе закладки а не формы. Это вопрос равнасилен - а почему не при создании в дизайнере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 16:08 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
а если создать заранее, а показывать через visible? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 16:10 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Понял я кажется в чем дело. У тебя OnShow не работает, т.к. скорее всего твоя закладка, на которой должен появится Эдит, по умолчанию в фокусе, т.е. в дизайнере Дельфы она у тебя активная. При создании PageControl'a метод OnShow для закладки в фокусе не вызывается, => и не создается Эдит. Что можно сделать: 1) Попробовать определить OnCreate PageControl'a, что муторно. 2) Сделать еще одну невидимую закладку и фокус установить изначально на нее, а потом, после того как у тебя принимается решение, что где и как должно создаваться делать примерно так: Код: plaintext 1. Где 0 - индекс невидимой закладки, а 1 - твоей, на которой Эдит должен создаваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 17:18 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
To Gluck99: Да уж.Стал бы я бойду разводить тут. Уж первым делом то я пошагово проверил запускается ли. И если бы не запускалось, то смена визибле на фол, тру чтобы отражала - не созданный едит???? И еще сразу - делать после создания визибле тру не помогает. Именно на форме сделал кнопку делать видимым невидимым - тогда показывается. Иначе не отрисовывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 18:02 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Что-то тут не то. Вот этот код у меня работает замечательно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Показывается все сразу при старте формы. Если FormShow не вызывать, то Эдит не создается, но при смене туда-сюда фокуса закладки он создается нормально. Тебе это надо, или я что-то не понимаю? Объясни может подробнее. При чем тут Visible Edit'a? Я что-то не пойму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2003, 19:31 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
А попробуй так: Код: plaintext или Код: plaintext Хрен его знает, вдруг поможет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 10:10 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
To Gluck99: Показывается все сразу при старте формы. Если FormShow не вызывать, то Эдит не создается, но при смене туда-сюда фокуса закладки он создается нормально. У меня при создании формы стопудово вызывается оншоу, проверял в дебагере, и еще раз говорю, если он бы не создался, то при попытке сделать его невидимым - видимым - вылетал бы ексепшион. Юзать FormShow(Sender: TObject); тоже не катит - это значит при каждом показе формы я буду в итоге получать первую закладку - не выход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 10:41 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Странно, я скопировал твой код и получилась такая же фигня. Показываем форму - не видно, переключаем закладку туда-обратно, тогда показывается. В результате поставил Edit.Visible := True; и все стало нормально... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 10:45 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Дык... Не понимаю я опять - "Если FormShow не вызывать, то Эдит не создается" - естесственно не создается, т.к. onShow TabSheet'a не вызывается ! OnShow только при смене закладок отрабатывает. Или вот: "Юзать FormShow(Sender: TObject); тоже не катит - это значит при каждом показе формы я буду в итоге получать первую закладку - не выход." Ну почему же первую? В OnShow формы поставь PageControl1.ActivePageIndex := N; где N - номер твоей закладки (0 - первая закладка, 1 - вторая и т.д.). ВСЁ! А в дебагере не знаю что ты смотрел - не должно такого быть. Либо мы с тобой о разном говорим (что вряд ли), либо ты так и не понял, что я хочу сказать (что надеюсь тоже неправда =) ). Сделай новый проект и помести туда мой код - увидишь все заработает. Это чуток кривовато, зато просто. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 15:33 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
То? xnj Edit1.Parent:=TabSheet правильно, а вот то, что Edit1:=TEdit1.Create(TabSheet) по моему не правильно. На сколько я помню, у самого TabSheet своего Hadle окна нет и он использует Handle от PageControl. Возможно, что нужно написать что-то типа Edit1:=TEdit1.Create(PageControl) Видимо при переключении закладки, когда TabSheet повторно активизируется, он переназначает Ownera на PageControl и после этого Edit1 начинает рисоваться. Хотя, я не знаю, почему у Вас не работает. Версия Delphi какая? Я пробовал на Delpi 5.0 с установленным SP1. У меня всё работает. И создаётся и отображается с первого раза. Правда, на форме есть ещё и другие компоненты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 16:41 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
To Speaker: Edit.Visible := True; Говорил - не помогает. TO Gluck99: естесственно не создается, т.к. onShow TabSheet'a не вызывается! OnShow только при смене закладок отрабатывает. Тебе надо чтобы толпа народу подтвердила. Новый проект, там пейдж контрол. Первая закладка текущая. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Запускаю прогу. Вылетает мессага - что метод Шоу был запущен. Догоняешь -ЗАПУЩЕН. Закладка то первая рисоваться должна же. Едит создан но его не видно!!! Енто тебе уже и другие говорят. TO Дмитрий Мыльников Не помогло.. Вообщем если других варианто в нет........ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 12:20 |
|
||
|
создание компонента
|
|||
|---|---|---|---|
|
#18+
Вообщем я ушел от такого варианта. Всем спасибо. Если кому-то самому не интересен данный факт - предлагаю закрыть дискуссию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 12:31 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32223579&tid=2117493]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 281ms |
| total: | 460ms |

| 0 / 0 |
