AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Abstrakter Fehler

Ein Thema von MiChiJong · begonnen am 12. Nov 2006 · letzter Beitrag vom 16. Nov 2006
 
MiChiJong

Registriert seit: 27. Okt 2006
20 Beiträge
 
#14

Re: Abstrakter Fehler

  Alt 13. Nov 2006, 22:51
Ok dann ist dieser Fehler nicht reproduzierbar.
Nachfolgend der von mir bereits entspeckte Quelltext.

Delphi-Quellcode:
unit ssumain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Menus, IdExplicitTLSClientServerBase, IdFTP,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  OleCtrls, SHDocVw_TLB, ExtCtrls;

type
  TNamenArray = Array [0..12] of String;

  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    createTeilnehmerleiste: TButton;
    sendListe: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    IdHTTP1: TIdHTTP;
    IdFTP1: TIdFTP;
    Datei1: TMenuItem;
    Beenden1: TMenuItem;
    TabSheet2: TTabSheet;
    WebBrowser1: TWebBrowser;
    Timer1: TTimer;
    procedure createTeilnehmerleisteClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sendListeClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
 //Eigene Funktionen
    procedure generateTextfeld(left : Integer; name: String; width:Integer);
    procedure generateTeilnehmerfelder();
    procedure generateUeberschriften();
    procedure generateAuswahl(left : Integer; name: String);
    procedure generateCombobox(left : Integer; name: String; top:integer; width:integer);
    function datensatzRueckgabe(): String;
    function setArrays():TNamenArray;
    procedure loadCombobox(datname:String;cbox:String);
    function changeToID(temp:String): String;
    procedure dateiUpload();
    procedure Beenden1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure generateButton();
    procedure LoeschenClick(Sender: TObject);
    procedure loeschenTeilnehmer(tempzahl:String);
    procedure verschiebeTeilnehmer(tempzahl:String);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  zaehler: Integer;
  teilnehmer,tempdat : TextFile;

implementation
uses ssu;

{$R *.dfm}

procedure TForm1.createTeilnehmerleisteClick(Sender: TObject);
begin
if zaehler=0 then
begin
  generateUeberschriften();
end;
generateTeilnehmerfelder();

end;

procedure TForm1.generateTeilnehmerfelder();
var
x:Integer;
left: Array[0 .. 12] of Integer;
name: TNamenArray;
tempname: String;
width: Array[0 .. 12] of Integer;
begin

left[0]:=8;
left[1]:=72;
left[2]:=136;
left[3]:=208;
left[4]:=248;
left[5]:=296;
left[6]:=360;
left[7]:=432;
left[8]:=496;
left[9]:=536;
left[10]:=600;
left[11]:=656;
left[12]:=744;


width[0]:=64;
width[1]:=62;
width[2]:=72;
width[3]:=40;
width[4]:=48;
width[5]:=64;
width[6]:=72;
width[7]:=64;
width[8]:=40;
width[9]:=64;
width[10]:=56;
width[11]:=88;
width[12]:=70;

name:=setArrays();

for x := 0 to 12 do
  begin
     generateTextfeld(left[x],name[x],width[x]);
  end;
     tempname:='kurs' + IntToStr(zaehler);
     generateCombobox(830,tempname,-1,135);
     loadCombobox('kurs.txt',tempname);
     tempname:='sportart' + IntToStr(zaehler);
     generateCombobox(965,tempname,-1,50);
     loadCombobox('sportarten.txt',tempname);
     generateAuswahl(814,'mitglied');
     generateButton();

  zaehler:=zaehler+1;

end;

procedure TForm1.generateButton();
var
 Button: TButton;
 tname: String;
 tleft, ttop,tempzaehler : Integer;
begin
 //Vordekleration der Variablen
 tname:='loeschen' + IntToStr(zaehler);
 tleft:=0;
 tempzaehler:=zaehler-1;
 ttop:=50+zaehler*20;

 Button:=TButton.Create(Self);

 with Button do
 begin
     Name:=tname;
     Parent:=TabSheet1;
     Left:=tleft;
     Top:=ttop;
     Width:=8;
     Height:=8;
     OnClick:=LoeschenClick;
     Caption:='X';
 end;

end;

procedure TForm1.LoeschenClick(Sender: TObject);
var
tempzahl: String;
begin
 if Sender is TButton then
   tempzahl:=TButton(Sender).Name;
   Delete(tempzahl,0,8);
   tempzahl:=Copy(tempzahl,9,2);
   loeschenTeilnehmer(tempzahl);
   zaehler:=zaehler-1;
end;
procedure TForm1.loeschenTeilnehmer(tempzahl:String);
var
name: TNamenArray;
x,tempx: Integer;
temp: String;
begin
name:=setArrays();
ShowMessage('Loeschen T.');
for x := 0 to 12 do
  begin
     TEdit(FindComponent(name[x] + tempzahl)).Free;
  end;
ShowMessage('Loeschen T.');
  //Löschen des Mitglied und Kursfeldes
  TCheckBox(FindComponent('mitglied' + tempzahl)).Free;
  TComboBox(FindComponent('kurs' + tempzahl)).Free;
  TComboBox(FindComponent('sportart' + tempzahl)).Free;
  TButton(FindComponent('loeschen' + tempzahl)).Free;
  tempx:=strtoint(tempzahl)+1;

for x := tempx to zaehler-1 do
  begin
    verschiebeTeilnehmer(inttostr(x));
  end;

end;

procedure TForm1.verschiebeTeilnehmer(tempzahl:String);
var
name: TNamenArray;
x: Integer;
temp: String;
begin
ShowMessage('Verschiebe T.');

//erniedrige Tempzahl um 1 (neuer Wert)
temp:=InttoStr(Strtoint(tempzahl)-1);
//Einlesen des Arrays mit den Editfeldnamen
name:=setArrays();
for x := 0 to 12 do
  begin
     TEdit(FindComponent(name[x] + tempzahl)).Top:=TEdit(FindComponent(name[x] + tempzahl)).Top-20;
     TEdit(FindComponent(name[x] + tempzahl)).Name:=name[x] + temp;
  end;
  //Positionsänderung der Checkboxen, Comboboxen und des Löschbuttons
  TCheckBox(FindComponent('mitglied' + tempzahl)).Top:=TCheckBox(FindComponent('mitglied' + tempzahl)).Top-20;
  TComboBox(FindComponent('kurs' + tempzahl)).Top:=TComboBox(FindComponent('kurs' + tempzahl)).Top-20;
  TComboBox(FindComponent('sportart' + tempzahl)).Top:=TComboBox(FindComponent('sportart' + tempzahl)).Top-20;
  TButton(FindComponent('loeschen' + tempzahl)).Top:=TButton(FindComponent('loeschen' + tempzahl)).Top-20;
  //Umbennen der Checkboxen, Comboboxen und des Löschbuttons
  TCheckBox(FindComponent('mitglied' + tempzahl)).Name:='mitglied' + temp;
  TComboBox(FindComponent('kurs' + tempzahl)).Name:='kurs' + temp;
  TComboBox(FindComponent('sportart' + tempzahl)).Name:='sportart' + temp;
  TButton(FindComponent('loeschen' + tempzahl)).Name:='loeschen' + temp;
end;


procedure TForm1.generateAuswahl(left : Integer; name: String);
var
 Auswahlfeld: TCheckBox;
 tname: String;
 tbool: Boolean;
 tleft, tempzaehler : Integer;
begin
 //Vordekleration der Variablen
 tname:=name + IntToStr(zaehler);
 tleft:=left;
 tempzaehler:=zaehler-1;
 if zaehler>0 then begin
 tbool:=TCheckBox(FindComponent(name + IntToStr(tempzaehler))).Checked;
 end;

 Auswahlfeld:=TCheckBox.Create(Self);
 with Auswahlfeld do
 begin
     if zaehler=0 then begin
      Checked:=False;
      end
      else begin
      Checked:=tbool;
      end;
     Name:=tname;
     Parent:=TabSheet1;
     Left:=tleft;
     Caption:=' ';

     width:=15;
     Top:=50+zaehler*20;
 end;

end;

procedure TForm1.generateCombobox(left : Integer; name: String; top:Integer; width:integer);
var
 Auswahlfeld: TComboBox;
 tname: String;
 twidth, tleft, ttop,tempzaehler : Integer;
begin
 //Vordekleration der Variablen
 twidth:=width;
 tname:=name;
 tleft:=left;
 tempzaehler:=zaehler-1;
 ttop:=top;
 if ttop=-1 then ttop:=50+zaehler*20;

 Auswahlfeld:=TComboBox.Create(Self);

 with Auswahlfeld do
 begin
     Name:=tname;
     Parent:=TabSheet1;
     Left:=tleft;
     Top:=ttop;
     Width:=twidth;
     Text:='Bitte waehlen';
 end;
end;

procedure TForm1.loadCombobox(datname:String;cbox:String);
var
temp,tcbox:String;
combobox: TComboBox;
begin
    tcbox:=cbox;
    assignfile(tempdat,datname);
    reset(tempdat);

    combobox:=TComboBox(FindComponent(tcbox));


    while not eof(tempdat) do
      begin
          readln(tempdat, temp);
          with combobox do Items.Add(temp);
      end;
    closefile(tempdat);



end;

procedure TForm1.generateTextfeld(left : Integer; name: String; width:Integer);
var
 Textfeld: TEdit;
 tname,ttext: String;
 tleft, twidth,tempzaehler : Integer;
begin
 //Vordekleration der Variablen
 tname:=name + IntToStr(zaehler);
 twidth:=width;
 tleft:=left;
 tempzaehler:=zaehler-1;

 if zaehler>0 then begin
 ttext:=TEdit(FindComponent(name + IntToStr(tempzaehler))).Text;
 end;

 //Ab hier wird das Textfeld erzeugt;

 Textfeld:=TEdit.Create(Self);
 with Textfeld do
 begin
     if zaehler=0 then begin
      Text:=' ';
      end
      else begin
      Text:=ttext;
      end;
     Name:=tname;
     Parent:=TabSheet1;
     Left:=tleft;
     Width:=twidth;
     Top:=50+zaehler*20;
 end;

end;

procedure TForm1.generateUeberschriften();
var
x : Integer;
begin
for x := 1 to 16 do
  begin
    (FindComponent('label' + IntToStr(x)) as Tlabel).Visible:=True;
  end;

end;


procedure TForm1.FormCreate(Sender: TObject);
var
x : Integer;
begin
// Macht die Überschriften Labels unsichtbar
for x := 1 to 16 do
  begin
    (FindComponent('label' + IntToStr(x)) as Tlabel).Visible:=False;
  end;
// Erzeugt die Ausfahrtliste
 generateCombobox(250,'ausfahrt',0,300);
 WebBrowser1.Visible;
 randomize;
end;

function TForm1.setArrays():TNamenArray;
var name : TNamenArray;
begin

name[0]:='name';
name[1]:='vorname';
name[2]:='strasse';
name[3]:='plz';
name[4]:='ort';
name[5]:='gebdatum';
name[6]:='email';
name[7]:='telefon';
name[8]:='preis';
name[9]:='bank';
name[10]:='blz';
name[11]:='kontoinhaber';
name[12]:='kontonr';
result := name;
end;

procedure TForm1.sendListeClick(Sender: TObject);
begin
  
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form2.Close;
end;

procedure TForm1.dateiUpload();
begin

end;


function TForm1.changeToID(temp:String): String;
begin
end;

function TForm1.datensatzRueckgabe(): String;
begin

end;



procedure TForm1.Beenden1Click(Sender: TObject);
begin
Form2.Close;
Close;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
end;

end.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz