MessageBox



  • hi

    dann bekomm ich nur 3 Fehler:

    [BCC32 Fehler] Unit1.cpp(37): E2034 Konvertierung von 'const char *' nach 'int' nicht möglich
    [BCC32 Fehler] Unit1.cpp(37): E2342 Keine Übereinstimmung des Typs beim Parameter 'Flags' ('int' erwartet, 'const char *' erhalten)
    [BCC32 Fehler] Unit1.cpp(37): E2227 Zu viele Parameter im Aufruf von _fastcall TApplication::MessageBoxA(const char *,const char *,int)

    ohne Application-> geht es aber ich komm eben mit dem hwnd nicht klar.

    Wo liegt nun der Unterschied zu deinem und meinem? Wieso geht meins und deins nicht? Werd mal gucken ob ich aus den Fehlern schlau werd wollte es nur gleich mal reinschreiben das es eben so nicht geht

    mfg

    chris



  • Hallo

    Entweder benutzt du deine Methode, und übergibst ein passendes Handle. Aus einer Methode einer Form zum Beispiel

    mb = MessageBox (Handle, ...
    

    oder du verwendest die von Klaus angesprochene Methode und must gar kein Handle angeben

    Application->MessageBox("das2 ist das Ergebnis Richtig?"...
    

    Der Unterschied : Ersteres ist reines WinAPI. Zweiteres ist ein VCL-Wrapper um genau die WinAPI-Methode.

    bis bald
    akari



  • hi

    ist ja genial einfach 😉

    vielen dank klappt perfekt genau wie ich es wollte dann bin ich ja mit der msgbox durch 🙂

    mfg

    chris



  • hi

    arg sorry noch ein kleines Problem das2 ist eigentlich eine Variable wie kann ich denn das als Variabel ausgeben? In PHP wars ja einfach aber da will es so wie ichs kenn nicht ganz klappen 😉 Werd mich jetzt mal registrieren um meine Beiträge bearbeiten zu können 😉



  • Du hast zwar nicht genau beschrieben was Dein Problem ist, aber ich denke das hilft Dir:

    Application->MessageBox(das2.c_str()....
    

    Gruß myerscola



  • hi

    ich will praktisch folgendes angezeigt bekommen wenn das2 = 12 (das2 ist ein int) ist.

    12 und noch ein text

    oder eben leicht gesagt

    Application->MessageBox (das2.c_str() "und noch ein text", "Ergebnis",....
    

    leider geht es so auch nicht...

    mfg

    chris



  • Hallo

    Du must schon ein bißchen mitdenken und dich mal Datentypen auseinandersetzen. Wenn du ein Integer hast must du den erstmal in einen AnsiString umwandeln, dann kannst du auch dievon myerscola genannte Methode einsetzen

    int das2 = ...;
    AnsiString buffer = IntToStr(das2) + " und noch ein text";
    Application->MessageBox (buffer.c_str(), "Ergebnis",....
    

    /Edit : Fehler korrigiert.

    bis bald
    akari



  • Stimmt, so geht das auch nicht, den String mußt Du Dir schon vorher zusammenbasteln:

    int das2=12;
    AnsiString text1=IntToStr(das2);
    AnsiString text2=" und noch ein Text";
    AnsiString text=text1 +text2;
    Application->MessageBox (text.c_str(), "Ergebnis",....
    

    /Edit : Akari schneller 😞



  • Hallo

    @ myerscola : Ne so auch nicht 😉
    Warum die fertigen Strings am das2 zuweisen?

    /Edit : Okay auch korrigiert. Nun ists aber genug

    bis bald
    akari



  • hi

    eigentlich klar wenn man logich denkt... sry für die eigentlich dumme frage 😉 Das mit den Datentypen ist mir halt relativ neu (hab noch nicht soviel in c++ gemacht aber schon sehr sehr viel in php und da brauchte man sich darum nie kümmern deswegen vergess ich es oft sry nochmal)

    mfg

    Chris


Anmelden zum Antworten