Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe für Ordnerschutzprogramm (https://www.delphipraxis.net/23354-hilfe-fuer-ordnerschutzprogramm.html)

sui 1. Jun 2004 22:34


Hilfe für Ordnerschutzprogramm
 
Hi,

ich bin so ziemlicher Delphi-Anfänger. Aus den Büchern
lernt man irgendwie nicht wirklich was. Deshalb dachte
ich mir, ich könnt mir als Übung ein kleines Progg erstellen,
welches aus 2 Knöpfen (Verstecken/Anzeigen) und der Ordnerangabe
besteht und wie gesagt, Ordner auf Knopfdruck unsichtbar macht.

Soll nix grosses mit Liste sein. Müsst ich mir selber merken, da
ich eh nur 2-3 Ordner verstecken möchte am Anfang.

Wär sowas schwer für einen Anfänger umzusetzen?

Hat jemand gute Tips? :dancer:

S2B 1. Jun 2004 22:39

Re: Hilfe für Ordnerschutzprogramm
 
Schau mal hier! :zwinker:

sui 1. Jun 2004 22:50

Re: Hilfe für Ordnerschutzprogramm
 
Hab es jetzt so abgeändert, das ich zumindest schon
mal einen Ordner oder eine Datei, welche im code vorgegeben
ist einmalig in ein Attribut setzen.
Wie kann ich denn wenigstens eine Datei oder einen Ordner
anwählen? Versteh das nicht! :wall:

alcaeus 2. Jun 2004 03:05

Re: Hilfe für Ordnerschutzprogramm
 
Um eine Datei auswählen zu können, kannst du OpenDialog verwenden. Die Hilfe müsste dir genug dazu sagen.
Wenn du hingegen einen Ordner auswählen willst, dann sieh dir mal diese zwei Möglichkeiten an: Ordner auswählen

Greetz
alcaeus

sui 2. Jun 2004 13:10

Re: Hilfe für Ordnerschutzprogramm
 
Hierbei wird doch der ausgewählte Ordner in der Variable Pfad als String gespeichert, oder?

Delphi-Quellcode:
uses FileCtrl;

...
procedure TForm1.Button1Click(Sender: TObject);
var Pfad: string;
begin
  SelectDirectory('Ordner auswählen', '' ,Pfad);
end;
Den Code hier hab ich jetzt benutzt zum Attribute ändern.
Geh ich richtig in der Annahme, das ich jetzt dort wo der Pfad steht die Varialbe mit
dem Ordner einlesen muss?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if SetFileAttributes('C:\Dokumente und Einstellungen\sui\Desktop\Homepage',
                       FILE_ATTRIBUTE_NORMAL) then
    Showmessage('Attribut wurde geändert')
  else
    Showmessage('Attribut wurde nicht geändert');

end;
Kann mir nebenbei auch noch jemand erklären wie ich dieses Prob mittels der Delphi-Hilfe lösen kann?
Wo ich da gucken muss und so?

alcaeus 2. Jun 2004 13:45

Re: Hilfe für Ordnerschutzprogramm
 
Also, es gibt hier auf dem Forum die [ delphi]-Tags, dadurch kann man Code leichter lesen. Nur damit du das mal kennst.
Zweitens, in der hilfe nimmst du die suche und suchst nach ordner, auswählen etc. dasselbe kannst du evtl. hier auf dem forum machen, dann bekommst du vielleicht schon 2-3 konkrete befehle.
Achja, und die Code-Lib gibts hier ja auch noch, da findet man so ziemlich alles.
Bezüglich deinem Problem, der Pfad des ausgewählten Ordners wird in der Pfad-Variable gespeichert. Das Ganze könnte dann so aussehen:
Delphi-Quellcode:
var Pfad: string;
begin
  SelectDirectory('Ordner auswählen', '' ,Pfad);
  if SetFileAttributes(Pfad, FILE_ATTRIBUTE_NORMAL) then
    Showmessage('Attribut wurde geändert')
  else
    Showmessage('Attribut wurde nicht geändert');
end;
Den Code habe ich nicht getestet, aber er müsste laufen...

Greetz
alcaeus

sakura 2. Jun 2004 13:50

Re: Hilfe für Ordnerschutzprogramm
 
@sui: Nutze doch bitte die [delphi]-Tags um Code darzustellen ;)

...:cat:...

sui 2. Jun 2004 17:18

Re: Hilfe für Ordnerschutzprogramm
 
Mal ne Zwischenfrage:

Ich hab hier noch die alte Turbo Pascal 6 von Borland, das mit
den 5 Büchern da.
Weil ja Delphi das neue TurboPascal, (wenn auch verändert) ist,
kann ich mit den Büchern nicht auch was anfangen?
Da sind die Grundfunktionen wie Variablen, Schleifen und so schön erklärt. :-D
Bringt mir das für
den Anfang was?

Gruss

alcaeus 2. Jun 2004 18:21

Re: Hilfe für Ordnerschutzprogramm
 
In einem bestimmten Maße ja, dir wird aber die Object Pascal Referenz fehlen, die gabs bei TP6 glaubich noch nicht...
Ansonsten ist für den Anfang Pascal immer zu empfehlen

Greetz
alcaeus

sui 2. Jun 2004 22:30

Re: Hilfe für Ordnerschutzprogramm
 
Ok, ich schon wieder...

Habs jetzt soweit gebracht: :oops:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var Pfad: string;

begin

 SelectDirectory ('Ordner auswählen', '', Pfad);
 SetFileAttributes ('Pfad', FILE_ATTRIBUTE_SYSTEM and FILE_ATTRIBUTE_HIDDEN)

end;
In den uses ist noch die FileCtrl eingebunden.

Klappt aber nur soweit das ich einen Ordner auswählen kann. Jetzt bin ich mit
meinem spärlichen Latein am Ende. :wall:

Was ist dort falsch??

phXql 2. Jun 2004 22:36

Re: Hilfe für Ordnerschutzprogramm
 
das muss

Delphi-Quellcode:
SetFileAttributes (Pfad, FILE_ATTRIBUTE_SYSTEM and FILE_ATTRIBUTE_HIDDEN)
heissen, denn wenn du um die Variable Pfad die ' drummachst, wird das als hart-kodierter string angesehen...

sui 2. Jun 2004 22:42

Re: Hilfe für Ordnerschutzprogramm
 
Das hatte ich schon probiert, dann bleibt der
Compiler hängen mit:

Inkompatible Typen: 'String' und 'PAnsiChar'
Verwendete Unit 'Unit1.pas' kann nicht kompiliert werden

und der Coursor steht dann rot an der Stelle hinter dem Koma
bei SetFileAttributes (Pfad,

Christian Seehase 2. Jun 2004 23:22

Re: Hilfe für Ordnerschutzprogramm
 
Moin Sui,

probier's mal mit der Suche Hier im Forum suchenSetFileAttributes
Was dabei rauskommt müsste Dir eigentlich helfen. ;-)

sui 2. Jun 2004 23:31

Re: Hilfe für Ordnerschutzprogramm
 
Sorry aber ich finds nicht. Mit der Suche hab ich doch
schon grösstenteils rausgefunden was ich jetzt da stehen
hab. Und aus dem EasyDelphiHelper...
Ich weiss echt nicht mehr weiter.

Gebt mir wenigstens nen Wink mit dem Zaunpfahl, wo der
Fehler ist oder obs grundlegend falsch ist was da steht!

Christian Seehase 2. Jun 2004 23:45

Re: Hilfe für Ordnerschutzprogramm
 
Moin Sui,

Du wirst in den Beiträgen (und noch vielen anderen) unweigerlich auf PChar treffen.
API Funktionen kennen nichts von Pascal Strings, und deshalb lässt der Compiler String (auch ein Pointer wie PChar) diesen Typ an der Stelle nicht zu. Hier muss man ihm mit einem Typecast auf die Sprünge helfen:

Delphi-Quellcode:
PChar(Pfad)
wäre in diesem Falle die Lösung.

sui 3. Jun 2004 00:49

Re: Hilfe für Ordnerschutzprogramm
 
Ich find einfach nix passendes.
Schon ne menge, aber ich weiss nicht wie ichs
übernehmen soll.

Der String muss jetzt in pchar umgewandelt werden.

Ich finds einfach nicht, wie ich es einsetzen muss.

sui

sui 3. Jun 2004 14:13

Re: Hilfe für Ordnerschutzprogramm
 
So sieht mein Code gerade aus:

Delphi-Quellcode:
[pre]procedure TForm1.Button1Click(Sender: TObject);


var
    Pfad : string ;


begin



 if SelectDirectory ('Verzeichniss wählen', '', Pfad)

 then label1.caption :=Pfad;

 if SetFileAttributes ('Pfad', FILE_ATTRIBUTE_SYSTEM or FILE_ATTRIBUTE_HIDDEN)


then

showmessage ('Datei versteckt')

else

showmessage ('Nix wurde geändert');

end;[/pre]

Kann mir das nicht bitte einfach jemand sagen wie ichs machen muss? Den String in PChar umwandeln?

Steve 3. Jun 2004 14:33

Re: Hilfe für Ordnerschutzprogramm
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Pfad : string;
begin
  SelectDirectory ('Verzeichniss wählen', '', Pfad);
  if SetFileAttributes (PChar(Pfad), FILE_ATTRIBUTE_SYSTEM or FILE_ATTRIBUTE_HIDDEN)
    then showmessage ('Datei versteckt')
    else showmessage ('Nix wurde geändert');
end;

sui 3. Jun 2004 14:51

Re: Hilfe für Ordnerschutzprogramm
 
Hey danke, super, klappt wunderbar. :bounce2: :bounce2:

Jetzt kann ich endlich mal weitermachen :dancer:

Christian Seehase 3. Jun 2004 18:28

Re: Hilfe für Ordnerschutzprogramm
 
Moin Sui,

Zitat:

Zitat von Christian Seehase
Hier muss man ihm mit einem Typecast auf die Sprünge helfen:
Delphi-Quellcode:
PChar(Pfad)
wäre in diesem Falle die Lösung.

Zitat:

Zitat von sui
Kann mir das nicht bitte einfach jemand sagen wie ichs machen muss? Den String in PChar umwandeln?

:gruebel:

sui 7. Jun 2004 20:23

Re: Hilfe für Ordnerschutzprogramm
 
Zitat:

Zitat von Christian Seehase
Moin Sui,

Zitat:

Zitat von Christian Seehase
Hier muss man ihm mit einem Typecast auf die Sprünge helfen:
Delphi-Quellcode:
PChar(Pfad)
wäre in diesem Falle die Lösung.

Zitat:

Zitat von sui
Kann mir das nicht bitte einfach jemand sagen wie ichs machen muss? Den String in PChar umwandeln?

:gruebel:

Tja, fürn blutigen Anfänger kann das schon zum Problem werden. :nerd:


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