Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
5. Jul 2009
Und .MethodAddress macht genau das Selbe wie die anderen Vorschläge ... es durchsucht eine Liste nach den Namen und gibt einen Zeiger auf dessen zugeordnete Funktion zurück.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
5. Jul 2009
Was denkst du eigentlich, was FindComponent macht?
Das geht auch nur die in der Form registrierten Komponenten durch, welche auch in einer Art Array/Liste dort gespeichert sind.
function TComponent.FindComponent(const AName: string): TComponent;
var
I: Integer;
begin
if (AName <> '') and (FComponents <> nil) then
for I := 0 to FComponents.Count - 1 do
begin
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
5. Jul 2009
siehe oben
type TMyFunc = function(b: Byte);
TMyArray = array of record
name: String;
func: TMyFunc;
end;
var a: TMyArray;
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
5. Jul 2009
Die Zahl wird von Delphi direkt verrechnet, da sie ja selber den Index/Offset darstellt.
Delphi macht also aus array z.B. (@array + 129*SizeOf(Element))^, aber mit einem String ist sowas nicht möglich.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
5. Jul 2009
was willst du auch die Parameter da schon angeben, wo du siese doch erst später angeben wolltest?
außerdem wird bei Angabe von Parametern die Funktion ausgeführt und nicht ein Zeiger auf diese geliefert.
type TMyFunc = function(b: Byte);
TMyArray = array of record
name: String;
func: TMyFunc;
end;
var a: TMyArray;
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
5. Jul 2009
Array of record
Name: String;
Proc: Prozedure(a: irgendwas);
end;
da kannst du alles reinpacken und in einen Schleifchen die Namen prüfen
oder TIntegerDictionary TStringDictionary oder auch TAssocArray :mrgreen:
('ner einfach "unveränderliche" Version befindet sich in himXML_Tools.pas > himXML)