Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2008, 10:16   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Почему бы так не сделать????
Дык понятно, но "if условие if выполняется". Здесь я подразумеваю что "выполняется" не всегда равно "условие".
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.02.2008, 10:23   #12
Domovoy
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 254
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
Примеры:
try
im:=timage.create(self);
...
finaly
im.free;
end;

в этом случае по окончанию выполнения блока комманд выполнится комманда (блок комманд) идущая после ключевого слова Finaly. ОДнако если в блоке комманд между try и finaly произойдет исключение, то финальный блок не выполниться......
Если честно слышать такой бред от модератора как то странно.....
Блок finally выполняется в ЛЮБОМ СЛУЧАЕ!!!
Domovoy вне форума Ответить с цитированием
Старый 01.02.2008, 10:43   #13
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Выполниться, но до возбуждения исключения, в отличие от двйного блока, что собственно и имелось ввиду.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.02.2008, 16:15   #14
Ermiss
Пользователь
 
Регистрация: 31.10.2007
Сообщений: 62
По умолчанию

С двумя Ифами не прокатит, поскольку если в первом случае условие не выполнилось, то до второго Ифа дела даже не дойдет, программа выдает ошибку.
Пробовал с Try ... except и Finally, тоже не идет....выдает ошибку!

Так тада попробую конкретно на примере объяснить:
Есть две таблицы. По заданному критерию в первой таблице нужно найти данные и удалить (но возможно что данные не будут найдены, они могли быть удалены ранее, вот тут то и нужно использовать Try дабы не вышла ошибка при выполнение команды Delete)... вот и далее если команда не находит данные, то она выводит мессагу о том, что данные были удалены ранее! Вот у меня
Это исходник на процедуру:

Цитата:
procedure TClient.GifOplClick(Sender: TObject);
begin
if table1money.Text='Оплачено' then application.MessageBox('Уже оплачено', 'Ошибка',mb_Ok+mb_IconError)
else begin
If application.MessageBox('Сохранить изменения?','Подтверждение',mb_YesN o+mb_IconQuestion)=idyes then begin
table1.Edit;
table1money.Text:='Оплачено';
table1.Post;
gifsav.Enabled:=false;
try
table2.Filtered:=true;
table2.Filter:='Vinkod='+''''+DBedi t24.Text+'''';
table2.Delete;
except showmessage('Данные были удалены ранее'); end;

end else abort; end;
end;

Последний раз редактировалось Ermiss; 01.02.2008 в 16:21.
Ermiss вне форума Ответить с цитированием
Старый 01.02.2008, 22:14   #15
Ermiss
Пользователь
 
Регистрация: 31.10.2007
Сообщений: 62
По умолчанию

Ну тк чево, ни кто не знает в чем ошибка то?

Алгоритм вроде правильно написан, но он не работает так как надо.
Ermiss вне форума Ответить с цитированием
Старый 03.02.2008, 08:18   #16
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

на какую строку и какую ошибку выдает ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 03.02.2008, 11:34   #17
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Что за ошибка-то? Времени компиляции или времени выполнения? Если второе, то убери Stop on Delphi Exceptions.
still_alive вне форума Ответить с цитированием
Старый 03.02.2008, 18:44   #18
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
С двумя Ифами не прокатит, поскольку если в первом случае условие не выполнилось, то до второго Ифа дела даже не дойдет, программа выдает ошибку.
Пробовал с Try ... except и Finally, тоже не идет....выдает ошибку!
Ошибка при использовании try вылетает скорее всего по той причине, что у вас она возникает на этапе тестирования приложения (как правильно сказато не знаю), тоесть когда вы нажимаете в Делфи F9 и смотрите как работает программа. В таком случае поведение программы не идентично поведению при запуске не из Делфи.
Поясняю на примере. Создайте приложение с одной формой и кнопкой на ней. Для события нажатия на кнопку напишите:
Код:
var
  s: String;
  i: Integer;
begin
  s := 'qqq';
  try
    i := StrToInt (s);
    ShowMessage (IntToStr (i));
  except
    ShowMessage ('Не вышло');
  end;
end;
Нажмите F9 и проверте, что произойдет по нажатию на кнопку. А потом запустите откомпилированный EXE-файл из проводника и опять нажмите на кнопку. Увидите разницу.
Возможно, что в вашем случае происходит то же самое. Выскакивающее сообщение об ошибки сбивает вас с толку и вы думаете, что программа выполняется не так как вам надо.
ЗЫ: Заранее принашу свои извенения, если ответ был глупым, но чем черт не шутит.

2 still_alive
Цитата:
Что за ошибка-то? Времени компиляции или времени выполнения? Если второе, то убери Stop on Delphi Exceptions.
А это где?

Последний раз редактировалось Sibedir; 03.02.2008 в 18:48.
Sibedir вне форума Ответить с цитированием
Старый 03.02.2008, 19:54   #19
Ermiss
Пользователь
 
Регистрация: 31.10.2007
Сообщений: 62
По умолчанию

Вот ошибка!

Строка "Table2.delete"
Изображения
Тип файла: jpg ошибка.JPG (17.4 Кб, 149 просмотров)

Последний раз редактировалось Ermiss; 03.02.2008 в 20:03.
Ermiss вне форума Ответить с цитированием
Старый 03.02.2008, 20:26   #20
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

И ? а прочитать и перевести ошибку ?
ваш dataset пуст на момент попытки удаления.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Собираю команду mig-site Gamedev - cоздание игр: Unity, OpenGL, DirectX 20 01.02.2010 17:01
Как послать команду AngelOfDeath Работа с сетью в Delphi 2 10.04.2008 08:23
Набираю команду chopa Gamedev - cоздание игр: Unity, OpenGL, DirectX 17 03.10.2007 13:05
Подскажите команду kayman БД в Delphi 0 14.09.2007 13:11