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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

Mandor Sawall

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksoid1978
Могу посоветовать только одно: обявите функцию еще раз, но таким образом:
Код:
function ChangeDisplaySettingsEx(lpszDeviceName: PChar; lpDevMode: PDeviceMode;
  wnd: HWND; dwFlags: DWORD; lParam: Pointer): Longint; stdcall;
  external user32 name 'ChangeDisplaySettingsExA';
Потом можете вызывать так:
Код:
ChangeDisplaySettingsEx(nil, nil, 0, 0, nil);

Всего записей: 119 | Зарегистр. 20-03-2003 | Отправлено: 09:26 28-05-2009
ShIvADeSt



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

Цитата:
Вот в Delphi никак не могу реализовать похожий вызов, 2-ой параметр не как не получается передать ни nil, ни NULL.  

гугль иногда юзаем вот что нашел, человек пишет что ему подошло
 

Код:
 
...
interface
...
{$EXTERNALSYM ChangeDisplaySettingsEx}
function ChangeDisplaySettingsEx(lpszDeviceName: PChar; lpDevMode: PDeviceMode; // <--
        wnd: HWND; dwFlags: DWORD; lParam: Pointer): Longint; stdcall;
implementation
function ChangeDisplaySettingsEx; external user32 name 'ChangeDisplaySettingsExA';
 
 
ChangeDisplaySettingsEx('', PDeviceMode(nil)^, 0, 0, nil); // вызов
 


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

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 09:38 28-05-2009
Mandor Sawall

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Для етот вызов:
Код:
 ChangeDisplaySettingsEx('', PDeviceMode(nil)^, 0, 0, nil);
не нужно преопределять функцию; все проходит и так.
Или я чего-то не понял!?

Всего записей: 119 | Зарегистр. 20-03-2003 | Отправлено: 09:52 28-05-2009
ShIvADeSt



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

Цитата:
Для етот вызов:
Код:
 ChangeDisplaySettingsEx('', PDeviceMode(nil)^, 0, 0, nil);
не нужно преопределять функцию; все проходит и так.  

скорее всего не надо, я просто нашел ответ в таком виде

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

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 10:06 28-05-2009
Aleksoid1978



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mandor Sawall
 
Да - все отлично работает и так,

Цитата:
ChangeDisplaySettingsEx('', PDeviceMode(nil)^, 0, 0, nil);

 
без переопределния. Но я раньше уже переопредил

----------
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Всего записей: 9226 | Зарегистр. 11-05-2006 | Отправлено: 10:25 28-05-2009
jag7871

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ подскажите что небудь!
 
Delphi сервисы не запускаются,  отлично работают в XP,но не работают в Win2003 Server.
В чем может быть причина? может кто встречался с таким?
 
P.S. Сервисы писал как созданием мастера, так и на чистом API...результат одинаковый...
компилировал 7 версией дельфи...
 
всякие там запросы системы к сервису отрабатывал....даже брал готовый исходник с нета, ведет себя точно также. Сервер является контроллером домена, больше в нем ничего нет.

Всего записей: 20 | Зарегистр. 14-09-2007 | Отправлено: 13:03 28-05-2009
YarGen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, что-то туплю:
создаю тип
Код:
 
  TTextFile = class(TObject)
    ...
    FHandle: THandle;
    ...
  public
    constructor Create(const FileName:string);
    ...
implementation
constructor TTextFile.Create(const FileName:string);
begin
  FHandle := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil,OPEN_ALWAYS, 0, 0);
..
 
вызывает Access violation .. на этой строке.
что не так?

Всего записей: 42 | Зарегистр. 19-06-2008 | Отправлено: 13:06 28-05-2009 | Исправлено: YarGen, 13:12 28-05-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YarGen
inherited?
 
стоп...
PrnName
а  это что за порнуха?

Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 13:11 28-05-2009 | Исправлено: akaGM, 13:13 28-05-2009
YarGen



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

Цитата:
стоп...  
PrnName  
а  это что за порнуха?  

уже подправил
а про inherited подробнее?

Всего записей: 42 | Зарегистр. 19-06-2008 | Отправлено: 14:12 28-05-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YarGen
Гм...
ты свой первый класс создаёшь?

Код:
constructor TTextFile.Create(filename: string);
begin  
  inherited; //краткая запись вызова конструктора родителя вместо TObject.Create;
  какие-то действия...
...
end;

обычный шаблон метода и/или конструтора
посмотри в хелпе любом, хоть в ВР 7.0

Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 14:34 28-05-2009 | Исправлено: akaGM, 15:54 28-05-2009
V1s1ter



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

Цитата:
а про inherited подробнее?

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

Код:
Var
  T2 = class(T1)
 
procedure T2.XXX(A, B: Integer);
begin  
  inherited;
  ***
end;
эквивалентно  

Код:
procedure T2.XXX(A, B: Integer);
begin  
  T1.XXX(A, B);
  ***
end;

Вряде случаев вызов метода-предка обязателен, в ряде недопустим, в ряде по условию и т.д. Все зависит от конкретной ситуации. В большенстве случаев, особенно в конструкторах вызов метода предка обязателен.  

Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 14:52 28-05-2009
YarGen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
просто inherited без указания метода не пропускает "Incompatible types" ,
inherited Create; не помогает.

Всего записей: 42 | Зарегистр. 19-06-2008 | Отправлено: 14:58 28-05-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YarGen
у TObject конструктор без параметров...
inherited Create; должно работать
ну напиши
TObject.Create;
 
хотя в конструкторе для прямого наследника TObject родителя можно и не вызывать...
 
давай кусок кода:
Код:
TTextFile = class(TObject)
  public
    constructor Create(const FileName:string);
end;
 
implementation
constructor TTextFile.Create(const FileName:string);
begin
end;

 
ты под чем сидишь-то?

Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 15:48 28-05-2009 | Исправлено: akaGM, 15:53 28-05-2009
Ramazan



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YarGen
Все работает:

Код:
 
 TTextFile = class(TObject)
 private
  FHandle: THandle;
 public
   constructor Create(const FileName:string);
 end;
 
implementation
 
constructor TTextFile.Create(const FileName: string);
begin
  inherited Create;
  FHandle := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
    FILE_SHARE_READ or FILE_SHARE_WRITE, nil,OPEN_ALWAYS, 0, 0);
end;
 
 


----------
Per rectum ad...

Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 15:56 28-05-2009
V1s1ter



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YarGen
inherited в зависимости от набора/отсутсвия параметров может писатся так:  
inherited;
или
inherited ИмяМетода;
или
inherited ИмяМетода(параметры);
или
Result := inherited...;
В двух словах все объяснили, но из уважения к окружающим можно было и пару абзацев умной книшки или спавочника почитать...
 

Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 16:24 28-05-2009
YarGen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V1s1ter
с этим то понятно, этот код работает и без inherited ...
что-то в основном коде, буду копать дальше.
Всем спасибо, вопрос закрыт.

Всего записей: 42 | Зарегистр. 19-06-2008 | Отправлено: 17:07 28-05-2009
Aleksoid1978



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, если у кого есть Windows 7 установленный, отзовитесь ???  
Не могу записать в реестр в одно место. Ключ спокойно открывается, считать могу. Запись вроде как успешно проходит, не ошибок, не Exception - но данные не пишуться.
 
Я понимаю что сырая еще, но не на столько же  - веть regedit отлично туда пишет.
 
P.S. - все вопрос снят, проблема была немного в другом.

----------
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Всего записей: 9226 | Зарегистр. 11-05-2006 | Отправлено: 06:20 29-05-2009 | Исправлено: Aleksoid1978, 08:40 29-05-2009
warart

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CreateRemoteThread постоянное возникновение ошибки
Sorry, уже решена проблема

Всего записей: 173 | Зарегистр. 14-01-2006 | Отправлено: 20:30 31-05-2009 | Исправлено: warart, 21:55 31-05-2009
fcdobpiy



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто-нибудь сталкивался с такой вещью?
на многих версиях делфи  при многократных переходах между редактором кода и дизайнером формы или при запуске программы, размер главной формы увеличивается.  постепенно так ,  в итоге не влазит на экран. очень раздражает.

Всего записей: 410 | Зарегистр. 22-08-2005 | Отправлено: 09:08 01-06-2009
kveplim



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
fcdobpiy, попробуй лочить компоненты
Edit->Locak Controls

Всего записей: 42 | Зарегистр. 05-10-2008 | Отправлено: 11:19 01-06-2009
   

Страницы: 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