Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Delphi в конференции ru.delphi


Re: Hормальный компонент меню в стиле XP

From: "Slava Antonov"

Hello Bulat Ziganshin, you wrote:

> остаётся только удивляться, как работали наши дикие предки до изобретения всех
> этих отладчиков и ide :)

Это нужно спросить у Анатолия Подгорецкого.
Однако и так очевидно, что тогда и таких приложений небыло как сейчас.

--
Всего хорошего, Слава.
slava.fateback.com
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)





Re: запустить процесс из службы

From: "Slava Antonov"

Hello Andrew O Shadoura, you wrote:

> Тем не менее, колбэк работает.

Значит тут проверяется на False, как и положено.

--
Всего хорошего, Слава.
slava.fateback.com
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)





Re: dBase и ADO

From: "Andrey Ryazanov"

"Ilya Chesnokov" wrote in message news:1121154426 [@] p41.f60.n5029.z2.ftn...
> Да нет, в БД и SQL как pаз я довольно пpошаpен - как-никак два семестpа в
> институте нас этим мучили, и куpсач делали в Access по пpоектиpованию БД.
> Пpосто сами слова сабжевые незнакомые. И вообще, как это пpименяется в Delphi
> пока не знаю. Что нужно для того, чтобы пpименить всё это - какой софт?
> Interbase там какой-нибудь..) Или ещё что?

В дельфи есть компоненты ADO (ActiveX Data Objects), которые работают с одноименной технологией от MS. ADO - универсальный способ доступа к базам данных, при наличии в системе нужного провайдера (DBASE), используя ADO можно подключаться к базам и соответсвенно с ними работать. Все параметры подключения задаются в ConnectionString компонента TADOConnection. Используя связку из TADOConnection - TADOTable/Query - TDataSource - TDBGrid можно работать с DBF файлами. Вот так вкратце....

* Origin: MTU-Intel ISP (2:5020/400)


Re[2]: Отладка

From: "Alexey Cherepanov"


Tue Jul 12 2005 06:32, Slava Antonov wrote to Alexey Cherepanov:



SA> Я так не играю.
????

SA> Вы объявили глобальную переменную, а потом заявляете что
SA> мол она неициализирована :)

Часто определение переменной совпадает с её инициализацией nil.


SA> Вы вот так попробуйте:
SA> procedure TForm1.TntButton1Click(Sender: TObject);
SA> var
SA> T: TTest;
SA> begin
SA> Caption:= IntToStr(T.A);
SA> end;

SA> И что? Какое значение у вас получилось? У меня - ну не как не 0..65535.

У меня получится предупреждение компилятора, которое можно и без проверок в
рантайме увидеть.


SA> ЗЫ: Кстати, у меня есть мысль по поводу того, почему 64Кб. Ведь по идее
SA> гранулярность не обязана быть 4Кб. Поэтому и сделали залог на будущее.

Скорее думали о структурах больщих 4кб.

* Origin: FidoNet Online - www.fido-online.com (2:5020/400)


Re: Отладка

From: "Slava Antonov"

Hello Alexey Cherepanov, you wrote:

>> Вы объявили глобальную переменную, а потом заявляете что
>> мол она неициализирована :)
> Часто определение переменной совпадает с её инициализацией nil.

Вы часто объявляете глобальные переменные? Ай-яй-яй, по рукам вам нужно настучать :)

> У меня получится предупреждение компилятора, которое можно и без проверок в
> рантайме увидеть.

Речь ведь не об этом. Вы утверждали, что неициализированные переменные имеют определенные значения (0..65535). Я же показал, что они имеют произвольное значение. Ваш же пример некорректен, т.к. глобальные переменные всегда инициализированы.

--
Всего хорошего, Слава.
slava.fateback.com
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)





Re: Что возвращает ShellExecute?

From: Alexander Tomilov

Хаю ду ю ду Andrew V. Fionik?

Смотрю и вижу, как ты печатаешь умные вещи и дай-ка, думаю,
тоже что-нибудь напечатаю:

AVF> Это из борландовских хелп файлов

AVF> If the function succeeds, the return value is the instance handle of the

AVF> А это из MSDN
AVF> Returns a value greater than 32 if successful, or an error value that is

AVF> Hалицо несоответствие борландовской документации.

Да вообще они в майкрософте оборзели - борландовской документации уже
не соответствуют :)

--
Чефирский кот.
Alexander Tomilov E-mail: asteroid (at) perm (dot) raid (dot) ru
Форум не обо всем, но многом: sforum.hut1.ru/forum/

* Origin: Asteroid Software (2:5020/400)


Re: Вставить таблицу в TWebBrowser

From: Alexander Tomilov

Хаю ду ю ду Sergey Ozhegov?

Смотрю и вижу, как ты печатаешь умные вещи и дай-ка, думаю,
тоже что-нибудь напечатаю:

SO> Как осуществить сабж?
SO> Еще интересует как потом можно работать с данными таблицы? Hапример
SO> вставить в ячейку картинку, текст и т.д.
SO> В общем, нужно сделать простейший HTML visual editor.
SO> Он должен уметь вставлять картинку, текст(разных цветов, размеров и т.д.),
SO> а также должен уметьвставлять таблицы и работать с ними. Hикаких форм,
SO> кнопок и т.п. вставлять не надо.

Кидаешь на форму WebBrowser далее по тексту - получаешь редактор
ctrl+v ctr+c ctrl+b etc., только вот насчет цветов текста не знаю -
придеться какой-нить RichEdit, наверное, забабахать для цвета.

Скопировать "EDIT_IE.HTM.htm" в папку c:\winnt\ и запустить "Режим
редактирования.reg". Все, можете наслаждаться пунктом "Режим
редактирования" в контекстном меню iexplorer-а. Для выхода из режима
редактирования выберите пункт "Вид обзора" в контекстном меню iexplorer-а

Режим редактирования.reg
>=====
REGEDIT4

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MenuExt\&Режим редактирования]
[@] ="c:\\winnt\\EDIT_IE.HTM.htm"
"Contexts"=dword:00000001

>=====
EDIT_IE.HTM.htm
>=====

>=====

Это хозяйство - вызов режима редактирования можно вызывать подобным
образом:
procedure TMainForm.btnDesignClick(Sender: TObject);
begin
MenuHTMLDesign.Checked := btnDesign.Down;
if btnDesign.Down then (WebBrowser.Document as IHTMLDocument2).designMode := 'On'
else (WebBrowser.Document as IHTMLDocument2).designMode := 'Off';
end;

Следит за ним (при загрузке другого документа сбрасывается):
procedure TMainForm.WebBrowserProgressChange(Sender: TObject; Progress,
ProgressMax: Integer);
var flag: boolean;
begin
if WebBrowser.Document <> nil then
begin
flag := (WebBrowser.Document as IHTMLDocument2).designMode = WideString('On');
btnDesign.Down := flag;
MenuHTMLDesign.Checked := flag;
end;
if Progress > 0 then
begin
ProgressBar.Visible := true;
StatusBar.Panels[0].Width := MainForm.Width - 300;
StatusBar.Panels[1].Width := 150;
end
else
begin
ProgressBar.Visible := false;
StatusBar.Panels[0].Width := MainForm.Width - 150;
StatusBar.Panels[1].Width := 0;
end;
ProgressBar.Max := ProgressMax;
ProgressBar.Position := Progress;
end;

Кстати вот работа с таблицами - сам не юзал, но точно работает:
var
i, j: integer;
ovTable: OleVariant;
begin

ovTable := WebBrowser1.OleObject.Document.all.tags('TABLE').item(0);

for i:=0 to (ovTable.Rows.Length - 1) do begin

for j:=1 to (ovTable.Rows.Item(i).Cells.Length - 1) do begin

Memo1.Lines.Add(ovTable.Rows.Item(i).Cells.Item(j).InnerText);

PS: Только что проверил - в режиме редактирования вставляется табличка
из word-а (2003)

--
Я не боюсь смерти, но не хотел бы при этом присутствовать.
Alexander Tomilov E-mail: asteroid (at) perm (dot) raid (dot) ru
Форум не обо всем, но многом: sforum.hut1.ru/forum/

* Origin: Asteroid Software (2:5020/400)


Re: Window Message

From: Alexander Tomilov

Хаю ду ю ду Alexey Dunin?

Смотрю и вижу, как ты печатаешь умные вещи и дай-ка, думаю,
тоже что-нибудь напечатаю:

AD> Тема такая: нужно скpывать окно пpиложения, когда оно теpяет фокус (становится
AD> неактивным).

private
procedure HideMainForm;
protected
procedure LastFocus(var Msg: TMessage); message WM_ACTIVATE;
end;
procedure TForm1.HideMainForm;
begin
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Form1.handle, SW_HIDE);
end;

procedure TForm1.LastFocus(var Msg: TMessage);
begin
if Msg.wParam = WA_INACTIVE
then HideMainForm
else Form1.SetFocus;
inherited;
end;


--
Говори кратко, проси мало, уходи быстро.
Alexander Tomilov E-mail: asteroid (at) perm (dot) raid (dot) ru
Форум не обо всем, но многом: sforum.hut1.ru/forum/

* Origin: Asteroid Software (2:5020/400)


Re: Отладка (was: Hормальный компонент меню в стиле XP)

From: Alexander Tomilov

Хаю ду ю ду Yura Balyuk?

Смотрю и вижу, как ты печатаешь умные вещи и дай-ка, думаю,
тоже что-нибудь напечатаю:

YB> хорошо, допустим есть такая простенькая программа с ошибкой:

YB> procedure TForm1.FormCreate(Sender: TObject);
YB> var
YB> s: TStrings;
YB> begin
YB> s.Clear;
YB> end;

YB> почему дебаггер не показывает на строчку, где есть ошибка?

Дебаггер или компилятор? Если второе то, потому что ошибка на
генетическом уровне :)
Ошибки показываются синтаксические/лексические - ошибки реализации
могут быть максимум хинтами/варнингами.

--
У меня отличная память на лица и маски
Alexander Tomilov E-mail: asteroid (at) perm (dot) raid (dot) ru
Форум не обо всем, но многом: sforum.hut1.ru/forum/

* Origin: Asteroid Software (2:5020/400)


Re: Hормальный компонент меню в стиле XP

From: Alexander Tomilov

Хаю ду ю ду Igor Dolgov?

Смотрю и вижу, как ты печатаешь умные вещи и дай-ка, думаю,
тоже что-нибудь напечатаю:

ID> ЗЫ. Hе знаю, специально он это сделал или нет, но прежде чем
ID> добраться до места проверки и генерации ошибки, помимо
ID> всего прочего, пришлось пройти через примерно 50 косвенных
ID> (через регистр) вызовов различных процедур (причем в цыкле),
ID> что несколько утомительно. Одна из этих процедур и вызывала ошибку.
ID> Мне почти надоело, но желание его сломать было выше. :)

Имхо, это Delphi такой код генерит.

--
Hу что уставился, как маздай на новое устройство?
Alexander Tomilov E-mail: asteroid (at) perm (dot) raid (dot) ru
Форум не обо всем, но многом: sforum.hut1.ru/forum/

* Origin: Asteroid Software (2:5020/400)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты