In meinem Programm erstelle iche eine TfrxMasterData und trage dazu einige TfrxMemoView ein. Obwohl im Workspace alles richtig angezeigt wurde, waren die TfrxMemoView nicht dem TfrxMasterData zugeordnet,
Falsch
Der Fehler lag darin, dass ich der TfrxMasterData keine Weite zugeodnet hatte. So wurde die TfrxMasterData zwar im Workspace richtig angezeigt, aber die TfrxMemoView konnten einer TfrxMasterData nicht zugeordnet werden.
function TfmEinfacherFastReportDesigner.EinfacheTabelle_Masterdata(
aPage: TfrxReportPage; var aTop, aHeight: extended): TfrxMasterData;
begin
Result := TfrxMasterData.Create(aPage);
Result.CreateUniqueName;
Result.Left:=0;
Result.Width := 750; //Width darf nicht 0 sein.
Result.Top := aTop;
Result.Height := aHeight;
Result.DataSet := dsTabelle;
end;
Richtig
Tags: Delphi-ProgrammierungMein Projekt konnte ich (fast) ohne Schwierigkeiten von Delphi 2009 nach Delphi 10 umsetzen. Nur fehlten plötzlich in den Formularen das Icon in der oberen linken Ecke.
Die Fehlersuche war aufwändig aber von Erfolg gekrönt.
In einer RES-Datei einer meiner selbst geschriebenen Komponenten war neben den BITMAPs auch ein verstümmelter Eintrag für ein ICON.
Mit Hilfe des Tools [Resourcehacker](http://www.angusj.com/resourcehacker/ konnte ich die RES-Datei reparieren.)
Das ist aber eine böse Falle für Umsteiger von Delphi 2009 auf Delphi 10 Seattle:
Wenn das Programm in der IDE mit dem grünen Pfeil gestartet wird, sollte man vorher den Hinweis lesen "Ohne Debugger ausführen".
Um das Programm in der IDE mit Debugger zu starten die Taste F9 benutzen oder diesen Schalter
Tags: Delphi-ProgrammierungDas Problem:
Ein Eingabedialog wird mit Showmodal aufgerufen und das Grid im Eingabedialog erhält nicht den Fokus und ist auch mit der Maus nicht anklickbar.
Die Lösung
Schuld war der Aufruf des Eingabedialogs im Hauptformular der Anwendung bereits im OnFormActivate Ereignis, ohne der Anwendung Zeit zu geben alle bis dahin anstehenden Ereignisse abzuarbeiten.
procedure Tam_Main.FormActivate(Sender: TObject);
begin
// Der Anwendung Zeit geben, alle bisher anstehenden Ereignisse abzuarbeiten.
Application.ProcessMessages;
am_Eingabe.Execute;
end;
Tags: Delphi-Programmierung
Literatur
Tags: Delphi-Programmierung Sony Xperia L win10 AndroidBeim Schließen eine Formulars, an dem ich schon seit Monaten keine Änderungen vorgenommen hatte, gab es plötzlich eine Schutzrechtsverletzung.
Nach mehreren Stunden Suche habe ich den Fehler gefunden.
Auf dem Formular gibt es eine TpFIBDataSet. Zu dieser TpFIBDataSet hatte ich neben anderen Feldern ein TStringField zugewiesen. (Weiß der Geier warum ich das mal gemacht hatte.) Nach einem Update der FIB-Komponenten auf die Version 7.51.2676 wurde das TStringfield beim Schließen des Formulars nicht mehr mit freigegeben und verursachte den Fehler "Ungültige Zeigeroperation".
Abhilfe: Das Feld löschen und als TFIBStringfield wieder anlegen.
Tags: Delphi-Programmierung