PDA

Ver la Versión Completa : Confirmación y duda (pasando de Neobook a Delphi)


Peri
13-05-2008, 14:19:48
Hola a toda la comunidad Delphi que hace posible este estupendo foro.
Antes que nada presentarme a todos. Soy Peri, un novato, pero que muy novato en este mundo. Llevo prácticamente dos semana intentando aprender este lenguaje, bueno en realidad los fines de semana de éstas.

Vengo del mundo Neobook, un programa RAD creado con delphi, y me han dicho de buena tinta que en este foro hay personas que también dieron el salto como yo. Esta es una de las causas por las cuales escribo. Sé hacer las cosas en Noebook y a veces quiero hacer lo mismo con delphi, comparándo ambos.

Neobook (NB) hace un uso excesivo de variables, cosa que en delphi no es necesario tanto, puesto que podemos consultar directamente los valores de las propiedades de algunos componentes.

Los que os habéis pasado de NB a delphi sabeis que se relaciona un TEdit con una variable para controlar dicho Tedit. En delphi podemos hacer lo mismo sin necesidad de variables, consultando la propiedad Text. Queriendo hacer lo mismo me gustaría que me confirmárais que lo que realmente hace NB es lo siguiente, este ejemplo está asociado a un botón para comprobar el comportamiento de la variable x:

procedure TForm2.VerificarClick(Sender: TObject);
var
x: String;

begin
x:= Edit4.Text;
Showmessage (x);
end;

end. Lo que he hecho es asociar la variable x al TEdit. ¿Es correcto, esto es lo que realmente hace Neobook?

Y otra cuestión, los formularios son como pas gáginas de NB, ¿cómo llamar al segundo de ellos, en el caso de tener dos en un proyecto, y viceversa en modo ejecución?. Hay alguna acción, función,o lo que sea al respecto?. En NB se hace con la acción Gotonexpage.

Saludos

Fenareth
13-05-2008, 16:14:11
Y otra cuestión, los formularios son como pas gáginas de NB, ¿cómo llamar al segundo de ellos, en el caso de tener dos en un proyecto, y viceversa en modo ejecución?. Hay alguna acción, función,o lo que sea al respecto?. En NB se hace con la acción Gotonexpage.

Saludos

Hola y Bienvenido al foro.
En cuanto a mostrar otro formulario a partir de uno actualmente activo y en tiempo de ejecución es con la instrucción:

form2.show; // Permite manipular los formularios 1 y 2

o

form2.showmodal; // Permite manipular sólo el formulario 2

Es importante que en la Unit del formulario que mandará llamar al otro hagas referencia a la Unit del segundo formulario.

unit Unit1;

interface

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

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

uses Unit2; // Referencia a la Unit del segundo formulario

implementation

{$R *.dfm}

end.

Espero no haberte enredado más :o... cualquier duda hazla saber ;)

P.D. Claro !, probablemente alguien tenga una manera más rápida y sencilla de hacer esto mismo o una opinión diferente :)

Delphius
13-05-2008, 17:02:19
Hola a toda la comunidad Delphi que hace posible este estupendo foro.
Antes que nada presentarme a todos. Soy Peri, un novato, pero que muy novato en este mundo. Llevo prácticamente dos semana intentando aprender este lenguaje, bueno en realidad los fines de semana de éstas.

Bienvenido.
Al igual que tu también soy novato pero a diferencia de ti llevo unos pocos años empleando Delphi.:)


Vengo del mundo Neobook, un programa RAD creado con delphi, y me han dicho de buena tinta que en este foro hay personas que también dieron el salto como yo. Esta es una de las causas por las cuales escribo. Sé hacer las cosas en Noebook y a veces quiero hacer lo mismo con delphi, comparándo ambos.

Disculpa, no he usado Neobook pero voy a hacer lo posible en ayudarte.


Neobook (NB) hace un uso excesivo de variables, cosa que en delphi no es necesario tanto, puesto que podemos consultar directamente los valores de las propiedades de algunos componentes.

Los que os habéis pasado de NB a delphi sabeis que se relaciona un TEdit con una variable para controlar dicho Tedit. En delphi podemos hacer lo mismo sin necesidad de variables, consultando la propiedad Text. Queriendo hacer lo mismo me gustaría que me confirmárais que lo que realmente hace NB es lo siguiente, este ejemplo está asociado a un botón para comprobar el comportamiento de la variable x:

[DELPHI] procedure TForm2.VerificarClick(Sender: TObject);
var
x: String;

begin
x:= Edit4.Text;
Showmessage (x);
end;

[/DEPHI]

Lo que he hecho es asociar la variable x al TEdit. ¿Es correcto, esto es lo que realmente hace Neobook?

:confused::confused:
Disculpa, ¿Por casualidad quisiste preguntar eso? ¿No habrás querido decir esto?:

¿Lo que he hecho es asociar la variable x al TEdit?¿Es correcto? ¿Esto es lo que hace realmente Delphi?

Disculpame, pero me siento confundido porque preguntas por Neobook siendo que supuestamente estas aprendiendo Delpi.

Si estoy entiendo mal, por favor avisame.

Dejame explicar realmente lo que hace esa sentencia.
Formalmente, Edit4 es una instancia de una clase TEdit. Y cuando haces:

x := Edit4.Text

Le estás indicando a dicho objeto que te regrese el texto. ¿Que hace por dentro el objeto? Invoca a una función privada llamada GetText. Esta función lee una variable privada y hace algunas operaciones con punteros y termina regresando el contenido adaptado a nuestras necesidades. ¿Porqué eso? Porque internamente, en el fondo de la VCL, Text es una propiedad de tipo TCaption mientras que dicha variable es un puntero a caracteres (PChar). Por ello realiza ciertas "conversiones".

Bueno, entonces. ¿En que quedamos? Edit4 invoca dicho método GetText, este obtiene el valor y lo regresa.
En ningún momento, estamos asignando el objeto Edit4 a la variable x. Sino que estamos copiando el contenido de dicha propiedad.

Extrictamente hablando, la palabras asociar indicaría una asociación de punteros. Y aquí, a pesar de que internamente se operó con punteros, en ningún momento se asignó un puntero hacia la propiedad Text ni al objeto Edit4. Sólo lo que conseguimos fue copiar.
Por tanto, el hacer esto:

Edit4.Free;

Que es liberarlo, destruirlo, no deja inconsistente a x. Léase bien, por favor: nota que dije NO y no NOS.
En este punto, ahora que el objeto ha sido destruido cualquier invocación a él arrojará un error.
Como consejo: No hagas Free a un Botton, un Edit.

Creo que la ayuda, a pesar de estar en inglés, lo explica mejor que yo.
Muy seguramente se me están pasando algunas cosas y también otros compañeros lo explicarán mejor que yo.

Yo sólo quise hacerte esa pequeña observación ya que hablas de asociar. Hay casos en que si, asociamos... en otros no (Este es uno).

No se si me explico y esto es de ayuda para que comprendieras. Repito nuevamente, si he entendido mal tus palabras dimelo.

Saludos y que Delphi te sea de agrado.

dec
13-05-2008, 18:32:59
Hola,

Sólo quería saludar a Peri y darle la bienvenida. Es un conocido mío del mundo de Neobook (http://www.neosoftware.com/), que quiere incursionar en Delphi. Le he dicho que aquí hay buena gente dispuesta a ayudarle en cuanto necesite. Y veo que no me he equivocado, aunque así lo creía y por eso le recomendé a Peri estos foros. Pues eso. No diré nada sobre el asunto del hilo en cuestión... pido disculpas por ello. Y te doy la bienvenida otra vez Peri. ;)

Delphius
14-05-2008, 02:22:06
Hola,

Sólo quería saludar a Peri y darle la bienvenida. Es un conocido mío del mundo de Neobook (http://www.neosoftware.com/), que quiere incursionar en Delphi. Le he dicho que aquí hay buena gente dispuesta a ayudarle en cuanto necesite. Y veo que no me he equivocado, aunque así lo creía y por eso le recomendé a Peri estos foros. Pues eso. No diré nada sobre el asunto del hilo en cuestión... pido disculpas por ello. Y te doy la bienvenida otra vez Peri. ;)

Amigo dec, no debes disculparte, en todo caso soy yo quien debe disculparse.

Espero que tu amigo no se sienta ofendido por mis palabras. Yo quise ayudar, explicando un poco mejor. No ha sido mi intención molestar.

Si así lo fue, mis más sinceras disculpas.
Puede que el semerendo texto que me he mandado no sólo le haya parecido chino sino que además le haya resultado como una ofensa.

Aprovecho la ocasión, para invitar a Peri, a que se una visita la sección FTP (http://www.terawiki.clubdelphi.com/) y Wiki (http://wiki.clubdelphi.com/); si es que David me lo permite.

Saludos,

dec
14-05-2008, 09:52:36
Hola,

Pero qué va Delphius, hombre, ¡todo lo contrario! Ahora es cuando digo que no me sé explicar, porque, yo quería decir todo lo contrario, algo así como "¿Ves Peri? Te dije que aquí había gente maja, buena gente, y para muestra botones". Pero sin duda lo dije tan retorcidamente que tú entendiste otra cosa, con razón. :D :D

PD. Si Peri tiene alguna duda, o lo que sea, ya sabes que puede continuar en este hilo preguntando lo que sea menester, o iniciar otro hilo, si lo estima oportuno. ;)

Peri
14-05-2008, 14:18:00
Hola DEC, esto sí es un foro rápido!!

Gracias a fenareth por su ayuda, me ha quedado completamente claro. Y también a Delphius por su brillante explicación. No te preocupes Delphius, no me he sentido ofendido, ten en cuenta que llevo en este mundo unos días prácticamente, y hay cosas que aún no las comprendo. :)