Einzelnen Beitrag anzeigen

Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#439

Re: Andorra 2D [Ver. 0.30 BETA, 22.11.07]

  Alt 2. Jan 2008, 16:56
Ich hätte einen Vorschlag: Bei der Verwendung der GUI ist es hilfreich, wenn man Komponenten über ihren Namen ansprechen kann. Dazu würde ich folgende Ergänzung in der AdGUI vorschlagen:

Delphi-Quellcode:
  TAdComponents = class(TAdList)
    private
      procedure SetItem(Index:integer;AValue:TAdComponent);
      function GetItem(Index:integer):TAdComponent;
      function GetItemNamed(Name: String): TAdComponent; // Neu
      procedure SetItemNamed(Name: String; const Value: TAdComponent); // Neu
      function IndexOf(Name: String): Integer; // Neu
    public
      property Items[index:integer]:TAdComponent read GetItem write SetItem; default;
      property ItemNamed[Name: String]: TAdComponent read GetItemNamed write SetItemNamed;
    end;
Und die Definition:

Delphi-Quellcode:
function TAdComponents.GetItemNamed(Name: String): TAdComponent;
var i: Integer;
begin
 Result := Nil;
 for I := 0 to Count - 1 do
  if Lowercase(Items[i].Name) = Lowercase(Name) then begin
   Result := Items[i];
   Break;
  end;
end;

function TAdComponents.IndexOf(Name: String): Integer;
var i: Integer;
begin
 Result := -1;
 for I := 0 to Count - 1 do
  if Lowercase(Items[i].Name) = Lowercase(Name) then begin
   Result := i;
   Break;
  end;
end;

procedure TAdComponents.SetItemNamed(Name: String; const Value: TAdComponent);
var i: Integer;
begin
 i := IndexOf(Name);
 if i <> -1 then
  Items[i] := Value;
end;
Die Idee ist von TJvSimpleXML übernommen und klappt bis jetzt wunderbar

PS: Danke fürs Lob, die anderen Tutorials werde ich mir bei Gelegenheit mal vornehmen
Thomas
  Mit Zitat antworten Zitat