Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

procedureEndScreenUpdate(hwnd : THandle; erase : Boolean);

begin

if(hwnd = 0) thenhwnd := Application.MainForm.Handle;

SendMessage(hwnd, WM_SETREDRAW, 1, 0);

RedrawWindow(hwnd, nil, 0, DW_FRAME + RDW_INVALIDATE + RDW_ALLCHILDREN + RDW_NOINTERNALPAINT);

if(erase) thenWindows.InvalidateRect(hwnd, nil, True);

end;

– Jeff Johnson

Минимизация модального окна

Мне нужно открыть из моей формы модальное окно, т.е. приостановить работу в моей форме до обработки этого модального окна. Но при этом я теряю возможность убрать (минимизировать) мою форму

Nomadicсоветует:

functionTMyForm.Execute: TModalResult;

begin

Show;

try

SendMessage(Handle, CM_ACTIVATE, 0, 0);

ModalResult := 0;

repeat

Application.HandleMessage;

ifApplication.Terminated thenModalResult := mrCancel;

ifModalResult = mrCancel thenCloseModal;

untilModalResult <> 0;

Hide;

Result := ModalResult;

SendMessage(Handle, CM_DEACTIVATE, 0, 0);

finally

Hide;

end;

end;

Конечно, в TMyForm должно быть FormStyle := fsStayOnTop;

Прозрачная форма

Dmitry V. Koreybaсоветует:

Высылаю прогу которая делает прозрачной форму. Может кому-нибудь поможет в его дизайнерских изысканиях.

var FullRgn, ClientRgn, CtlRgn : THandle;

procedureTForm1.DoInvisible;

var

AControl : TControl;

A, Margin, X, Y, CtlX, CtlY : Integer;

begin

Margin := (Width - ClientWidth) div2;

FullRgn := CreateRectRgn(0, 0, Width, Height);

X := Margin;

Y := Height - ClientHeight - Margin;

ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);

CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF);

forA := 0 toControlCount - 1 do begin

AControl := Controls[A];

if(AControl isTWinControl) or(AControl isTGraphicControl) then

withAControl do begin

ifVisible then begin

CtlX := X + Left;

CtlY := Y + Top;

CtlRgn := CreateRectRgn(CtlX, CtlY, CtlX + Width, CtlY + Height);

CombineRgn(FullRgn, FullRgn, CtlRgn, RGN_OR);

end;

end;

end;

SetWindowRgn(Handle, FullRgn, TRUE);

end;

procedureTForm1.FormDestroy(Sender: TObject);

begin

DeleteObject(ClientRgn);DeleteObject(FullRgn);

DeleteObject(CtlRgn);

end;

procedureTForm1.DoVisible;

begin

FullRgn := CreateRectRgn(0, 0, Width, Height);

CombineRgn(FullRgn, FullRgn, FullRgn, RGN_COPY);

SetWindowRgn(Handle, FullRgn, TRUE);

end;

procedureTForm1.FormCreate(Sender: TObject);

begin

DoInvisible;

end;

Каким образом можно изменить системное меню формы?

Nomadicсоветует:

Hе знаю как насчет акселераторов,надо поискать, а вот добавить пункт меню(Item) — пожалуйста

typeTMyForm= class(TForm)

procedurewmSysCommand( var Message:TMessage); messageWM_SYSCOMMAND;

end;

const

ID_ABOUT = WM_USER+1;

ID_CALENDAR=WM_USER+2;

ID_EDIT = WM_USER+3;

ID_ANALIS = WM_USER+4;

implementation

procedureTMyForm.wmSysCommand;

begin

caseMessage.wParam of

ID_CALENDAR:DatBitBtnClick(Self);

ID_EDIT :EditBitBtnClick(Self);

ID_ANALIS:AnalisButtonClick(Self);

end;

inherited;

end;

procedureTMyForm.FormCreate(Sender: TObject);

varSysMenu:THandle;

begin

SysMenu:=GetSystemMenu(Handle,False);

InsertMenu(SysMenu, Word(-1), MF_SEPARATOR, ID_ABOUT, '');

InsertMenu(SysMenu, Word(-1), MF_BYPOSITION, ID_Calendar, 'Calendar');

InsertMenu(SysMenu, Word(-1), MF_BYPOSITION, ID_Analis, 'Analis');

InsertMenu(SysMenu, Word(-1), MF_BYPOSITION, ID_Edit, 'Edit');

end;

Как сделать MDI-приложение, в котором способны сливаться не только меню дочернего и главного окна, но и полосы инструментов?

Nomadicсоветует:

Вариант 1. CoolBar.

procedureTMainForm.SetBands(AControls: array ofTWinControl;ABreaks: array ofboolean);

vari: integer;

begin

withCoolBar do begin

fori:=0 toHigh(AControls) do begin

ifBands.Count=succ(i) thenTCoolBand.Create(Bands);

withBands[succ(i)] do begin

ifAssigned(Control) thenControl.Hide;

MinHeight:=AControls[i].Height;

Break:=ABreaks[i];

Control:=AControls[i];

Control.Show;

Visible:=true;

end

end;

fori:=High(AControls)+2 topred(Bands.Count) do Bands[i].Free

end

end;

и

procedureTMsgForm.FormActivate(Sender: TObject);

begin

MainForm.SetBands([ToolBar],[false])

end;

Примечание:

Оба массива равны по длине. CoolBar.Bands[0] должен существовать всегда,.. на нём я размешаю «глобальные» кнопки. СoolBar[1] тоже можно сделать в DesignTime с Break:=false и придвинуть поближе с началу. При CoolBar.AutoSize:=true возможно «мигании» (при добавлении на новую строку) так что можно добавить:

AutoSize:=false; try … finallyAutoSize:=true;

Вариант 2.

TMainForm

objectSpeedBar: TPanel

...

Align = alTop

BevelOuter = bvNone

objectToolBar: TPanel

...

Align = alLeft

BevelOuter = bvNone

end

objectRxSplitter1: TRxSplitter

...

ControlFirst = ToolBar

ControlSecond = ChildBar

Align = alLeft

BevelOuter = bvLowered

end

objectChildBar: TPanel

...

Align = alClient

BevelOuter = bvNone

end

end

TMdiChild {прародитель всех остальных}

..

objectpnToolBar: TPanel

Align = alTop

BevelOuter = bvNone

Visible = False

end

end;

procedureTMDIForm.FormActivate(Sender: TObject);

begin

pnToolBar.Parent:=MainForm.ChildBar;

pnToolBar.Visible:=True;

end;

procedureTMDIForm.FormDeactivate(Sender: TObject);

begin

pnToolBar.Visible:=false;

pnToolBar.Parent:=self

{pnToolBar.Visible:=false}

end;

Заполнение изображением MDI-формы IV

Nomadicсоветует:

Я делал так:

type

…. = class(TForm)

....

procedureFormCreate(Sender:TObject);

procedureFormDestroy(Sender:TObject);

....

private

FHBrush: HBRUSH;

FCover: TBitmap;

FNewClientInstance: TFarProc;

FOldClientInstance: TFarProc;

procedureNewClientWndProc( var Message:TMessage);

....

protected

....

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Советы по Delphi. Версия 1.4.3 от 1.1.2001 отзывы


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x