Zitat:
Modul1.TLabel <> Modul2.TLabel. So einfach ist das.
Nach meinem Verständnis übergebe ich doch gerade mit dem var Parameter dieses Modul1. Somit müsste doch in diesem Fall App.TLabel =
Dll.TLabel sein, da es sich doch um die Variable handelt??
Zitat:
Außerdem noch eine andere Sache: Wenn du bereits mit is auf einen bestimmten Typen geprüft hast, ist der as-Cast unnötig. Der Cast Typ(Ausdruck) ist hier günstiger.
Meinst du es in dieser Art?
Delphi-Quellcode:
procedure ShowSingleData(ID: integer;
var SingleData: TPanel);
stdcall;
export;
var i: integer;
begin
if (SingleData <>
nil)
and DBProjects.GetDS(ID, dllIbProjects.DSProject)
then
for i:= 0
to SingleData.ControlCount-1
do
try
if (SingleData.Controls[i]
is TLabel)
then begin // hier bricht in der dll die Verarbeitung ab
if TLabel(SingleData.Controls[i]).Name='
dbfDatField0'
then
TLabel(SingleData.Controls[i]).Caption:= IntToStr(dllIbProjects.DSProject.ID);
if TLabel(SingleData.Controls[i]).Name='
dbfDatField1'
then
TLabel(SingleData.Controls[i]).Caption:= dllIbProjects.DSProject.Caption;
if TLabel(SingleData.Controls[i]).Name='
dbfDatField2'
then
TLabel(SingleData.Controls[i]).Caption:= DateToStr(dllIbProjects.DSProject.DateStart);
if TLabel(SingleData.Controls[i]).Name='
dbfDatField3'
then
TLabel(SingleData.Controls[i]).Caption:= DateToStr(dllIbProjects.DSProject.DateEnd);
end;
except;
end;
end;
Human are Human to make mistakes.