Einzelnen Beitrag anzeigen

Bääääär

Registriert seit: 12. Apr 2007
Ort: Thüringen
28 Beiträge
 
Delphi 2005 Personal
 
#343

Re: Andorra 2D [Ver. 0.20 ALPHA 2, 05.10.07]

  Alt 2. Nov 2007, 17:53
Tach igel!

Ich habe ein bisschen herumgefriemelt und bin dabei auch auf die TAdLog Klasse gestoßen. Ich finde den Log noch etwas unübersichtlich. Was hältst du davon:
Delphi-Quellcode:
procedure TAdLog.AddMessage(AMessage: TAdLogMessage);
const
  cTabulator = 20;
var
  Space:integer;
  LMessage:string;
  i:integer;
begin
  LMessage := '[' + AMessage.Typ + ']';

  Space := cTabulator - length(AMessage.Typ) - 2;
  if Space < 1 then Space := 1;
  for i := 0 to Space do
    LMessage := LMessage + ' ';


  LMessage := LMessage + AMessage.Sender + ':';

  Space := cTabulator - length(AMessage.Sender) - 1;
  if Space < 1 then Space := 1;
  for i := 0 to Space do
    LMessage := LMessage + ' ';


  LMessage := LMessage + AMessage.Text;

  self.Items.Add(LMessage);
  if FileName <> 'then
  begin
    SaveToFile(FileName);
  end;
end;
Ist nur so eine Idee von mir. Ich hab bei mir eine Unterklasse angelegt und mir funktionen geschrieben, die den Error typ nicht als Parameter brauchen (z.B. procedure LogError(const aLog: String; const Sender:String); => würde den Typ "Error" haben). Dabei ist mir etwas aufgefallen, was ich blöd finde:

1. Die Items sind nicht abrufbar, da sie in private deklariert sind. Wenn ich die Funktion oben in meine Unterklasse einbauen will, muss ich da aber drauf zugreifen können.

2. Das gleiche gilt für die property Log im AdDraw. Wenn ich nun meine Unterklasse von TAdLog für die Engine nutzen will, muss ich das ja ändern können. Vielleicht spricht etwas anderes dafür, das ganze Read-Only zu machen, das ganze war nur so'ne Idee von mir.

Wenn du oben geposteten Code in die AdDraws.pas übernehmen solltest würde ich mich natürlich freuen, ich habe den nämlich jetzt einfach in meine AdDraws.pas eingebaut. So brauche ich bei neuen Andorra Versionen nicht wieder diesen Code ändern... Wenn nicht, dann gib mir die Items frei, damit ich das in meine Unterklasse bauen kann! ^^

Bääääär
  Mit Zitat antworten Zitat