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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2014, 10:08   #1
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
Восклицание cmd to label1

как вот это все, переделать не под cmd а под. проект! где можно будет вывести все три строки

Код:
   Write(Format ('Drive Model Number________________: [%s]'+#$0D#$0A, [modelNumber]));
   Write(Format ('Drive Serial Number_______________: [%s]'+#$0D#$0A, [serialNumber]));
   Write(Format ('Drive Controller Revision Number__: [%s]'+#$0D#$0A, [revisionNumber]));
скажем так

Код:
  label1.caption := ('Drive Model Number________________: [%s]'+#$0D#$0A, [modelNumber]));
   label2.caption :=  ('Drive Serial Number_______________: [%s]'+#$0D#$0A, [serialNumber]));
   label3.caption :=  ('Drive Controller Revision Number__: [%s]'+#$0D#$0A, [revisionNumber]));
помогите мне перебрать проект!
Вложения
Тип файла: zip source.zip (64.9 Кб, 8 просмотров)
AppData вне форума Ответить с цитированием
Старый 11.09.2014, 10:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
 label1.caption :=(Format ('Drive Model Number________________: [%s]'+#$0D#$0A, [modelNumber]));
   label2.caption :=(Format ('Drive Serial Number_______________: [%s]'+#$0D#$0A, [serialNumber]));
   label3.caption :=(Format ('Drive Controller Revision Number__: [%s]'+#$0D#$0A, [revisionNumber]));
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.09.2014, 11:27   #3
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
 label1.caption :=(Format ('Drive Model Number________________: [%s]'+#$0D#$0A, [modelNumber]));
   label2.caption :=(Format ('Drive Serial Number_______________: [%s]'+#$0D#$0A, [serialNumber]));
   label3.caption :=(Format ('Drive Controller Revision Number__: [%s]'+#$0D#$0A, [revisionNumber]));
очень смешно!
Вложения
Тип файла: zip source_label.zip (18.2 Кб, 8 просмотров)
AppData вне форума Ответить с цитированием
Старый 11.09.2014, 11:32   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
очень смешно!
Смех без причины признак ... М-да. Убери оттуда символы перевода каретки и строки. В Label они не нужны
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.09.2014, 11:59   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так устроит?
Project1HWID.rar
Project1EXE.rar
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2014, 13:31   #6
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
По умолчанию

Код:
Memo1.Lines.AddStrings(TS);
, не выход. мне именно в Label1.Caption вывести нужно!
AppData вне форума Ответить с цитированием
Старый 11.09.2014, 13:49   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
мне именно в Label1.Caption вывести нужно
Так выводите. В чём сложности то?! В худшем случае распарсите полученный текст из TS.

Кстати, Вас не смущает, что информация по Drive не по одному диску выводится?!
Мало того, что диски часто разбиты на несколько логических, так более того, нередки случаи, когда в системе присутствуют два и более жёстких диска.
Вам что, ЛЮБОЙ диск из представленных в системе нужен?

если любой диск подойдёт: Project1exe.rar

получно с помощью данного индо-кода:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var id: Longint;
    r: tresults_array_dv;
var TS : TStringList;
  i : integer;
begin
  TS := TStringList.Create;
  try
    id := getHardDriveComputerID(r, TS);
    // Memo1.Lines.AddStrings(TS);

    for i:= 0 to TS.Count - 1 do begin
      if Pos('Drive Model Number', TS.Strings[i])=1 then
         Label1.Caption := TS.Strings[i];
      if Pos('Drive Serial Number', TS.Strings[i])=1 then
         Label2.Caption := TS.Strings[i];
      if Pos('Drive Controller Revision Number', TS.Strings[i])=1 then begin
         Label3.Caption := TS.Strings[i];
         Break
      end;
    end;

  finally
    FreeAndNil(TS)
  end;

end;

Последний раз редактировалось Stilet; 11.09.2014 в 14:27.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2014, 14:54   #8
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
По умолчанию

Serge_Bliznykov, отлично! но а как если списком? скажем от 2 и более жестких дисков? скажем выбрать в ComboBox1 след .винт! а в label Он отображает
AppData вне форума Ответить с цитированием
Старый 11.09.2014, 16:35   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от AppData
но а как если списком? скажем от 2 и более жестких дисков? скажем выбрать в ComboBox1 след .винт! а в label Он отображает
вот. теперь Вы начинаете мыслить конструктивно.

вот теперь посмотрите на то, что за параметр передаётся в процедуру
getHardDriveComputerID() c именем r

обратите внимание на его тип:
var r: tresults_array_dv;

и что в нём возвращается:

Код:
type
//record for storing results (instead of printing on console)
  tresults_dv = record
    ControllerType: Integer; //0 - primary, 1 - secondary, 2 - Tertiary, 3 - Quaternary
    DriveMS: Integer; //0 - master, 1 - slave
    DriveModelNumber: String;
    DriveSerialNumber: String;
    DriveControllerRevisionNumber: String;
    ControllerBufferSizeOnDrive: Int64;
    DriveType: String; //fixed or removable or unknown
    DriveSizeBytes: Int64;
  end;

  tresults_array_dv = array of tresults_dv;
понимаете, куда я клоню?
Похоже, что всё, что Вам нужно, есть в этом динамическом массиве из записей!

Код:
    id := getHardDriveComputerID(r, TS);
    for i := Low(r) to High(r) do begin
       Memo1.Lines.Append('Диск №'+IntToStr(i));
       Memo1.Lines.Append('  модель: '+ r[i].DriveModelNumber);
       Memo1.Lines.Append('  серийник: '+ r[i].DriveSerialNumber);
    end;

Последний раз редактировалось Serge_Bliznykov; 11.09.2014 в 16:39.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2014, 16:55   #10
AppData
Форумчанин
 
Регистрация: 20.09.2013
Сообщений: 248
По умолчанию

как теперь вывести жесткие в ComboBox1.Items.Add?
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