Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Pascal: 2 Delphi ongelmaa

Sivun loppuun

tepeli [17.01.2003 13:51:54]

#

teen peliä Delphillä ja ois hyvä tietää millä sella komennolla Delphissä siirytään toiseen formiin , ja toiseksi miten mä onnistun tekemään raha mittarin ?

arcatan [17.01.2003 15:22:59]

#

1: Riippuu vähän siitä, että pitääkö se toinen lomake (johon siirrytään) sulkea ennen kuin voidaan palata takaisin alkuperäiseen lomaakkeeseen...

// Uses-kohtaan pistetään sen unitin nimi jossa toinen form on, jos
// se ei ole samassa unitissa
uses Unit2
...
TOISEN_FORMIN_NIMI.ShowModal; // Tämä, jos niin kuin yllä selitin
TOISEN_FORMIN_NIMI.Show;      // Tämä, jos ei

Toiseen kysymykseen on useampiakin vastauksia, riippuu sitä millaisen haluat ja myös vähän siitä mitä Delphin versiota (ja Windowsia) käytät. Rahamittari voi tarkoittaa aika montaa asiaa. Jos tarvitset sellaisen missä näkyy ikäänkuin prosentuaalinen osuus täydestä, voisit käyttää komponenttia nimeltä TProgressBar. Tietysti voisit myös piirtää suoraan TCanvas :ksen kautta... Selittäppä tarkemmin.

edit: poistin ylimääräisen /koodi-tagin ja korjasin kirjoitusvirheen

tepeli [17.01.2003 19:12:15]

#

siihen formiin pitäs siirtyä napin painallukselta ja ainoastaan yksi formi auki kerrallaan
ja se raha mittarin pitäs olla semmonen että kun ostaa jotain
nin siitä sitten vähene sitten raha ja kun voittaa jotain nin rahaa tulee lisää

tepeli [17.01.2003 19:33:51]

#

No nyt se avaa uuen formin !! Jee !!

AK [17.01.2003 19:43:19]

#

Olettaen että "ostaminen" tapahtuu painonapista ja rahamäärä näkyy Label:ssa, sinun tulee laittaa sen napin OnClick()-proseduuriin rivi, joka vähentää sitä rahamäärä-muuttujaa, ja asettaa Label:iin sen muuttujan uuden arvon.

Eli vaikka näin:

// alussa:
var
    Rahamaara: Integer = 1;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
    Dec(Rahamaara); // Vähennetään rahamäärää, jos haluat kasvattaa
                    // muuttujaa, käytä Inc-funktiota samalla tavalla
    Label1.Caption := IntToStr(Rahamaara); // asetetaan uusi arvo
                                           // Label1:iin
end;

Toivottavasti ymmärsit :)

tepeli [17.01.2003 19:51:48]

#

joo !!
yritän huomenna pitää nukkua !!

tepeli [17.01.2003 20:00:29]

#

no kokeilimpa sittenkin .
SE TOIMII !!!!!
in english
IT WORKS !!!!!
mutta miten sitä vähennettävää/lisättäävää voi muuttaa ?

AK [17.01.2003 20:21:56]

#

lainaus:

mutta miten sitä vähennettävää/lisättäävää voi muuttaa ?

Mitä tarkotat? Tuossa koodissahan minä sen jo näytin :D
Vai tarkoitatko muuttujaan sijoittamista, joka tapahtuu näin:

Rahamaara := 10;

Mutta jos et tuota tiennut niin suosittelen jonkin kirjan hankkimista.

arcatan [18.01.2003 08:16:27]

#

Jos tarkoitat sitä että haluat kasvattaa kerralla vaikka Rahamaaraa 500:lla voisit tehdä for-kierteen:

TForm1.Button1Click(Sender: TObject);
var
  counter: Integer;
begin
    // lisätään viidelläsadalla
    for i := 1 to 500 do
    begin
      Inc(Rahamaara);
    end;
end;

EI, ÄLÄ TEE SITÄ NOIN!!! Tuo oli pelkkä vitsi, sen voi tehdä seuraavasti:

Inc(Rahamaara,500);

TAI

Rahamaara := Rahamaara + 500;

tepeli [18.01.2003 08:37:31]

#

kyllä mulla kirja on mutta kunse on vuodelta 1994 delphi
1selle ja kakkoselle

tepeli [18.01.2003 10:19:49]

#

Voisko joku joka tietää kertoa miten se formista formiin siirtyminen tapahtuu

hotso [18.01.2003 11:46:19]

#

joo käytä tätä

war
inc(mahamäärä)

hotso [18.01.2003 11:54:56]

#

OOUPS
virhe

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = mossu(TForm)
  mässy
    { nalle declarations }
  kloklo
    { kaniini declarations }
  kill;

war
  Form1: TForm1;
inc (kuramäärä
unix (water on märk)
ixxa (sulta tuli kakka)
label (surffi) smurffi paita
label elext (kysymys on kauaanko elät)
implementation

{$R *.DFM}

kill.

arcatan [18.01.2003 15:17:46]

#

lainaus:

Voisko joku joka tietää kertoa miten se formista formiin siirtyminen tapahtuu

No eikö toi mun ehdotus toimi?

edit: lisätty lainaus selventämään.

arcatan [18.01.2003 15:32:56]

#

Otetaas tuo mun esimerkki selvemmin

Kun painaa nappi Button1 Form1 :llä, piilotetaan Form1 ja näytetään Form2. Kun Form2 on suljettu, näytetään Form1.

procedure TForm1.Button1Click(Sender: TObject);
begin
  Visible := False;
  Form2.ShowModal;
  Visible := True;
end;

hotso [19.01.2003 08:42:23]

#

ei toikaan oikein toimi sen pitäs mennä niin että
kun painetaan esim.painetaan Button1 form1 sitten suljetaan
form1 ja tilalle tulee form2 ja kun form2 painetaan
Button1 suljetaan form2 ja tilalle tulee form3 ja niin
edelleen

tepeli [19.01.2003 08:44:38]

#

hupsista väärä tyyppi unohdin logata ulos ...
siis mun piti sanoa toi

arcatan [19.01.2003 10:04:23]

#

No mainformia ei pysty varsinaisesti sulkemaan, sillä silloin loppuu ohjelma. Mutta, leikitään nyt että Form1 EI ole mainform. Jos se on, niin täytyisi käyttää edellistä esimerkkiäni.

// Form1:een
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Show;
  Close;
end;
// Form2:een
procedure TForm2.Button1Click(Sender: TObject);
begin
  Form3.Show;
  Close;
end;

Ja niin eteenpäin

tepeli [19.01.2003 15:50:11]

#

onkohan c++ sama hommeli

lainaus:

No mainformia ei pysty varsinaisesti sulkemaan, sillä silloin loppuu ohjelma. Mutta, leikitään nyt että Form1 EI ole mainform. Jos se on, niin täytyisi käyttää edellistä esimerkkiäni.

// Form1:een
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Show;
  Close;
end;
// Form2:een
procedure TForm2.Button1Click(Sender: TObject);
begin
  Form3.Show;
  Close;
end;

Ja niin eteenpäin

AK [19.01.2003 16:29:32]

#

lainaus:

kyllä mulla kirja on mutta kunse on vuodelta 1994 delphi
1selle ja kakkoselle

Sehän on Windows 3.1:n aikaa :D

tepeli [19.01.2003 19:20:13]

#

lainaus:

lainaus:

kyllä mulla kirja on mutta kunse on vuodelta 1994 delphi
1selle ja kakkoselle

Sehän on Windows 3.1:n aikaa :D

Totta kaikki kuvat on win 3.1 ja deldhi 1


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta