AGB  ·  Datenschutz  ·  Impressum  







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

Funktionen einbinden ?

Ein Thema von Bastler · begonnen am 26. Aug 2006 · letzter Beitrag vom 26. Aug 2006
Antwort Antwort
Bastler

Registriert seit: 15. Aug 2006
153 Beiträge
 
Delphi 7 Personal
 
#1

Funktionen einbinden ?

  Alt 26. Aug 2006, 11:43
Hallo;

Ich habe in meinen Code eine Funktion geschrieben, die ich ja, um sie zu benutzen, logischer weise deklarieren muss, ich wollte sie so einbinden

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    function Form1.DownloadFile(Source, Dest: String): Boolean;
doch dann sagt mir der Compilier:
Zitat:
'='erwartet, aber '(' gefunden.
Was ist dadran falsch? Oder muss ich die ganz wo anders deklarieren?

Danke!!!
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir noch nicht ganz sicher
(A. Einstein)
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#2

Re: Funktionen einbinden ?

  Alt 26. Aug 2006, 11:52
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    function DownloadFile(Source, Dest: String): Boolean;
Lass in der Deklaration das Form1 weg.
  Mit Zitat antworten Zitat
Benutzerbild von Daniel B
Daniel B

Registriert seit: 27. Okt 2005
Ort: Dachau
453 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Funktionen einbinden ?

  Alt 26. Aug 2006, 11:53
Mach es besser ins private oder public rein, weiter unten im Typ TForm1 und mach auch das TForm1 im Namen weg, nur den Namen der Funktion selbst angeben.

Weiter unten schreibst du es so auf wie es jetzt ist.
Servus...
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#4

Re: Funktionen einbinden ?

  Alt 26. Aug 2006, 12:55
Mein genereller Vorschlag lautet:

1. Im implementation-Abschnitt die Funktion/Prozedur beginnen:
Delphi-Quellcode:
function TForm1.DownloadFile(Source, Dest: String): Boolean;
begin
  ;
end;
2. Dann Strg-Umsch-C drücken - und Delphi setzt die Deklaration selbständig in der richtigen Schreibweise in den private-Bereich.

3. Nur dann, wenn die Funktion/Prozedur public benötigt wird, wird die Deklaration verschoben.

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Bastler

Registriert seit: 15. Aug 2006
153 Beiträge
 
Delphi 7 Personal
 
#5

Re: Funktionen einbinden ?

  Alt 26. Aug 2006, 13:10
Danke, es klappt...

Eine Frage noch, zum selben Thema:

function JPEGtoBMP(const FileName: TFileName):Tbitmap; Comnpiler:
Zitat:
[Fehler] Unit1.pas(33): Ungenügende Forward- oder External-Deklaration: 'TForm1.JPEGtoBMP'
die Funktion selber sieht so aus:

Delphi-Quellcode:
function JPEGtoBMP(const FileName: TFileName):Tbitmap;
var
jpeg: TJPEGImage;
bmp: TBitmap;
begin
jpeg := TJPEGImage.Create;
try
jpeg.CompressionQuality := 100; {Default Value}
jpeg.LoadFromFile(FileName);
bmp := TBitmap.Create;
try
bmp.Assign(jpeg);
result:=bmp;
bmp.SaveToFile(ExtractFilePath(ParamStr(0))+'\temp.bmp');
finally
bmp.Free
end;
finally
jpeg.Free
end;
end;
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir noch nicht ganz sicher
(A. Einstein)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Funktionen einbinden ?

  Alt 26. Aug 2006, 13:12
Delphi-Quellcode:
function TForm1.JPEGtoBMP(const FileName: TFileName):Tbitmap; // <-- TForm1 nicht vergessen!
var
jpeg: TJPEGImage;
bmp: TBitmap;
begin
jpeg := TJPEGImage.Create;
try
jpeg.CompressionQuality := 100; {Default Value}
jpeg.LoadFromFile(FileName);
bmp := TBitmap.Create;
try
bmp.Assign(jpeg);
result:=bmp;
bmp.SaveToFile(ExtractFilePath(ParamStr(0))+'\temp.bmp');
finally
bmp.Free
end;
finally
jpeg.Free
end;
end;


Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Funktionen einbinden ?

  Alt 26. Aug 2006, 17:42
Moin Jürgen,

Zitat von Jürgen Thomas:
Mein genereller Vorschlag lautet:

1. Im implementation-Abschnitt die Funktion/Prozedur beginnen:
Delphi-Quellcode:
function TForm1.DownloadFile(Source, Dest: String): Boolean;
begin
  ;
end;
2. Dann Strg-Umsch-C drücken - und Delphi setzt die Deklaration selbständig in der richtigen Schreibweise in den private-Bereich.

3. Nur dann, wenn die Funktion/Prozedur public benötigt wird, wird die Deklaration verschoben.

Gruß Jürgen
Dazu eine allgemeine Anmerkung:
Das mit STRG-UMSCH-C funktioniert erst ab den Pro-Versionen.
In der PE muss man leider alles selber schreiben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#8

Re: Funktionen einbinden ?

  Alt 26. Aug 2006, 18:09
Zitat von Christian Seehase:
Das mit STRG-UMSCH-C funktioniert erst ab den Pro-Versionen.
In der PE muss man leider alles selber schreiben.
Oh... Damit hatte ich nicht gerechnet, dass Borland selbst bei den IDE-Tastenkürzeln zwischen den Versionen unterscheidet. Nun ja...

@Bastler und viele andere hier im Forum
Bitte formatiert Eure Quelltexte besser: jeder Block sollte separat eingerückt werden, z.B.:
Delphi-Quellcode:
function TForm1.JPEGtoBMP(const FileName: TFileName):Tbitmap; // <-- TForm1 nicht vergessen!
var
  jpeg: TJPEGImage;
  bmp: TBitmap;
begin
  jpeg := TJPEGImage.Create;
  try
    jpeg.CompressionQuality := 100; {Default Value}
    jpeg.LoadFromFile(FileName);
    bmp := TBitmap.Create;
    try
      bmp.Assign(jpeg);
      result:=bmp;
      bmp.SaveToFile(ExtractFilePath(ParamStr(0))+'\temp.bmp');
    finally
      bmp.Free
    end;
  finally
    jpeg.Free
  end;
end;
Es liest sich einfach besser, und logische Fehler werden schneller erkannt!!!

Außerdem empfehle ich, auch vor 'end;' den Befehl mit Semikolon abzuschließen; das vereinfacht spätere Änderungen.

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Funktionen einbinden ?

  Alt 26. Aug 2006, 18:18
Hallo,

Zitat von Bastler:
Delphi-Quellcode:
try
  bmp.Assign(jpeg);
  result:=bmp; // <<--- !
  bmp.SaveToFile(ExtractFilePath(ParamStr(0))+'\temp.bmp');
finally
  bmp.Free // <<--- ?
end;
Die Bitmap wird freigegeben, obwohl sie der Rückgabewert der Funktion ist?

Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort


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:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz