Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Struktur einer Class (https://www.delphipraxis.net/97690-struktur-einer-class.html)

Desmulator 14. Aug 2007 15:50


Struktur einer Class
 
Hallo,
ich schreibe an einer eigenen classe, jedoch bin ich atm etwas rat los...

also meine class:
Delphi-Quellcode:
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.
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?

Desmulator

[edit=Phoenix]Sorry, aber das überflüssige c im Titel in Struktur hat echt wehgetan. Mfg, Phoenix[/edit]

mkinzler 14. Aug 2007 15:59

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.

Desmulator 14. Aug 2007 16:08

Re: Struktur einer Class
 
Zitat:

Die Implementierung weicht vom Interface ab, entweder du nennst die klasse überall TBlubb oder THack.
Oh, das war ncoh ein überrest eines testes... Ich habs editiert...

Zitat:

Um die Klasse verwenden zu können musst du eine Instanz erzeugen; entweder global/lokal in der Unit oder als Member deiner Form-Klasse.
Leider bin ich noch ein ziemlicher noob, in sachen classen schreiben, kannst du mir das anhand eines beispiels zeigen? kann auch nur ein link sein...

shmia 14. Aug 2007 16:13

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.

mkinzler 14. Aug 2007 16:14

Re: Struktur einer Class
 
Einfach in der Deklaration der Form
Delphi-Quellcode:
 Hack: THack;
einfügen

und im onCreate
Delphi-Quellcode:
   Hack := THack.Create;
aufrufen

Desmulator 14. Aug 2007 16:16

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?

shmia 14. Aug 2007 16:22

Re: Struktur einer Class
 
Zitat:

Zitat von Desmulator
leider kommt die datei von einem server, der nicht mir gehört, ...

Na gut, dann verwende die Klasse TStringList. Damit bleibt dir das Zerlegen der Daten in einzelne Zeilen erspart.
Wie sehen denn die Daten aus (Beispiel)?
Ich wette, die Klasse TStringList kann deine Klasse THack fast vollständig ersetzen.

Desmulator 14. Aug 2007 16:25

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

mkinzler 14. Aug 2007 16:28

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

Desmulator 14. Aug 2007 16:31

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 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