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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2012, 17:25   #1
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию Ошибка

Добрый день!

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

Я почти все сделал, но дельфа выдает ошибку
[Error] Unit4CozdanieFleshki.pas(150): 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;
Глеб1991 вне форума Ответить с цитированием
Старый 18.05.2012, 17:56   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Трудно что-то советовать, не зная, для чего Вы применяете те или иные конструкции языка, а также в какой строке ошибка.
Предполагаю:
Код:
   Edit1.Text:=UpperCase(@Key);
s-andriano вне форума Ответить с цитированием
Старый 18.05.2012, 18:34   #3
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

Код:
GetDiskFreeSpaceEx((edit1.text [1]), FreeBytesAvailableToCaller, Totalsize, @FreeSize);
в этой строке а именно (edit1.text [1]) ему не нравиться что я пишу паскалевскую строку, а он работает в СИ. Вот я и не знаю, как из паскаль в си перевести - но эта моя версия
Глеб1991 вне форума Ответить с цитированием
Старый 18.05.2012, 19:20   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

http://www.transl-gunsmoker.ru/2009/...rs.html#mixing
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 18.05.2012, 19:40   #5
Глеб1991
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 23
По умолчанию

Код:
procedure TForm4.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 div 1024)div 1024) div 1000)+ 'ГБ';
   //label1
 end
 else begin
   Edit1.Text := '';
   label1.Caption := 'Диск не найден';
 end;
 Key := #0;
end;
Спасибо за ссылку, посмотрю обязательно, что там. Проблема решена.
Глеб1991 вне форума Ответить с цитированием
Старый 18.05.2012, 22:14   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Код:
   label1.Caption := IntToStr(((DiskSize div 1024)div 1024) div 1000)+ 'ГБ';
А Вы работаете с двоичными единицами или с десятичными?
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Ошибка run-time Error 1004 общая ошибка ODBC kaval88 Microsoft Office Excel 0 27.02.2011 20:20
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26