Autor Beitrag
uranop
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Di 14.07.09 07:07 
argh es is früh am morgen und ich habe bestimmt Kaffemangel,
wie immer halt xD

eehm Frage ....

Wenn ich nen Code der fix und fertig ist in z.b. php gebastelt habe dann schneide ich den raus und mach den mit include wieder in das projekt rein.

hier mit delphi tut das ja über units funzen wenn ich den aufbau so verstanden habe.

was ich nun nicht so wirklich raffe, ist...
warum ich nicht einfach nen codeblock nehmen kann, diesesn in block.pas als unit speicher und als uses einbinden kan ...
immer gibts gemecker und gemaule seitens der etw umgebung ...

Gibt mir mal bitte einer nen tritt wo hin und sacht wie das eben für doofe funzt : P


Danke

<< Kaffe machen geht
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Di 14.07.09 07:53 
Moin,

rehbraun bitte ;) Was du in der Unit brauchst musst du auch per uses einbinden. Schau dir mal das hier und das hier an. Dort wird auch erklärt, worin der Unterschied besteht.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 14.07.09 08:08 
.5OT: Units von Delphi und Includes von PHP sind nicht identisch. Was unter Delphi äquivalent wäre, wäre die Compiler-Direktive {$I}; dann darf die eingebundene Datei aber keine Unit sein.

Beispiel: Bei Aufruf der index.php wäre folgendes:

ausblenden hello.php
1:
<?= "Hello World!\n"; ?>					

ausblenden include
1:
2:
3:
4:
5:
<?php
include "hello.php";
echo "Ich bin hier!\n";
include "hello.php";
?>


in Delphi (in etwa; gibt da in Delphi paar Einschränkungen) zu diesem hier äquivalent:

ausblenden hello.inc
1:
WriteLn('Hello World!');					

ausblenden index.dpr
1:
2:
3:
4:
5:
6:
7:
8:
9:
program index;

{$APPTYPE CONSOLE}

begin
    {$I 'hello.inc'}
    WriteLn('Ich bin hier');
    {$I 'hello.inc'}
end.


(Die Einschränkung liegt bei Delphi darin, dass jede eingebundene Datei einen für sich abgeschlossenen Block bildet und in der übergeordneten Datei keinen Block unterbrechen darf.)

Ein adequates Projekt mit Units wäre:

ausblenden hello.pas
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Unit Hello;

interface

procedure SayHello;

implementation

Procedure SayHello;
begin
    WriteLn('Hello World!');
end;

end.

ausblenden index.dpr
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
program index;

{$APPTYPE CONSOLE}

uses Hello;

begin
    SayHello;
    WriteLn('Ich bin hier');
    SayHello;
end.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Di 14.07.09 08:13 
Allright,

demzufolge muss ich nun also hergehen und die unzähligen labels buttons checkboxen etc aus der main.pas raus kopieren in eine neue. wenn ich das so richtigverstanden habe.

incl natuerlich der im main pas eingebundenen anderen units .

na mal sehen ob das was wird

Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Di 14.07.09 08:24 
Ähm watt? Die Steuerlemente gehören auch in die Unit des Formulars. Wenn du dich in einer anderen Unit darauf beziehen willst, kannst du die Formunit im Uses einbinden und dich dann über den Alias der Klasse drauf beziehen.

Oder du übergibst der Funktion(?) in der neuen Unit die Inhalte als Variable und weißt den Rückgabewert dem entsprechenden Steuerelement zu.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Di 14.07.09 08:28 
naach .. BenBE hat mir das richtige aufgezeigt.

nach dem ich ganz in sich funktionierende Blöcke "outsource" klappt das wunderbar mit mit den include datein.

Danke vielmals das hat geholfen.

....
Und hierdrin sind schoen fein saeuberlich aufgeteilt ca 2200 Zeilen verschwunden
Funktioniert einwandfrei

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
// ######### Rechner Einstellungen
{$I 'pcstuff.inc'}
// ######### Allgemeines
{$I 'allg.inc'}
// ######### Dienste, Registry XR
{$I 'services.inc'}
// ######### Environment
{$I 'environment.inc'}
// ######### SMS
{$I 'sms.inc'}
// ######### RUD 4 ALL
{$I 'rud4all.inc'}
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 14.07.09 10:00 
Und das ist genau das, was man in Delphi NICHT tun sollte ;-)

Schreib Dir aus diesen Include-Files am besten UNABHÄNGIGE Units, die die Funktionen unabhängig von irgendwelchen Formularelementen kapseln (Model --> Control --> View) und binde dann diese separaten Units ein. Daher auch in meinem vorigen Post der Hinweis 0.5OT --> Off Topic ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: Di 14.07.09 10:46 
ja meister : )

wenn ich dazu komme. ich musste nun erstmal Platz schaffen. die Fleißarbeit muss ich eh daheim machen.
Dazu kommt man hier in der Arbeit nicht.