![]() |
Umgang mit einem Record
Delphi-Quellcode:
wie Fulle ich ein Record und wie frage ich es ab
type
Item = record S1 : Integer; S2 : String; end; function Cut(Text: String):Item; var sl: TStrings; x : Item; t: String; begin sl := TStringList.Create; sl.delimiter := ' '; sl.DelimitedText := Text; t:= StringReplace(sl.Strings[0],'(','',[rfReplaceAll]); t:= StringReplace(t,')','',[rfReplaceAll]); x.S1 := StrtoInt(t); //1. Teilstring //ShowMessage(t); //zum test bis hier stimmts x.S2 := sl.Strings[1]; //2. Teilstring //ShowMessage(sl.Strings[1]); //zum test bis hier stimmts end; Procedure OpenTab; var s : String; x: Integer; tli: TListItem; b: Item; begin With frmmain do Begin SynMemo1.Clear; ADOQuery1.SQL.Clear; ADOQuery1.Close; s:= Treeview1.Selected.Text; cut(s); ShowMessage(b.s2);// zeigt nichts an zum test // s:= S2; ADOQuery1.SQL.Text := 'SELECT * FROM '+s; ADOQuery1.Open; while not ADOQuery1.Eof do begin s:=ADOQuery1.FieldByName('Feld1').AsString; tli:=ListView1.Items.Add; tli.Caption:=s; Next; End; end; end; |
Re: Umgang mit einem Record
füllen, einfach wie oben... abfragen... einfach
record.items... haste aber nicht gezeigt.. ausserdem solltest dir mal den unterscheid zwischen lokalen, globalen und classen records klar machen ... :-) |
Re: Umgang mit einem Record
Wenn ich das Record abfrage ist es aber immer Leer bzw. zeigt nix an
|
Re: Umgang mit einem Record
Du hast item ja auch noch nichts zugewiesen!
Delphi-Quellcode:
b := cut(s);
|
Re: Umgang mit einem Record
... und dran denken die angelegte TStringList Instanz in Cut() auch wieder freigeben!
|
Re: Umgang mit einem Record
führt auch zu nix
Delphi-Quellcode:
type
Item = record S1 : Integer; S2 : String; end; function Cut(Text: String):Item; var sl: TStrings; b : Item; t: String; begin sl := TStringList.Create; sl.delimiter := ' '; sl.DelimitedText := Text; t:= StringReplace(sl.Strings[0],'(','',[rfReplaceAll]); t:= StringReplace(t,')','',[rfReplaceAll]); b.S1 := StrtoInt(t); //1. Teilstring //ShowMessage(t); //zum test bis hier stimmts b.S2 := sl.Strings[1]; //2. Teilstring //ShowMessage(sl.Strings[1]); //zum test bis hier stimmts sl.free; end; Procedure OpenTab; var s : String; x: Integer; tli: TListItem; b: Item; begin With frmmain do Begin SynMemo1.Clear; ADOQuery1.SQL.Clear; ADOQuery1.Close; s:= Treeview1.Selected.Text; b:= cut(s); ShowMessage(b.s2); // leeres fenster ADOQuery1.SQL.Text := 'SELECT * FROM '+b.s2; // deswegen hier Syntaxfehler in der From Klausel ADOQuery1.Open; while not ADOQuery1.Eof do begin s:=ADOQuery1.FieldByName('Feld1').AsString; tli:=ListView1.Items.Add; tli.Caption:=s; Next; End; end; end; |
Re: Umgang mit einem Record
Und was steht in s?
|
Re: Umgang mit einem Record
Hallo Gehstock,
eine Funktion sollte immer einen definierten Rückgabewert besitzen. Deine Funktion Cut() hat das nicht. Gruß Hawkeye |
Re: Umgang mit einem Record
Es fehlt
Delphi-Quellcode:
result := b;
|
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Delphi-Frage. |
Re: Umgang mit einem Record
Das wars Danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 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 by Thomas Breitkreuz