Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

Изменить стандартное диалоговое окно   Найти похожие ветки 

 
Ad   (2002-10-28 13:04) [0]

Можно ли изменить стандартное диалоговое окно? например в PrintrDialog"е изменить некоторую надпись на свою.


 
SottNick   (2002-10-28 13:31) [1]

можно наверное
посмотри, как сделано
OpenPictureDialog (вкладка Dialogs в панели компонентов)


 
SottNick   (2002-10-28 13:34) [2]

мне из него удалось сделать диалог для открытия типизированного файла с предпросмотром


 
Ad   (2002-10-28 17:09) [3]

SottNick:

<<мне из него удалось сделать диалог для открытия <<типизированного ,файла с предпросмотром

можно поподробнее рассказать как это удальсь сделать?


 
SottNick   (2002-10-29 09:10) [4]

Компонент свой сделать не умеешь?
тогда по шагам:
1. делай файл TXTdlgs.pas
unit TXTDlgs;

{$R-}

interface

uses Messages, Windows, SysUtils, Classes, Controls, StdCtrls, Graphics,
ExtCtrls, Buttons, Dialogs;

type

{ TOpenTXTDialog }

TOpenTXTDialog = class(TOpenDialog)
private
FTXTPanel: TPanel;
FTXTLabel: TLabel;
FPaintPanel: TPanel;
FMemo:TMemo;
protected
procedure DoClose; override;
procedure DoSelectionChange; override;
procedure DoShow; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function Execute: Boolean; override;

end;

{ TSaveTXTDialog }

TSaveTXTDialog = class(TOpenTXTDialog)
public
function Execute: Boolean; override;
end;
procedure Register;
implementation

uses Consts, Forms, CommDlg, Dlgs;

{ TOpenTXTDialog }

{$R ICONS.res}
{$R TXTDLGS.RES}


procedure Register;
begin
RegisterComponents("Dialogs", [TOpenTXTDialog,TSaveTXTDialog]);
end;

constructor TOpenTXTDialog.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Filter := "TXT (*.txt)|*.txt";
FTXTPanel := TPanel.Create(Self);
with FTXTPanel do
begin
Name := "PicturePanel";
Caption := "";
SetBounds(204, 5, 169, 200);
BevelOuter := bvNone;
BorderWidth := 6;
TabOrder := 1;
FTXTLabel := TLabel.Create(Self);
with FTXTLabel do
begin
Name := "PictureLabel";
Caption := "";
SetBounds(6, 6, 157, 23);
Align := alTop;
AutoSize := False;
Parent := FTXTPanel;
end;
FPaintPanel := TPanel.Create(Self);
with FPaintPanel do
begin
Name := "PaintPanel";
Caption := "";
SetBounds(6, 29, 157, 145);
Align := alClient;
BevelInner := bvRaised;
BevelOuter := bvLowered;
TabOrder := 0;

FMemo := TMemo.Create(Self);
Parent := FTXTPanel;
with FMemo do
begin
Name := "Memo";
SetBounds(0, 0, 153, 141);
Align := alClient;
Parent := FPaintPanel;
end;
end;
end;
end;

destructor TOpenTXTDialog.Destroy;
begin
FMemo.Free;
FPaintPanel.Free;
FTXTLabel.Free;
FTXTPanel.Free;
inherited Destroy;
end;

procedure TOpenTXTDialog.DoSelectionChange;
var
FullName: string;
function ValidFile(const FileName: string): Boolean;
begin
Result := GetFileAttributes(PChar(FileName)) <> $FFFFFFFF;
end;
begin
FullName := FileName;
if FileExists(FullName) and ValidFile(FullName) then
try
FMemo.Lines.LoadFromFile(FullName);
except
end;
inherited DoSelectionChange;
end;

procedure TOpenTXTDialog.DoClose;
begin
inherited DoClose;
{ Hide any hint windows left behind }
Application.HideHint;
end;

procedure TOpenTXTDialog.DoShow;
var
PreviewRect, StaticRect: TRect;
begin
{ Set preview area to entire dialog }
GetClientRect(Handle, PreviewRect);
StaticRect := GetStaticRect;
{ Move preview area to right of static area }
PreviewRect.Left := StaticRect.Left + (StaticRect.Right - StaticRect.Left);
Inc(PreviewRect.Top, 4);
FTXTPanel.BoundsRect := PreviewRect;
FTXTPanel.ParentWindow := Handle;
inherited DoShow;
end;

function TOpenTXTDialog.Execute;
begin
if NewStyleControls and not (ofOldStyleDialog in Options) then
Template := "DLGTEMPLATE" else
Template := nil;
Result := inherited Execute;
end;

{ TSaveTXTDialog }

function TSaveTXTDialog.Execute: Boolean;
begin
if NewStyleControls and not (ofOldStyleDialog in Options) then
Template := "DLGTEMPLATE" else
Template := nil;
Result := DoExecute(@GetSaveFileName);
end;

end.


2. Делай файл ресурсов TXTdlgs.rc
DLGTEMPLATE DIALOG 0, 0, 316, 76
STYLE 0x404L | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS
FONT 8, "MS Sans Serif"
LANGUAGE LANG_NEUTRAL , SUBLANG_NEUTRAL
{
LTEXT "", 1119, 0, 0, 204, 76, SS_LEFT | WS_CHILD | NOT WS_VISIBLE | WS_GROUP
}


И откомпилируй его brcc32 TXTdlgs.rc
Получишь файл TXTdlgs.RES, должен лечать вместе с TXTdlgs.pas

3. Делай еще один файл ресурсов (ICONS.res) при помощи "Image Editor",
состоящий из 2х картинок (любых) размером 24х24
Первую назови TOPENTXTDIALOG, вторую TSAVETXTDIALOG.
Файл кладешь туда же.

4. Почти готово.
В Delphi делаешь "Component/Install Component"
В "Unit file name" указываешь файл TXTdlgs.pas с путем
Во всплывшем окошке "Package - dclusr..." жмешь "Compile"
ГОТОВО
Во вкладке "Dialogs" должны быть 2 новых компонента.

ЭТО ТЕБЕ ДЛЯ ОСНОВЫ
Свои хотелки сам воплощай.



Страницы: 1 вся ветка

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
3-21416
JS
2002-10-03 17:09
2002.11.07
Как добавить поле к существующей таблице


3-21447
Youri
2002-10-21 11:09
2002.11.07
Ищу в базе!


3-21421
NAlexey
2002-10-18 16:35
2002.11.07
Имя сервера(Data source) из ADOConnection.ConnectString?


1-21621
KIP
2002-10-26 19:11
2002.11.07
Озвучка


3-21393
Александр Б.
2002-10-17 14:31
2002.11.07
Есть ли софт схожий по функциональности с ibexpert только для DB2