Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi MessageBox - Kompatibilitätsproblem (https://www.delphipraxis.net/54186-messagebox-kompatibilitaetsproblem.html)

PierreB 29. Sep 2005 11:13


MessageBox - Kompatibilitätsproblem
 
Moinsen ihr DP'sen :hi:

ich versuche derzeit mal ein paar ordentliche Fehlermeldungen in mein Programm einzubauen.
Leider bin ich hierbei gescheitert:
In einer MessageBox sollen erst Text, dann ein String (also auch Text), dann ein Zeilenumbruch und dann wieder Text ausgegeben werden.
Das ganze hab ich so versucht (datei ist eine Variable vom Typ String)
Delphi-Quellcode:
MessageBox(Self.Handle, 'Fehler #5: ' + datei + #13 + 'Die angegebene Datei ist bereits geöffnet !','Auftragsmanagement', 16);
Leider bekomme ich eine böse Fehlermeldung:
Zitat:

Inkompatible Typen: String und PAnsiChar
Kann mir jemand helfen ?

Danke schonmal. ;)

Union 29. Sep 2005 11:19

Re: MessageBox - Kompatibilitätsproblem
 
Zitat:

Zitat von PierreB
Moinsen ihr DP'sen :hi:

ich versuche derzeit mal ein paar ordentliche Fehlermeldungen in mein Programm einzubauen.
Leider bin ich hierbei gescheitert:
In einer MessageBox sollen erst Text, dann ein String (also auch Text), dann ein Zeilenumbruch und dann wieder Text ausgegeben werden.
Das ganze hab ich so versucht (datei ist eine Variable vom Typ String)
Delphi-Quellcode:
MessageBox(Self.Handle, 'Fehler #5: ' + datei + #13 + 'Die angegebene Datei ist bereits geöffnet !','Auftragsmanagement', 16);
Leider bekomme ich eine böse Fehlermeldung:
Zitat:

Inkompatible Typen: String und PAnsiChar
Kann mir jemand helfen ?

Danke schonmal. ;)

Wie wärs so:
var
Delphi-Quellcode:
   datei : string;
begin
   datei := 'Tabelle.db';
   MessageBox(Self.Handle, pchar('Fehler #5: ' + Datei + #13 + 'Die angegebene Datei ist bereits geöffnet !'),pchar('Auftragsmanagement'), 16);
end;

Aenogym 29. Sep 2005 11:20

Re: MessageBox - Kompatibilitätsproblem
 
Zitat:

Zitat von PierreB
Moinsen ihr DP'sen :hi:

ich versuche derzeit mal ein paar ordentliche Fehlermeldungen in mein Programm einzubauen.
Leider bin ich hierbei gescheitert:
In einer MessageBox sollen erst Text, dann ein String (also auch Text), dann ein Zeilenumbruch und dann wieder Text ausgegeben werden.
Das ganze hab ich so versucht (datei ist eine Variable vom Typ String)
Delphi-Quellcode:
MessageBox(Self.Handle, 'Fehler #5: ' + datei + #13 + 'Die angegebene Datei ist bereits geöffnet !','Auftragsmanagement', 16);
Leider bekomme ich eine böse Fehlermeldung:
Zitat:

Inkompatible Typen: String und PAnsiChar
Kann mir jemand helfen ?

Danke schonmal. ;)

hi pierre,

einfach den string zum PChat typecasten, dann klappts ;)
Delphi-Quellcode:
PChar('hallo')
aenogym

PierreB 29. Sep 2005 11:25

Re: MessageBox - Kompatibilitätsproblem
 
Vielen Dank ihr beiden, so gehts. :cheers:

pszopp 29. Sep 2005 19:16

Re: MessageBox - Kompatibilitätsproblem
 
Auch wenns schon klappt, hier noch ein Tipp:

Mit MessageDlg können auch Dialoge angezeigt werden.
Das hat den Vorteil, dass kein lästiges Handle übergeben werden muss.
Außerdem wird die Nachricht als String angegeben und muss deswegen nicht mit PChar
getypcastet zu werden.

Bsp.


Delphi-Quellcode:
  IF MessageDlg('Programm schließen?', mtConfirmation, [mbYes, mbNo], 0) = IDYes THEN Close;

CU

Luckie 29. Sep 2005 22:52

Re: MessageBox - Kompatibilitätsproblem
 
Hat aber den Nachteil, dass sie die Sprache der Delphi Version haben.

@Assun: Fehlercode #5 ist aber: 'Access is denied.' ;) Wie wäre es mit:
Delphi-Quellcode:
Messagebox(Handle, PChar('Fehlercode: ' + IntToStr(GetLastError) + #13#10 + SysErrorMessage(GetLastError)), 'Foobar', MB_ICONSTOP);

PierreB 30. Sep 2005 11:13

Re: MessageBox - Kompatibilitätsproblem
 
Zitat:

Zitat von Luckie
@Assun: Fehlercode #5 ist aber: 'Access is denied.' ;) Wie wäre es mit:
Delphi-Quellcode:
Messagebox(Handle, PChar('Fehlercode: ' + IntToStr(GetLastError) + #13#10 + SysErrorMessage(GetLastError)), 'Foobar', MB_ICONSTOP);

Moin Luckie,

1.) ich bin nicht Assun :shock:
2.) Naja, ich habe für mein Programm eigene Fehlercodes, hat also nichts mit den normalen zu tun. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz