azok: delphi: Tsave, aber wie und wo?

hi!

ich hab mal wieder eine delphi frage...
kommen wir gleich zum punkt:
also, ich als delphi einsteiger habe mir gedacht, dass man delphi am besten erlernen kann, wenn man selber was zum programmieren beginng. da habe ich mir die aufgabe gemacht, einen kleinen editor zu programmieren. (so wie der windows-editor).

ein problem wäre:
wie schaffe ich es mit Tsave den speichern unter dialog beim klicken auf speichern unter aufzurufen, damit ich den inhalt von einem Tmemo feld speichern kann? bzw. dasselbe mit einem hot key dazu...

und das andere problem (ein graphisches):
wenn ich vor einem eintrag im menü ein bmp einfüge, dann rückt die schrift logischerweise etwas weiter nach rechts. nun stört das aber irgendwie den "menüverlauf". wie kann man es also fertig bringen, vor dem menü eine senkrechte leiste (wie bei ms) word zu machen, dass alle einträge gleich weit untereinander stehen bzw. für das bild so eine art hover bild, wo beim darüberfahren ein schatten darum angezeigt wird.

und eines noch... wie bringt man ein Tmemo feld, auf die größe des ganzen bildschirms? (bei allen auflösungen?) bzw. wie kann man eine senkrechte scrollleiste machen?

so, das wärs aber vorerst
lg
euer freak (=azok)

  1. hi!

    Was ich noch so weiß....

    Einen HotKey bekommst du indem du dem Buchstaben ein ampersand vornedran stellst

    &Datei -> das D ist unterstrichen un der Hotkey ist [Alt]+[D]

    und eines noch... wie bringt man ein Tmemo feld, auf die größe des ganzen bildschirms? (bei allen auflösungen?) bzw. wie kann man eine senkrechte scrollleiste machen?

    Die senkrechte Scrolleiste ist eine Eigenschaft des Objekts. Ist die gesetzt, wird es eine Scrollleiste geben, sofern der Client mit ausreichend Text gefüllt ist.

    Die Größe ist ebenfalls eine property...

    ....  guck mal in die Hilfe von Delphi - die ist sehr ausführlich.

    Gruss, Rolf

    --
    50 Millionen Deutsche können nicht richtig HTML!
    1. hi!

      hab leider nur delphi auf englisch... naja, hab vorher vergessen zum dazu schreiben: wo muss ich das Tsave dazu schreiben, um den gewünschten dialog durch klicken öffnen zu können? - in eine neue unit ja, aber wie?

      lg
      freak (=azok)

      1. Hi

        wo muss ich das Tsave dazu schreiben, um den gewünschten dialog durch klicken öffnen zu können? - in eine neue unit ja, aber wie?

        Wozu 'ne neue Unit? Den TSaveDialog einfach auf der entsprechenden TForm plazieren, einen Button drauf und dessen OnClick Event folgenden Code zuweisen:

        procedure TForm1.SpeedButton1Click(Sender: TObject);
        begin
          if SaveDialog1.Execute then
            // deinen Code hier ...
        end;

        Ciao

        Uwe
        Portland, OR

  2. Hallo,

    ich hab mal wieder eine delphi frage...

    Welche Version?

    wie schaffe ich es mit Tsave den speichern unter dialog ...

    Du meinst TSaveDialog, oder?
    Damit kann man eigentlich nur dem Benutzer die gewohnte Umgebung anbieten um einen Dateinamen auszuwählen. Was damit dann genau passiert, muss das Programm (genauer gesagt Du als Programmierer) selbst wissen. Der einfachst Fall könnte z.B. sien, die Datei anzulegen und den Inhalt des Memofeldes reinzuspeichern.

    ... beim klicken auf speichern unter aufzurufen, damit ich den inhalt von einem Tmemo feld speichern kann? bzw. dasselbe mit einem hot key dazu...

    Ab Delphi 5 (wenn ich mich nicht irre), gibt es die Komponente TActionList. Darin kann man versichieden Aktionen, die in dem Programm vorkommmen, verwalten (auch mit Icons und Shortcuts usw.). Die Aktionen können dann mit Menüs oder Toolbars usw. verknüpft werden.
    Was genau in der Aktion passiert, bleibt dem Programmierer überlassen. Bei 'Speichern unter' könnte dann der Save As Dialog angezeigt werden, und bei erfolgtem OK-Klick die Datei geschrieben wedren (s.o.).

    und eines noch... wie bringt man ein Tmemo feld, auf die größe des ganzen bildschirms? (bei allen auflösungen?) bzw. wie kann man eine senkrechte scrollleiste machen?

    Scrollleisten werden über die Objekteigenschaft Scrollbars eingestellt, wenn die Größe des Memofeld mit der Fenstergröße  automatisch verändert werden soll, so bietet sich ein Blick auf die Eigenschaft Align bzw. Anchor an.

    Grüße
      Klaus

    1. hi!

      Welche Version?

      7 enterprise

      ja, also ich meine es so: (bin delphi programmier anfänger)
      wenn man auf datei und dann auf speichern unter klickt, dass dann der TsaveDialog aufgeht, und man dateinamen bzw. dateiart einstellen kann, und wenn man das getan hat, der inhalt des Tmemo in die eingegebene datei geschrieben wird.

      procedure TNeutron.speichernuClick(Sender: TObject);
      begin
      //was da hinein gehört weiß ich nicht
      end;

      lg
      freak (=azok)

      1. Hallo,

        ja, also ich meine es so: (bin delphi programmier anfänger)

        Was Dich nicht daran hindern sollte, es zu lernen, wie man damit umgeht. Dazu gibt es mehrere zielführende Strategien. Eine davon ist, sich ein Buch zu kaufen, in dem alles erklärt wird.

        wenn man auf datei und dann auf speichern unter klickt, dass dann der TsaveDialog aufgeht, und man dateinamen bzw. dateiart einstellen kann, und wenn man das getan hat, der inhalt des Tmemo in die eingegebene datei geschrieben wird.

        Plazieren die Komponente auf deinem Form-Fenster, so wie Du es auch mit anderen Komponenten mahcst. Danach kannst Du im Property-Window die Eigenschaften einstellen, so wie Du es auch mit den anderen Komponenten machst.
        Wenn Du nicht weisst, wo die Komponent in der Komponenten-Leiste zu finden ist, dann suche dort mal unter Dialogs.

        procedure TNeutron.speichernuClick(Sender: TObject);
        begin
        //was da hinein gehört weiß ich nicht

        if SaveDialog1.Execute then
          Memo1.Lines.SaveToFile(SaveDialog1.FileName);
        // entnommen aus der Online-Hilfe

        end;

        Grüße
          Klaus

        1. hi!

          Was Dich nicht daran hindern sollte, es zu lernen, wie man damit umgeht. Dazu gibt es mehrere zielführende Strategien. Eine davon ist, sich ein Buch zu kaufen, in dem alles erklärt wird.

          ...und die andere(n)? *gg*
          im ernst: welches buch würdest du mir empfehlen?

          lg
          freak (=azok)

          1. Hallo,

            im ernst: welches buch würdest du mir empfehlen?

            Gute Frage. Da ich mit Delphi[1] als Quereinsteiger zu tun hatte/habe, also vorher schon mit anderen Sprachen zu tun hatte, war der Einstieg nicht so schwer und die Online-Hilfe bzw. die Handbücher als Nachschlagwerke bis jetzt zumindest ausreichend. Daneben lerne ich viel durch Studium von bestehendem Code, den ich analysiere und versuche, die guten Ansätze herauszubekommen, ohne die schlechten zu übernehmen. Wichtig ist mir u.a. auch, dass ich die grundlegenden Konzepte einer Sprache verstehen lerne, wenn ich sie denn schon einsetze/einsetzen muß.

            Daher fällt es mir schwer, ein gutes Buch zu empfehlen. Vielleicht solltest Du Dir einfach einmal einen Nachmittag Zeit nehmen und in einen gut sortierten Fachbuchladen oder eine Bibliothek in der Nähe, wo auch IT-Literatur zu finden ist, zu fahren um in deren Sammlung etwas zu schmökern. Dann wird es sicherlich leichter sein, eine gute Wahl zu treffen.

            BTW: Borland hat Delphi auhc eine Reihe von Beispielen beigelegt (Path_To_Delphi\Demos). Da gibt es auch eines, das Richedit heisst. Das könntest Du analysieren und auch Schritt für Schritt nachbauen. Viele der dort implementierten Dinge geben Dir einen guten Überblick, wie so etwas zu lösen ist. Allerdings solltest Du nicht blind kopieren, sondern jeden der Schritte überlegen und verstehen lernen, sonst bringst gar nichts.

            Grüße und viel Spaß noch
              Klaus

            [1] wobei ich Delphi hier eher exemplarisch sehe, bei anderen Sprachen bzw. Programmierumgebungen habe ich im Prinzip die gleiche HErangehensweise.

            1. hi!

              wenn man es so sieht bin ich auch quereinsteiger. - ich kenne mich (ziemlich) gut mit c++ aus, wollte aber programme mit graphischer benutzeroberfläche schreiben. (weiß nicht, wie das unter c++ gehen soll bzw. mit openGL)

              naja
              lg
              freak (=azok)