Воскресенье, 04.10.2026, 14:16
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Форма входа
Меню сайта
Главная » FAQ » Программирование Delphi [ Добавить вопрос ]

Программирование Delphi [91]
Вопрос-Ответ по программированию

             {$IFDEF WIN32} 
             function GetVersionEx(lpOs : pointer) : BOOL; stdcall; 
              external 'kernel32' name 'GetVersionExA'; 
             {$ENDIF} 
 
             procedure GetWindowsVersion(var Major : integer; 
                                         var Minor : integer); 
             var 
              {$IFDEF WIN32} 
               lpOS, lpOS2 : POsVersionInfo; 
              {$ELSE} 
               l : longint; 
              {$ENDIF} 
             begin 
              {$IFDEF WIN32} 
                GetMem(lpOS, SizeOf(TOsVersionInfo)); 
                lpOs^.dwOSVersionInfoSize := SizeOf(TOsVersionInfo); 
                while getVersionEx(lpOS) = false do begin 
                  GetMem(lpos2, lpos^.dwOSVersionInfoSize + 1); 
                  lpOs2^.dwOSVersionInfoSize := lpOs^.dwOSVersionInfoSize + 1; 
                  FreeMem(lpOs, lpOs^.dwOSVersionInfoSize); 
                  lpOS := lpOs2; 
                end; 
                Major := lpOs^.dwMajorVersion; 
                Minor := lpOs^.dwMinorVersion; 
                FreeMem(lpOs, lpOs^.dwOSVersionInfoSize); 
              {$ELSE} 
               l := GetVersion; 
               Major := LoByte(LoWord(l)); 
               Minor := HiByte(LoWord(l)); 
              {$ENDIF} 
             end; 
 
             procedure TForm1.Button1Click(Sender: TObject); 
             var 
               Major : integer; 
               Minor : integer; 
             begin 
               GetWindowsVersion(Major, Minor); 
               Memo1.Lines.Add(IntToStr(Major)); 
               Memo1.Lines.Add(IntToStr(Minor)); 
             end; 
Добавил: casperof

   Windows API -  функция  
       GetDOSEnvironment() для  Win16 и 
       GetEnvironmentStrings() для Win32. 
 


Пример :

 
            procedure TForm1.Button1Click(Sender: TObject); 
             var 
               p : pChar; 
             begin 
               Memo1.Lines.Clear; 
               Memo1.WordWrap := false; 
              {$IFDEF WIN32} 
               p := GetEnvironmentStrings; 
              {$ELSE} 
               p := GetDOSEnvironment; 
              {$ENDIF} 
               while p^ <> #0 do begin 
                 Memo1.Lines.Add(StrPas(p)); 
                 inc(p, lStrLen(p) + 1); 
               end; 
              {$IFDEF WIN32} 
               FreeEnvironmentStrings(p); 
              {$ENDIF} 
             end; 
Добавил: casperof

   Windows API -  функция  
       GetDOSEnvironment() для  Win16 и 
       GetEnvironmentStrings() для Win32. 
 


Пример :

 
            procedure TForm1.Button1Click(Sender: TObject); 
             var 
               p : pChar; 
             begin 
               Memo1.Lines.Clear; 
               Memo1.WordWrap := false; 
              {$IFDEF WIN32} 
               p := GetEnvironmentStrings; 
              {$ELSE} 
               p := GetDOSEnvironment; 
              {$ENDIF} 
               while p^ <> #0 do begin 
                 Memo1.Lines.Add(StrPas(p)); 
                 inc(p, lStrLen(p) + 1); 
               end; 
              {$IFDEF WIN32} 
               FreeEnvironmentStrings(p); 
              {$ENDIF} 
             end; 
Добавил: casperof

             procedure TForm1.Button1Click(Sender: TObject); 
             var 
               dc : hdc; 
             begin 
               dc := GetDc(0); 
               MoveToEx(Dc, 0, 0, nil); 
               LineTo(Dc, 300, 300); 
               ReleaseDc(0, Dc); 
             end; 
Добавил: casperof

Вызовите функцию GetWindowsDirectory(). Если Вас интересует каталог System, вызовите функцию GetSystemDirectory().
Пример :

 
             {$IFNDEF WIN32} 
              const MAX_PATH = 144; 
             {$ENDIF} 
 
             procedure TForm1.Button1Click(Sender: TObject); 
             var 
               a : Array[0..MAX_PATH] of char; 
             begin 
               GetWindowsDirectory(a, sizeof(a)); 
               ShowMessage(StrPas(a)); 
               GetSystemDirectory(a, sizeof(a)); 
               ShowMessage(StrPas(a)); 
             end;
Добавил: casperof

Наш опрос
С какого поисковика вам стал известен сайт?
Всего ответов: 28
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск