![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вопрос по синтаксису.... [D7, WinXP]
Hereticsoul © (2004-08-04 12:44:00)Уважаемые мастера и мастерицы объясните пожалуйста зеленому почему вэтом коде (на выделеном тексте) компилятор выдает ошибку о том, что он не знает ulist причемв любой другой процедуре или функции в он прекрасно понимает что это 'TsTreeView'
unit LongDataTransfer;/////////////////////////////////////////
interface
uses ScktComp....
type
TMySProc = procedure(const S: AnsiString);
function F1(Socket: TCustomWinSocket; MySProc: TMySProc;SafeCalledStr: string = ''): boolean;
var
InputBuf: string;
InputDataSize: LongWord;
InputReceivedSize: LongWord;
implementation
procedure FlushBuffers;
begin
InputBuf := '';
InputDataSize := 0;
InputReceivedSize := 0;
end;
function ReceiveLongText(Socket: TCustomWinSocket; MySProc: TMySProc;
SafeCalledStr: string = ''): boolean;
var
S: string;
RDSize: LongWord;
F: string[4];
begin
Result := True;
try
if SafeCalledStr = '' then
begin
RDSize := Socket.ReceiveLength;
S := Socket.ReceiveText;
end
else
begin
S := SafeCalledStr;
RDSize := length(S);
end;
if (Length(InputBuf) < 4) and (Length(InputBuf) > 0) then
begin
S := InputBuf + S;
FlushBuffers;
end;
if InputBuf = '' then
begin
F := Copy(S, 0, 4);
asm
mov EAX,dword ptr F[1];
mov InputDataSize,EAX;
end;
if InputDataSize = RDSize - 4 then
begin
InputBuf := Copy(S, 5, RDSize - 4);
MySProc(InputBuf);
FlushBuffers;
Exit;
end;
if InputDataSize < RDSize - 4 then
begin
InputBuf := Copy(S, 5, InputDataSize);
MySProc(InputBuf);
Delete(S, 1, InputDataSize + 4);
FlushBuffers;
ReceiveLongText(Socket, MySProc, S);
Exit;
end;
if InputDataSize > RDSize - 4 then
begin
InputBuf := Copy(S, 5, RDSize - 4);
InputReceivedSize := RDSize - 4;
end;
end
else
begin
if RDSize + InputReceivedSize = InputDataSize then
begin
InputBuf := InputBuf + Copy(S, 0, RDSize);
MySProc(InputBuf);
FlushBuffers;
Exit;
end;
if RDSize + InputReceivedSize < InputDataSize then
begin
InputBuf := InputBuf + Copy(S, 0, RDSize);
InputReceivedSize := InputReceivedSize + RDSize;
Exit;
end;
if RDSize + InputReceivedSize > InputDataSize then
begin
InputBuf := InputBuf + Copy(S, 0, InputDataSize - InputReceivedSize);
MySProc(InputBuf);
Delete(S, 1, InputDataSize - InputReceivedSize);
FlushBuffers;
ReceiveLongText(Socket, MySProc, S);
end;
end;
except Result := False;
end;
end;
end.
unit Mainunit;ulist.Items.Addchild(x,tmp).StateIndex:=0;</B>
.........
type
TForm1 = class(TForm)
Ulist: TsTreeView;
.........
uses LongDataTransfer;
.........
function F2(st1:string):boolean;
var
tmp:string;
x:ttreenode;
begin
...
...
end;
procedure DataProcessing(S: string);
begin
F2(s);
end;
procedure TForm1.cs1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
F1(cs1.Socket,@DataProcessing);
end;
Заранее благодарю Евгений
TUser (2004-08-04 13:00:00) [1]На сайте у Анатоли Подгорецкого - куча классной литературы. Прежде всего ТП. Еще есть всякие факи, статьи на этом и других сайтах, хороший сайт такой DelphiWorld и пр.
Hereticsoul (2004-08-04 12:55:00) [2]2Sandman25 © спасибо ... во меня клинит...:)
Слушай а ты не можешь посоветовать какую-нить литературу по делфи
Sandman25 (2004-08-04 12:47:00) [3]function F2
procedure TForm1.cs1Read