Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-1095008025
Solo
2004-09-12 20:53
2004.10.17
Вызов функции из другого процесса


6-1091909744
ДухКороляАртура
2004-08-08 00:15
2004.10.17
FTP


14-1096304163
Capone
2004-09-27 20:56
2004.10.17
delphi 1


1-1096464141
Gemini
2004-09-29 17:22
2004.10.17
Поиск


1-1095381419
Артем К.
2004-09-17 04:36
2004.10.17
Пауза на программу?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский