|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.10.2007, 21:41 | #11 |
Пользователь
Регистрация: 13.10.2007
Сообщений: 11
|
Хорошо... А если мне нужно не закрыть форму а сделать ее активной?
|
17.10.2007, 00:09 | #12 |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
Возможно тогда стоит послать WM_SHOWWINDOW или WM_ACTIVATE ?
|
17.10.2007, 21:48 | #13 |
Пользователь
Регистрация: 13.10.2007
Сообщений: 11
|
Смотри вот текст моей программы:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Function F3(s:integer):integer; StdCall; var Form1: TForm1; implementation Function F3; external 'MyFunction.dll' name 'lala'; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var s4 : integer; begin s4 := strtoint(form1.Edit1.Text); form1.Label1.Caption:=inttostr(F3(s 4)); end; end. Одна кнопка, один эдит, один лабел. Вот текст длл: library Dll; Function func1(param1:integer):integer; begin Result:=param1; end; exports func1 index 0 name 'lala'; begin end. Дает ошибку. Замысел такой в эдит вводишь число и оно выводится в лабел. (ток не надо обьяснять что можно так form1.label1.caption:=form1.edit1.t ext я эт знаю но хочу через длл) |
18.10.2007, 16:21 | #14 | ||||
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
В программе
Цитата:
Цитата:
Цитата:
PS: "StdCall;" или везде пиши (это лучше) или нигде. PPS: импортируемую из dll функцию достаточно только объявить, сразу указав, что она внешняя, и не писать это в реализации. Т.е. в разделе Interface Цитата:
Последний раз редактировалось Maslan; 18.10.2007 в 16:25. |
||||