Hallo Leute !
Ich hab da mal eine Frage:
Ich proge gerade einen Datenbankclient und verwende folgende
Unit um einen Neuen Threat zu starten.
Delphi-Quellcode:
unit Threats;
interface
uses
SyncObjs,Classes
{$IFDEF MSWINDOWS} , Windows
{$ENDIF},Datamodule_Kundenstammdaten_unit,Kundenstammdaten_unit;
type
AlleKundenladen =
class(TThread)
private
procedure SetName;
protected
procedure Execute;
override;
procedure Laden;
end;
var KritischerAbschied:TCriticalSection;
implementation
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure Test.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{$IFDEF MSWINDOWS}
type
TThreadNameInfo =
record
FType: LongWord;
// must be 0x1000
FName: PChar;
// pointer to name (in user address space)
FThreadID: LongWord;
// thread ID (-1 indicates caller thread)
FFlags: LongWord;
// reserved for future use, must be zero
end;
{$ENDIF}
{ Test }
procedure AlleKundenladen.SetName;
{$IFDEF MSWINDOWS}
var
ThreadNameInfo: TThreadNameInfo;
{$ENDIF}
begin
{$IFDEF MSWINDOWS}
ThreadNameInfo.FType := $1000;
ThreadNameInfo.FName := '
meinThreat';
ThreadNameInfo.FThreadID := $FFFFFFFF;
ThreadNameInfo.FFlags := 0;
try
RaiseException( $406D1388, 0, sizeof(ThreadNameInfo)
div sizeof(LongWord), @ThreadNameInfo );
except
end;
{$ENDIF}
end;
procedure AlleKundenladen.Execute;
begin
KritischerAbschied.Enter;
SetName;
//kundenstammdaten_form.Caption:='Kundenstammdaten - Datentransfer.....' ;
Laden;
//kundenstammdaten_form.Caption:='Kundenstammdaten';
KritischerAbschied.Leave;
end;
procedure AlleKundenladen.Laden;
begin
DataModule_Kundenstammdaten.Query_Kunden.SQL.Text:='
select * from kunden';
//----> An dieser Stelle will ich einen String übergeben z.B Vorname und Nachname als Suchoption für SQL
DataModule_Kundenstammdaten.Query_Kunden.Active:=true;
end;
end.
Den Threat rufe ich so auf
Delphi-Quellcode:
KritischerAbschied:=TCriticalSection.Create;
AlleKundenladen.Create(false);
Wie kann ich beim erstellen des Threats einen String übergeben