![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| mauar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 5.9.2007 Репутация: нет Всего: нет |
Есть форма, на форме расположен PageControl , прописана одна команда, с несколькими действиями, вот такого типа:
В итоге при запуске программы, программа автоматически выполняет последнюю команду ПэйджКонтрол 4-ю страницу, мне нужно чтобы, при загрузке программы открывался индекс 4 и после окончания действия 4 открывался индекс 1 у "PageControl'a" как сделать, цепочку действий команды прерывать нельзя, прописываю переменную не получается, помогите, пожалуйсто обьясните, жэелательно на примере, как грамотно произвести автоматическое переключения страниц по ходу действий списка команды. Помогите, не могу с этой бедой справиться. Это сообщение отредактировал(а) Alexeis - 2.10.2007, 20:17 |
|||
|
||||
| Alix |
|
||||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
Честно говоря, не понял сути вопроса. Как я понял, у тебя выполняется некий код, который в том числе выполняет переключение закладок у PageControl'a.
что понимается под командой? в каком месте прописана? Если это все одна команда, почему не делаешь код типа:
-------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||
|
|||||
| mauar |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 5.9.2007 Репутация: нет Всего: нет |
Команда нажатия на кнопку из списка выпадающего меню:
Прописывается при появлении формы ShowForm Самое интересное, там без разницы, есть Begin перед Then или нет. пробовал делать даже так:
Все равно у меня после выполнении этого кода (действия 2 (смотрите на код)) , вкладка переключается на TabSheet 1, хотя должна переключиться на TabSheet 4 , а только после выполнения в коде действия 4 должна переключиться на TabSheet 1 . В чем прикол? Кстати если бы не переключения ТабШит'ов я бы не вообще не стал исползовать команду Begin , она и так прописана в FormShow для цепочки с действиями этой команды, и, так все прекрастно работает, по крайней мере, код не засоряется лишними командами. Простой вопрос: как мне сделать так, чтобы после выполнения из кода действия 2 открылся TabSheet 4 , а после выполнения действия 4 открылся TabSheet 1. |
||||
|
|||||
| Alix |
|
|||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
Вообще я не так написал. Ну да ладно уж.
Если TabSheet4 это 4 вкладка, то все должно работать. Могу также порекомендовать использовать не ActivePage, а ActivePageIndex (0..PageCount-1). Теперь самое главное, мне кажется что у тебя код выполняется так быстро, что после действия 2 происходит переключение на 4 закладку, а потом остаток кода так быстро выполняется, что после действия 4 сразу происходит переключение на 1 закладку и ты просто не успеваешь заметить переключения на 4ю. Убери все действия после перекючения на 4ю вкладку, на нее по прежнему не переключается? -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
| mauar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 5.9.2007 Репутация: нет Всего: нет |
Хочу тебя обрадовать, после переключения на 4-ю вкладку код заканчивается
Подожди, обьясни подробнее что это за Коунт в активпэйдже такой - ActivePageIndex (0..PageCount-1)?. Я пробовал прописывать: ActivePageIndex:=1; Все то же самое. Может переменную какую обьявить ? И на неё ссылаться, хотя то же самое будет :(( Люди помогите пожалуйсто, иначе выкину нафиг эту программу, и заброшу писать программы :( |
|||
|
||||
| Alix |
|
||||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
во-первых, ты его ужасно прописал, а во-вторых, он никак не замедлит выполнение программы Вот тебе небольшой пример. Кинь на форму PageControl, Edit и Button. В обработчике Button.OnClick напиши:
Вводишь в edit номер вкладки, жмякаешь по кнопке и происходит переключение. Ну или одна из ловимых ошибок. А вообще сложно сказать что у тебя там не работает. Выложи весь код программы. И плиз, более доходчиво напиши, чего ты хочешь от программы. -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||
|
|||||
| DonPager |
|
|||
|
Колдырь ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 28.3.2003 Где: Воронеж Репутация: нет Всего: 2 |
mauar, Я так понял тебе надо вот что:
1)Сделать что-то 2)Переключиться на вкладку 4 3)Сделать что-то 4)Переключиться на вкладку 1 Так? А у тебя получается, что переключается на вкладку 1 и всё ?так? Если так, то после переключения на вкладку 4 обнови состояние табшитов (рефреш или репайн или типа того), а то происходит оптимизация - в итоге одно переключение Это сообщение отредактировал(а) DonPager - 3.10.2007, 13:33 -------------------- кодер + лодырь = колдырь |
|||
|
||||
| mauar |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 5.9.2007 Репутация: нет Всего: нет |
в принципе нашел небольшое решенние это прописать перед переключением вкладки 4 задержку sleep (5000); но ... мне кажется лучше было бы
код переключался после определенного выполнения а не при задержке. Может прописать команду wait и в ней указать чтобы он ждал выполнения предпоследнего действия переключения TabSheet.
К форме подключен MS Agent Джин, Мерлин, Собачка, Скрепка и т.д. Может помнишь раньше автоматически с советами и диалогами вылазил в MS Office 97 при загрузке ворда или экселя!? Так -вот, этот агент ходит по моей форме и проводит виртуалную экскурсию, показывая возможности программы, на форме установлен PageControl с 4-мя вкладками. Агент, вернее код должен по окончания рассказывания агента переключить на следующую вкладку. Код private , кстати тут по моему тоже ошибка в прописывании комманды персонажа, при прописывании комманды Chars компилятор выдает ошибку, я написал Char
Код FormShow формы:
Добавлено через 2 минуты и 32 секунды
Дружище, как именно это сделать? Ты имеешь ввиду обновить во время выполнения программы, или как? |
||||||||
|
|||||||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: нет Всего: 9 |
mauar, А что если TEvent заместо Sleep ?
|
|||
|
||||
| DonPager |
|
||||
|
Колдырь ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 28.3.2003 Где: Воронеж Репутация: нет Всего: 2 |
кхе вызывая своего чара ты запускаешь поток (действие это достаточно быстрое) и переходишь к выполнению следующей комманды. Следовательно вкладки переключаются очень быстро, что ты и наблюдаешь, а отсюда вывод:
Добавлено через 2 минуты и 58 секунд ПС А зачем по 2 раза begin/end ? -------------------- кодер + лодырь = колдырь |
||||
|
|||||
| mauar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 5.9.2007 Репутация: нет Всего: нет |
Дружище, опиши как задать команду Wait для этого дела, странно у меня не получается, ошибку пишет!
Уже убрал лишнии бегины, просто от без исходности решил прописать бегин энд, типа эксперимент для пущей правильности Кстати Refresh или Repaint для этого метода вроде не работает. Это сообщение отредактировал(а) mauar - 3.10.2007, 20:31 |
|||
|
||||
| mauar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 5.9.2007 Репутация: нет Всего: нет |
А в ответ, тишина ... !!!
Люди помогите пожалуйсто, как в моем коде реализовать метод ожидания окончания действия: функцией WaitForSingleObject. Допустим в разделе: " Var " прописываю переменную: PCTS1 : PagContTabSheet1; между действиями переключения вкладки PageControl'a прописываю ожидания : WaitForSingleObject (PCTS1.hProcess,10000); Далее: finally If Cmd.Name = 'Экскурсия' Then begin PageControl1.ActivePage:= TabSheet4; end; Не работает :( Как переменную PCTS1 прописать в предыдущей строке перед выполнением переключения вкладок? Что не так делаю? До 4-х часов ночи с этой ерундой просидел ПОЖАЛУЙСТО Это сообщение отредактировал(а) mauar - 4.10.2007, 02:49 |
|||
|
||||
| Alix |
|
||||||||||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
В общем опробовал тут кодик, вот так:
Пока команда выполняется, мы крутимся в цикле. Команда закончила выполняться - переходим к следующему что там у тебя есть. Т.е. оформляй свой код примерно так:
Req.status:
Добавлено через 12 минут и 56 секунд Просмотрел здешнюю статью, я думаю, тебя может заинтересовать этот момент:
Это сообщение отредактировал(а) Alix - 4.10.2007, 15:06 -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||||||||
|
|||||||||||
| mauar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 5.9.2007 Репутация: нет Всего: нет |
Дружище, спасибо тебе болшое, ты меня от смерти спас....!!! Я про сайт: http://subritto.h1.ru/ знаю прекрастно, от туда еще начинал, а тут просто пэксперементировать решил с ним. У меня дальше по списку идет, задания команды голосом все же успехи есть. Спасибо тебе еще раз огромное....!!! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |