5 Anfänger Fragen zu Delphi

  • geschlossen
  • Delphi

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 5 Anfänger Fragen zu Delphi

    Hi,

    ich programmiere noch nich lange und auch nich wirklich viel in delphi habe da so ein paar anfänger fragen.

    1. Wie kann ich die Anzahl der objekte in einem ordner auslesen?

    Möchte nämlich schauen ob ein archiv fertig entpackt ist oder nicht, also habe ich die idee das einfach über die anzahl der objekte zumachen.

    2. So dann arbeite ich ja mit mehreren Formen die nach einander jenachdem auf sichtbar und unsichtbar gesetzt werden d.h. es ist immer nur eine From zu sehen.

    Nun habe ich aber das Probelem, dass wenn meine Anwendung (wenn nicht die Hauptform sichtbar ist) einfach abstürtz wenn das X oben rechts also das windows Schließen zeichen geklickt wird.
    Wie bekomme ich das hin, dass die Hauptform, dann auch richtig beendet wird ?


    3. Kann man und wenn ja wie auf den aktellen Entpackungs-Status von winrar über cmd mithilfe einer batch datei gestartet zugreifen?
    Würde gerne in meinem Programm ausgeben wie weit der Fortschritt des Entpackens ist.


    4. Wie kann ich eine Form dazu zwingen das sie im Vordergrund steht ?
    Habe nämlich das Problem, dass wenn ich eine Form auf "enabled:=false" setze und danach wieder auf "true", dass dann die Form nicht mehr im Vordergrund steht und inaktiv ist ( das fenster ist dann wie immer in windows leicht grau und muss dann zu erst einmal angeklickt werden damit man interagieren kann)

    5. (abgehakt)
    So dann hätte ich ganz gerne in meiner anwendungen auch die schönen Runden Windows klickelement z.B. Buttons aber ich weis nich wie man die anwendung in XP look bekommt habe irgend etwas im internet gelesen, dass da nur bis delphi 6 ginge glaube aber nich, dass das stimmt.

    So glaube das sind die gröbsten fragen die ich habe, habe schon sehr viel gegoogelt aber kenne entweder nich die richtigen begriffe oder es steht nix darüber drinn ( was eher unwahrscheinlich ist).

    Achja arbeite mir Delphi 7.

    Und kann mir irgendjemand ein gutes E-Book empfehlen zu delphi ?


    Vielen Dank schon mal im voraus



    Mit freundlichem gruß

    Chris 2603
  • Hallo!

    1. ist nicht ganz so einfach für einen Anfänger,
    hier Steht auf jeden Fall, wies geht: Rekursiv nach Dateien suchen - Delphi-Source - Der Delphi-Treff
    über List.Count kannst du am ende ermitteln, wieviele Dateien sich in einem Ordner befinden, ich bezweifle aber die Zweckmäßigkeit dieser Methodik...

    2.
    Ein bischchen Quelltext von den riskanten Stellen wär hier hilfreich.

    3.
    Ist mir nicht bekannt, das sowas möglich wäre.

    4.
    form.FormStyle := fsStayOnTop; bzw form.FormStyle := fsNormal;
    ODER: form.SetFocus; und form.BringToFront;
    (weiß nicht, was du GENAU bezwecken willst.)

    5.
    die unit XPman einbinden (ka, ob es die schon zu D7-Zeiten gab)

    E-Books kenn ich keine, ich hab mit nem buch "Turbo Pascal und Delphi für Kids" ( :D ) angefangen, und sonst foren, tutorials, howtos, etc!

    Zu 3. an andere "Delphianer": Theoretisch könnte man doch das Handle der Progressbar ermitteln, und dann mit der Win32Api den Fortschritt erhalten? wär ja mal ganz interessant...

    cu...
  • Erstmal danke für die super Antworten.

    XPMan hat gut funktioniert also 5. schon mal abgehakt

    @smile

    1. Objekte in einem Ordner zählen hab ich nur mal kurzüberflogen sieht aber alles echt komplex aus.
    Ich bräucht einfach eine funktion, die die eigenschaften eines orders ausgeben kann und die ich dann halt noch so definieren kann, dass ich sagen kann nenne die anzahl der Objekte im Ordner "Q:\neuer_ordner"

    2.

    Ähm ich weis nich wie ich dir dazu Quelltext geben kann das Problem ist ja das die Hauptform im hintergrund als "visible:=false;" weiter läuft obwohl die einzige sichtbare Form schon von hand geschlossen wurde.

    gibte es ne möglichkeit, dass man eine if abfrage einbinden kann z.B.
    "If Form3=close then form1:=close;"
    oder "if Form3=close then form1.visible:=true;" ?

    4.
    ich möchte sozusagen eine Form vor die andere legen wobei die andere dann auf "enabled:=false;" gesetzt ist und sobalt ich die Form im Vordergrund wider schließe und somit die Form im hintergrund wider auf "enabled:=true;" setze habe ich das problem, dass diese dann noch im hintergrund steht und nich automatisch in den Vordergrund springt.
  • zu 1. tja ganz so einfach wirds wohl nicht sein, aber du könntest dir ja einmal die mühe machen und dir eine Klasse schreiben die genau diese Funktionnalität bringt :)

    zu 2. da ich schon lange nichts mehr mit Delphi gemacht habe, aber eigentlich sollte es so sein, wenn richtig gemacht, das sich alle unterfenster automatisch selbst schliessen, wenn das Hauptfenster geschlossen wird.
    Hast du irgend einen Bockmist gebaut und das tuts nicht, kannst du es ja mit einer Behandlungsroutine für das Event Formclosed selbst manuelle steuern.

    zu 4. musst du das bereits erwähnte
    form.SetFocus; und form.BringToFront;
    benutzen.
  • 1. Lass dir mal die Eigenschaften eines großen Ordners anzeigen, da steht auch nicht sofort, wieviele Dateien das gibt, sondern Windows zählt! (bzw. sucht nach allen Dateien in diesem Ordner! So eine Funktion musst du dir schon selber schreiben, die dir die Anzahl ausgeben kann... Basis dafür könnte der Link von mir sein.

    2.
    Im Ereignis des Formulars OnFormClose kannst du das Hauptformular wieder anzeigen lassen.
    Pseudocode: Wenn alle Formulare nicht sichtbar sind, dann formular 1 sichtbar machen.