![]() |
kleine abfrage
hallo, also ich wollte folgendes realisieren, und zwar das wenn ein textfeld leer ist er eine schaltfläche nicht zeigen soll.
so sieht das bisher aus nur der kommt mit den typen nicht klar
Delphi-Quellcode:
wie muss das aussehen??
if (not (edit1.text := '')) then
begin button1.Visible:= true; end; |
Re: kleine abfrage
Zitat:
Delphi-Quellcode:
bzw.
if not (edit1.text= '') then
button1.Visible:= true else button1.Visible:= false;
Delphi-Quellcode:
bzw.
if edit1.text <> '' then
button1.Visible:= true else button1.Visible:= false;
Delphi-Quellcode:
bzw.
if edit1.text = '' then
button1.Visible:= false else button1.Visible:= true;
Delphi-Quellcode:
if not (edit1.text <> '') then
button1.Visible:= false else button1.Visible:= true; Merke: := ist eine Zuweisung = ist ein Vergleich begin und end sind nicht falsch, doch in dem Beispiel fördern sie nicht die Übersichtlichkeit. MfG GM |
Re: kleine abfrage
oh habsch voll vergessen..danke dir und schönen abend noch.
|
Re: kleine abfrage
und hab noch einen fehler jetzt..hier der code
Delphi-Quellcode:
ich habe es mit beiden typen versucht er spuckt mir trotzdem immer den fehler aus entweder TFileStream und Filestream oder halt integer und filestream sind nicht kompatibel.
var
BackupName: string; FileHandle: TFileStream; // vorher 'Integer' StringLen: Integer; X: Integer; Y: Integer; begin if SaveDialog1.Execute then begin if FileExists(SaveDialog1.FileName) then begin BackupName := ExtractFileName(SaveDialog1.FileName); BackupName := ChangeFileExt(BackupName, '.BAK'); if not RenameFile(SaveDialog1.FileName, BackupName) then raise Exception.Create('Unfähig eine Aushilfsdatei zu erschaffen.'); end; FileHandle := FileCreate(SaveDialog1.FileName); FileWrite(FileHandle, Sg.ColCount, SizeOf(Sg.ColCount)); FileWrite(FileHandle, Sg.RowCount, SizeOf(SG.RowCount)); for X := 0 to SG.ColCount - 1 do begin |
Re: kleine abfrage
Erstmal: Neue Frage, neuer Thread.
Filehandle muss Integer sein. Der Code kommt aus dem Beispiel der OH. Und dort sehe ich grad keinen Fehler. In welcher Zeile kommt denn die Meldung. |
Re: kleine abfrage
ja wenn ich den auf integer stelle zeigt er mir hier genau den selber fehler an.
Delphi-Quellcode:
FileHandle := FileCreate(SaveDialog1.FileName); //Inkompatible Typen 'Integer' und 'Filestream'
|
Re: kleine abfrage
Dann mach mal aus deinem Integer einen TFileStream.
Und was den Button betrifft:
Delphi-Quellcode:
ist etwas einfacher, als dein if-else Konstrukt.
Button1.Enabled := Edit1.Text <> '';
|
Re: kleine abfrage
Sollte schon ein Integer bleiben:
Delphi-Quellcode:
function FileCreate(const FileName: string): Integer;
Hast du Filename noch woanders(global) als etwas anderes deklariert? Zitat:
|
Re: kleine abfrage
ja das mit dem TFileStream hab ich auch schon versucht klappt auch nicht da sagt er mir dann halt den fehler: Inkompatible typen Tfilestream und filestream.
|
Re: kleine abfrage
nein filename hab ich nirgendwo deklariert...
|
Re: kleine abfrage
also nun ist er weiter gehumpelt aber meldet jetzt sofort den fehler: [Error] Datenfenster.pas(145): E2250 There is no overloaded version of 'FileWrite' that can be called with these arguments
zeile 5,7,14,15, desweiteren in zeile 15 den fehler: [Error] Datenfenster.pas(147): E2066 Missing operator or semicolon und in zeile 19 [Error] Datenfenster.pas(150): E2010 Incompatible types: 'FileStream' and 'Integer'
Delphi-Quellcode:
1 raise Exception.Create('Unfähig eine Aushilfsdatei zu erschaffen.');
2 end; 3 FileHandle := FileCreate(SaveDialog1.FileName); 4 FileWrite(FileHandle, 5 Sg.ColCount, SizeOf(Sg.ColCount)); 6 FileWrite(FileHandle, 7 Sg.RowCount, SizeOf(SG.RowCount)); 8 for X := 0 to SG.ColCount - 1 do 9 begin 10 11 for Y := 0 to SG.RowCount - 1 do 12 begin 13 StringLen := Length(SG.Cells[X,Y]); 14 FileWrite(FileHandle, StringLen, SizeOf(StringLen)); 15 FileWrite(FileHandle, 16 SG.Cells[X,Y], stringlen(SG.Cells[X,Y])); 17 end; 18 end; 19 FileClose(FileHandle); |
Re: kleine abfrage
hmmmm ???
bei mir erzeugt dein Code keinen Fehler? Habe Filehandle als Integer vereinbart, so wie es sein muss. Ups...vorhin meinte ich nicht Filename, sondern natürlich filehandle....ist das woanders nochmal deklariert? Was ist Datenfenster.pas?! Wahrscheinlich liegt dort der Knackpunkt. Dort ist sicher eine auch Procedure Filewrite enthalten, die aber nach einem filehandle vom Typ Tfilestream verlangt!?! Kommt der Fehler auch noch, wenn du das schreibst:
Delphi-Quellcode:
usw. ?
sysutils.filewrite(blabla)
|
Re: kleine abfrage
Moin Gunar,
Du hast eine Variante vergessen:
Delphi-Quellcode:
;-)
button1.Visible:= edit1.text <> '';
|
Re: kleine abfrage
hi, also Datenfenster.pas ist die unit, bzw die form für das stinggrid.
filehandle hab ich auch als integer deklariert nur in dieser procedure sonst nirgends. womit hast du den quelltext denn geschrieben?? ich habe ihn vor nem jahr mit delphi 7 gemacht, diese version hab ich aber leider nichtmehr und benutzte zur zeit delphi 2005, kann es vielleicht daran liegen das er es nicht annimmt?? |
Re: kleine abfrage
Hi, benutze Delphi 6. Bei 2005 bin ich der falsche Ansprechpartner. :)
Zitat:
|
Re: kleine abfrage
jop bin ich mir ganz sicher...ich krieg echt nen wurm dabei...bei der öffnen procedure genauso, da erkennt er kein allocmem und freemem....
|
Re: kleine abfrage
Sorry, ich kann dir nicht weiterhelfen.
Am besten du machst für dieses spezielle Problem nen neuen Thread auf mit einem aussagekräftigen Titel(vielleicht auch zum Thema Delphi2005). Leute, die in diesen Thread schauen, blicken nur kurz auf dein "kleine Abfrage"-Problem und denken sich, das dies sicher schon gelöst worden ist. MfG GM |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 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