Delphi - ayuda con este programa que hice

 
Vista:

ayuda con este programa que hice

Publicado por dani (4 intervenciones) el 08/03/2012 12:58:29
Necesito ayuda de alguien, este es mi cencillo program, lo que ace es..
Abrir un archivo de texto, el cual contendra mas del mil lineas cada linea con datos personales desordenados, y lo que debo acer es almacenar cada dato de forma ordenada, algo asi
original.txt
javier facundo,32 años, estudiante, nacido paraguay, fecha 12/12/88, padre HORACIO ORTIZ, MADRE JULIA KARG,20 AÑOS, NACIDO EN MALAGA ESPAÑA, 12/12/77, POLITICO
SERGIO RONDOUS, ARGENTIO, NACIDO 12/11/77 TUCUMAN, PANADERO
LUCIA JATOF, costurera, argentina,nacio el 02/08/90

y la forma de ordenar seria asi:
NOMBRE APELLIDO, EDAD, FECHA NACIO, LUGAR NACIO, PADRES, A QUE SE DEDICA

Entonces en listBox1 se carga la primer linea del archivo y mediante Button1 voy seleccionando que dato pasar al listBox2, para de esa manera ordenar los datos de la manera correcta, en caso de que faltara un dato, por ejemplo no tuviera NACIONALIDAD, presionaria Button3 para que este agregue un simbolo en el lugar que corresponderia a la Nacionalidad en el Listbox2, Despues de pasar el ultimo dato del Listbox1 presionaria otro Buton4 para que se repita el ciclo, se cargue nuevamente otra linea y se repita todo de nuevo.

Ya tengo algo armado lo que quiero, pero el drama esta en como acer para que se cargue la primer linea, luego ordenar mediante Button1, y despues k termine se repita el ciclo, en mi codigo como esta me carga todo el archivo en el LstBox1, y lo que quiero es que primeor me cargue la primer linea, luego que lo ordeno y almaceno en archivo detino, me cargue la siguiente.
Bueno.. espeor que alguna persona me pueda dar una idea de como acer esto
desde ya mchas gracias, saludos a todos

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label1: TLabel;
Button6: TButton;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if ListBox1.ItemIndex>=0 then
begin
ListBox2.Items.Add(ListBox1.Items[ListBox1.ItemIndex]); //copia la cadena a la lista2
ListBox1.Items.Delete(ListBox1.ItemIndex); //Borra el original
end;
ListBox1.SetFocus; //pasa el foco al listbox1 si mercar item
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
ListBox1.Items.Delete(ListBox1.ItemIndex);
ListBox2.Items.Delete(ListBox2.ItemIndex);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if ListBox2.ItemIndex>=0 then
begin
ListBox1.Items.Add(ListBox2.Items[ListBox2.ItemIndex]); //copia la cadena a la lista2
ListBox2.Items.Delete(ListBox2.ItemIndex); //Borra el original
end;
ListBox1.SetFocus; //pasa el foco al listbox1 si mercar item
end;

procedure TForm1.Button3Click(Sender: TObject);
var
i : integer;
begin //pasa el todo del listbox1 al listbox2
for i:=0 to ListBox1.Items.Count - 1 do
ListBox2.Items.Add(ListBox1.Items[i]);
end;
{ /////////////////////////////////////////////////////////////////////////// }

function GetToken(Cadena:string; Separador:char; Token:integer):string; overload
{
Cadena es la string en la que buscar el token
Separador es la string que separa cada token
Token es el número de token que buscamos
Cadena is the string in that look for the token
Separador is the token separator
Token is the desired token number
}
var
Posicion:integer;
begin
while Token > 1 do begin
Delete(Cadena,1,Pos(Separador,Cadena));
Dec(Token);
end;
Posicion:=Pos(Separador,Cadena);
if Posicion=0
then result:=cadena
else Result:=Copy(Cadena,1,Posicion-Length(Separador));
end;
{ /////////////////////////////////////////////////////////////////////////// }
function GetToken(Cadena, Separador: String; Token: Integer): String; overload
var
Posicion: Integer;
begin
while Token > 1 do begin
Delete(Cadena, 1, Pos(Separador,Cadena)+Length(Separador)-1);
Dec(Token);
end;
Posicion:= Pos(Separador, Cadena);
if Posicion = 0
then Result:= Cadena
else Result:= Copy(Cadena, 1, Posicion-1);
end;
{ /////////////////////////////////////////////////////////////////////////// }
function GetTokenCount(Cadena:string; Separador:char):integer; overload;
var
Posicion:integer;
begin
Posicion:=Pos(Separador,Cadena);
Result:=1;

if Cadena <> '' then begin
if Posicion <> 0 then begin
while Posicion <> 0 do
begin
Delete(Cadena,1,Posicion);
Posicion:=Pos(Separador,Cadena);
Inc (Result);
end;
end;
end else Result:=0;
end;
{ /////////////////////////////////////////////////////////////////////////// }
procedure TForm1.FormCreate(Sender: TObject);
var
Archivo, Linea : TStringList;
SeparadaPorComas :string;
n ,i :integer;
f : TextFile;

begin
AssignFile( F, 'c:\original.txt' ); { archivo con lineas desordenadas de datos }
Reset( F );
While Not Eof(f) Do
begin
readLn(f, SeparadaPorComas); { CARGAMOS LA 1ER LINEA }
{ este for lo que ace es leer asta el final del STRING SeparadaporComas }
{ usando la funcion GtToken separa cada palbra delimitada por coma }
{ y la coloca en ListBox1, y repite el ciclo asta final archivo }
for n:=1 to GetTokenCount(SeparadaPorComas,',') do
begin
ListBox1.Items.Add(GetToken(SeparadaPorComas,',',n)); { Carga cada palabra al lstbox1 }
end;
end;
end;
end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

ayuda con este programa que hice

Publicado por E.T. (1244 intervenciones) el 08/03/2012 18:03:19
Con esto queda casi resuelto por completo tu problema.
Te recomiendo usar las herramientas del foro, por ejemplo la de codigo, que es la numero 6, que es un engrane, para que tu codigo sea más legible, como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    ListBox2: TListBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Button6: TButton;
    Label3: TLabel;
    Button5: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    ListBox3: TListBox;
    ListBox4: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure ListBox2DblClick(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
  private
    Archivo, ArchivoOrdenado: TStringList;
    iLineaActual: integer;
    procedure CargaLinea;
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
function GetToken(Cadena:string; Separador:char; Token:integer):string; overload
{
Cadena es la string en la que buscar el token
Separador es la string que separa cada token
Token es el número de token que buscamos
Cadena is the string in that look for the token
Separador is the token separator
Token is the desired token number
}
var
  Posicion:integer;
begin
  while Token > 1 do begin
    Delete(Cadena,1,Pos(Separador,Cadena));
    Dec(Token);
  end;
    Posicion:=Pos(Separador,Cadena);
  if Posicion=0 then
    result:=cadena
  else
    Result:=Copy(Cadena,1,Posicion-Length(Separador));
end;
{ /////////////////////////////////////////////////////////////////////////// }
function GetToken(Cadena, Separador: String; Token: Integer): String; overload
var
  Posicion: Integer;
begin
  while Token > 1 do begin
    Delete(Cadena, 1, Pos(Separador,Cadena)+Length(Separador)-1);
    Dec(Token);
  end;
  Posicion:= Pos(Separador, Cadena);
  if Posicion = 0 then
    Result:= Cadena
  else
    Result:= Copy(Cadena, 1, Posicion-1);
end;
{ /////////////////////////////////////////////////////////////////////////// }
function GetTokenCount(Cadena:string; Separador:char):integer; overload;
var
  Posicion:integer;
begin
  Posicion:=Pos(Separador,Cadena);
  Result:=1;
 
  if Cadena <> '' then begin
    if Posicion <> 0 then begin
      while Posicion <> 0 do begin
        Delete(Cadena,1,Posicion);
        Posicion:=Pos(Separador,Cadena);
        Inc (Result);
      end;
    end;
  end else
    Result:=0;
end;
{ /////////////////////////////////////////////////////////////////////////// }
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  if ListBox1.ItemIndex>=0 then begin
    ListBox2.Items.Add(ListBox1.Items[ListBox1.ItemIndex]); //copia la cadena a la lista2
    ListBox1.Items.Delete(ListBox1.ItemIndex); //Borra el original
  end;
  ListBox1.SetFocus; //pasa el foco al listbox1 si mercar item
end;
 
procedure TForm1.Button6Click(Sender: TObject);
begin
  ListBox1.Items.Delete(ListBox1.ItemIndex);
  ListBox2.Items.Delete(ListBox2.ItemIndex);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  if ListBox2.ItemIndex>=0 then begin
    ListBox1.Items.Add(ListBox2.Items[ListBox2.ItemIndex]); //copia la cadena a la lista2
    ListBox2.Items.Delete(ListBox2.ItemIndex); //Borra el original
  end;
  ListBox1.SetFocus; //pasa el foco al listbox1 si mercar item
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
i : integer;
begin //pasa el todo del listbox1 al listbox2
  for i:=0 to ListBox1.Items.Count - 1 do
    ListBox2.Items.Add(ListBox1.Items[i]);
  ListBox1.Items.Clear;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Archivo := TStringList.Create;
  ArchivoOrdenado := TStringList.Create;
  Archivo.LoadFromFile('original.txt');
  if Archivo.Count > 0 then begin
    ListBox1.Items.Clear;
    ListBox2.Items.Clear;
    ListBox3.Items := Archivo;
    iLineaActual := 0;
    Label3.Caption := 'Total de lineas: ' + IntToStr(Archivo.Count) + ' Linea actual: ' + IntToStr(iLineaActual + 1);
    CargaLinea;
  end else begin
    Archivo.Free;
    ArchivoOrdenado.Free;
  end;
end;
 
procedure TForm1.CargaLinea;
var i, j: integer;
begin
  //ESTE PROCEDIMIENTO CARLA LA LINEA ACTUAL EN EL LISTBOX1
  Label3.Caption := 'Total de lineas: ' + IntToStr(Archivo.Count) + ' Linea actual: ' + IntToStr(iLineaActual + 1);
  j := GetTokenCount(Archivo[iLineaActual], ',');
  for i := 1 to j do
    ListBox1.Items.Add(Trim(GetToken(Archivo[iLineaActual], ',', i)));
end;
 
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
  Button1Click(Button1);
end;
 
procedure TForm1.ListBox2DblClick(Sender: TObject);
begin
  Button2Click(Button2);
end;
 
procedure TForm1.Button4Click(Sender: TObject);
begin
  ListBox2.Items.Add('?');
end;
 
procedure TForm1.Button5Click(Sender: TObject);
begin
  //SE CARGA LA SIGUIENTE LINEA DE TEXTO
  if (iLineaActual + 1) < Archivo.Count then begin
    ListBox1.Items.Clear;
    ListBox2.Items.Clear;
    Inc(iLineaActual);
    CargaLinea;
  end else
    ShowMessage('Se ha finalizado de capturar');
end;
 
procedure TForm1.Button7Click(Sender: TObject);
var i: integer;
    cadena: string;
begin
  //EN ESTE PROCEDIMIENTO SE GUARDA LA LINEA ORDENADA
  cadena := '';
  for i := 0 to ListBox2.Items.Count - 1 do begin
    cadena := cadena + ListBox2.Items[i];
    if i < (ListBox2.Items.Count - 1) then
      cadena := cadena + ',';
  end;
  ArchivoOrdenado.Add(cadena);
  ListBox4.Items := ArchivoOrdenado;
  //ShowMessage(cadena);
  Button5Click(Button5);
end;
 
procedure TForm1.Button8Click(Sender: TObject);
begin
  //SE GUARDA EL ARCHIVO ORDENADO
  if ArchivoOrdenado.Count > 0 then
    ArchivoOrdenado.SaveToFile('archivoordenado.txt');
end;
 
procedure TForm1.Button9Click(Sender: TObject);
begin
  //REINICIAR LA CAPTURA DEL ARCHIVO
  if Archivo.Count > 0 then begin
    ArchivoOrdenado.Clear;
    ListBox1.Items.Clear;
    ListBox2.Items.Clear;
    iLineaActual := 0;
    Label3.Caption := 'Total de lineas: ' + IntToStr(Archivo.Count) + ' Linea actual: ' + IntToStr(iLineaActual + 1);
    CargaLinea;
  end;
end;
 
procedure TForm1.Button10Click(Sender: TObject);
begin
  //RETROCEDE UNA LINEA EN EL ARCHIVO ORIGINAL
  if iLineaActual > 0 then begin
    ListBox1.Items.Clear;
    dec(iLineaActual);
    CargaLinea;
  end;
end;
 
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

ayuda con este programa que hice

Publicado por E.T. (1244 intervenciones) el 08/03/2012 18:08:23
Este es el codigo del form que estoy usando, guardalo como unit1.dfm y abrelo junto con el codigo anterior, para que no hagas la form desde el inicio, si quieres ver el codigo de tu form haces lo siguiente, mientas visualizas tu form presiona Alt + F12, para ver tu form en codigo, y de nuevo Alt + F12 para regresar a la forma grafica

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
object Form1: TForm1
  Left = 298
  Top = 192
  Width = 936
  Height = 386
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 8
    Top = 8
    Width = 32
    Height = 13
    Caption = 'Label1'
  end
  object Label2: TLabel
    Left = 168
    Top = 8
    Width = 32
    Height = 13
    Caption = 'Label2'
  end
  object Label3: TLabel
    Left = 8
    Top = 264
    Width = 32
    Height = 13
    Caption = 'Label3'
  end
  object ListBox1: TListBox
    Left = 8
    Top = 32
    Width = 153
    Height = 193
    ItemHeight = 13
    TabOrder = 0
    OnDblClick = ListBox1DblClick
  end
  object ListBox2: TListBox
    Left = 168
    Top = 32
    Width = 153
    Height = 193
    ItemHeight = 13
    TabOrder = 1
    OnDblClick = ListBox2DblClick
  end
  object Button1: TButton
    Left = 8
    Top = 232
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 2
    OnClick = Button1Click
  end
  object Button2: TButton
    Left = 88
    Top = 232
    Width = 75
    Height = 25
    Caption = 'Button2'
    TabOrder = 3
    OnClick = Button2Click
  end
  object Button3: TButton
    Left = 168
    Top = 232
    Width = 75
    Height = 25
    Caption = '>>>'
    TabOrder = 4
    OnClick = Button3Click
  end
  object Button4: TButton
    Left = 248
    Top = 232
    Width = 75
    Height = 25
    Caption = '?'
    TabOrder = 5
    OnClick = Button4Click
  end
  object Button6: TButton
    Left = 8
    Top = 288
    Width = 75
    Height = 25
    Caption = 'Button6'
    TabOrder = 6
    OnClick = Button6Click
  end
  object Button5: TButton
    Left = 88
    Top = 288
    Width = 75
    Height = 25
    Caption = 'Siguiente'
    TabOrder = 7
    OnClick = Button5Click
  end
  object Button7: TButton
    Left = 168
    Top = 288
    Width = 75
    Height = 25
    Caption = 'Guarda linea'
    TabOrder = 8
    OnClick = Button7Click
  end
  object Button8: TButton
    Left = 248
    Top = 288
    Width = 75
    Height = 25
    Caption = 'Guardar'
    TabOrder = 9
    OnClick = Button8Click
  end
  object Button9: TButton
    Left = 8
    Top = 320
    Width = 75
    Height = 25
    Caption = 'Reiniciar'
    TabOrder = 10
    OnClick = Button9Click
  end
  object Button10: TButton
    Left = 88
    Top = 320
    Width = 75
    Height = 25
    Caption = 'Anterior'
    TabOrder = 11
    OnClick = Button10Click
  end
  object ListBox3: TListBox
    Left = 328
    Top = 32
    Width = 593
    Height = 97
    ItemHeight = 13
    TabOrder = 12
  end
  object ListBox4: TListBox
    Left = 327
    Top = 136
    Width = 593
    Height = 97
    ItemHeight = 13
    TabOrder = 13
  end
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con este programa que hice

Publicado por danid (4 intervenciones) el 10/03/2012 17:09:20
al señor E:T: desde ya muchas gracias por su pronta respuesta, por lo que apuedo apreciar de su respuesta, veo que se a tomado el trabajo de escribir unas cuantas lienas de codigo, ahora mismo lo voy a probar en casa...
Le comento, yo estaba estudiando analista sistemas, y se me presento oportunidad de trabajo y me vi obligado a dejar mis estudios, actualmente, estoy estudiando programacion solo, me manera particular, a LOS MACHETAZOS como decimos aca, es por ello que por ahi codigos simples, o fundamentos simples d eprogramacion no se o no entiendo y por ese motivo me veo obligado a recurrir a foros para que me den una idea, o ayuda.

desde ya muchas gracias a usted

saludos desde argentina misiones
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con este programa que hice

Publicado por dani (4 intervenciones) el 15/03/2012 01:50:15
hola señor E.T. si programa me anduvo de DIEZ... espectacular, jajaja... me salvo de varios dias de rompe coco.... menos dolor de cabeza,
jajaja

bueno.. navegando por el foro encontre unas lineas de codigo que usted respondio a otra persona, alla por el año 2007 http://www.lawebdelprogramador.com/foros/imprimir.php?id=784489
este es codigo que usted escribio
-- -- -- -- -- -- -- -- -- -- -- --
Asunto: RE:ayudenme con codigo
Autor: E.T. (839 intervenciones)
Fecha: 09/04/2007 23:32:43
Aqui se complica un poco la cosa, por ejemplo hay apellidos como "De la Rosa", o personas con más de un nombre, que obviamente no son una palabra, por lo tanto hice lo siguiente: en lugar de que selecciones palabra por palabra, lo que vamos ha hacer es que en una variable se guarde el texto como lo seleccionemos, es decir, si alguien tiene dos nombres o apellidos compuestos lo guardaremos y lo almacenaremos según lo seleccionemos, a continuación te muestro el código

Delcaramos en el apartod private la siguiente variable

palabras:array of string;

Agregamos un edit

en el evento OnKeyDown del edit ponemos

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_ADD then begin
SetLength(palabras,length(palabras)+1);
palabras[Length(palabras)-1]:=Edit1.SelText;
end else if key=VK_SUBTRACT then
SetLength(palabras,0);
end;

El código de arriba hace lo siguiente: dentro de una variable array en su primer elemento pondrá el texto que esté seleccionado dentro del edit, al hacerlo por segunda ves lo hará en su elemnto numero 2 y asi sucesivamente. Entonces lo que hay que hacer es seleccionar el o los nombres y presionar la tecla '+' luego seleccionamos el apellido paterno y presionamos de nuevo '+' y lo mismo con el materno, hecho esto tenemos el nombre separado correctamente, si así lo hicimos, ahora solo queda asignarlo a los edits correspondientes, se debe presionar la tecla '-' antes de hacerlo con otro nombre ya que si no lo hacemos los datos anteriores aún estarán almacenados.
si quieres hacerlo de forma automática se requiere de muchas validaciones de como estan compuestos lo nombres y llevaría algo de tiempo hacerlo.

En el evento OnKeyPress ponemos

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key in ['+','-'] then
key:=#0;
end;

Y por último en un botón ponemos

procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.text:=palabras[0];
Edit2.text:=palabras[1];
Edit3.text:=palabras[2];
end;
-- -- -- -- -- -- -- -- -- -- -- --

me gusto, lo probe y me anda, y me estaba dando ganas de implementarlo en el mio con algunas modificaciones, en lugar de edit los pasaria a un listbox, esta parte masomenos tengo claro de ocmo acerlo, pero lo uqe esaba viendo es manera d emodificarlo, para que cuando selecciono una palabra de un EDIT en lugar de presionar la tecla MAS presono un boton, y asi voy archivando en el ARRAY cada palabra y despues otro boton me los mande al listbox, esta perte es la que mas me complica.

Pero igual... con el codigo anterior que me izo, ya me salvo de varios dias de dolor de cabeza, muchas gracias por su tiempo, y veo que dedica mucho tiempo respondiendo a otros internautas

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar