MessageDlg Konvertierung einer Anwendung von Delphi 3 auf Lazarus
MessageDlg Konvertierung einer Anwendung von Delphi 3 auf Lazarus
Hallo!
Ich versuche ein Delphi 3 Projekt auf Lazarus zu konvertieren, doch leider macht mir MessageDlg Probleme.
Die meisten Dialoge, die nur ein OK benötigten habe ich mit showmessage ersetzt, aber bei
if MessageDlg('Wollen Sie den Datensatz wirklich löschen?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
erhalte ich beim Compilieren die Fehlermeldung: Incompatible type for arg no. 3: Got "{Array Of Const/Constant Open} Array of TMsgDlgBtn", expected "TMsgDlgButtons"
Ich verwende Lazarus v2.0.10.
Weiß jemand Rat?
Vielen Dank!
mike0575
Ich versuche ein Delphi 3 Projekt auf Lazarus zu konvertieren, doch leider macht mir MessageDlg Probleme.
Die meisten Dialoge, die nur ein OK benötigten habe ich mit showmessage ersetzt, aber bei
if MessageDlg('Wollen Sie den Datensatz wirklich löschen?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
erhalte ich beim Compilieren die Fehlermeldung: Incompatible type for arg no. 3: Got "{Array Of Const/Constant Open} Array of TMsgDlgBtn", expected "TMsgDlgButtons"
Ich verwende Lazarus v2.0.10.
Weiß jemand Rat?
Vielen Dank!
mike0575
Re: MessageDlg Konvertierung einer Anwendung von Delphi 3 auf Lazarus
Code: Alles auswählen
if MessageDlg('Daten löschen', 'Wollen Sie den Datensatz wirklich löschen?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
Gruß, Michael
Re: MessageDlg Konvertierung einer Anwendung von Delphi 3 auf Lazarus
Ich habe das gerade mit einem leeren Formular nachgespielt, und bei mir funktioniert es. Möglicherweise stehen bei dir, infolge der Delphi-Historie, nicht die richtigen Units in der uses-Zeile, oder die richtigen in der falschen Reihenfolge. Schreibe bitte mal folgendes an den Anfang der Uses-Zeile des Formulars, das den MessageDlg verwendet:
Natürlich doppelte Units dann herauslöschen.
Code: Alles auswählen
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs,
Re: MessageDlg Konvertierung einer Anwendung von Delphi 3 auf Lazarus
Ein wenig beachtetes Tool ist der Messagecomposer.
Der ist zwar bei Lazarus dabei, aber man muss das Package "messagecomposerpkg.lpk" zuerst installieren.
Der Dialog erscheint dann unter dem Menüpunkt "Quelltext".
Damit kann man den Dialog zusammenklicken, testen und mit "OK" in den Quelltext einfügen.
Der ist zwar bei Lazarus dabei, aber man muss das Package "messagecomposerpkg.lpk" zuerst installieren.
Der Dialog erscheint dann unter dem Menüpunkt "Quelltext".
Damit kann man den Dialog zusammenklicken, testen und mit "OK" in den Quelltext einfügen.
- Ally
- Beiträge: 282
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
Re: MessageDlg Konvertierung einer Anwendung von Delphi 3 auf Lazarus
Hallo mike0575,
Da wäre noch TaskDialog zu nennen. (https://wiki.lazarus.freepascal.org/TTaskDialog)
Bietet viele Möglichkeiten und beschriftet, zumindest unter Windows, auch die Buttons in deutsch.
Beispiel:
Gruß Roland
Da wäre noch TaskDialog zu nennen. (https://wiki.lazarus.freepascal.org/TTaskDialog)
Bietet viele Möglichkeiten und beschriftet, zumindest unter Windows, auch die Buttons in deutsch.
Beispiel:
Code: Alles auswählen
TaskDialog.Caption := 'Daten löschen';
TaskDialog.Title := 'Achtung';
TaskDialog.MainIcon := tdiQuestion;
TaskDialog.CommonButtons := [tcbYes, tcbNo];
TaskDialog.DefaultButton := tcbNo;
TaskDialog.Text := 'Wollen Sie den Datensatz wirklich löschen?';
TaskDialog.Execute;
if TaskDialog.ModalResult = mrNo then
Exit;
-
- Beiträge: 761
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: MessageDlg Konvertierung einer Anwendung von Delphi 3 auf Lazarus
Bei mir funktioniert es auch:
Windows 10
Lazarus 2.2.0 (rev lazarus_2_2_0) FPC 3.2.2 x86_64-win64-win32/win64
Windows 10
Lazarus 2.2.0 (rev lazarus_2_2_0) FPC 3.2.2 x86_64-win64-win32/win64
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Re: MessageDlg Konvertierung einer Anwendung von Delphi 3 auf Lazarus
Vielen Dank für die vielen Antworten.
Wenn ich den Code in einem neuen Projekt ausgeführt habe, dann funktionierte es bei mir auch.
Ich habe inzwischen Lazarus neu installiert und diesmal die 32-bit-Variante genommen. Jetzt erhalte ich keinen Fehler mehr.
Viele Grüße,
Michael
Wenn ich den Code in einem neuen Projekt ausgeführt habe, dann funktionierte es bei mir auch.
Ich habe inzwischen Lazarus neu installiert und diesmal die 32-bit-Variante genommen. Jetzt erhalte ich keinen Fehler mehr.
Viele Grüße,
Michael