Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (все версии) - часть 3

Автор: RedPromo
Дата сообщения: 26.04.2007 09:06
Thegodofviruses
Есть демо с примерами, а книжки это все что касается написания COM, недавно в соответсвующем разделе пробегала для дельфей.
Автор: Thegodofviruses
Дата сообщения: 26.04.2007 13:03
RedPromo
А где именно есть демо с примерами?
Автор: andead
Дата сообщения: 26.04.2007 17:42
почему в D2007 слова procedure, function и т.д, в быстрой справке, выкрашены одним цветом (красным)? http://img258.imageshack.us/img258/7846/screen002vx7.jpg
может можно разукрасить?
Автор: Dunkel1
Дата сообщения: 26.04.2007 21:22
Здравствуйте, Все!

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

Пробовал:
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;

Автор: jONES1979
Дата сообщения: 27.04.2007 04:55
Thegodofviruses из 1с можно обращаться к любому OLE-контроллеру автоматизации, соответственно тебе в надо в проге на дельфи его реализовать, создать библиотеку типов, описать экспорт объектов и тому подобное.
Автор: RostY
Дата сообщения: 27.04.2007 08:27
Dunkel1
думаю, что сложно, т.к. откуда компу знать какой ты монитор включил (а еще если и поставил при 14" мониторе драйвера 17"-го). Так что физическую диагональ монитора програмно не померяешь. Надо б придумать что-то типа калибровки. Чтою юзер померял линейкой и подстроил под нее изображение на экране.
Автор: Mandor Sawall
Дата сообщения: 27.04.2007 08:41
Dunkel1
Сожалею, ето невозможно. Теоретически, ваш код должен делать то же самое, но HORZSIZE и VERTSIZE возвращают ложние значения. Так что ваш потребитель должен ввести свой размер екрана.
Автор: OdesitVadim
Дата сообщения: 27.04.2007 10:29
Dunkel1
Замечу ещё один маленький факт. Вам говорят у меня 17" ЭЛТ. А на самом деле видимая диагональна 17, а где то 16.5, а то и 16. Для ЖКИ дисплеев это выполняется более чётко - эсли сказано 17, то там минимум 16,9.
Мой способ решения. Нарисуйте на экране три лини в виде буквы Н или П и и попросите пользователя измерить перекладину и высоту, так как кол-во пикселей на дюйм по вертикале и горизонтале может не совпадать.
Автор: vserd
Дата сообщения: 27.04.2007 10:54
Dunkel1

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

А можно узнать зачем? может вы задачу не стой стороны решаете?
Автор: rs
Дата сообщения: 27.04.2007 12:17
есть необходимость делать копии экрана как в графическом режиме, так и в текстовом (dos-приложения, Alt-Enter)

найденные мной примеры позволяют захватывать только в графическом

подскажите, пожалуйста, как захватить экран в текстовом? как программно определить наличие текстового режима?
Автор: OOD
Дата сообщения: 27.04.2007 12:32
Подскажите пожалуйста как вырезать значения в строках memo с определенного символа и по определенный символ
например есть запись :
>>>ТЕСТ <<<

нужно вырезать Всё, что после >>> и всё, что до <<< т.е. чтобы просто было слово ТЕСТ


Вроде сделал так:

j : integer;
buf: string;
s: string;
ses: string;


if Pos('>>>>', memo1.Text)>0 then
begin
buf :=memo1.Text;
J := Pos( '>>>>', Buf );
If J > 0 then begin
S := '>>>>';
J := Pos( S, Buf )+Length(S);
ses := Copy( Buf, J, PosEx( '<<<<', Buf, J ) - J );
memo2.text:=ses;
end;
end;
Автор: Dunkel1
Дата сообщения: 27.04.2007 13:11
vserd

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


Мне нужно будет использовать размеры объекта для расчета. То есть, например есть квадрат 20*20 пикселей. Пользователь задает размеры в миллиметрах, то есть для него это должно быть 20*20 мм.
Я использую компоненты FlexGraphics для работы с векторной графикой. Там есть масштабный коэффициент PixelScaleFactor. По умолчанию для него задано значение 1000. Это означает, что 1 пиксел на экране при масштабе 100% будет равен 1000 логическим единицам. То есть, для того, чтобы отобразить квадрат в 10 пикселов, размеры его сторон должны равняться 10*1000=10000 единицам. Так вот, минимальное значение PixelScaleFactor может быть 1 (так как целое). То есть получается, 1 пиксел = 1 мм. Но это не годится, так как получается что, например, линия длиной в 80 пикселов(то есть для пользователя тогда 80 мм) на экране выглядит в четверо меньше(на одном мониторе, а на другом, например, больше в 4 раза). То есть, придется самому вручную пересчитывать пиксели в миллиметры.




Автор: George_Lucky
Дата сообщения: 28.04.2007 06:53
Господа, подскажите, какую опцию выключить в D7, чтоб перестала работать подсказка при наведении мыши на объект?
Автор: PowerChute
Дата сообщения: 28.04.2007 07:38
George_Lucky
Environment Options --> Designer --> Show designer hints
Автор: George_Lucky
Дата сообщения: 28.04.2007 09:14
PowerChute
ok
thanks
Автор: vipettut
Дата сообщения: 28.04.2007 09:28
Посоветуйте, пожалуйста, хорошую (=безглючную, нетормознутую) библиотеку/набор классов, реализующую контейнеры (Hash, Map и т.п.)



Добавлено:

DeCAL/SDL - это можно использовать? как там с багами?

(Живет тут: http://sourceforge.net/projects/decal/)


Автор: vipettut
Дата сообщения: 28.04.2007 11:33

А также какое мнение насчет DIContainers?

http://www.yunqa.de/delphi/containers/
Автор: acue
Дата сообщения: 28.04.2007 12:27
Возможно ли вызвать из метода объекта наследника, не inherited метод родителя, а inherited метод предродителя?
Автор: OdesitVadim
Дата сообщения: 28.04.2007 14:14
acue
Наврядли можно зделать официальными методами. Но если порыться в виртуальной таблице (VTM), то невозможного нет.
Но если возникает такая необходимось - кривость дизайна. Решается обычно перестройкой дерева наследников
Автор: vserd
Дата сообщения: 28.04.2007 14:38
Dunkel1
Никогда не занимался в этой области, но думаю что без собственной логической единицы не обойтись. Через PixelPerInch можно вычислить число точек на мм, только число там будет не целым, а дробным.... для уменьшения погрешности.
Автор: scharhan
Дата сообщения: 28.04.2007 16:47
Привет всем! Помогите решить проблему.
Я программирую на Delphi 7. При компиляции программы(только этой) мне воводится сообщение
---------
[Предупреждение] Unit1.pas(7): Unit 'FileCtrl' is specific to a platform
----------
И в итоге прога идет только на моем компе!
Что сделать Помогите!
Автор: MrZeRo
Дата сообщения: 28.04.2007 17:47
acue
Была хорошая книжка Рэя Лишнера, называлась что-то вроде Delphi In A Nutshell, там у него описаны всякие фокусы с VMT. Посмотри ее.
Автор: OOD
Дата сообщения: 28.04.2007 19:16
У кого нибуть есть исходник любого ICQ клиента , или линка поделитесь плыз
Автор: M1chA
Дата сообщения: 29.04.2007 08:15
Люди!Помогите решить проблему.
Нужно сменить надпись(на форме) в программе написаной на Delphi.
Программа естественно,уже скомпилирована.
Пробовал использовать ResourceHacker,не помогло.
Подскажите,как это сделать?Какую программу использовать?
Автор: vipettut
Дата сообщения: 29.04.2007 08:18
M1chA,

Если никакие навороты типа защит не используются, попробуй просто любой hex-редактор. Ищи по строке, которая пишется в TLabel.
Автор: M1chA
Дата сообщения: 29.04.2007 08:24
2vipettut
Спасибо,сейчас попробую.

Добавлено:
2vipettut
Спасибо,получилось )))))))
Автор: RomanTim
Дата сообщения: 29.04.2007 11:34
scharhan
Предупреждение говорит о том, что юнит FileCtrl не кроссплатформенный - в киликсе не поддерживается. Если у тебя программа не кроссплатформенная, не обращай на это внимание (можно вообще выключить в свойствах проекта)
А то, что не запускается на другом компе... ты хоть напиши как не запускается - повисает, выдает ошибку, еще как-то
Автор: scharhan
Дата сообщения: 29.04.2007 14:16
Исходник аськи можно глянють здесь
http://sources.ru/delphi/index.html

Добавлено:
Прога не повисает! Когда её открываешь винда просто выдеёт отчет об ошибке! Мнебы как нибудь удалить этот FileCtrl.
Автор: deks
Дата сообщения: 29.04.2007 19:30
scharhan

Ради хохмы глянул на ссылку
Цитата:
Исходник аськи можно глянють здесь
http://sources.ru/delphi/index.html


и где же сабж? ))
Автор: afiget
Дата сообщения: 29.04.2007 20:13
http://www.sources.ru/vb/vb_simple_icq_client.shtml

Добавлено:
Протоколы:
http://www.icqv7.cjb.net/
http://www.algonet.se/~henisak/icq/

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 1С: Конвертация данных 2.0


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.