Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MessageDlg wird dopellt angezeigt - Solle er aber nicht (https://www.delphipraxis.net/109289-messagedlg-wird-dopellt-angezeigt-solle-er-aber-nicht.html)

Deltachaos 27. Feb 2008 17:00


MessageDlg wird dopellt angezeigt - Solle er aber nicht
 
Hllo ich habe mir ein programm geschrieben da texte codiert und decodiret.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Printers;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Memo1: TMemo;
    GroupBox2: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Label4: TLabel;
    Label5: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    PrintDialog1: TPrintDialog;
    ProgressBar1: TProgressBar;
    ProgressBar2: TProgressBar;
    Label6: TLabel;
    Label7: TLabel;
    Button5: TButton;
    Button6: TButton;
    Label8: TLabel;
    GroupBox3: TGroupBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
imax : integer = 30;
iwait : integer = 500; //0.5 sec = 500ms

var
key1, key1a, key1b, key2, key2a, key2b, key3, key3a, key3b: string;

procedure _var_;
begin
 key1:= form1.edit1.text;
 key2:= form1.edit2.text;
 key3:= form1.edit3.text;
 key1a := Copy(key1,1,2);
 key1b := Copy(key1,3,4);
 key2a := Copy(key2,1,2);
 key2b := Copy(key2,3,4);
 key3a := Copy(key3,1,2);
 key3b := Copy(key3,3,4);
end;

procedure l;
begin
  form1.ProgressBar1.Position:=form1.ProgressBar1.Position+1;
end;

procedure l1;
begin
  form1.ProgressBar2.Position:=form1.ProgressBar2.Position+30;
end;

procedure l2;
begin
  form1.ProgressBar2.Position:=form1.ProgressBar2.Position+15;
end;

procedure l3;
begin
  form1.ProgressBar2.Position:=form1.ProgressBar2.Position+10;
end;

procedure code;
begin
  form1.ProgressBar1.Max:=imax;
  form1.ProgressBar1.Position:=0;
  form1.ProgressBar2.Max:=imax;
  form1.ProgressBar2.Position:=0;
      begin
        form1.Memo1.text := stringreplace(form1.Memo1.text, '=', '[_0_]' , [rfReplaceAll]);
        form1.Memo1.text := stringreplace(form1.Memo1.text, ':', '[_-_]' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'a','th%6' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'A','th&%6' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'b','g' + key3b + 'fhu' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'B','gf' + key2a + '#hu' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'c','"' + key1a + 'bJs' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'C','"b' + key2a +'%Js' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'd','/' + key2b +'§jT' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'D','/§' + key3a + '?jT' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'e','&ast' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'E','&a{st' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'f','g@4[' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'F','g' + key2b + '@%4[' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'g','JHG³' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'G','JH²³' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'h','&' + key3b +'%gd' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'H','&' + key1b + '%%gd' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'i','ß}' + key1a + '=47' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'I','ß' + key3a + '}=G47' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'j','&"' + key3a + '31' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'J','&"}31' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'k','&' + key1b + '%$2' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'K','&%' + key3a + ')$2' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'l','9v' + key1b + '45' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'L','9v' + key2a + '[45' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'm','oed' + key3b + '2' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'M','oe' + key1b + 'dß2' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'n','%' + key2a + '-93' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'N','%-;' + key1a + '93' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'o','jdS' + key2a +'t' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'O','jd' + key1b + '§St' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'p','%h'+ key2a +'te' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'P','%ht' + key2b + '!e' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'q','g' + key1a + 'h92' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'Q','g' + key3a + 'h³92' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'r','th' + key3b + 'vg' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'R','th?' + key3b + 'vg' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 's','}\' + key2a + '23' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'S','}\d' + key1b + '³23' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 't','x' + key2b + 'J%"' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'T','xJ' + key1a + '$%"' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'u','²[' + key3b + 'g]{' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'U','²[g' + key2a + '&]{' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'v','ueb' + key3a + 'A' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'V','u²' + key2a + 'ebA' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'w','%&5' + key3a + '&' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'W','%&' + key1b + '=5&' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'x','g' + key2b + 'htz' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'X','gh{' + key1b + 'tz' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, 'y','(th' + key3a + '{G' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'Y','(th!{' + key1a + 'G' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'z','³E' + key2b + '€w' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, 'Z','³E€@' + key1a + 'w' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, ' ','[H$%³t]' , [rfReplaceAll]);
        form1.memo1.text := StringReplace(form1.memo1.text, '1','Hß' + key1b + '!' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '2','Hß' + key1b + '"' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '3','Hß' + key1b + '§' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '4','Hß' + key1b + '$' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '5','Hß' + key1b + '%' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '6','Hß' + key1b + '&' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '7','Hß' + key1b + '/' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '8','Hß' + key1b + '(' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '9','Hß' + key1b + ')' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '0','Hß' + key1b + '=' , [rfReplaceAll]);
        l;
        form1.ProgressBar1.Position:=form1.ProgressBar1.Position+1;
        l;
        form1.ProgressBar1.Position:=0;
      end;
end;

procedure decode;
begin
  form1.ProgressBar1.Max:=imax;
  form1.ProgressBar1.Position:=0;
  form1.ProgressBar2.Max:=imax;
  form1.ProgressBar2.Position:=0;
    begin
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + '=','0' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + ')','9' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + '(','8' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + '/','7' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + '&','6' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + '%','5' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + '$','4' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + '§','3' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + '"','2' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'Hß' + key1b + '!','1' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '[H$%³t]',' ' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '³E€@' + key1a + 'w','Z' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '³E' + key2b + '€w','z' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '(th!{' + key1a + 'G','Y' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '(th' + key3a + '{G','y' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'gh{' + key1b + 'tz','X' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key2b + 'htz','x' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '%&' + key1b + '=5&','W' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '%&5' + key3a + '&','w' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'u²' + key2a + 'ebA','V' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'ueb' + key3a + 'A','v' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '²[g' + key2a + '&]{','U' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '²[' + key3b + 'g]{','u' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'xJ' + key1a + '$%"','T' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'x' + key2b + 'J%"','t' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '}\d' + key1b + '³23','S' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '}\' + key2a + '23','s' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'th?' + key3b + 'vg','R' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'th' + key3b + 'vg','r' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key3a + 'h³92','Q' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key1a + 'h92','q' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '%ht' + key2b + '!e','P' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '%h' + key2a + 'te','p' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'jd' + key1b + '§St','O' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'jdS' + key2a +'t','o' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '%-;' + key1a + '93','N' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '%' + key2a + '-93','n' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'oe' + key1b + 'dß2','M' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'oed' + key3b + '2','m' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '9v' + key2a + '[45','L' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '9v' + key1b + '45','l' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '&%' + key3a + ')$2','K' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '&' + key1b + '%$2','k' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '&"}31','J' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '&"' + key3a + '31','j' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'ß' + key3a + '}=G47','I' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'ß}' + key1a + '=47','i' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '&' + key1b + '%%gd','H' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '&' + key3b +'%gd','h' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'JH²³','G' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'JHG³','g' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key2b + '@%4[','F' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'g@4[','f' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '&a{st','E' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '&ast','e' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '/§' + key3a + '?jT','D' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '/' + key2b +'§jT','d' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '"b' + key2a +'%Js','C' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '"' + key1a + 'bJs','c' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'gf' + key2a + '#hu','B' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, 'g' + key3b + 'fhu','b' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'th&%6','A' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, 'th%6','a' , [rfReplaceAll]);
      form1.Memo1.text := stringreplace(form1.Memo1.text, '[_-_]',':' , [rfReplaceAll]);
      form1.Memo1.text := stringreplace(form1.Memo1.text, '[_0_]','=' , [rfReplaceAll]);
      form1.ProgressBar1.Position:=0;
    end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
     TRY
        Memo1.Lines.Loadfromfile(OpenDialog1.Filename);
     EXCEPT
       MessageDlg('Es ist ein Fehler beim Laden der Datei aufgetreten!',
       mtError, [mbOk], 0)
     END;
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
     TRY
        Memo1.Lines.SavetoFile(SaveDialog1.Filename);
     EXCEPT
       MessageDlg('Es ist ein Fehler beim speichern der Datei aufgetreten!',
       mtError, [mbOk], 0)
     END;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  _var_;
  begin
    if form1.RadioButton1.Checked then
      code;
      l1;
    MessageDlg('Codieren erfolgreich beendet',
    mtinformation, [mbOk], 0);
    form1.ProgressBar2.Position:=0;
  end;
  begin
    if form1.RadioButton2.Checked then
      begin;
        code;
        l2;
        code; //ich weis das es zählschleifen gibt! :-)
        l2;
        MessageDlg('Codieren erfolgreich beendet',
        mtinformation, [mbOk], 0);
        form1.ProgressBar2.Position:=0;
      end;
  end;
  begin
    if form1.radiobutton3.checked then
      begin
        code;
        l3;
        code;
        l3;
        code;
        l3;
        MessageDlg('Codieren erfolgreich beendet',
        mtinformation, [mbOk], 0);
        form1.ProgressBar2.Position:=0;
      end;
  end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  _var_;
  begin
    if form1.RadioButton1.Checked then
      begin
        decode;
        l1;
        MessageDlg('Decodieren erfolgreich beendet',
        mtinformation, [mbOk], 0);
        form1.ProgressBar2.Position:=0;
      end;
  end;
  begin
    if form1.RadioButton2.Checked then
      begin;
        decode;
        l2;
        decode; //ich weis das es zählschleifen gibt! :-)
        l2;
        MessageDlg('Decodieren erfolgreich beendet',
        mtinformation, [mbOk], 0);
        form1.ProgressBar2.Position:=0;
      end;
  end;

  begin;
    if form1.radiobutton3.checked then
      begin
        decode;
        l3;
        decode;
        l3;
        decode;
        l3;
        MessageDlg('Decodieren erfolgreich beendet',
        mtinformation, [mbOk], 0);
        form1.ProgressBar2.Position:=0;
      end;
  end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  memo1.Lines.Clear
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  with Printer do
  begin
    BeginDoc;
    Canvas.TextRect(Rect(200,200,PageWidth-200,PageHeight-200),
                    200, 200, Memo1.Lines.Text);
    EndDoc;
  end;
  MessageDlg('Druckauftrag wurde gesendet!',
  mtinformation, [mbOk], 0);
end;

end.
doch komischer weise becomme ich bei der gewehlen radio button2 und 3 die ervolgsmeldung immer 2 mal. ich konnte aber keien fehler entdeckenF

Die Muhkuh 27. Feb 2008 17:04

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht
 
Hi,

poste bitte das nächste mal nur den relevanten Code und nicht alles...

Delphi-Quellcode:
if form1.RadioButton2.Checked then
      begin
        decode;
        l2;
        decode; //ich weis das es zählschleifen gibt! :-)
        l2;
        MessageDlg('Decodieren erfolgreich beendet',
        mtinformation, [mbOk], 0);
        form1.ProgressBar2.Position:=0;
      end
    else  // <<< Beachte das else

    if form1.radiobutton3.checked then
      begin
        decode;
        l3;
        decode;
        l3;
        decode;
        l3;
        MessageDlg('Decodieren erfolgreich beendet',
        mtinformation, [mbOk], 0);
        form1.ProgressBar2.Position:=0;
      end;
Zitat:

doch komischer weise bekomme ich bei der gewählten radio button2 und 3 die erfolgsmeldung immer 2 mal. ich konnte aber keinen fehler entdecken

Muetze1 27. Feb 2008 22:45

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht
 
Entferne grundlegend mal alle "Form1." komplett aus deinem Code, bis auf die Deklaration der Variablen Form1. Der Fehler an sich, wurde ja schon genannt. Dazu noch eine Erklärung: Eine IF Anweisung bezieht sich nur auf den nächsten Befehl. Wenn du also mehr als einen Befehl abhängig von der IF Bedingung ausführen willst, dann musst du diese mit begin/end zusammenfassen.

Und woher der zweite MessageDlg() Aufruf gekommen ist, hättest du auch einfach mit dem Debugger heraus bekommen können. Siehe auch Debugging Tutorial

marabu 28. Feb 2008 06:16

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht
 
Moin,

der Fehler ist ein fehlender Block beim ersten IF-Statement in Button3Click.

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  _var_;
  if RadioButton1.Checked then
  begin
    code;
    l1;
    MessageDlg('Codieren erfolgreich beendet', mtinformation, [mbOk], 0);
    ProgressBar2.Position := 0;
  end;
  if RadioButton2.Checked then
  // ...
end;
Die pauschale Entfernung von Form1 führt zu Problemen in den nicht objekt-gebundenen Funktionen und Prozeduren. Entweder man macht diese zu Methoden der Form (hier empfehlenswert) oder man übergibt Parameter um globale Zugriffe zu vermeiden.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    // ...
  private
    procedure l;
  end;

// ...

procedure TForm1.l;
begin
  with ProgressBar1 do
    Position := Position + 1;
end;
Freundliche Grüße

Deltachaos 28. Feb 2008 07:33

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht
 
Zitat:

Zitat von marabu
Moin,

der Fehler ist ein fehlender Block beim ersten IF-Statement in Button3Click.

Danke,
Hier nochmal der funktionirende:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  _var_;
  begin
    if form1.RadioButton1.Checked then
      begin
        begin
          code;
          l1;
        end;
        MessageDlg('Codieren erfolgreich beendet',
        mtinformation, [mbOk], 0);
        form1.ProgressBar2.Position:=0;
        form1.ProgressBar1.Position:=0;
      end;
  end;
Ich weis auch nicht ich vergesse immer irgend wo begin`s oder end`s

taaktaak 28. Feb 2008 07:46

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht
 
Moin, Moin,
habe den Thread jetzt nicht verfolgt, aber das doppelte BEGIN ...
Zitat:

Delphi-Quellcode:
begin
  begin
    code;
    l1;
    end;
  MessageDlg('Codieren erfolgreich beendet',
  mtinformation, [mbOk], 0);
  form1.ProgressBar2.Position:=0;
  form1.ProgressBar1.Position:=0;
end;

habe ich eigentlich noch nie vorher gesehen :roll: - ist das nicht schlicht überflüssig???

Muetze1 28. Feb 2008 08:21

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht
 
Zitat:

Zitat von marabu
Die pauschale Entfernung von Form1 führt zu Problemen in den nicht objekt-gebundenen Funktionen und Prozeduren. Entweder man macht diese zu Methoden der Form (hier empfehlenswert) oder man übergibt Parameter um globale Zugriffe zu vermeiden.

Asche über mein Haupt. Ich habe die klassenlosen Funktionen glatt übersehen und mich hauptsächlich auf den unteren Teil konzentriert, wo die ganzen Methoden stehen. Bei den klassenlosen Funktionen ist das natürlich fatal, Form1. pauschal zu entfernen. Aber ich denke mal, hier könnte man leicht das ganze zu einer Methode wandeln, wobei ich hier keine Nachteile sehen würde.

Ansonsten: Verbesserungen könnte man an dem Code noch eine Menge machen, weil die StringReplace() Funktionen bisher recht träge von statten gehen sollten. Schliesslich wird ständig aus einer Property gelesen und dieser wieder zugewiesen. Über die gesamten Aufrufe könnte man mit einer lokalen Variable arbeiten und nur zu Beginn die Property auslesen und am Ende wieder setzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 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