Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi case of und MessageDlg Abfrage (https://www.delphipraxis.net/9773-case-und-messagedlg-abfrage.html)

flomei 3. Okt 2003 21:10


case of und MessageDlg Abfrage
 
Hallo Leute! :hi:
Habe die Suche schon benutzt aber leider nichts passendes gefunden... :(

Ich habe abhängig von einer globalen Variable (welche die Sprache angibt) verschiedene Dialoge.
Das wollte ich (weil es ja schöner ist ;)) mit case of realisieren. Nun stellt sich aber ein Problem.
Hier mal der Quelltext:
Delphi-Quellcode:
procedure TMainForm.QuitDialog(Sender: TObject; var CanClose: Boolean);
  begin
    case Language of
    0: begin
        MessageDlg('Vielen Dank für den Einsatz von' +#13
        +'   ..:: Encrypt / Decrypt ::..'+#13+#13
        +'Beenden?', mtInformation,
        [mbYes, mbNo],0)= mrYes //<--- Fehlermeldung: ':=' erwartet aber '=' gefunden
          then                  //<--- Fehlermeldung: 'END' erwartet aber 'THEN' gefunden
            CanClose := true
          else
            CanClose := false;
       end;
    1: begin                     //<--- Fehlermeldung: Unbekannter Bezeichner: '1'
        MessageDlg('Thanks for using' +#13
        +'   ..:: Encrypt / Decrypt ::..'+#13+#13
        +'Quit?', mtInformation,
        [mbYes, mbNo],0)=mrYes  //<--- Fehlermeldung: ':=' erwartet aber '=' gefunden
          then                  //<--- Fehlermeldung: 'END' erwartet aber 'THEN' gefunden
            CanClose := true
          else
             CanClose := false;
         end;
      end;                      //<--- Fehlermeldung: '.' erwartet aber ';' gefunden
  end;                          //<--- Fehlermeldung: Text hinter finalem 'END.' - vom Compiler ignoriert.
Dann meint er noch:
Zitat:

[Error] MainFormUnit.pas(32): Unsatisfied forward or external declaration: 'TMainForm.ImgGermanClick'
[Error] MainFormUnit.pas(33): Unsatisfied forward or external declaration: 'TMainForm.ImgEnglishClick'
[Error] MainFormUnit.pas(34): Unsatisfied forward or external declaration: 'TMainForm.FormCreate'
Diese Zeilen sind ja ganz oben in der Unit wo die Prozeduren alle stehen :? Hat das was damit zu tun???

Wo liegt der Fehler im case of Block? Ich kann irgendwie keinen erkennen. Aber vielleicht könnt ihr mir ja helfen. :)

Danke im Vorraus!

MfG Florian :hi:

P.S.: Ich wollte mal nen kleinen Textverschlüsseler schreiben :mrgreen: Bin hoffentlich bald fertig! :)

Hansa 3. Okt 2003 21:24

Re: case of und MessageDlg Abfrage
 
Zitat:

Zitat von flomei
...Ich wollte mal nen kleinen Textverschlüsseler schreiben :mrgreen: Bin hoffentlich bald fertig! :)

Klasse Idee 8) Aber dann mach das bitte nicht mit einem Delphi Quelltext und schreibe vor das MessageDlg noch ein
Delphi-Quellcode:
If
Das ist eine Funktion.

flomei 3. Okt 2003 21:31

Re: case of und MessageDlg Abfrage
 
Zitat:

Zitat von Hansa
Klasse Idee 8)

Echt??? :shock:

Zitat:

Zitat von Hansa
Aber dann mach das bitte nicht mit einem Delphi Quelltext

:wiejetzt: Soll doch nur so ein: "Gib nen Text ein, verschlüssel ihn, schick ihn deinem Kumpel, gib ihm das Programm und er kann ihn wieder entschlüsseln..."-Programm werden. Nichts mit dem man vertrauliche Daten verschicken sollte...
Ist mehr so etwas wie eine Übung für mich. :)

Zitat:

Zitat von Hansa
und schreibe vor das MessageDlg noch ein
Delphi-Quellcode:
If
Das ist eine Funktion.

:wall: :wall: :wall: Danke!

MfG Florian :hi:

Brüggendiek 3. Okt 2003 22:35

Re: case of und MessageDlg Abfrage
 
Hallo!

Wie war das noch so schön: "Warum einfach,, wenn es auch kompliziert geht!" :?:

Kürzer geht es mit
Delphi-Quellcode:
CanClose := MessageDlg (...) = mrYes;
Gruß

Dietmar Brüggendiek

Christian Seehase 4. Okt 2003 01:05

Re: case of und MessageDlg Abfrage
 
Moin Florian,

noch eine Ergänzung zu Dietmars Vorschlag:

Wenn Du jetzt noch die Texte in eine Tabelle packst, deren Index mit der Language Variablen angesprochen wird, kannst Du das ganze sogar in einer Zeile schreiben.
Vorteil: Soll noch eine Sprache dazukommen, brauchst Du nur noch die Tabelle zu erweitern.

Hansa 4. Okt 2003 01:19

Re: case of und MessageDlg Abfrage
 
Zitat:

Zitat von Brüggendiek
Wie war das noch so schön: "Warum einfach,, wenn es auch kompliziert geht!" :?:

Hehe, ja das stimmt. Aber das ist eine Klausel mit 3 Parametern, ich wollte aber lieber sowieso vorerst bei zwei bleiben. 8)

@flomei: Schau Dir das mal genau an. Das ist wichtig.

flomei 4. Okt 2003 01:33

Re: case of und MessageDlg Abfrage
 
Ich guck mir das auf jeden Fall nochmal an. Und ich werde auch mal über Christian´s Vorschlag nachdenken :roll:

MfG Florian :hi:

Sharky 4. Okt 2003 08:38

Re: case of und MessageDlg Abfrage
 
Hai flomei,

könnte etwas so aussehen

http://www.sharkys-home.de/smiles/finger.gif
Delphi-Quellcode:
Var
 Language : Integer = 0;
 Meldung : Array [0..1] Of String = ('Vielen Dank für den Einsatz von' +#13#10
        +'   ..:: Encrypt / Decrypt ::..'+#13+#10
        +'Beenden?'
        ,
        'Thanks for using' +#13+#10
        +'   ..:: Encrypt / Decrypt ::..'+#13+#10
        +'Quit?');

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin
 CanClose := MessageDlg(Meldung[Language], mtInformation,[mbYes, mbNo],0)= mrYes;
end;


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

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