![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| AlexSn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
Delphi.
В одной процедуре выполняется цикл - перебор символов в dbedit. При нахождении какого-то символа - например порбела, нужно передать управление другой процедуре, а цикл остановить. Подскажите как?? Буду примного благодарен |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Где-то так:
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Mde |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 15.11.2004 Где: Азов, Ростовской области Репутация: нет Всего: нет |
Ну или еще один вариант
Изиняюсь за воровстово кода нео писать то же ленно... |
|||
|
||||
| SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
Ну тогда еще вариант:
|
|||
|
||||
| AlexSn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
А у меня процедура такая:
procedure TForm2.DBEditEh2EditButtons0Click(Sender: TObject; var Handled: Boolean); begin DBEditEh2.EditMask := ''; DBEditEh2.EditMask := '000\-000\-000\ 00;1;x'; end; в неё нужно передать управление. За место call ставить TForm2.DBEditEh2EditButtons0Click ??? |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
DBEditEh2EditButtons0.Click; или
DBEditEh2EditButtons0Click(nil); или DBEditEh2EditButtons0.OnClick(nil); А вообще на мой взгляд было бы грамотнее вынести процедуру за кнопку. procedure Call; begin DBEditEh2.EditMask := ''; DBEditEh2.EditMask := '000\-000\-000\ 00;1;x'; end; и вызов положить в кнопку procedure TForm2.DBEditEh2EditButtons0Click(Sender: TObject; var Handled: Boolean); begin Call; end; а дальше как в примерах выше, только мне больше нравится Repeat, т.е. procedure FindEdit; var n: Integer; begin n:= 1; Repeat if dbEdit1.Text[n] = ' ' then begin Call; inc(n); Until (n>Length(dbEdit1.Text)) or (dbEdit1.Text[n] = ' ') end; Он как-то гибче чтоли?... Хотя это дело вкуса. |
|||
|
||||
| SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
Bes Неправильный код (прибавление n идет перед until)
Во вторых при пустой строке будет ошибка
|
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2SlaUr:
Ну если честно я не компилировал так набросал. А какая разница где прибавлять? Ну у тебя росто с нуля начинается у меня с 1 просто везде выше начиналось с единицы. А.. попробовал - понял согласен - накосячил. на выходе надо дописать было n-1 и проверочку конечно.. :-) |
|||
|
||||
| SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
BesОшибки делают все .Я просто поправил и все ,так что все нормально.
|
|||
|
||||
| AlexSn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
круто!:) спасибочки!!!
|
|||
|
||||
| AlexSn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
Последний вопросик., простите если глупый.
Где и как объявить процедуру call? Потому что в нутри процедуры ничего не работает! Вываливаются ошибки: undeclared identifier edit1 missing operator or semicolor ...... |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Сделать так берешь и пишешь м/у строчками
type TForm1 = class(TForm) private { Private declarations } public { Public declarations } Procedure Call; end; var Form1: TForm1; потом нажимаешь волшебную комбинацию клавиш Ctrl+Shift+C и у тебя должна появиться такая вот заготовочка. procedure TForm1.Call; begin Сюда и пишешь что тебе заблагорассудится. end; да и почему Edit если у тебя был dbEdit? |
|||
|
||||
| AlexSn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
вообщето Edit, но ведь разницы нет в моём случае
|
|||
|
||||
| SlaUr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 18.9.2003 Репутация: 3 Всего: 5 |
Можно и по другому
|
|||
|
||||
![]()
|
| Правила форума "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. |