Entwickler-Ecke
Sonstiges (Delphi) - Fehlermeldung -> "Ungültige Typumwandlung"
Jagg - Do 22.08.02 15:06
Titel: Fehlermeldung -> "Ungültige Typumwandlung"
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118:
| unit Material1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Db, DBTables;
type TForm11 = class(TForm) Image1: TImage; Label1: TLabel; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure FormClose(Sender: TObject; var Action: TCloseAction);
private { Private-Deklarationen } public { Public-Deklarationen } end;
var Form11: TForm11; var WelcheSeite,F11Anz:Integer; L1,L2,L3 : array [1..99] of TLabel; TE : array [1..99] of TEdit;
implementation
uses Material;
{$R *.DFM}
procedure TForm11.FormCreate(Sender: TObject); var T : TTable; D : TDataSource; i,a : integer; begin i := 1; F11Anz := 1; a := 0; Image1.Picture.LoadfromFile ('F:\Kasse\ProgrammDaten\Panel1.bmp'); T := TTable.Create(form11); T.DatabaseName := 'C:\Nguyen\Info Post Programm\'; T.TableName := 'Material1.dbf'; T.Active := True; D := TDataSource.Create(form11); D.DataSet := T; while not T.eof do begin if (T['Artnr']>=WelcheSeite)and(T['Artnr']<=WelcheSeite+99) then begin L1[F11Anz] := TLabel.create(Form11); L1[F11Anz].parent := Form11; with L1[F11Anz] do begin Caption :=T['Artnr']; Font.Name := 'Lucida Console'; Font.Size := 9; Font.Style := [fsBold]; Top := i*20; Left := 40+a*300; Transparent := True; end; L2[F11Anz] := TLabel.create(Form11); L2[F11Anz].parent := Form11; with L2[F11Anz] do begin Caption :=T['Wasdenn']; Font.Name := 'Lucida Console'; Font.Size := 9; Font.Style := [fsBold]; Top := i*20; Left := 70+A*300; Transparent := True; end; L3[F11Anz] := TLabel.create(Form11); L3[F11Anz].parent := Form11; with L3[F11Anz] do begin Caption :=T['Einheit']; Font.Name := 'Lucida Console'; Font.Size := 9; Font.Style := [fsBold]; Top := i*20; Left := 270+A*300; Transparent := True; end; TE[F11Anz]:= TEdit.create(Form11); TE[F11Anz].parent := Form11; with TE[F11Anz] do begin Font.Name := 'Lucida Console'; Font.Size := 9; Font.Style := [fsBold]; Top := i*20; Left := 320+A*300; Width := 25; OnKeyPress := Edit1KeyPress; end; inc(i); inc(F11Anz); if i = 25 then begin a := 1; i := 1; end; end; a := a+1; T.next; end; T.free; D.free; end; |
Er sagt mir die meldung "Ungültige Typumwandlung"
Titel geändert. TINO
Tino - Do 22.08.02 16:16
Bei 118 Zeilen Code wäre es von Vorteil wenn wir wüssten in welcher Zeile dieser Fehler auftritt!
Ex0rzist - Do 22.08.02 17:04
Hallo,
also ich würde mal stark vermuten, dass es an:
...Caption := T['ArtNr']; liegt.
TLabel.Caption und TTable sind nun alles andere als kompatibel zueinander.
@Tino
Hast du die Zeilen abgezählt? :mrgreen:
__________
Ex0rzist
Tino - Fr 23.08.02 08:28
| Ex0rzist hat folgendes geschrieben: |
| Hast du die Zeilen abgezählt? :mrgreen: |
Ne, kopiert und in den Editor eingefügt :-D
Jagg - Fr 23.08.02 10:06
hehehe
ich weiss ja selber nicht in weclher zeile der fehlerl liegt
Klabautermann - Fr 23.08.02 10:27
| Jagg hat folgendes geschrieben: |
| ich weiss ja selber nicht in weclher zeile der fehlerl liegt |
Wenn dir der Fehler gemeldet wird Makiert Delphi eine Zeile. In dieser liegt für gewöhnlich der Fehler :!:
Jagg - Fr 23.08.02 10:37
er sagt den fehler bei "application.run"
ALso könnt ihr mich jemand jetzt helfen ???
Günter - Fr 23.08.02 11:33
Hallo Jagg,
Der Fehler tritt immer vor der markierten Zeile auf --> Da dürfte etwas stehen wie
Quelltext
1:
| Application.CreateForm(TForm11, Form11); |
Das heisst, der Fehler tritt wohl im 'FormCreate' auf --> setz doch da mal einen Debug-Punkt ('F5') am anfang von 'FormCreate' und debug den Code schrittweise durch ('F8').
Dann müsste der Fehler zu lokalisieren sein.
Gruss Günter
Jagg - Mi 18.09.02 07:52
ich find den fehler immer noch nicht,ich weiss nicht was ich machen soll,kann mir jemand helfen ???
ich habe debuggt un da wo der fehler liegt,weiss ich nicht was ich machen soll !
Der Fehler liegt in der Zeile wo : "D.Free und T.Free" steht !
Kann mir jemand helfen ????????????????????????????????????ß
wwerner - Mi 18.09.02 08:07
Hi Jagg,
erst einmal, was für ein Fehkler kommt den?
2. Was machst du mit D (Datasource)
3. Die Tabelle muß vor den t.free auch geschlossen werden
LCS - Mi 18.09.02 08:35
Hi Jagg
der Fehler liegt im Inhalt deiner Tabelle. Du verwendest z. B.
Quelltext
1: 2: 3:
| if (T['ArtNr']>=WelcheSeite)and(T['ArtNr']<=WelcheSeite+99) then ... |
oder
Quelltext
1: 2: 3:
| ... Caption :=T['ArtNr']; ... |
An diesen Stellen finden lauter Variant-Typumwandlungen statt. Solange im betreffenden Feld ein Wert steht, kein Problem. Wenn der Feldinhalt aber leer ist, also Null dann krachts.
Entweder verwendest du eine expliziten Konvertierungsmethode der Felder (T['ArtNr'].AsInteger) oder du verwendest die IsNull Methode um sicherzustellen, dass kein Feld ohne Inhalt behandelt wird.
Gruss Lothar
Jagg - Mi 18.09.02 08:35
wenn ich das programm wie ganz am anfang beschrieben starte sagt er "ungültige typumwandlung" aber wenn ich jetzt da wo "T.next" steht davor die Zeile "end;" schreibe,geht er zu "T.free" und sag mir die meldung,deklaration erwartet,aber bezeichner 'T' gefunden !
ich versteh die welt nicht mehr !
LCS - Mi 18.09.02 08:37
Wow, zeitgleich :!:
Guck mal das Posting vorher an.
Jagg - Mi 18.09.02 09:07
wenn ich jetzt die
Quelltext
1:
| (T['ArtNr']<=WelcheSeite+99) |
die "99" weglasse funktioniert das programm !
Warum ?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!