Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4

Модерирует : ShIvADeSt

ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
тут вроде рабочий пример был
http://forum.ru-board.com/topic.cgi?forum=33&topic=7188#1

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 14:02 31-07-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо. Еще есть вопрос. Как в диалоге Мастера можно переходить на нужную страницу?
 
PSM_SETCURSEL и PSM_SETCURSELID непонятные какие-то... Первой вообще фиг знает что надо подсовывать в качестве идентификатора/номера или одно и тоже, вообще чушь, вторая вообще фиг знает... Код такой:
 

Код:
 
{ Ôóíêöèÿ îáðàáîòêè èíèöèàëèçàöèè äèàëîãîâ ìàñòåðà }
function InitPropertySheetPage(hWnd : HWND) : Boolean;
var
  PropPage   : TPropSheetPage;
  APropPage  : Array [0..2] of HPROPSHEETPAGE;
  PropHeader : TPropSheetHeader;
begin
  // Ñîçäàåì ñòðàíèöû äëÿ áëîêíîòà
  APropPage[0]               := CreatePropertySheetPage(PropPage);
  PropPage.dwSize            := SizeOf(PropPage);
  PropPage.dwFlags           := PSP_USETITLE or PSP_HIDEHEADER;
  PropPage.pszTitle          := PChar(Format(LoadStr(STR_MASTER_CAPT), [PChar(Format(LoadStr(STR_NAME_APPLIC), [GetVersionInfo(ParamStr(0), sfiFileVersion)]))]));
  PropPage.hInstance         := hInstance;
  PropPage.pfnDlgProc        := @IntrDlgProc;
  PropPage.pszTemplate       := MAKEINTRESOURCE(RES_DIALOGIN);
  // Èíèöèàëèçàöèÿ ïåðâîé ñòðàíèöû
  APropPage[1]               := CreatePropertySheetPage(PropPage);
  PropPage.dwFlags           := PSP_USETITLE or PSP_USEHEADERTITLE or PSP_USEHEADERSUBTITLE;
  PropPage.pszTitle          := PChar(Format(LoadStr(STR_MASTER_CAPT), [PChar(Format(LoadStr(STR_NAME_APPLIC), [GetVersionInfo(ParamStr(0), sfiFileVersion)]))]));
  PropPage.pszHeaderTitle    := MAKEINTRESOURCE('Ïåðâàÿ ñòðàíèöà');
  PropPage.pszHeaderSubTitle := MAKEINTRESOURCE('Ïåðâàÿ ñòðàíèöà');
  PropPage.pszTemplate       := MAKEINTRESOURCE(RES_DIALOGSR);
  PropPage.pfnDlgProc        := @SvrtDlgProc;
  // Èíèöèàëèçàöèÿ âòîðîé ñòðàíèöû
  APropPage[2]               := CreatePropertySheetPage(PropPage);
  PropPage.dwFlags           := PSP_USETITLE or PSP_USEHEADERTITLE or PSP_USEHEADERSUBTITLE;
  PropPage.pszTitle          := PChar(Format(LoadStr(STR_MASTER_CAPT), [PChar(Format(LoadStr(STR_NAME_APPLIC), [GetVersionInfo(ParamStr(0), sfiFileVersion)]))]));
  PropPage.pszHeaderTitle    := MAKEINTRESOURCE('2 ñòðàíèöà');
  PropPage.pszHeaderSubTitle := MAKEINTRESOURCE('2 ñòðàíèöà');
  PropPage.pszTemplate       := MAKEINTRESOURCE(RES_DIALOGLR);
  PropPage.pfnDlgProc        := @LdrtDlgProc;
  // Ñîçäàåì çàãîòîâêó äëÿ ñòèëÿ ïîìîùíèêà
  hHeadFont                  := CreateFont(18, 0, 0, 0, 800, 0, 0, 0, RUSSIAN_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH, 'Tahoma');
  ZeroMemory(@PropHeader, SizeOf(PropHeader));
  PropHeader.dwSize          := SizeOf(PropHeader);
  PropHeader.hInstance       := hInstance;
  PropHeader.hwndParent      := hWnd;
  PropHeader.phpage          := @APropPage[0];
  PropHeader.nStartPage      := 0;
  PropHeader.nPages          := Length(APropPage);
  PropHeader.pszbmWatermark  := MAKEINTRESOURCE(IDB_WTMKHEAD);
  PropHeader.pszbmHeader     := MAKEINTRESOURCE(IDB_BTMPHEAD);
  PropHeader.dwFlags         := PSH_WIZARD97 or PSH_WATERMARK or PSH_HEADER or PSH_USEICONID;
  PropHeader.pszIcon         := MAKEINTRESOURCE(RES_ICONTOOL);
  PropHeader.pfnCallback     := nil;
  // Îòîáðàæàåì ñòðàíèöó ïîìîùíèêà
  PropertySheet(PropHeader);
  // Óäàëÿåì âñå ñîçäàííûå îáúåêòû
  if hHeadFont <> 0
    then DeleteObject(hHeadFont);
  Result := TRUE;
end;
 

 
Сообщение PSN_KILLACTIVE обрабатываю так:

Код:
 
if SendMessage(GetDlgItem(hWnd, IDC_CHX_MSSR), BM_GETCHECK, 0, 0) = BST_CHECKED then
              SendMessage(GetParent(hWnd), PSM_SETCURSELID, 0, Integer(1));
if SendMessage(GetDlgItem(hWnd, IDC_CHX_MSLR), BM_GETCHECK, 0, 0) = BST_CHECKED then
              SendMessage(GetParent(hWnd), PSM_SETCURSELID, 0, Integer(2));
 

Но переход всегда выполняется на первую вместо второй если я выбираю второй чекбокс. Что не так?

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 03:03 02-08-2008 | Исправлено: Maks150988, 03:04 02-08-2008
SZap



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И еще раз... так и не понял...
почему при чтении дочерних окон TPageControl т.е. TabSheet, я не всегда получаю их полный список? Даже при условии что все TabSheet в Visible. Получаю полный список только когда предварительно перейду (активирую) на "не получаемую" закладку.

Всего записей: 145 | Зарегистр. 19-11-2003 | Отправлено: 15:58 04-08-2008
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SZap
может у них просто "создание по надобности"?

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 16:57 04-08-2008
bandyn



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Может кто то делал на подобии или встречал такие компоненты подскажите
как сделать раскрывающийся список на каторый можно поместить несколько едитов комбобоксов и наподобии. примерно как в (Мой компьютер)

Всего записей: 394 | Зарегистр. 18-11-2004 | Отправлено: 16:58 04-08-2008
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bandyn
типа этого http://www.tmssoftware.com/site/toolpanels.asp ?
в JVCL вроде было что то подобное и бесплатное.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 17:12 04-08-2008
shulum



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bandyn
библиотека DevExpress - компонент dxNavBar
взять можно в этой ветке forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=38238#1

Всего записей: 121 | Зарегистр. 11-06-2006 | Отправлено: 20:32 04-08-2008
ShadowMen

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите реализовать алгоритм кодирования PDF417.  
Если, можно пример. Оччень нужно реализовать печать штрихкода на бланках рецептов

Всего записей: 263 | Зарегистр. 18-02-2002 | Отправлено: 21:28 04-08-2008
shulum



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShadowMen
Barcode library with PDF417 support v.5.1 - хттп://www.psoft.sk/
спроси в варезнике - может кто имеет это добро ...

Всего записей: 121 | Зарегистр. 11-06-2006 | Отправлено: 21:55 04-08-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хелп. Помогите перевести с Си на Делфи. Для плагина надо.
 
Подробнее...

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 17:57 05-08-2008
V1s1ter



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988

Цитата:
Хелп. Помогите перевести с Си на Делфи. Для плагина надо

 
Перевести не помогу, на работе завал, но програмки для атоперевода могу скинуть.
После них правда ручками еще поработать прийдется, но часть рутины сделают.
Надумаешь пиши.

Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 15:26 06-08-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V1s1ter
Я скачал c2pas (по рекомендациям судя по большинству форумов), но она не переконвертировала:

Код:
function UnloadModule(): BOOL; stdcall;
ACCOUNT_STATE = record
{!!!3 unknown typedef}
end;

Так вот хочется чтобы было все. Впринципе весь код модуля это чистый Апи.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 19:44 06-08-2008
RomanIlc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Помогите реализовать алгоритм кодирования PDF417.  
Если, можно пример. Оччень нужно реализовать печать штрихкода на бланках рецептов

В ReportBuilder видел печать штрих-кодов - но только на картинке, что там внутри не смотрел

Всего записей: 6 | Зарегистр. 28-07-2008 | Отправлено: 00:43 07-08-2008 | Исправлено: RomanIlc, 00:54 07-08-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988

Цитата:
Я скачал c2pas (по рекомендациям судя по большинству форумов), но она не переконвертировала:
 
Код:
function UnloadModule(): BOOL; stdcall;
ACCOUNT_STATE = record
{!!!3 unknown typedef}
end;
 
Так вот хочется чтобы было все. Впринципе весь код модуля это чистый Апи.

Насколько я понял в том куске идет создание record и первоначальная его инициализация, не знаю умеет ли Дельфи делать сразу присвоение внутри записи (насколько знаю нет), тогда вначале объяви запись, а потом сделай инициализацию основных полей
сама запись

Код:
 
    char*    szAccount;
    char*    szPassword;
 
    double    dBalance;
    double    dOverdraft;
    double    dActive;
    double    dMonthMinutes;
    char    szTarif[1024];
    char    szMessage[1024];
    DWORD    dwTarifDays;
    DWORD    dwTarifDaysLeft;
     
    FN_HTTPDOWNLOAD httpDownload;  
 

а потом  
with My_Record do begin
        szTarif[0]        = '\0';
        szMessage[0]    = '\0';
 
        dBalance        = 0.0f;
        dOverdraft        = 0.0f;
        dActive            = 0.0f;
        dMonthMinutes    = 0.0f;
 
        dwTarifDays        = MAXDWORD;
        dwTarifDaysLeft    = MAXDWORD;
end;
инициализируем некоторые поля записи (Сишный синтаксис не  менял, так как смысл думаю и так понятен).

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 07:33 07-08-2008
RomanIlc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
To: bandyn
 

Цитата:
Может кто то делал на подобии или встречал такие компоненты подскажите
как сделать раскрывающийся список на каторый можно поместить несколько едитов комбобоксов и наподобии. примерно как в (Мой компьютер)

В AlphaControls есть компонент похожий, TFrameBar по-моему, он на основе фреймов сделан - может понравится, ну а к стандартному виндовому конечно TdxNavBar ближе всего

Всего записей: 6 | Зарегистр. 28-07-2008 | Отправлено: 13:58 07-08-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
 
Ну я пока сделал так:
 
Подробнее...
 
Скажите пожалуйста где надо точно инициализировать эти поля записи. И хотелось бы узнать как например в функции GetModuleHints проинициализировать ее параметры -  компилятор пишет что они не будут проинициализированы. Немного непонятно как-то.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 00:10 08-08-2008
Pawo



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопрос к спецам.
Была одна программа на паскале, отмеряла время. Т.е. на LPT-порт подавался сигнал, после чего программа начинала отсчитывать время. Потом подавался другой сигнал (тоже ч-з LPT), после которого таймер останавлисался, и после этого программа выдавала, сколько милисекунд прошло между 1-м и 2-м сигналом. Но перед этим, она перепрограммировала системный таймер. На паскале это делалось так:

Код:
uses crt,dos;
var ho,mi,se,hu,ss,pv,pn:word;
    l,h,ol,ne:byte;
    co,m:integer;
    dt:real;
begin
 clrscr;
 READLN(co);
 l:=lo(co);
 h:=hi(co);
 writeln(co,'  ',l,' ',h);
 port[$43]:=182;
 port[$40]:=l;
 port[$40]:=h;
 {$B+}
 repeat until port[$379]=112;
 SetTime(0,0,0,0);
 repeat until port[$379]=67;
 GetTime(ho,mi,se,ss);
 co:=0;
 l:=lo(co);
 h:=hi(co);
 writeln(co,'  ',l,' ',h);
 port[$43]:=182;
 port[$40]:=l;
 port[$40]:=h;
 writeln('ho=',ho,' mi=',mi,' se=',se,'ss=',ss);
 dt:=ho*36000+mi*600+se*10+ss/10;
 writeln ('dt=',dt:7:5);
 readln;
end.
 

 
Добавлено:
Как из дельфей управлять LPT портом, я разобрался.
http://www.pcports.ru/articles/10.php
 
Остался вопрос, как сделать сверхточный таймер!

Всего записей: 1105 | Зарегистр. 05-05-2007 | Отправлено: 01:29 08-08-2008 | Исправлено: Pawo, 03:02 08-08-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988

Цитата:
function GetModuleHints(szLoginHint: PChar; dwLoginHintLen: DWORD; szPasswordHint: PChar; dwPasswordHintLen: DWORD; szForgetPasswordLink: PChar; dwLinkLen: DWORD): BOOL; stdcall;
begin
szLoginHint := PChar('&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#226; &#253;&#242;&#238; &#239;&#238;&#235;&#229; &#237;&#238;&#236;&#229;&#240; &#243;&#247;&#229;&#242;&#237;&#238;&#233; &#231;&#224;&#239;&#232;&#241;&#232; &#226; &#241;&#232;&#241;&#242;&#229;&#236;&#229;');
dwLoginHintLen := 255;  

Судя по всему должен быть возврат данных из функции в программу, тогда надо добавить var примерно так
function GetModuleHints(var szLoginHint: PChar; .....
далее, для постоянного текста не обязательно делать преобразование через PChar можно так
szLoginHint='MyCoolHint';
dwLoginHintLen=255 - это неправильно, надо dwLoginHintLen=strlen(szLoginHint)+1;
насчет +1 не уверен, в противном случае у тебя может при обработке строк попасть мусор, так как обрабатываться PChar будет в зависимости от длины, которую ты вернешь.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:36 08-08-2008
Dimoniusis



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988 тебе ShIvADeSt уже часть ошибок рассазал. А проинициализировать рекорд можно в какой-нибудь из функций создания - тех же INIt'ах до Result:=True; Думаю, что инит в общем то для этого и сделан.
 

Всего записей: 4134 | Зарегистр. 18-10-2005 | Отправлено: 09:45 08-08-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dimoniusis
InitModule вообще не используется. Автор вообще наотрез отказывается дать исходник полный. Поэтому не знаю чего и как. Он сказала только что PChar это типа "отдается указатель на память в который модуль должен скопировать строку".
Ну я не знаю как правильнее то, сделал так. Вроде работает.=)

Код:
 
var
  TszModuleName  : String = '===';
  TszModuleDescr : String = '===';
  TszGUID        : String = '===';
 
function GetModuleInfo(szModuleName: PChar; dwMaxNameLen: DWORD; szGUID: PChar; dwMaxGUIDLen: DWORD; szModuleDescr: PChar; dwMaxDescrName: DWORD): BOOL; stdcall;
begin
  dwMaxNameLen   := strlen(PChar(TszModuleName)) + 1;
  StrLCopy(szModuleName, PChar(TszModuleName), dwMaxNameLen);
  dwMaxDescrName := strlen(PChar(TszModuleDescr)) + 1;
  StrLCopy(szModuleDescr, PChar(TszModuleDescr), dwMaxDescrName);
  dwMaxGUIDLen   := strlen(PChar(TszGUID)) + 1;
  StrLCopy(szGUID, PChar(TszGUID), dwMaxGUIDLen);
  Result := TRUE;
end;
 

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 11:25 08-08-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4
ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru