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

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

Автор: xy
Дата сообщения: 02.09.2007 16:56
Подскажите, есть ли в делфи родная функция или какая-нить проверенная сторонняя библиотечка, которая бы работала как php-функция
htmlentities() http://www.php.net/manual/ru/function.htmlentities.php

т.е. брала строку и заменяла в ней все спецсимволы на спецтеги хтмл (сущности:)
:-?
Автор: Arvur
Дата сообщения: 02.09.2007 17:16
xy
В source\Internet\HTTPApp.pas (для D7) есть функции HTMLEncode/HTMLDecode
Оно?
Автор: xy
Дата сообщения: 02.09.2007 17:25
Arvur
как упрощенный вариант подходит, только его дополнить придется :)
спасибо
Автор: lavren
Дата сообщения: 03.09.2007 14:42
Процедура ТBitmap.Canvas.TextOut(Х,У,Text) выводит текст от точки Х,У в право (выравнивает по левому краю).
А как выводить текст слева от этой точки (выравнять по правому краю)?
Изначально в код нельзя внести поправку (dx,dy), так как не известна ширина текста (ни набор символов, ни шрифт)!
Автор: skinash
Дата сообщения: 03.09.2007 15:40
lavren
Шрифт у Canvas известен: Canvas.Font
Высота и ширина шрифта тоже:


Код:
var
FText: string;
...
W := Pic.Canvas.TextWidth(FText);
H := Pic.Canvas.TextHeight(FText);
Автор: lavren
Дата сообщения: 03.09.2007 16:01
skinash
Шрифт часто меняю и на других машинах могут бить под одним именем разные шрифты!
Мне только что посоветовали использовать DrawText с флагом DT_RIGHT.
Автор: RomanTim
Дата сообщения: 03.09.2007 16:59
lavren
Можно и DT_RIGHT, а можно как написал skinash через Canvas.TextWidth:
bmp.Canvas.TextOut(x - bmp.Canvas.TextWidth(str), y, str)
Так как это выполняется на конечной машине, то учтется ширина текста в том шрифте, что на ней установлен.
Что больше по душе, тем и пользуйся. Работать будет наверняка одинаково
Автор: lavren
Дата сообщения: 03.09.2007 17:38
skinash
RomanTim
А кто быстрее работает (рисует) DrawText или TextOut?
Автор: RomanTim
Дата сообщения: 03.09.2007 19:44
lavren
TextOut рисует через виндовую ExtTextOut:
Код: procedure TCanvas.TextOut(X, Y: Integer; const Text: String);
begin
Changing;
RequiredState([csHandleValid, csFontValid, csBrushValid]);
if CanvasOrientation = coRightToLeft then Inc(X, TextWidth(Text) + 1);
Windows.ExtTextOut(FHandle, X, Y, FTextFlags, nil, PChar(Text),
Length(Text), nil);
MoveTo(X + TextWidth(Text), Y);
Changed;
end;
Автор: Maks150988
Дата сообщения: 03.09.2007 20:18
Ну так что никто не знает где взять исходный код? Или подскажите программерские сайты где все это делают.
Автор: SERGE_BLIZNUK
Дата сообщения: 03.09.2007 21:06
Maks150988
ну, раз не отвечает никто - значит из тех, кто прочитал ваш вопрос - никто не знает ответа.
для начала сходите на http://wasm.ru - особенно разделы "исходники" , "Документация"...
я лично вообще не понимаю, что Вам нужно... $-)))
Автор: Maks150988
Дата сообщения: 03.09.2007 21:37
Да хочется сделать программу для просмотра информации. Нарыл исходник для просмотра секции экспорта. Не могу найти исходный код для просмотра секции импорта исполняемых файлов. Может он и находится, но поисковик всякий мусор отображает. Все никак не откопаю...
Автор: Arvur
Дата сообщения: 03.09.2007 21:46
Maks150988
Загляни в исходники GExperts - там точно такой модуль был.
Кажется, еще у MiTeC что-то похожее водилось, но не уверен... вроде на пролазе релизили.

Добавлено:
Тебе же PE Header нужен, я правильно понял?

SERGE_BLIZNUK
Ну иногда в повторе есть смысл - я вот вопрос прохлопал
Автор: Maks150988
Дата сообщения: 03.09.2007 22:16
Arvur
да нужна информация о заголовке. хочется выдрать оттуда информацию об импорте. есть пример где через тривью это показывается, но там всевыводится для каждогомодуля отдельно. хочется организовать в 2 окна - в одном жмешь на файл из списка длл, а в другом получаешь весь список его функций.
Автор: Arvur
Дата сообщения: 03.09.2007 22:34
Maks150988

Цитата:
есть пример где через тривью это показывается, но там всевыводится для каждогомодуля отдельно

Так а в чем проблема? Получить PE-таблицу или вывести?
Автор: Maks150988
Дата сообщения: 03.09.2007 22:54
Да, проблема в выводе информации. В примере информация выводится через ListBox, а мне надо чтобы выводилась через SysListView32 (ну там через ВинАПИ). Может поможете, а то я не один год буду все делать. Сейчас и времени свовсем мало остается, поэтому бестолку браться. Пример скачал с http://people.freenet.de/sun-shine/PETutNo6.zip . Это пример Исзелиона (или как там его звать).
Автор: relictus
Дата сообщения: 04.09.2007 07:28
Вопрос по ImageEn.
Имеется несколько картинок в формате *.jpg, надо их показать на канве ImageEnView.Bitmap.Canvas, разместив по определенным координатам. Делаю так (просто пример вывода одного жпега):

Код: procedure TfMain.Button1Click(Sender: TObject);
var bmp:TBitmap;
Io: TImageEnIO;
begin
bmp:=TBitmap.Create;
Io:=TImageEnIO.Create(self);
Io.AttachedBitmap:=bmp;
Io.LoadFromFileJpeg('test.jpg');
ImageEnView.Bitmap.Canvas.Draw(10, 20, Bmp);
ImageEnView.Refresh;
Io.Free;
Bmp.Free;
end;
Автор: RostY
Дата сообщения: 04.09.2007 08:18
подайте книжку по Firebird и менеджер баз-таблиц с интерфейсом более дружественным чем ISQL Tool. Нужно создать файл с базой, в ней таблички, индексы...
Автор: skinash
Дата сообщения: 04.09.2007 08:20
lavren

Цитата:
Шрифт часто меняю и на других машинах могут бить под одним именем разные шрифты!

Ты наверное не понял, уточню. Шрифт знать тебе не надо. Его уже знает Canvas, на котором ты выводишь текст.


Добавлено:
relictus
Нет, всё же лучше через временный битмап. Картинка сначала рисуется в памяти, а потом выводится - это быстрее, чем если бы она сразу рисовалась на канве.
Автор: relictus
Дата сообщения: 04.09.2007 10:07
skinash
А какой предпочтительнее использовать битмап ImageEnView: TBitmap или TIEBitmap ?
Автор: OXDBA
Дата сообщения: 04.09.2007 10:12
RostY
менеджер баз-таблиц с интерфейсом более дружественным чем ISQL Tool
подайте книжку по Firebird
Автор: delover
Дата сообщения: 04.09.2007 10:47
relictus
Проще не получится. С графикой всегда много кода приходится писать. Кэшируемый битмап это лучше. Но главное чтобы размеры картинки не были огромными, как при сканнировании с самым высоким разрешением. Там лучше делать серию кешируемых битмапов. Веть понятно, что пользователь может использовать увеличение и тогда не вся картинка будет на экране.
Автор: RostY
Дата сообщения: 04.09.2007 12:40
OXDBA
спасибо. ту же книжку нашел дешевле здесь
_http://goldbook.ws/2007/06/01/firebird_rukovodstvo_razrabotchika_baz_dannykh.html
Автор: skinash
Дата сообщения: 04.09.2007 13:16
relictus
Ну наверное для специализированного компонента ImageEnView предпочтительнее использовать его специализированный TIEBitmap. Там наверняка какие-нибудь свои хитрые методы и свойства задействованы.
Автор: relictus
Дата сообщения: 04.09.2007 13:27
skinash
Ок, спасибо, буду экспериментировать
Еще бы где найти/почитать какую статью/книжку по использованию компонента ImageEn, но что-то в инете такого не нашел, а демки малозакомментированы... Не встречалось ни кому?
Автор: skinash
Дата сообщения: 04.09.2007 14:44
А что, разве доков с компонентом не было?
Автор: Ohotnic
Дата сообщения: 04.09.2007 15:13
Я только не давно изучаю Дельфи поэтому прошу сильно не бить.

Вот код.

Код: procedure TForm1.FileListBox1Click(Sender: TObject);
var
A: array [0..78] of Char;
begin
{Получение имени файла, указанного в списке файлов}
StrPCopy(A, FileListBox1.FileName);
{Вывод на экран нулевой иконки из файла}
Image1.Picture.Icon.Handle := ExtractIcon(HInstance, A, 0);
Image2.Picture.Icon.Handle := ExtractIcon(HInstance, A, 1);
end;

end.
Автор: AntonVA1
Дата сообщения: 04.09.2007 15:39
Никто бить и не собирается.

Позволь уточнить: как ты это собираешься отображать в форме? В виде списка картинок? Я так, понял ты в своем примере просто кинул два объекта Image на форму. Для бОльшего количества так делать нельзя. Нужно в динамике создавать необходимое количество этих компонент. Но как ты их расположишь на форме?
Автор: Ohotnic
Дата сообщения: 04.09.2007 16:21
AntonVA1
А если вместо Image использовать ListView и ImageList?
Автор: AntonVA1
Дата сообщения: 04.09.2007 16:39
Посмотри справку к TCustomListView.LargeImages, там есть пример- похоже твой вариант, с вариациями. У меня delphi 6, если в твоей справке его нет, скажи, я его сюда кину

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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