Announcement

Collapse
No announcement yet.

Uhm, Fragenkatalog - sorry

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Uhm, Fragenkatalog - sorry

    <pre>
    Da denkt man, man ist fast fertig und dann türmen sich mit jedem gelösten Problem 2 neue auf )

    Gibt es eine Möglichkeit, in der MainMenu Zeile ganz rechts die Uhrzeit einzublenden ?
    Bei mir steht da nur Datei und Hilfe drin, irgendwie ist das verschwendeter Platz )
    Es als Menueintrag anzulegen sieht blöd aus, da die erste Zahl unterstrichen wird.

    Ich würde gerne in der Programm-Info meine Emailadresse, die in einem Label steht,
    über onClick automatisch das Standard Mail-Programm starten lassen (mailto,
    wie mache ich das am besten ?
    In der Registry stehen unter mailto mehrere dll, da werde ich nicht schlau draus.

    Mit welchem Ereignis kann ich eine Prozedur an den Minimize Button im Rahmen hängen ?
    Ich habe einen Menupunkt, der das Programm in die TNBA verkleinert und den
    Button in der Taskleiste versteckt, wird das Programm über das Icon wieder
    aufgerufen, erscheint auch der Button wieder.
    Bis jetzt mußte ich den Minimize Button disablen, da er den Taskleisten-Button
    natürlich nicht versteckt, aber irgendwie ist der Umweg über das Menu zu lang.

    Und dann habe ich noch 2 Fragen zu meiner Paradox Tabelle.
    Ich habe an das DBGrid ein PopupMenu gehängt, das an der aktuellen Position
    den kompletten Datensatz (Date und Name) löschen, einen neuen, leeren
    einfügen und nach Name alphabetisch sortieren soll.

    Löschen habe ich rausbekommen -> Table1.delete )

    Aber ADD als Befehl gibt es nicht, weiß nicht genau wo ich suchen soll.
    Und bei dem sortieren wäre ich schon über einen Ansatz dankbar )

    Habe hier schon kreuz und quer gesucht, aber nichts richtiges gefunden.

    Ich sage schonmal Danke, auch im Namen meiner Verwandten,
    das wird nämlich ein Geburtstagserinnerer )

    Thorsten
    </pre>

  • #2
    Hallo,

    na, dann wollen wir mal...

    <ul>
    Zum Anzeigen der Uhrzeit als Menüpunkt legst du einfach einen Menüpunkt z.B. namens mnuUhrzeit an. In einem Timer schreibst du dann:
    <pre>
    mnuUhrzeit.caption := formatDateTime('hh.mm.ss',now);
    </pre>
    E-Mail: <pre>ShellExecute(NULL,"open","mailto:[email protected] m?subject=1234&body=hier ist der text",NULL,NULL,SW_SHOWNORMAL);</pre>
    Zum Abfangen des Minimize-Events gibt es TApplicationEvents und dort das Event OnMinimize. Da schreibst du's rein.

    Die Datensätze in einer Tabelle werden nach dem eingestellten Index sortiert. Du kannst z.B. in der Datenbankoberfläche deine Tabelle umstrukturieren und einen Sekundärindex auf NAME legen. Wenn du nun in der TTable-Komponenten die Eigenschaft INDEXNAME auf diesen Index setzt, wird immer und automatisch nach dem Namen sortiert.

    Einen neuen Datensatz kannst du dann mit TAdressen.append oder TAdressen.insert einfügen. Ist wurscht, weil er eh nach dem Index automatisch sortiert wird.

    Gruß Ul

    Comment


    • #3
      mnuUhr.caption := formatDateTime('hh:mm:ss',now);

      Genauso hatte ich es gemacht, gab aber 2 Probleme.<br>
      Erstens stand dann da zB <u>0</u>1:10:04, was etwas komisch aussieht und zum anklicken verleitet.<br>
      Und 2. war es nicht rechtsbünding in der Zeile, ich mußte also noch einen leeren Menueintrag davor hängen, <br>mit lauter Leerzeichen in der Caption<br>
      Wie füllt man eigentlich einen String mit zB 20 Leerzeichen ?<br>
      Habe gestern bestimmt über eine Stunde versucht die Hilfe zu Format zu verstehen.

      Bei der Email funktionierte erst diese Version bei mir:
      <PRE>
      uses ....,ShellApi;

      procedure TAbout.lblEmailClick(Sender: TObject);
      var Mailto: String;
      begin
      Mailto := 'mailto:[email protected]?subject=1234&body=hier ist der text';
      ShellExecute(1,'open',PChar(Mailto),nil,nil,SW_SHO WNORMAL);
      end;
      </PRE>
      Mußte erstmal ewig lange rumprobieren )

      Das mit dem Sekundär-Index klappt irgendwie nicht.
      Wenn ich der Table den IndexName fest zuweise, <br>bekomme ich haufenweise Fehler.<br>
      Dürfte daran liegen, das ich, da das Programm ständig im Hintergrund mitläuft,<br>
      die Datenbank nur zum überprüfen des Datums und bei dem Aufruf Daten ändern, aktiviere.<br>
      Spätestens beim eingeben eines neuen Datensatzes im DBGrid stürzt es mit der Meldung
      "Index ist schreibgeschützt" ab.

      Ich habe dann versucht beim Aufruf Daten sortieren mit
      <PRE>
      Table1.Close;
      Table1.IndexName := 'SIName';
      Table1.Open;
      </PRE>

      den Index erst zuzuweisen, (Mit der Idee, sortieren, sortierte Tabelle abspeichern, Index mit Table1.IndexName := ''; wieder aufheben) das klappt genau einmal.

      Beim 2. Versuch SIName als Index zuzuweisen bekomme ich die Fehlermeldung : Index nicht mehr gültig.

      Beim nachsehen in der Datenbankoberfläche war dem Index irgendwie kein Feld mehr zugewiesen.

      OnMinimize und Table1.Insert hat einwandfrei geklappt, danke

      Comment


      • #4
        Hallo,
        Delphi-Hilfe:
        <pre>
        function StringOfChar(Ch: Char; Count: Integer): string;
        <br>
        Beschreibung
        <br>
        StringOfChar gibt einen String mit Count Vorkommen des Zeichens Ch zurück. Ein Beispiel:
        <br>
        S := StringOfChar('A', 10);
        <br>
        Diese Anweisung setzt S auf den String 'AAAAAAAAAA'.</pre><br>Gruß Ale

        Comment


        • #5
          Hallo Ulli,<p>
          NULL kenne ich nur C her, ist es möglich, dass Du da C und Delphi durcheinander bringst?
          <pre>
          ShellExecute(0,"open","mailto:[email protected]?subjec t=1234&body=hier ist der text", nil , nil ,SW_SHOWNORMAL);</pre>oder<pre>
          ShellExecute(Handle,"open","mailto:[email protected]?s ubject=1234&body=hier ist der text", nil , nil ,SW_SHOWNORMAL);</pre&gt

          Comment


          • #6
            Hallo,<br>
            Null ist eine Funktion, die eine Null-Variante zurückgibt. (Unit: Variants) Bei ShellExecute verwende ich aber auch immer nur nil.<br><br>Gruß Alex

            Comment


            • #7
              Hallo Elmar,

              ich habe die Funktion in Eile einfach nur hier im Forum gesucht und aus irgendeinem Posting kopiert.

              Bevor man das dann weitergibt, sollte man es zumindest durchlesen :-(

              Klar ist null falsch.

              Gruß Ul

              Comment


              • #8
                So habe ich wenigstens mein Hirn selber anstrengen müssen )<br>
                <br>
                Worüber hast du das denn gefunden ?<br>
                Ich habe nach mailto und email gesucht und das nicht gesehen.<br>
                <br>
                Habe jetzt praktisch alles geschafft, nur das sortieren klappt noch nicht, also schonmal ein dickes Danke an Uli und Alex. )<br>
                <br>
                Woher kann denn dieses "Index ist schreibgeschützt" herkommen ?<br>
                Muß ich bevor ich in das DBGrid schreibe die Table vielleicht abklemmen ?<br>
                <br>
                Thorste

                Comment


                • #9
                  Hallo,

                  ich habe nach "shellexecute mailto" gesucht.

                  Hier die ganz "offizielle" Version von A. Kosch:
                  <pre>
                  uses ShellAPI; procedure TForm1.Button1Click(Sender: TObject);
                  var
                  sAdr : String;
                  begin
                  sAdr := Format('mailto:%s?subject=%s&body=%s',
                  ['[email protected]','Frage im Entwickler-Forum','Text der Antwort']);
                  ShellExecute(Handle, 'open', PChar(sAdr), nil, nil, SW_SHOWDEFAULT);
                  end;
                  </pre>

                  Deine Index-Probleme kann ich leider nicht nachvollziehen. Wenn der Index korrekt angelegt ist, sollte es da gar keine Probleme geben. Was die Meldung ...schreibeschützt... angeht, muss ich das an einen DB-Fachmann weitergeben.

                  Gruß Ul

                  Comment

                  Working...
                  X