Registriert seit: 12. Sep 2005
22 Beiträge
|
Re: DLL Einbindung - Fehler beim Beenden
2. Aug 2006, 11:28
Delphi-Quellcode:
library Aenderungsinfo;
uses
ShareMem,
SysUtils,
Dialogs,
StdCtrls,
Forms,
Classes,
Grids,
kbmMemTable,
uSOAPClient,
QGraphics,
Controls;
{$R *.res}
procedure benutzerdetails_anzeigen(provider,eindeutiges_feld,aktueller_eintrag,aktueller_eintrag_detail:string);stdcall; export;
var
Form1:TForm;
StrGr_Aenderung:TStringgrid;
SoapManager:TSoapManager;
SMT_Table:TSoapMemTable;
begin
Form1:=TForm.Create(nil);
Form1.Caption:='Datensatzdetails: '+aktueller_eintrag+' - '+aktueller_eintrag_detail;
Form1.Position:=poScreenCenter;
Form1.BorderStyle:=bsdialog;
SoapManager:=TSoapManager.Create(nil);
SoapManager.Active:=True;
SMT_Table:=TSoapMemTable.Create(nil);
SMT_Table.SOAPManager:=SoapManager;
SMT_Table.ProviderName:=provider;
SMT_Table.Active:=True;
SMT_Table.Filtered:=True;
SMT_Table.Filter:=eindeutiges_feld+'='''+aktueller_eintrag+'''';
SMT_Table.Refresh;
Form1.Height:=80;
Form1.Width:=410;
StrGr_Aenderung:=TStringgrid.Create(nil);
with StrGr_Aenderung do
begin
Parent:=Form1;
DefaultRowHeight:=20;
Align:=alClient;
if Form1.Height - Form1.ClientHeight > 28 then Form1.ClientHeight:=40 else Form1.ClientHeight:=45;//Form1.ClientHeight - (ClientHeight - Height);
Form1.Width:=410;
ColCount:=4;
ColWidths[1]:=110;
ColWidths[2]:=100;
ColWidths[3]:=110;
ColWidths[0]:=Width - ColWidths[1] - ColWidths[2] - ColWidths[3] - 7;
RowCount:=2;
FixedCols:=0;
Cells[0,0]:=' Anlage von:';
Cells[1,0]:=' Anlagedatum:';
Cells[2,0]:=' Änderung von:';
Cells[3,0]:=' Änderungsdatum:';
Cells[0,1]:=SMT_Table.FieldbyName('benutzer_neu').asstring;
Cells[1,1]:=SMT_Table.FieldbyName('datum_neu').asstring;
Cells[2,1]:=SMT_Table.FieldbyName('benutzer_aend').asstring;
Cells[3,1]:=SMT_Table.FieldbyName('datum_aend').asstring;
StrGr_Aenderung.Options:= [goFixedHorzLine, goFixedVertLine, goHorzLine, goVertLine];
SMT_Table.Destroy;
SoapManager.Destroy;
end;
try
Form1.Update;
Form1.ShowModal;
finally
Form1.Destroy;
end;
end;
exports
benutzerdetails_anzeigen;
Der Datenbankzugriff erfolgt über die SoapMemTable bzw SoapManager.
Im Hauptprogramm befindet sich ein ganz gewöhnlicher Prozedurenaufruf. Der Implementationteil steht bereits oben. Sharemem ist erster Eintrag in der uses Liste.
|
|
Zitat
|