Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

Larry Laffer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mr_eoi, я это прекрасно знаю. Попроще нельзя?

----------
Save The Planet -- Kill YourSelf!
http://larry.nxt.ru

Всего записей: 604 | Зарегистр. 09-10-2004 | Отправлено: 17:40 05-07-2005
BrotherAlex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
evle, число 255 в 16-чном формате ведь должно быть представлено как FF, а если просто присваивать a: byte = 255, то будет не FF

А что будет?
 
Делаю
 
procedure TForm1.Button1Click(Sender: TObject);
var
  mmm : byte;
begin
  mmm:=SpinEdit1.Value; (255)
  Label1.Caption:=IntToHex(mmm,2);
end;
 
Получаю FF
Иначе и быть не должно

Всего записей: 82 | Зарегистр. 09-09-2004 | Отправлено: 17:43 05-07-2005 | Исправлено: BrotherAlex, 17:45 05-07-2005
mr_eoi



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Larry Laffer
Сам TSpinEdit умеет отображать числа только в десятичном формате (заданно жёстко). Если потребно уметь работать с числами любого основания исчисления, придётся использовать связку TEdit + TUpDown (я, к примеру, делал представление чисел аж в 24-ричной системе).

----------
Per Aspera Ad Astra...

Всего записей: 2187 | Зарегистр. 10-08-2003 | Отправлено: 18:16 05-07-2005
BrotherAlex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблемка.
Есть форма на которой лежит много разноцветных TStaticText , как только кладу на форму TXPManifest  все StaticText становятся черного цвета (в RunTime)
 
В какую сторону ковырять?

Всего записей: 82 | Зарегистр. 09-09-2004 | Отправлено: 17:56 06-07-2005 | Исправлено: BrotherAlex, 17:57 06-07-2005
mr_eoi



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BrotherAlex
А если манифест ресурсами цеплять? Я так, например, в Delphi 3 делаю.

----------
Per Aspera Ad Astra...

Всего записей: 2187 | Зарегистр. 10-08-2003 | Отправлено: 18:04 06-07-2005 | Исправлено: mr_eoi, 18:05 06-07-2005
BrotherAlex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пофиг - откомпилил без манифеста - все нормально
Сую в ресурс манифест глюки

Всего записей: 82 | Зарегистр. 09-09-2004 | Отправлено: 18:52 06-07-2005
mr_eoi



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BrotherAlex
А не пробовал со свойством Transparent у StaticText поиграться? Если не поможет, переставь дрова своей видюхи.

----------
Per Aspera Ad Astra...

Всего записей: 2187 | Зарегистр. 10-08-2003 | Отправлено: 19:00 06-07-2005 | Исправлено: mr_eoi, 19:16 06-07-2005
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mr_eoi

Цитата:
А не пробовал со свойством Transparent у StaticText поиграться? Если не поможет, переставь дрова своей видюхи.

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

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:22 07-07-2005
MICROPOM



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я хочу написать программу, которая сможет закрывать тот или иной порт либо ваще варубить сетевую карту. А ещё можно ли отключить другое устройство, например жёсткий диск.
Подскажите плизз, как это сделать.

Всего записей: 30 | Зарегистр. 23-11-2004 | Отправлено: 09:58 07-07-2005
BrotherAlex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А не пробовал со свойством Transparent у StaticText поиграться?

С транспарент=False все нормально.  Премного сенькаю.

Всего записей: 82 | Зарегистр. 09-09-2004 | Отправлено: 13:06 07-07-2005
Z MeZe



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может спрошу совсем хрень,.. но все же:
считаю файл в длинную строку.

  var
    Sbuf: PChar;   // длинная строка
    buf: array [0..65535] of char; // буфер чтения
    Size: Longint; // длина файла
    ...
  begin
    Sbuf := StrAlloc(size)
 
     {  ... открытие файла и т.д. ...  }
 
   repeat
 
     {  ... считывание в буфер и т.д. ...  }
 
    StrCat(SS, buffer); // "накапливаем" строку
 
     {  ... и т.д. ...  }
 
   until // конец файла
  end;

Файл содержит вещественные числа, но есть и текст.
Так вот в чем вопрос:
Как мне выцепить из этой строки числа и их в массив?
 
Может я сунулся не в то направление, подскажите тогда другое решение (буфер массива char обязателен).
 
Добавлено:
Короче, как быстро проанализировать эту стоку (если это так делается). Или предложите вариант.

Всего записей: 455 | Зарегистр. 09-02-2004 | Отправлено: 23:32 07-07-2005 | Исправлено: Z MeZe, 23:34 07-07-2005
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Z MeZe

Цитата:
  Sbuf: PChar;   // длинная строка
это не длинная строка, это все-таки строка с нулевым окончанием, длинная строка вроде string если ничего не указывать компилятору, то он ее по умолчанию  

Цитата:
 
AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters
The reserved word string functions like a generic type identifier. For example,
 
var S: string;
 
creates a variable S that holds a string. In the default {$H+} state, the compiler interprets string (when it appears without a bracketed number after it) as AnsiString.
 

так что строки немножко длиннее будут, чем PChar.
Немножко бредово насчет
Цитата:
буфер массива char обязателен
в общем, я бы делал для выдирания чисал след. образом (только это работает с обычными строками), потом 2 способ
используешь val она возвращает позицию символа который нельзя перевести в число, то есть если это все загать в цикл и удалить вначале все не цифры, то потом получая позицию ошибочного элемента, мы копируем все символы от начала строки в массив чисел, потом удаляем все до ошибочного символа, и опять сканируем дальше.
второй способ, создаем множество символов и добавляем туда точку, потом начинаем сканировать строку, как только находишь символ из множества, запоминаешь его позицию. потом ищешь пока не найдешь символ не из множества копируешь что посередине это твое число, потом обрезаешь строку, до символа не из множества включительно.
Третий способ, вроде можно парсить строку RegExp но я их не использовал, мож кто другой знает.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:02 08-07-2005
Z MeZe



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt

Цитата:
Немножко бредово насчет  

Цитата:
 
Цитата:
буфер массива char обязателен

 

Дело в том, что у меня есть интерфейсная функция обращения к файлу (не моя, а стандартизированная), в которой буфер есть PChar.
У меня была мысль читать весь файл куда-нибудь к себе в Темр, а потом делать все что я хочу? Может это очень вычурно, но другого пути я, если честно уже не вижу?
 

Цитата:
в общем, я бы делал для выдирания чисал след. образом (только это работает с обычными строками), потом 2 способ  
используешь val она возвращает позицию символа который нельзя перевести в число, то есть если это все загать в цикл и удалить вначале все не цифры, то потом получая позицию ошибочного элемента, мы копируем все символы от начала строки в массив чисел, потом удаляем все до ошибочного символа, и опять сканируем дальше.  
второй способ, создаем множество символов и добавляем туда точку, потом начинаем сканировать строку, как только находишь символ из множества, запоминаешь его позицию. потом ищешь пока не найдешь символ не из множества копируешь что посередине это твое число, потом обрезаешь строку, до символа не из множества включительно.  
Третий способ, вроде можно парсить строку RegExp но я их не использовал, мож кто другой знает.

Сейчас попробую разобраться. А это, мне кажется, займет кучу времени?.. Не знаю...
---
А как тогда просто-напросто нормально (быстро) прочитать след. файл (ну и, соответственно, записать Single в массив, а все остальное в переменные):
#
{какое-то выражение типа String фиксированной длины, допустим 12 байт}
{фиксированный набор значений типа Integer. допустим 6 чисел}
{фиксированный набор значений типа Single. допустим 2 000 000  чисел}
#
Все значения записаны не в байтах, а текстом.
Разделители: ' ', #9, #10#13 в любом сочетании и количестве.

Всего записей: 455 | Зарегистр. 09-02-2004 | Отправлено: 11:24 08-07-2005 | Исправлено: Z MeZe, 11:26 08-07-2005
Solnake



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите где можна найти харошие уроки по ООП в Delphi но основаные больше на практике. НУ чобы показывали это все на практике а не только в теории. Как ООП использовать правильно в каких случаях и воще все нюансы и стиль написания класами в Delphi.
Может много хочу, но всетаки у кого-то есть какая-то информация.

Всего записей: 826 | Зарегистр. 16-09-2004 | Отправлено: 13:37 08-07-2005
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Solnake

Цитата:
харошие уроки по ООП в Delphi но основаные больше на практике

Исходные тексты Delphi VCL. "Практичнее" некуда

Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 09:19 12-07-2005
MICROPOM



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите
 
var
i:integer;
 
 
begin
progressbar1.Min := 0;
progressbar1.Max := 100;
for i:=1 to 100 do
  begin
  progressbar1.Position := i;
  sleep(10);
  if  (1<i)and (i<25) then label1.Visible := true;
  If  (25<i)and (i<50) then label2.Visible := true;
  If  (50<i)and (i<75) then label3.Visible := true;
  end;
end;
 
 
Я хочу чтоб лэйблы появлялись по мере увеличения прогрессбара, а они появляются только в конце.
Подскажите плз чё делать.
 
Добавлено:
Еще так пробовал
 
  If  i= 25 then label1.Visible := true;
  If  i= 50 then label1.Visible := false;
  If  i= 50 then label2.Visible := true;
  If  i> 75 then Sleep(100);
  If  i= 75 then label2.Visible := false;
  If  i= 75 then label3.Visible := true;

Всего записей: 30 | Зарегистр. 23-11-2004 | Отправлено: 14:58 12-07-2005
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MICROPOM
Добавь Application.ProcessMessages в цикл

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 15:32 12-07-2005
MICROPOM



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH
А как это сделать? Я только начинаю разбираться в делфе.

Всего записей: 30 | Зарегистр. 23-11-2004 | Отправлено: 09:31 14-07-2005
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MICROPOM
Перед Sleep(100).
А лучше сделать с помощью Timer'а.
Когда надо запускаеш (Timer1.enabled:=true;)
Внутри счётчик. Правда переменную i прийдётся сделать глобальной.
когда счётчик достигнет конца - таймер останавливается
 
З.Ы. Тут ещё потоки могут предложить, но для начинающего и таймера хватит. А если твоя прога в цикле Application.ProcessMessages использует, то это значит алгоритм переделывать надобно

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 19:09 14-07-2005
h0mer



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MICROPOM
делай в цикле всем лейблам.update или refresh.
типа так:
for i:=1 to 100 do  
  begin  
  progressbar1.Position := i;  
  sleep(10);  
  if  (1<i)and (i<25) then label1.Visible := true;  
  If  (25<i)and (i<50) then label2.Visible := true;  
  If  (50<i)and (i<75) then label3.Visible := true;  
  label1.Refresh;
  label2.Refresh;
  label3.Refresh;
  end;  
end;

Всего записей: 494 | Зарегистр. 11-10-2004 | Отправлено: 08:29 15-07-2005
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru