Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Black screen! :?: (https://www.delphipraxis.net/1039-black-screen.html)

Chriss 10. Okt 2002 13:50


Black screen! :?:
 
hi @ all, brauch mal wieder eine kleine hilfestellung:

ich habe ein kleines fake prog. programmiert, eigentlich total billg, aber wenn eine gewisse anzahl von timern abgelaufen sind (immer andere funktionen) soll "angeblich" die festplatte formatiert sein! so um das realistischer zu machen, möchte ich, dass für 2-3 sekunen der bildschirm komplett schwarz ist, kein dospromt, keine maus, nichts und nach der bestimmten zeit soll ein neues form erscheinen! wie stell ich das an??

Chriss 10. Okt 2002 13:52

uuups hab doch tatsächlich was vergessen!!! bei ausführung des programmes soll eine datei an einem bestimmten ort erstellt werden und bei erscheinen das black-screen gelöscht sein, sie soll (möglichst, weiss nicht, ob das geht) im papierkorb liegen!

RomanK 10. Okt 2002 13:57

Aus dem EDH (www.delphi-treff.de):
Zitat:

Eine Datei in den Papierkorb löschen


Diese Procedure löscht die Datei 'C:\Test.dat' in den Papierkorb (Ergänzung von Peter Haas).
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  Operation : TSHFileOpStruct;
  FileName : String;
begin
  FileName := 'c:\test.dat'; { zu loeschende Datei }
  Filename := Filename + #0; { zweite 0 }
  with Operation do
    begin
      wnd := Form1.Handle;
      wFunc := FO_Delete;
      pFrom := PChar(FileName);
      pto := nil;
      { in den Papierkorb verschieben / keine
        Sicherheitsabfrage }
      fFlags := FOF_AllowUndo or FOF_NoConfirmation;
    end;
  SHFileOperation(Operation);
end;


Chriss 10. Okt 2002 14:24

also, damit hab ich ne menge fehler erhalten:

Undeclared Identifer: TSHFileOpStruct
Undeclared Identifer: wnd
Undeclared Identifer: wFunc
Undeclared Identifer: Pto
Undeclared Identifer: fFlags
Undeclared Identifer: ShFileOperation

RomanK 10. Okt 2002 14:47

Sorry :oops:
in die Uses muss noch Shellapi

Chriss 10. Okt 2002 14:53

thx a lot!!!
nun kann ich die datei löschen!! aber nur, wenn sie vorher von mir erstellt wurde, meine idee is ja, dass automatisch in das verzeichnis c:\windows\ die datei [c:\window\]wichtig!.txt erstellt wird, und nach beenden des programmes im papierkorb ist! dann mach ich ne kleine message von wegen 'Guck mal in den Papierkorb' oder so! der name is vorerst nicht so wichtig, kann man hinterher ja noch ändern!

Chriss 10. Okt 2002 14:55

ach ja, und die sache mit dem "black-screen"!! da hab ich schon probiert, wie ein verrückter, ich weiss, dass das eigentlich nach "grafik" oder so gehört, aber soll ich zu einem programm in verschiedene sparten schreiben`??? wäre nett, wenn mir damit irgendjemand helfen könnte!

Chriss

RomanK 10. Okt 2002 15:01

Schau dir mal assignfile, Rewrite, Writeln und Closefile an.
Oder TStringList.

zu Assignfile&Co
Code:
 var
deinfile: textfile;
begin
assignfile(deinfile,'c:\test.txt');
rewrite(deinfile);
writeLn(deinfile,'das ist die erste zeile');
writeLn(deinfile,'und das ist die zweite zeile');
closefile(deinfile);

Chriss 10. Okt 2002 15:04

oh, ja thx a lot!!
werde ich verwenden!

RomanK 10. Okt 2002 15:05

Dafür mach ichs :wink: :mrgreen:

Luckie 10. Okt 2002 15:18

Formular, maximiert, ohne Fenstertitel, Farbe schwarz.

Chriss 10. Okt 2002 15:29

son mist, wenn ich nur einen button drauf setze, funktioniert das aber in meinem prog. nicht. FEHLERMELDUNG:
"Access volation at Adress 00437D2B im module "timerprj.exe. Read of adress 00000180."

Was heisst das?

Daniel 10. Okt 2002 15:37

Hallo Chriss,

Dein Programm greift auf einen ungültigen Speicherbereich zu. Es könnte sich um ein nicht initialisiertes Objekt o.ä. handeln. Zeige uns doch einfach mal ein wenig von Deinem Code...

Chriss 10. Okt 2002 15:39

Zitat:

Zitat von Luckie
Formular, maximiert, ohne Fenstertitel, Farbe schwarz.

bei mir füllt er aber nicht das ganze fenster aus, dass muss doch zu machen sein!

Chriss 10. Okt 2002 15:59

ein bisschen? na ja, is wohl besser, wenn ich alles hinschreibe, oder?
also: from1:

Code:
unit timerunit_2;

interface

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

type
  Tleer = class(TForm)
    loeschen: TAnimate;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    ffile: TAnimate;
    folder: TAnimate;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Timer1: TTimer;
    Timer2: TTimer;
    Timer3: TTimer;
    Timer4: TTimer;
    Timer5: TTimer;
    ProgressBar1: TProgressBar;
    Timer6: TTimer;
    Timer7: TTimer;
    Timer8: TTimer;
    Timer9: TTimer;
    Timer10: TTimer;
    Label8: TLabel;
    Timer11: TTimer;
    Button1: TButton;
    Label9: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure Timer4Timer(Sender: TObject);
    procedure Timer5Timer(Sender: TObject);
    procedure Timer6Timer(Sender: TObject);
    procedure Timer7Timer(Sender: TObject);
    procedure Timer8Timer(Sender: TObject);
    procedure Timer9Timer(Sender: TObject);
    procedure Timer10Timer(Sender: TObject);
    procedure Timer11Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  leer: Tleer;

implementation

uses timerunit, timerunit_3;

{$R *.dfm}

procedure Tleer.Timer1Timer(Sender: TObject);
begin

leer.Height:=244;
folder.Visible:=true;
label5.visible:=true;

end;

procedure Tleer.Timer2Timer(Sender: TObject);
begin

folder.Visible:=false;
label5.visible:=false;
ffile.Visible:=true;
label6.Visible:=true;

end;

procedure Tleer.Timer3Timer(Sender: TObject);
begin

timer1.Enabled:=true;

end;

procedure Tleer.Timer4Timer(Sender: TObject);
begin

timer2.Enabled:=true;
timer1.Enabled:=false;
timer3.Enabled:=false;

end;

procedure Tleer.Timer5Timer(Sender: TObject);
begin

leer.Height:=335;
timer2.Enabled:=false;
timer4.Enabled:=false;
label7.Visible:=true;
ffile.Visible:=false;
label6.Visible:=false;
loeschen.Visible:=true;
progressbar1.Visible:=true;
progressbar1.stepit;
timer6.enabled:=true;
timer7.enabled:=true;
timer8.enabled:=true;
timer9.enabled:=true;

end;

procedure Tleer.Timer6Timer(Sender: TObject);
begin

progressbar1.StepIt;

end;

procedure Tleer.Timer7Timer(Sender: TObject);
begin
progressbar1.StepIt;
end;

procedure Tleer.Timer8Timer(Sender: TObject);
begin
progressbar1.StepIt;
end;

procedure Tleer.Timer9Timer(Sender: TObject);
begin

progressbar1.StepIt;

end;

procedure Tleer.Timer10Timer(Sender: TObject);
begin

leer.height:=140;
loeschen.Visible:=false;
progressbar1.Visible:=false;
timer6.enabled:=false;
timer7.enabled:=false;
timer8.enabled:=false;
timer9.enabled:=false;
label7.Visible:=false;
label3.Visible:=false;
label4.Visible:=false;
label1.Visible:=false;
label2.visible:=false;
label8.Visible:=true;

end;

procedure Tleer.Timer11Timer(Sender: TObject);
begin

form2.show;
leer.Hide;

end;



procedure Tleer.Button1Click(Sender: TObject);
var
  Operation : TSHFileOpStruct;
  FileName : String;
begin
FileName := 'c:\windows\test.dat'; { zu loeschende Datei }
  Filename := Filename + #0; { zweite 0 } 
  with Operation do
    begin
      wnd := Form1.Handle;
      wFunc := FO_Delete;
      pFrom := PChar(FileName);
      pto := nil;
      { in den Papierkorb verschieben / keine
        Sicherheitsabfrage } 
      fFlags := FOF_AllowUndo or FOF_NoConfirmation;
    end;
  SHFileOperation(Operation);
end;

end.
form2:

Code:
unit timerunit_3;

interface

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

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses timerunit_2;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin

showmessage ('SCHERZPROGRAMM!!!!!!!!!!!!!!!' +chr(13)+ 'Mit freundlicher Unterstützung von' +chr(13));
showmessage ('Die Datei "Wichtig!.txt" ist KEIN Bestandteil von Windows' +chr(13)+ 'Bitte einfach löschen!!!' +chr(13)+ 'Sie wird für nichts ausser DIESEM Programm verwendet');
leer.show;
close;
leer.close;

end;

end.
so, vielleicht könnt ihr mir ja helfen, um das prog. doch laufen zu lassen, habe ich erstmal den button (eigentlich wollte ich das mit dem letzten timer steuern) disabled, jetzt läufts wieder!

Daniel 10. Okt 2002 16:14

Hallo Chriss,

tu' einem alten, ergrauten Admin einen Gefallen: Streiche bitte den Domain-Namen aus der Messagebox. :wink:

Chriss 10. Okt 2002 16:33

is schon passiert!! hat einer schon den blöden fehler gefunden, oder liegst einfach an mir?!?!?!?!? ich meine, tppfehler sollen schon mal vorkommen :coder:

RomanK 10. Okt 2002 16:34

Also Vollscreen machst du mit:
Code:
SetWindowPos(Handle, HWND_TOPMOST,0, 0, screen.Width,screen.Height, 0);
allerdings ist ICQ bei mir "stärker" :evil:

MathiasSimmack 10. Okt 2002 17:35

Sehe ich das richtig? All die vielen Timer um einen Progressbar zu bewegen? Ja, das ist wirklich ein Scherz-Programm. :twisted: Ein Timer würde es auch tun, bzw. wenn es eine zufällige Zeit sein darf: der eingebaute Zufallsgenerator von Delphi, dazu eine for-Schleife und das SLEEP-Kommando.

Und dies hier:
Zitat:

'Sie wird für nichts ausser DIESEM Programm verwendet'
könnte evtl. dafür sorgen, dass man sich über dich lustig macht. :wink: Ein Scherzprogramm in allen Ehren, aber dann darfst du selbst auch keine Angriffspunkte bieten. Ein simpler deutscher Satz wäre:
Zitat:

Sie wird nur in DIESEM Programm verwendet
:roll:

So, mein Bösartigkeitslevel habe ich für heute erreicht.
Jetzt kann ich wieder lieb werden ... :angle:

Chriss 10. Okt 2002 19:03

jaja, ausgerechnet ich mit rechtschreibfehler und satzfehlern, ich der die letzte deutscharbeit 1 hat, sorry, war wohl'n ausrutscher, und zu den timern: HALLO:::: ich bin newby!! kenn das nur aus der schule, die hälfte hab ich mir selbst beigebracht!!

MathiasSimmack 10. Okt 2002 19:20

Zitat:

Zitat von Chriss
jaja, ausgerechnet ich mit rechtschreibfehler und satzfehlern, ich der die letzte deutscharbeit 1 hat, sorry, war wohl'n ausrutscher

:mrgreen:

Zitat:

ich bin newby!!
Da mache ich keinen Unterschied. Die Anzahl deiner Beiträge sagt ja nichts über deine Kenntnisse aus. :)

Zitat:

die hälfte hab ich mir selbst beigebracht!!
Die andere Hälfte kannst du ja hier lernen. Fang gleich mit der Timer-Sache an! :D


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