Обсуждение Программирование на Delphi/Pascal

K

KeyMan

Boss Artem написал(а):
не помогло, и глюки не с dbgrid.setfocus - это точно, потому как заместо него я пробовал подставлять showmessage('ok'), все равно не работает, походу глюки с самим объектом edit. Сам попробуй и убедись.
Выходит эт че, компонент переписывать надо чтоб нажатие ENTER'a обработать?...
Попробуй все это дело на KeyDown повесить....
 

Chartbreaker

Ословед
Делай круче - приложение в стиле MS Office 2003.:)

Существует набор компонентов для Delphi и BCB, называющихся Toolbar2000. Их автором является Jordan Russell, автор инсталлятора Inno Setup. По сути это компоненты, имитирующие стиль и поведение панелей инструментов Office 2000: таскание, прилипание, возможность добавления на панели и в меню других элементов управления, помимо кнопок и команд (раскрывающиеся списки, поля ввода и пр.). Компонентам не хватает поддержки стилей XP: даже при добавлении манифеста XP вы не увидите красивых кнопочек и градиентов.

Существует патч на библиотеку Toolbar2000 - называется TBX - направленный на поддержку тем (и не только WinXP). Это высококлассная работа, автор которой - Alex A. Denisov - также известен как разработчик библиотек Graphics32 и G32 для Delphi. В пакет включены стили Default, OfficeXP, Stripes и Aluminum.

Дополнительные темы для TBX можно скачать на сайте Roy Magne Klever:
http://www.rmklever.com/delphitbx
Там же и тема в стиле Office2003.

Ссылки:
Toolbar2000 - http://www.jrsoftware.org/tb2kdl.php
TBX - http://www.g32.org/tbx/index.html
Тема Office2003 - http://www.rmklever.com//zipfiles/office2003theme.zip
 
S

Strider

Скачал 2 компонента по вышеуказанным ссылкам: tbx 2.0 и Toolbar2000 2.2.0.
Попробовал сделать все по инструкции с помощью файла помощи TBX Package.chm:
1. Go to http://www.jrsoftware.org and download the latest version of Toolbar2000. Make sure this version is the same as the version of the patch in $(tbx)\Diffs. For example, for Toolbar2000 version 2.0.16, this directory should contain files _cvs_patch-2_0_16.bat and _cvs_patch-2_0_16.diff.
2. Locate files Patch.exe, _cvs_patch-*.bat, and _cvs_patch-*.diff in the $(tbx)\Diffs directory. Copy these files to $(tb2k)\Source.
3. Run the _cvs_patch-*.bat file to apply the patch. Original files before modification will be saved automatically with the ‘.orig’ extension. You can use these files to undo the patching process.
4. Add Toolbar2000 Source directory to Tools->Environment Options->Library->Library Path.
5. Compile and install the tb2kdsgn_* package corresponding to IDE version. If a dialog box pops up asking you to save the package, choose ‘No’.
6. Add TBX installation directory to Tools->Environment Options->Library->Library Path.
7. Compile and install the tbxdsgn_* package corresponding to IDE version. If a dialog box pops up asking you to save the package, choose ‘No’.
8. Restart IDE.
При компиляции компонентов выдает какую то ошибку в коде([Error] TB2Common.pas(1090): Undeclared identifier: 'Clip').
Пробовал разные версий компонента tbx, всеравно одна и та же ошибка.
Может быть кто-нибудь устанавливал себе эти компоненты, подскажите в чем дело?
У меня установлен пакет Borland Delphi 7.
 
B

Boss Artem

2 strider ну объяви эту переменную в варе, думаю должно помочь =)

И мой вопрос ко всем - в общем есть инет через юстовский gprs, дык вот, надо как-то детектить пропадание связи и переконнекчивать. Не падение интерфейса, а именно пропадание связи. Потому как интерфейс может быть и поднят но связи нет (кажется это называется фантомной сессией). Пинги и ваще любое icmp не подходят, т.к. ЮУСТ блокирует ICMP. Как бы с минимальными затратами трафика эту вещь прокрутить? Сначала думал пытаться по таймеру (каждые минут 5 где-нить) открывать скажем www.ya.ru или какую-нить другую легкую страничку в TWebbrowser. Но может мона как-то по другому с меньшими затратами трафика? К тому ж у меня на серваке кэш на прозрачном прокси, так что он эту страничку каждый раз может и из кэша выдавать.

Потом подумал, что можно использовать че-нить типа ДНС-ресолвинга, но тут тож подвох - на серваке работает ДНС кэш=).

Щас думаю - в принципе наверное можно будет пытаться приконкетиться к какому-нить почтовому серваку, mail.ru к примеру=) (тока приконнектиться).
В общем как думаете, как это все дело луче будет организовать?
 
B

Boss Artem

ic-Fox написал(а):
Есть такой компонент IdIPWatch (TIdIPWatch).. У него есть одно свойство - IsOnline.. мож поможет:

Код:
If not IdIPWatch.IsOnline then ShowMessage('Connection is over');

Еще у него есть событе OnStatusChanged, так что естли связь проподет ты узнаешь об этом почти мгновенно (почти потому что у него есть еще одно свойство - WatchInterval: Cardinal - число миллисекунд, через которые он опрашивает ось на счет соединения)
пасиб , попробую это дело =)
Вот еще одна нубская проблема: талблица paradox: otchet.db :
(naim:alpha(пробовал и memo), kolvo:integer, selldate:date, sellprice:integer)

Сам SQL запрос (типа TQuery):
insert into otchet values:)tovar, :kol, :datesell, :price);

параметры:
Код:
query1.ParamByName('tovar').AsString:=labelededit1.Text;
query1.ParamByName('kol').AsInteger:=strtoint(spinedit1.Text);
query1.ParamByName('datesell').asdate:=datetimepicker1.Date;
query1.ParamByName('price').AsInteger:=strtoint(labelededit2.text);

При попытке запустить запрос выдается еррор что несоответствие типов (type mismatch); Где грабли?=)

Таксс... чет idipwatch не работает так как надо... Он считает инетовским ip-шником мой внутренний. Ему руками никак не задать интерфейс за которым следить?
 
Boss Artem написал(а):
пасиб , попробую это дело =)
Вот еще одна нубская проблема: талблица paradox: otchet.db :
(naim:alpha(пробовал и memo), kolvo:integer, selldate:date, sellprice:integer)

Сам SQL запрос (типа TQuery):
insert into otchet values:)tovar, :kol, :datesell, :price);

параметры:
Код:
query1.ParamByName('tovar').AsString:=labelededit1.Text;
query1.ParamByName('kol').AsInteger:=strtoint(spinedit1.Text);
query1.ParamByName('datesell').asdate:=datetimepicker1.Date;
query1.ParamByName('price').AsInteger:=strtoint(labelededit2.text);

При попытке запустить запрос выдается еррор что несоответствие типов (type mismatch); Где грабли?=)

Таксс... чет idipwatch не работает так как надо... Он считает инетовским ip-шником мой внутренний. Ему руками никак не задать интерфейс за которым следить?

Попробуй так:
Код:
query1.ParamByName('tovar').AsString:=labelededit1.Text;
query1.ParamByName('kol').AsString:=spinedit1.Text;
query1.ParamByName('datesell').AsString:=datetimepicker1.Date;
query1.ParamByName('price').AsString:=labelededit2
text;
 
B

Boss Artem

pyJIoH написал(а):
Напиши подробнее:
что именно пишет
и на какой из этих строк ошибка?
Ошибка не на этих строках а при запуске запроса уже после передачи параметров:
query1.execsql;
Вот что выдает (дословно): Project baseclient.exe raised exception class EDBEngineError with message 'Type mismatch in expression.'. Process stopped. Use Step or Run to continue.
 

pyJIoH

Ословед
Boss Artem написал(а):
Ошибка не на этих строках а при запуске запроса уже после передачи параметров:
query1.execsql;
Вот что выдает (дословно): Project baseclient.exe raised exception class EDBEngineError with message 'Type mismatch in expression.'. Process stopped. Use Step or Run to continue.
Значит скорей всего ошибка в sql скрипте,
проверь типы полей и значения,
которые ты присваиваешь ч/з ParamByName
 
S

Strider

Может быть у кого нить есть собранная версия перепаковки из наборов компонент Toolbar2000 и TBX, чтобы устанавливалась и работалаа в Delphiи 7?Помогите пожайлуста найти:helpsmili
 

pyJIoH

Ословед
toolbar2000

Strider написал(а):
Может быть у кого нить есть собранная версия перепаковки из наборов компонент Toolbar2000 и TBX, чтобы устанавливалась и работалаа в Delphiи 7?Помогите пожайлуста найти:helpsmili
toolbar2000.rar - 347.07 Kb [100-103]
Для всех delphi
 
B

Boss Artem

Вопрос - имееца 2 дока excel, как средствами делфи мона скопировать некоторый диапазон листа одного дока в некоторый диапазон листа другого?
 
S

Strider

Не подскажете, как сделать в своем приложении подсветку синтаксиса, например в Memo или в RichEdit(например как в html или php -редакторах)???
 

byterus

Ословед
Награды
4
Strider написал(а):
Не подскажете, как сделать в своем приложении подсветку синтаксиса, например в Memo или в RichEdit(например как в html или php -редакторах)???

Посмотри в сторону SynEdit.
 
C

ChertoffPes

Существуют ли абсолютно фриварные библиотеки (даже без гнутой лицензии), с помощью которых можно было бы разархивировать zip-файлы и которые можно было бы включить в коммерческий проект без оплаты автору?
ZLib не предлагать - он в варианте для дельфина работает только с gzip'ом, c zipом он работать умеет, но код не портирован для Паскаля.
ЗЫ Производные от ZLib вроде SciZip тоже не предлагать - сегодня выяснилось, что эта библиотека не умеет работать c mimetype-потоками.
ЗЗЫ Можете подсказать библиотеки с лицензией Mozilla Public License - она покатит :)
 
Подскажите как в одну переменную(TDateTime) присвойть
первое число прошлого месяца (dd.mm.yyyy), а во вторую переменную последнее число прошлого месяца, при этом чтобы когда меняется год все было нормально.
 

cz

Ословед
ZERO написал(а):
Подскажите как в одну переменную(TDateTime) присвойть
первое число прошлого месяца (dd.mm.yyyy), а во вторую переменную последнее число прошлого месяца, при этом чтобы когда меняется год все было нормально.
пользуй DateTimePicker, он вроде знает скока дней в каком месяце и в каком году было, есть, и будет
 
S

Serg153

Подскажите......

я пишу DLL на Дельфи.... которая использует не визуальный компонент TClientSocket; - интернет клиент TCP

объявил обработчик события....
procedure ClientSocket2Connect(Sender: TObject; Socket: TCustomWinSocket);
__begin
_____Socket.SendText('#присоеденились к серверу!!!');
__end;

объявил переменную var ClientSocket2: TClientSocket;

в внешней функции procedure CreaSok(); StdCall;
begin
___ClientSocket2 := TClientSocket.Create(Self);
___with ClientSocket2 do BEGIN
_______Host := '127.0.0.1';
_______Port := 2003;
___END;
___ClientSocket2.OnConnect := ClientSocket2Connect;
___ClientSocket2.Open;
end;
пытаюсь создать этот объект - сокет....

вроде как параметрам (Host Port) я присвоил значения...

а как создать обработчики событий?????
там есть eventы:
.OnConnect
.OnDisconnect
.OnError и тд
как им назначит процедуры или функции которые я создал??? или где эти функции надо объявить???

Помогите..... :))
 
Сверху