Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   [Delphi]/[Pascal] Задай вопрос, получи ответ (https://forum.antichat.xyz/showthread.php?t=39636)

Isis 06.05.2007 17:23

[Delphi]/[Pascal] Задай вопрос, получи ответ
 
Задаем Вопросы,получаем ответы.
Отвечают на ваши вопросы все хек кодеры ачата :)
Задаем вопрос и ждем ответа.

-------------------------------------------------------
by jes
Навигация по разделу:

Продолжение:

Isis 06.05.2007 17:26

Ну я пожалуй начну :)
Интересует.....
Как сделать действия закрятия формы(программы), сворачивания и развертывания её !!!
Пытался сделать
Код:

Form1.Close := true;
не получилось т.к. бред :)

И еще...сделал форму свой с бордером bsNone т.е. убрал стандартные виндоус бока..Так вот..как теперь сделать так, чтобы мою форму можно было перетаскивать??А то н сдвинуть теперь с места никуда :)

l-l00K 06.05.2007 17:32

Form1.Close; - закрытие
Application.Minimize; - сворачивание
ShowWindow(Form1.Handle,SW_MAXIMIZE); - развертывание


Чтобы можно было перетаскивать форму за любую точку, нужно добавить вот эту процедуру:

Код:

public
    procedure WMNChitTest(var M:TWMNCHitTest);message wm_NchitTest;
end;

Код:

procedure TForm1.WMNChitTest(var M: TWMNCHitTest);
begin
inherited ;
if M.Result=htClient then M.Result:=HTCAPTION;
end;


Isis 06.05.2007 18:20

Следующий вопрос..
Можно ли как-нибудь на mainMenu( выпадющий список) наложить панельку ...
Или может как-то MainMenu спустить пониже, а сверху панельку..
Вот как такое сделать

GlooK 06.05.2007 20:01

Решил не создавать новую тему, а просто попросить выложить линки на материал по поводу ручногоо изменения Pe загловков, для того чтобы не палился пинч.

mr.The 06.05.2007 21:37

Цитата:

Решил не создавать новую тему, а просто попросить выложить линки на материал по поводу ручногоо изменения Pe загловков, для того чтобы не палился пинч.
поищи на xakep.ru. в статьях. там было

xaker-boss 06.05.2007 22:43

Люди кото может памоч? у меня чёта непалучается органезовать выключение и перезагрузку компа.
Я хочю чтоб при на жатии кнопки на Button1 комп выключался,а при нажатии на кнопку Button2 совершалась перезагрузка...Кто может скинте код,или исходник,ПЛИЗ..

Isis 06.05.2007 22:54

Эм...ну думаю сложного ничего нету.....
Просто открыть смд и прописать команды.........
Хм..а зачем это...не легче просто выключить или ребутнуть?

l-l00K 06.05.2007 23:04

Выключение:
Код:

var
  downQuick: Boolean = False;
  powerOff: Boolean = False;
  logoff: Boolean = False;
  reboot: Boolean = False;

...

procedure DoShutdown;
var
  rl, flgs: Cardinal;
  hToken: Cardinal;
  tkp: TOKEN_PRIVILEGES;
begin
  flgs := 0;
  if downQuick then flgs := flgs or EWX_FORCE;
  if not reboot then flgs := flgs or EWX_SHUTDOWN;
  if reboot then flgs := flgs or EWX_REBOOT;
  if poweroff and (not reboot) then flgs := flgs or EWX_POWEROFF;
  if logoff then flgs := (flgs and (not (EWX_REBOOT or EWX_SHUTDOWN or EWX_POWEROFF))) or
      EWX_LOGOFF;
  if Win32Platform = VER_PLATFORM_WIN32_NT then
  begin
    if not OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
      hToken) then
      exit
    else
    begin
      if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid) then
      begin
        tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
        tkp.PrivilegeCount          := 1;
        AdjustTokenPrivileges(hToken, False, tkp, 0, nil, rl);
        if GetLastError <> ERROR_SUCCESS then
          Writeln('Error adjusting process privileges.');
      end
      else
        exit;
    end;

  end;

  ExitWindowsEx(flgs, 0);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
DoShutdown;
end;

Вот еще варианты:

Код:

ExitWindowsEx(EWX_SHUTDOWN or ewx_force,0);


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


Код:

ExitWindowsEx(EWX_REBOOT or ewx_force,0);


перезагрузка системы


Код:

ExitWindowsEx(EWX_FORCE or ewx_force,0);


завершает работу всех запущенных в системе приложений, не посылая им сообщения WM_QUERYENDSESSION и WM_ENDSESSIO. Это может вызвать потерю не сохраненных данных


Код:

ExitWindowsEx(EWX_POWEROFF or ewx_force,0);

завершает работу компьютера с выключением питания, если система поддерживает автоуправление питанием


Код:

ExitWindowsEx(EWX_FORCEIFHUNG or ewx_force,0);


завершает работу всех запущенных в системе приложений если система висит

Ещё вариант перезагрузки:


Код:

mov  al,0F0h 
out  64h,al


Isis 07.05.2007 12:29

Пара нубских вопросов:
Как добавлять запись в файл?
Дропустим нужно все время дописывать в конец файл номера..
ПО 1 номеру на строку..
А потом какой функцией сделать поиск поф файлу?если ли такой номер


Время: 20:58