Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Type global definieren (https://www.delphipraxis.net/10494-type-global-definieren.html)

Pseudemys Nelsoni 19. Okt 2003 20:39


Type global definieren
 
hoi,

ich bekomme es irgendwie nur hin lokale typen zu schreiben...wo kommen sie global hin?
unter dem bereits bestehenden type ganz am anfang? da bekomme ich nur fehler wie "end fehlt" etc

himitsu 19. Okt 2003 20:41

Re: Type global definieren
 
wie definierst du diese denn?

Pseudemys Nelsoni 19. Okt 2003 20:42

Re: Type global definieren
 
Delphi-Quellcode:
Type TZahlen = '0'..'9';

CalganX 19. Okt 2003 20:45

Re: Type global definieren
 
Hi,
das ist doch global. ;)
Außer du definierst den Typen innerhalb einer Funktion. ;)

Chris

Pseudemys Nelsoni 19. Okt 2003 20:48

Re: Type global definieren
 
wenn ich das was ich eben schrieb hier rein mache:

Delphi-Quellcode:
type
  TForm2 = class(TForm)
  Type TZahlen = '0'..'9';
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Panel1: TPanel;
    Button1: TButton;
    Panel2: TPanel;
    Button2: TButton;
    IdHTTP1: TIdHTTP;
    IdAntiFreeze1: TIdAntiFreeze;
    StatusBar1: TStatusBar;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
oder so:

Delphi-Quellcode:
type
  TForm2 = class(TForm)
  TZahlen = '0'..'9';
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Panel1: TPanel;
    Button1: TButton;
    Panel2: TPanel;
    Button2: TButton;
    IdHTTP1: TIdHTTP;
    IdAntiFreeze1: TIdAntiFreeze;
    StatusBar1: TStatusBar;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

dann funktioniert es nichtmehr

himitsu 19. Okt 2003 20:50

Re: Type global definieren
 
Hast es vieleicht an der Falschen Stelle eingefügt.

Hier 2 Möglichkeiten:
Delphi-Quellcode:
Unit Unit1;

Interface
  Uses ...

  Type TForm1 = Class(TForm)
      ...
      Procedure Button1Click(Sender: TObject);
    Private
      ...
    Public
      ...
    End;
  TZahlen1 = '0'..'9';

  Var Form1: TForm1;

Implementation
  {$R *.dfm}

  Type TZahlen2 = '0'..'9';

  Procedure TForm1.Button1Click(Sender: TObject);
    Begin
      ...
    End;

End.

Pseudemys Nelsoni 19. Okt 2003 20:51

Re: Type global definieren
 
ahh, danke, dachte die gehören ganz oben mit hin weil da schonmal type steht :D

himitsu 19. Okt 2003 20:54

Re: Type global definieren
 
Man kann keinen Type innerhalb eines anderen definieren.

Pseudemys Nelsoni 19. Okt 2003 20:57

Re: Type global definieren
 
ok ^^.

btw:

Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
Type TZahlen = '0'..'9';
     Zahl = Set Of TZahlen;
var
  sl1: TStringList;
  s: string;
  laufVar: integer;
  Zahlen: Zahl;
begin
  if (Edit1.Text <> '') AND (length(Edit1.Text) > 2) then
  begin
    if (Edit2.Text <> '') AND (length(Edit2.Text) > 2) AND not (edit2.Text[1] in Zahlen) then
    begin
      if length(Edit3.Text) > 7 then
      begin
        Button1.Enabled := false;
        Button2.Enabled := false;
        for laufVar := 1 to 4 do
        TEdit(FindComponent('Edit' + InttoStr(LaufVar))).Enabled := false;
        StatusBar1.Panels[0].Text := 'Trying to register nick...';
        sl1 := TStringList.Create;
        sl1.Add('name=' + Edit1.Text);
        sl1.Add('nick=' + Edit2.Text);
        sl1.Add('pass=' + Edit3.Text);
        sl1.Add('cpass=' + Edit3.Text);
        sl1.Add('email=' + Edit4.Text);
        sl1.Add('cemail=' + Edit4.Text);
        s := idhttp1.Post('http://www.cncreloaded.net/index.php?action=signup', sl1);
        sl1.Free;
        if Pos('The nickname you have chosen is already in use. Please select another.', s) > 0 then
        begin
          ShowMessage('The nickname you have chosen is already in use. Please select another.');
          Edit2.Font.Color := clRed;
        end;
        Button1.Enabled := true;
        Button2.Enabled := true;
        for laufVar := 1 to 4 do
        TEdit(FindComponent('Edit' + InttoStr(LaufVar))).Enabled := true;
        StatusBar1.Panels[0].Text := '';
      end
      else
      begin
        ShowMessage('Your password must be exactly 8 characters in length.');
        Edit3.Font.Color := clRed;
      end;
    end
    else
    ShowMessage('You must specify a nickname, and it must be greater than or equal to 3 characters long.');
  end
  else
  ShowMessage('You must specify a name, and it must be greater than or equal to 3 characters long.');
end;
das funktioniert einwandfrei
find ich aber doof das ich ein neuen typ definieren musste, wenn ich "Zahl = Set Of Byte" nehme funktioniert es nichtmehr(lässt sich aber kompilieren), dann trifft die if anweisung nichtmehr zu...wieso das? byte ist doch auch ne zahl 0..255 oder nicht?

Pseudemys Nelsoni 19. Okt 2003 21:07

Re: Type global definieren
 
ich seh gerade das nichtmal das geht, super ...

Delphi-Quellcode:
if (Edit2.Text <> '') AND (length(Edit2.Text) > 2) AND not (edit2.Text[1] in Zahlen)
^^^^^^^das trifft nicht zu obwohl edit2 100% ne 1 am anfang ha -_-


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.
Seite 1 von 3  1 23      

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