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

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

Автор: ymg2000
Дата сообщения: 28.11.2007 08:48
Sampron
Давно это было, но помоему D2 не поддерживает интерфейсы. Возможно, в этом дело.
Автор: Sampron
Дата сообщения: 28.11.2007 08:59
ymg2000
хм... интересно, D3 компилит а D2 нет.
Автор: ymg2000
Дата сообщения: 28.11.2007 09:38
Sampron
D3 интерфейсы поддерживает, а D2 нет. Также не помню точно, поддерживает ли D2 длинные строки. В любом случае лучше меняй версию, иначе постоянно будут проблемы,
если что-то сложнее "Hallow, world".
Автор: Sampron
Дата сообщения: 28.11.2007 10:19
ymg2000
мда... хреново, менять версию не катит, мне важен размер готового файла.
Тогда можно этот код как-то преобразовать для .bmp :

procedure TMainForm.SetBackImage(const APath: String);
var
BImage: TJPEGImage;
begin
if APath <> '' then
begin
BImage := TJPEGImage.Create();
try
BImage.LoadFromFile(APath);
MainForm.BackImage.Picture.Bitmap.Assign(BImage);
MainForm.BackImage.Update();
finally
BImage.Free;
end;
end else
begin
MainForm.BackImage.Picture.Bitmap.Dormant;
MainForm.BackImage.Picture.Bitmap.FreeImage;
MainForm.BackImage.Picture.Bitmap.ReleaseHandle;
MainForm.BackImage.Update();
MainForm.Repaint;
end;
end;
Автор: ivansaraev
Дата сообщения: 28.11.2007 10:22
Ребята подскажите пожалуйста как сделать чтобы программа посылала по интернету
содержимое поля Memo.
Автор: dominiksus
Дата сообщения: 28.11.2007 10:56
anfilat

что-то я не могу найти в этом EmbeddedWB никакого подходящего события
а onchange тоже нету...
и как теперь его в режим редактора перевести?
Автор: greenpc
Дата сообщения: 28.11.2007 11:23
ivansaraev
indy, ics и тому подобные компоненты
любой пример чата


Автор: anfilat
Дата сообщения: 28.11.2007 11:42
dominiksus

Цитата:
что-то я не могу найти в этом EmbeddedWB никакого подходящего события

Вешайся на OnUpdateUI и внутри него спрашивай браузер о его состоянии

function TEditorDlg.wbUpdateUI: HRESULT;
begin
UpdateDisplay;
result := S_OK;
end;


Цитата:
и как теперь его в режим редактора перевести?

var
wb: TEmbeddedWB;
...
procedure TEditorDlg.FormShow
...
TEwbCore(wb).DesignMode := true;
Автор: vladk1973
Дата сообщения: 28.11.2007 12:01
Sampron

Цитата:
procedure TMainForm.SetBackImage(const APath: String);
var
BImage: TJPEGImage;
begin
if APath <> '' then
begin
BImage := TJPEGImage.Create();
try
BImage.LoadFromFile(APath);
MainForm.BackImage.Picture.Bitmap.Assign(BImage); <-------Обращение к осутсвующему компоненту формы
MainForm.BackImage.Update();
finally
BImage.Free;
end;
end else
begin
MainForm.BackImage.Picture.Bitmap.Dormant;
MainForm.BackImage.Picture.Bitmap.FreeImage;
MainForm.BackImage.Picture.Bitmap.ReleaseHandle;
MainForm.BackImage.Update();
MainForm.Repaint;
end;
end;

У тебя ошибка не в версии, а в самом коде
Брось на форму TImage и обзови его BackImage
И будет тебе счастье
Автор: Sampron
Дата сообщения: 28.11.2007 12:28
vladk1973
Скорее всего в версии, добавил к форме этот код:

object BackImage: TImage
Left = 0
Top = 0
Width = 206
Height = 158
Align = alClient
AutoSize = True
Center = True
end

и не помогло, та же ошибка, так что счастья небудет.
Автор: vladk1973
Дата сообщения: 28.11.2007 12:46
Sampron
Ну. елки, не понял я как ты код добавляешь.
Во второй версии есть компонент TImage
Ты просто брось его на форму, в коде ничего писать не надо
Компоненту дай имя BackImage
Автор: Sampron
Дата сообщения: 28.11.2007 12:55
У меня версия Delphi client/server suite 2.0

В файл Main.pas я добавил:
type
TMainForm = class(TSetupForm)
BackImage: TImage; <--------это добавил

и форму Main.dfm сделал такой:
object MainForm: TMainForm
Left = 191
Top = 104
Width = 214
Height = 192
Color = clNavy
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
Position = poDefault
OnCloseQuery = FormCloseQuery
OnKeyDown = FormKeyDown
OnPaint = FormPaint
OnResize = FormResize
PixelsPerInch = 96
TextHeight = 13
object BackImage: TImage
Left = 0
Top = 0
Width = 206
Height = 158
Align = alClient
AutoSize = True
Center = True
end
end
Автор: dominiksus
Дата сообщения: 28.11.2007 12:55
вах, люди получается!
подскажите еще, как обработать исходный хтмл из twebbrowser (в режиме редактирования)
выкусить текст между <BODY> </BODY> и скопировать его в буфер?
я уже пробовал такое:

Цитата:
Range := (editor.selection.createRange as IHTMLTxtRange);
CopyStringToClipboard(range.htmlText);


Цитата:
procedure CopyStringToClipboard(s: string);
var
hg: THandle;
P: PChar;
begin
hg:=GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, Length(S)+1);
P:=GlobalLock(hg);
StrPCopy(P, s);
GlobalUnlock(hg);
OpenClipboard(Application.Handle);
SetClipboardData(CF_TEXT, hg);
CloseClipboard;
GlobalFree(hg);
end;

не копируется
Автор: vladk1973
Дата сообщения: 28.11.2007 13:10
Sampron

Цитата:
BackImage: TImage; <--------это добавил

Это неправильно
Ничего декларировать в классе не надо
И в DFM тоже менять не надо.
Работай МЫШКОЙ
С панели инструментов перетащи МЫШКОЙ компонент TImage на форму MainForm
Автор: Sampron
Дата сообщения: 28.11.2007 13:42
vladk1973

Цитата:
С панели инструментов перетащи МЫШКОЙ компонент TImage на форму MainForm

Это тоже самое что и вручную прописать.
Скачай мою версию Delphi client/server suite 2.0 (53мб) и попробуй скомпилить, у меня не компилит.
После установки отмени онлайн регистрацию и с папки register скопируй файлы в папку C:\Program Files\Borland\Delphi 2.0\LIB
Автор: anfilat
Дата сообщения: 28.11.2007 14:56
dominiksus

Цитата:
подскажите еще, как обработать исходный хтмл из twebbrowser (в режиме редактирования)
выкусить текст между <BODY> </BODY> и скопировать его в буфер?

Проблема с выкусыванием или с копированием строки в буфер? Если первое, то например так:

var
collect : IHTMLElementCollection;
html : IHTMLElementCollection;
it : IHTMLElement;
ws : WideString;
begin
collect := wb.Document.all;
html := collect.tags('body') as IHTMLElementCollection;
it := html.item(0, varempty) as IHTMLElement;
ws := it.innerHTML;

В реальном коде надо еще все это обложить кучей проверок и try\except
Автор: dominiksus
Дата сообщения: 28.11.2007 17:05
нет проблем с выкусыванием, откушу как-нить , надо только как-то получить весь HTML, только вот как?
Автор: Arvur
Дата сообщения: 28.11.2007 19:47
TankMan

Цитата:
Может кто помочь? У меня такая задача - хочу в TVirtualTreeView а точнее DrawTreeView (кажись так) сделать так, чтобы занося данные в колонку (у меня она только одна) при достижении нижнего края компонента DTV не скроллинг появлялся, а новые даннные отображались в новой, второй колонке

Получилось?
Я бы наверное пересчитывал количество колонок от объема данных. Или нашлось более разумное решение?

Добавлено:
dominiksus
Нужен код документа или исходного файла?
В этой базе было что-то подобное
_http://quadro.drkb.ru
Еще можно покопать bsalsa.com
Автор: Santa_Cruz
Дата сообщения: 28.11.2007 21:37
Помогите ссылкой на Update 2 к Delphi 7 Ent...
Автор: dominiksus
Дата сообщения: 28.11.2007 21:40

Цитата:
Нужен код документа или исходного файла?

нужен html код, который я могу получить в рантайме след. путем:
в пустой области webbrowser клик правой кнопкой, там появляетса меню, выбираем пункт "Исходный код" (у меня немецкая винда, поэтому название может быть не таким) и там в блокноте открывается хтмл код страницы.

у меня этот ДРКБ какой-то нечитаемый интерфейс имеет, даже аплокале не помогает
Автор: Arvur
Дата сообщения: 28.11.2007 23:23
dominiksus
Наверное, вот сюда стоит смотреть
_http://www.excode.ru/art1532p9.html
_http://www.ishodniki.ru/list/info.php?id=518
Просто нашел в инете статьи из DRKB Должно помочь.
... есть еще outerHTML, но там уже код, обработанный браузером...

Цитата:
у меня немецкая винда

Цитата:
меня этот ДРКБ какой-то нечитаемый интерфейс имеет

Сталкивался - немецкая винда хочет хорошо проработанного юникода У тебя ведь еще и локаль небось не русская...

Добавлено:
Santa_Cruz

Цитата:
Update 2 к Delphi 7 Ent

А был такой?! Я знаю только Update #1 Release 2
Раньше лежал здесь
_ftp://ftpd.borland.com/devsupport/delphi/d7/update1r2/Delphi_71_Ent_Update_Inline/d7_ent_upd1_1.exe
Автор: dominiksus
Дата сообщения: 29.11.2007 00:05

Цитата:
Наверное, вот сюда стоит смотреть


спасибо, кстати нашел это-же решение в ДРKБ
Автор: Rudia
Дата сообщения: 29.11.2007 00:21
Santa_Cruz
Рекомендую поискать Delphi 7 second edition - сборка от народных умельцев. Со всеми официальными апдейтами. Тут описание:
[more]
* Applied all the official updates.

* Restored DCC32.EXE and DCC70.DLL to avoid the optimization bug of Delphi 7
Update 1.

* Updated BORLNDMM.DLL to FastMM v4.64.

* The IDE and the VCL use the Tahoma font by default, instead of MS Sans Serif.

* Included programming font Consolas (recommended size 10 with ClearType
enabled).

* Editor color settings of Delphi 2006.

* Widened the "Files" heading in the Project Manager.

* MMX Trial Cleaner, that allows to reset the trial version of ModelMaker Code
Explorer.

* Delphi Tweaks utility, that allows to decide which packages will be loaded
when the IDE starts.

* Included Unit Expert 1.1.

* Removed deprecated/obsolete parts (CLX, BDE, Database Explorer, Database
Desktop, Image Editor, Integrated Translation Environment, Indy, IntraWeb,
Rave, TeeChart, QuickReport). The BDE packages and units are still there,
for backwards compatibility with third party libraries that may need them.

* Removed Delphi Direct.
* Removed the MS SDK Help except the Win32 Reference.
* Removed MergeModules folder.
* Removed Demos folder.
[/more]
весит ~45 метров;)
Автор: Sampron
Дата сообщения: 29.11.2007 00:38
Здесь много версий лежит: http://www.delphilab.ru/content/view/87/75/
Автор: adg208
Дата сообщения: 29.11.2007 03:53

Цитата:
greenpc

Спасибо, помогло.
Автор: dominiksus
Дата сообщения: 29.11.2007 13:20
луди, просьба протестировать на русской (а возможно и на немецкой) винде данную прогу, т.к. пишу в немецкой винде, и хотя у меня все отображается норм, все же имею сомнения или будет русский нормально читаться у других людей (с нем. виндой), которым она предназначена.
просто гляньте, на форме и на кнопке читается ли русский текст.

dump.ru/files/n/n6912301862/
Автор: SERGE_BLIZNUK
Дата сообщения: 29.11.2007 14:44
dominiksus
проверил. Windows XP. русская. на формочке всё по русски. только Вы не учитываете размер шрифта (у меня стоит в системе "крупный шрифт")
Автор: delover
Дата сообщения: 29.11.2007 15:08
dominiksus

Цитата:
...CloseClipboard;
GlobalFree(hg); //<---????
end;

не копируется

Была у меня демка копирования в буффер и там написано - НЕЛЬЗЯ ДЕЛАТЬ GlobalFree, вообще нельзя высвобождать память, если Вы это сделаете то это будет то же самое что спрашивает Word при выходе - "в буффере обмена большой кусок, хотите оставить его для других приложений?". Так что память освобождать не надо.
Автор: dominiksus
Дата сообщения: 29.11.2007 19:02

Цитата:
проверил. Windows XP. русская. на формочке всё по русски

пасибо

Цитата:
Так что память освобождать не надо

ок, не буду.
это вообще не мой код, в инете нашел...
Автор: ALPeresvet
Дата сообщения: 29.11.2007 21:36
Здравствуйте. Очень нужен совет специалиста.
У меня такой вопрос: необходимо вызвать файл помощи *.hlp из приложения, созданного без VCL Form. Выходным файлом является динамическая библиотека для системы "Компас" - а управляет вводом данных простая форма(*.exe в проекте нет). НО, файл помощи надо вызвать из каталога, в котором лежит сама динамическая библиотека, т.е путь - не жесткий (/*.hlp). С помощью ShellExecute получается только указанием жесткого пути. Помогите пожалуйста.
PS надеюсь вопрос задан достаточно корректно.
Заранее спасибо.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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