Hallo,
ich habe in der Annahme, dass FormActivate nur einmal bei der Aktivierung des Formulars ausgeführt wird, in einem Formular einige Einstellungen in FormActivate vorgenommen.
Durch folgenden Code wird FormActivate wieder ausgeführt, obwohl das Formular bereits aktiv ist. Die IB_Richedit befindet sich in diesem Formular.
Das ist doch nicht richtig, oder?
In diesem Fall verhinderten die Anweisungen in FormActivate die Änderung der Schrift. Ich habe jetzt eine Variable activ:boolean eingebaut, die nach dem
ersten Durchlauf true gesetzt wird. Damit funktioniert mein Gebilde. Es wäre aber doch interessant zu wissen, warum das so ist.
Delphi-Quellcode:
procedure TFMain.Schrift1Click(Sender: TObject);
begin
if PopupMenueFonts1.PopupComponent is TIB_Richedit then
with TIB_Richedit(PopupMenueFonts1.PopupComponent) do
begin
FontDialog1.Font.Assign(SelAttributes);
if FontDialog1.Execute then
begin
DataSource.Dataset.Edit;
SelAttributes.Assign(FontDialog1.Font);
end;
end;
end;
Delphi 6 Prof., Delphi 10 Seattle Prof., IBO 4, IBO 5, Firebird 2.5, Windows 10 Prof., Windows 11 Prof.