Библиотека с формой

Автор Nesh, 22.12.05, 19:21:03

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Nesh

скажите, как мне в библиотеку всунуть форму (на Делфи)?

Gek

Скорее всего, никак. Сам с этим бился. Перешел на C Builder, все всунулось без проблем.
Так что, коллега, лучше быть полиглотом :)

Kredo

Думаю, что если посомтреть пример в папке KOMPAS-3D V7 Plus\SDK\Pascal\Delphi\gayka\, то всё станет понятным т Вы увидите, что это возможно

Gek

 Пример показывает, что это возможно, но ясным и прозрачным его не назовешь. Mr Kredo, выделите оттуда код, гарантированно запускающий форму. Я пытался, не получилось.

IronMaxxx

Ребята, вы че, издеваетесь  8-) ? Что может быть проще, чем всунуть в библиотеку форму на Delphi? Я понимаю, если бы кто-то тут спрашивал, как это все организовать через ресурсы в Visual C++, но на Delphi...

var kompas : KompasObject;

    ...

procedure LibraryEntry(command: WORD); pascal;
var Form1 : TForm1;
begin
  kompas := KompasObject(CreateKompasObject);
  if (kompas = nil) then exit;
  Application.Handle := kompas.ksGetHWindow;
  kompas.ksEnableTaskAccess(0);
  Form1 := TForm1.Create(Application);
  Form1.ShowModal;
  Form1.Free;
  kompas.ksEnableTaskAccess(1);
  Application.Handle := 0;
  kompas := nil;
end;

     ...

На Borland C++ Builder все аналогично. Причем в SDK где-то есть примеры и по C++ Builder, и по Delphi...
Вот так вот... и ничего тут сложного  :um:

Gek

Честно содрал приведенный фрагмент и засунул в свою библиотеку. Компилятор сказал что не знает что такое Application.
Да и откуда ему знать? Ведь Application работает в полноценном проекте (program), а не в библиотеке (library). Или нужно все-таки делать контроллер?

Gek

Хотя странно, в примере gayka Application работает  :o Или все дело в иерархической структуре - на верхнем уровне library, а потом unit ? У меня весь код в одной library.

Gek

Извиняйте, затупил я  ::) Библиотека должна использовать Forms! Вот и весь прикол. Ironmaxxx, спасибо.

IronMaxxx

Цитата: Gek от 29.12.05, 18:37:20
Извиняйте, затупил я  ::) Библиотека должна использовать Forms! Вот и весь прикол. Ironmaxxx, спасибо.

Пожалуйста! Всегда рад помочь  :fr: , просто на Delphi оно и вправду все легко и просто. Я вот сейчас с Microsoft Visual C++ .NET разбираюсь, вот там уже чуток повеселее, так легко не отделаешься  :~ .
Знаете, как Билл Гейтс сказал свои программерам при разработке новых версий Windows : "Не умеете сделать хорошо, так сделайте красиво"... Вот библиотека MFC (Microsoft Fundation Classes) на Visual C++ уж больно красивой получилась  ;)

Gek

Как ты оцениваешь .NET - реально прогрессивная вещь или очередной развод на деньги от жадного Билли?

IronMaxxx

Цитата: Gek от 29.12.05, 20:23:40
Как ты оцениваешь .NET - реально прогрессивная вещь или очередной развод на деньги от жадного Билли?

.NET - это не очередная выдумка Билла Гейтса  :o , это неизбежное следствие эволюции и развития программирования. Когда только появилась эта технология (я впервые с ней познакомился в Delphi 8 .NET), я подумал: "А зачем мне это нужно?",- и вернулся на Delphi 7... А сейчас вот жалею  :(... На самом деле возможность создания кроссплатформенных приложений - это  большой шаг вперед  :um:, хотя и сейчас многие еще этого может и не понимают. Не спорю, все зависит от поставленных целей, т.е. если Вы пишите какую-то небольшую узкопрофильную утилитку, то технология .NET и все связанные с ней навороты Вам ни к чему, но в серьезных приложениях (которые будут широко использоваться на разных машинах, в интернете и т.д.) .NET  предоставит кучу новых возможностей и сделает прогу совместимой (переносимой) на другие платформы, хоть без этого можно и обойтись. Вот и сейчас, имея уйму информации и литературы по Visual C++ 6, я решил все-таки сразу взяться за Visual C++ 7.1 .NET, как-никак новые технологии.
Не подумайте, я сам еще в .NET "плаваю" и много чего мне еще непонятно, но уже точно знаю, что без этого дальше никуда и решил серьезно за это взяться  :w:... 
Да и многие друзья - чистые программеры (не САПРовцы) давно советовали на .NET перебираться...

glibc

Цитата: IronMaxxx от 29.12.05, 20:51:18
Цитата: Gek от 29.12.05, 20:23:40
Как ты оцениваешь .NET - реально прогрессивная вещь или очередной развод на деньги от жадного Билли?

.NET - это не очередная выдумка Билла Гейтса  :o , это неизбежное следствие эволюции и развития программирования. Когда только появилась эта технология (я впервые с ней познакомился в Delphi 8 .NET), я подумал: "А зачем мне это нужно?",- и вернулся на Delphi 7... А сейчас вот жалею  :(... На самом деле возможность создания кроссплатформенных приложений - это  большой шаг вперед  :um:, хотя и сейчас многие еще этого может и не понимают. Не спорю, все зависит от поставленных целей, т.е. если Вы пишите какую-то небольшую узкопрофильную утилитку, то технология .NET и все связанные с ней навороты Вам ни к чему, но в серьезных приложениях (которые будут широко использоваться на разных машинах, в интернете и т.д.) .NET  предоставит кучу новых возможностей и сделает прогу совместимой (переносимой) на другие платформы, хоть без этого можно и обойтись. Вот и сейчас, имея уйму информации и литературы по Visual C++ 6, я решил все-таки сразу взяться за Visual C++ 7.1 .NET, как-никак новые технологии.
Не подумайте, я сам еще в .NET "плаваю" и много чего мне еще непонятно, но уже точно знаю, что без этого дальше никуда и решил серьезно за это взяться  :w:... 
Да и многие друзья - чистые программеры (не САПРовцы) давно советовали на .NET перебираться...
А многие не сапровцы, смотрящие в будущее, советовали изучать прототипы функций XLib и более высокоуровневых библиотек под графический *nix.