Конференция "Основная" » DLL немодальный вызов, MDI [D7, Win2k, WinXP]
 
  • IntruderLab (13.03.08 16:00) [40]
    Мне параметром ему хендл главной формы присваивать?
  • Сергей М. © (13.03.08 16:07) [41]
    О боже)...

    Ты в состоянии средствами отладчика отсановиться на строчке

    Result := LongInt(TfrmTest.Create(Application);



    и посмотреть, чему равно значения Application.MainForm, Application.MainForm.Visible, Application.MainForm.FormStyle ?
  • IntruderLab (13.03.08 16:12) [42]
    В состоянии :) Application = nil так что я думаю, что все остальное тоже nil
  • Сергей М. © (13.03.08 16:18) [43]

    > Application = nil


    Да быть того не может !
    Что угодно, но только не nil там должно быть.

    Если, конечно же, над этим не потрудились твои очумелые ручки)
  • IntruderLab (13.03.08 16:22) [44]
    Вот ShowMessage(Application.MainForm.Name) у меня frmMain, то есть как и должно быть
  • Сергей М. © (13.03.08 16:24) [45]
    Ну ?!

    А говоришь nil)


    > то есть как и должно быть


    Еще должно быть Application.MainForm.FormStyle = fsMDIForm - давай, проверяй ...
  • IntruderLab (13.03.08 16:28) [46]
    В вызове написал
    if Application.MainForm.FormStyle = fsMDIForm then ShowMessage('1');
    выскочило access violation
  • IntruderLab (13.03.08 16:32) [47]
    Все нормально! теперь fsMdiForm
  • IntruderLab (13.03.08 16:33) [48]
    Что дальше?
  • Сергей М. © (13.03.08 16:34) [49]
    А с чего ты взял, что причиной AV явилось именно Application=nil ?

    Ты давай уже не мудри, а воспользуйся для проверки отладчиком)
    А кустарщину с ShowMessage оставь для иных случаев)
  • Сергей М. © (13.03.08 16:36) [50]

    > Все нормально! теперь fsMdiForm


    Ну раз fsMdiForm, то пробуй так:

    Application.CreateForm('TfrmTest', frmTest);
  • IntruderLab (13.03.08 16:36) [51]
    я такого не говорил, сейчас все нормально, Application.MainForm := frmMain;
    Application.MainForm.FormStyle := fsMDIForm; Теперь как мне форму вызвать чтобы она стала дочерней, делаю как ранее:
    frmTest := TfrmTest.Create(Application);
    frmTest.FormStyle := fsMDIChild;
    frmTest.Show;
    он не ругается - но подвисает
  • Сергей М. © (13.03.08 16:39) [52]

    > frmTest.FormStyle := fsMDIChild;


    Что мешает выставить FormStyle=fsMDIChild у формы прямо в дизайн-тайм ?
  • IntruderLab (13.03.08 16:40) [53]
    Application.CreateForm(TfrmTest,frmTest); - программа просто висит - никаких реакций
  • Сергей М. © (13.03.08 16:41) [54]

    > frmTest.Show;


    Это лишнее.

    При создании MDIChild-формы она автоматически станет видимой
  • Сергей М. © (13.03.08 16:43) [55]
    Пробуй:

    try
    Application.CreateForm(TfrmTest,frmTest);
    except
     on e:exception do ShowMessage(e.Classname + ' ' + e.Message);
    end;

    Что видишь ?
  • IntruderLab (13.03.08 16:44) [56]
    никаких реакций, что я не так делаю :(
  • Сергей М. © (13.03.08 16:45) [57]

    > что я не так делаю


    Приводи уже полный текст тестового dll-проекта ..
  • IntruderLab (13.03.08 16:48) [58]
    После отлова exception вывалил debugger fault notification а перед этим висел :(
  • IntruderLab (13.03.08 16:49) [59]
    почту или аську мож дашь чтобы не светить - можешь прислать на intruderlab@mail.ru
 
Конференция "Основная" » DLL немодальный вызов, MDI [D7, Win2k, WinXP]
Есть новые Нет новых   [134484   +49][b:0][p:0.001]