Конференция "Начинающим" » Dll в Delphi [D5, WinXP]
 
  • Olegus (07.07.08 23:54) [0]
    Мужики помогите кто может.
    function ShowNotifiPlugin(AHandle, DB_Handle: THandle): PChar;stdcall;
    begin
     try
     Application.Handle := AHandle;
     MainFrm := TMainFrm.Create(Application);
     result := PChar(MainFrm.handle);  
     MainFrm.Show;
     except on E: Exception do
       Result := nil;
     end;
    end;

    при вызове форма не появляется, но в панели задач как бы видно что форма создалась. Если удаляю   Application.Handle := AHandle; то работает но как отдельное приложение со своим дескриптором.
  • Сергей М. © (08.07.08 09:42) [1]
  • umbra © (08.07.08 10:12) [2]

    > result := PChar(MainFrm.handle);

    мощно :)


    > Application.Handle := AHandle;

    суть этого трюка в том, чтобы Application в длл было тем же, чтои в приложении? ТОгда это не сработает. Надо сам Application передавать, а не дескриптор его окна. В общем, неясен смысл манипуляций :)
  • Ega23 © (08.07.08 10:25) [3]

    > суть этого трюка в том, чтобы Application в длл было тем
    > же, чтои в приложении?


    Я могу ошибаться, но когда-то очень давно в какой-то древней статье так предлагалось сделать, дабы избежать появления формы в панели задач.
  • umbra © (08.07.08 11:56) [4]

    > Я могу ошибаться, но когда-то очень давно в какой-то древней
    > статье так предлагалось сделать, дабы избежать появления
    > формы в панели задач.

    судя по описанию все получилось с точностью до наоборот :)
  • Ega23 © (08.07.08 12:06) [5]

    > судя по описанию все получилось с точностью до наоборот
    > :)
    >

    Я про передачу Application.Handle

    Ну да, сейчас старый-старый проект посмотрел:


    function GetPhoto(Dev:Integer;AppHandle:THandle):Integer;
    var
    Rct:TRect;
    {$IFDEF OLYMPUS}
    PictureDlg:TTakePictureDlg;
    {$ELSE}
    aDev:Integer;
    {$ENDIF}
    begin
    {
    Моды вызова (Dev):
                           0 - тест,
                           1 - TWAIN,
                           2 - TWAIN с выбором источника
                           3 - OLYMPUS USB

    }


    Result:=1;
    Application.Handle:=AppHandle;

    Application.CreateForm(TFPreviewPhoto, FPreviewPhoto);
    .....

  • Olegus (08.07.08 19:03) [6]

    > суть этого трюка в том, чтобы Application в длл было тем
    > же, чтои в приложении? ТОгда это не сработает. Надо сам
    > Application передавать, а не дескриптор его окна. В общем,
    >  неясен смысл манипуляций :)

    если подскажете как это сделать (Апликейшн передавать) то цены вам нету ......как специалист:-))
    а смысл трюка в том чтобы винда видела одно приложение а не два или больше.
  • Сергей М. © (08.07.08 19:29) [7]
    Удалено модератором
  • palva © (08.07.08 20:40) [8]

    > Я могу ошибаться, но когда-то очень давно в какой-то древней статье...

    Наверно в статье Сергея Трепалина http://www.realcoding.net/article/view/680
  • Olegus (09.07.08 21:14) [9]
    Вроде обратился по адресу но помоч никто не может
  • Ping-Pong (09.07.08 21:38) [10]
    MainFrm.Show();
  • Olegus (09.07.08 21:53) [11]

    > MainFrm.Show();

    подробнее если  можно
  • Сергей М. © (09.07.08 22:04) [12]

    > Мужики помогите


    Мужик,тебе был дан материал для изучения в кач-ве "мужицкой помощи".

    Ты . мужик, этот материал читал ? Изучил ?
    Или не мужицкое это дело ?
  • Olegus (09.07.08 22:13) [13]

    > Мужик,тебе был дан материал для изучения в кач-ве "мужицкой
    > помощи".
    >
    > Ты . мужик, этот материал читал ? Изучил ?
    > Или не мужицкое это дело ?

    А тебе какое дело, если хочешь помоч помоги если нет поищи себе занятие
Есть новые Нет новых   [134435   +34][b:0][p:0.001]