Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Вниз"Не показывать больше это окно" Найти похожие ветки
← →
Fishka (2004-10-05 12:28) [0]Подскажите, как создать окно с галочкой "Не показывать больше это окно"
← →
TUser © (2004-10-05 12:37) [1]Кинуть на форму чекбокс?
← →
Fishka (2004-10-05 12:41) [2]Это понятно он и так галочку ставить будет, мне нужно чтобы ащкьф загружалась в программе до тех пор пока CheckBox не будет с галочкой
← →
Reindeer Moss Eater © (2004-10-05 12:43) [3]if then else
← →
Суслик © (2004-10-05 12:43) [4]храни где-нибудь:
1. TIniFile
2. TRegistry
3. TFileStream
выбирай на вкус и цвет
← →
Fishka (2004-10-05 12:44) [5]Логично, только в откомпиленом проекте галочка сохраняться не будет
← →
Reindeer Moss Eater © (2004-10-05 12:45) [6]А это не единственное место для галочек
← →
Fishka (2004-10-05 12:46) [7]По поводу ини-файла вещь пройдет, как создать файлик понятно, а как определить есть-ли он
← →
Reindeer Moss Eater © (2004-10-05 12:47) [8]Это тема кандидатской
← →
Fishka (2004-10-05 12:47) [9]Я не совсем понял, что значит "А это не единственное место для галочек"
← →
Reindeer Moss Eater © (2004-10-05 12:48) [10]Это значит что есть еще места.
← →
Игорь Шевченко © (2004-10-05 12:57) [11]
function hs_MessageDlgWithCheckBox (const MsgStr : String;
DlgType : TMsgDlgType;
var Checked : Boolean;
CheckBoxStr : String) : Integer;
const
CheckBoxOffset = 10; //Отступ CheckBox"а от краев формы и от кнопок
var CheckBox : TCheckBox;
AForm : TForm;
HeightInc, WidthInc : Integer; //Изменения ширины и высоты формы для
//вставки CheckBox"а
CheckBoxWidth : Integer; //Ширина CheckBox"а с надписью и отступами
TextRect : TRect;
AMsgButtons : TMsgDlgButtons;
AButton : TButton;
begin
AMsgButtons := [mbOk];
case DlgType of
mtConfirmation:
AMsgButtons := [mbYes, mbNo];
end;
AForm := CreateMessageDialog(MsgStr, DlgType, AMsgButtons);
with AForm do
try
Caption := Application.Title;
Position := poMainFormCenter;
//Создание CheckBox"а с флажком слева от надписи и установка его на форму
CheckBox := TCheckBox.Create(AForm);
CheckBox.Alignment := taRightJustify;
CheckBox.Parent := AForm;
CheckBox.Caption := CheckBoxStr;
//Определение ширины надписи на CheckBox"е. Поскольку Canvas CheckBox"а
//недоступна, ширина определяется по Canvas формы, а чтобы надпись была
//той же ширины, Font CheckBox"а приравнивается к Font формы.
CheckBox.Font.Assign(Font);
SetRect(TextRect, 0, 0, Screen.Width div 2, 0);
DrawText(Canvas.Handle, PChar(CheckBoxStr), Length(CheckBoxStr), TextRect,
DT_CALCRECT OR DT_EXPANDTABS OR DT_WORDBREAK);
//TextRect содержит размеры надписи для CheckBox"а.
//Я считаю, что CheckBox без надписи имеет ширину, равную высоте
//(установлено эмпирическим путем)
//Ширина CheckBox"а с отступами справа и слева.
CheckBoxWidth := TextRect.Right + CheckBoxOffset * 2 + CheckBox.Height;
//Изменение высоты формы
HeightInc := CheckBox.Height + CheckBoxOffset;
Height := Height + HeightInc;
//Если CheckBox с надписью получился шире формы, то форма должна стать
//шире, а кнопки выровнены по центру.
if (Width < CheckBoxWidth) then begin
WidthInc := (CheckBoxWidth - Width) DIV 2; //Для центрирования кнопок
Width := CheckBoxWidth;
end else
WidthInc := 0;
if (DlgType = mtConfirmation) then begin
AButton := FindComponent("Yes") as TButton;
AButton.Caption:=SMsgDlgYes;
end else
AButton := FindComponent("Ok") as TButton;
with AButton do begin
Top := Top + HeightInc;
//По первой кнопке спозиционировать CheckBox по высоте
CheckBox.Top := Top - CheckBox.Height - CheckBoxOffset;
Left := Left + WidthInc;
end;
if DlgType = mtConfirmation then
with (FindComponent("No") as TButton) do begin
Caption:=SMsgDlgNo;
Top := Top + HeightInc;
Left := Left + WidthInc;
end;
CheckBox.Width := Width - CheckBoxOffset;
CheckBox.Left := CheckBoxOffset;
Result := ShowModal;
Checked := CheckBox.Checked;
finally
Free;
end;
end;
{
Функция выдает сообщение, требующее подтверждения, с возможностью отключения
выдачи этого сообщения.
}
function ConfirmWithCheckBox (const MsgStr: String; var Checked: Boolean;
CheckBoxStr: String = "Больше не показывать это сообщение"): Integer;
begin
Result := hs_MessageDlgWithCheckBox (MsgStr, mtConfirmation, Checked,
CheckBoxStr);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.042 c