Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   kleiner Untertitel Editor (https://www.delphipraxis.net/115441-kleiner-untertitel-editor.html)

herkulesamstart 12. Jun 2008 05:37


kleiner Untertitel Editor
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,

ich hab mir mal einen kleinen Untertitel Editor zusammen gebastelt.

Funktionen:
  • Kann Untertitel bearbeiten (Start/Ende/Text einer Szene veraendern)
  • Zeit skalieren.
  • Zeit verschieben.

Untertitel-Datei (Textfile):
Zitat:

0
00:00:01,000 --> 00:00:02,000
Text...
...

1
00:00:03,000 --> 00:00:04,000
Text...
...
dafuer habe ich folgenden Typ festgelegt:

Delphi-Quellcode:
  Tmystr = string[150];

  Tzeit = record
            hour : Integer;
            min : Integer;
            sec : Integer;
            mill : Integer
          end;

  Tsubtitel = Array[1..4] of Tmystr;

  Tdatatyp = record
               nummer : Integer;
               start : Tzeit;
               ende : Tzeit;
               sub : Tsubtitel;
             end;

  Tdb = Array[1..2000] of record
                            data : Tdatatyp;
                            high : integer;
                          end;
also viel Spaß damit,
herkulesamstart

Ps.: klar will ich euren Senf dazu hoeren! Vllt auch Kommentare zum meinen Programmierstil(der ja gar keiner ist^^)

DP-Maintenance 12. Jun 2008 05:50

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Freeware" nach "Open-Source" verschoben.
Der Source ist dabei -> Open Source ;)

Matze 12. Jun 2008 06:15

Re: kleiner Untertitel Editor
 
Hallo,

du solltest die Archive als "zip" packen, denn mit dem rar-Format können nicht alle umgehen.

Zugegeben, ich habe nicht verstanden, was dein Programm genau macht. Welche Untertitel lassen sich damit denn editieren?
  • Wenn ich auf "oeffnen" klicke und dann auf "Abbrechen" kommt:

    Zitat:

    ---------------------------
    Untertitel Editor
    ---------------------------
    Scrollbar property out of range.
    ---------------------------
    OK
    ---------------------------
  • Beim Verändern der Formulargröße werden die Controls nicht mit skaliert. Entweder lässt du diese skalieren (Stichwörter: Anchors, Align) oder du verhinderst, dass die Formulargröße geändert werden kann. Erst genanntes ist natürlich schöner.
  • Wenn ich - ohne eine Datei geöffnet zu haben - auf "skalieren" klicke, kommt eine Meldung über die erfolgreiche Skalierung. Du solltest die Meldungen nur dann ausgeben, wenn sie Sinn ergeben. Das gleiche gilt für "verschieben".

    Zitat:

    Zitat von herkulesamstart
    Vllt auch Kommentare zum meinen Programmierstil(der ja gar keiner ist^^)

    Das hast du allerdings recht. ;)
  • Du solltest ...

    ... den Quellcode einheitlich formatieren (einrücken)
    ... Deine Units/Formulare vernünftig benennen. Du weißt sonst in 4 Wochen nicht mehr, welche Unit wofür steht (Unit1.pas, Unit2.pas)
    ... Deine Komponenten ebenfalls mit aussagekräftigen Namen versehen, damit du am Namen erkennst, wofür welche Komponente da ist. Was "Edit10" macht, weißt du, wenn überhaupt, dann nur noch kurze Zeit.
    ... Keywords einheitlich schreiben. Mal schreibst du Keywords (fett gedruckte Wörter) klein und mal groß (Bsp: "begin", "end", "IF, "THEN", "For", "Do"). Ich persönlich schreibe sie durchweg klein.
    ... Die Funktionsnamen ebenfalls einheitlich schreiben bzw. so wie sie deklariert sind. Also weder "IntToSTR" noch "INTTOSTR" sondern "IntToStr"
    ... Das gleiche gilt für deine anderen Bezeichner ("Image1", "image1")
    ... Code übersichtlicher machen. 16 mal "Image1.Canvas." untereinander zu schreiben ist zwar nicht schlimm, übersichtlicher wäre jedoch

    Delphi-Quellcode:
    with Image1.Canvas do
    begin
      Brush.Color := ...;
      FillRect(...);
      // ...
    end;
    Das hier kannst du auch deutlich kürzen:

    Delphi-Quellcode:
    procedure TForm1.Edit7KeyPress(Sender: TObject; var Key: Char);
    begin
    keycheck(Sender,Edit7,key);
    end;

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    keycheck(Sender,Edit1,key);
    end;

    // unzählige weitere ;-)
    Schreibe dir eine einzige KeyPress-Prozedur und weise die (im Objektinspektor -> Ereignisse) den entsprechenden Edits zu, zumal du nicht den Edit-Namen übergeben musst, er steckt im "Sender" mit drinnen:

    Delphi-Quellcode:
    procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
    begin
      KeyCheck(Sender, (Sender as TEdit).Name, Key);
    end;

Das war's vorerst, denn ich muss gleich los.

Grüße, Matze

himitsu 12. Jun 2008 10:20

Re: kleiner Untertitel Editor
 
der Mediaplayer (oder macht das nur eines meiner Plugins :gruebel: ) kann z.B. zu Videos Untertiel anzeigen (z.B. diese knuffigen .srt-Dateien)

aber ich würde es schöner finden, wenn man in deinem Programm sich auch das Video ansehn kann ... zur besseren/leichteren Synchronisation (jab mir's Programm noch nicht angesehn, aber ich seh im ScreenShot kein Bild[vom Video] )

@Matze: 7zip und andere guten Packprogramme entpacken auch RAR


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz