Форум: "Основная";
Текущий архив: 2009.09.27;
Скачать: [xml.tar.bz2];
ВнизКак в InputBox_е изменить шрифт ??? Найти похожие ветки
← →
Zhekson (2008-07-18 12:02) [0]При инициализации приложения делаю вход по паролю. Теперь для скрытия пароля нужно полю для ввода пароля присвоить следующие значения:
Font.Name := "Wingdings";
PasswordChar := "l";
Как эот сделать?
← →
Zhekson (2008-07-18 12:04) [1]виноват, использую InputQuery.
if InputQuery("Password", "Enter your password", PassWord) then
if Password = "lowhuk" then
begin
/////////////
end;
← →
Vlad Oshin © (2008-07-18 12:51) [2]:)
Выдрать исходник и поставить как надо
procedure TForm3.Button1Click(Sender: TObject);
var
PassWord:string;
function GetAveCharSize(Canvas: TCanvas): TPoint;
var
I: Integer;
Buffer: array[0..51] of Char;
begin
for I := 0 to 25 do Buffer[I] := Chr(I + Ord("A"));
for I := 0 to 25 do Buffer[I + 26] := Chr(I + Ord("a"));
GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
Result.X := Result.X div 52;
end;
function MyInputQuery(const ACaption, APrompt: string;
var Value: string): Boolean;
var
Form: TForm;
Prompt: TLabel;
Edit: TEdit;
DialogUnits: TPoint;
ButtonTop, ButtonWidth, ButtonHeight: Integer;
begin
Result := False;
Form := TForm.Create(Application);
with Form do
try
Canvas.Font := Font;
DialogUnits := GetAveCharSize(Canvas);
BorderStyle := bsDialog;
Caption := ACaption;
ClientWidth := MulDiv(180, DialogUnits.X, 4);
Position := poScreenCenter;
Prompt := TLabel.Create(Form);
with Prompt do
begin
Parent := Form;
Caption := APrompt;
Left := MulDiv(8, DialogUnits.X, 4);
Top := MulDiv(8, DialogUnits.Y, 8);
Constraints.MaxWidth := MulDiv(164, DialogUnits.X, 4);
WordWrap := True;
end;
Edit := TEdit.Create(Form);
with Edit do
begin
Font.Name := "Wingdings";
PasswordChar := "l";
Parent := Form;
Left := Prompt.Left;
Top := Prompt.Top + Prompt.Height + 5;
Width := MulDiv(164, DialogUnits.X, 4);
MaxLength := 255;
Text := Value;
SelectAll;
end;
ButtonTop := Edit.Top + Edit.Height + 15;
ButtonWidth := MulDiv(50, DialogUnits.X, 4);
ButtonHeight := MulDiv(14, DialogUnits.Y, 8);
with TButton.Create(Form) do
begin
Parent := Form;
Caption := SMsgDlgOK;
ModalResult := mrOk;
Default := True;
SetBounds(MulDiv(38, DialogUnits.X, 4), ButtonTop, ButtonWidth,
ButtonHeight);
end;
with TButton.Create(Form) do
begin
Parent := Form;
Caption := SMsgDlgCancel;
ModalResult := mrCancel;
Cancel := True;
SetBounds(MulDiv(92, DialogUnits.X, 4), Edit.Top + Edit.Height + 15,
ButtonWidth, ButtonHeight);
Form.ClientHeight := Top + Height + 13;
end;
if ShowModal = mrOk then
begin
Value := Edit.Text;
Result := True;
end;
finally
Form.Free;
end;
end;
begin
if MyInputQuery("Password", "Enter your password", PassWord) then
if Password = "lowhuk" then
begin
/////////////
end;
← →
Zhekson (2008-07-18 15:51) [3]Vlad Oshin © (18.07.08 12:51) [2]
спасибо, это то что нужно.
Вот только такой прикол вышел, дома у меня проект откомпилировался без функцииGetAveCharSize(Canvas: TCanvas): TPoint;
, а на работе заартачился, говорит не нахожуVclUtils.dcu
. А с чем это я мог прикрутить этот модуль?
← →
Vlad Oshin © (2008-07-18 16:13) [4]InputQuery и GetAveCharSize лежат в одном модуле,
подключить его попробуйте, попробуйте подключить и то, что этот модуль использует
да и
DialogUnits: TPoint;
GetAveCharSize(Canvas: TCanvas): TPoint
вычисляется
DialogUnits := GetAveCharSize(Canvas);
попробуйте по аналогии вычислить, или задать жестко на худой конец
DialogUnits.X := 20;
DialogUnits.Y:= 20;
← →
Zhekson (2008-07-18 16:51) [5]Vlad Oshin © (18.07.08 16:13) [4]
странно, в модуле Dialogs, есть ф-ция GetAveCharSize(Canvas), но при компиляции выскакивает ошибка необьявленного идентификатора GetAveCharSize.
вичислить и задать жёстко удалось, но почему ошибка выскакивает, если модуль Dialogs, в котором есть эта функция, прописан???
← →
Vlad Oshin © (2008-07-18 17:36) [6]а если так:
function MyGetAveCharSize(Canvas: TCanvas): TPoint;
..
DialogUnits := MyGetAveCharSize(Canvas);
-----------
или так:
................
var
Form3: TForm3;
function GetTextExtentPoint(DC: HDC; Str: PChar; Count: Integer;
var Size: TSize): BOOL; stdcall;
implementation
{$R *.dfm}
function GetTextExtentPoint; external gdi32 name "GetTextExtentPointA";
procedure TForm3.Button1Click(Sender: TObject);
var
PassWord:string;
function MyGetAveCharSize(Canvas: TCanvas): TPoint;
var
I: Integer;
Buffer: array[0..51] of Char;
begin
for I := 0 to 25 do Buffer[I] := Chr(I + Ord("A"));
for I := 0 to 25 do Buffer[I + 26] := Chr(I + Ord("a"));
GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
Result.X := Result.X div 52;
end;
function MyInputQuery(const ACaption, APrompt: string;
var Value: string): Boolean;
var
Form: TForm;
Prompt: TLabel;
Edit: TEdit;
DialogUnits: TPoint;
ButtonTop, ButtonWidth, ButtonHeight: Integer;
begin
Result := False;
Form := TForm.Create(Application);
with Form do
try
Canvas.Font := Font;
DialogUnits := MyGetAveCharSize(Canvas);
BorderStyle := bsDialog;
.....
--------------------
← →
Германн © (2008-07-19 01:30) [7]
> Как в InputBox_е изменить шрифт ??? [D7, WinXP]
>
> Zhekson (18.07.08 12:02)
>
> При инициализации приложения делаю вход по паролю. Теперь
> для скрытия пароля нужно полю для ввода пароля присвоить
> следующие значения:
>
>
> Font.Name := "Wingdings";
> PasswordChar := "l";
>
>
> Как эот сделать?
> <Цитата>
>
> Zhekson (18.07.08 12:04) [1]
>
> виноват, использую InputQuery.
>
>
А не проще ли создать свой собственный диалог для ввода пароля?
← →
Zhekson (2008-07-21 09:44) [8]Vlad Oshin © (18.07.08 17:36) [6]
Да, работает. Спасибо.
> А не проще ли создать свой собственный диалог для ввода
> пароля?
Если имеется ввиду создание формы, на которую нужно кинуть поле ввода пароля, лэйбл и кнопку, то как её эктивизировать раньше, чем главную форму?
← →
Vlad Oshin © (2008-07-21 10:28) [9]procedure TForm3.FormCreate(Sender: TObject);
var
f3:tform;
begin
f3:=tform.create(application);
f3.Left:=10;
f3.Top:=10;
try
f3.ShowModal;
finally
f3.Free;
end;
end;
← →
Zhekson (2008-07-21 10:53) [10]Vlad Oshin © (21.07.08 10:28) [9]
Во, тоже вариант. Спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.09.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c