Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Konstantenobjekt ? (https://www.delphipraxis.net/94769-konstantenobjekt.html)

Lotus 26. Jun 2007 18:15


Konstantenobjekt ?
 
nun ich würde gerne noch mal eine frage stellen:

Delphi-Quellcode:
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;
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?

Apollonius 26. Jun 2007 18:17

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.

Lotus 26. Jun 2007 18:41

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

mkinzler 26. Jun 2007 18:43

Re: Globale Variable greift nicht zu?
 
Was steht den in den entsprechenden Zeilen?

Lotus 26. Jun 2007 18:45

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..

mkinzler 26. Jun 2007 18:47

Re: Globale Variable greift nicht zu?
 
Versuch mal:
Delphi-Quellcode:
wort:=e1.Caption;

hoika 26. Jun 2007 18:49

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

Lotus 26. Jun 2007 18:52

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:
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.
und die dfm
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

mkinzler 26. Jun 2007 18:54

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.

Lotus 26. Jun 2007 18:58

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 06:54 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz