AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

If Then Problem

Ein Thema von STS301 · begonnen am 14. Dez 2007 · letzter Beitrag vom 15. Dez 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#11

Re: If Then Problem

  Alt 15. Dez 2007, 10:24
ja ich habe ein englisches Betriebssystem, aber was hat das damit zu tun?

ich weiß, dass ich den Code auch hineinkopieren kann, habe es aber als screenshot eingefügt, damit man weiß, welcher Fehler auftaucht.

hier

Delphi-Quellcode:
unit loeschprogramm;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Button3: TButton;
    Label1: TLabel;
    Edit2: TEdit;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    procedure CheckBox2Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
uses ShellAPI;

function DeleteFile(const AFile: string): boolean;
var
 sh: SHFileOpStruct;
begin
 ZeroMemory(@sh, sizeof(sh));
 with sh do
   begin
   Wnd := Application.Handle;
   wFunc := fo_Delete;
   pFrom := PChar(AFile +#0);
   fFlags := fof_Silent or fof_NoConfirmation;
   end;
 result := SHFileOperation(sh) = 0;
end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if (checkbox1.checked) and (checkbox2.checked)
    then begin
       deletefile(edit1.text) ;
       deletefile(edit2.text) ;
  end
else if checkbox1.Checked
    then begin
       deletefile(edit1.text) ;
    end
  else if checkbox2.checked
    then begin
       deletefile(edit2.text) ;
    end;

if (edit1.enabled=true) and (edit1.text='')
    then begin
          Showmessage('Gib bitte einen Pfad an!');
    end;
if (edit2.Enabled=true) and (edit2.text='')
    then begin
      showmessage('Gib bitte einen Pfad an!');
  end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.checked
then edit1.enabled:=true
else edit1.enabled:=false;
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
if checkbox2.checked
then edit2.enabled:=true
else edit2.enabled:=false;
end;

end.
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#12

Re: If Then Problem

  Alt 15. Dez 2007, 13:25
Hi,

also mal aufgeräumt:

checkbox2 ist angemarkert, aber in edit2 steht nix drin.
Daraus folgt es wird ein deletefile mit eimen leeren string als Filename versucht.

Jetzt soll die Fehlermeldung unterdrückt werden ?

Es wäre ja wohl sinnvoller stattdessen zu prüfen, ob gültige Eingabedaten vorliegen,
also ob der Dateiname nicht leer ist und ob die Datei existiert.

Gruss

[Edit] und noch was: es handelt sich hierbei sicherlich nicht um ein IfThen Problem [/Edit]
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#13

Re: If Then Problem

  Alt 15. Dez 2007, 18:38
Zitat von thkerkmann:
Es wäre ja wohl sinnvoller stattdessen zu prüfen, ob gültige Eingabedaten vorliegen,
also ob der Dateiname nicht leer ist und ob die Datei existiert.
stimmt das wäre noch besser, nur wie stelle ich das an?

du hast schon recht, dass das nicht mehr zum "if then Problem" gehört, aber es ist finde ich zu wenig um einen neuen Thread auzumachen
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: If Then Problem

  Alt 15. Dez 2007, 18:45
Delphi-Quellcode:
function DeleteFile(const AFile: string): boolean;
var
sh: SHFileOpStruct;
begin
  Result := FileExists(AFile);
  if Result then
    begin
      ZeroMemory(@sh, sizeof(sh));
      with sh do
         begin
           Wnd := Application.Handle;
           wFunc := fo_Delete;
           pFrom := PChar(AFile +#0);
           fFlags := fof_Silent or fof_NoConfirmation;
         end;
    result := SHFileOperation(sh) = 0;
  end;
end;
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  edit1.enabled := checkbox1.checked;
end;
Zitat von STS301:
Delphi-Quellcode:
if (checkbox1.checked) and (checkbox2.checked)
    then begin
       deletefile(edit1.text) ;
       deletefile(edit2.text) ;
  end
else if checkbox1.Checked
    then begin
       deletefile(edit1.text) ;
    end
  else if checkbox2.checked
    then begin
       deletefile(edit2.text) ;
    end;
Wozu ist denn die 1. Abfrage gedacht?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#15

Re: If Then Problem

  Alt 15. Dez 2007, 18:57
super, jetzt zeigt er die Fehlermeldung nicht mehr an.

edit1.enabled := checkbox1.checked; das ist eigentlich nur eine kürzere Version aber danke.

stimmt, an der Abfrage muss ich noch arbeiten aber sonnst funktioniert es
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#16

Re: If Then Problem

  Alt 15. Dez 2007, 19:01
hi, es genügt doch:
Delphi-Quellcode:
  if checkbox1.Checked then deletefile(edit1.text) ;
  if checkbox2.checked then deletefile(edit2.text) ;
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: If Then Problem

  Alt 15. Dez 2007, 19:02
Ja eben, deshalb hatte ich nach dem Sinn gefragt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#18

Re: If Then Problem

  Alt 15. Dez 2007, 19:07


sooo nahh und doch so fern (die programmierung eines einfachen Delphiprogramms mit einfachen Methoden)

Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:37 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