![]() |
Re: If Then Problem
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. |
Re: If Then Problem
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 ? :wiejetzt: 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] |
Re: If Then Problem
Zitat:
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 ;) |
Re: If Then Problem
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:
|
Re: If Then Problem
super, jetzt zeigt er die Fehlermeldung nicht mehr an.
Delphi-Quellcode:
das ist eigentlich nur eine kürzere Version aber danke.
edit1.enabled := checkbox1.checked;
stimmt, an der Abfrage muss ich noch arbeiten aber sonnst funktioniert es :firejump: |
Re: If Then Problem
hi, es genügt doch:
Delphi-Quellcode:
if checkbox1.Checked then deletefile(edit1.text) ;
if checkbox2.checked then deletefile(edit2.text) ; |
Re: If Then Problem
Ja eben, deshalb hatte ich nach dem Sinn gefragt ;)
|
Re: If Then Problem
:wall: :wall: :wall: :wall: :wall:
sooo nahh und doch so fern (die programmierung eines einfachen Delphiprogramms mit einfachen Methoden) :wall: :wall: :wall: :wall: :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 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