Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Turbo Vision для начинающих 
:(
    Опции темы
АлексейБ
Дата 2.9.2005, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 1.7.2005

Репутация: нет
Всего: нет



Подскажите пожалуйста, что я не правильно сделал.
В процедуре HandleEvent, пишет ошибку в этой строке cmNewWin: PrintClientList; (Unknown identifier).
Из учебника: В описание типа прикладной программы добавьте новый метод для просмотра коллекции, назвав его, например, PrintClientList. Свяжите вызов этой процедуры с некоторой командой меню. Для этого перекройте обработчик событий прикладной программы - метод TApplication.HandleEvent и в нем сопоставьте вызов данной процедуры соответствующей команде.
Мне непонятно, как перекрыть и где?
Заранее Благодарю.

Код

Program kur;
uses crt, App, Objects, Views, Drivers, Menus, MsgBox;
type
    TMyAppl=object(TApplication)
       constructor Init;
       procedure InitStatusLine;virtual;
       procedure InitMenuBar;virtual;
       procedure HandleEvent(var Event:TEvent);virtual;
    end;

    PClient=^TClient;
    TClient=object(Tobject)
        Name, Phone:PString;
        ClientList:PCollection;
        constructor Init (N, Ph: String);
        destructor Done; virtual;
        procedure PrintClientList;
    end;

var
   MyAppl:TMyAppl;
   Client:TClient;
   F:text;
const cmNewWin=100;

constructor TMyAppl.Init;
begin
     inherited Init;
     MessageBox('Sistema Konsultant'#13+
           'sdfgdsf...',nil, mfOkButton);  
end;

constructor TClient.Init;
begin
     ClientList:=New(PCollection,Init(10,5));
     Name:=NewStr(N);
     Phone:=NewStr(Ph);

     ClientList^.Insert(New(PClient, Init('Smirnov','67-67-89')));
     ClientList^.Insert(New(PClient, Init('Ivanov','11-22-33')));
end;

destructor TClient.Done;
begin
     dispose(Name);
     dispose(Phone);
end;

procedure PrintClient(P:Pclient);far;
begin
     With P^ do
     Writeln(F,Name^+ ''+Phone^);

end;

procedure TClient.PrintClientList;
begin
     Assign(f, 'c:\client.txt');
     Rewrite(f);
     ClientList^.ForEach(@PrintClient);
     Close(F);
          MessageBox('22',nil, mfOkButton);
end;

procedure TMyAppl.InitStatusLine;
var R:TRect;
begin
     R.Assign(0,24,80,25);
     StatusLine:=New(PStatusLine, Init (R,newStatusDef(0,$FFFF,
           NewStatusKey('~F1~Å«¼«Θ∞',kbF1,cmHelp,
           NewStatusKey('~F10~îÑ¡ε',kbF10,cmMenu,
           NewStatusKey('~Alt-X~éδσ«ñ',kbAltX,cmQuit,
           nil))),
     nil)));

end;

procedure TMyAppl.InitMenuBar;
var
  R:TRect;
begin
     R.Assign(0,0,80,1);
     MenuBar:=New(PMenuBar,Init(R,NewMenu(
         NewSubMenu('öá⌐½',hcNoContext,NewMenu(
            NewItem('ÄΓ¬αδΓ∞','F3',KbF3,cmNewWin,hcNoContext,
            NewItem('çá¬αδΓ∞','Alt-F3',kbAltF3,cmClose,hcNoContext,
            NewItem('E~x~it','Alt-x',kbAltX,cmQuit,hcNoContext,
            nil)))),
         NewSubMenu('Ĭ¡á',hcNoContext,NewMenu(
            NewItem('æ½ÑñπεΘÑÑ','F6',kbF6,cmNext,hcNoContext,
            NewItem('ÅαÑñδñπΘÑÑ','Shift-F6',kbShiftF6,cmPrev,hcNoContext,
            nil))),
         nil))
     )));

end;

procedure help;
begin
           MessageBox('Sistema Konsultant'#13+
           'sdfgdsf...',nil, mfOkButton);
end;

procedure TMyAppl.HandleEvent(var Event:TEvent);
begin
     inherited HandleEvent(Event);
     if Event.What=evCommand then
     begin
          case Event.Command of
               cmHelp:Help;
               cmNewWin: PrintClientList;
          else Exit;
          end;
     end;
end;


begin
     MyAppl.Init;
     MyAppl.Run;
     MyAppl.Done;
end.

PM MAIL   Вверх
volvo877
Дата 2.9.2005, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



АлексейБ,
во-первых, не забывай инициализировать объект Client (в вышеприведенной программе его инициализации я не увидел)...

Теперь об ошибке: она возникает, потому что метод PrintClientList определен в TClient, а вызывать его ты пытаешься из TMyAppl ... Делай так:

Код
case Event.Command of
  cmHelp:Help;
  cmNewWin: Client.PrintClientList;
else Exit;
end;

PM MAIL   Вверх
АлексейБ
Дата 2.9.2005, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 1.7.2005

Репутация: нет
Всего: нет



во-первых, не забывай инициализировать объект Client (в вышеприведенной программе его инициализации я не увидел)...

Извини не совсем понимаю можно для "чайника" с примером


Добавлено @ 11:46
Просто нужно было добавить строку в constructor TClient.Init; inherited Init;
PM MAIL   Вверх
АлексейБ
Дата 2.9.2005, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 1.7.2005

Репутация: нет
Всего: нет



сейчас выдает ошибку (Stack overflowe error)
в процедуре PrintClient(P:Pclient);far;
после слова begin

PM MAIL   Вверх
volvo877
Дата 2.9.2005, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата
Просто нужно было добавить строку в constructor TClient.Init; inherited Init;

И ты уверен, что после этого у тебя Client инициализируется? Я вынужден тебя разочаровать... Попробуй, установи на вновь добавленную строку курсор и нажми на F4 ( меню Run -> Go To Cursor) smile "No code generated for this line" Интересно, правда? И как же ты хочешь, чтобы работал метод НЕинициализированного объекта?
PM MAIL   Вверх
АлексейБ
Дата 2.9.2005, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 1.7.2005

Репутация: нет
Всего: нет



ты прав.
а как это исправить не подскажешь
PM MAIL   Вверх
volvo877
Дата 2.9.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



У тебя просто перемешано все в программе. Нужно разделить понятия "клиент" и "список клиентов". Например, вот так:
Код
Program kur;

Uses
  Crt, App, Objects, Views, Drivers,
  Menus, MsgBox;

Type
  PClient = ^TClient;
  TClient = Object(TObject)

    Name, Phone: PString;
    Constructor Init(n, Ph: String);
    Destructor Done; Virtual;

  End;

  PClientList = ^TClientList;
  TClientList = Object(TCollection)

    Constructor Init;
    Procedure Add(n, Ph: String);
    Procedure PrintClientList;

  End;

  TMyAppl = Object(TApplication)

    Constructor Init;
    Procedure InitStatusLine; Virtual;
    Procedure InitMenuBar; Virtual;
    Procedure HandleEvent(Var Event: TEvent); Virtual;

  End;


Var
  MyAppl: TMyAppl;
  myClientList: PClientList;
  F: Text;

Const
  cmNewWin = 100;

(* TClient *)
Constructor TClient.Init(n, Ph: String);
Begin
  Inherited Init;
  Name := NewStr(n);
  Phone := NewStr(Ph);
End;

Destructor TClient.Done;
Begin
  Dispose(Name);
  Dispose(Phone);
  Inherited Done;
End;


(* TClientList *)
Constructor TClientList.Init;
Begin
  Inherited Init(10, 5);

  { Это - просто пример, как добавлять данные в коллекцию }
  Add('Smirnov','67-67-89'); 
  Add('Ivanov','11-22-33');
End;

Procedure TClientList.Add(n, Ph: String);
Begin
  Insert(New(PClient, Init(n, Ph)))
End;

Procedure TClientList.PrintClientList;

  { Здесь будь внимательнее !!!
  В Help-е ясно сказано, что этот метод НЕ может быть глобальным }
  
  Procedure PrintClient(P: PClient); Far;
  Begin
     With P^ Do Writeln(F, Name^ + ' ' + Phone^);
  End;

Begin
  Assign(f, 'c:\client.txt');
  Rewrite(f);
  ForEach(@PrintClient);
  Close(f);

  MessageBox('22', nil, mfOkButton);
End;


{ По хорошему, это тоже можно сделать методом TMyAppl }
Procedure Help;
Begin
  MessageBox('Sistema Konsultant'#13+
             'sdfgdsf...',nil, mfOkButton);
End;

Constructor TMyAppl.Init;
Begin
  Inherited Init;
  MessageBox('Sistema Konsultant'#13+
             'sdfgdsf...',nil, mfOkButton);
End;

Procedure TMyAppl.InitStatusLine;
Var R: TRect;
Begin
  R.Assign(0,24,80,25);
  StatusLine := New(PStatusLine, Init (R,newStatusDef(0,$FFFF,
    NewStatusKey('~F1~Å«¼«??',kbF1,cmHelp,
    NewStatusKey('~F10~îÑ¡?',kbF10,cmMenu,
    NewStatusKey('~Alt-X~é??«ñ',kbAltX,cmQuit,
    nil))),
  nil)));
End;

Procedure TMyAppl.InitMenuBar;
Var R: TRect;
Begin
  R.Assign(0,0,80,1);
  MenuBar := New(PMenuBar,Init(R,NewMenu(
    NewSubMenu('öá?½',hcNoContext,NewMenu(
      NewItem('Ä?¬????','F3',KbF3,cmNewWin,hcNoContext,
      NewItem('çá¬????','Alt-F3',kbAltF3,cmClose,hcNoContext,
      NewItem('E~x~it','Alt-x',kbAltX,cmQuit,hcNoContext,
      nil)))),
    NewSubMenu('Ĭ¡á',hcNoContext,NewMenu(
      NewItem('æ½Ññ???ÑÑ','F6',kbF6,cmNext,hcNoContext,
      NewItem('Å?Ññ?ñ??ÑÑ','Shift-F6',kbShiftF6,cmPrev,hcNoContext,
      nil))),
    nil))
  )));
End;

Procedure TMyAppl.HandleEvent(Var Event:TEvent);
Begin
  Inherited HandleEvent(Event);
  If Event.What = evCommand Then Begin

    Case Event.Command Of
      cmHelp:Help;
      cmNewWin: myClientList^.PrintClientList;
    Else Exit;
    End;

  End;
End;

begin
  myClientList := New(PClientList, Init); { Иниц. коллекции }

     MyAppl.Init;
     MyAppl.Run;
     MyAppl.Done;

  Dispose(myClientList, Done); { Удаление коллекции }
end.


Это сообщение отредактировал(а) volvo877 - 2.9.2005, 14:24
PM MAIL   Вверх
АлексейБ
Дата 2.9.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 1.7.2005

Репутация: нет
Всего: нет



Просто супер. работает
Большое спасибо

PM MAIL   Вверх
АлексейБ
Дата 5.9.2005, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 1.7.2005

Репутация: нет
Всего: нет



для промстора коллекции нужно создать окно, в которое необходимо поместить объект TTerminal, который выводит информацию со скроллингом из некоторого буфера.
я создал новый тип
Код

    PMyWindow=^TMyWindow;
    TMyWindow=object(TWindow)
        Term:PTerminal;
        Buff:Text;
        constructor Init (var Bounds:TRect; WinTitle:String; WinNo:Integer);
    end;


создал экзмепляр стандартного окна (типа TWindow)
Код

R.Assign(0,1,80,24);
  Window:=New(PMyWindow,Init(R,'Spisok',WnNoNumber));
  DeskTop^.Insert(Window);


создаем терминал...
открываем файл buff.txt, client.txt. организовываем цикл пока не конец файла считывается строка из файла client.txt и записывается в buff.txt. теперь связываем b (переменная файла buff.txt) с терминалом

Код

constructor TMyWindow.Init (var Bounds:TRect; WinTitle:String; WinNo:Integer);
var
   Scroll:PScroller; HSB,VSB:PScrollBar;
begin

     TWindow.Init(Bounds,WinTitle,WinNo);
     VSB:=StandardScrollBar(sbVertical);
     HSB:=StandardScrollBar(sbHorizontal);
     GetExtent(Bounds);
     Bounds.Grow(-1,-1);
     New(Term,Init(Bounds,
              StandardScrollBar (sbVertical+sbHandleKeyboard),
              StandardScrollBar (sbHorizontal+sbHandleKeyboard),
         5000));
     Scroll:=New(PScroller,Init(Bounds,HSB,VSB));
     Insert(Scroll);

     assign(f,'C:\Client.txt');
     assign(b,'C:\buff.txt');
     reset(f); rewrite(b);
     while not (eof(f)) do
     begin
          readln(f,i);
          write(b,i);
     end;
     system.close(f);

     assignDevice(b,Term);
     insert(Term);

end;


Выводит новое окно с вертик. и горизонт. полосой прокрутки. БЕЗ ИНФОРМАЦИИ (коллекции из файла)
Ошибок не выдает, но конечного результата нет
подскажите плиз





PM MAIL   Вверх
volvo877
Дата 5.9.2005, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата
нужно создать окно, в которое необходимо поместить объект TTerminal

Тебе обязательно нужно работать с TTerminal-ом? По-моему проще для просмотра коллекции унаследоваться от TListBox ...
PM MAIL   Вверх
АлексейБ
Дата 5.9.2005, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 1.7.2005

Репутация: нет
Всего: нет



мне нужно сделать работу
есть методичка там в кратце указано, что нужно делать

вот я и пытаюсь
но в результате должно получится:
- вывод коллекции (- Диски( Название, Автор, год, кол-во песен)
и если можно при выборе диска открывалось еще одно окно для просмотра инфо. о песнях - на этом диске);
- сортировка;
- поиск;

посоветуй если лучше сделать это по другому

PM MAIL   Вверх
volvo877
Дата 5.9.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Вот, набросал тебе пример построения списка прямо из коллекции, без чтения файла. Чтобы посмотреть, как это работает - запусти программу и жми F9 (или Database -> View) :
Код
Program kur;
Uses
  Crt, App, Objects, Views, Drivers,
  Menus, MsgBox, Dialogs;

Type
  PClient = ^TClient;
  TClient = Object(TObject)
    Name, Phone: PString;
    Constructor Init(n, Ph: String);
    Destructor Done; Virtual;
  End;

  PClientList = ^TClientList;
  TClientList = Object(TCollection)
    Constructor Init;
    Procedure Add(n, Ph: String);
    Procedure PrintClientList;

    Procedure ViewClientList;
  End;

  { Вот то самое наследование от TListBox, о котором я говорил... }
  PClientL = ^TClientL;
  TClientL = Object(TListBox) 
    Function GetText(Item: Integer; MaxLen: Integer): String; Virtual;
  End;

  PClientDlg = ^TClientDlg;
  TClientDlg = Object(TDialog)
    CList: PClientL;
    Constructor Init;
    Procedure HandleEvent(Var Event: TEvent); Virtual;
  End;

  TMyAppl = Object(TApplication)
    Constructor Init;
    Procedure InitStatusLine; Virtual;
    Procedure InitMenuBar; Virtual;
    Procedure HandleEvent(Var Event: TEvent); Virtual;

    Procedure OpenClientDialog;
  End;


Var
  MyAppl: TMyAppl;
  myClientList: PClientList;
  F: Text;

Const
  cmNewWin = 100;
  cmViewList = 101;

  cmAdd        = 110;
  cmEdit       = 111;
  cmDelete     = 112;
  cmSearch     = 113;

(* TClient *)
Constructor TClient.Init(n, Ph: String);
Begin
  Inherited Init;
  Name := NewStr(n);
  Phone := NewStr(Ph);
End;
Destructor TClient.Done;
Begin
  Dispose(Name);
  Dispose(Phone);
  Inherited Done;
End;


(* TClientL *)
function TClientL.GetText(Item: Integer; MaxLen: Integer): String;
begin
  with PClient(List^.At (Item))^ do
    GetText := Name^ + ' (' + Phone^ + ')';
end;

(* TClientDlg *)
Constructor TClientDlg.Init;
Var
  R: TRect;
  Control : PView;
Begin
  R.Assign(7, 2, 72, 21);
  Inherited Init(R, 'Clients List');
  Options := Options or ofCenterX or ofCenterY;

  R.Assign(47, 3, 48, 17);
  Control := New(PScrollBar, Init(R));
  Insert(Control);

  R.Assign(3, 3, 47, 17);
  CList := New(PClientL, Init(R, 1, PScrollbar(Control)));
  CList^.NewList(myClientList);
  Insert(CList);

  R.Assign(2, 2, 19, 3);
  Insert(New(PLabel, Init(R, '~L~ist of clients', CList)));

  R.Assign(52, 3, 62, 5);
  Control := New(PButton, Init(R, '~A~dd', cmAdd, bfNormal));
  Insert(Control);

  R.Assign(52, 6, 62, 8);
  Control := New(PButton, Init(R, '~E~dit', cmEdit, bfDefault));
  Insert(Control);

  R.Assign(52, 9, 62, 11);
  Control := New(PButton, Init(R, '~D~elete', cmDelete, bfNormal));
  Insert(Control);

  R.Assign(52, 12, 62, 14);
  Control := New(PButton, Init(R, '~S~earch', cmSearch, bfNormal));
  Insert(Control);

  R.Assign(52, 16, 62, 18);
  Control := New(PButton, Init(R, '~C~lose', cmOK, bfNormal));
  Insert(Control);

  SelectNext(False);
end;

Procedure TClientDlg.HandleEvent(Var Event: TEvent);
Begin
  Inherited HandleEvent(Event);
  if Event.What = evCommand then
    case Event.Command of
      cmAdd:
        MessageBox('Client::Add not implemented yet...' ,nil, mfOkButton);
      cmEdit:
        MessageBox('Client::Edit not implemented yet...' ,nil, mfOkButton);
      cmDelete:
        MessageBox('Client::Delete not implemented yet...' ,nil, mfOkButton);
      cmSearch:
        MessageBox('Client::Search not implemented yet...' ,nil, mfOkButton);
      Else
        Exit;
    End;
  ClearEvent(Event);
End;


(* TClientList *)
Constructor TClientList.Init;
Begin
  Inherited Init(10, 5);
  Add('Smirnov','67-67-89');
  Add('Ivanov','11-22-33');
End;
Procedure TClientList.Add(n, Ph: String);
Begin
  Insert(New(PClient, Init(n, Ph)))
End;
Procedure TClientList.PrintClientList;
  
  Procedure PrintClient(P: PClient); Far;
  Begin
     With P^ Do Writeln(F, Name^ + ' ' + Phone^);
  End;
Begin
  Assign(f, 'c:\client.txt');
  Rewrite(f);
  ForEach(@PrintClient);
  Close(f);
  MessageBox('22', nil, mfOkButton);
End;

Procedure TClientList.ViewClientList;
Begin
End;

Procedure Help;
Begin
  MessageBox('Sistema Konsultant'#13+
             'sdfgdsf...',nil, mfOkButton);
End;
Constructor TMyAppl.Init;
Begin
  Inherited Init;
  MessageBox('Sistema Konsultant'#13+
             'sdfgdsf...',nil, mfOkButton);
End;

procedure TMyAppl.OpenClientDialog;
var
  Dlg: PClientDlg;
  Control: word;
  r: trect;
begin
  Dlg:=New(PClientDlg, Init);
  Control:=Desktop^.ExecView(Dlg);
  Dispose(Dlg, Done);
end;

Procedure TMyAppl.InitStatusLine;
Var R: TRect;
Begin
  R.Assign(0,24,80,25);
  StatusLine := New(PStatusLine, Init (R,newStatusDef(0,$FFFF,
    NewStatusKey('~F1~ Help',kbF1,cmHelp,
    NewStatusKey('~F10~ Menu',kbF10,cmMenu,
    NewStatusKey('~Alt-X~ Exit',kbAltX,cmQuit,
    nil))),
  nil)));
End;
Procedure TMyAppl.InitMenuBar;
Var R: TRect;
Begin
  R.Assign(0,0,80,1);
  MenuBar := New(PMenuBar,Init(R,NewMenu(
    NewSubMenu('~F~ile',hcNoContext,NewMenu(
      NewItem('~N~ew','F3',KbF3,cmNewWin,hcNoContext,
      NewItem('~C~lose','Alt-F3',kbAltF3,cmClose,hcNoContext,
      NewItem('E~x~it','Alt-x',kbAltX,cmQuit,hcNoContext,
      nil)))),
    NewSubMenu('~D~atabase',hcNoContext,NewMenu(
      NewItem('N~e~xt','F6',kbF6,cmNext,hcNoContext,
      NewItem('P~r~ev','Shift-F6',kbShiftF6,cmPrev,hcNoContext,
      NewItem('~V~iew', 'F9', kbF9, cmViewList, hcNoContext,
      nil)))),
    nil))
  )));
End;
Procedure TMyAppl.HandleEvent(Var Event:TEvent);
Begin
  Inherited HandleEvent(Event);
  If Event.What = evCommand Then Begin
    Case Event.Command Of
      cmHelp:Help;
      cmNewWin: myClientList^.PrintClientList;
      cmViewList:
        OpenClientDialog;

    Else Exit;
    End;
  End;
End;
begin
  myClientList := New(PClientList, Init); { init collection }
     MyAppl.Init;
     MyAppl.Run;
     MyAppl.Done;
  Dispose(myClientList, Done); { delete collection }
end.


Для того, чтобы реализовать сортировку, TClientList наследуй не от TCollection, а от TSortedCollection, тогда сортировка будет производиться автоматически по заданному тобой в методе Compare критерию...

Это сообщение отредактировал(а) volvo877 - 5.9.2005, 12:17
PM MAIL   Вверх
АлексейБ
Дата 5.9.2005, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 1.7.2005

Репутация: нет
Всего: нет



т.е. Constructor TClientList.Init - сюда нужно дописать, чтоб считывал информацию из файла.

а при выходе из программы записывал все в файл

процедура: PrintClient(P: PClient) уже не нужна, а
TClientList.PrintClientList - нужно очистить

буду думать


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.2341 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.