MessageBox() und Text zum Ausgeben in Delphi

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

MessageBox() und Text zum Ausgeben in Delphi

Beitrag von AND51 »

Hallo!

Warum funktionertdieser Code in Delphi nicht:

Code: Alles auswählen

a:=MessageBox(Form1.Handle, 'Benötige Zeit: '+IntToStr(start)+' ms.', 'MyMsgBox', MB_OK);
a ist eine korrekt initalisierte, lokale Variable vom Typ INTEGER.

Der Kompiler labert immer was von inkorrekten Typen wie STRING <---> PChar. Weiß jemand weiter?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Dann mußte wohl den String konvertieren!
PChar beginnt mit Anzahl-Zeichen und dann String, während Du
wahrscheinlich einen Nullterminierten String brauchst. Ob das so
stimmt, weiß ich nicht, ist Jahre her, wo ich mit Delphi was gemacht
habe.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Hi! ich versteh leider nicht, was du meinst. Soll ich den String einfach mit Chr(0) abschließen, was
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Nein, umwandeln. Da gibts irgendeine Stringfunktion, die von einem in den
anderen wandeln kann. Kann Dir da aber nicht helfen, weil ich kein
Delphie-Hilfe zur Hand habe.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

IntToStr()
StrToInt()
FloatToStr()


Das sind die, die wir bisher gelernt haben. Und, ich glaube vergessen zu haben, dass start auch eine korrekt initalisierte Variable vom Typ INTEGER ist.

Das verwendete OS ist Win 2000 in der Schule.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Probiere es mal so:

Code: Alles auswählen

a:=MessageBox(Form1.Handle, 'Benötige Zeit: ' + PChar(start) + ' ms.', 'MyMsgBox', MB_OK);
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

/:->
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Danke, werde ich mal ausprobieren, aber das geht erst, wenn ich in34 Tagen wieder in der Schule bin. Dass man die zahl in den 'Typ' PChar umwandeln kann. Danke! :allright:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Kann auch sein, das Du die Zahl in einen String umwandeln mußt, und diesen
dann in PCHAR. Auf jedenfall ist PCHAR für die MessageBox-Funktion
erforderlich, wenn der String nicht in Literalen steht!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> aber das geht erst, wenn ich in34 Tagen wieder in der Schule bin.

[seufz] Schüler müsste man sein...
a²+b²=mc²
Antworten