Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Работа дельфи с внешь устройствами   Найти похожие ветки 

 
Глеб   (2012-05-18 14:56) [0]

Добрый день, прошу помочь в след.

У меня есть один эдит куда пользователь вводит символ, дельфи должна просмотреть этот символ и если этому символу соответствует имя логического диска, которые находиться на компе пользователя в другой эдит вывести общие объем диска если диска такого на компе нет, то программа должна вывести строку - диска нет

Как это реализовать в дельфи?

Использую дельфи 7 лайт


 
Cobalt ©   (2012-05-18 15:06) [1]

ключевые слова для гугла:
Volume, info, delphi


 
Медвежонок Пятачок ©   (2012-05-18 15:12) [2]

в другой эдит вывести общие объем диска

Edit2.text := <чего-то там в носу, и какой-то текст>;

"в другой эдит вывести" - это вот так.


 
Омлет ©   (2012-05-18 15:18) [3]

http://www.efg2.com/Lab/Library/Delphi/IO/D3DiskSpaceKludge.ZIP


 
Глеб   (2012-05-18 15:31) [4]

Омлет спасибо за программку - познавательно, я тут собрал из обрезков и получилось вот так сейчас под программу свою адаптирую и будет нормально

Медвежонок Пятачок так и не понял что ты написал и зачем оно мне

procedure TForm1.Button1Click(Sender: TObject);
 var
  FreeBytesAvailableToCaller: TLargeInteger;
  FreeSize: TLargeInteger;
  TotalSize: TLargeInteger;
begin
 GetDiskFreeSpaceEx("c:", FreeBytesAvailableToCaller, Totalsize, @FreeSize);
  Memo1.Lines.Add("VolumeName = "+IntToStr(Totalsize));
end;
end.


 
Медвежонок Пятачок ©   (2012-05-18 15:36) [5]

и зачем оно мне

я же не спрашиваю зачем ты спрашивал "как вывести?"

я ответил как вывести.
Когда спрашивают "как вывести", то обычно уже имеют само выводимое. И его остается только "вывести".


 
Медвежонок Пятачок ©   (2012-05-18 15:41) [6]

это все равно что задать такой вопрос:
я сажусь в поезд в балтиморе и еду в чаттанугу, а в кармане у меня листок с распечатанным содержимым диска це.
как такое реализовать в делфи?


 
Глеб   (2012-05-18 16:07) [7]

Медвежонок Пятачок истинна есть в твоих словах, помоги с ошибкой разобраться мне а то не пойму. Идет непонимание строки си и паскаля как мне избавиться от этой ошибки?

[Error] Unit4CozdanieFleshki.pas(149): Incompatible types: "Char" and "PAnsiChar"


procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);
 const
  mask : set of char =["A".."Z", "a".."z"];
 var
  FreeBytesAvailableToCaller: TLargeInteger;
  FreeSize: TLargeInteger;
  TotalSize: TLargeInteger;
 begin
  if Edit1.Text = " не имеет значение" then edit1.Text:="";
  if(Key in mask) then begin
                        Edit1.Text:=UpperCase(Key);
                       end;
  Key:=#0;
 begin
  GetDiskFreeSpaceEx(edit1.text [1]), FreeBytesAvailableToCaller, Totalsize, @FreeSize);
  label1.Caption(IntToStr(Totalsize));
 end;
end;


 
Медвежонок Пятачок ©   (2012-05-18 16:09) [8]

функция UpperCase хочет аргумент одного типа а ты ей суешь аргумент другого типа.


 
Глеб   (2012-05-18 16:11) [9]

Медвежонок Пятачок Да я понял это, а можешь на моём коде исправить ошибку?


 
Медвежонок Пятачок ©   (2012-05-18 16:15) [10]

зачем править в этом коде ошибку, ели весь этот код должен быть удален?

1. едит не нужен.
2. выбор диска вообще не нужен.
3. сразу получить список всех дисков, сразу получить инфу по ним и сразу  ее отобразить.

Сразу по всем дискам.

не заставляя юзера что-то там вводить в свой дурацкий UI


 
Глеб   (2012-05-18 16:18) [11]

Медвежонок Пятачок я бы с удовольствием сделал, как вы говорите, но у меня заказ и заказчик уже опр интерфейс поэтому мне и приходиться в его игры играть. Помогите мне с этим кодом


 
Медвежонок Пятачок ©   (2012-05-18 16:26) [12]

я думаю, что правильный порядок вещей такой:
сначала изучаешь как делается приведение типа чар к пансичар, а затем уже ищешь заказчика.
не наоборот.


 
Глеб   (2012-05-18 16:27) [13]

Т.е. не поможете - грустно


 
Медвежонок Пятачок ©   (2012-05-18 16:28) [14]

ну и это.
я как-то думаю, что заказчика твоего зовут "преподаватель информатики".
чьи занятия ты прогуливал.


 
Медвежонок Пятачок ©   (2012-05-18 16:28) [15]

Т.е. не поможете - грустно

я же тебе помог выше.
кури приведение типов.


 
Давайте будем жрать!   (2012-05-18 16:28) [16]


> я сажусь в поезд в балтиморе и еду в чаттанугу, а в кармане
> у меня листок с распечатанным содержимым диска це.как такое
> реализовать в делфи?
Подкиньте работающий код, кому не жалко, мне как раз такое щас нужно!


 
icWasya ©   (2012-05-18 16:41) [17]

>Глеб   (18.05.12 16:07) [7]
>[Error] Unit4CozdanieFleshki.pas(149): Incompatible types: "Char" and "PAnsiChar"

Начиная с D2009, тип Char становится 16-битовым WideChar.
Поэтому тип set of char становится несколько тяжеловесным.
А следовательно, стоит расписать
if (Key in mask) then
вот таким образом
if ((Key >="a")and(Key<="z") or (Key >="A")and(Key<="Z"))  then


 
Омлет ©   (2012-05-18 17:27) [18]


> Глеб

Медвежонок хочет сказать, что, прежде чем брать заказы, следует хотя бы учебник прочитать.

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
 Nop, DiskSize: int64;
begin
 if (Key in ["A".."Z", "a".."z"]) and
    GetDiskFreeSpaceEx(PAnsiChar(Key + ":\"), Nop, DiskSize, nil) then
 begin
   Edit1.Text := AnsiUpperCase(Key);
   label1.Caption := IntToStr(DiskSize);
 end
 else begin
   Edit1.Text := "";
   label1.Caption := "";
 end;
 Key := #0;
end;



> icWasya ©   (18.05.12 16:41) [17]
> А следовательно, стоит расписать...


set of AnsiChar.


 
Давайте будем жрать!   (2012-05-18 17:45) [19]


> Начиная с D2009, тип Char становится 16-битовым WideChar.
Вот вам и делфи 7 лайт


 
Германн ©   (2012-05-18 18:17) [20]


> Начиная с D2009, тип Char становится 16-битовым WideChar.

Это в данном случае не при чем.


 
Глеб   (2012-05-18 19:17) [21]

Омлет - вы правы, я не паскальщик, а больше на ассемблер заточен и некоторые спец языки. Дельфи я не знаю

Я вам благодарен за помощь.


 
Глеб   (2012-05-18 19:37) [22]

Омлет - не могли бы мне отправить на адрес gleb.lucenko@mail.ru ваш № банковского счета или счета финансовой системы



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.088 c
15-1340314077
ZV
2012-06-22 01:27
2013.03.22
Компонент Async32 не работает в С++


2-1345561687
toropoff
2012-08-21 19:08
2013.03.22
как понять case в описании записи?


15-1348391377
333333-й
2012-09-23 13:09
2013.03.22
State Mashine. Объясните.


2-1337694534
toropoff
2012-05-22 17:48
2013.03.22
ADO


15-1346515594
Artem
2012-09-01 20:06
2013.03.22
Как передать файл на 2 Мб на древний DOS ноутбук?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский