[delphi] Nie pokazuj ponownie tego kna (checkbox)

1

Witam,
Tak jak w temacie...
Czy da się (tzn pewnie się da) ale jak stworzyć takie okno(np. powitalne) i móc tam zaznaczyć checkboxa przy informacji "Nie pokazuj więcej tego okna" ...
no i oczywiście żeby to działało :)

Z góry dziękuję :)

0

Omg... wyświetlasz okno z checkboxem, jego ustawienie zapisujesz do pliku. Przy starcie aplikacji odczytujesz ten plik i sprawdzasz, czy wyświetlić ponownie to okienko (czyli w pliku na poczatku ma byc zapisne, zeby je wyswietlac).

0

To z reguły jest okno modalne, które po wywołaniu zwraca jakąś wartość (ModalResult) i tą wartość musisz ustawić podczas zamykania okna a później pozostaje if ModalResult = 1 then zapisz nie chcemy cie a przed próbą utworzenia tego okna sprawdzenie tej wartości.

EDIT// [losowa nazwa] trochę mnie uprzedził

0

Losowa nazwa - dzięki za odpowiedź ale nie musisz reagować tak jakby sami debile tu prosili o pomoc... każdy ma prawo czegoś nie wiedziec ... a jak robisz taką łachę z odpisaniem to po co na forum siedzisz

koniec tematu

0
rydzek12 napisał(a)

Losowa nazwa - dzięki za odpowiedź ale nie musisz reagować tak jakby sami debile tu prosili o pomoc... każdy ma prawo czegoś nie wiedziec ... a jak robisz taką łachę z odpisaniem to po co na forum siedzisz

koniec tematu

Zgadzam się z Tobą w 100%, że masz prawo czegoś nie wiedzieć, jednak forum to ostateczność, najpierw jest myślenie i tu się zgodzę ze sobą w 100%.

Wiesz już jak te okienko zrobić?

0

Proponuję użyć funkcji CreateMessageDialog, np.

Uses Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
   //....
  private
    { Private declarations }
    Procedure ChBoxOnClick(Sender: TObject); //procedura do obsługi kliknięcia CheckBox-a

  public
    { Public declarations }
  end;

Var
 ChBox: TCheckbox;

Procedure Dialog_z_CheckBox(Komunikat, Naglowek, CaptionCheckBoxa: String; TypDialogu:TMsgDlgType; PrzyciskiPaska: TBorderIcons; Przyciski:TMsgDlgButtons; Var ModalRezultat: TModalResult; Var Checked: Boolean);
 Var
  Dlg : TForm;
 Begin
  Dlg:=CreateMessageDialog(Komunikat, TypDialogu, Przyciski); //utworzenie okna dialogu
  Dlg.Caption:=Naglowek; //ustawienie opisu okna dialogu
  Dlg.BorderIcons:=PrzyciskiPaska; //ustawienie przycisków na pasku okna (biMinimize, biMaximize, biSystemMenu, biHelp)
  Dlg.Height:=130; //wysokość okna
  Dlg.ActiveControl:=TButton(Dlg.FindComponent('No')); //aktywny przycisk
  TImage(Dlg.FindComponent('Image')).Picture.Assign(Application.Icon); //ikonka na dialogu
  TButton(Dlg.FindComponent('Yes')).Caption := 'Przycisk1'; //wymuszenie zmiany captiona przycisku 'Yes' na 'Przycisk1'
  TButton(Dlg.FindComponent('No')).Caption := 'Przycisk2'; //j.w.
  TButton(Dlg.FindComponent('Yes')).Top:=70; //ustawienie pozycji przycisku
  TButton(Dlg.FindComponent('No')).Top:=70;  //j.w.
  ChBox:=TCheckBox.Create(Dlg); //utworzenie CheckBoxa
  ChBox.Parent:=Dlg; //przypisanie rodzica CheckBox-owi
  ChBox.Caption:=CaptionCheckBoxa; // nadanie captiona CherckBox-owi
  ChBox.Left:=(Dlg.Width-ChBox.Width) div 2; //ustawienie CheckBoxa po środku w poziomie
  ChBox.Top:=40; //ustawienie w pionie
  ChBox.Checked:=Checked; //przypisanie początkowego ustawienia checkboxa
  ChBox.OnClick:=Form1.ChBoxOnClick; //przypisanie procedury obsługującej zdarzenie kliknięcia CheckBoxa
  Dlg.ShowModal; //pokazanie dialogu
  //----------------------------- akcje po zamknięciu dialogu ------------------------
  ModalRezultat:=Dlg.ModalResult; //przypisanie rezultatu wyboru przycisku
  Checked:=ChBox.Checked; //przypisanie rezultatu zaznaczenia checkboxa
  ChBox.Free; //zwolnienie obiektów z pamięci
  Dlg.Free;
end;

Procedure TForm1.ChBoxOnClick(Sender: TObject); //obsługa kliknięcia CheckBox-a
 Begin
  If ChBox.Checked then Showmessage('Zaznaczyłeś CheckBoxa')
                   else Showmessage('Odznaczyłeś CheckBoxa');
 End;

//------------- przykład użycia ----------------------------

procedure TForm1.Button1Click(Sender: TObject);
Var
 ModalRezultat: TModalResult;
 Checked: Boolean;
begin
  Checked:=false; //początkowe ustawienie CheckBoxa
  Dialog_z_CheckBox('Czy na pewno chcesz coś tam coś tam?','Pytanie', 'Nie pytaj więcej', mtConfirmation, [biSystemMenu, biHelp], [mbYes, mbNo], ModalRezultat, Checked);
  If Checked then Showmessage('CheckBox zaznaczony')
             else Showmessage('CheckBox nie zaznaczony');
  Case ModalRezultat of
    mrYes: Showmessage('Wybrano Przycisk1');
    mrNo:  Showmessage('Wybrano Przycisk2');
      else Showmessage('Kliknięto krzyżyk');
  End;
end;
//--------------
 

Pzdr.
Marogo

1 użytkowników online, w tym zalogowanych: 0, gości: 1