![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про KolService [Delphi]
Александр 2006 © (2007-12-17 10:46:00)KolService использует это:
Uses UWrd;
А где его взять?
Александр 2006 (2007-12-18 15:16:00) [1]P.S.
Всё классно, но вот одна неприятность: если запускать службу не с учётной записью LocalSystem, а какого-нибудь реального пользователя (ну, например, чтобы она имела доступ к UNC - ресурсу на чужом диске), то ни окошек нет (что в демке к KolService), ни кнопка остановки в окне "Службы" не активна, т.е. её вообще нельзя остановить. Чего-то всё-таки не хватает по сравнению с "традиционными" службами.
Как подправить? Кто-нибудь может разбирался?
Александр 2006 (2007-12-18 11:12:00) [2]> ребилдолу прими.
Это я не знаю что такое. Звиняйте...
> inherited AfterGeneratePAS(SL);
А вот это помогло. Всё работает, спасибо (собственно, это очевидно - просто давно не лазил в Delphi, поэтому малость туплю).
Дмитрий К (2007-12-17 18:08:00) [3]
> Тогда ругается на inherited в TKOLServiceEx.AfterGeneratePAS
> - несовместимые типы.
inherited AfterGeneratePAS(SL);
Barloggg (2007-12-17 17:53:00) [4]ребилдолу прими.
Александр 2006 (2007-12-17 16:00:00) [5]>Download again from...
Ничего не поменялось:
[Error] mckService.pas(59): Declaration of 'AfterGeneratePAS' differs from previous declaration
Jon (2007-12-17 15:39:00) [6]procedureAfterGeneratePAS
functionAfterGeneratePAS
That is wrong :-(
Download again from:
http://kolmck.net/Components/KOLService.zip
Александр 2006 (2007-12-17 14:30:00) [7]Спасибо за помощь, но теперь при компиляции выдается ошибка:
procedure AfterGeneratePAS( SL: TStringList ); override;
differs from previous declaration.
Смотрю предка - он TKOLDataModule, там оно выглядит как
function AfterGeneratePAS( SL: TStringList ):Boolean; override; -
что-то такое.
Меняю по тексту это дело.
Тогда ругается на inherited в TKOLServiceEx.AfterGeneratePAS - несовместимые типы.
Что-то не то наверно делаю изначально? Как надо сделать?
Dimaxx (2007-12-17 11:40:00) [8]Он короткий, поэтому кладу в виде поста:
unit UWrd;
interface
function words (str:string;d:char):integer;
function wordn (str:string;d:char;n:integer):string ;
function wordd (str:string;d:char;n:integer):string ;
function wordp (str:string;d:char;n:integer):integer;
function wordi (wrd,str:string;d:cHar):boolean;
function wordf (str:string;d:char;n:integer):string ;
implementation
function words;
var tempstr : string;
ins : boolean;
i,j : integer;
begin
tempstr := d + str + d;
ins := false;
j := 0;
for i := 1 to length(tempstr) do begin
if ins then
if tempstr[i] =d then ins:=false
else begin end
else
if tempstr[i]<>d then begin
inc(j);ins:=true;
end;
end;
words:=j;
end;
function wordn;
var i,j:integer;
tempstr:string;
begin
i:=words(str, d);
if i<n then begin
wordn:='';
exit;
end;
i:=1;
while words(copy(str,1,i), d)<n do inc(i);
j:=i;
tempstr:=str+d;
while tempstr[j]<>d do inc(j);
wordn:=copy(str,i,j-i);
end;
function wordd;
var i,j:integer;
sss:string;
tempstr:string;
begin
i:=words(str, d);
if i<n then begin
wordd:=str;
exit;
end;
i:=1;
while words(copy(str,1,i), d)<n do inc(i);
j:=i;
tempstr:=str+d;
while tempstr[j]<>d do inc(j);
sss :=copy(str,1,i-1);
wordd:=sss+copy(str,j+1,length(tempstr)-j);
end;
function wordp;
var i:integer;
begin
i:=words(str, d);
if i < n then begin
wordp := 0;
exit;
end;
i:=1;
while words(copy(str,1,i), d)<n do inc(i);
wordp := i;
end;
function wordi;
var i : integer;
begin
wordi := true;
for i := 1 to words(str, d) do
if wrd = wordn(str, d, i) tHen exit;
wordi := false;
end;
function wordf;
var i: integer;
begin
i := wordp(str, d, n);
wordf := '';
if (i > 0) and (i < length(str)) then
wordf := copy(str, i, length(str) - i + 1);
end;
end.
Jon (2007-12-17 11:39:00) [9]http://kolmck.net/KOLobjects.zip