Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2014, 21:01   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от AppData Посмотреть сообщение
как теперь вывести жесткие в ComboBox1.Items.Add?
да точно так же!

Код:
id := getHardDriveComputerID(r, TS);
for i := Low(r) to High(r) do 
      ComboBox1.Items.Add(r[i].НУжноеПолеИлиПоля);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.09.2014, 10:24   #12
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да точно так же!

Код:
id := getHardDriveComputerID(r, TS);
for i := Low(r) to High(r) do 
      ComboBox1.Items.Add(r[i].НУжноеПолеИлиПоля);
Код:
id := getHardDriveComputerID(r, TS);
for i := Low(r) to High(r) do
      ComboBox1.Items.Add(r[i].DriveModelNumber);
Ошибка ((
AppData вне форума Ответить с цитированием
Старый 12.09.2014, 13:18   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Ошибка ((
секретная?!

у меня, кстати, никакой ошибки нет:
Project1exe.rar
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.09.2014, 13:50   #14
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
секретная?!

у меня, кстати, никакой ошибки нет:
Вложение 69925
да нет, не секрет! вот. см..
Вложения
Тип файла: zip Project1.zip (18.1 Кб, 10 просмотров)
AppData вне форума Ответить с цитированием
Старый 13.09.2014, 08:41   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вы перенесли вызов getHardDriveComputerID(r, TS) на событие FormCreate, он отказался компилироваться, тогда Вы сделали переменную TS глобальной.
Код:
var 
TS : TStringList;
Только забыли, что перед использоваем объекта класса, нужно этот самый объект предварительно СОЗДАТЬ!

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  TS := TStringList.Create;
  id := getHardDriveComputerID(r, TS);
  ComboBox1.Items.Clear;
  for i := Low(r) to High(r) do
      ComboBox1.Items.Add(r[i].DriveModelNumber);
  if ComboBox1.Items.Count>0 then
     ComboBox1.ItemIndex := 0;
end;
ну и не забудьте на событии уничтожения формы (onDestroy), очистить свой TS:
Код:
procedure TForm1.FormDestroy(Sender: TObject);
begin
  if Assigned(TS) then FreeAndNil(TS);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.09.2014, 08:14   #16
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
По умолчанию

Serge_Bliznykov а как ты потом, почистил следы. оставив самое необходимое?
Drive Model Number
Drive Serial Number
Drive Controller Revision Number

copy?
AppData вне форума Ответить с цитированием
Старый 15.09.2014, 08:45   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а как ты потом, почистил следы. оставив самое необходимое?
не понял вопроса...
Зачем что-то чистить, когда данные уже отдельно в массиве записей. Каждое поле отдельно. Ничего чистить не надо.

А ты вообще про что? Это ты про программу из пост #13 спрашиваешь?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.09.2014, 10:20   #18
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
По умолчанию

да, а именно см. рис. я не хотел по copy past т.к. есть вероятность китайских закоряк
Изображения
Тип файла: jpg 11.JPG (38.4 Кб, 63 просмотров)
AppData вне форума Ответить с цитированием
Старый 15.09.2014, 10:39   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

у меня в исходниках такой код:
Код:
implementation

uses
  hwid_impl,
  winioctl,
  crtdll_wrapper;


{$R *.dfm}
var
  r: tresults_array_dv;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Enabled := false;
      Label1.Caption := '#н/д';
      Label2.Caption := '#н/д';
      Label3.Caption := '#н/д';
end;


procedure TForm1.Button1Click(Sender: TObject);
var id: Longint;
var TS : TStringList;
  i : integer;
begin
  TS := TStringList.Create;
  try
    id := getHardDriveComputerID(r, TS);

    ComboBox1.Items.Clear;
    for i := Low(r) to High(r) do
      ComboBox1.Items.Add(r[i].DriveModelNumber);

    if ComboBox1.Items.Count>0 then begin
      ComboBox1.ItemIndex := 0;
      ComboBox1.Enabled := true;
      ComboBox1Change(ComboBox1);
    end
    else
      ComboBox1.Enabled := true;
  finally
    FreeAndNil(TS)
  end;

end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
    if (ComboBox1.ItemIndex>=0)
          and (ComboBox1.ItemIndex<Length(r)) then begin
       Label1.Caption := '  модель: '+ r[ComboBox1.ItemIndex].DriveModelNumber;
       Label2.Caption := '  серийник: '+ r[ComboBox1.ItemIndex].DriveSerialNumber;
       Label3.Caption := '  ревизия: '+ r[ComboBox1.ItemIndex].DriveControllerRevisionNumber;
    end
    else begin
      Label1.Caption := '#н/д';
      Label2.Caption := '#н/д';
      Label3.Caption := '#н/д';
    end;

end;


end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.09.2014, 11:16   #20
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
По умолчанию

собственно теперь почему мне это нужно было..

теперь последний вопрос, как лучше сделать так чтобы...

можно конечно так..

Код:
if ComboBox1.Items.Count then // уточняем количество жестких дисков.
Memo1.Add(r[ здесь само собой первый ].DriveModelNumber);
если есть второй 
Memo1.Add(r[ значит добавляем второй ].DriveModelNumber);
вот именно как то так.
AppData вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sleep привязать Label1 Monotonik C++ Builder 11 07.05.2011 17:21
имя файла в Label1 )Игнат( Общие вопросы Delphi 5 26.06.2009 19:42
Проблема с Label1 Vladnet Общие вопросы Delphi 2 31.03.2009 23:44
label1 blackstersl Общие вопросы Delphi 3 11.09.2008 17:21
label1 in panel blackstersl Общие вопросы Delphi 1 09.09.2008 19:20