Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Function Pointer in Array?
19. Okt 2010, 12:52
passt nicht ganz für Deine Anfrage, ich habe eine meine ich ähnliches Problem folgendermassen gelöst, nur Auzüge aus dem Code....
Delphi-Quellcode:
Type
TKapaBlockSetter= procedure(const Value: Double) of Object;
end;
C_QueryKinds : Array [0..11] of String=('Retrostd. Vergangenheit','Echtaufträge','Rückstand','Planaufträge','Planaufträge verkauft'
,'ET/Umbau'
,'IST-Zeiten'
,'Angebot lt. Meisterliste'
,'Angebot durchschnittlich'
,'GK-Stunden'
,'Echtaufträge verg.'
,'GK-Stunden verg');
C_Setters : Array [0..11] of TMethod=((code:@TKapaAuswertung.SetRetroStdVerg;data:nil),
(code:@TKapaAuswertung.SetEchtAuftr;data:nil),
(code:@TKapaAuswertung.SetRueckVerteilt;data:nil),
(code:@TKapaAuswertung.SetPlanAuftr;data:nil),
(code:@TKapaAuswertung.SetPlanAuftrVerk;data:nil),
(code:@TKapaAuswertung.SetETUmbau;data:nil), (code:@TKapaAuswertung.SetISTAnwesenheit;data:nil), (code:@TKapaAuswertung.SetAngebLtMeister;data:nil),
(code:@TKapaAuswertung.SetAngebAVG;data:nil),
(code:@TKapaAuswertung.SetGK_Stunden;data:nil),
(code:@TKapaAuswertung.SetEchtAuftrverg;data:nil),
(code:@TKapaAuswertung.SetGK_StundenVerg;data:nil)
);
//im Code dann:
var
setter:TKapaBlockSetter;
begin
...
...
For i := Low(C_QueryKinds) to High(C_QueryKinds) do
begin
GetHelpQuery(Ads,'[P_GetKapaNeu]' + QuotedStr( C_QueryKinds[i])..............
TMethod(Setter).code := C_Setters[i].code;
TMethod(Setter).data := FKapaAuswertung;
Setter( Ads.Fields[1].AsFloat);
end;
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
|
|
Zitat
|