Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.07.2014, 10:19
MotoArhangel MotoArhangel вне форума
Новичок
 
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
По умолчанию Как осуществить передача результатов функции из класса в класс?

Есть два класса необходимо передать результаты выполнения функции из одного класса в другой.
Вот классы:
Код:
  TProcessInfo=class
  var
    IsWow64Process: TIsWow64Process;
    QueryFullProcessImageNameW : TQueryFullProcessImageNameW;
  private
    Function Getpriority(id:THandle):string;
    Function GetProcessFilePath(PID: Cardinal; Var x64_x86, UserName : String): String;
    procedure Create;
  end;

 type
    TStatistic = class
    var
      procentry:  TProcessEntry32;
    public
      procedure SetProcessInfo(procinfogrid:TStringGrid);
 end;
Как понимаю так нельзя:
Код:
   with procinfogrid do
                            begin
                              if k>rowcount-1 then
                                rowcount:=rowcount+1;
                                cells[0,k]:= ProcessExe;
                                cells[1,k]:= inttostr(procentry.th32ProcessID);
                                cells[2,k]:= inttostr(procentry.cntThreads);
                                cells[3,k]:= TProcessInfo.GetPriority(procentry.th32processid);
                                cells[4,k]:= x86_x64;
                                cells[5,k]:= UserName;
                                if (Cells[5,k]='') then
                                  Cells[5,k]:='<Нет прав администратора>';
                                cells[6,k]:= ProcessName;
                                if (Cells[6,k]='') then
                                  Cells[6,k]:='<Нет прав администратора>';
                            end;
Интересует строка
Код:
 cells[3,k]:= TProcessInfo.GetPriority(procentry.th32processid);
Дайте ссылочку на полезную статью. Да и от помощи бы не отказался.
Ответить с цитированием
  #2  
Старый 04.07.2014, 13:04
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

В первый раз вижу var в описании класса. Я отстал?

По теме, сначала создай экземпляр класса TProcessInfo. Прмерно так:
Код:
var
  somename:TProcessInfo;
begin
  somename:=TProcessInfo.Create;
end;
А уже затем вызывай его методы:
Код:
  ...
  somename.GetPriority(procentry.th32processid);
  ...
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 09.07.2014, 10:45
MotoArhangel MotoArhangel вне форума
Новичок
 
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
По умолчанию

Не получается. Если не сложно подправьте с комментарием.
Вложения
Тип файла: zip ProccessInfo.zip (2.6 Кбайт, 5 просмотров)
Ответить с цитированием
  #4  
Старый 09.07.2014, 11:19
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Давай выкладывай проект с примером вызова. В модуле разбираться мне во первых - лень, во вторых - некогда
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 09.07.2014, 12:58
MotoArhangel MotoArhangel вне форума
Новичок
 
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
По умолчанию

Вот два варианта который рабочий, но там часть кода необходимо перенести. И второй перенес но не работает=(
Буду признателен если уделите мне немного времени.
Вложения
Тип файла: zip Переделать.zip (353.1 Кбайт, 1 просмотров)
Тип файла: zip Рабочий вариант.zip (1.26 Мбайт, 0 просмотров)
Ответить с цитированием
  #6  
Старый 09.07.2014, 14:16
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Поправил чтоб запускалось, остальные баги сам ищи. И почитай про ООП, у тебя нет понимания того что ты делаешь.
Вложения
Тип файла: 7z ProcessInfo_2014-07-09_14-13-38.7z (71.7 Кбайт, 3 просмотров)
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение:
MotoArhangel (09.07.2014)
  #7  
Старый 09.07.2014, 17:10
MotoArhangel MotoArhangel вне форума
Новичок
 
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
По умолчанию

Согласен. Спасибо. Книжку самую полезную посоветуйте. =)
Для обновления информации по таймеру необходимо создавать методы и передавать в основную форму?

Последний раз редактировалось MotoArhangel, 09.07.2014 в 17:38.
Ответить с цитированием
  #8  
Старый 09.07.2014, 18:10
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Я не смотрел архитектуру твоего приложения, поэтому не могу сказать как лучше тебе обновлять информацию.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #9  
Старый 09.07.2014, 20:21
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Aristarh Dark
В первый раз вижу var в описании класса. Я отстал?
Внутри класса можно и константы объявлять и т.д.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #10  
Старый 10.07.2014, 10:43
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Внутри класса можно и константы объявлять и т.д.
Это как это? Можно пример.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #11  
Старый 10.07.2014, 12:29
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Действительно можно:
Код:
uses
  SysUtils;

Type
 TMyClass = class
  var A: Integer;
  const B: String = 'MyClass';
 end;

Var
  MyClass: TMyClass;
begin
 MyClass := TMyClass.Create;
 MyClass.A := 1;
 WriteLn(MyClass.B);
 ReadLn;
end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #12  
Старый 10.07.2014, 13:57
MotoArhangel MotoArhangel вне форума
Новичок
 
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
По умолчанию

xD вот и я думаю, где то в статье видел=)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:25.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025