M
Hallo Leute,
ich habe ein Problem mit der Darstellung von Datenbankabfragen. Bei den BDE-Komponenten war es ja so, dass bei längeren Abfragen automatisch eine Sanduhr angezeigt worden ist. Da das scheinbar bei den DBExpress-Komponenten nicht mehr automatisch möglich ist, habe ich versucht es manuell nach zu bauen. Dazu habe ich eine neue Thread-Klasse erstellt, in der ich die TSQLQuerys und TSimpleDataSets ausführe und vorher den Mauszeiger ändere:
void __fastcall TDBThread::Execute(){
Synchronize(&curserSQLWait);
try {
switch (_state) {
case QueryActive:{
_query->Open();
break;
}
case QueryExecute:{
_query->ExecSQL();
break;
}
case SimpleDataSetActive:{
_simpleDataSet->Open();
break;
}
default:
;
}
}
__finally {
Synchronize(&cursorDefault);
}
}
So weit so gut. Das Problem ist, dass der Mauszeiger zwar ordnungsgemäß gesetzt wird, aber sobald
_query->Open()
bzw. die anderen Fälle ausgeführt werden der Mauszeiger wieder auf crDefault gesetzt wird. Sobald ich dann die Maus bewege ändert sich der Mauszeiger wieder zurück obwohl der Thread noch nicht beendet ist, was ja auch richtig ist, da
Screen->Cursor
den Wert
crDefault
hat.
Meine Frage ist nun wie kann ich verhindern, dass TSQLQuery bzw. TSimpleDataSet den Mauszeiger ändern.
Kann man allgemein verhindern, dass der Mauszeiger geändert wird??
Hoffe ihr versteht mein Problem und könnt mir helfen.