AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Komponenten je nach Einstellung unterschiedlich beschriften
Thema durchsuchen
Ansicht
Themen-Optionen

Komponenten je nach Einstellung unterschiedlich beschriften

Ein Thema von DerDelphi · begonnen am 23. Feb 2007 · letzter Beitrag vom 26. Feb 2007
Antwort Antwort
DerDelphi

Registriert seit: 7. Dez 2006
7 Beiträge
 
Delphi 2005 Architect
 
#1

Komponenten je nach Einstellung unterschiedlich beschriften

  Alt 23. Feb 2007, 09:42
Hallo,

ich habe ein Programm in Delphi Win32 geschrieben, dass eine Art Zeiterfassung darstellt. Nun möchte ich das je nach Variante die man z.b. per Radio Button einstellt, unterschiedliche Beschriftungen für labels,grids usw. (Komponenten) möglich sind.
Momentan suche ich noch nach der besten Möglichkeit dies zu tun.

- Ein Klasse schreiben die je nach Variante die einzelnen Kompontenen .Caption setzt
- Es gibt ja die Möglichkeit verschieden Sprachen ein Programm zu entwickeln, dass man darüber das steuert.

Bin für jeden Vorschlag dankbar.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#2

Re: Komponenten je nach Einstellung unterschiedlich beschrif

  Alt 23. Feb 2007, 12:37
So ganz verstehe ich deine Frage nicht. So wie ich es aber verstehe, brauchst du keine neue Klasse oder anderes, sondern du musst lediglich abfragen welches Item bzw. welcher Index gesetzt ist und je nachdem die Caption setzten.

Wenn ichs doch falsch habe, einfach schreiben.

[EDIT]
Eventuell noch ein Beispiel nennen.
[/EDIT]

Gruß Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
DerDelphi

Registriert seit: 7. Dez 2006
7 Beiträge
 
Delphi 2005 Architect
 
#3

Re: Komponenten je nach Einstellung unterschiedlich beschrif

  Alt 23. Feb 2007, 13:10
Ja so ähnlich.
Ich möchte nicht in jeder einzelnen Unit die Komponenten durchklappern sondern das ganze Zentral haben.
So dass ich später an nur einer Stelle schauen muss.

Delphi-Quellcode:
Programmversion : integer;

//Unit 1
if Programmversion= 1 then
   Unit1.label1.caption :="Programmversion 1";
   Unit1.label2.caption :="Herzlich Willkommen bei 1";
end;

//evtl. auch die Positionen der einzelnen Labels verändern
//Unit 1
if Programmversion= 2 then
   Unit1.label1.caption :="Programmversion 2";
   Unit1.label1.left:= Unit1.label1.left + 12;
   Unit1.label2.caption :="Herzlich Willkommen bei 2";
   Unit1.label3.visible:=false;
end;
Das wäre jetzt die einfachste Variante dir mir hier einfällt. Die Frage ist nun gibt es noch eine andere Möglichkeit, dass man dies besser lösen kann.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#4

Re: Komponenten je nach Einstellung unterschiedlich beschrif

  Alt 23. Feb 2007, 13:33
Vorne weg, nutze die Delphi-Tags wenn du Codebeispiele aufzeigts, weil das übersichtlicher ist.

Eine Möglichkeit wär zum Beispiel:
Delphi-Quellcode:
var
 Label1CaptionArr: array[1..3] of String;
 Label1LeftArr: array[1..3] of Integer;
 Label2CaptionArr: array[1..3] of String;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Label1CaptionArr[1] := 'Überschrift 1 Radio 1';
 Label1LeftArr[1] := 12;
 Label2CaptionArr[1] := 'Überschrift 2 Radio1';
 Label1CaptionArr[2] := 'Überschrift 1 Radio 2';
 Label1LeftArr[2] := 34;
 Label2CaptionArr[2] := 'Überschrift 2 Radio2';
 Label1CaptionArr[3] := 'Überschrift 1 Radio 3';
 Label1LeftArr[3] := 67;
 Label2CaptionArr[3] := 'Überschrift 2 Radio3';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 i: Byte;

begin
 If RadioButton1.Checked then i := 1
 Else If RadioButton2.Checked then i := 2
 Else i := 3;
 Label1.Caption := Label1CaptionArr[i];
 Label1.Left := Label1LeftArr[i];
 Label2.Caption := Label2CaptionArr[i];
end;
Hier musst du zwar auch noch an 2. Stellen Änderungen vornehmen aber nur geringfügig. Wenn es aber eine RadioGroup ist dann nuch noch im OnCreate, da du dann die Indizes bekommst.
Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
DerDelphi

Registriert seit: 7. Dez 2006
7 Beiträge
 
Delphi 2005 Architect
 
#5

Re: Komponenten je nach Einstellung unterschiedlich beschrif

  Alt 24. Feb 2007, 00:25
Danke erstmal für die Antwort.
Ich finde deine Methode allerdings umständlicher,da ich hier wie du schon sagst an 2.Stellen Code ändern müsste.
Ziel ist es auch sowenig wie möglich in den einzelnen Formular Units Code dafür hinterlegen.

Ich dachte eigentlich daran, dass ich jedem Formular Unit das ich habe in der FormCreate Methode ein Funktionsaufruf übergebe :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
InitializeCaptions(Version);
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
InitializeCaptions(Version);
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
InitializeCaptions(Version);
end;

dann dazu eine Klasse bzw. die Funktion(Methode) einfach ausgelagert
//globale Variable die gesetzt wird.
Version : integer;

procedure InitializeCaptions(Version:integer)
begin
//Unit 1
if Programmversion= 1 then
   Unit1.label1.caption :="Programmversion 1";
   Unit1.label2.caption :="Herzlich Willkommen bei 1";
   Unit2.label1.caption :="Programmversion 1";
   Unit2.label2.caption :="Herzlich Willkommen bei 1";
   Unit3.label5.caption :="Wiedersehen in 1";
end;

//evtl. auch die Positionen der einzelnen Labels verändern
//Unit 1
if Programmversion= 2 then
   Unit1.label1.caption :="Programmversion 2";
   Unit1.label1.left:= Unit1.label1.left + 12;
   Unit1.label2.caption :="Herzlich Willkommen bei 2";
   Unit1.label3.visible:=false;
end;
end.
Was hier halt unschön ist, dass ich direkt aus der Klasse auf einzelne Formular Units zugreife.
  Mit Zitat antworten Zitat
Jürgen Thomas

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

Re: Komponenten je nach Einstellung unterschiedlich beschrif

  Alt 24. Feb 2007, 09:03
Hallo,

suche einmal Informationen nach Hier im Forum suchenLocalization oder Hier im Forum suchenMehrsprachigkeit o.ä. Dort dürftest Du passende Tipps erhalten.

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
DerDelphi

Registriert seit: 7. Dez 2006
7 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Komponenten je nach Einstellung unterschiedlich beschrif

  Alt 26. Feb 2007, 10:08
Also ich habe nun nach diesen Begrifflichkeiten gesucht und auch einiges gefunden.Nur werde ich noch nicht so ganz daraus schlau.
Es scheint wohl mehrere gute ext. Tools zu geben die einem die Mehrsprachigkeit vereinfachen.
Nur ich möchte nicht nur die Komponenten anders beschriften sondern auch zusätzlich Komponenten verschieben, verstecken usw.

Gibt es jmd. der mir hier konkrete Hilfe bieten kann ?
  Mit Zitat antworten Zitat
Benutzerbild von Light
Light

Registriert seit: 3. Feb 2006
Ort: Paderborn NRW
123 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Komponenten je nach Einstellung unterschiedlich beschrif

  Alt 26. Feb 2007, 11:56
Hi Ihr,

Wenn du dir die Mühe machst und alle Labels und co - wo halt Text geändert werden muss so mit Eindeutigen bzw. extra Identischen Namen versiehst dann könntest du vielleicht mit FindKomponent oder so heißt das was anfangen...
Nur mal so als Idee...
oder du erstellst halt das Gesamte Layout "Dynamisch" dann sollte es auch kein Prob sein die Texte und Positionen anzupassen...

Beschreibe doch noch mal genauer was du damit erreichen willst vielleicht gibt es auch einen Ganz anderen Lösungsansatz...

Notfalls halt doch einzeln .Caption ändern....

Leuchtende Grüße

Stefan
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#9

Re: Komponenten je nach Einstellung unterschiedlich beschrif

  Alt 26. Feb 2007, 13:01
Arbeite mit mehreren Forms oder mit Frames. Darauf kannst du deine Kompon. anordnen wie
du es möchtest. Der Aufwand wird sonst sehr gross denn sonst müsstest du den betreffenden
Text und die Positionen und Eigenschaften eines Elementes in irgend einer Form in eine Datei
speichern was dir ja Delphi über die Formen (*.dfm) schon bietet.

Bei Mehrsprachversionen ist es einfacher die btr. Sprachvarianten in eine extra Datei zu
Packen zB. einer DLL.


Gruss...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  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 12:19 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