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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2010, 13:20   #1
Aleksey1989
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 127
По умолчанию Пример из книги "Библия делфи"

Здравствуйте. Помогите, пожалуйста, разобраться с примером кода из книги.

Код:
procedure TForm1.ClipboardChanged; 
var 
 I: Integer; 
begin 
 PasteButton.Enabled := False; 
 for I := 0 to Clipboard.FormatCount - 1 do 
  begin 
 if Clipboard.HasFormat(CF_BITMAP) then 
    begin 
     PasteButton.Enabled := True; 
     Break; 
    end; 
  end; 
end;
Описание: Для начала я делаю кнопку «Вставить» неактивной. Потом я запускаю цикл от 0 до
количества форматов в буфере обмена Clipboard.FormatCount. Внутри цикла происходит
проверка, если формат соответствует CF_BITMAP, то кнопку «Вставить» можно делать
активной и прерывать цикл проверки.

Собственно то, что мне не понятно: зачем в этом примере необходимо воспользоваться циклом, нельзя просто обойтись Clipboard.HasFormat(CF_BITMAP)?
Aleksey1989 вне форума Ответить с цитированием
Старый 16.11.2010, 13:48   #2
ZvEr_HaCkEr
VisualC++/DirectX
Форумчанин
 
Аватар для ZvEr_HaCkEr
 
Регистрация: 16.07.2010
Сообщений: 831
По умолчанию

нет,нельзя.так как цикл в данном случае проверяет буфер на наличие объекта bitmap, и если он находится, то управление передается вот этому обработчику
Код:
     PasteButton.Enabled := True; 
     Break;
ZvEr_HaCkEr вне форума Ответить с цитированием
Старый 16.11.2010, 14:29   #3
Aleksey1989
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 127
По умолчанию

Цитата:
Сообщение от ZvEr_HaCkEr Посмотреть сообщение
нет,нельзя.так как цикл в данном случае проверяет буфер на наличие объекта bitmap
HasFormat(формат), если я не путаю, возвращает булево значение: true-данные в буфере соответстуют формату, и false - в обратном случае. Дак зачем же нам проверять формат драйверов Clipboard.CountFormat раз, разве одного недостаточно, ведь будет происходить одно и то же, или я не прав?
Aleksey1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Библия "Delphi" 2 издание Arkuz БД в Delphi 18 10.01.2009 16:04
Help! Как проверить наличие "рисунков" в листах книги? Bezdar Microsoft Office Excel 4 15.08.2008 15:09