AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi MessageDlg wird dopellt angezeigt - Solle er aber nicht
Thema durchsuchen
Ansicht
Themen-Optionen

MessageDlg wird dopellt angezeigt - Solle er aber nicht

Ein Thema von Deltachaos · begonnen am 27. Feb 2008 · letzter Beitrag vom 28. Feb 2008
Antwort Antwort
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#1

MessageDlg wird dopellt angezeigt - Solle er aber nicht

  Alt 27. Feb 2008, 18:00
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','' + 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','' + key1b + '!' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '2','' + key1b + '"' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '3','' + key1b + '§' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '4','' + key1b + '$' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '5','' + key1b + '%' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '6','' + key1b + '&' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '7','' + key1b + '/' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '8','' + key1b + '(' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '9','' + key1b + ')' , [rfReplaceAll]);
        l;
        form1.memo1.text := StringReplace(form1.memo1.text, '0','' + 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, '' + key1b + '=','0' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '' + key1b + ')','9' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '' + key1b + '(','8' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '' + key1b + '/','7' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '' + key1b + '&','6' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '' + key1b + '%','5' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '' + key1b + '$','4' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '' + key1b + '§','3' , [rfReplaceAll]);
      form1.memo1.text := StringReplace(form1.memo1.text, '' + key1b + '"','2' , [rfReplaceAll]);
      l;
      form1.memo1.text := StringReplace(form1.memo1.text, '' + 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, '' + 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
Maximilian Ruta
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht

  Alt 27. Feb 2008, 18:04
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
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht

  Alt 27. Feb 2008, 23:45
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht

  Alt 28. Feb 2008, 07:16
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
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#5

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht

  Alt 28. Feb 2008, 08:33
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
Maximilian Ruta
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#6

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht

  Alt 28. Feb 2008, 08:46
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 - ist das nicht schlicht überflüssig???
Ralph
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: MessageDlg wird dopellt angezeigt - Solle er aber nicht

  Alt 28. Feb 2008, 09:21
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 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