dwa polecenia w jednym przycisku

0

mam taki problem mam projekt instalatora w nim jedynie co sie z mienia to to że po kliknięciu na button1 zmienia się panel ale ten button nieleży na tej formie. i mam pierwszy panel i poza panelem button klikam jest dobrze tamten panel zamienia w drugi. i potem problem z trzecim bo juz jest zrobione w tym przycisku żeby po kliknięciu na niego druga forma sie otworzyła a ona juz otwarta i trzecia ma sie otworzyć oto kod może coś pomoże:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, jpeg, StdCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Panel3: TPanel;
    Memo1: TMemo;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    procedure Button1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Panel3.Visible:=True;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
 Button1.Enabled:=True;
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
 Button1.Enabled:=False;

end;

end.
0

Spróbuj zrobić taki program instalacyjny na komponencie TPageControl.
Komponent zakładkowy. Tam będziesz mógł swobodnie robić wszystko i nie martwić się, że się nie odpali jakaś forma.

Zakładki tworzysz prawym przyciskiem myszki na ten komponent i dajesz na New Tabsheet.
W Buttonie dajesz:

PageControl1.ActivePage:=Tabsheet2;

I tym sposobem przycisk przechodzi Ci do zakładki drugiej; Tabsheet3, Tabsheet4 to trzecia i czwarta zakładka. Zależy też jak sobie je nazwiesz. Tytuły zakładek możesz schować i będzie to wyglądało jakbyś otwierał kolejne formy instalatora.

0

ale nie oto chodzi bo panele dobrze jest w nich wszystko wszystkie dobrze przeskakują tylko chodzi mi o to że ten button na którym sie klika jest na formie a nie na jednym z paneli i niewiem jaki kod wstawić do buttona żeby jak bedzie pierwszy panel to jak klikne był drugi i tak do 4 paneli (!!! tylko button nieleży na panelu tylko na formie.)

0

tu umiesciłęm zrzut ekranu może pomoże
user image

0
procedure TForm1.Button1Click(Sender: TObject);
begin
     If Panel1.Visible=True then begin
      Panel1.Visible:=False;
       Panel2.Visible:=True;
  end else begin
     If Panel3.Visible=False then begin
      Panel3.Visible:=True;
       Panel2.Visible:=False;
  end else begin
     If Panel3.Visible=True then begin
      Panel4.Visible:=True;
       Panel3.Visible:=False;
 Button1.Enabled:=False;
   end;
    end;
     end;
      end;

Na szybko napisałem ten kod bo się na PP śpieszę :)
Powinien działać. Na końcu blokuje przycisk "Dalej".
Jak umiesz to zoptymalizuj sobie ten kod.

0

coś mi nie idzie ten kod może kod dobry tylko niemoge coś dostosowac tego kodu do mojego projektu czy moge prosić o przerobienie tego kodu: pierwszy panel to panel3 potem drugi to panel4 itp.

0

możesz iść na łatwiznę -> Jedi -> JvWizard :P

0

ale mi chodzi o tamten sposób ponieważ niechce stracić już tego co zrobiłem . pomocy

0

a może takie coś tylko niewiem jak to zrobić. jest jeden button i jak pierwszy raz nacisne to żeby visabled panelu1 był true, po nacisnięciu drugi raz na ten button żeby visabled panelu2 był true itd.

0

a może takie coś tylko ort! jak to zrobić. jest jeden button i jak pierwszy raz nacisne to żeby visabled panelu1 był true, po nacisnięciu drugi raz na ten button żeby visabled panelu2 był true itd.

No to przecież ci tak zrobiłem. Musisz tylko nazwać odpowiednio swoje panele z mojego kodu.

0

ale jak tak to zrobiłem to raz kliknę panel1 sie zamyka i nic NIE MA jeszcze raz kliknę to też ic NIE MA i przycisk visabled włĄcza się na true i niemoża kliknąć ale form innych niewidać pomocy

0

już wiem o co chodzi w tym kodzie działa on tylko wtedy działą jak te panele są na formie a ja chce je mieć jeden na drugim że panel1 jest i na nim jest panel 2 itp.

0

tu zmieniłęm kod ale wszystko działa oprócz jednej rzeczy

procedure TForm1.Button1Click(Sender: TObject);
begin

     If Panel1.Visible=True then begin
      Panel1.Visible:=True;
       Panel2.Visible:=True;

  end else begin
     If Panel2.Visible=True then begin
      Panel3.Visible:=True;
       Panel2.Visible:=True;

i teraz tak kliklam raz wyskakuje panel2 to działa a jak klikne drugi raz to już panel3 nie wyskakuje (niewidać go) pomocy

0

witaj łukaszkg
zrób tak:

zadeklaruj zmienną publiczną i:integer - w sekcji public TForm;
potem podepnij pod przycisk buttona (u ciebie z caption:Dalej) taki kod:

//----------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
Inc(i,1);
if i=1 then
begin
Panel2.Visible:=true;
end
else
if i=2 then
begin
Panel3.Visible:=true;
end;
end;
//---------------------------------------------------------------------------

U mnie panel2to drugi panel itd...
Do dzieła [browar]

0

sorry że się dopisuję, ale muszę, bo nie zniesę:

nie zapomnij aby w trybie projektowania, lub procedurze create formularza nadać wartości false właściwości visible dla drugiego i trzeciego panelu. [rotfl]

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