![]() |
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 |
Re: Type global definieren
wie definierst du diese denn?
|
Re: Type global definieren
Delphi-Quellcode:
Type TZahlen = '0'..'9';
|
Re: Type global definieren
Hi,
das ist doch global. ;) Außer du definierst den Typen innerhalb einer Funktion. ;) Chris |
Re: Type global definieren
wenn ich das was ich eben schrieb hier rein mache:
Delphi-Quellcode:
oder so:
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;
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 |
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. |
Re: Type global definieren
ahh, danke, dachte die gehören ganz oben mit hin weil da schonmal type steht :D
|
Re: Type global definieren
Man kann keinen Type innerhalb eines anderen definieren.
|
Re: Type global definieren
ok ^^.
btw:
Delphi-Quellcode:
das funktioniert einwandfrei
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; 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? |
Re: Type global definieren
ich seh gerade das nichtmal das geht, super ...
Delphi-Quellcode:
^^^^^^^das trifft nicht zu obwohl edit2 100% ne 1 am anfang ha -_-
if (Edit2.Text <> '') AND (length(Edit2.Text) > 2) AND not (edit2.Text[1] in Zahlen)
|
Re: Type global definieren
Schreib einfach statt "(edit2.Text[1] in Zahlen)" das "(edit2.Text[1] in ['0'..'9'])"
|
Re: Type global definieren
jo, danke=)
gibts nen grund dafür das meins nicht ging? |
Re: Type global definieren
Ich glaub da spielt uns mal wieder die Codeoptimierung des Compilers einen Streich.
Denn das geht
Delphi-Quellcode:
das auch
procedure TForm1.Button1Click(Sender: TObject);
Type TZahlen = '0'..'9'; Zahl = Set Of TZahlen; var Zahlen: Zahl; S: String; begin S := '4561456'; if S[1] in Zahlen then Beep; {*} Caption := S; {*} end;
Delphi-Quellcode:
aber das nicht
procedure TForm1.Button1Click(Sender: TObject);
Type TZahlen = '0'..'9'; Zahl = Set Of TZahlen; var Zahlen: Zahl; S: String; begin S := '4561456'; if S[2] in Zahlen then Beep; {*} end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Type TZahlen = '0'..'9'; Zahl = Set Of TZahlen; var Zahlen: Zahl; S: String; begin S := '4561456'; if S[1] in Zahlen then Beep; {*} end; |
Re: Type global definieren
jo das ist ja das komische lol
|
Re: Type global definieren
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Type TZahlen = '0'..'9'; // was soll das ? Zahl = Set Of TZahlen; // besser einfach SET OF byte/char var Zahlen: Zahl; S: String; begin Zahlen := ['0'..'9']; // <------- Menge wurde nicht initialisiert S := '4561456'; // was soll das S ? hat mit Typ nichts zu tun if '2' in Zahlen then showmessage ('gefunden') else showmessage ('nicht gefunden'); end; end. |
Re: Type global definieren
Delphi-Quellcode:
Type TZahlen = '0'..'9'; // was soll das ?
Zahl = Set Of TZahlen; // besser einfach SET OF byte/char ich hätte auch byte/char genommen, aber es geht nicht, teste selbst |
Re: Type global definieren
Zitat:
|
Re: Type global definieren
kein problem?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Type TZahlen = Set Of byte; var Zahlen: TZahlen; begin if 9 in Zahlen then ShowMessage('ja') else ShowMessage('nö'); end; wieso kommt dann bei 9 "ja" und bei 8 "nö" ? |
Re: Type global definieren
Zitat:
|
Re: Type global definieren
ich sehs nicht, hilf mir mal nach pls
|
Re: Type global definieren
Meinst du da wäre überhaupt noch was zu machen ? :mrgreen: Letzter Beitrag auf erster Seite. 8)
|
Re: Type global definieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:56 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