Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 8 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Delphi - object or class type required

Registrovaný: 07.08.09
Prihlásený: 08.12.09
Príspevky: 17
Témy: 3
Príspevok NapísalOffline : 09.10.2009 17:59

procedure Thra.NakolaClick(Sender: TObject); // vyber typu hry
begin
ModhryV:=3;
TypHryName:='Nakola';
end;

procedure Thra.SetModHry (TypHryName: string); // zmeni nazov prave vybranej polozky
begin
NaKola.caption:='Na Kola';
NaVitazstva.Caption:='Na Vitazstva';
Volny.Caption:='Volny';
TypHryName.Caption:=TypHryName + ' (teraz)'; // prida k vybranej polozke "teraz"
Hra.Hide;
ModW.Show;
end;

Je to cast kodu z Kamen Papier Noznice a mam nasledujuci problem - na riadku:
TypHryName.Caption:=TypHryName + ' (teraz)';

Hlasi chybu: Record, object or class type required. Vobec nemam tusenia co samu nepaci. Ono to vlastne meni nazov vopred neurcitej polozky, ale myslel som ze s tym nebudu problemy.
Dakujem

//viem ze by sa to dalo urobit aj inak, ale zamerne som chcel vyuzit parameter


Offline

Skúsený užívateľ
Skúsený užívateľ
Delphi - object or class type required

Registrovaný: 11.01.09
Prihlásený: 28.03.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 09.10.2009 18:24

Z programového hľadiska tam nemáš chybu, takže z takého výcucu kódu ťažko určiť chybu. Na ostatných labeloch to neukazuje? Skús tomuto labelu priradiť iba konštantný údaj (čiže iba niečo v úvodzovkách), či to takisto vyhlási chybu.
(a ešte otázka: Je to run time error, alebo sa to nedá skompilovať?)


Offline

Užívateľ
Užívateľ
Delphi - object or class type required

Registrovaný: 07.08.09
Prihlásený: 08.12.09
Príspevky: 17
Témy: 3
Príspevok Napísal autor témyOffline : 09.10.2009 18:57

Pokial dosadim dosadim pred .caption nieco s pevnou hodnotou tak to problemy nerobi....a chybu vyhlasuje pri kompilacii

Este pridavam aj deklaraciu...
Kód:
unit Unit1;

interface

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

type
  Thra = class(TForm)
    Noznice: TButton;
    Kamen: TButton;
    Papier: TButton;
    ShowSelect: TLabel;
    vyber: TLabel;
    PC: TLabel;
    VysledokHry: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    AIStav: TLabel;
    HRStav: TLabel;
    MainMenu1: TMainMenu;
    f1: TMenuItem;
    ResetButt: TMenuItem;
    Ukoncithru1: TMenuItem;
    Modhry: TMenuItem;
    Volny: TMenuItem;
    Navitazstva: TMenuItem;
    Nakola: TMenuItem;
    Button1: TButton;
    Label5: TLabel;

    procedure KamenClick(Sender: TObject);
    procedure PapierClick(Sender: TObject);
    procedure NozniceClick(Sender: TObject);
    procedure ZmenitVyber;
    procedure SpolVyber;
    procedure ResetButtClick(Sender: TObject);
    procedure Reset;
    procedure Ukoncithru1Click(Sender: TObject);
    procedure VolnyClick(Sender: TObject);
    procedure NavitazstvaClick(Sender: TObject);
    procedure NakolaClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure SetModHry(TypHryName: string);

  private

  public


  end;

var
  hra: Thra;

    PCvolba,HRvolba,rozhodca:byte;
    AIstavV, HRstavV, MODhryV:byte;
    vysledok,pocet:integer;
    selected,ModHryStav,TypHryName,pomoc:string;


Offline

Skúsený užívateľ
Skúsený užívateľ
Delphi - object or class type required

Registrovaný: 11.01.09
Prihlásený: 28.03.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 09.10.2009 19:15

Dobre, že si nám vypísal aj deklaráciu, pretože je krásne vidieť chybu --> z premennej TypHryName, ktorá je typu string, si urobil TMenuItem. Ak má byť TypHryName položka v menu, tak ju treba pridať na formulár. A ak má byť string, tak jednoducho odstráň .caption .


Offline

Užívateľ
Užívateľ
Delphi - object or class type required

Registrovaný: 07.08.09
Prihlásený: 08.12.09
Príspevky: 17
Témy: 3
Príspevok Napísal autor témyOffline : 09.10.2009 20:14

No ale v tom pripade, ak z nej spravim TMenuItem, nemozem do nej ulozit potrebny nazov pri vybere polozky...tj

Kód:
procedure Thra.NavitazstvaClick(Sender: TObject);
begin
ModhryV:=2;
TypHryName:='Na vitazstva';
SetModHry (TypHryName);
end;

... nekompatibilne typy String a TMenuItem
A v podstate si tym padom uvedomujem ze to co som chcel urobit asi nebude mozne... ja totiz potrebujem do toho napisu preniest stringovu hodnotu. Co nie je mozne...

No kazdopadne dakujem za pomoc, pochopil som preco mi to vlastne nejde.

A mam este jednu otazku:
Je mozne nejak zavolat metodu ktora sa nachadza pod urcitym tlacidlom ? Myslim ze by to casto krat usetrilo cas.


Offline

Skúsený užívateľ
Skúsený užívateľ
Delphi - object or class type required

Registrovaný: 11.01.09
Prihlásený: 28.03.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 09.10.2009 20:52

Moment, keď som si prešiel celý tvoj kód ešte raz, asi mi došlo, čo to malo robiť. Takže sa ešte raz pýtam:

1.) Chceš, aby procedúra Thra.SetModHry (TypHryName: string) pridala k názvu položky TypHryName (ktorý je parameter tejto funkcie) text '(teraz)' ???

2.) Máš iba 3 MenuItemy: NaKola, NaVitazstva, Volny ? A chceš priraďovať text '(teraz)' iba medzi nimi?

Ak áno, tak zabudni na to, čo som písal pred tým, iba pridaj do prvého príspevku toto:
Kód:
  for i:= 0 to (Form1.ComponentCount-1) do
    if (Form1.Components[i] is TMenuItem) then
      if (Form1.Components[i] as TMenuItem).Caption = TypHryName then (Form1.Components[i] as TMenuItem).Caption:= TypHryName + ' (teraz)';
Táto časť kódu vahľadá menu položku s názvom, ktorý je v premennej TypHryName (typu string) a pridá k nemu text '(teraz)'. Snáď to je to, čo si chcel.

TheK.SVK píše:
Je mozne nejak zavolat metodu ktora sa nachadza pod urcitym tlacidlom ?

Ak sa napríklad daná metóda volá Button1Click, tak takto:)
Kód:
Button1Click(nil);


Offline

Užívateľ
Užívateľ
Delphi - object or class type required

Registrovaný: 07.08.09
Prihlásený: 08.12.09
Príspevky: 17
Témy: 3
Príspevok Napísal autor témyOffline : 09.10.2009 22:10

Fico píše:
1.) Chceš, aby procedúra Thra.SetModHry (TypHryName: string) pridala k názvu položky TypHryName (ktorý je parameter tejto funkcie) text '(teraz)' ???

2.) Máš iba 3 MenuItemy: NaKola, NaVitazstva, Volny ? A chceš priraďovať text '(teraz)' iba medzi nimi?
Presne tak, Ano je odpoved na obidve otazky.
Tak som skusil ten tvoj kod, skompilovat skompiluje, ale nefunguje. Neviem este preco, pokusim sa este blizsie analyzovat tvoj kod a celkovo cely ten proces a odhalit tu zradu...

Citácia:
Ak sa napríklad daná metóda volá Button1Click, tak takto:)
Kód:
Button1Click(nil);

Funguje, je to parada

Velke dakujem ti patri :)

//yahooo :lol: Podarilo sa mi pochopit tvoj kod a najst chybu... (predvoleny caption tych tlacidiel sa odlisovat od nazvov pod stringom TypHryName a pre to nenaslo rovnost => nesplnilo podmienku....

Ale comu nerozumiem, preco je tu
Kód:
for i:= 0 to (Form1.ComponentCount-1)

...este odcitavanie -1


Offline

Skúsený užívateľ
Skúsený užívateľ
Delphi - object or class type required

Registrovaný: 11.01.09
Prihlásený: 28.03.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 10.10.2009 8:18

Odpoveď je jednoduchá. Lebo pole Form1.Components[i] začína od nuly a má veľkosť Form1.ComponentCount. Čiže ak máš na formulári 5 komponentov, tak pole vyzerá takto: [0, 1, 2, 3, 4] --> posledný prvok je 5-1 a počet všetkých prvkov je 5.

// To indexovanie poľa s nulou na začiatku sa implicitne používa v jazyku C. Takýto postup v cykloch je tam bežný.


Odpovedať na tému [ Príspevkov: 8 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?)

v Technológia .NET

9

2213

31.08.2017 15:10

focko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Delphi class

v Delphi, Visual Basic

1

783

10.09.2009 16:35

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MicroSDHC class 2 alebo class 4 mám vrátiť ?

v Pamäte

3

664

16.12.2010 20:09

majky358 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. javascript required formular

v JavaScript, VBScript, Ajax

9

497

17.12.2015 10:33

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delphi zapis cisla do editu v delphi

v Delphi, Visual Basic

3

1100

11.05.2008 12:02

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. required polia vo formulári a chybová hláška

v PHP, ASP

8

699

14.10.2009 22:39

davider137 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OBJECT

v HTML, XHTML, XML, CSS

1

630

12.02.2008 11:00

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Java Object (Superclass)

v Assembler, C, C++, Pascal, Java

1

596

27.09.2011 23:42

Forty- Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Cannot convert to object

v JavaScript, VBScript, Ajax

2

475

02.10.2010 18:21

TECHNODROME Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. div object a ul - li

v HTML, XHTML, XML, CSS

10

713

27.04.2007 11:10

vladopt Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Neosadenie z-index pre object v Chrome

v HTML, XHTML, XML, CSS

6

574

23.03.2011 19:39

weroro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Fatal error: Using $this when not in object context

v PHP, ASP

6

464

26.04.2010 16:40

petanorech Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Content-type

v PHP, ASP

5

779

25.03.2007 11:30

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Book Type

v Optické zariadenia

1

1366

21.08.2005 15:34

Carlos Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. For Honor NAT Type

v Počítačové hry

4

1084

26.02.2017 23:04

bony7x Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. value pri type file

v HTML, XHTML, XML, CSS

1

494

25.06.2007 7:03

zero0x Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra