Обсуждение программирования на Delphi в конференции ru.delphi
Re: Hормальный компонент меню в стиле XP
From: "Slava Antonov" <deadbeef [@] so.yandex.ru>
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" <deadbeef [@] so.yandex.ru>
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" <rash [@] northnet.ru>
"Ilya Chesnokov" <Ilya.Chesnokov [@] p41.f60.n5029.z2.fidonet.org> 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" <alexey [@] soft5.com>
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" <deadbeef [@] so.yandex.ru>
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 <asteroid [@] perm.ru>
Хаю ду ю ду 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 <asteroid [@] perm.ru>
Хаю ду ю ду 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
>=====
<script language="JavaScript"defer>
var parentwin=external.menuArguments;
var doc=parentwin.document;
doc.designMode="On";
</script>
>=====
Это хозяйство - вызов режима редактирования можно вызывать подобным
образом:
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 <asteroid [@] perm.ru>
Хаю ду ю ду 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 <asteroid [@] perm.ru>
Хаю ду ю ду 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 <asteroid [@] perm.ru>
Хаю ду ю ду 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)