Autor Beitrag
Swordooo
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 119

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: So 27.07.08 18:18 
Hi an alle,
Da ich die Skins von den normalen WIN-Button langweilig finde, habe ich mir einen eigenen "Button" (Image) gemacht. OnMouseMove soll die Schrift seine Farbe ändern, weshalb ich einmal eine .jpg Datei mit normal weißer Schrift habe und einmal mit roter Schrift. Ich habe einen Ordner indem alles enthalten ist.
Nun möchte ich hierraus die jpg-Datei mit der roten schrift laden. Jedoch, wenn ich das Programm weiter gebe, liegt das Programm ja wahrscheinlich in einem anderen Pfad.

========>Gibt es etwas, wie die .exe herausfinden kann, wo sie abgespeichert ist:

Bei mir sind die jpg's hier:

C:\Delphi Projekte\SDI SSYC\Data\Skin\button_speichern.jpg (weiß)
C:\Delphi Projekte\SDI SSYC\Data\Skin\button_speichern_move.jpg (rot)

Dieser Teil is eine Variable: C:\Delphi Projekte\

dieser ist logischer weise festgelget: \SDI SSYC\Data\Skinbutton_speichern.jpg (bzw. button_speichern_move.jpg)

Danke schonmal. Swordooo

Moderiert von user profile iconNarses: Titel geändert.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 27.07.08 18:20 
Stichworte: ParamCount, ParamStr und ExtractFilePath bzw. ExtractFileDir. Das einfach nur zusammenbauen. Alternativ Application.Exename verwenden.

_________________
We are, we were and will not be.
delphi10
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: So 27.07.08 18:27 
Pack doch die JPG's in eine Res-Datei. Daraus mit LoadFromRessourceName die JPG laden. Dann gibts keine Probleme mit Pfaden
ausblenden Delphi-Quelltext
1:
Formx.imagex.Picture.Bitmap.LoadFromResourceName(hinstance,'Name');					

_________________
Salus populi suprema lex esto
Swordooo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 119

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: So 27.07.08 18:31 
Vielen Dank euch!
Swordooo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 119

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: So 27.07.08 21:48 
Zitat:
Pack doch die JPG's in eine Res-Datei.

Da bin ich gerade bei.
Also ich habe einen gemeinsamen Ordner mit meinem Bild ("button_speichern.bmp"), brcc32.exe und eine RC-Datei:

ausblenden Quelltext
1:
data BITMAP "button_speichern.bmp"					


Und nun führe ich die brcc32.exe aus (so wie man es doch soll, oder habe ich was falsch verstanden?). Jeoch kommt ganz kurz die CMD und dann ist sie auch schon wieder weg.

Was kann ich machen. Danke schonmal.

MfG Swordooo
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mo 28.07.08 00:45 
HI,

mach ma die CMD über ausführen auf und starte die Exe über CMD. da müsstest du dann auch ne Hilfe haben: brcc32.exe /?

ich mach das immer so: data ornder in den gleich ordner wie die Exe/ das Projekt und dann

ausblenden Delphi-Quelltext
1:
FilePath := ExtractFilePath(Application.Exename)+'data\'+Datei-Die-ich-laden-will;					


Mfg Bergmann.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
delphi10
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: Mo 28.07.08 09:43 
user profile iconBergmann89 hat folgendes geschrieben:
HI,

mach ma die CMD über ausführen auf und starte die Exe über CMD. da müsstest du dann auch ne Hilfe haben: brcc32.exe /?

ich mach das immer so: data ornder in den gleich ordner wie die Exe/ das Projekt und dann

ausblenden Delphi-Quelltext
1:
FilePath := ExtractFilePath(Application.Exename)+'data\'+Datei-Die-ich-laden-will;					


Mfg Bergmann.


Ja, das geht. Aber Du mußt ständig diese Dateien mitschleppen. Es ist eine unnötige Fehlerquelle.

Swordooo: Nicht vergessen, die Res-Datei in der MainForm einzubinden.
ausblenden Delphi-Quelltext
1:
{$R Resdatei.res}					

In der RC-Datei solltest Du den Pfad\Dateiname nicht in " " setzen!
Gruß delphi10

_________________
Salus populi suprema lex esto
Swordooo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 119

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: Mo 28.07.08 11:09 
Okay...ich werde es gleich nach dem Frühstück ausprobieren :D

Danke :) MfG Swordooo
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mo 28.07.08 11:13 
Wenn du schon die Bilder, rc, und Brcc32.exe in einem Ordner hast reicht es wenn du die rc per drag & drop auf die Brcc32 ziehst.

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
delphi10
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: Mo 28.07.08 12:46 
user profile iconBlackheart666 hat folgendes geschrieben:
Wenn du schon die Bilder, rc, und Brcc32.exe in einem Ordner hast reicht es wenn du die rc per drag & drop auf die Brcc32 ziehst.


Leider sieht er dann keine Fehlermeldungen mehr. Brcc32 ist nun mal eine reine Consolenanwendung.

_________________
Salus populi suprema lex esto
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mo 28.07.08 17:21 
Du findest die Windows Buttons langweilig und nimmst stattdessen ein TImage. Für ein Hobby-Programm mag das okay sein. Falls du das Programm jedoch verkaufen oder veröffentlichen willst solltest du folgendes im Kopf haben:

TImage ist nicht geeignet, denn:
- TImage ist kein TWinControl und kann keinen Fokus kriegen.
- Dein Button ist nicht mit der Tastatur steuerbar und nicht via Tab erreichbar.
- Es kann nicht als Default/Cancel Button definiert werden.
- Informationen sind nicht automatisiert lesbar (siehe "accessible Software"), d.h. z.B. für Blinde nicht bedienbar.
- Dein Programm kann nicht mehr einfach übersetzt werden.

Kurz: Dein Programm verhält sich nicht wie gewohnt und ist somit schwerer zu bedienen. Willst du das wirklich, nur damit die Schrift auf dem Button weiss und rot ist?
delphi10
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: Mo 28.07.08 17:59 
user profile icondelfiphan hat folgendes geschrieben:
Du findest die Windows Buttons langweilig und nimmst stattdessen ein TImage. Für ein Hobby-Programm mag das okay sein. Falls du das Programm jedoch verkaufen oder veröffentlichen willst solltest du folgendes im Kopf haben:


Nimm einfach TBitBtn. Damit kannst mit Farben, Bilder und Texten creativ sein, bis der Arzt kommt.

_________________
Salus populi suprema lex esto
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mo 28.07.08 18:36 
@delphi10: Ja, ich muss die Datein immer mit rum schleppen, aber ich kann ja nich jede Datei aus einer RES laden, oder? bei nem Memo gehts zum beispiel nich!

MfG Bergmann.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
Swordooo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 119

W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
BeitragVerfasst: Mo 28.07.08 19:04 
Zitat:
Nimm einfach TBitBtn. Damit kannst mit Farben, Bilder und Texten creativ sein, bis der Arzt kommt.


Danke für den Tip.

@delfiphan : Ja ich bin ein Hobbyprogger. Aber meine Proj. sollen trotzdem gut sein. Danke für die Tips.

MfG Swordoooo
delphi10
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: Mo 28.07.08 21:13 
user profile iconBergmann89 hat folgendes geschrieben:
@delphi10: Ja, ich muss die Datein immer mit rum schleppen, aber ich kann ja nich jede Datei aus einer RES laden, oder? bei nem Memo gehts zum beispiel nich!

MfG Bergmann.


Tja, man kann nicht alles wissen.......EDIT: :wink:

RC-Datei: Memo RCDATA N:\Projekt\res\memo.txt
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
{$R RES-DATEI.res}

Var
ResStream : TResourceStream;
.
resstream := TResourceStream.Create(hInstance, 'Memo', RT_RCDATA);
Memo3.Lines.LoadFromStream(resstream);
.
Freigaben
.

_________________
Salus populi suprema lex esto
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Di 29.07.08 02:46 
OK, danke. das werd ich ma ausprobieren ^^

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^