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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2022, 05:43   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Запретить повторную загрузку BPL с фреймом

Всех приветствую!
Кое веки решил создать тему, т.к. нужна помощь, не могу сообразить.
В общем, задача простая: нужно загрузить BPL с фреймом без закрытия основной программы, путем нажатия на одну кнопку.
Это я сделал уже.
Вот мой код:
Код:

  public
    Frame : TFrame;
    hm:Hmodule;
    { Public declarations }

...

procedure TMainForm.Button1Click(Sender: TObject);
var
  FrC : TFrameClass;
begin
  //1. Загружаю модуль
  hm := LoadPackage(Label1.Caption + 'Package1.bpl');
  //2. Если загрузка модуля прошла успешно
  if hm <> 0 then
  begin
    //3. Ищу класс моего фрейма
    if FindClass('TFrameTest') <> nil then
    begin
      FrC := TFrameClass(FindClass('TFrameTest'));
      //5. Если класс моего фрейма успешно найден
      if FrC <> nil then
      begin
        //6. Загружаю класс моего найденного фрейма
        frame := FrC.Create(self);
        frame.Align := alClient;
        frame.Parent := TabSheet1;
      end;
    end;
  end;
end;
Вопрос простой: как вывести сообщение, если BPL пакет уже загружен?
Просто сообщение, что-то вроде "Пакет уже загружен" и чтобы не срабатывало повторно попытка загрузки пакета.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 15.04.2022 в 07:46.
artemavd вне форума Ответить с цитированием
Старый 15.04.2022, 09:27   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
if hm<>nil then begin ShowMessage('уже!!!'); Exit; end;

Код:
initialization
   hm:=nil; //на всякий случай начальная инициализация
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 15.04.2022, 09:42   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
if hm<>nil then begin ShowMessage('уже!!!'); Exit; end;
Так не могу написать:
Код:
procedure TMainForm.Button1Click(Sender: TObject);
var
  FrC : TFrameClass;
begin
  //1. Загружаю модуль
  hm := LoadPackage(Label1.Caption + 'Package1.bpl');
  //2. Если загрузка модуля прошла успешно
  if hm <> nil then
  begin
    //3. Ищу класс моего фрейма
    if FindClass('TFrameTest') <> nil then
    begin
      FrC := TFrameClass(FindClass('TFrameTest'));
      //5. Если класс моего фрейма успешно найден
      if FrC <> nil then
      begin
        //6. Загружаю класс моего найденного фрейма
        frame := FrC.Create(self);
        frame.Align := alClient;
        frame.Parent := TabSheet1;
      end;
    end;
  end
  else
  begin
    ShowMessage('уже!!!'); 
    Exit;
  end;
end;
Выдается ошибка:
[dcc32 Error] Main.pas(88): E2015 Operator not applicable to this operand type
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 15.04.2022, 11:09   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

hm<>nil0
hm :=0
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 15.04.2022, 11:10   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
hm<>nil0
hm :=0
Это не помогло.
Все равно не срабатывает проверка. Даже если написать как ты предложил.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подтвердите повторную отправку формы volni HTML и CSS 0 15.10.2019 17:09
Передача сообщения между фреймом и ифреймом (frameset and iframe) Елена_05 JavaScript, Ajax 1 17.01.2014 16:45
Проблема с фреймом saidali HTML и CSS 0 20.12.2012 12:17
Создание закладки с фреймом внутри (Delphi) luckyfucker Общие вопросы Delphi 3 26.08.2012 14:06
С чего делать сайт если не с фреймов? Проблема с фреймом в IE. pufystyj HTML и CSS 10 25.01.2011 19:43