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

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

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

ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

s1n



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

Цитата:
Если дать значениям в секции разные имена, то и получится что надо.

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

----------
Время и место каждого Подвига определяется Судьбой.
Но если не придет Герой - не будет и Подвига.

Всего записей: 976 | Зарегистр. 30-07-2003 | Отправлено: 14:51 25-04-2007
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
HekTo
Google:
http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.non-technical/2006-12/msg00974.html

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 14:53 25-04-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
s1n
param надо по-разному называть.
типа  
 
param1=data1  
param2=data2  
param3=data3  
....  
 
a так у тебя та же ситуация, как если б ты написал
 
a:=1; a:=2; a:=3; и хотел бы иметь все три значения

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 15:22 25-04-2007
Ang



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

Цитата:
Почему идет привязка  

Подсмотрел в исходнике IniFiles.pas.  

Цитата:
Другого выхода нет?

Попробуй GetStrings, но тогда надо "руками" разбирать соответствие "имя=значение".

Всего записей: 251 | Зарегистр. 25-07-2001 | Отправлено: 15:38 25-04-2007
s1n



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

Цитата:
param надо по-разному называть.

Да я не создаю этот инишник, я только лишь пытаюсь написать утилитку которая прочитает содержимое ini-файла, без изменений источника. Выходит что через TIniFile этого не сделать?
 
Ang

Цитата:
Попробуй GetStrings, но тогда надо "руками" разбирать соответствие "имя=значение".

Будем пробовать, если у меня ума хватит .

----------
Время и место каждого Подвига определяется Судьбой.
Но если не придет Герой - не будет и Подвига.

Всего записей: 976 | Зарегистр. 30-07-2003 | Отправлено: 16:02 25-04-2007
Thegodofviruses



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ подскажите пожалуйста!
Возможно ли в 1С Предприятию 8 засунуть приложение написанное на Delphi?  Подскажите направление.

Всего записей: 69 | Зарегистр. 11-07-2006 | Отправлено: 16:32 25-04-2007
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Thegodofviruses
Копай в сторону OLE, COM, ActiveX

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 17:25 25-04-2007
s1n



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
RostY
Ang
Короче я пошел другим путем:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
   F : System.TextFile;
   s: string;
  begin
  if FileExists (GetCurrentDir+'\file.ini') then
    begin
      ListBox1.Clear;  
      AssignFile(F, GetCurrentDir+'\file.ini');
      Reset(F);
      while not SeekEof(F) do
        begin
          Readln(F, s);
          if  Copy(s, 1, 5) = 'param' then
          ListBox1.Items.Add(s);
        end;
      CloseFile(F);
    end;
  end;

Возможно не эстетично, зато практично .

----------
Время и место каждого Подвига определяется Судьбой.
Но если не придет Герой - не будет и Подвига.

Всего записей: 976 | Зарегистр. 30-07-2003 | Отправлено: 17:26 25-04-2007
HekTo

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

Всего записей: 189 | Зарегистр. 30-09-2003 | Отправлено: 19:52 25-04-2007
Thegodofviruses



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserd
Спасибо а не подскажешь хорошие книжки в эту сторону?

Всего записей: 69 | Зарегистр. 11-07-2006 | Отправлено: 08:06 26-04-2007
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Thegodofviruses
Есть демо с примерами, а книжки это все что касается написания COM, недавно в соответсвующем разделе пробегала для дельфей.

Всего записей: 559 | Зарегистр. 05-04-2006 | Отправлено: 10:06 26-04-2007
Thegodofviruses



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

Всего записей: 69 | Зарегистр. 11-07-2006 | Отправлено: 14:03 26-04-2007
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
почему в D2007 слова procedure, function и т.д, в быстрой справке, выкрашены одним цветом (красным)? http://img258.imageshack.us/img258/7846/screen002vx7.jpg
может можно разукрасить?

----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 18:42 26-04-2007
Dunkel1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, Все!
 
Вопрос следующий: как осуществить перевод экранных пикселей в реальные миллиметры ?
 
Пробовал:
1.
Вычисляю число пикселей в миллиметре по X и по Y:

Код:
 
  HorResol,VertResol,HorScWidth,VertScHeight: Integer;
  PixXFact,PixYFact: Double;
  ...
   
  HorResol := GetDeviceCaps(GetDC(HWND(Nil)),HORZRES);
  VertResol := GetDeviceCaps(GetDC(HWND(Nil)),VERTRES);
  HorScWidth := GetDeviceCaps(GetDC(HWND(Nil)),HORZSIZE);
  VertScHeight := GetDeviceCaps(GetDC(HWND(Nil)),VERTSIZE);
  PixXFact := HorResol/HorScWidth;
  PixYFact := VertResol/VertScHeight;
 
 

 
Но такой вариант дает весьма неточные значения, которые с увеличением значения отображаемой величины, очень сильно искажаются.
 
2.
Есть свойство класса TScreen - PixelsPerInch, которое дает число пикселей в логическом дюйме по вертикали. Но, очевидно, этого недостаточно.  
 
Каким еще образом можно решить эту проблему, получив при этом более или менее приемлемые данные ?

Всего записей: 25 | Зарегистр. 15-11-2005 | Отправлено: 22:22 26-04-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Thegodofviruses из 1с можно обращаться к любому OLE-контроллеру автоматизации, соответственно тебе в надо в проге на дельфи его реализовать, создать библиотеку типов, описать экспорт объектов и тому подобное.

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 05:55 27-04-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dunkel1
думаю, что сложно, т.к. откуда компу знать какой ты монитор включил (а еще если и поставил при 14" мониторе драйвера 17"-го). Так что физическую диагональ монитора програмно не померяешь. Надо б придумать что-то типа калибровки. Чтою юзер померял линейкой и подстроил под нее изображение на экране.

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 09:27 27-04-2007 | Исправлено: RostY, 09:38 27-04-2007
Mandor Sawall

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dunkel1
Сожалею, ето невозможно. Теоретически, ваш код должен делать то же самое, но HORZSIZE и VERTSIZE возвращают ложние значения. Так что ваш потребитель должен ввести свой размер екрана.

Всего записей: 119 | Зарегистр. 20-03-2003 | Отправлено: 09:41 27-04-2007
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Dunkel1
Замечу ещё один маленький факт. Вам говорят у меня 17" ЭЛТ. А на самом деле видимая диагональна 17, а где то 16.5, а то и 16. Для ЖКИ дисплеев это выполняется более чётко - эсли сказано 17, то там минимум 16,9.
Мой способ решения. Нарисуйте на экране три лини в виде буквы Н или П и и попросите пользователя измерить перекладину и высоту, так как кол-во пикселей на дюйм по вертикале и горизонтале может не совпадать.

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

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 11:29 27-04-2007
vserd

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

Цитата:
как осуществить перевод экранных пикселей в реальные миллиметры ?  

А можно узнать зачем? может вы задачу не стой стороны решаете?

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 11:54 27-04-2007
rs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть необходимость делать копии экрана как в графическом режиме, так и в текстовом (dos-приложения, Alt-Enter)
 
найденные мной примеры позволяют захватывать только в графическом
 
подскажите, пожалуйста, как захватить экран в текстовом? как программно определить наличие текстового режима?

Всего записей: 1344 | Зарегистр. 19-04-2003 | Отправлено: 13:17 27-04-2007
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3
ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru