On-line: gfilatov2002, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 06.02.07 03:27. Заголовок: Как сделать "растяжку" окна?


Вот я тут озадачился:
Проектирую я прогу (для простоты - со всего одним окном) и делаю это (главное) окно 640*480 (чтобы в любой по разрешению десктоп влезало, не курочя размещение интерфейса) (и делаю CENTER, естественно)... У кого 640*480 - все как надо, у кого 800*600 или 1024*768 - тже ничего (но окошко выглядит поменьше). А вот у обладателя, к примеру, 1280*1024 - оно будет совсем уж масеньким... И буковки/кнопочки/таблички соответственно... Вы скажете - "И чё?? пусть жмякает по "Maximize" - и имеет окно во весь экран!.." Да, но он (при _стандартном_ подходе) будет иметь те же "масенькие" GUI-объекты - только съедут они к левому верхнему углу полноэкранного окна (а справа и снизу будем иметь широченные пустые полосы)... И результат?.. Один черт - в мелкоту всматриваться, глаза сажать...
Как бы поэлегантнее это сделать?:
1) при определении окна и GUI-объектов зафиксировать их стартовые смещения сверху/слева, размеры, фонтсайзы;
2) а по SIZE, MAXIMIZE, RESTORE отлавливать _изменившиеся_ размеры окна - и соответственно менять свойства у GUI-объектов.
(тогда юзер имел бы что в полноэкранном, что в НЕполноэкранном окне - ТЕ ЖЕ расположение и пропорции элементов интерфейса).
Я попробовал ("корявовато" - только начинаю осваиваться с Harbor'ом и MiniGUI) - вроде выходит (за исключением ширины колонок в GRID (они почему-то - согласно Help'у - доступны только при определении; (D) стоит...), но получается (на экране) покрасивше, чем "стандартным" путем.
Если интересно - могу пример запостить.
А то вдруг "мэтры" (или Allы) чем помогут? или что придумают?

Ежели что - gustow33 пес-барбос mail.ru

Заранее спасибки!

ЗЫ А Харбор да с ГУЁМ - это замечательно!!! Как насчет порта на Линукс планы (у Лопеза - пока только наметки, как я понял)?

ЗЗЫ Я из Екатеринбурга - есть тут земляки? Или "территориально близкие? А "медики" (оттопыриваюсь при обл. Минздраве)?

ЗЗЗЫ "Это только я такой тупой? или это фича?"... При попытке вывести на печать с предпросмотром через HB_PRINT почему-то в превью шрифт при разных зумах получается все равно ОДИНАКОВОГО размера - что смотрится (мягко говоря) забавно:
=============

#include "minigui.ch"

#include "fileio.ch"

#include "winprint.ch" // for print using HB_Print library
// (preview looks better then MiniPrint - but in zoom shows
// in SAME screen font size
// [that looks very bad!] )

****************************
function main()

DEFINE WINDOW Win_1 ;
AT 0,0 ;
WIDTH 600 HEIGHT 400 ;
TITLE "Test: Open .TXT and print with preview" ;
MAIN

@ 100, 400 BUTTON Button_1 ;
CAPTION "Get File and Print It" ;
HEIGHT 40 ;
ACTION TsT()

END WINDOW

CENTER WINDOW Win_1

ACTIVATE WINDOW Win_1

return NIL

*----------------
function TsT

Local x
LOCAL lSuccess

x := Getfile ( , 'Open a File' , , .f. , .t. )
msginfo ( IFEMPTY( x, "Empty value!", x ) )

**** for printing using HB_Print library

INIT PRINTSYS

SELECT BY DIALOG PREVIEW

IF HBPRNERROR>0
release printsys
return Nil
ENDIF

SET UNITS MM

START DOC

START PAGE

@ 10, 10 SAY "Hello World!" TO PRINT

@ 20, 10 SAY memoread(x) TO PRINT

END PAGE

END DOC

RELEASE PRINTSYS

return Nil

====================


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]


модератор




Пост N: 425
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 06.02.07 11:24. Заголовок: Re:


gustow,

1) по поводу "ресайза" элементов управления при изменении размеров окна посмотри, как это сделано в примере из папки samples\Advanced\PROCESS_KILLER (процедура ResizeCtrls() )

2) для правильного масштабирования текста в режиме предпросмотра определи шрифт для вывода текста как в примере ниже:

#include "minigui.ch"

#include "winprint.ch" // for print using HB_Print library

function main()

DEFINE WINDOW Win_1 ;
AT 0,0 ;
WIDTH 300 HEIGHT 200 ;
TITLE "Test: Open .TXT and print with preview" ;
MAIN

@ 10, 40 BUTTON Button_1 ;
CAPTION "Get File and Print It" ;
HEIGHT 40 ;
ACTION TsT()

END WINDOW

CENTER WINDOW Win_1

ACTIVATE WINDOW Win_1

return NIL

function TsT

Local x
LOCAL lSuccess

x := Getfile ( , 'Open a File' , , .f. , .t. )

INIT PRINTSYS

SELECT BY DIALOG PREVIEW

IF HBPRNERROR>0
release printsys
return Nil
ENDIF

DEFINE FONT "Font_1" NAME "MS Sans Serif" SIZE 12

SET UNITS MM

START DOC

START PAGE

@ 10, 10 SAY "Hello World!" FONT "Font_1" TO PRINT

@ 20, 10 SAY memoread(x) FONT "Font_1" TO PRINT

END PAGE

END DOC

RELEASE PRINTSYS

return Nil



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 07.02.07 00:53. Заголовок: Re:


Спасибо за подсказку.
Разобрался. Понял.
Все-таки Харбор с ГУЁМ - "эт, баенька, хршо!" ((с) Стругацкие "Понедельник...")

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4099
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.07.14 14:56. Заголовок: gfilatov пишет: 1) ..


gfilatov пишет:

 цитата:
1) по поводу "ресайза" элементов управления при изменении размеров окна посмотри, как это сделано в примере из папки samples\Advanced\PROCESS_KILLER (процедура ResizeCtrls()


Только заметил что в MS OFFICE (например EXCEL) не делается ресайз элементов окна при изменении
его размеров, просто и оригинально.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 451
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 10.07.14 10:53. Заголовок: gustow Я обычно за..


gustow

Я обычно запрещаю распахивать окно, но растягиваю его сам на высоту экрана -GetDesktopHeight ( ).

Для раличных рарешений экрана смотрится приемлимо.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 625
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет