Oon tekemässä ohjelmaa, mutta miten liitän kaksi formia yhteen sillein, että kun painan (form1:ssä) seuraava -painiketta niin ohjelman pitäisi mennä form2:een ?
Sama juttu olisi valikossa : Eli form1:ssä on valikko josta valitsemalla UUSI pitäisi tulla form1:n tilalle form2 ?
Olisikohan (en nyt aivan varma ole, en ole testannut..) näin:
procedure Form1.Button1OnClick(Sender: TObject) begin // Voi olla että seuraavan kahden rivin pitäisi olla // toisin päin? Form1.Hide; Form2.Show; end;
Kyllä tuo toimi, mutta saako sen formin pysymään samassa kohdassa ? Form2 heittää itsensä pikkaisen erilaiseen kohtaan.
Entä saako menun kaikkiin formeihin vain jollain includella ? Vai pitääkö se lisätä copy/paste tyylillä ?
No tuon ongelman, että se heittää itsensä väärään kohtaan voit korjata vaikka näin:
Form2.Left := Form1.Left;
Form2.Top := Form1.Top;
Niin ja laita toi tapahtumaan aina OnActivate kohdalla
lainaus:
Entä saako menun kaikkiin formeihin vain jollain includella ? Vai pitääkö se lisätä copy/paste tyylillä ?
No copy-pastella onnistuu helpoiten kun vaan kopioi sen TMainMenu-komponentin, mutta en ole includesta ihan varma. Luulisin, että se onnistuu siten, että kopiot tuon TMainMenu-komponentin määrityksen lomakkeella omaan tiedostoon ja sitten jollain esikääntäjän direktiivillä lisäät kaikkien lomakkeiden tekstimäärityksiin sen sopivaan kohtaan. Minulla ei ole aavistustakaan mikä olisi oikea direktiivi, tai edes siitä, toimiiko tämä.
Nyt pitäisi saada tällainen :
Käyttäjä laittaa nimensä Edit -laatikkoon form1:ssä.
Sitten se nimi pitäisi saada form2:seen vaikka näin -> Nimi : (tähän se editin teksti) ?
Form2.Label1.Caption := 'Nimi: ' + Form1.Edit1.Text;
Kiitos, mutta mä joudun painamaan sitä Nimi kohtaa, jotta siihen tulisi se mitä kirjoitin form1:ssä...
procedure TForm2.Label1Click(Sender: TObject); begin Form2.Label1.Caption := 'Nimi : ' + Form1.Edit1.Text; end;
Tossa on tuo TForm2.Label1Click - pitääkö siihen laittaa jotain muuta ?
Laita Form2 OnActivate kohtaan noi toiminnot.
Eli se olisi kai jotain procedure TForm2.Nimi(Sender: TObject);
begin
Form2.Label1.Caption := 'Nimi : ' + Form1.Edit1.Text;
end;
En itsekkään ole ohjelmoinut Delphillä kuin 2 päivää
No siis milloin sen nimen pitäisi tulla sinne?
Voisit vaikka laittaa sen Edit1 :n OnChange-tapahtumaan tuon vaihtamisen, jolloin aina jos sitä tekstiä Edit1 :ssä vaihtaa, se päivittyy Form 2:lle.
procedure TForm1.Edit1Change(Sender: TObject); begin Form2.Label1.Caption := 'Nimi : ' + Form1.Edit1.Text; end;
Aihe on jo aika vanha, joten et voi enää vastata siihen.