![]() |
Struktur einer Class
Hallo,
ich schreibe an einer eigenen classe, jedoch bin ich atm etwas rat los... also meine class:
Delphi-Quellcode:
wie ihr seht, werden in der kallse neue variablen typen deklariert ( Game, GameList uws... ) wie kann ich die in der HauptForm nutzen, bzw, wo müssen wie stehen, damit es functioniert. auserdem wie kann ich die functionen benutzen?
unit MyClass;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdHTTP; const Host = ''; Port = ''; type GameList = string; GameItem = string; Game = array of string; Games = array of GameItem; THack = class(TObject) HTTP: TIdHTTP; function GetGameList(): GameList; function AnalysGameList(List:GameList): Games; function GetGameNames(List:GameList): string; private { Private-Deklarationen } public { Public-Deklarationen } end; implementation function THack.GetGameList(): GameList; var list: GameList; begin //laden der GameList vom Server try list := HTTP.Get(Host + '/server/login.php?action=list'); except list := 'Error: IdHTTP - Fehler'; end; Result := list; end; function THack.AnalysGameList(List:GameList): Games; var item: GameItem; items: Games; I: integer; begin //liest die Spiellieste aus und gibt alle spile in einer array zurück I := 0; while Pos(#13#10,List) <> 0 do begin item := copy(List,0,Pos(#13#10,List)); if not ( item = 'BOF' ) OR not ( item = 'EOF' ) then begin items[I] := item; List := copy(List,Pos(#13#10,List),Length(List)); I := I + 1; end; end; Result := items; end; function THack.GetGameNames(List: GameList): string; var I: integer; item: GameItem; items: string; begin //liest die Spiellieste aus und gibt alle spile in einem string zurück I := 0; while Pos(#13#10,List) <> 0 do begin item := copy(List,0,Pos(#13#10,List)); if not ( item = 'BOF' ) OR not ( item = 'EOF' ) then begin items := items + item + #13#10; List := copy(List,Pos(#13#10,List),Length(List)); I := I + 1; end; end; Result := items; end; end. Desmulator [edit=Phoenix]Sorry, aber das überflüssige c im Titel in Struktur hat echt wehgetan. Mfg, Phoenix[/edit] |
Re: Strucktur einer Class
Die Implementierung weicht vom Interface ab, entweder du nennst die klasse überall TBlubb oder THack.
Um die Klasse verwenden zu können musst du eine Instanz erzeugen; entweder global/lokal in der Unit oder als Member deiner Form-Klasse. |
Re: Struktur einer Class
Zitat:
Zitat:
|
Re: Struktur einer Class
Anstatt dich selber mit Stringverarbeitung zu quälen, würde ich dir empfehlen, die "Gamelists" als INI-Dateien bereitzustellen und mit Hilfe der Klasse TIniFile auszuwerten.
Profis würden eine XML-Datei anstelle der INI-Datei verwenden; aber das ist nichts für Beginner. |
Re: Struktur einer Class
Einfach in der Deklaration der Form
Delphi-Quellcode:
einfügen
Hack: THack;
und im onCreate
Delphi-Quellcode:
aufrufen
Hack := THack.Create;
|
Re: Struktur einer Class
leider kommt die datei von einem server, der nicht mir gehört, ich schreibe nur ein tool, daher kann ich die formatierung der serverausgabe nicht in die einer ini ändern...
EDIT: O.K. jetzt geht alles, aber warum muss ich das bei denn anderen unit's, welche ja auch classen enthalten nicht machen? und wie kann ich eine datei über idHTTP anfordern, aber kein formular habe? |
Re: Struktur einer Class
Zitat:
Wie sehen denn die Daten aus (Beispiel)? Ich wette, die Klasse TStringList kann deine Klasse THack fast vollständig ersetzen. |
Re: Struktur einer Class
@shmai:
BOF L:80.136.122.156|Desmulator|17:24:25|0.30|6|Tourna ment|7666|Tournament|1|1020|24978488 EOF |
Re: Struktur einer Class
Geht problemlos mit einer Stringliste
Delphi-Quellcode:
var
sl: TStrings; ... sl := TStringList.Create; sl.Delimiter = '|'; sl.DelimitedString = s; Ip := sl.Strings[0] ; ... |
Re: Struktur einer Class
ich will aber nicht nur diese eine funktion da drin haben, sondern da kommt noch viel mehr, auserdem will ich lernen und mich nicht an sämtliche units stützen, vondenen ich nachher eh nicht mehr weis welche wofür war...
|
Re: Struktur einer Class
Zitat:
Ich muss nicht jedem Byte hinterherrennen und es unter meine Kontrolle zwingen. Es reicht wenn ich weiss, welche Klassen ich einsetzen kann um ein bestimmtes Problem mit möglichst wenig Aufwand zu lösen. Man sollte sich wirklich nicht zu schade sein, einfach vorhandenen Code zu verwenden. Durch das Verwenden von Code stehe man doch schon "einige Meter über dem Boden" und fängt dort an, wo anderen schon die Luft ausgeht. Ich kenne Programmierer, die waren der vollen Überzeugung, dass nur Assembler das einzig Ware sei. Es hat zwar Jahre gedauert, aber die Leute sind heute geheilt. Andere glauben, diese Klicke-Di-Klick Programmierung (Komponenten auf's Formular ziehen, und Eventhandler kurz ausprogrammieren) sei minderwertig. Geanu das Gegenteil ist der Fall. Durch das schnelle Zusammenbauen von Formularen/Datenmodule hat man viel mehr Zeit für die schwierigen Dinge. |
Re: Struktur einer Class
ein guter Programmierer hat aber auch seine eigenen Klassen. Und ich finde es in keinster Weise verkehrt wenn man weiß was das Programm macht und nicht immer nur fertiges verwendet. Zudem ist der Lerneffekt bedeutend höher wenn man selbst etwas programmiert als wenn man etwas fertiges verwendet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 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 by Thomas Breitkreuz