In der Zeile
Code: Alles auswählen
if MessageDlg('Diese Akte wirklich löschen?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
hängt sich der Rechner (Mint 19.1 64Bit) auf. Auf dem Desktop geht absolut nichts mehr, ausser dem Bewegen des Mauszeigers, im Terminal kann ich mich nicht anmelden, weil dort immer ein Return hin gesendet wird. D.h. , ich kann zwar Benutzer und Passwort eingeben,
Das Programm kommt aus der Routine auch nicht mehr heraus. Der Dialog wird auch nicht angezeigt.
Code: Alles auswählen
procedure TfrAktenliste.btnDeleteAkteClick(Sender: TObject);
var
idx: integer;
begin
idx := GetAktenIndex;
if idx < 0 then
exit; // Bis hier alles OK
if MessageDlg('Diese Akte wirklich löschen?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then // und hier kracht es !
begin // Hier kommt er nie hin
A := AktenListe[idx];
AktenListe.DeleteByID(A.ID);
AktenListe.Delete(idx);
dgAkte.RowCount := dgAkte.RowCount - 1;
if idx >= AktenListe.Count then
idx := AktenListe.Count - 1;
dgAkte.Row := dgAkte.FixedRows + idx;
dgAkte.Invalidate;
end;
end;
Beim Debuggen komme ich bis Zeile 133 in messagedialogs.inc, dort ist dann Ende.
Code: Alles auswählen
begin
Btns := GetPromptUserButtons(Buttons, CancelValue, DefaultIndex, ButtonCount,
False, mbYes);
Result := DialogResults[PromptUser(LineBreaksToSystemLineBreaks(aMsg), // hier kommt er nicht mehr raus
DialogIds[DlgType], Btns, ButtonCount, DefaultIndex, CancelValue)];
ReallocMem(Btns, 0);