allg. Fragen

Für Fragen von Einsteigern und Programmieranfängern...
mrmax
Beiträge: 9
Registriert: Sa 27. Aug 2011, 12:16

allg. Fragen

Beitrag von mrmax »

Hi!
Wie ihr in "neue Nutzer" sehen könnt bin ich gaanz neu hier.
ich nutze:
windows 7 pro x64
ubuntu 11.04 Natty

ich habe für ein Programm einige fragen:
wie kann ich
-Debugger infos aus dem programm ausschließen(geht das mit -xs?)
-das aktuelle OS herausfinden(im Programm ^^)
-einen kommandozeilenschalter abrufen zB "Beispiel.exe -test" oder "Beispiel.exe /test"
-ein anderes Programm ausführen, das sich im selben Ordner befindet
-eine Website mit dem Standartbrowser öffnen(zb M. Firefox, Opera)
-in einem bild die einstellung treffen, dass man es bei gehaltener linker maustaste verschieben kann
-ein Bild so anzeigen zu lassen als würde es leuchten (Glow-Effect)
(-Eventuell über TCP/IP Daten Senden/Empfangen)

Ich weiß das sind jetzt sehr viele Fragen, ich wäre euch aber trotzdem dankbar, wenn ihr mir helfen könntet.

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: allg. Fragen

Beitrag von creed steiger »

mrmax hat geschrieben:
1-Debugger infos aus dem programm ausschließen(geht das mit -xs?)
2-das aktuelle OS herausfinden(im Programm ^^)
3-einen kommandozeilenschalter abrufen zB "Beispiel.exe -test" oder "Beispiel.exe /test"
4-ein anderes Programm ausführen, das sich im selben Ordner befindet
5-eine Website mit dem Standartbrowser öffnen(zb M. Firefox, Opera)
-6in einem bild die einstellung treffen, dass man es bei gehaltener linker maustaste verschieben kann
-7ein Bild so anzeigen zu lassen als würde es leuchten (Glow-Effect)
8(-Eventuell über TCP/IP Daten Senden/Empfangen)
1- http://wiki.lazarus.freepascal.org/Laza ... o.C3.9F.3F" onclick="window.open(this.href);return false;
2-für was soll das gut sein?
3- http://wiki.freepascal.org/Command_line ... _variables" onclick="window.open(this.href);return false;
4- http://wiki.freepascal.org/Executing_External_Programs" onclick="window.open(this.href);return false;
5- http://lazarus-ccr.sourceforge.net/docs ... enurl.html" onclick="window.open(this.href);return false;
6-? (evtl http://wiki.freepascal.org/BGRABitmap_tutorial" onclick="window.open(this.href);return false; oder
7-? http://wiki.lazarus.freepascal.org/BGRA ... nipulation" onclick="window.open(this.href);return false;)
8- http://www.ararat.cz/synapse/doku.php/public:howto" onclick="window.open(this.href);return false;



Edit: Achja fast vergessen Herzlich Wilkommen
Zuletzt geändert von creed steiger am Sa 27. Aug 2011, 15:55, insgesamt 2-mal geändert.

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: allg. Fragen

Beitrag von MAC »

1. Projekt --> Projekteinstellungen --> Linken:
a) Ich hab immer folgende Einstellungen
-g : an
-Xs : an
-Xg : an
alle anderen bleiben wie sie sind...
--> Das erzeugt Debuggerinformationen, speichert diese aber nicht in der exe , sondern in einer externen Datei.

2. Willst du das Aktuelle Os zur Laufzeit feststellen oder beim Kompilieren ?
Den einzigen unterschied den du hättest währe zum beispeil zu erfahren ob du jetzt Windows Vista oder Windows 7 bzw Ubuntu 10.4 oder Kubuntu 11.4 drauf hast.
Denn für Windows / bzw Linux bzw Mac musst du sowieso eine extra "Exe" erstellen.
Ich denke da findest du über google irgendwo eine Datei wo die infos gespeichert sind...

3.

Code: Alles auswählen

ParamCount // gibt anzahl der Parameter an
ParamStr(1) // gibt den 1sten Parameter als String an
// ich glaub der 0te ist der Pfad des Programms oder so
4. - 8.
Hier ist zu erwähnen, das Lazarus seht viele Gemeinsammkeiten mit Delphi hat.
Also sollte es auch möglich sein nach z.B "Delphi externens Programm ausführen" zu suchen und etwas zu finden.
Funktionieren wird es vielleicht erst wenn du "windows" und "shellapi" zu units hinzufügst...
Dann kannst du das Programm allerdings nur noch für WIndows Kompilieren (außer du verwendest Compilerschalter ...)

9. TCP/IP
dort verwende ich lnet, synapse ist aber auch eine beliebte Wahl.

Code: Alles auswählen

Signatur := nil;

mrmax
Beiträge: 9
Registriert: Sa 27. Aug 2011, 12:16

Re: allg. Fragen

Beitrag von mrmax »

Also erstmal vielen lieben dank für die sehr ausführlichen antworten. :D
Mann da wart ihr aber ganz schön fix :shock:
Mal sehen was ich damit anfangen kann. :mrgreen:
also wegen dem os:
-ich möchte ein programm vorschalten das auf linux und windows funzt
und dann die entsprechende Version des richtigen progs startet
-wie kann ich shellexcute genau benutzen?
welche alternativen gäbe es dafür?

Also danke und tschüs, die auswertung der antworten wird aber etwas dauern.

mrmax
Beiträge: 9
Registriert: Sa 27. Aug 2011, 12:16

Re: allg. Fragen

Beitrag von mrmax »

1 -gelöst
2 -ungelöst
3 -gelöst
4 -noch fragen...
Ich denke ich weiß, wie ich Tprocess einsetze.
also wie finde ich dafür nun heraus, in welchen Verzeichnis sich die aktuelle Datei wirklich befindet?
das programm wird unter windows nicht installiert
mache ich das wirklich mit FindDefaultExecutablePath(test.exe), wenn ich gerade test.exe schreibe?

5 -scheint gelöst
und muss ich noch eine zusätzliche unit(sysutils oder so) hinzufügen um openurl(google.de) zu benutzen?

den Rest habe ich noch nicht geprüft :mrgreen:

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: allg. Fragen

Beitrag von MAC »

ich mach das immer mit

Code: Alles auswählen

GetCurrentDir
dann bekommst du halt den Ordner in dem sich die exe befindet.

Code: Alles auswählen

Signatur := nil;

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: allg. Fragen

Beitrag von DiBo33 »

dann bekommst du halt den Ordner in dem sich die exe befindet.
Geht aber nur wenn du das Programm auch vom Programmpfad ausgeführt hast, sonst weicht dieser ab.

Code: Alles auswählen

ExtractFilePath(ParamStr(0));
gibt dir unabhängig davon den Programmpfad.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: allg. Fragen

Beitrag von Christian »

Application.Location
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: allg. Fragen

Beitrag von Scotty »

mrmax hat geschrieben:2 -ungelöst
Einfach einkompilieren:

Code: Alles auswählen

{$ifdef Windows}
ShowMessage('Windows');
{$else}
ShowMessage('Nicht Windows');
{$endif}

mrmax
Beiträge: 9
Registriert: Sa 27. Aug 2011, 12:16

Re: allg. Fragen

Beitrag von mrmax »

daanke :D
1-gelöst
2-gelöst
3-gelöst
4-gelöst
5-gelöst
8-gelöst
nun wärs gut, wenn nun jemand 6 und 7 beantworten könnte,
aber die wichtigsten fragen sind eigentlich schon beantwortet - danke! :mrgreen:

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: allg. Fragen

Beitrag von Christian »

Was gefällt dir an den Antworten von creed Steiger nicht ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mrmax
Beiträge: 9
Registriert: Sa 27. Aug 2011, 12:16

Re: allg. Fragen

Beitrag von mrmax »

die letzen seiten von creed steiger verstehe ich nicht,
welches tutorial muss ich nutzen?

mrmax
Beiträge: 9
Registriert: Sa 27. Aug 2011, 12:16

Re: allg. Fragen

Beitrag von mrmax »

ausserdem weiß ich nicht wie man synapse nutzt.
-wie wird es in mein projekt integriert?
-wie baue ich eine TCP/IP verbindung zB über port 555 auf?
-wie sende/empfange ich daten?
-wie erstelle ich ein "dauersenden" von einem bestimmten string
-wie lasse ich in kurzen abständen empfangene daten überprüfen

-wie kann ich eine verbindung zwischen mehreren pcs übers internet herstellen(ähnlich TCP/IP im heimnetzwerk)

Kruemel_02
Beiträge: 4
Registriert: Do 16. Dez 2010, 21:58

Re: allg. Fragen

Beitrag von Kruemel_02 »

mrmax hat geschrieben:ausserdem weiß ich nicht wie man synapse nutzt.
-wie wird es in mein projekt integriert?
-wie baue ich eine TCP/IP verbindung zB über port 555 auf?
-wie sende/empfange ich daten?
-wie erstelle ich ein "dauersenden" von einem bestimmten string
-wie lasse ich in kurzen abständen empfangene daten überprüfen

-wie kann ich eine verbindung zwischen mehreren pcs übers internet herstellen(ähnlich TCP/IP im heimnetzwerk)
Schau Dir mal die Demos an, die sind z.B. im Stable Release enthalten unter "synapse39-2.zip\source\demo" hier beziehungweise auf dieser Seite erhältlich: http://www.ararat.cz/synapse/doku.php/download" onclick="window.open(this.href);return false;

mrmax
Beiträge: 9
Registriert: Sa 27. Aug 2011, 12:16

Re: allg. Fragen

Beitrag von mrmax »

ja schon klar, aber wie macht man das denn generell?
Also geplant habe ich, dass man im menü entweder host oder gast auswählen muss
und dann als host einen port auswählen, oder als gast die host-ip und den host-port
wählt. Nun wird geprüft, ob der Port auch frei ist.
Dann soll der host als "dauersenden" eine authentifizierung zb einen String senden
und der gast diese auth. empfängt und eine bestätigung sendet. Dann im spiel sollen sich gäste
und host über festgelegte strings verständigen(zb "cp0" = Spieler 1 ist dran).
ABER: Ich habe echt keinen blassen, wie ich das anstellen soll :oops:
-was benutzt man für heimnetzwerk-interne übertragungen?
-was benutzt man dementsprechend für übertragungen übers internet?
-wie funzt das alles (ich bin da überhaupt nicht konform)?
-wie baut man die verbindungen denn auf und was für verbindungen müssen denn überhaupt aufgebaut werden?

Antworten