![]() |
Konstantenobjekt ?
nun ich würde gerne noch mal eine frage stellen:
Delphi-Quellcode:
er sagt mir, das das mit dem insert so nicht klappt, wegen diesem konstantenobjetk, wahrscheinlich wort2[i].. wisst ihr vllt wie ich das umgehn kann? bzw sagen kann welchen buchstaben er dann einfügen soll?
procedure TForm1.Button2Click(Sender: TObject);
var wort2,ka:string; i:integer; begin inc(merker); wort2:=AnsiLowerCase(e2.Text); if wort=wort2 then loesung.Caption:='Gewonnen!!!' else if (wort2 < wort) then begin for i:=1 to length(wort2) do begin if (wort2[i]=wort[i]) then insert(ka,wort2[i],1) else showmessage('nee'); end; end end; |
Re: Globale Variable greift nicht zu?
Du hast in beiden Prozeduren noch eine lokale Variable deklariert, auf die im Zweifelsfall zugegriffen wird. Schmeiß diese Deklarationen raus! Eine globale Variable wird nur einmal deklariert.
|
Re: Globale Variable greift nicht zu?
dann kommt ja folgender fehler
Delphi-Quellcode:
[Fehler] Unit1.pas(47): Inkompatible Typen: 'TLabel' und 'TCaption'
[Fehler] Unit1.pas(58): Inkompatible Typen: 'TLabel' und 'String' [Fehler] Unit1.pas(68): Inkompatible Typen: 'String' und 'TLabel' [Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
Re: Globale Variable greift nicht zu?
Was steht den in den entsprechenden Zeilen?
|
Re: Globale Variable greift nicht zu?
für den ersten fehler steht
"wort:=e1.Text;" für den zweiten "wort:='';" <-- das steht in der Formcreate und dritter fehler "showmessage(wort);" halt alles mit der variable wort.. |
Re: Globale Variable greift nicht zu?
Versuch mal:
Delphi-Quellcode:
wort:=e1.Caption;
|
Re: Globale Variable greift nicht zu?
Hallo,
häng mal pas und dfm als Anhang an, du machst irgendwas anderes verkehrt. Asserdem wäre es sinnvoll, die Komponentennamen aussagekräftig zu benennen z.B. Edit_Name, Label_bla (naja ;) ) Heiko |
Re: Globale Variable greift nicht zu?
nein, e1 ist ein Edit fehlt, da gibts keine captions.. daran liegts leider nicht..
Hier vllt noch mal den gesammten Code
Delphi-Quellcode:
und die dfm
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) e1: TEdit; e2: TEdit; Label1: TLabel; Label2: TLabel; Button1: TButton; Button2: TButton; Label3: TLabel; anzahl: TLabel; wort: TLabel; Button3: TButton; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; wort:string; merker:integer; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); begin close; end; procedure TForm1.Button1Click(Sender: TObject); begin wort:=e1.Text; Button1.Enabled:=false; Button2.Enabled:=true; e1.Text:='########'; e1.Enabled:=false; e2.Enabled:=true; end; procedure TForm1.FormCreate(Sender: TObject); begin wort:=''; merker:=0; end; procedure TForm1.Button2Click(Sender: TObject); var wort2:string; begin inc(merker); showmessage(inttostr(merker)); wort2:=e2.Text; showmessage(wort); showmessage(wort2); end; end.
Delphi-Quellcode:
object Form1: TForm1
Left = 188 Top = 21 Width = 786 Height = 541 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 32 Top = 32 Width = 38 Height = 13 Caption = 'Player 1' end object Label2: TLabel Left = 32 Top = 64 Width = 38 Height = 13 Caption = 'Player 2' end object Label3: TLabel Left = 16 Top = 112 Width = 35 Height = 13 Caption = 'Anzahl:' end object anzahl: TLabel Left = 72 Top = 112 Width = 3 Height = 13 end object wort: TLabel Left = 360 Top = 64 Width = 3 Height = 13 end object e1: TEdit Left = 96 Top = 32 Width = 121 Height = 21 TabOrder = 0 end object e2: TEdit Left = 96 Top = 64 Width = 121 Height = 21 Enabled = False TabOrder = 1 end object Button1: TButton Left = 232 Top = 32 Width = 89 Height = 25 Caption = 'Wort speichern' TabOrder = 2 OnClick = Button1Click end object Button2: TButton Left = 232 Top = 64 Width = 89 Height = 25 Caption = 'Wort erraten' Enabled = False TabOrder = 3 OnClick = Button2Click end object Button3: TButton Left = 528 Top = 304 Width = 75 Height = 25 Caption = 'Beenden' TabOrder = 4 OnClick = Button3Click end end |
Re: Globale Variable greift nicht zu?
Du hast sowohl ne Komponente wie ein Variable mit der Bezeichnung Wort. er nimmt aber die Komponente anstatt der lokalen Variable.
|
Re: Globale Variable greift nicht zu?
omG ja.. das hatte ich völlig vergessen, das ist vielleicht eine verflixte sache! tut mir leid das ich euch wegen so einem problem belästigen musste >.<
jetzt klappts natürlich auch.. vielen dank! ps.: allerdings doof das delphi dort nicht mal einen besseren hinweis hätte geben können ~.~ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz