Delphi help(hi) :D

Programovacie jazyky, rady, poradňa...
Thek_SVK
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1534
Registrovaný: 24 feb 2007, 21:56

Delphi help(hi) :D

Príspevok od používateľa Thek_SVK »

Takze som zacal trosku delphi skusat, budem asi obcas potrebovat pomoc, mam par otazok
... neviem prist na to ako mozem nacitat novu formu po kliknuti na nejake tlacidlo...
Proste kliknem, a nacita sa mi okno s inymi tlacidlami a vecami...How to ?

A potom obecnejsie
1)A potom este akym sposobom to cele vlastne pracuje ? ... Co znamena unit, ? Interface ?
2) V type su len zdeklarovane pouzite tlacidla a procedury ?
3)Potom je tam este private a public...co je to zac ? [/b]
4)Vo var...
var
Form1: TForm1;
Cize forma sa berie ako premenna, ale co znamena TForm1 ?

5)A na zaver...
implementation

{$R *.dfm}

What the hell ?
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Re: Delphi help(hi) :D

Príspevok od používateľa beluský »

Thek_SVK napísal:Takze som zacal trosku delphi skusat, budem asi obcas potrebovat pomoc, mam par otazok
... neviem prist na to ako mozem nacitat novu formu po kliknuti na nejake tlacidlo...
Proste kliknem, a nacita sa mi okno s inymi tlacidlami a vecami...How to ?

A potom obecnejsie
1)A potom este akym sposobom to cele vlastne pracuje ? ... Co znamena unit, ? Interface ?
2) V type su len zdeklarovane pouzite tlacidla a procedury ?
3)Potom je tam este private a public...co je to zac ? [/b]
4)Vo var...
var
Form1: TForm1;
Cize forma sa berie ako premenna, ale co znamena TForm1 ?

5)A na zaver...
implementation

{$R *.dfm}

What the hell ?
asi by si si mal pozriet nejake zaklady o OOP
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

nechcem ťa odrádzať, ale buď to nerieš (tie body čo si sa pýtal) alebo si najprv naštuduj čo je to OOP. Toto mi pripadá ako: "začal som s pečením koláčov, ale čo dočerta je to múka a kde to zoženiem?"
Thek_SVK
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1534
Registrovaný: 24 feb 2007, 21:56

Príspevok od používateľa Thek_SVK »

Moja chyba, ospravedlnujem sa, moc so mdo toho rychlo skocil a neuvedomil som si ze je to proti klasickemu pascalu predsa len dost rozdiel. Takze idem studovat...

//autoeditácia príspevku ( 19 May 2009, 14:50 )

Kód: Vybrať všetko

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    tlacitko: TButton;
    prepinac: TButton;
    Label1: TLabel;
    procedure tlacitkoClick(Sender: TObject);
    procedure prepinacClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TForm2 = class
    Button1: TButton;
    Label1: TLabel;
  end;

var
  Form1: TForm1;
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm1.tlacitkoClick(Sender: TObject);

 begin
  if Tlacitko.Caption='slovensky' then
    begin
        Label1.Caption:='Ahoj svet!';
        Tlacitko.Caption:='English';
    end
  else
    begin
        Label1.Caption:='Hello World';
        Tlacitko.Caption:='slovensky';
    end;

end;

procedure TForm1.prepinacClick(Sender: TObject);
 begin
  Form1.Hide;
  Form2.Show;
 end;

end.
neviem is dat rady, podla toho co som na nete by to malo ist takto, ale predsa sa mu nieco nepaci ...

Undeclarated identifier 'Show'
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

o delphi nemam ani sajnu ale undeclared zanmena z eneni delkarovana deklaruj ju :?:
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

to by som chcel vidieť ten tutorial, pretože to čo tam máš je úplne hlúposť. Predpokladám že chceš spraviť nový form a prepínať medzi nimi. Ty si ale deklaroval triedu TForm2 (ktorá ale nie je formulár) a chceš používať jej metódu bez toho aby si ju vytvoril a dokonca bez toho aby takú metódu mala, čiže aj keby vytvoríš inštanciu tvojho objektu tak ti to nejde. Si si istý že si za class nezabudol dať (TForm) ? To by sa skôr podobalo tvojmu zámeru :)
Thek_SVK
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1534
Registrovaný: 24 feb 2007, 21:56

Príspevok od používateľa Thek_SVK »

Konecne mam cas ...Neviem si dat rady s tymto - konzolova objektova aplikacia na vypocet kvadratickej rovnice. Sice ju spusti, ale hned po zadani koeficientov cely program spadne a nasleduje chyba

Kód: Vybrať všetko

program kvad2r;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  TKvadrRovnica = class

    private
     a, b, c, D : integer;
     x1, x2:  real;
     function VypocDiskr: Integer;
     function VypocKorenx1: real;
     function VypocKorenx2: real;

    Public
     procedure ZadajKoeficienty;
     procedure VypisDiskr;
     procedure VypisKoren;
end;

var rovnica: TkvadrRovnica;

Function TKvadrRovnica.VypocDiskr:integer;
 begin
   D:=b*b - 4*a*c;
   result:= D;
 end;

Function TKvadrRovnica.VypocKorenx1;
 begin
  x1:=(-b+sqrt(D))/2*a;
  result:= x1;
 end;

Function TKvadrRovnica.VypocKorenx2;
 begin
  x2:=(-b-sqrt(D))/2*a;
  result:= x2;
 end;

Procedure TKvadrRovnica.ZadajKoeficienty;
 begin
  writeln ('Zadaj A ');
  Readln (a);
  Writeln ('Zadaj B ');
  Readln (b);
  Writeln ('Zadaj C ');
  Readln (c);

  VypocDiskr();
  x1:=vypockorenx1();
  x2:=vypockorenx2();
 end;

Procedure TKvadrRovnica.VypisDiskr;
 Begin
  writeln ('Diskriminant je: ',D);
 end;

Procedure TKvadrRovnica.VypisKoren;
 begin
  writeln ('Korene su ', x1 ,' a ', x2);
 end;


begin
  Rovnica.ZadajKoeficienty;
  Rovnica.VypisDiskr;
  Rovnica.VypisKoren;
  readln;
end.
Fakt neviem co tam mam zle
Prílohy
chybicka.JPG
paralen
Light Star
Light Star
Príspevky: 267
Registrovaný: 02 máj 2006, 15:15

Príspevok od používateľa paralen »

Kód: Vybrať všetko

program kvad2r; 

{$APPTYPE CONSOLE} 

uses 
  SysUtils; 

type 
  TKvadrRovnica = class    
    private
     function VypocDiskr: Integer; 
     function VypocKorenx1: real; 
     function VypocKorenx2: real; 

    Public 
     procedure ZadajKoeficienty; 
     procedure VypisDiskr; 
     procedure VypisKoren; 
end; 

var rovnica: TkvadrRovnica;
  a, b, c, D : integer;
  x1, x2:  real;

Function TKvadrRovnica.VypocDiskr:integer; 
 begin 
   D:=b*b - 4*a*c; 
   result:= D; 
 end; 

Function TKvadrRovnica.VypocKorenx1; 
 begin 
  x1:=(-b+sqrt(D))/2*a; 
  result:= x1; 
 end; 

Function TKvadrRovnica.VypocKorenx2; 
 begin 
  x2:=(-b-sqrt(D))/2*a; 
  result:= x2; 
 end; 

Procedure TKvadrRovnica.ZadajKoeficienty; 
 begin 
  writeln ('Zadaj A '); 
  Readln (a); 
  Writeln ('Zadaj B '); 
  Readln (b); 
  Writeln ('Zadaj C '); 
  Readln (c); 

  VypocDiskr(); 
  x1:=vypockorenx1(); 
  x2:=vypockorenx2(); 
 end; 

Procedure TKvadrRovnica.VypisDiskr; 
 Begin 
  writeln ('Diskriminant je: ',D); 
 end; 

Procedure TKvadrRovnica.VypisKoren; 
 begin 
  writeln ('Korene su ', x1 ,' a ', x2); 
 end;


begin 
  Rovnica.ZadajKoeficienty; 
  Rovnica.VypisDiskr; 
  Rovnica.VypisKoren; 
  readln; 
end.
ps: nezabudni este osetrit ak je diskriminant mensi ako nula :D
Thek_SVK
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1534
Registrovaný: 24 feb 2007, 21:56

Príspevok od používateľa Thek_SVK »

hej viem, zatial som chcel skusit len taky zaklad ... je to moj prvy objektovy program. Dakujem velmi, takze chyba bola len ze bolo naopak result := daco ? Ja som tusil ze to bude nejaka banalita :)

//autoeditácia príspevku ( 18 Jun 2009, 21:44 )
Da sa nejakym sposobom urobit aby konzola dokazala napisat aj vedlajsie ASCII znaky ? Potreboval by som konkretne #2588 = █ , avsak konzola vypise miesto toho len otaznik

//autoeditácia príspevku ( 18 Jun 2009, 23:36 )
Dalsia otazka...mam interval

var z: 1..5;

Potom v urcitej casti kodu k nemu pripocitava jednotky. Ked uz je na 5ke a pripocita dalsiu jednotku, namiesto toho aby to Z-etko pretieklo, ide normalne na 6ku,7,8,9.... Ako je to mozne, ked je to uz mimo daneho intervalu ?

A dalsia vec...samozrejme ze sa take nieco da jednoducho urobit cez podmienku, ale ja si vravim preco by som nemal vyuzit pretecenie ked by to bolo len v prospech a "usetrilo 1 riadok kodu (podmienka)" ? Kamarat mi vravi aby som to tak nerobil. Bol by som vdacny za mozne zle vplivy pretecenia, dakujem :)
Napísať odpoveď