![]() |
Eigene Skins / Eigene Progis
Hallo, erstmal möchte ich mich bedanken das du dir diesen Eintrag, anschauen tust. :thuimb:
- Hier kommt meine Frage: Ich möchte gerne meine eigenen Skins in meine Programme einbinden! Für meine Skins benutze ich: DynamicSkinForm VCL Und meine Delphi Version ist 7.0 Enterprise - Ich habe mir schon eurer Forum und andere diverse Seiten angeschaut, leider habe ich noch nichts gefunden, oder vielleicht auch was übersehen. - Mein Problem ist die Einbindung zwischen Delphi und der ini Datei!!! über eine genaue Beschreibung würde ich mich freuen!!! (Code oder Tutorial oder Beispiel oder ...) Wenn ihr noch mehr zu meinem Problem wissen wollt dann, sagt es mir, bitte!!! Ich Verzweifel schon :roll: Für jeden Beitrag bin ich Dankbar, und für jeden Hilfreichen noch mehr!!! :thuimb: / :) Bis demnächst, David [edit=sakura] Titel geändert, daß Du Hilfe brauchst, daß ist schon klar ;-) Mfg, sakura[/edit] |
Re: Eigene Skins / Eigene Progis
Kommst du mit der Inifile allgemein nicht zurecht?? Das gibts ne Klasse TIniFile in der unit "inifiles" und bei
![]() |
Re: Eigene Skins / Eigene Progis
Hallo "SirThornberry" danke für deine Schnelle Antwort!
Ich habe mir auch schon das Tutorial von ![]() meinen Eintrag angesehen, aber wenn ich das so mache wie es da steht komme ich nicht weiter. Also mein Problem besteht im Zusammenhang mit der Skin.ini und mit der Unit von Delphi (praktisch wie verbinde ich die beiden mit einander) Kannst du mir bitte ein Beispiel erläutern... :roll: |
Re: Eigene Skins / Eigene Progis
Hallo User's schön das ihr euch meine Hilfe ruf anschaut :)
Ich habe folgendes Problem, ich weiß jetzt wie ich die Ini Datei in mein Programm einbinde ohne dabei Fehler zu erzeugen, aber jetzt habe ich ein neues Problem, wenn ich das ganze testen will sollte der Form1 das aussehen von dialog haben, nur leider ist das nicht so... :gruebel: Meine Frage an euch ist meine Ausgangslage richtig siehe Code unten :?:
Delphi-Quellcode:
Und was habe ich eventuell vergessen :!:
procedure TForm1.FormCreate(Sender: TObject);
begin ini := TIniFile.Create('skin.ini'); try ini.ReadString('PICTURES', 'picture', 'dialog.bmp'); finally ini.Free; end; Bitte helft mir, danke :-D [edit=sakura] [delphi]-Tags Mfg, sakura[/edit] |
Re: Eigene Skins / Eigene Progis
Ich kenn mich gar nicht aus aber ist Create nicht zum Erstellen da!
Ich denke wenn Du ne INI-File lesen willst musst Du die nicht erstellen sondern öffnen; Also ini := TIniFile.open('skin.ini'); Is aber nur ne Vermutung... Lass mich gerne vom Gegenteil überzeugen. |
Re: Eigene Skins / Eigene Progis
Hi,
nein. Die Methode Open ist, wenn sie überhaupt existiert, kein Konstruktor und somit würde das schon gar nicht gehen. Versuch aber mal den gesamten Pfad anzugeben:
Delphi-Quellcode:
Chris
ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'skin.ini');
[edit]Auch wenn Stanlay recht hab (hab deinen Sourcecode nicht richtig gelesen), solltest du Dateien immer mit kompletten Pfad öffnen, da das Verzeichnis, in dem das Programm ausgeführt wird, nicht zwangsläufig das Verzeichnis ist, in dem deine EXE liegt.[/edit] |
Re: Eigene Skins / Eigene Progis
Hi.
Naja, Fehler dürfte dein Code nicht erzeugen. Aber bringen wird er auch nicht viel, da deine Ergebnisse praktisch ins leere laufen :wink:
Delphi-Quellcode:
Du erzeugst die Datei (1) richtig und gibst sie auch richtig frei. (3)
procedure TForm1.FormCreate(Sender: TObject);
begin ini := TIniFile.Create('skin.ini'); (1) try ini.ReadString('PICTURES', 'picture', 'dialog.bmp'); (2) finally ini.Free; (3) end; Aber dazwischen liest du etwas aus der INI aus (2). Und diese Ergebnisse laufen ins leere, da sie nirgendwo zwischengespeichert werden. Ich vermute mal, du möchtest die Zeichenkette (String) aus der Section [PICTURES] und dem darinenthaltenen Eintrag picture= auslesen, oder? Dann müsstest du noch eine Variable deklarieren, um überhaupt mit diesem String arbeiten zu können. Ansonsten ist er praktisch "vergessen" :wink: Beispiel:
Delphi-Quellcode:
Man liest sich, Stanlay :hi:
procedure TForm1.FormCreate(Sender: TObject);
var str : String; begin ini := TIniFile.Create('skin.ini'); try str := ini.ReadString('PICTURES', 'picture', 'dialog.bmp'); //str erhält den Wert aus der INI finally ini.Free; ShowMessage(str); // Der String wird als Meldung angezeigt (nur als Beispiel) end; |
DP-Maintenance
Dieses Thema wurde von "sakura" von "Multimedia" nach "Windows API" verschoben.
Die Frage ist wohl eher "Ini-Files" statt "Skins" ;-) |
Re: Eigene Skins / Eigene Progis
Nochmal ein Frage zu diesem Code
zwischen try (...) finally Beispiel: var1 := ini.ReadString('', '', ''); gibt es eine möglichkeit die gesamte Ini auszulesen oder muss das alles von hand gemacht werden, das heißt: var1 := ini.ReadString('', '', ''); ca. 200 mal :spin2: Hier kommt noch was! Ich habe mir schon einmal die Mühe gemacht und habe das alles geschrieben nur es funktioniert nicht, ich glaube jetzt habe ich alles durcheinander gewurfen des wegen kopiere ich euch mal den ganzen code hier rein --- :gruebel: --- :pale: --- :?:
Delphi-Quellcode:
wer kann mir sagen warum es nicht klappt! ????
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IniFiles, StdCtrls; type TForm1 = class(TForm) StaticText1: TStaticText; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; ini: TIniFile; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var var1 : String; var var19 : String; var var37 : String; var var2 : String; var var20 : String; var var38 : String; ... var92 := ini.ReadString('caption', 'frametextrect', '0,0,0,0'); var93 := ini.ReadString('caption', 'frameleftoffset', '0'); var94 := ini.ReadString('caption', 'framerightoffset', '0'); var95 := ini.ReadString('SKINCONTROLS', 'Count', '0'); finally ini.Free; end; end; end. [edit=Luckie]Delphi-Tags gesetzt und etwas gekürzt. Mfg, Luckie[/edit] |
Re: Eigene Skins / Eigene Progis
Ich fürchte die Deklaration der Variablen funktioniert nicht wie du es gemacht hast.
richtigerweise sollte es so aussehen:
Delphi-Quellcode:
Edit:
procedure {whatever};
var ini : TIniFile; var1, var2, var3, etc, pp : string; begin {vas du machen willst} end; Ich hab mal kurz das Helpfile zu den Komponenten überflogen und ein paar Methoden gesehn, die bereits vorhanden sind und dein Problem lösen. Es gibt wohl eine Komponente TspStoredSkin , die ein Skin über die Ini-Datei einlesen kann (und warscheinlich im Exe-File speichert :?: ). Ausserdem besitzt die Komponente TspSkinData eine Methode:
Delphi-Quellcode:
Edit2:
TspSkinData.LoadFromFile(FileName: String);
Wenn mich nicht alles täuscht übernimmt TspDynamicSkinForm den Client-Bereich deiner Form und sorgt für die Änderungen der Skin-Komponenten die darauf angeordnet sind. Wenn es jemand besser weiss, bitte berichtigen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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