/trunk/BugtrackerMain.pas |
---|
0,0 → 1,423 |
unit BugtrackerMain; |
(* |
* TODO: |
* - Spezielle Filter |
* ... Auflisten nach Modul |
* ... Anzeigen der Agenda |
* - rtf control bar? |
* - ein neu angelegter bug soll links aus der leiste verschwinden, wenn er nicht in das kriterium passt |
* |
* NOT INCLUDED: |
* - duplicate of |
* |
* FUTURE: |
* - HS Info integration |
*) |
interface |
uses |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, WideStrings, DB, SqlExpr, StdCtrls, ExtCtrls, DBCtrls, |
ADODB, ComCtrls, Grids, DBGrids, Mask, Menus, XPMan; |
type |
TfrmBugtracker = class(TForm) |
Panel1: TPanel; |
DBGrid1: TDBGrid; |
ComboBox1: TComboBox; |
DBNavigator2: TDBNavigator; |
Panel2: TPanel; |
Label1: TLabel; |
Label2: TLabel; |
Label3: TLabel; |
Label4: TLabel; |
Label5: TLabel; |
Label6: TLabel; |
DBNavigator1: TDBNavigator; |
DBRichEdit1: TDBRichEdit; |
DBEdit1: TDBEdit; |
DBLookupComboBox1: TDBLookupComboBox; |
DBEdit2: TDBEdit; |
DBEdit3: TDBEdit; |
DBLookupComboBox2: TDBLookupComboBox; |
DBLookupComboBox3: TDBLookupComboBox; |
TrackBar1: TTrackBar; |
ADOConnection1: TADOConnection; |
dsBugs: TDataSource; |
tblMitarbeiter: TADOTable; |
dsMitarbeiter: TDataSource; |
MainMenu1: TMainMenu; |
Stammdaten1: TMenuItem; |
Mitarbeiter1: TMenuItem; |
Projekte1: TMenuItem; |
Module1: TMenuItem; |
Versionen1: TMenuItem; |
Projektwechseln1: TMenuItem; |
XPManifest1: TXPManifest; |
qryBugs: TADOQuery; |
dsVersionen: TDataSource; |
tblProjekte: TADOTable; |
dsProjekte: TDataSource; |
dsModule: TDataSource; |
Timer1: TTimer; |
Splitter1: TSplitter; |
Hilfe1: TMenuItem; |
ber1: TMenuItem; |
btnBearbeitungsnotiz: TButton; |
qryBugsid: TAutoIncField; |
qryBugstitel: TStringField; |
qryBugsbeschreibung: TMemoField; |
qryBugserstellt: TDateTimeField; |
qryBugswichtigkeit: TIntegerField; |
qryBugsbearbeiter: TIntegerField; |
qryBugsversion_release: TIntegerField; |
qryBugsmodul: TIntegerField; |
qryBugsprojekt: TIntegerField; |
qryVersionen: TADOQuery; |
qryModule: TADOQuery; |
LblAngemeldet: TLabel; |
Label7: TLabel; |
Label8: TLabel; |
DBLookupComboBox4: TDBLookupComboBox; |
qryBugserfasser: TIntegerField; |
qryBugsversion_agenda: TIntegerField; |
Label9: TLabel; |
cbxErfasser: TDBLookupComboBox; |
Label10: TLabel; |
lkpStatus: TADOTable; |
dsStatus: TDataSource; |
DBLookupComboBox5: TDBLookupComboBox; |
qryBugsstatus: TIntegerField; |
qryBugsstatus_geaendert: TDateTimeField; |
Bugs1: TMenuItem; |
Wechselnzu1: TMenuItem; |
lkpStatusid: TAutoIncField; |
lkpStatusstatus: TStringField; |
lkpStatuscolor: TIntegerField; |
procedure Mitarbeiter1Click(Sender: TObject); |
procedure qryBugsAfterScroll(DataSet: TDataSet); |
procedure Module1Click(Sender: TObject); |
procedure Projekte1Click(Sender: TObject); |
procedure Versionen1Click(Sender: TObject); |
procedure TrackBar1Change(Sender: TObject); |
procedure Timer1Timer(Sender: TObject); |
procedure ComboBox1Change(Sender: TObject); |
procedure Projektwechseln1Click(Sender: TObject); |
procedure qryBugsAfterInsert(DataSet: TDataSet); |
procedure ber1Click(Sender: TObject); |
procedure qryBugsversion_releaseValidate(Sender: TField); |
procedure FormCreate(Sender: TObject); |
procedure qryVersionenAfterInsert(DataSet: TDataSet); |
procedure qryModuleAfterInsert(DataSet: TDataSet); |
procedure btnBearbeitungsnotizClick(Sender: TObject); |
procedure qryBugsBeforeCancel(DataSet: TDataSet); |
procedure DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn); |
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
procedure qryBugsstatusChange(Sender: TField); |
procedure Wechselnzu1Click(Sender: TObject); |
public |
eingeloggtMitarbeiter: integer; |
eingeloggtMitarbeiterName: string; |
aktuellesProjekt: integer; |
aktuellesProjektName: string; |
procedure NeuFiltern; |
procedure NotizHinzufuegen(color: TColor; bez: string); |
end; |
var |
frmBugtracker: TfrmBugtracker; |
implementation |
uses Mitarbeiter, Module, Versionen, Projekte, Login, About, inifiles; |
{$R *.dfm} |
procedure TfrmBugtracker.qryBugsAfterInsert(DataSet: TDataSet); |
begin |
// Standardwerte für einen neuen Bug |
qryBugs.FieldByName('wichtigkeit').AsInteger := 5; // Mitte |
qryBugs.FieldByName('erstellt').AsDateTime := Now; |
qryBugs.FieldByName('erfasser').AsInteger := eingeloggtMitarbeiter; |
qryBugs.FieldByName('projekt').AsInteger := aktuellesProjekt; |
qryBugs.FieldByName('status').AsInteger := 1; // Offen |
end; |
procedure TfrmBugtracker.qryBugsAfterScroll(DataSet: TDataSet); |
var |
bakEvent: TNotifyEvent; |
begin |
bakEvent := TrackBar1.OnChange; |
TrackBar1.OnChange := nil; |
try |
TrackBar1.Position := qryBugs.FieldByName('wichtigkeit').AsInteger; |
finally |
TrackBar1.OnChange := bakEvent; |
end; |
end; |
procedure TfrmBugtracker.qryBugsBeforeCancel(DataSet: TDataSet); |
var |
abfrage: Integer; |
begin |
// Tag 1 = Es wurde der "Abbrechen"-Knopf im DBNavigator gedrückt, also wollen wir keine unnötige Bestätigung |
// Alles andere = Irgendwas anderes (z.B. Scrolling oder versehentlich versucht das Fenster zu schließen) |
if qryBugs.Tag = 1 then exit; |
abfrage := MessageDlg('Speichern?', mtConfirmation, mbYesNoCancel, 0); |
if (abfrage = IDNo) or (abfrage = IDYes) or (abfrage = IDOK) then |
begin |
if abfrage = IDYes then |
begin |
if (qryBugs.state in [dsEdit, dsInsert]) then qryBugs.Post; |
end; |
if abfrage = IDNo then |
begin |
// Wir befinden uns bereits in qryBugs.Cancel, daher auskommentiert. |
// if (qryBugs.state in [dsEdit, dsInsert]) then qryBugs.Cancel; |
end; |
end |
else raise EAbort.Create('Abbruch durch Benutzer'); // Cancel geklickt |
end; |
procedure TfrmBugtracker.qryBugsstatusChange(Sender: TField); |
var |
col: TColor; |
begin |
qryBugsstatus_geaendert.AsDateTime := Now; |
DBLookupComboBox5.KeyValue := qryBugsstatus.AsVariant; // nur benötigt, daamit wir auf DBLookupComboBox5.Text zugreifen können |
col := TColor(lkpStatuscolor.AsInteger); |
NotizHinzufuegen(col, DBLookupComboBox5.Text); |
end; |
procedure TfrmBugtracker.qryBugsversion_releaseValidate(Sender: TField); |
begin |
if qryBugs.FieldByName('status').AsInteger <> 5 then |
begin |
// raise Exception.Create('Vor einer Veröffentlichung muss der Bugfix erst als "Veröffentlicht" markiert werden.'); |
qryBugs.FieldByName('status').AsInteger := 5; |
end; |
end; |
procedure TfrmBugtracker.qryModuleAfterInsert(DataSet: TDataSet); |
begin |
// Standardwerte für ein neues Modul |
qryModule.FieldByName('projekt').AsInteger := aktuellesProjekt; |
end; |
procedure TfrmBugtracker.qryVersionenAfterInsert(DataSet: TDataSet); |
begin |
// Standardwerte für eine neue Version |
qryVersionen.FieldByName('projekt').AsInteger := aktuellesProjekt; |
end; |
procedure TfrmBugtracker.Timer1Timer(Sender: TObject); |
begin |
Timer1.Enabled := false; |
if frmLogin.ShowModal = mrCancel then Close; |
end; |
procedure TfrmBugtracker.TrackBar1Change(Sender: TObject); |
begin |
if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
qryBugs.FieldByName('wichtigkeit').AsInteger := TrackBar1.Position; |
end; |
procedure TfrmBugtracker.Versionen1Click(Sender: TObject); |
begin |
frmVersionen.ShowModal; |
end; |
procedure TfrmBugtracker.Wechselnzu1Click(Sender: TObject); |
var |
s: string; |
id, ec: integer; |
begin |
s := Trim(InputBox('Wechseln zu Bug', 'ID des Bugs eingeben', '0')); |
if s = '' then exit; |
Val(s, id, ec); |
if ec <> 0 then |
begin |
ShowMessageFmt('"%s" ist keine gültige Bug-ID-Nummer.', [id]); |
exit; |
end; |
qryBugs.Locate('id', id, []); |
end; |
procedure TfrmBugtracker.ber1Click(Sender: TObject); |
begin |
AboutBox.ShowModal; |
end; |
procedure TfrmBugtracker.btnBearbeitungsnotizClick(Sender: TObject); |
begin |
NotizHinzufuegen(clOlive, 'Notiz'); |
end; |
procedure TfrmBugtracker.ComboBox1Change(Sender: TObject); |
begin |
case ComboBox1.ItemIndex of |
0: |
begin |
// Meine offenen Aufgaben (nach Wichtigkeit) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND (status = 1 OR status = 3) AND bearbeiter = '+IntToStr(eingeloggtMitarbeiter)+' ORDER BY wichtigkeit DESC'; |
end; |
1: |
begin |
// Alle offenen Aufgaben (nach Wichtigkeit) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND (status = 1 OR status = 3) ORDER BY wichtigkeit DESC'; |
end; |
2: |
begin |
// Gelöst ohne Veröffentlichung (nach Lösungsdatum) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND status = 4 ORDER BY status_geaendert DESC'; |
end; |
3: |
begin |
// Gelöst und Veröffentlicht (nach Version und Lösungsdatum) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND status = 5 ORDER BY status_geaendert DESC'; |
end; |
4: |
begin |
// Von mir erfasste Aufgaben (nach Erfassungsdatum) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' AND erfasser = '+IntToStr(eingeloggtMitarbeiter)+' ORDER BY erstellt DESC'; |
end; |
5: |
begin |
// Alle Aufgaben (nach Eröffnungsdatum) |
qryBugs.SQL.Text := 'SELECT * FROM bugs WHERE projekt = '+IntToStr(aktuellesProjekt)+' ORDER BY erstellt DESC'; |
end; |
end; |
qryBugs.Active := true; |
end; |
procedure TfrmBugtracker.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn); |
begin |
if Button = nbCancel then |
begin |
if qryBugs.state in [dsEdit,dsInsert] then |
begin |
// Tag=1 soll verhindern, dass nicht gefragt wird, ob man Speichern möchte. |
// Ansonsten würde diese Meldung kommen, denn ".Cancel" wird automatisch |
// bei Ereignissen wie z.B. dem Scrolling aufgerufen (noch bevor |
// OnBeforeScroll aufgerufen wird), bei dem man einen MBOnCloseQuery wünscht. |
qryBugs.Tag := 1; |
try |
qryBugs.Cancel; |
finally |
qryBugs.Tag := 0; |
end; |
end; |
end; |
end; |
procedure TfrmBugtracker.FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
begin |
qryBugs.Cancel; |
end; |
procedure TfrmBugtracker.FormCreate(Sender: TObject); |
var |
ini: TMemIniFile; |
begin |
ini := TMemIniFile.Create('bugtracker.ini'); |
try |
ADOConnection1.Connected := false; |
ADOConnection1.ConnectionString := ini.ReadString('Database', 'ConnectionString', ''); |
finally |
ini.Free; |
end; |
ADOConnection1.Connected := true; |
qryBugs.Active := true; |
tblMitarbeiter.Active := true; |
qryVersionen.Active := true; |
tblProjekte.Active := true; |
qryModule.Active := true; |
lkpStatus.Active := true; |
end; |
procedure TfrmBugtracker.Mitarbeiter1Click(Sender: TObject); |
begin |
frmMitarbeiter.ShowModal; |
end; |
procedure TfrmBugtracker.Module1Click(Sender: TObject); |
begin |
frmModule.ShowModal; |
end; |
procedure TfrmBugtracker.NeuFiltern; |
begin |
ComboBox1Change(ComboBox1); |
qryModule.SQL.Text := 'SELECT * FROM module WHERE projekt = ' + IntToStr(aktuellesProjekt); |
qryModule.Active := true; |
qryVersionen.SQL.Text := 'SELECT * FROM versionen WHERE projekt = ' + IntToStr(aktuellesProjekt); |
qryVersionen.Active := true; |
end; |
procedure TfrmBugtracker.NotizHinzufuegen(color: TColor; bez: string); |
var |
leerzeilen: integer; |
umbruch: string; |
prefix: string; |
begin |
if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
// Endet der Text mit zwei Zeilenabständen? Wenn nein, dann einfügen. |
if Trim(DBRichEdit1.Text) <> '' then |
begin |
leerzeilen := 0; |
if Copy(DBRichEdit1.Text, 1+Length(DBRichEdit1.Text)-2, 2) = #13#10 then Inc(leerzeilen); // letzte Zeile |
if Copy(DBRichEdit1.Text, 1+Length(DBRichEdit1.Text)-4, 2) = #13#10 then Inc(leerzeilen); // Vorletzte Zeile |
case leerzeilen of |
0: umbruch := #13#10#13#10; |
1: umbruch := #13#10; |
2: umbruch := ''; |
end; |
end |
else |
begin |
umbruch := ''; |
end; |
DBRichEdit1.SelStart := DBRichEdit1.GetTextLen; |
DBRichEdit1.SelText := umbruch; |
DBRichEdit1.SelAttributes.Size := 13; |
DBRichEdit1.SelAttributes.Color := color; |
DBRichEdit1.SelAttributes.Style := [fsUnderline]; |
if Trim(bez) <> '' then |
prefix := Trim(bez) + ' - ' |
else |
prefix := ''; |
DBRichEdit1.SelText := prefix + eingeloggtMitarbeiterName + ' ' + FormatDateTime('dd.mm.yyyy hh:nn', Now); // DateTimeToStr(Now); |
DBRichEdit1.SelAttributes.Size := 10; |
DBRichEdit1.SelAttributes.Color := clWindowText; |
DBRichEdit1.SelAttributes.Style := []; |
DBRichEdit1.SelText := #13#10 {+ '<Hier Text eingeben>'}; |
// Ans Ende scrollen |
DBRichEdit1.SetFocus; |
DBRichEdit1.SelStart := DBRichEdit1.GetTextLen; |
DBRichEdit1.Perform(EM_SCROLLCARET, 0, 0); |
end; |
procedure TfrmBugtracker.Projekte1Click(Sender: TObject); |
begin |
frmProjekte.ShowModal; |
end; |
procedure TfrmBugtracker.Projektwechseln1Click(Sender: TObject); |
begin |
frmLogin.ShowModal; |
end; |
end. |
/trunk/BugtrackerMain.dfm |
---|
0,0 → 1,545 |
object frmBugtracker: TfrmBugtracker |
Left = 0 |
Top = 0 |
Align = alClient |
Caption = 'ViaThinkSoft Bugtracker f'#252'r Windows' |
ClientHeight = 596 |
ClientWidth = 763 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
Menu = MainMenu1 |
OldCreateOrder = False |
Position = poScreenCenter |
OnCloseQuery = FormCloseQuery |
OnCreate = FormCreate |
PixelsPerInch = 96 |
TextHeight = 13 |
object Splitter1: TSplitter |
Left = 249 |
Top = 0 |
Height = 596 |
ExplicitLeft = 0 |
ExplicitTop = 136 |
ExplicitHeight = 100 |
end |
object Panel1: TPanel |
Left = 0 |
Top = 0 |
Width = 249 |
Height = 596 |
Align = alLeft |
TabOrder = 0 |
DesignSize = ( |
249 |
596) |
object DBGrid1: TDBGrid |
Left = 8 |
Top = 35 |
Width = 233 |
Height = 504 |
Anchors = [akLeft, akTop, akRight, akBottom] |
DataSource = dsBugs |
ReadOnly = True |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
TitleFont.Height = -11 |
TitleFont.Name = 'Tahoma' |
TitleFont.Style = [] |
Columns = < |
item |
Expanded = False |
FieldName = 'id' |
Width = 46 |
Visible = True |
end |
item |
Expanded = False |
FieldName = 'titel' |
Width = 111 |
Visible = True |
end |
item |
Expanded = False |
FieldName = 'wichtigkeit' |
Width = 36 |
Visible = True |
end> |
end |
object ComboBox1: TComboBox |
Left = 8 |
Top = 8 |
Width = 233 |
Height = 21 |
Style = csDropDownList |
Anchors = [akLeft, akTop, akRight] |
ItemHeight = 13 |
TabOrder = 1 |
OnChange = ComboBox1Change |
Items.Strings = ( |
'Meine offenen Aufgaben (nach Wichtigkeit)' |
'Alle offenen Aufgaben (nach Wichtigkeit)' |
'Gel'#246'st ohne Ver'#246'ffentlichung (nach L'#246'sungsdatum)' |
'Gel'#246'st und Ver'#246'ffentlicht (nach Version und L'#246'sungsdatum)' |
'Von mir erfasste Aufgaben (nach Erfassungsdatum)' |
'Alle Aufgaben (nach Er'#246'ffnungsdatum)') |
end |
object DBNavigator2: TDBNavigator |
Left = 11 |
Top = 554 |
Width = 232 |
Height = 25 |
DataSource = dsBugs |
VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast] |
Anchors = [akLeft, akRight, akBottom] |
TabOrder = 2 |
end |
end |
object Panel2: TPanel |
Left = 252 |
Top = 0 |
Width = 511 |
Height = 596 |
Align = alClient |
TabOrder = 1 |
DesignSize = ( |
511 |
596) |
object Label1: TLabel |
Left = 17 |
Top = 101 |
Width = 50 |
Height = 13 |
Caption = 'Bearbeiter' |
end |
object Label2: TLabel |
Left = 17 |
Top = 195 |
Width = 20 |
Height = 13 |
Caption = 'Titel' |
end |
object Label3: TLabel |
Left = 240 |
Top = 53 |
Width = 33 |
Height = 13 |
Caption = 'Erstellt' |
end |
object Label4: TLabel |
Left = 240 |
Top = 101 |
Width = 31 |
Height = 13 |
BiDiMode = bdLeftToRight |
Caption = 'Status' |
ParentBiDiMode = False |
end |
object Label5: TLabel |
Left = 17 |
Top = 147 |
Width = 28 |
Height = 13 |
Caption = 'Modul' |
end |
object Label6: TLabel |
Left = 240 |
Top = 216 |
Width = 119 |
Height = 13 |
Caption = 'Ver'#246'ffentlicht als Version' |
end |
object LblAngemeldet: TLabel |
Left = 3 |
Top = 0 |
Width = 83 |
Height = 13 |
Caption = 'Nicht angemeldet' |
end |
object Label7: TLabel |
Left = 250 |
Top = 0 |
Width = 46 |
Height = 13 |
Caption = 'Unwichtig' |
end |
object Label8: TLabel |
Left = 366 |
Top = 0 |
Width = 34 |
Height = 13 |
Alignment = taRightJustify |
Caption = 'Kritisch' |
end |
object Label9: TLabel |
Left = 240 |
Top = 170 |
Width = 92 |
Height = 13 |
Caption = 'Geplant f'#252'r Version' |
end |
object Label10: TLabel |
Left = 17 |
Top = 53 |
Width = 40 |
Height = 13 |
Caption = 'Erfasser' |
end |
object DBNavigator1: TDBNavigator |
Left = 15 |
Top = 19 |
Width = 184 |
Height = 25 |
DataSource = dsBugs |
VisibleButtons = [nbInsert, nbDelete, nbPost, nbCancel] |
TabOrder = 0 |
BeforeAction = DBNavigator1BeforeAction |
end |
object DBRichEdit1: TDBRichEdit |
Left = 15 |
Top = 280 |
Width = 483 |
Height = 299 |
Anchors = [akLeft, akTop, akRight, akBottom] |
DataField = 'beschreibung' |
DataSource = dsBugs |
TabOrder = 10 |
end |
object DBEdit1: TDBEdit |
Left = 17 |
Top = 213 |
Width = 186 |
Height = 21 |
DataField = 'titel' |
DataSource = dsBugs |
TabOrder = 6 |
end |
object DBLookupComboBox1: TDBLookupComboBox |
Left = 17 |
Top = 120 |
Width = 186 |
Height = 21 |
DataField = 'bearbeiter' |
DataSource = dsBugs |
KeyField = 'id' |
ListField = 'name' |
ListSource = dsMitarbeiter |
NullValueKey = 46 |
TabOrder = 1 |
end |
object DBEdit2: TDBEdit |
Left = 240 |
Top = 72 |
Width = 155 |
Height = 21 |
TabStop = False |
Color = clBtnFace |
DataField = 'erstellt' |
DataSource = dsBugs |
ReadOnly = True |
TabOrder = 8 |
end |
object DBEdit3: TDBEdit |
Left = 240 |
Top = 141 |
Width = 155 |
Height = 21 |
TabStop = False |
Color = clBtnFace |
DataField = 'status_geaendert' |
DataSource = dsBugs |
ReadOnly = True |
TabOrder = 3 |
end |
object DBLookupComboBox2: TDBLookupComboBox |
Left = 17 |
Top = 168 |
Width = 186 |
Height = 21 |
DataField = 'modul' |
DataSource = dsBugs |
KeyField = 'id' |
ListField = 'modul' |
ListSource = dsModule |
NullValueKey = 46 |
TabOrder = 4 |
end |
object DBLookupComboBox3: TDBLookupComboBox |
Left = 240 |
Top = 235 |
Width = 155 |
Height = 21 |
DataField = 'version_release' |
DataSource = dsBugs |
KeyField = 'id' |
ListField = 'version' |
ListSource = dsVersionen |
TabOrder = 7 |
end |
object TrackBar1: TTrackBar |
Left = 245 |
Top = 12 |
Width = 164 |
Height = 45 |
Position = 5 |
TabOrder = 11 |
OnChange = TrackBar1Change |
end |
object btnBearbeitungsnotiz: TButton |
Left = 17 |
Top = 240 |
Width = 185 |
Height = 25 |
Caption = 'Notiz hinzuf'#252'gen' |
TabOrder = 9 |
OnClick = btnBearbeitungsnotizClick |
end |
object DBLookupComboBox4: TDBLookupComboBox |
Left = 240 |
Top = 189 |
Width = 155 |
Height = 21 |
DataField = 'version_agenda' |
DataSource = dsBugs |
KeyField = 'id' |
ListField = 'version' |
ListSource = dsVersionen |
TabOrder = 5 |
end |
object cbxErfasser: TDBLookupComboBox |
Left = 17 |
Top = 72 |
Width = 186 |
Height = 21 |
Color = clBtnFace |
DataField = 'erfasser' |
DataSource = dsBugs |
KeyField = 'id' |
ListField = 'name' |
ListSource = dsMitarbeiter |
NullValueKey = 46 |
ReadOnly = True |
TabOrder = 12 |
end |
object DBLookupComboBox5: TDBLookupComboBox |
Left = 240 |
Top = 120 |
Width = 155 |
Height = 21 |
DataField = 'status' |
DataSource = dsBugs |
KeyField = 'id' |
ListField = 'status' |
ListSource = dsStatus |
TabOrder = 2 |
end |
end |
object ADOConnection1: TADOConnection |
Connected = True |
ConnectionString = |
'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security In' + |
'fo=False;Initial Catalog=WULI;Data Source=GREINER\CORA2012,49001' |
LoginPrompt = False |
Provider = 'SQLOLEDB.1' |
Left = 104 |
Top = 344 |
end |
object dsBugs: TDataSource |
DataSet = qryBugs |
Left = 168 |
Top = 312 |
end |
object tblMitarbeiter: TADOTable |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
TableName = 'mitarbeiter' |
Left = 208 |
Top = 344 |
end |
object dsMitarbeiter: TDataSource |
DataSet = tblMitarbeiter |
Left = 208 |
Top = 312 |
end |
object MainMenu1: TMainMenu |
Left = 88 |
Top = 216 |
object Stammdaten1: TMenuItem |
Caption = 'Stammdaten' |
object Mitarbeiter1: TMenuItem |
Caption = 'Mitarbeiter' |
OnClick = Mitarbeiter1Click |
end |
object Projekte1: TMenuItem |
Caption = 'Projekte' |
OnClick = Projekte1Click |
end |
object Module1: TMenuItem |
Caption = 'Module' |
OnClick = Module1Click |
end |
object Versionen1: TMenuItem |
Caption = 'Versionen' |
OnClick = Versionen1Click |
end |
end |
object Bugs1: TMenuItem |
Caption = 'Bugs' |
object Wechselnzu1: TMenuItem |
Caption = 'Wechseln zu...' |
OnClick = Wechselnzu1Click |
end |
end |
object Projektwechseln1: TMenuItem |
Caption = 'Projekt wechseln' |
OnClick = Projektwechseln1Click |
end |
object Hilfe1: TMenuItem |
Caption = 'Hilfe' |
object ber1: TMenuItem |
Caption = #220'ber' |
OnClick = ber1Click |
end |
end |
end |
object XPManifest1: TXPManifest |
Left = 48 |
Top = 216 |
end |
object qryBugs: TADOQuery |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
AfterInsert = qryBugsAfterInsert |
BeforeCancel = qryBugsBeforeCancel |
AfterScroll = qryBugsAfterScroll |
Parameters = <> |
SQL.Strings = ( |
'SELECT * FROM bugs order by wichtigkeit') |
Left = 168 |
Top = 344 |
object qryBugsid: TAutoIncField |
FieldName = 'id' |
ReadOnly = True |
end |
object qryBugstitel: TStringField |
FieldName = 'titel' |
Size = 255 |
end |
object qryBugsbeschreibung: TMemoField |
FieldName = 'beschreibung' |
BlobType = ftMemo |
end |
object qryBugserstellt: TDateTimeField |
FieldName = 'erstellt' |
end |
object qryBugswichtigkeit: TIntegerField |
FieldName = 'wichtigkeit' |
end |
object qryBugsbearbeiter: TIntegerField |
FieldName = 'bearbeiter' |
end |
object qryBugsversion_release: TIntegerField |
FieldName = 'version_release' |
OnValidate = qryBugsversion_releaseValidate |
end |
object qryBugsmodul: TIntegerField |
FieldName = 'modul' |
end |
object qryBugsprojekt: TIntegerField |
FieldName = 'projekt' |
end |
object qryBugserfasser: TIntegerField |
FieldName = 'erfasser' |
end |
object qryBugsversion_agenda: TIntegerField |
FieldName = 'version_agenda' |
end |
object qryBugsstatus: TIntegerField |
FieldName = 'status' |
OnChange = qryBugsstatusChange |
end |
object qryBugsstatus_geaendert: TDateTimeField |
FieldName = 'status_geaendert' |
end |
end |
object dsVersionen: TDataSource |
DataSet = qryVersionen |
Left = 240 |
Top = 312 |
end |
object tblProjekte: TADOTable |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
TableName = 'projekte' |
Left = 272 |
Top = 344 |
end |
object dsProjekte: TDataSource |
DataSet = tblProjekte |
Left = 272 |
Top = 312 |
end |
object dsModule: TDataSource |
DataSet = qryModule |
Left = 304 |
Top = 312 |
end |
object Timer1: TTimer |
OnTimer = Timer1Timer |
Left = 128 |
Top = 216 |
end |
object qryVersionen: TADOQuery |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
AfterInsert = qryVersionenAfterInsert |
Parameters = <> |
SQL.Strings = ( |
'SELECT * FROM versionen') |
Left = 240 |
Top = 344 |
end |
object qryModule: TADOQuery |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
AfterInsert = qryModuleAfterInsert |
Parameters = <> |
SQL.Strings = ( |
'SELECT * FROM module') |
Left = 304 |
Top = 344 |
end |
object lkpStatus: TADOTable |
Active = True |
Connection = ADOConnection1 |
CursorType = ctStatic |
TableName = 'lkp_status' |
Left = 344 |
Top = 344 |
object lkpStatusid: TAutoIncField |
FieldName = 'id' |
ReadOnly = True |
end |
object lkpStatusstatus: TStringField |
FieldName = 'status' |
Size = 255 |
end |
object lkpStatuscolor: TIntegerField |
FieldName = 'color' |
end |
end |
object dsStatus: TDataSource |
DataSet = lkpStatus |
Left = 344 |
Top = 312 |
end |
end |
/trunk/bugtracker_mssql.sql |
---|
0,0 → 1,53 |
CREATE TABLE [dbo].[bugs]( |
[id] [int] IDENTITY(1,1) NOT NULL, |
[titel] [varchar](255) NULL, |
[beschreibung] [text] NULL, |
[erstellt] [datetime] NOT NULL, |
[wichtigkeit] [int] NOT NULL, |
[erfasser] [int] NOT NULL, |
[bearbeiter] [int] NULL, |
[status] [int] NOT NULL, |
[status_geandert] [datetime] NULL, |
[version_release] [int] NULL, |
[version_agenda] [int] NULL, |
[modul] [int] NULL, |
[projekt] [int] NOT NULL |
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
ALTER TABLE [dbo].[bugs] ADD CONSTRAINT [DF_bugs_wichtigkeit] DEFAULT ((5)) FOR [wichtigkeit] |
ALTER TABLE [dbo].[bugs] ADD CONSTRAINT [DF_bugs_status] DEFAULT ((1)) FOR [status] |
CREATE TABLE [dbo].[mitarbeiter]( |
[id] [int] IDENTITY(1,1) NOT NULL, |
[name] [varchar](255) NULL |
) ON [PRIMARY] |
CREATE TABLE [dbo].[module]( |
[id] [int] IDENTITY(1,1) NOT NULL, |
[modul] [varchar](255) NULL, |
[projekt] [int] NOT NULL |
) ON [PRIMARY] |
CREATE TABLE [dbo].[projekte]( |
[id] [int] IDENTITY(1,1) NOT NULL, |
[projekt] [varchar](255) NULL |
) ON [PRIMARY] |
CREATE TABLE [dbo].[versionen]( |
[id] [int] IDENTITY(1,1) NOT NULL, |
[version] [varchar](255) NULL, |
[projekt] [int] NOT NULL |
) ON [PRIMARY] |
CREATE TABLE [dbo].[lkp_status]( |
[id] [int] IDENTITY(1,1) NOT NULL, |
[status] [varchar](255) NULL, |
[color] [int] NOT NULL |
) ON [PRIMARY] |
ALTER TABLE [dbo].[lkp_status] ADD CONSTRAINT [DF_lkp_status_color] DEFAULT ((0)) |
INSERT INTO [lkp_status] ([status]) VALUES ('Offen', 255); |
INSERT INTO [lkp_status] ([status]) VALUES ('Abgelehnt', 128); |
INSERT INTO [lkp_status] ([status]) VALUES ('In Arbeit', 8388736); |
INSERT INTO [lkp_status] ([status]) VALUES ('Abgeschlossen', 8421376); |
INSERT INTO [lkp_status] ([status]) VALUES ('Veröffentlicht', 32768); |
/trunk/bugtracker_mysql.sql |
---|
0,0 → 1,131 |
|
-- |
-- Tabellenstruktur für Tabelle `bugs` |
-- |
CREATE TABLE IF NOT EXISTS `bugs` ( |
`id` int(11) NOT NULL, |
`titel` varchar(255) NOT NULL, |
`beschreibung` longtext NOT NULL, |
`erstellt` datetime DEFAULT NULL, |
`wichtigkeit` int(11) NOT NULL DEFAULT '5', |
`erfasser` int(11) DEFAULT NOT NULL, |
`bearbeiter` int(11) DEFAULT NULL, |
`status` int(11) NOT NULL DEFAULT '1', |
`status_geandert` datetime DEFAULT NULL, |
`version_release` int(11) NOT NULL, |
`version_agenda` int(11) NOT NULL, |
`modul` int(11) NOT NULL, |
`projekt` int(11) NOT NULL |
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; |
-- -------------------------------------------------------- |
-- |
-- Tabellenstruktur für Tabelle `mitarbeiter` |
-- |
CREATE TABLE IF NOT EXISTS `mitarbeiter` ( |
`id` int(11) NOT NULL, |
`name` varchar(255) NOT NULL |
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; |
-- -------------------------------------------------------- |
-- |
-- Tabellenstruktur für Tabelle `module` |
-- |
CREATE TABLE IF NOT EXISTS `module` ( |
`id` int(11) NOT NULL, |
`projekt` int(11) NOT NULL, |
`modul` varchar(255) NOT NULL |
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; |
-- -------------------------------------------------------- |
-- |
-- Tabellenstruktur für Tabelle `projekte` |
-- |
CREATE TABLE IF NOT EXISTS `projekte` ( |
`id` int(11) NOT NULL, |
`projekt` varchar(255) NOT NULL |
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; |
-- -------------------------------------------------------- |
-- |
-- Tabellenstruktur für Tabelle `versionen` |
-- |
CREATE TABLE IF NOT EXISTS `versionen` ( |
`id` int(11) NOT NULL, |
`version` varchar(255) NOT NULL, |
`projekt` int(11) NOT NULL |
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; |
-- |
-- Tabellenstruktur für Tabelle `lkp_status` |
-- |
CREATE TABLE IF NOT EXISTS `lkp_status` ( |
`id` int(11) NOT NULL, |
`status` varchar(255) NOT NULL, |
`color` int(11) NOT NULL |
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; |
-- |
-- Indexes for dumped tables |
-- |
ALTER TABLE `bugs` |
ADD PRIMARY KEY (`id`); |
ALTER TABLE `mitarbeiter` |
ADD PRIMARY KEY (`id`); |
ALTER TABLE `module` |
ADD PRIMARY KEY (`id`); |
ALTER TABLE `projekte` |
ADD PRIMARY KEY (`id`); |
ALTER TABLE `versionen` |
ADD PRIMARY KEY (`id`); |
ALTER TABLE `lkp_status` |
ADD PRIMARY KEY (`id`); |
-- |
-- AUTO_INCREMENT for dumped tables |
-- |
ALTER TABLE `bugs` |
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; |
ALTER TABLE `mitarbeiter` |
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; |
ALTER TABLE `module` |
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; |
ALTER TABLE `projekte` |
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; |
ALTER TABLE `versionen` |
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; |
ALTER TABLE `lkp_status` |
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; |
-- |
-- Daten für Tabelle `lkp_status` |
-- |
INSERT INTO `lkp_status` (`id`, `status`) VALUES |
(1, 'Offen', 255), |
(2, 'Abgelehnt', 128), |
(3, 'In Arbeit', 8388736), |
(4, 'Abgeschlossen', 8421376), |
(5, 'Veröffentlicht', 32768); |
/trunk/Bugtracker.dproj |
---|
0,0 → 1,90 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{d9325f5e-2b75-4c5f-b683-9907a01f0c72}</ProjectGuid> |
<MainSource>Bugtracker.dpr</MainSource> |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
<DCC_DependencyCheckOutputName>Bugtracker.exe</DCC_DependencyCheckOutputName> |
</PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
<Version>7.0</Version> |
<DCC_DebugInformation>False</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_Define>RELEASE</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
<Version>7.0</Version> |
<DCC_Define>DEBUG</DCC_Define> |
</PropertyGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality</Borland.Personality> |
<Borland.ProjectType /> |
<BorlandProject> |
<BorlandProject xmlns=""> <Delphi.Personality> <Parameters> |
<Parameters Name="UseLauncher">False</Parameters> |
<Parameters Name="LoadAllSymbols">True</Parameters> |
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
</Parameters> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1031</VersionInfo> |
<VersionInfo Name="CodePage">1252</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName">ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="FileDescription">Bugtracker für Windows</VersionInfoKeys> |
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName">WuLi</VersionInfoKeys> |
<VersionInfoKeys Name="LegalCopyright">(C) 2016 ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> |
<VersionInfoKeys Name="OriginalFilename">Bugtracker.exe</VersionInfoKeys> |
<VersionInfoKeys Name="ProductName">ViaThinkSoft Bugtracker für Windows</VersionInfoKeys> |
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Comments">www.daniel-marschall.de</VersionInfoKeys> |
</VersionInfoKeys> |
<Source> |
<Source Name="MainSource">Bugtracker.dpr</Source> |
</Source> |
</Delphi.Personality> </BorlandProject></BorlandProject> |
</ProjectExtensions> |
<ItemGroup /> |
<ItemGroup> |
<DelphiCompile Include="Bugtracker.dpr"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="About.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="BugtrackerMain.pas"> |
<Form>frmBugtracker</Form> |
</DCCReference> |
<DCCReference Include="Login.pas"> |
<Form>frmLogin</Form> |
</DCCReference> |
<DCCReference Include="Mitarbeiter.pas"> |
<Form>frmMitarbeiter</Form> |
</DCCReference> |
<DCCReference Include="Module.pas"> |
<Form>frmModule</Form> |
</DCCReference> |
<DCCReference Include="Projekte.pas"> |
<Form>frmProjekte</Form> |
</DCCReference> |
<DCCReference Include="Versionen.pas"> |
<Form>frmVersionen</Form> |
</DCCReference> |
</ItemGroup> |
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> |
</Project> |
/trunk/Mitarbeiter.dfm |
---|
0,0 → 1,47 |
object frmMitarbeiter: TfrmMitarbeiter |
Left = 0 |
Top = 0 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsDialog |
Caption = 'Mitarbeiter' |
ClientHeight = 280 |
ClientWidth = 273 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = False |
Position = poMainFormCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object DBGrid1: TDBGrid |
Left = 8 |
Top = 8 |
Width = 257 |
Height = 233 |
DataSource = frmBugtracker.dsMitarbeiter |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
TitleFont.Height = -11 |
TitleFont.Name = 'Tahoma' |
TitleFont.Style = [] |
Columns = < |
item |
Expanded = False |
FieldName = 'name' |
Visible = True |
end> |
end |
object DBNavigator1: TDBNavigator |
Left = 8 |
Top = 247 |
Width = 256 |
Height = 25 |
DataSource = frmBugtracker.dsMitarbeiter |
VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbPost, nbCancel] |
TabOrder = 1 |
end |
end |
/trunk/Mitarbeiter.pas |
---|
0,0 → 1,29 |
unit Mitarbeiter; |
interface |
uses |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls; |
type |
TfrmMitarbeiter = class(TForm) |
DBGrid1: TDBGrid; |
DBNavigator1: TDBNavigator; |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
end; |
var |
frmMitarbeiter: TfrmMitarbeiter; |
implementation |
{$R *.dfm} |
uses |
BugtrackerMain; |
end. |
/trunk/Module.dfm |
---|
0,0 → 1,47 |
object frmModule: TfrmModule |
Left = 0 |
Top = 0 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsDialog |
Caption = 'Module' |
ClientHeight = 280 |
ClientWidth = 273 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = False |
Position = poMainFormCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object DBGrid1: TDBGrid |
Left = 8 |
Top = 8 |
Width = 257 |
Height = 233 |
DataSource = frmBugtracker.dsModule |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
TitleFont.Height = -11 |
TitleFont.Name = 'Tahoma' |
TitleFont.Style = [] |
Columns = < |
item |
Expanded = False |
FieldName = 'modul' |
Visible = True |
end> |
end |
object DBNavigator1: TDBNavigator |
Left = 8 |
Top = 247 |
Width = 256 |
Height = 25 |
DataSource = frmBugtracker.dsModule |
VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbPost, nbCancel] |
TabOrder = 1 |
end |
end |
/trunk/Module.pas |
---|
0,0 → 1,29 |
unit Module; |
interface |
uses |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls; |
type |
TfrmModule = class(TForm) |
DBGrid1: TDBGrid; |
DBNavigator1: TDBNavigator; |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
end; |
var |
frmModule: TfrmModule; |
implementation |
{$R *.dfm} |
uses |
BugtrackerMain; |
end. |
/trunk/Projekte.dfm |
---|
0,0 → 1,47 |
object frmProjekte: TfrmProjekte |
Left = 0 |
Top = 0 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsDialog |
Caption = 'Projekte' |
ClientHeight = 280 |
ClientWidth = 273 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = False |
Position = poMainFormCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object DBGrid1: TDBGrid |
Left = 8 |
Top = 8 |
Width = 257 |
Height = 233 |
DataSource = frmBugtracker.dsProjekte |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
TitleFont.Height = -11 |
TitleFont.Name = 'Tahoma' |
TitleFont.Style = [] |
Columns = < |
item |
Expanded = False |
FieldName = 'projekt' |
Visible = True |
end> |
end |
object DBNavigator1: TDBNavigator |
Left = 8 |
Top = 247 |
Width = 256 |
Height = 25 |
DataSource = frmBugtracker.dsProjekte |
VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbPost, nbCancel] |
TabOrder = 1 |
end |
end |
/trunk/Projekte.pas |
---|
0,0 → 1,29 |
unit Projekte; |
interface |
uses |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls; |
type |
TfrmProjekte = class(TForm) |
DBGrid1: TDBGrid; |
DBNavigator1: TDBNavigator; |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
end; |
var |
frmProjekte: TfrmProjekte; |
implementation |
{$R *.dfm} |
uses |
BugtrackerMain; |
end. |
/trunk/Versionen.dfm |
---|
0,0 → 1,47 |
object frmVersionen: TfrmVersionen |
Left = 0 |
Top = 0 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsDialog |
Caption = 'Versionen' |
ClientHeight = 280 |
ClientWidth = 273 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = False |
Position = poMainFormCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object DBGrid1: TDBGrid |
Left = 8 |
Top = 8 |
Width = 257 |
Height = 233 |
DataSource = frmBugtracker.dsVersionen |
TabOrder = 0 |
TitleFont.Charset = DEFAULT_CHARSET |
TitleFont.Color = clWindowText |
TitleFont.Height = -11 |
TitleFont.Name = 'Tahoma' |
TitleFont.Style = [] |
Columns = < |
item |
Expanded = False |
FieldName = 'version' |
Visible = True |
end> |
end |
object DBNavigator1: TDBNavigator |
Left = 8 |
Top = 247 |
Width = 256 |
Height = 25 |
DataSource = frmBugtracker.dsVersionen |
VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbPost, nbCancel] |
TabOrder = 1 |
end |
end |
/trunk/Versionen.pas |
---|
0,0 → 1,29 |
unit Versionen; |
interface |
uses |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls; |
type |
TfrmVersionen = class(TForm) |
DBGrid1: TDBGrid; |
DBNavigator1: TDBNavigator; |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
end; |
var |
frmVersionen: TfrmVersionen; |
implementation |
{$R *.dfm} |
uses |
BugtrackerMain; |
end. |
/trunk/bugtracker.ini |
---|
0,0 → 1,7 |
[Database] |
; Daniel Marschall Privat |
;ConnectionString=Provider=MSDASQL.1;Persist Security Info=False;Data Source=MySQL RAS;Initial Catalog=bugtracker; |
; HickelSOFT |
ConnectionString=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=WULI;Data Source=GREINER\CORA2012,49001 |
/trunk/About.dfm |
---|
0,0 → 1,104 |
object AboutBox: TAboutBox |
Left = 200 |
Top = 108 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsDialog |
Caption = 'Info '#252'ber' |
ClientHeight = 213 |
ClientWidth = 298 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
OldCreateOrder = True |
Position = poMainFormCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object Panel1: TPanel |
Left = 8 |
Top = 8 |
Width = 281 |
Height = 161 |
BevelInner = bvRaised |
BevelOuter = bvLowered |
ParentColor = True |
TabOrder = 0 |
object ProgramIcon: TImage |
Left = 8 |
Top = 8 |
Width = 65 |
Height = 57 |
Picture.Data = { |
07544269746D617076020000424D760200000000000076000000280000002000 |
0000200000000100040000000000000200000000000000000000100000000000 |
000000000000000080000080000000808000800000008000800080800000C0C0 |
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF |
FF00000000000000000000000000000000000EE8787878EEEEEEE03F30878EEE |
EEE00EE8787878EEEEEEE03F30878EEEEEE00EE8787878EEEEEEE03F30878EEE |
EEE00EE8787878EEEEEEE03F30878EEEEEE00887787877788888803F3088787E |
EEE00788787878878887803F3088887EEEE00788887888878887803F3088887E |
EEE00877888887788888703F308887EEEEE00888777778888888037883088888 |
8EE007777777777777703787883087777EE00888888888888803787FF8830888 |
888008888888888880378777778830888880077777777788037873F3F3F87808 |
88E00888888888803787FFFFFFFF8830EEE00887777778800001111111111100 |
EEE00888888888888899B999B99999EEEEE00888888888888899B9B99BB9B9EE |
EEE0088888888888899BB9BB99BB99EEEEE0078888888888899B999B999999EE |
EEE0087788888778899B9B9BB9BB99EEEEE00888778778888E9B9B9BB9999EEE |
EEE0088888788888EE9B99B9BB9BEEEEEEE00EE8888888EEEEE999B9999EEEEE |
EEE00EEEE888EEEEEEEE99BB999EEEEEEEE00EEEEE8EEEEEEEEEE999B9EEEEEE |
EEE00EEEEE8EEEEEEEEEEEE999EEEEEEEEE00EEEEE8EEEEEEEEEEEEE99EEEEEE |
EEE00EEEEE8EEEEEEEEEEEEE9EEEEEEEEEE00EEEEE8EEEEEEEEEEEEEEEEEEEEE |
EEE00EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000 |
0000} |
Stretch = True |
IsControl = True |
end |
object ProductName: TLabel |
Left = 88 |
Top = 16 |
Width = 178 |
Height = 13 |
Caption = 'ViaThinkSoft Bugtracker f'#252'r Windows' |
IsControl = True |
end |
object Version: TLabel |
Left = 88 |
Top = 40 |
Width = 53 |
Height = 13 |
Caption = 'Version 0.1' |
IsControl = True |
end |
object Copyright: TLabel |
Left = 8 |
Top = 80 |
Width = 135 |
Height = 13 |
Caption = 'Copyright 2016 ViaThinkSoft' |
IsControl = True |
end |
object Comments: TLabel |
Left = 8 |
Top = 104 |
Width = 258 |
Height = 52 |
AutoSize = False |
Caption = 'Entwickelt von Daniel Marschall, www.daniel-marschall.de' |
WordWrap = True |
IsControl = True |
end |
end |
object OKButton: TButton |
Left = 111 |
Top = 180 |
Width = 75 |
Height = 25 |
Cancel = True |
Caption = 'OK' |
Default = True |
ModalResult = 1 |
TabOrder = 1 |
end |
end |
/trunk/Login.dfm |
---|
0,0 → 1,111 |
object frmLogin: TfrmLogin |
Left = 0 |
Top = 0 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsDialog |
Caption = 'ViaThinkSoft Bugtracker f'#252'r Windows' |
ClientHeight = 385 |
ClientWidth = 298 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = False |
Position = poMainFormCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object Label1: TLabel |
Left = 32 |
Top = 24 |
Width = 233 |
Height = 33 |
AutoSize = False |
Caption = 'Wilkommen' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -27 |
Font.Name = 'Tahoma' |
Font.Style = [fsBold, fsItalic] |
ParentFont = False |
end |
object GroupBox1: TGroupBox |
Left = 32 |
Top = 80 |
Width = 233 |
Height = 105 |
Caption = 'Wer sind Sie?' |
TabOrder = 0 |
object Label2: TLabel |
Left = 98 |
Top = 59 |
Width = 103 |
Height = 13 |
Cursor = crHandPoint |
Alignment = taRightJustify |
Caption = 'Mitarbeiter verwalten' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clHotLight |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnClick = Label2Click |
end |
object cbxMitarbeiter: TDBLookupComboBox |
Left = 24 |
Top = 32 |
Width = 177 |
Height = 21 |
KeyField = 'id' |
ListField = 'name' |
ListSource = frmBugtracker.dsMitarbeiter |
TabOrder = 0 |
end |
end |
object GroupBox2: TGroupBox |
Left = 32 |
Top = 200 |
Width = 233 |
Height = 105 |
Caption = 'An was m'#246'chten Sie arbeiten?' |
TabOrder = 1 |
object Label3: TLabel |
Left = 110 |
Top = 59 |
Width = 91 |
Height = 13 |
Cursor = crHandPoint |
Alignment = taRightJustify |
Caption = 'Projekte verwalten' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clHotLight |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnClick = Label3Click |
end |
object cbxProjekt: TDBLookupComboBox |
Left = 24 |
Top = 32 |
Width = 177 |
Height = 21 |
KeyField = 'id' |
ListField = 'projekt' |
ListSource = frmBugtracker.dsProjekte |
TabOrder = 0 |
end |
end |
object Button1: TButton |
Left = 94 |
Top = 327 |
Width = 115 |
Height = 36 |
Caption = 'Los geht'#39's' |
Default = True |
TabOrder = 2 |
OnClick = Button1Click |
end |
end |
/trunk/Login.pas |
---|
0,0 → 1,73 |
unit Login; |
interface |
uses |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, StdCtrls, DBCtrls, DB, DBClient; |
type |
TfrmLogin = class(TForm) |
Label1: TLabel; |
GroupBox1: TGroupBox; |
GroupBox2: TGroupBox; |
Label2: TLabel; |
Label3: TLabel; |
Button1: TButton; |
cbxMitarbeiter: TDBLookupComboBox; |
cbxProjekt: TDBLookupComboBox; |
procedure Label2Click(Sender: TObject); |
procedure Label3Click(Sender: TObject); |
procedure Button1Click(Sender: TObject); |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
end; |
var |
frmLogin: TfrmLogin; |
implementation |
uses |
BugtrackerMain, Mitarbeiter, Projekte; |
{$R *.dfm} |
procedure TfrmLogin.Button1Click(Sender: TObject); |
begin |
if VarIsNull(cbxMitarbeiter.KeyValue) then |
begin |
ShowMessage('Bitte Mitarbeiter auswählen.'); |
cbxMitarbeiter.SetFocus; |
Exit; |
end; |
if VarIsNull(cbxProjekt.KeyValue) then |
begin |
ShowMessage('Bitte Projekt auswählen.'); |
cbxProjekt.SetFocus; |
Exit; |
end; |
frmBugtracker.eingeloggtMitarbeiter := cbxMitarbeiter.KeyValue; |
frmBugtracker.eingeloggtMitarbeiterName := cbxMitarbeiter.Text; |
frmBugtracker.aktuellesProjekt := cbxProjekt.KeyValue; |
frmBugtracker.aktuellesProjektName := cbxProjekt.Text; |
frmBugtracker.LblAngemeldet.Caption := Format('Eingeloggt: %s, Projekt: %s', [frmBugtracker.eingeloggtMitarbeiterName, frmBugtracker.aktuellesProjektName]); |
frmBugtracker.NeuFiltern; |
ModalResult := mrOk; // Das schließt den Dialog |
end; |
procedure TfrmLogin.Label2Click(Sender: TObject); |
begin |
frmMitarbeiter.ShowModal; |
end; |
procedure TfrmLogin.Label3Click(Sender: TObject); |
begin |
frmProjekte.ShowModal; |
end; |
end. |
/trunk/Bugtracker.bdsproj |
---|
0,0 → 1,175 |
<?xml version="1.0" encoding="utf-8"?> |
<BorlandProject> |
<PersonalityInfo> |
<Option> |
<Option Name="Personality">Delphi.Personality</Option> |
<Option Name="ProjectType"></Option> |
<Option Name="Version">1.0</Option> |
<Option Name="GUID">{D9325F5E-2B75-4C5F-B683-9907A01F0C72}</Option> |
</Option> |
</PersonalityInfo> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">Bugtracker.dpr</Source> |
</Source> |
<FileVersion> |
<FileVersion Name="Version">7.0</FileVersion> |
</FileVersion> |
<Compiler> |
<Compiler Name="A">8</Compiler> |
<Compiler Name="B">0</Compiler> |
<Compiler Name="C">1</Compiler> |
<Compiler Name="D">1</Compiler> |
<Compiler Name="E">0</Compiler> |
<Compiler Name="F">0</Compiler> |
<Compiler Name="G">1</Compiler> |
<Compiler Name="H">1</Compiler> |
<Compiler Name="I">1</Compiler> |
<Compiler Name="J">0</Compiler> |
<Compiler Name="K">0</Compiler> |
<Compiler Name="L">1</Compiler> |
<Compiler Name="M">0</Compiler> |
<Compiler Name="N">1</Compiler> |
<Compiler Name="O">1</Compiler> |
<Compiler Name="P">1</Compiler> |
<Compiler Name="Q">0</Compiler> |
<Compiler Name="R">0</Compiler> |
<Compiler Name="S">0</Compiler> |
<Compiler Name="T">0</Compiler> |
<Compiler Name="U">0</Compiler> |
<Compiler Name="V">1</Compiler> |
<Compiler Name="W">0</Compiler> |
<Compiler Name="X">1</Compiler> |
<Compiler Name="Y">1</Compiler> |
<Compiler Name="Z">1</Compiler> |
<Compiler Name="ShowHints">True</Compiler> |
<Compiler Name="ShowWarnings">True</Compiler> |
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> |
<Compiler Name="NamespacePrefix"></Compiler> |
<Compiler Name="GenerateDocumentation">False</Compiler> |
<Compiler Name="DefaultNamespace"></Compiler> |
<Compiler Name="SymbolDeprecated">True</Compiler> |
<Compiler Name="SymbolLibrary">True</Compiler> |
<Compiler Name="SymbolPlatform">True</Compiler> |
<Compiler Name="SymbolExperimental">True</Compiler> |
<Compiler Name="UnitLibrary">True</Compiler> |
<Compiler Name="UnitPlatform">True</Compiler> |
<Compiler Name="UnitDeprecated">True</Compiler> |
<Compiler Name="UnitExperimental">True</Compiler> |
<Compiler Name="HResultCompat">True</Compiler> |
<Compiler Name="HidingMember">True</Compiler> |
<Compiler Name="HiddenVirtual">True</Compiler> |
<Compiler Name="Garbage">True</Compiler> |
<Compiler Name="BoundsError">True</Compiler> |
<Compiler Name="ZeroNilCompat">True</Compiler> |
<Compiler Name="StringConstTruncated">True</Compiler> |
<Compiler Name="ForLoopVarVarPar">True</Compiler> |
<Compiler Name="TypedConstVarPar">True</Compiler> |
<Compiler Name="AsgToTypedConst">True</Compiler> |
<Compiler Name="CaseLabelRange">True</Compiler> |
<Compiler Name="ForVariable">True</Compiler> |
<Compiler Name="ConstructingAbstract">True</Compiler> |
<Compiler Name="ComparisonFalse">True</Compiler> |
<Compiler Name="ComparisonTrue">True</Compiler> |
<Compiler Name="ComparingSignedUnsigned">True</Compiler> |
<Compiler Name="CombiningSignedUnsigned">True</Compiler> |
<Compiler Name="UnsupportedConstruct">True</Compiler> |
<Compiler Name="FileOpen">True</Compiler> |
<Compiler Name="FileOpenUnitSrc">True</Compiler> |
<Compiler Name="BadGlobalSymbol">True</Compiler> |
<Compiler Name="DuplicateConstructorDestructor">True</Compiler> |
<Compiler Name="InvalidDirective">True</Compiler> |
<Compiler Name="PackageNoLink">True</Compiler> |
<Compiler Name="PackageThreadVar">True</Compiler> |
<Compiler Name="ImplicitImport">True</Compiler> |
<Compiler Name="HPPEMITIgnored">True</Compiler> |
<Compiler Name="NoRetVal">True</Compiler> |
<Compiler Name="UseBeforeDef">True</Compiler> |
<Compiler Name="ForLoopVarUndef">True</Compiler> |
<Compiler Name="UnitNameMismatch">True</Compiler> |
<Compiler Name="NoCFGFileFound">True</Compiler> |
<Compiler Name="ImplicitVariants">True</Compiler> |
<Compiler Name="UnicodeToLocale">True</Compiler> |
<Compiler Name="LocaleToUnicode">True</Compiler> |
<Compiler Name="ImagebaseMultiple">True</Compiler> |
<Compiler Name="SuspiciousTypecast">True</Compiler> |
<Compiler Name="PrivatePropAccessor">True</Compiler> |
<Compiler Name="UnsafeType">False</Compiler> |
<Compiler Name="UnsafeCode">False</Compiler> |
<Compiler Name="UnsafeCast">False</Compiler> |
<Compiler Name="OptionTruncated">True</Compiler> |
<Compiler Name="WideCharReduced">True</Compiler> |
<Compiler Name="DuplicatesIgnored">True</Compiler> |
<Compiler Name="UnitInitSeq">True</Compiler> |
<Compiler Name="LocalPInvoke">True</Compiler> |
<Compiler Name="MessageDirective">True</Compiler> |
<Compiler Name="CodePage"></Compiler> |
</Compiler> |
<Linker> |
<Linker Name="MapFile">0</Linker> |
<Linker Name="OutputObjs">0</Linker> |
<Linker Name="GenerateHpps">False</Linker> |
<Linker Name="ConsoleApp">1</Linker> |
<Linker Name="DebugInfo">False</Linker> |
<Linker Name="RemoteSymbols">False</Linker> |
<Linker Name="GenerateDRC">False</Linker> |
<Linker Name="MinStackSize">16384</Linker> |
<Linker Name="MaxStackSize">1048576</Linker> |
<Linker Name="ImageBase">4194304</Linker> |
<Linker Name="ExeDescription"></Linker> |
</Linker> |
<Directories> |
<Directories Name="OutputDir"></Directories> |
<Directories Name="UnitOutputDir"></Directories> |
<Directories Name="PackageDLLOutputDir"></Directories> |
<Directories Name="PackageDCPOutputDir"></Directories> |
<Directories Name="SearchPath"></Directories> |
<Directories Name="Packages"></Directories> |
<Directories Name="Conditionals"></Directories> |
<Directories Name="DebugSourceDirs"></Directories> |
<Directories Name="UsePackages">False</Directories> |
</Directories> |
<Parameters> |
<Parameters Name="RunParams"></Parameters> |
<Parameters Name="HostApplication"></Parameters> |
<Parameters Name="Launcher"></Parameters> |
<Parameters Name="UseLauncher">False</Parameters> |
<Parameters Name="DebugCWD"></Parameters> |
<Parameters Name="Debug Symbols Search Path"></Parameters> |
<Parameters Name="LoadAllSymbols">True</Parameters> |
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
</Parameters> |
<Language> |
<Language Name="ActiveLang"></Language> |
<Language Name="ProjectLang">$00000000</Language> |
<Language Name="RootDir"></Language> |
</Language> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1031</VersionInfo> |
<VersionInfo Name="CodePage">1252</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName">ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="FileDescription">Bugtracker für Windows</VersionInfoKeys> |
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName">WuLi</VersionInfoKeys> |
<VersionInfoKeys Name="LegalCopyright">(C) 2016 ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> |
<VersionInfoKeys Name="OriginalFilename">Bugtracker.exe</VersionInfoKeys> |
<VersionInfoKeys Name="ProductName">ViaThinkSoft Bugtracker für Windows</VersionInfoKeys> |
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Comments">www.daniel-marschall.de</VersionInfoKeys> |
</VersionInfoKeys> |
</Delphi.Personality> |
</BorlandProject> |
/trunk/Bugtracker.cfg |
---|
0,0 → 1,38 |
-$A8 |
-$B- |
-$C+ |
-$D+ |
-$E- |
-$F- |
-$G+ |
-$H+ |
-$I+ |
-$J- |
-$K- |
-$L+ |
-$M- |
-$N+ |
-$O+ |
-$P+ |
-$Q- |
-$R- |
-$S- |
-$T- |
-$U- |
-$V+ |
-$W- |
-$X+ |
-$YD |
-$Z1 |
-cg |
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; |
-H+ |
-W+ |
-M |
-$M16384,1048576 |
-K$00400000 |
-LE"C:\Users\user\Documents\Borland Studio-Projekte\Bpl" |
-LN"C:\Users\user\Documents\Borland Studio-Projekte\Bpl" |
-w-UNSAFE_TYPE |
-w-UNSAFE_CODE |
-w-UNSAFE_CAST |
/trunk/Bugtracker.dpr |
---|
0,0 → 1,25 |
program Bugtracker; |
uses |
Forms, |
BugtrackerMain in 'BugtrackerMain.pas' {frmBugtracker}, |
Mitarbeiter in 'Mitarbeiter.pas' {frmMitarbeiter}, |
Versionen in 'Versionen.pas' {frmVersionen}, |
Module in 'Module.pas' {frmModule}, |
Projekte in 'Projekte.pas' {frmProjekte}, |
Login in 'Login.pas' {frmLogin}, |
About in 'About.pas' {AboutBox}; |
{$R *.res} |
begin |
Application.Initialize; |
Application.CreateForm(TfrmBugtracker, frmBugtracker); |
Application.CreateForm(TfrmMitarbeiter, frmMitarbeiter); |
Application.CreateForm(TfrmVersionen, frmVersionen); |
Application.CreateForm(TfrmModule, frmModule); |
Application.CreateForm(TfrmProjekte, frmProjekte); |
Application.CreateForm(TfrmLogin, frmLogin); |
Application.CreateForm(TAboutBox, AboutBox); |
Application.Run; |
end. |
/trunk/Bugtracker.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/trunk/About.pas |
---|
0,0 → 1,31 |
unit About; |
interface |
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, |
Buttons, ExtCtrls; |
type |
TAboutBox = class(TForm) |
Panel1: TPanel; |
ProgramIcon: TImage; |
ProductName: TLabel; |
Version: TLabel; |
Copyright: TLabel; |
Comments: TLabel; |
OKButton: TButton; |
private |
{ Private-Deklarationen } |
public |
{ Public-Deklarationen } |
end; |
var |
AboutBox: TAboutBox; |
implementation |
{$R *.dfm} |
end. |
/trunk/DBDateEdit.txt |
---|
0,0 → 1,14 |
procedure TForm1.qryBugsAfterScroll(DataSet: TDataSet); |
begin |
DateTimePicker1.DateTime := qryBugs.FieldByName('fixdatum').AsDateTime; |
end; |
procedure TForm1.DateTimePicker1CloseUp(Sender: TObject); |
begin |
LockWindowUpdate(DBGrid1.Handle); |
if not (qryBugs.State in [dsEdit, dsInsert]) then qryBugs.Edit; |
qryBugs.FieldByName('fixdatum').AsDateTime := DateTimePicker1.DateTime; |
LockWindowUpdate(0); |
end; |
/trunk/. |
---|
Property changes: |
Added: svn:ignore |
+*.dcu |
+*.exe |
+__history |
+*.local |
+*.identcache |