Корректный способ максимизировать форму в Дельфи (без подписи)

Ваш цикл foreach может быть немного проще и производить то, что вы хотите

echo "<h1>Topics</h1>";

$sql = "SELECT * FROM categories WHERE parent = 1";
$result = $db -> getRows($sql,[]);
$numrows = $db -> getrows("SELECT count(*) FROM stories",[]);
if($numrows == 0) {
    echo "<p>No categories</p>";
} else {
    foreach($result as $row){
        echo $row['category'] . "\n";
    }
}
5
задан Irfan Mulic 19 December 2008 в 06:52
поделиться

2 ответа

Звуки хорошо, но как Drejc указали, панель задач может появиться где угодно, так также могли дополнительные прикрепленные боковые панели как Google Desktop, Winamp, и т.д.

Вместо этого, возможно, используйте что-то как Экран. WorkAreaRect для получения клиентской области экрана. Например.

with Screen.WorkAreaRect do
  Form1.SetBounds(Left, Top, Right - Left, Bottom - Top);
10
ответ дан 13 December 2019 в 22:18
поделиться

Одна дополнительная подсказка. Панель задач может также быть расположена справа или левые экрана (не только вершина и нижняя часть). Таким образом, необходимо дополнительно выяснить, где панель задач.

Я предложил бы, чтобы Вы изучили реализацию Delphi SetWidnowState. В Delphi7 это - эта часть кода:

procedure TCustomForm.SetWindowState(Value: TWindowState);
const
  ShowCommands: array[TWindowState] of Integer =
    (SW_SHOWNORMAL, SW_MINIMIZE, SW_SHOWMAXIMIZED);
begin
  if FWindowState <> Value then
  begin
    FWindowState := Value;
    if not (csDesigning in ComponentState) and Showing then
      ShowWindow(Handle, ShowCommands[Value]);
  end;
end;

ShowWindow является вызовом библиотеки Win32:

function ShowWindow; external user32 name 'ShowWindow';

где user32 = 'user32.dll'; если я не путаю. Поэтому выройте в эту библиотеку, возможно, существует некоторая информация TaskBar где-нибудь.

0
ответ дан 13 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: